brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 1e8df0c Raw
27 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s2 3// FIXME: We should probably suppress the warning on reopening an inline4// namespace without the inline keyword if it's not the first opening of the5// namespace in the file, because there's no risk of the inlineness differing6// across TUs in that case.7 8namespace NIL {} // expected-note {{previous definition}}9inline namespace NIL {} // expected-error {{cannot be reopened as inline}}10inline namespace IL {} // expected-note {{previous definition}}11namespace IL {} // expected-warning{{inline namespace reopened as a non-inline namespace}}12 13namespace {} // expected-note {{previous definition}}14inline namespace {} // expected-error {{cannot be reopened as inline}}15namespace X {16  inline namespace {} // expected-note {{previous definition}}17  namespace {} // expected-warning {{inline namespace reopened as a non-inline namespace}}18}19 20namespace std {}21inline namespace std {} // expected-error{{cannot declare the namespace 'std' to be inline}}22inline namespace std::foo {} // expected-error{{cannot declare the namespace 'std' to be inline}}23                             // expected-error@-1{{nested namespace definition cannot be 'inline'}}24namespace foo::inline std {} // expected-note {{previous definition}}25namespace foo { inline namespace std {} } // OK26namespace foo { namespace std {} } // expected-warning {{inline namespace reopened as a non-inline namespace}}27