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