aboutsummaryrefslogtreecommitdiff
path: root/test/ELF/gc-sections-lsda.s
diff options
context:
space:
mode:
Diffstat (limited to 'test/ELF/gc-sections-lsda.s')
-rw-r--r--test/ELF/gc-sections-lsda.s21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/ELF/gc-sections-lsda.s b/test/ELF/gc-sections-lsda.s
new file mode 100644
index 000000000000..b5bed8f0c816
--- /dev/null
+++ b/test/ELF/gc-sections-lsda.s
@@ -0,0 +1,21 @@
+// REQUIRES: x86
+
+// RUN: llvm-mc %s -o %t.o -filetype=obj -triple=x86_64-pc-linux
+// RUN: ld.lld -shared --gc-sections %t.o -o %t
+
+// Test that we handle .eh_frame keeping sections alive. We could be more
+// precise and gc the entire contents of this file, but test that at least
+// we are consistent: if we keep .abc, we have to keep .foo
+
+// RUN: llvm-readobj -s %t | FileCheck %s
+// CHECK: Name: .abc
+// CHECK: Name: .foo (38)
+
+ .cfi_startproc
+ .cfi_lsda 0x1b,zed
+ .cfi_endproc
+ .section .abc,"a"
+zed:
+ .long bar-.
+ .section .foo,"ax"
+bar: