Add include needed for MSVC.
[clang/acc.git] / test / SemaCXX / namespace-alias.cpp
blobd5e423848cb52d266f81631f3fdc62bd1dec0e98
1 // RUN: clang-cc -fsyntax-only -verify %s
3 namespace N { };
5 namespace A = N;
7 int B; // expected-note {{previous definition is here}}
8 namespace B = N; // expected-error {{redefinition of 'B' as different kind of symbol}}
10 namespace C { } // expected-note {{previous definition is here}}
11 namespace C = N; // expected-error {{redefinition of 'C'}}
13 int i;
14 namespace D = i; // expected-error {{expected namespace name}}
16 namespace E = N::Foo; // expected-error {{expected namespace name}}
18 namespace F {
19 namespace A { namespace B { } } // expected-note {{candidate found by name lookup is 'F::A::B'}}
20 namespace B { } // expected-note {{candidate found by name lookup is 'F::B'}}
21 using namespace A;
22 namespace D = B; // expected-error {{reference to 'B' is ambiguous}}
25 namespace G {
26 namespace B = N;
29 namespace H {
30 namespace A1 { }
31 namespace A2 { }
33 // These all point to A1.
34 namespace B = A1; // expected-note {{previous definition is here}}
35 namespace B = A1;
36 namespace C = B;
37 namespace B = C;
39 namespace B = A2; // expected-error {{redefinition of 'B' as different kind of symbol}}
42 namespace I {
43 namespace A1 { int i; }
45 namespace A2 = A1;
48 int f() {
49 return I::A2::i;
52 namespace J {
53 namespace A {
54 namespace B { void func (); }
57 namespace C = A;
59 using namespace C::B;
61 void g() {
62 func();