[PATCH] D112485: [lld-macho][nfc] Test that we don't emit undef symbol errors for dead code
Jez Ng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 25 13:26:35 PDT 2021
int3 created this revision.
int3 added a reviewer: lld-macho.
Herald added a reviewer: gkm.
Herald added a project: lld-macho.
int3 requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
This is what ld64 does too, so we have parity here (though I think ld64
still removes dead code more effectively than we do...)
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D112485
Files:
lld/test/MachO/treat-undef-sym.s
Index: lld/test/MachO/treat-undef-sym.s
===================================================================
--- lld/test/MachO/treat-undef-sym.s
+++ lld/test/MachO/treat-undef-sym.s
@@ -1,28 +1,33 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %s -o %t.o
-# RUN: not %lld -undefined bogus -o /dev/null %t.o 2>&1 | \
+# RUN: not %lld -dylib -undefined bogus -o /dev/null %t.o 2>&1 | \
# RUN: FileCheck %s -check-prefix=UNKNOWN
-# RUN: not %lld -undefined error -o /dev/null %t.o 2>&1 | \
+# RUN: not %lld -dylib -undefined error -o /dev/null %t.o 2>&1 | \
# RUN: FileCheck %s -check-prefix=ERROR
+## Since the undefined symbol is in dead code, it should not raise an error if
+## -dead_strip is enabled.
+# RUN: %lld -dylib -dead_strip -undefined error -o /dev/null %t.o
-# RUN: not %lld -undefined warning -o /dev/null %t.o 2>&1 | \
+# RUN: not %lld -dylib -undefined warning -o /dev/null %t.o 2>&1 | \
# RUN: FileCheck %s -check-prefix=INVAL-WARNING
-# RUN: not %lld -undefined suppress -o /dev/null %t.o 2>&1 | \
+# RUN: not %lld -dylib -undefined suppress -o /dev/null %t.o 2>&1 | \
# RUN: FileCheck %s -check-prefix=INVAL-SUPPRESS
-# RUN: %lld -undefined dynamic_lookup -lSystem -o %t.out %t.o 2>&1 | count 0
+# RUN: %lld -dylib -undefined dynamic_lookup -lSystem -o %t.out %t.o 2>&1 | count 0
# RUN: llvm-objdump --macho --lazy-bind %t.out \
# RUN: | FileCheck --check-prefix=BIND %s
-# RUN: %no_fatal_warnings_lld -lSystem -flat_namespace -undefined warning \
-# RUN: -o %t.out %t.o 2>&1 | \
+# RUN: %no_fatal_warnings_lld -dylib -lSystem -flat_namespace \
+# RUN: -undefined warning -o %t.out %t.o 2>&1 | \
# RUN: FileCheck %s -check-prefix=WARNING
# RUN: llvm-objdump --macho --lazy-bind %t.out \
# RUN: | FileCheck --check-prefix=BIND %s
-# RUN: %lld -flat_namespace -lSystem -undefined suppress -o %t.out %t.o 2>&1 | count 0
+# RUN: %lld -dylib -flat_namespace -lSystem -undefined suppress -o %t.out %t.o \
+# RUN: 2>&1 | count 0
# RUN: llvm-objdump --macho --lazy-bind %t.out \
# RUN: | FileCheck --check-prefix=BIND %s
-# RUN: %lld -flat_namespace -lSystem -undefined dynamic_lookup -o %t.out %t.o 2>&1 | count 0
+# RUN: %lld -dylib -flat_namespace -lSystem -undefined dynamic_lookup -o \
+# RUN: %t.out %t.o 2>&1 | count 0
# RUN: llvm-objdump --macho --lazy-bind %t.out \
# RUN: | FileCheck --check-prefix=BIND %s
@@ -45,7 +50,6 @@
# BIND: Lazy bind table:
# BIND: __DATA __la_symbol_ptr 0x{{[0-9a-f]*}} flat-namespace _bar
-.globl _main
-_main:
+_dead:
callq _bar
ret
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112485.382105.patch
Type: text/x-patch
Size: 2602 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211025/e43406d2/attachment.bin>
More information about the llvm-commits
mailing list