xref: /llvm-project/clang/test/Parser/c11-keywords.c (revision 97434cb318d170a14914126f33181b759197ba41)
1 // RUN: %clang_cc1 %s -std=c11 -fsyntax-only -verify=compat -Wpre-c11-compat
2 // RUN: %clang_cc1 %s -std=c99 -fsyntax-only -verify=ext -pedantic
3 // RUN: %clang_cc1 %s -std=c11 -fsyntax-only -verify=good
4 // RUN: %clang_cc1 -x c++ %s -fsyntax-only -verify=ext -pedantic
5 
6 // good-no-diagnostics
7 
8 extern _Noreturn void exit(int); /* compat-warning {{'_Noreturn' is incompatible with C standards before C11}}
9                                     ext-warning {{'_Noreturn' is a C11 extension}}
10                                   */
11 
func(void)12 void func(void) {
13   static _Thread_local int tl;   /* compat-warning {{'_Thread_local' is incompatible with C standards before C11}}
14                                     ext-warning {{'_Thread_local' is a C11 extension}}
15                                   */
16   _Alignas(8) char c;            /* compat-warning {{'_Alignas' is incompatible with C standards before C11}}
17                                     ext-warning {{'_Alignas' is a C11 extension}}
18                                   */
19   _Atomic int i1;                /* compat-warning {{'_Atomic' is incompatible with C standards before C11}}
20                                     ext-warning {{'_Atomic' is a C11 extension}}
21                                   */
22   _Atomic(int) i2;               /* compat-warning {{'_Atomic' is incompatible with C standards before C11}}
23                                     ext-warning {{'_Atomic' is a C11 extension}}
24                                   */
25 
26   _Static_assert(1, "");         /* compat-warning {{'_Static_assert' is incompatible with C standards before C11}}
27                                     ext-warning {{'_Static_assert' is a C11 extension}}
28                                   */
29 
30   (void)_Generic(1, int : 1);    /* compat-warning {{'_Generic' is incompatible with C standards before C11}}
31                                     ext-warning {{'_Generic' is a C11 extension}}
32                                   */
33   (void)_Alignof(int);           /* compat-warning {{'_Alignof' is incompatible with C standards before C11}}
34                                     ext-warning {{'_Alignof' is a C11 extension}}
35                                   */
36 }
37 
38