blob: 529ba1023dcde494cb98b0edaeaa78421151c50f [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Anders Carlssonf4d84b62009-08-30 00:54:35 +00002namespace 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'}}
John McCall7c2342d2010-03-10 11:27:22 +000012 A::B::C::i; // expected-error {{no member named 'i' in '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'}}
John McCall7c2342d2010-03-10 11:27:22 +000022 B::B::C::D; // expected-error {{no member named 'C' in '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'}}
John McCall7c2342d2010-03-10 11:27:22 +000027int A::B::C::i = 10; // expected-error {{no member named 'i' in 'A::B::C'}}
28int A::B::S::i = 10; // expected-error {{no member named 'i' in 'A::B::S'}}
29int A::B::U::i = 10; // expected-error {{no member named 'i' in '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 {
John McCall7c2342d2010-03-10 11:27:22 +000034 using A::B::C::f; // expected-error {{no member named 'f' in 'A::B::C'}}
Anders Carlsson05180af2009-08-30 00:58:45 +000035
36};