xref: /llvm-project/clang/test/Parser/c23-constexpr.c (revision aced81c0a5bf30dda99fde2e28364426de4c18d3)
1*aced81c0SMariya Podchishchaeva // RUN: %clang_cc1 -fsyntax-only -verify=c23 -std=c23 %s -Wpre-c2x-compat
2*aced81c0SMariya Podchishchaeva // RUN: %clang_cc1 -fsyntax-only -verify=c17 -std=c17 %s
3*aced81c0SMariya Podchishchaeva 
4*aced81c0SMariya Podchishchaeva constexpr int a = 0; // c17-error {{unknown type name 'constexpr'}} \
5*aced81c0SMariya Podchishchaeva                         c23-warning {{'constexpr' is incompatible with C standards before C23}}
6*aced81c0SMariya Podchishchaeva 
7*aced81c0SMariya Podchishchaeva void func(int array[constexpr]); // c23-error {{expected expression}} \
8*aced81c0SMariya Podchishchaeva                                  // c17-error {{use of undeclared}}
9*aced81c0SMariya Podchishchaeva 
10*aced81c0SMariya Podchishchaeva _Atomic constexpr int b = 0; // c23-error {{constexpr variable cannot have type 'const _Atomic(int)'}} \
11*aced81c0SMariya Podchishchaeva                              // c23-warning {{'constexpr' is incompatible with C standards before C23}} \
12*aced81c0SMariya Podchishchaeva                              // c17-error {{unknown type name 'constexpr'}}
13*aced81c0SMariya Podchishchaeva 
14*aced81c0SMariya Podchishchaeva int static constexpr c = 1; // c17-error {{expected ';' after top level declarator}} \
15*aced81c0SMariya Podchishchaeva                             // c23-warning {{'constexpr' is incompatible with C standards before C23}}
16