Viewing file: pr91450-2.c (1.18 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* PR middle-end/91450 */
__attribute__((noipa)) void foo (int a, int b) { unsigned long long r; if (__builtin_mul_overflow (a, b, &r)) __builtin_abort (); if (r != 0) __builtin_abort (); }
__attribute__((noipa)) void bar (int a, int b) { unsigned long long r; if (a >= 0) return; if (__builtin_mul_overflow (a, b, &r)) __builtin_abort (); if (r != 0) __builtin_abort (); }
__attribute__((noipa)) void baz (int a, int b) { unsigned long long r; if (b >= 0) return; if (__builtin_mul_overflow (a, b, &r)) __builtin_abort (); if (r != 0) __builtin_abort (); }
__attribute__((noipa)) void qux (int a, int b) { unsigned long long r; if (a >= 0) return; if (b < 0) return; if (__builtin_mul_overflow (a, b, &r)) __builtin_abort (); if (r != 0) __builtin_abort (); }
__attribute__((noipa)) void quux (int a, int b) { unsigned long long r; if (a < 0) return; if (b >= 0) return; if (__builtin_mul_overflow (a, b, &r)) __builtin_abort (); if (r != 0) __builtin_abort (); }
int main () { foo (-4, 0); foo (0, -4); foo (0, 0); bar (-4, 0); baz (0, -4); qux (-4, 0); quux (0, -4); return 0; }
|