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("");

Reply via email to