annotate gcc/testsuite/gcc.dg/absu.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* { dg-do run } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 /* { dg-options "-O0" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 #include <limits.h>
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 #define ABS(x) (((x) >= 0) ? (x) : -(x))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 #define DEF_TEST(TYPE) \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 void foo_##TYPE (signed TYPE x, unsigned TYPE y){ \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 TYPE t = ABS (x); \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 if (t != y) \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 __builtin_abort (); \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 } \
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 DEF_TEST (char);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 DEF_TEST (short);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 DEF_TEST (int);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 DEF_TEST (long);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 int main ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 foo_char (SCHAR_MIN + 1, SCHAR_MAX);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 foo_char (0, 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 foo_char (-1, 1);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 foo_char (1, 1);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 foo_char (SCHAR_MAX, SCHAR_MAX);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 foo_int (-1, 1);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 foo_int (0, 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 foo_int (INT_MAX, INT_MAX);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 foo_int (INT_MIN + 1, INT_MAX);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 foo_short (-1, 1);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 foo_short (0, 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 foo_short (SHRT_MAX, SHRT_MAX);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 foo_short (SHRT_MIN + 1, SHRT_MAX);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 foo_long (-1, 1);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 foo_long (0, 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 foo_long (LONG_MAX, LONG_MAX);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 foo_long (LONG_MIN + 1, LONG_MAX);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45