[PATCH] D86543: [lld][ELF][test] Expand testing of symbols in mergeable sections
James Henderson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 27 02:39:43 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rGd2385f6d2f1b: [lld][ELF][test] Expand testing of symbols in mergeable sections (authored by jhenderson).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D86543/new/
https://reviews.llvm.org/D86543
Files:
lld/test/ELF/merge-sym-gc.s
lld/test/ELF/merge-sym.s
Index: lld/test/ELF/merge-sym.s
===================================================================
--- lld/test/ELF/merge-sym.s
+++ lld/test/ELF/merge-sym.s
@@ -1,21 +1,21 @@
// REQUIRES: x86
// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
// RUN: ld.lld %t.o -o %t.so -shared
-// RUN: llvm-readobj --symbols -S %t.so | FileCheck %s
+// RUN: llvm-readelf --symbols -S %t.so | FileCheck %s
.section .rodata.cst4,"aM", at progbits,4
.short 0
foo:
.short 42
+ .short 0
+bar:
+ .short 42
-// CHECK: Name: .rodata
-// CHECK-NEXT: Type: SHT_PROGBITS
-// CHECK-NEXT: Flags [
-// CHECK-NEXT: SHF_ALLOC
-// CHECK-NEXT: SHF_MERGE
-// CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x20D
+// CHECK: Name Type Address {{.*}} ES Flg
+// CHECK: .rodata PROGBITS [[#%x, ADDR:]] {{.*}} 04 AM{{ }}
-// CHECK: Name: foo
-// CHECK-NEXT: Value: 0x20F
+// CHECK: Symbol table '.symtab' contains {{.*}} entries:
+// CHECK-NEXT: Num: Value {{.*}} Name
+// CHECK-DAG: {{.*}}: {{0*}}[[#ADDR+2]] {{.*}} foo
+// CHECK-DAG: {{.*}}: {{0*}}[[#ADDR+2]] {{.*}} bar
Index: lld/test/ELF/merge-sym-gc.s
===================================================================
--- /dev/null
+++ lld/test/ELF/merge-sym-gc.s
@@ -0,0 +1,37 @@
+# REQUIRES: x86
+## Show how symbols in GCed mergeable pieces behave.
+
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: ld.lld --gc-sections %t.o -o %t.elf
+# RUN: llvm-readelf %t.elf --sections --syms | FileCheck %s
+
+.section .rodata.merge,"aM", at progbits,4
+a1: ## Unreferenced. In first fragment, kept by a2 reference.
+ .short 1
+a2: ## Referenced.
+ .short 1
+b1: ## Unreferenced. Discarded as second fragment is unreferenced.
+ .short 1
+b2: ## Unreferenced. Discarded as second fragment is unreferenced.
+ .short 1
+c1: ## Referenced.
+ .short 1
+c2: ## Unreferenced. In third fragment, kept by c1 reference.
+ .short 1
+
+.data
+.global _start
+_start:
+ .quad a2
+ .quad c1
+
+# CHECK: .rodata PROGBITS [[#%x, ADDR:]]
+
+# CHECK: Symbol table '.symtab' contains 6 entries:
+# CHECK-NEXT: Num: Value {{.*}} Ndx Name
+# CHECK-NEXT: 0: {{.*}} UND{{ *$}}
+# CHECK-NEXT: 1: {{0*}}[[#ADDR]] {{.*}} a1
+# CHECK-NEXT: 2: {{0*}}[[#ADDR+2]] {{.*}} a2
+# CHECK-NEXT: 3: {{0*}}[[#ADDR]] {{.*}} c1
+# CHECK-NEXT: 4: {{0*}}[[#ADDR+2]] {{.*}} c2
+# CHECK-NEXT: 5: {{.*}} _start
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D86543.288251.patch
Type: text/x-patch
Size: 2558 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200827/3992e88a/attachment.bin>
More information about the llvm-commits
mailing list