| /* { dg-options "-O -fexpensive-optimizations -fno-tree-bit-ccp" } */ | |
| __attribute__ ((noinline, noclone)) | |
| int | |
| foo (unsigned short x, unsigned short y) | |
| { | |
| int r; | |
| if (__builtin_mul_overflow (x, y, &r)) | |
| __builtin_abort (); | |
| return r; | |
| } | |
| int | |
| main (void) | |
| { | |
| int x = 1; | |
| int y = 2; | |
| if (foo (x, y) != x * y) | |
| __builtin_abort (); | |
| return 0; | |
| } | |