summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2018-09-14 06:08:56 +0000
committerMartin Storsjo <martin@martin.st>2018-09-14 06:08:56 +0000
commit4c1b815d39a078ebfe6457560ad67f382a7c439f (patch)
tree6f94c1d37cc93e8cc3de10f0ed51e42d47f8c0cd
parent4c201a8ba56984608ce6d9b76692799972116237 (diff)
downloadbcm5719-llvm-4c1b815d39a078ebfe6457560ad67f382a7c439f.tar.gz
bcm5719-llvm-4c1b815d39a078ebfe6457560ad67f382a7c439f.zip
[COFF] Allow embedded directives to be separated by null bytes
The PE spec says that they will be separated by spaces, but link.exe handles it just fine if they are separated by null bytes as well. This adds tests to the lld repo, with the actual functional change in LLVM in SVN r342204. Differential Revision: https://reviews.llvm.org/D52014 llvm-svn: 342206
-rw-r--r--lld/test/COFF/directives.s46
1 files changed, 46 insertions, 0 deletions
diff --git a/lld/test/COFF/directives.s b/lld/test/COFF/directives.s
new file mode 100644
index 00000000000..9c4b7efd1dc
--- /dev/null
+++ b/lld/test/COFF/directives.s
@@ -0,0 +1,46 @@
+# REQUIRES: x86
+
+# RUN: llvm-mc -triple=x86_64-windows %s -filetype=obj -o %t.obj
+
+# RUN: lld-link -dll -out:%t.dll -entry:entry %t.obj -subsystem:console
+# RUN: llvm-objdump -p %t.dll | FileCheck %s
+
+# CHECK: Export Table:
+# CHECK: DLL name: directives.s.tmp.dll
+# CHECK: Ordinal RVA Name
+# CHECK-NEXT: 0 0
+# CHECK-NEXT: 1 0x1000 exportfn1
+# CHECK-NEXT: 2 0x1000 exportfn2
+# CHECK-NEXT: 3 0x1000 exportfn3
+# CHECK-NEXT: 4 0x1000 exportfn4
+# CHECK-NEXT: 5 0x1000 exportfn5
+# CHECK-NEXT: 6 0x1000 exportfn6
+
+ .global entry
+ .global exportfn1
+ .global exportfn2
+ .global exportfn3
+ .global exportfn4
+ .global exportfn5
+ .global exportfn6
+ .text
+entry:
+exportfn1:
+exportfn2:
+exportfn3:
+exportfn4:
+exportfn5:
+exportfn6:
+ ret
+ .section .drectve
+# Test that directive strings can be separated by any combination of
+# spaces and null bytes.
+ .ascii "-export:exportfn1 "
+ .asciz "-export:exportfn2"
+ .asciz "-export:exportfn3"
+ .asciz "-export:exportfn4 "
+ .byte 0
+ .ascii " "
+ .byte 0
+ .asciz "-export:exportfn5"
+ .asciz " -export:exportfn6"
OpenPOWER on IntegriCloud