/* { dg-do run } */ /* { dg-additional-options "-ftrapv" } */ /* { dg-require-effective-target trapping } */ /* { dg-require-fork "" } */ #include #include #include #include /* Verify SImode operations properly trap. PR middle-end/52478 */ /* Disallow inlining/cloning which would constant propagate and trigger unrelated bugs. */ int __attribute__((noinline,noclone)) iaddv (int a, int b) { return a + b; } int main(void) { pid_t child = fork (); int status = 0; if (child == 0) { volatile int x = iaddv (__INT_MAX__, 1); exit (0); } else if (child == -1) return 0; if (wait (&status) == child && status == 0) abort (); return 0; }