[lld] [ELF] Fix assertion in cdsort (PR #71708)

via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 8 09:31:31 PST 2023


https://github.com/spupyrev updated https://github.com/llvm/llvm-project/pull/71708

>From 5a402353c32fc838fbfbbd91a4dd3c0651398aee Mon Sep 17 00:00:00 2001
From: spupyrev <spupyrev at fb.com>
Date: Wed, 8 Nov 2023 09:28:27 -0800
Subject: [PATCH] [ELF] Fix assertion in cdsort

---
 lld/ELF/CallGraphSort.cpp     |  1 -
 lld/test/ELF/cgprofile-txt2.s | 11 +++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/lld/ELF/CallGraphSort.cpp b/lld/ELF/CallGraphSort.cpp
index 5e36964da94fc52..a0cf491bbae35ba 100644
--- a/lld/ELF/CallGraphSort.cpp
+++ b/lld/ELF/CallGraphSort.cpp
@@ -287,7 +287,6 @@ DenseMap<const InputSectionBase *, int> elf::computeCacheDirectedSortOrder() {
     if (res.second) {
       // inSec does not appear before in the graph.
       sections.push_back(inSec);
-      assert(inSec->getSize() > 0 && "found a function with zero size");
       funcSizes.push_back(inSec->getSize());
       funcCounts.push_back(0);
     }
diff --git a/lld/test/ELF/cgprofile-txt2.s b/lld/test/ELF/cgprofile-txt2.s
index b59b6eeb292fabf..bb9e78a4a2e9c2b 100644
--- a/lld/test/ELF/cgprofile-txt2.s
+++ b/lld/test/ELF/cgprofile-txt2.s
@@ -5,11 +5,13 @@
 # RUN: echo "B C 50" >> %t.call_graph
 # RUN: echo "C D 40" >> %t.call_graph
 # RUN: echo "D B 10" >> %t.call_graph
+# RUN: echo "D E 1" >> %t.call_graph
 # RUN: ld.lld -e A %t --call-graph-ordering-file %t.call_graph --call-graph-profile-sort=hfsort -o %t2
 # RUN: llvm-readobj --symbols %t2 | FileCheck %s --check-prefix=CHECKC3
 # RUN: ld.lld -e A %t --call-graph-ordering-file %t.call_graph --call-graph-profile-sort=cdsort -o %t2
 # RUN: llvm-readobj --symbols %t2 | FileCheck %s --check-prefix=CHECKCDS
 
+## The expected order is [B, C, D, E, A]
 # CHECKC3:      Name: A
 # CHECKC3-NEXT: Value: 0x201123
 # CHECKC3:      Name: B
@@ -18,7 +20,10 @@
 # CHECKC3-NEXT: Value: 0x201121
 # CHECKC3:      Name: D
 # CHECKC3-NEXT: Value: 0x201122
+# CHECKC3:      Name: E
+# CHECKC3-NEXT: Value: 0x201123
 
+## The expected order is [A, B, C, D, E]
 # CHECKCDS:      Name: A
 # CHECKCDS-NEXT: Value: 0x201120
 # CHECKCDS:      Name: B
@@ -27,6 +32,8 @@
 # CHECKCDS-NEXT: Value: 0x201122
 # CHECKCDS:      Name: D
 # CHECKCDS-NEXT: Value: 0x201123
+# CHECKCDS:      Name: E
+# CHECKCDS-NEXT: Value: 0x201124
 
 .section    .text.A,"ax", at progbits
 .globl  A
@@ -47,3 +54,7 @@ C:
 .globl  D
 D:
  nop
+
+.section    .text.E,"ax", at progbits
+.globl  E
+E:



More information about the llvm-commits mailing list