1 /* Test for builtin abs, labs, llabs, imaxabs. Test for __builtin versions. */
2 /* Origin: Joseph Myers <jsm28@cam.ac.uk> */
5 typedef __INTMAX_TYPE__
intmax_t;
6 #define INTMAX_MAX __INTMAX_MAX__
8 extern void abort (void);
9 extern void link_error (void);
14 /* For each type, test both runtime and compile time (constant folding)
16 volatile int i0
= 0, i1
= 1, im1
= -1, imin
= -INT_MAX
, imax
= INT_MAX
;
17 volatile long l0
= 0L, l1
= 1L, lm1
= -1L, lmin
= -LONG_MAX
, lmax
= LONG_MAX
;
18 volatile long long ll0
= 0LL, ll1
= 1LL, llm1
= -1LL;
19 volatile long long llmin
= -__LONG_LONG_MAX__
, llmax
= __LONG_LONG_MAX__
;
20 volatile intmax_t imax0
= 0, imax1
= 1, imaxm1
= -1;
21 volatile intmax_t imaxmin
= -INTMAX_MAX
, imaxmax
= INTMAX_MAX
;
22 if (__builtin_abs (i0
) != 0)
24 if (__builtin_abs (0) != 0)
26 if (__builtin_abs (i1
) != 1)
28 if (__builtin_abs (1) != 1)
30 if (__builtin_abs (im1
) != 1)
32 if (__builtin_abs (-1) != 1)
34 if (__builtin_abs (imin
) != INT_MAX
)
36 if (__builtin_abs (-INT_MAX
) != INT_MAX
)
38 if (__builtin_abs (imax
) != INT_MAX
)
40 if (__builtin_abs (INT_MAX
) != INT_MAX
)
42 if (__builtin_labs (l0
) != 0L)
44 if (__builtin_labs (0L) != 0L)
46 if (__builtin_labs (l1
) != 1L)
48 if (__builtin_labs (1L) != 1L)
50 if (__builtin_labs (lm1
) != 1L)
52 if (__builtin_labs (-1L) != 1L)
54 if (__builtin_labs (lmin
) != LONG_MAX
)
56 if (__builtin_labs (-LONG_MAX
) != LONG_MAX
)
58 if (__builtin_labs (lmax
) != LONG_MAX
)
60 if (__builtin_labs (LONG_MAX
) != LONG_MAX
)
62 if (__builtin_llabs (ll0
) != 0LL)
64 if (__builtin_llabs (0LL) != 0LL)
66 if (__builtin_llabs (ll1
) != 1LL)
68 if (__builtin_llabs (1LL) != 1LL)
70 if (__builtin_llabs (llm1
) != 1LL)
72 if (__builtin_llabs (-1LL) != 1LL)
74 if (__builtin_llabs (llmin
) != __LONG_LONG_MAX__
)
76 if (__builtin_llabs (-__LONG_LONG_MAX__
) != __LONG_LONG_MAX__
)
78 if (__builtin_llabs (llmax
) != __LONG_LONG_MAX__
)
80 if (__builtin_llabs (__LONG_LONG_MAX__
) != __LONG_LONG_MAX__
)
82 if (__builtin_imaxabs (imax0
) != 0)
84 if (__builtin_imaxabs (0) != 0)
86 if (__builtin_imaxabs (imax1
) != 1)
88 if (__builtin_imaxabs (1) != 1)
90 if (__builtin_imaxabs (imaxm1
) != 1)
92 if (__builtin_imaxabs (-1) != 1)
94 if (__builtin_imaxabs (imaxmin
) != INTMAX_MAX
)
96 if (__builtin_imaxabs (-INTMAX_MAX
) != INTMAX_MAX
)
98 if (__builtin_imaxabs (imaxmax
) != INTMAX_MAX
)
100 if (__builtin_imaxabs (INTMAX_MAX
) != INTMAX_MAX
)