]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ipa/122456 - fix ICE during LTO profiledbootstrap
authorRichard Biener <rguenther@suse.de>
Mon, 8 Dec 2025 09:25:21 +0000 (10:25 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 16 Dec 2025 07:30:43 +0000 (08:30 +0100)
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

index abea2e2d2ae9983edaeab756f54bf966fb1efb08..9e273642dab99d5fdf7eef20b5d21ee9a49663d8 100644 (file)
@@ -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)
        {