https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119803
Bug ID: 119803 Summary: ICE on valid code at -O{2,3} on x86_64-linux-gnu: in verify_mask, at value-range.cc:2484 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zhendong.su at inf dot ethz.ch Target Milestone: --- This appears to be a very recent regression as it doesn't reproduce with the latest build from Compiler Explorer. [551] % gcctk -v Using built-in specs. COLLECT_GCC=gcctk COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/15.0.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-trunk/configure --disable-bootstrap --enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk --enable-sanitizers --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix Supported LTO compression algorithms: zlib gcc version 15.0.1 20250414 (experimental) (GCC) [552] % [552] % gcctk -O2 -c small.c during IPA pass: cp small.c:13:1: internal compiler error: in verify_mask, at value-range.cc:2484 13 | } | ^ 0x26efca6 internal_error(char const*, ...) ../../gcc-trunk/gcc/diagnostic-global-context.cc:517 0xac6192 fancy_abort(char const*, int, char const*) ../../gcc-trunk/gcc/diagnostic.cc:1749 0x95086d irange_bitmask::verify_mask() const ../../gcc-trunk/gcc/value-range.cc:2484 0x252f059 irange_bitmask::irange_bitmask(generic_wide_int<wide_int_storage> const&, generic_wide_int<wide_int_storage> const&) ../../gcc-trunk/gcc/value-range.h:185 0x252f059 ipcp_store_vr_results ../../gcc-trunk/gcc/ipa-cp.cc:6389 0x252fbea ipcp_driver ../../gcc-trunk/gcc/ipa-cp.cc:6468 0x252fbea execute ../../gcc-trunk/gcc/ipa-cp.cc:6539 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. [553] % [553] % cat small.c extern void f(int p); int a, b; char c; static int d(int e) { return !e || a == 1 ? 0 : a / e; } static void h(short e) { int g = d(e); f(g); } void i() { c = 128; h(c); b = d(65536); }