reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | // RUN: %clang_cc1 -fsyntax-only -verify %s namespace A { struct x {}; // expected-note {{candidate found by name lookup is 'A::x'}} int x; // expected-note {{candidate found by name lookup is 'A::x'}} struct y {}; // expected-note {{type declaration hidden}} struct z; void z(float); } namespace B { struct x {}; // expected-note {{candidate found by name lookup is 'B::x'}} float x; // expected-note {{candidate found by name lookup is 'B::x'}} float y; // expected-note {{declaration hides type}} void z(int); } namespace AB { using namespace A; using namespace B; } void test() { struct AB::x foo; // expected-error {{reference to 'x' is ambiguous}} int i = AB::x; // expected-error {{reference to 'x' is ambiguous}} struct AB::y bar; float f = AB::y; // expected-error {{a type named 'y' is hidden by a declaration in a different namespace}} AB::z(i); AB::z(f); } |