// RUN: clang -fsyntax-only -verify %s namespace A { // expected-note {{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 {{incompatible type assigning 'int', expected 'class B'}} } } int y; } } namespace S1 { namespace S2 { namespace S3 { void f3() { y = 0; } } } } namespace B {} // expected-error {{redefinition of 'B' as different kind of symbol}}