2 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
4 #define SCHAR_MIN (-__SCHAR_MAX__ - 1)
5 #define SHRT_MIN (-__SHRT_MAX__ - 1)
6 #define INT_MIN (-__INT_MAX__ - 1)
7 #define LONG_MIN (-__LONG_MAX__ - 1L)
8 #define LLONG_MIN (-__LONG_LONG_MAX__ - 1LL)
10 #define CHECK(A, B) ({ if ((A) != (B)) __builtin_abort (); })
15 volatile signed char c
= -SCHAR_MIN
;
18 volatile short s
= -SHRT_MIN
;
21 volatile int i
= INT_MIN
;
23 CHECK (i
, -0x80000000);
25 volatile long int li
= LONG_MIN
;
26 li
= -(unsigned long) li
;
27 #if __LONG_MAX__ == 2147483647L
28 CHECK (li
, -0x80000000L
);
29 #elif __LONG_MAX__ == 9223372036854775807L
30 CHECK (li
, -0x8000000000000000L
);
33 volatile long long lli
= LLONG_MIN
;
34 lli
= -(unsigned long long) lli
;
35 CHECK (lli
, -0x8000000000000000L
);