xref: /aosp_15_r20/external/clang/test/Headers/c11.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: rm -rf %t
2*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify -std=c11 %s
3*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify -std=c11 -fmodules -fmodules-cache-path=%t %s -D__STDC_WANT_LIB_EXT1__=1
4*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify -std=c11 -ffreestanding %s
5*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify -std=c11 -triple i686-pc-win32 -fms-compatibility-version=17.00 %s
6*67e74705SXin Li 
7*67e74705SXin Li noreturn int f(); // expected-error 1+{{}}
8*67e74705SXin Li 
9*67e74705SXin Li #include <stdnoreturn.h>
10*67e74705SXin Li #include <stdnoreturn.h>
11*67e74705SXin Li #include <stdnoreturn.h>
12*67e74705SXin Li 
13*67e74705SXin Li int g();
14*67e74705SXin Li noreturn int g();
15*67e74705SXin Li int noreturn g();
16*67e74705SXin Li int g();
17*67e74705SXin Li 
18*67e74705SXin Li #include <stdalign.h>
19*67e74705SXin Li _Static_assert(__alignas_is_defined, "");
20*67e74705SXin Li _Static_assert(__alignof_is_defined, "");
21*67e74705SXin Li alignas(alignof(int)) char c[4];
22*67e74705SXin Li _Static_assert(__alignof(c) == 4, "");
23*67e74705SXin Li 
24*67e74705SXin Li #define __STDC_WANT_LIB_EXT1__ 1
25*67e74705SXin Li #include <stddef.h>
26*67e74705SXin Li rsize_t x = 0;
27*67e74705SXin Li _Static_assert(sizeof(max_align_t) >= sizeof(long long), "");
28*67e74705SXin Li _Static_assert(alignof(max_align_t) >= alignof(long long), "");
29*67e74705SXin Li _Static_assert(sizeof(max_align_t) >= sizeof(long double), "");
30*67e74705SXin Li _Static_assert(alignof(max_align_t) >= alignof(long double), "");
31*67e74705SXin Li 
32*67e74705SXin Li #ifdef _MSC_VER
33*67e74705SXin Li _Static_assert(sizeof(max_align_t) == sizeof(double), "");
34*67e74705SXin Li #endif
35*67e74705SXin Li 
36*67e74705SXin Li // If we are freestanding, then also check RSIZE_MAX (in a hosted implementation
37*67e74705SXin Li // we will use the host stdint.h, which may not yet have C11 support).
38*67e74705SXin Li #ifndef __STDC_HOSTED__
39*67e74705SXin Li #include <stdint.h>
40*67e74705SXin Li rsize_t x2 = RSIZE_MAX;
41*67e74705SXin Li #endif
42*67e74705SXin Li 
43