[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