https://gcc.gnu.org/g:be54e3106ae967e8c23dca57b75525931fd28287
commit r16-5245-gbe54e3106ae967e8c23dca57b75525931fd28287 Author: Michal Jires <[email protected]> Date: Thu Nov 13 13:53:12 2025 +0100 lto/122603: Fix missing null check with toplevel_node I missed a null check for asm_node when introducing toplevel_node. PR lto/122603 gcc/lto/ChangeLog: * lto-partition.cc (split_partition_into_nodes): Null check for possible asm_node. gcc/testsuite/ChangeLog: * gcc.dg/lto/pr122603_0.c: New test. Diff: --- gcc/lto/lto-partition.cc | 4 ++-- gcc/testsuite/gcc.dg/lto/pr122603_0.c | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/lto/lto-partition.cc b/gcc/lto/lto-partition.cc index baeafc7fafd2..8c6ec6f83387 100644 --- a/gcc/lto/lto-partition.cc +++ b/gcc/lto/lto-partition.cc @@ -548,8 +548,8 @@ split_partition_into_nodes (ltrans_partition part) toplevel_node *node = lsei_node (lsei); symtab_node *snode = dyn_cast <symtab_node*> (node); - if (snode->get_partitioning_class () != SYMBOL_PARTITION - || symbol_partitioned_p (snode)) + if (snode && (snode->get_partitioning_class () != SYMBOL_PARTITION + || symbol_partitioned_p (snode))) continue; ltrans_partition new_part = new_partition_no_push (part->name); diff --git a/gcc/testsuite/gcc.dg/lto/pr122603_0.c b/gcc/testsuite/gcc.dg/lto/pr122603_0.c new file mode 100644 index 000000000000..127aeb70316a --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/pr122603_0.c @@ -0,0 +1,6 @@ +/* PR lto/122603 */ +/* { dg-lto-do link } */ +/* { dg-lto-options { "-O0 -flto -flto-partition=cache --param=lto-min-partition=1" } } */ + +int main() {} +asm("");
