2 /* { dg-options "-fsanitize=signed-integer-overflow -Wno-unused-variable" } */
3 /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */
5 #define SCHAR_MIN (-__SCHAR_MAX__ - 1)
6 #define SHRT_MIN (-__SHRT_MAX__ - 1)
7 #define INT_MIN (-__INT_MAX__ - 1)
8 #define LONG_MIN (-__LONG_MAX__ - 1L)
9 #define LLONG_MIN (-__LONG_LONG_MAX__ - 1LL)
11 #define CHECK(A, B) ({ if ((A) != (B)) __builtin_abort (); })
16 volatile signed char c
= -SCHAR_MIN
;
19 volatile short s
= -SHRT_MIN
;
22 volatile int i
= INT_MIN
;
24 CHECK (i
, -0x80000000);
26 volatile long int li
= LONG_MIN
;
27 li
= -(unsigned long) li
;
28 #if __LONG_MAX__ == 2147483647L
29 CHECK (li
, -0x80000000L
);
30 #elif __LONG_MAX__ == 9223372036854775807L
31 CHECK (li
, -0x8000000000000000L
);
34 volatile long long lli
= LLONG_MIN
;
35 lli
= -(unsigned long long) lli
;
36 CHECK (lli
, -0x8000000000000000L
);