xref: /llvm-project/clang/test/Parser/cxx-namespace-after-missing-semicolon.cpp (revision b321738f71259d138c9b2002944eb65f099ec2a6)
1*b321738fSAlejandro Álvarez Ayllón // RUN: %clang_cc1 -fsyntax-only -verify %s
2*b321738fSAlejandro Álvarez Ayllón 
3*b321738fSAlejandro Álvarez Ayllón UNKNOWN_MACRO_1("z", 1) // expected-error {{a type specifier is required for all declarations}}
4*b321738fSAlejandro Álvarez Ayllón // expected-error@-1 {{expected ';' after top level declarator}}
5*b321738fSAlejandro Álvarez Ayllón 
6*b321738fSAlejandro Álvarez Ayllón namespace foo {
7*b321738fSAlejandro Álvarez Ayllón   class bar {};
8*b321738fSAlejandro Álvarez Ayllón }
9*b321738fSAlejandro Álvarez Ayllón 
10*b321738fSAlejandro Álvarez Ayllón int variable = 0; // ok
11*b321738fSAlejandro Álvarez Ayllón foo::bar something; // ok
12*b321738fSAlejandro Álvarez Ayllón 
13*b321738fSAlejandro Álvarez Ayllón UNKNOWN_MACRO_2(void) // expected-error {{a type specifier is required for all declarations}}
14*b321738fSAlejandro Álvarez Ayllón // expected-error@-1 {{expected ';' after top level declarator}}
15*b321738fSAlejandro Álvarez Ayllón 
16*b321738fSAlejandro Álvarez Ayllón namespace baz {
17*b321738fSAlejandro Álvarez Ayllón   using Bool = bool;
18*b321738fSAlejandro Álvarez Ayllón }
19*b321738fSAlejandro Álvarez Ayllón 
20*b321738fSAlejandro Álvarez Ayllón int variable2 = 2; // ok
21*b321738fSAlejandro Álvarez Ayllón const baz::Bool flag = false;  // ok
22