1/* PR tree-optimization/64006 */ 2 3int v; 4 5long __attribute__ ((noinline, noclone)) 6test (long *x, int y) 7{ 8 int i; 9 long s = 1; 10 for (i = 0; i < y; i++) 11 if (__builtin_mul_overflow (s, x[i], &s)) 12 v++; 13 return s; 14} 15 16int 17main () 18{ 19 long d[7] = { 975, 975, 975, 975, 975, 975, 975 }; 20 long r = test (d, 7); 21 if (sizeof (long) * __CHAR_BIT__ == 64 && v != 1) 22 __builtin_abort (); 23 else if (sizeof (long) * __CHAR_BIT__ == 32 && v != 4) 24 __builtin_abort (); 25 return 0; 26} 27