Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CXX / dcl.dcl / basic.namespace / namespace.def / p7.cpp
blob1e8df0cdd8ed79009e917d085ed5f9bfd37d1c9f
1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s
3 // FIXME: We should probably suppress the warning on reopening an inline
4 // namespace without the inline keyword if it's not the first opening of the
5 // namespace in the file, because there's no risk of the inlineness differing
6 // across TUs in that case.
8 namespace NIL {} // expected-note {{previous definition}}
9 inline namespace NIL {} // expected-error {{cannot be reopened as inline}}
10 inline namespace IL {} // expected-note {{previous definition}}
11 namespace IL {} // expected-warning{{inline namespace reopened as a non-inline namespace}}
13 namespace {} // expected-note {{previous definition}}
14 inline namespace {} // expected-error {{cannot be reopened as inline}}
15 namespace X {
16 inline namespace {} // expected-note {{previous definition}}
17 namespace {} // expected-warning {{inline namespace reopened as a non-inline namespace}}
20 namespace std {}
21 inline namespace std {} // expected-error{{cannot declare the namespace 'std' to be inline}}
22 inline namespace std::foo {} // expected-error{{cannot declare the namespace 'std' to be inline}}
23 // expected-error@-1{{nested namespace definition cannot be 'inline'}}
24 namespace foo::inline std {} // expected-note {{previous definition}}
25 namespace foo { inline namespace std {} } // OK
26 namespace foo { namespace std {} } // expected-warning {{inline namespace reopened as a non-inline namespace}}