[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 16:06:09 PDT 2021
This revision was automatically updated to reflect the committed changes.
int3 marked an inline comment as done.
Closed by commit rG413e249a47ce: [lld-macho][nfc] Test that we don't emit undef symbol errors for dead code (authored by int3).
Changed prior to commit:
https://reviews.llvm.org/D112485?vs=382105&id=382150#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D112485/new/
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,31 +1,42 @@
# REQUIRES: x86
+# RUN: split-file %s %t
-# 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: llvm-mc -filetype=obj -triple=x86_64-apple-macos %s -o %t/live.o
+# RUN: not %lld -undefined bogus -o /dev/null %t/live.o 2>&1 | \
# RUN: FileCheck %s -check-prefix=UNKNOWN
-# RUN: not %lld -undefined error -o /dev/null %t.o 2>&1 | \
+# RUN: not %lld -undefined error -o /dev/null %t/live.o 2>&1 | \
# RUN: FileCheck %s -check-prefix=ERROR
-# RUN: not %lld -undefined warning -o /dev/null %t.o 2>&1 | \
+# RUN: not %lld -undefined warning -o /dev/null %t/live.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 -undefined suppress -o /dev/null %t/live.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: llvm-objdump --macho --lazy-bind %t.out \
+# RUN: %lld -undefined dynamic_lookup -lSystem -o %t/live.out %t/live.o 2>&1 | count 0
+# RUN: llvm-objdump --macho --lazy-bind %t/live.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: -o %t/live.out %t/live.o 2>&1 | \
# RUN: FileCheck %s -check-prefix=WARNING
-# RUN: llvm-objdump --macho --lazy-bind %t.out \
+# RUN: llvm-objdump --macho --lazy-bind %t/live.out \
# RUN: | FileCheck --check-prefix=BIND %s
-# RUN: %lld -flat_namespace -lSystem -undefined suppress -o %t.out %t.o 2>&1 | count 0
-# RUN: llvm-objdump --macho --lazy-bind %t.out \
+# RUN: %lld -flat_namespace -lSystem -undefined suppress -o %t/live.out %t/live.o \
+# RUN: 2>&1 | count 0
+# RUN: llvm-objdump --macho --lazy-bind %t/live.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: llvm-objdump --macho --lazy-bind %t.out \
+# RUN: %lld -flat_namespace -lSystem -undefined dynamic_lookup -o \
+# RUN: %t/live.out %t/live.o 2>&1 | count 0
+# RUN: llvm-objdump --macho --lazy-bind %t/live.out \
# RUN: | FileCheck --check-prefix=BIND %s
+## Undefined symbols in dead code should not raise an error iff
+## -dead_strip is enabled.
+# RUN: not %lld -dylib -undefined error -o /dev/null %t/dead.o 2>&1 \
+# RUN: | FileCheck --check-prefix=ERROR %s
+# RUN: not %lld -dylib -dead_strip -undefined error -o /dev/null %t/live.o 2>&1\
+# RUN: | FileCheck --check-prefix=ERROR %s
+# RUN: %lld -dylib -dead_strip -undefined error -o /dev/null %t/dead.o
+
# ERROR: error: undefined symbol: _bar
# ERROR-NEXT: >>> referenced by
@@ -45,7 +56,13 @@
# BIND: Lazy bind table:
# BIND: __DATA __la_symbol_ptr 0x{{[0-9a-f]*}} flat-namespace _bar
+#--- live.s
.globl _main
_main:
callq _bar
ret
+
+#--- dead.s
+_dead:
+ callq _bar
+ ret
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112485.382150.patch
Type: text/x-patch
Size: 3213 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211025/f4020a28/attachment.bin>
More information about the llvm-commits
mailing list