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  }