[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