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]").