| /* PR rtl-optimization/47337 */ |
| |
| static unsigned int a[256], b = 0; |
| static char c = 0; |
| static int d = 0, *f = &d; |
| static long long e = 0; |
| |
| static short |
| foo (long long x, long long y) |
| { |
| return x / y; |
| } |
| |
| static char |
| bar (char x, char y) |
| { |
| return x - y; |
| } |
| |
| static int |
| baz (int x, int y) |
| { |
| *f = (y != (short) (y * 3)); |
| for (c = 0; c < 2; c++) |
| { |
| lab: |
| if (d) |
| { |
| if (e) |
| e = 1; |
| else |
| return x; |
| } |
| else |
| { |
| d = 1; |
| goto lab; |
| } |
| f = &d; |
| } |
| return x; |
| } |
| |
| static void |
| fnx (unsigned long long x, int y) |
| { |
| if (!y) |
| { |
| b = a[b & 1]; |
| b = a[b & 1]; |
| b = a[(b ^ (x & 1)) & 1]; |
| b = a[(b ^ (x & 1)) & 1]; |
| } |
| } |
| |
| char *volatile w = "2"; |
| |
| int |
| main () |
| { |
| int h = 0; |
| unsigned int k = 0; |
| int l[8]; |
| int i, j; |
| |
| if (__builtin_strcmp (w, "1") == 0) |
| h = 1; |
| |
| for (i = 0; i < 256; i++) |
| { |
| for (j = 8; j > 0; j--) |
| k = 1; |
| a[i] = k; |
| } |
| for (i = 0; i < 8; i++) |
| l[i] = 0; |
| |
| d = bar (c, c); |
| d = baz (c, 1 | foo (l[0], 10)); |
| fnx (d, h); |
| fnx (e, h); |
| |
| if (d != 0) |
| __builtin_abort (); |
| return 0; |
| } |