1 // RUN: %clang_cc1 -ffreestanding -fsyntax-only -verify %s
2 // RUN: %clang_cc1 -fno-signed-char -ffreestanding -fsyntax-only -verify %s
3 // RUN: %clang_cc1 -std=c++11 -ffreestanding -fsyntax-only -verify %s
4 // expected-no-diagnostics
8 _Static_assert(SCHAR_MAX
== -(SCHAR_MIN
+1), "");
9 _Static_assert(SHRT_MAX
== -(SHRT_MIN
+1), "");
10 _Static_assert(INT_MAX
== -(INT_MIN
+1), "");
11 _Static_assert(LONG_MAX
== -(LONG_MIN
+1L), "");
13 _Static_assert(SCHAR_MAX
== UCHAR_MAX
/2, "");
14 _Static_assert(SHRT_MAX
== USHRT_MAX
/2, "");
15 _Static_assert(INT_MAX
== UINT_MAX
/2, "");
16 _Static_assert(LONG_MAX
== ULONG_MAX
/2, "");
18 _Static_assert(SCHAR_MIN
== -SCHAR_MAX
-1, "");
19 _Static_assert(SHRT_MIN
== -SHRT_MAX
-1, "");
20 _Static_assert(INT_MIN
== -INT_MAX
-1, "");
21 _Static_assert(LONG_MIN
== -LONG_MAX
-1L, "");
23 _Static_assert(UCHAR_MAX
== (unsigned char)~0ULL, "");
24 _Static_assert(USHRT_MAX
== (unsigned short)~0ULL, "");
25 _Static_assert(UINT_MAX
== (unsigned int)~0ULL, "");
26 _Static_assert(ULONG_MAX
== (unsigned long)~0ULL, "");
28 _Static_assert(MB_LEN_MAX
>= 1, "");
30 _Static_assert(CHAR_BIT
>= 8, "");
32 const bool char_is_signed
= (char)-1 < (char)0;
33 _Static_assert(CHAR_MIN
== (char_is_signed
? -CHAR_MAX
-1 : 0), "");
34 _Static_assert(CHAR_MAX
== (char_is_signed
? -(CHAR_MIN
+1) : (char)~0ULL), "");
36 #if __STDC_VERSION__ >= 199901 || __cplusplus >= 201103L
37 _Static_assert(LLONG_MAX
== -(LLONG_MIN
+1LL), "");
38 _Static_assert(LLONG_MIN
== -LLONG_MAX
-1LL, "");
39 _Static_assert(ULLONG_MAX
== (unsigned long long)~0ULL, "");
41 int LLONG_MIN
, LLONG_MAX
, ULLONG_MAX
; // Not defined.