]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/pr38364.c
replace ISL with isl
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / pr38364.c
CommitLineData
0196c95e
JJ
1/* PR middle-end/38364 */
2/* { dg-do run } */
3/* { dg-options "-O2 -ftrapv" } */
2e30c7fb 4/* { dg-require-effective-target trapping } */
0196c95e
JJ
5
6extern void abort (void);
7
8static inline short
9f1 (short x, short y)
10{
11 if (x > 0)
12 {
13 if (y > 0)
14 {
15 if (x > __SHRT_MAX__ / y)
16 return x;
17 }
18 else if (y < (-__SHRT_MAX__ - 1) / x)
19 return x;
20 }
21 else
22 {
23 if (y > 0)
24 {
25 if (x < (-__SHRT_MAX__ - 1) / y)
26 return x;
27 }
28 else if (x != 0 && y < __SHRT_MAX__ / x)
29 return x;
30 }
31 return x * y;
32}
33
34static inline signed char
35f2 (signed char x, signed char y)
36{
37 if (((x ^ y) & (((x ^ ((x ^ y) & (1 << (__CHAR_BIT__ - 1)))) - y) ^ y)) < 0)
38 return x;
39 return x - y;
40}
41
42unsigned int v;
43
44int
45f3 (int x, unsigned int y)
46{
47 f1 (1, 1);
48 return 1;
49}
50
51int
52f4 (unsigned short x)
53{
54 v = x;
55 return 1;
56}
57
58int
59f5 (int x)
60{
61 if (f2 (x, 1))
62 f1 (1, f4 (1));
63 return x;
64}
65
66int
67f6 (unsigned int x)
68{
69 f4 (x < (1 != f5 (0)));
70 return x;
71}
72
73int
74main (void)
75{
76 f6 (1);
77 if (v != 0)
78 abort ();
79 return 0;
80}