| /* PR rtl-optimization/45695 */ | |
| extern void abort (void); | |
| __attribute__((noinline)) void | |
| g (int x) | |
| { | |
| asm volatile ("" : "+r" (x)); | |
| } | |
| __attribute__((noinline)) int | |
| f (int a, int b, int d) | |
| { | |
| int r = -1; | |
| b += d; | |
| if (d == a) | |
| r = b - d; | |
| g (b); | |
| return r; | |
| } | |
| int | |
| main (void) | |
| { | |
| int l; | |
| asm ("" : "=r" (l) : "0" (0)); | |
| if (f (l + 0, l + 1, l + 4) != -1) | |
| abort (); | |
| if (f (l + 4, l + 1, l + 4) != 1) | |
| abort (); | |
| return 0; | |
| } |