blob: 28ad9a04e79064c9709c02980a2c3a754a6d86dc [file] [log] [blame]
Anders Carlssonf4d84b62009-08-30 00:54:35 +00001// RUN: clang-cc -fsyntax-only -verify %s
2namespace A {
3 namespace B {
4 class C { };
5 struct S { };
6 union U { };
7 }
8}
9
10void f() {
Anders Carlsson639bfc72009-08-30 06:49:43 +000011 A::B::i; // expected-error {{no member named 'i' in namespace 'A::B'}}
Douglas Gregor3f093272009-10-13 21:16:44 +000012 A::B::C::i; // expected-error {{no member named 'i' in 'class A::B::C'}}
Anders Carlsson639bfc72009-08-30 06:49:43 +000013 ::i; // expected-error {{no member named 'i' in the global namespace}}
Anders Carlssonf4d84b62009-08-30 00:54:35 +000014}
15
Anders Carlssona31d5f72009-08-30 07:09:50 +000016namespace B {
17 class B { };
18}
19
20void g() {
21 A::B::D::E; // expected-error {{no member named 'D' in namespace 'A::B'}}
Douglas Gregor3f093272009-10-13 21:16:44 +000022 B::B::C::D; // expected-error {{no member named 'C' in 'class B::B'}}
Anders Carlssona31d5f72009-08-30 07:09:50 +000023 ::C::D; // expected-error {{no member named 'C' in the global namespace}}
24}
25
Anders Carlsson639bfc72009-08-30 06:49:43 +000026int A::B::i = 10; // expected-error {{no member named 'i' in namespace 'A::B'}}
Douglas Gregor3f093272009-10-13 21:16:44 +000027int A::B::C::i = 10; // expected-error {{no member named 'i' in 'class A::B::C'}}
28int A::B::S::i = 10; // expected-error {{no member named 'i' in 'struct A::B::S'}}
29int A::B::U::i = 10; // expected-error {{no member named 'i' in 'union A::B::U'}}
Anders Carlssonf4d84b62009-08-30 00:54:35 +000030
Anders Carlsson639bfc72009-08-30 06:49:43 +000031using A::B::D; // expected-error {{no member named 'D' in namespace 'A::B'}}
Anders Carlsson05180af2009-08-30 00:58:45 +000032
33struct S : A::B::C {
Douglas Gregor3f093272009-10-13 21:16:44 +000034 using A::B::C::f; // expected-error {{no member named 'f' in 'class A::B::C'}}
Anders Carlsson05180af2009-08-30 00:58:45 +000035
36};