https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71554
Bug ID: 71554 Summary: Miscompilation of __builtin_mul_overflow on i686 Product: gcc Version: 5.4.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- Following testcase is miscompiled with -O2 -m32 on 5.x: int v; __attribute__ ((noinline, noclone)) void bar (void) { v++; } __attribute__ ((noinline, noclone)) void foo (unsigned int x) { signed int y = ((-__INT_MAX__ - 1) / 2); signed int r; if (__builtin_mul_overflow (x, y, &r)) bar (); } int main () { foo (2); if (v) __builtin_abort (); return 0; }