| /* PR tree-optimization/64006 */ | |
| int v; | |
| long __attribute__ ((noinline, noclone)) | |
| test (long *x, int y) | |
| { | |
| int i; | |
| long s = 1; | |
| for (i = 0; i < y; i++) | |
| if (__builtin_mul_overflow (s, x[i], &s)) | |
| v++; | |
| return s; | |
| } | |
| int | |
| main () | |
| { | |
| long d[7] = { 975, 975, 975, 975, 975, 975, 975 }; | |
| long r = test (d, 7); | |
| if (sizeof (long) * __CHAR_BIT__ == 64 && v != 1) | |
| __builtin_abort (); | |
| else if (sizeof (long) * __CHAR_BIT__ == 32 && v != 4) | |
| __builtin_abort (); | |
| return 0; | |
| } |