1/* { dg-do run } */
2/* { dg-options "-fsanitize=undefined -fsanitize-undefined-trap-on-error" } */
3
4int __attribute__((noinline,noclone))
5h(int a)
6{
7  return 2 * (a * (__INT_MAX__/2 + 1));
8}
9int __attribute__((noinline,noclone))
10i(int a)
11{
12  return (2 * a) * (__INT_MAX__/2 + 1);
13}
14int __attribute__((noinline,noclone))
15j(int a, int b)
16{
17  return (b * a) * (__INT_MAX__/2 + 1);
18}
19int __attribute__((noinline,noclone))
20k(int a, int b)
21{
22  return (2 * a) * b;
23}
24int 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}
32