1 // RUN: %clang_cc1 -emit-llvm-only -verify %s
2 
3 // This lame little test was ripped straight from the standard.
4 namespace {
5   int i; // expected-note {{candidate}}
6 }
test0()7 void test0() { i++; }
8 
9 namespace A {
10   namespace {
11     int i; // expected-note {{candidate}}
12     int j;
13   }
test1()14   void test1() { i++; }
15 }
16 
17 using namespace A;
18 
test2()19 void test2() {
20   i++; // expected-error {{reference to 'i' is ambiguous}}
21   A::i++;
22   j++;
23 }
24 
25 
26 // Test that all anonymous namespaces in a translation unit are
27 // considered the same context.
28 namespace {
29   class Test3 {}; // expected-note {{previous definition}}
30 }
31 namespace {
32   class Test3 {}; // expected-error {{redefinition of 'Test3'}}
33 }
34 
35 namespace test4 {
36   namespace {
37     class Test4 {}; // expected-note {{previous definition}}
38   }
39   namespace {
40     class Test4 {}; // expected-error {{redefinition of 'Test4'}}
41   }
42 }
43