[Bug ipa/122956] [16 regression] ICE caused by r16-4000 when building LLVM14 with -Ofast -flto=auto
liuhongt at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Dec 16 02:21:10 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122956
--- Comment #16 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
Created attachment 63060
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=63060&action=edit
GPT5 fix V2.
Reworked with GPT-5-Codex
Restored cgraph_edge::resolve_speculation in cgraph.cc to the documented
behaviour (resolve exactly one direct edge per call) and taught
cgraph_update_edges_for_call_stmt_node to walk the entire speculative bundle:
it now discards every non-matching speculative target, resolves the requested
one, and then clears any residue so inline no longer leaves orphaned direct
edges. Added devirt-multitarget-1.C, which forces a two-target speculation
through inlining and used to trip the verifier; it now checks that the devirt
dump reports two speculative targets and that the inline dump records the
speculation being resolved. Please rerun the g++ IPA test (e.g. make check-g++
RUNTESTFLAGS="ipa.exp=devirt-multitarget-1.C") to confirm.
The unit test doesn't work, but ICE in the PR is also fixed by the V2 patch.
More information about the Gcc-bugs
mailing list