1 // RUN: %clang_cc1 -std=c++1z -verify %s 2 3 namespace A { 4 int m, n; 5 }; 6 7 namespace B { 8 using A::m, A::n, A::n; 9 int q = m + n; 10 } 11 12 struct X { 13 int x1, x2, y, z; // expected-note 2{{conflicting}} 14 }; 15 struct Y { 16 int x1, x2, y, z; // expected-note 2{{target}} 17 }; 18 struct Z : X, Y { 19 using X::x1, 20 blah::blah, // expected-error {{undeclared}} 21 X::x2, // expected-note {{previous}} 22 Y::y, 23 X::x2, // expected-error {{redeclaration}} 24 X::z, 25 Y::z; // expected-error {{conflicts with}} 26 }; 27 int X::*px1 = &Z::x1; 28 int X::*px2 = &Z::x2; 29 int Y::*py = &Z::y; 30 int X::*pz = &Z::z; 31 32 template<typename ...T> struct Q : T... { 33 using T::z...; // expected-error {{conflicts}} 34 }; 35 Q<X,Y> q; // expected-note {{instantiation of}} 36