annotate gcc/testsuite/gcc.c-torture/execute/pr45695.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR rtl-optimization/45695 */
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 extern void abort (void);
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 __attribute__((noinline)) void
kono
parents:
diff changeset
6 g (int x)
kono
parents:
diff changeset
7 {
kono
parents:
diff changeset
8 asm volatile ("" : "+r" (x));
kono
parents:
diff changeset
9 }
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 __attribute__((noinline)) int
kono
parents:
diff changeset
12 f (int a, int b, int d)
kono
parents:
diff changeset
13 {
kono
parents:
diff changeset
14 int r = -1;
kono
parents:
diff changeset
15 b += d;
kono
parents:
diff changeset
16 if (d == a)
kono
parents:
diff changeset
17 r = b - d;
kono
parents:
diff changeset
18 g (b);
kono
parents:
diff changeset
19 return r;
kono
parents:
diff changeset
20 }
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 int
kono
parents:
diff changeset
23 main (void)
kono
parents:
diff changeset
24 {
kono
parents:
diff changeset
25 int l;
kono
parents:
diff changeset
26 asm ("" : "=r" (l) : "0" (0));
kono
parents:
diff changeset
27 if (f (l + 0, l + 1, l + 4) != -1)
kono
parents:
diff changeset
28 abort ();
kono
parents:
diff changeset
29 if (f (l + 4, l + 1, l + 4) != 1)
kono
parents:
diff changeset
30 abort ();
kono
parents:
diff changeset
31 return 0;
kono
parents:
diff changeset
32 }