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

            Bug ID: 128143
           Summary: [17 Regression] ICE: verify_gimple failed
                    (incompatible types in PHI argument) with
                    __builtin_sub_overflow_p at -O2
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: yuki.tanaka at defaultcase dot de
  Target Milestone: ---

int a(int c, signed char x, long long y)
{
  int r;
  if (c)
    r = __builtin_sub_overflow_p(y, x, (short) 0);
  else
    r = __builtin_sub_overflow_p(y, -40000, (short) 0);
  return r;
}

Compiler Explorer (GCC 16.1 vs. 17):
https://godbolt.org/z/TjzdEddMG

GCC 17:
<source>: In function 'a':
<source>:9:1: error: incompatible types in 'PHI' argument 1
    9 | }
      | ^
signed char

int

_14 = PHI <x_12(D)(2), -40000(3)>
during GIMPLE pass: phiopt
<source>:9:1: internal compiler error: verify_gimple failed
0x28d2df8 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*,
__va_list_tag (*) [1], diagnostics::kind)
        ???:0
0x28c7a3b internal_error(char const*, ...)
        ???:0
0x12cb5be verify_gimple_in_cfg(function*, bool, bool)
        ???:0
/cefs/23/233fa2ea98c67e18f0f4c2ed_gcc-trunk-20261024/bin/../libexec/gcc/x86_64-linux-gnu/17.0.0/cc1
-quiet -imultiarch x86_64-linux-gnu -iprefix
/cefs/23/233fa2ea98c67e18f0f4c2ed_gcc-trunk-20261024/bin/../lib/gcc/x86_64-linux-gnu/17.0.0/
<source> -quiet -dumpdir /app/ -dumpbase output.c -dumpbase-ext .c -masm=intel
-mtune=generic -march=x86-64 -g -O2 -fdiagnostics-color=always -fno-verbose-asm
-o /app/output.s

Possibly related to r17-3822-g44c89620f73 ("phiopt: Fix factor/merging out of
calls [PR126977]").

Reply via email to