From 3dfd545671f0b3ffb2bd5166637381665fea7ebb Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Mon, 8 Dec 2025 10:25:21 +0100 Subject: [PATCH] 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). --- gcc/cgraph.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc index abea2e2d2ae..9e273642dab 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) { -- 2.47.3