1  /* { dg-do run } */
       2  /* { dg-options "-fsanitize=undefined -fsanitize-trap=undefined" } */
       3  
       4  int __attribute__((noinline,noclone))
       5  h(int a)
       6  {
       7    return 2 * (a * (__INT_MAX__/2 + 1));
       8  }
       9  int __attribute__((noinline,noclone))
      10  i(int a)
      11  {
      12    return (2 * a) * (__INT_MAX__/2 + 1);
      13  }
      14  int __attribute__((noinline,noclone))
      15  j(int a, int b)
      16  {
      17    return (b * a) * (__INT_MAX__/2 + 1);
      18  }
      19  int __attribute__((noinline,noclone))
      20  k(int a, int b)
      21  {
      22    return (2 * a) * b;
      23  }
      24  int main()
      25  {
      26    volatile int tem = h(-1);
      27    tem = i(-1);
      28    tem = j(-1, 2);
      29    tem = k(-1, __INT_MAX__/2 + 1);
      30    return 0;
      31  }