https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77594

            Bug ID: 77594
           Summary: double computation for __builtin_sub_overflow (0, ...)
           Product: gcc
           Version: 6.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ebotcazou at gcc dot gnu.org
  Target Milestone: ---

Compiling:

#include <stdbool.h>

bool my_neg_overflow (int a, int *res)
{
  return __builtin_sub_overflow (0, a, res);
}

at -O0 yields a double computation, first an overflow-negate operation then an
overflow-sub operation.  Probably a missing return in expand_arith_overflow.

Reply via email to