https://gcc.gnu.org/g:3dfd545671f0b3ffb2bd5166637381665fea7ebb
commit r16-6154-g3dfd545671f0b3ffb2bd5166637381665fea7ebb Author: Richard Biener <[email protected]> Date: Mon Dec 8 10:25:21 2025 +0100 ipa/122456 - fix ICE during LTO profiledbootstrap When we have a speculated edge but we folded the call to __builtin_unreachable () then trying to update the cgraph ICEs in resolve_speculation because there's no symtab node for __builtin_unreachable (). Reject this resolving attempt similar as to when the callees decl were NULL or it were not semantically equivalent. I only have a LTRANS unit as testcase. PR ipa/122456 * cgraph.cc (cgraph_edge::resolve_speculation): Handle a NULL symtab_node::get (callee_decl). Diff: --- gcc/cgraph.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc index abea2e2d2ae9..9e273642dab9 100644 --- a/gcc/cgraph.cc +++ b/gcc/cgraph.cc @@ -1515,9 +1515,10 @@ cgraph_edge::resolve_speculation (cgraph_edge *edge, tree callee_decl) e2 = edge; ref = e2->speculative_call_target_ref (); edge = edge->speculative_call_indirect_edge (); + symtab_node *callee; if (!callee_decl - || !ref->referred->semantically_equivalent_p - (symtab_node::get (callee_decl))) + || !(callee = symtab_node::get (callee_decl)) + || !ref->referred->semantically_equivalent_p (callee)) { if (dump_file) {
