From be28c2e4a5e6622fb3356e79a74d27ac0c0450d1 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Wed, 26 Jul 2017 23:47:24 +0000 Subject: [PATCH] Add --gc-sections to a test. This shows that the logic in --gc-sections is a bit more precise than what can be easily done in LTO. llvm-svn: 309234 --- lld/test/ELF/lto/section-name.ll | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lld/test/ELF/lto/section-name.ll b/lld/test/ELF/lto/section-name.ll index cc5f914110e2..483184716a07 100644 --- a/lld/test/ELF/lto/section-name.ll +++ b/lld/test/ELF/lto/section-name.ll @@ -2,6 +2,8 @@ ; RUN: llvm-as %s -o %t.o ; RUN: ld.lld %t.o -o %t.so -shared ; RUN: llvm-readelf -s %t.so | FileCheck %s +; RUN: ld.lld %t.o -o %t.so -shared --gc-sections +; RUN: llvm-readelf -s %t.so | FileCheck --check-prefix=GC %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @@ -13,7 +15,7 @@ target triple = "x86_64-unknown-linux-gnu" @__start_foo_section = external global i32 @__stop_bar_section = external global i32 -define i32* @use1() { +define hidden i32* @use1() { ret i32* @__start_foo_section } @@ -25,3 +27,9 @@ define i32* @use2() { ; CHECK: foo_section PROGBITS ; CHECK-NEXT: bar_section PROGBITS ; CHECK-NOT: zed_section + +; GC-NOT: zed_section +; GC-NOT: foo_section +; GC: bar_section PROGBITS +; GC-NOT: zed_section +; GC-NOT: foo_section