]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
lto/122603: Fix missing null check with toplevel_node
authorMichal Jires <mjires@suse.cz>
Thu, 13 Nov 2025 12:53:12 +0000 (13:53 +0100)
committerMichal Jires <mjires@suse.cz>
Thu, 13 Nov 2025 17:41:38 +0000 (18:41 +0100)
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.

gcc/lto/lto-partition.cc
gcc/testsuite/gcc.dg/lto/pr122603_0.c [new file with mode: 0644]

index baeafc7fafd2e16b2b4c5f2665c478c1c627ca1a..8c6ec6f8338767986925201af5b8c2e791c9dd2b 100644 (file)
@@ -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 (file)
index 0000000..127aeb7
--- /dev/null
@@ -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("");