modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr64006.c (about) 1 /* PR tree-optimization/64006 */ 2 3 int v; 4 5 long __attribute__ ((noinline, noclone)) 6 test (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 16 int 17 main () 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 }