// RUN: clang-cc -fsyntax-only -verify %s namespace A { // expected-note 2 {{previous definition is here}} int A; void f() { A = 0; } } void f() { A = 0; } // expected-error {{unexpected namespace name 'A': expected expression}} int A; // expected-error {{redefinition of 'A' as different kind of symbol}} class A; // expected-error {{redefinition of 'A' as different kind of symbol}} class B {}; // expected-note {{previous definition is here}} void C(); // expected-note {{previous definition is here}} namespace C {} // expected-error {{redefinition of 'C' as different kind of symbol}} namespace D { class D {}; } namespace S1 { int x; namespace S2 { namespace S3 { B x; } } } namespace S1 { void f() { x = 0; } namespace S2 { namespace S3 { void f() { x = 0; // expected-error {{no viable overloaded '='}} } } int y; } } namespace S1 { namespace S2 { namespace S3 { void f3() { y = 0; } } } } namespace B {} // expected-error {{redefinition of 'B' as different kind of symbol}} namespace foo { enum x { Y }; } static foo::x test1; // ok static foo::X test2; // typo: expected-error {{unknown type name 'X'}}