[PATCH] D18682: Add some dllexport tests
Warren Ristow via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 31 23:12:54 PDT 2016
wristow created this revision.
wristow added reviewers: rnk, majnemer, silvas.
wristow added a subscriber: llvm-commits.
Adds some dllexport tests to verify that:
- Variables in bss are exported appropriately
- Non-dllexport symbols aliased to dllexport symbols are not exported
- Symbols declared as dllexport but are not defined are not exported
We plan to enable dllimport/dllexport support for the PS4, and these
additional tests are for points we noticed in our internal testing.
http://reviews.llvm.org/D18682
Files:
llvm/test/CodeGen/X86/dllexport-x86_64.ll
Index: llvm/test/CodeGen/X86/dllexport-x86_64.ll
===================================================================
--- llvm/test/CodeGen/X86/dllexport-x86_64.ll
+++ llvm/test/CodeGen/X86/dllexport-x86_64.ll
@@ -52,11 +52,19 @@
; CHECK: .globl WeakVar2
@WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1
+; CHECK: .bss
+; CHECK: .globl WeakVar3
+ at WeakVar3 = weak_odr dllexport global i32 0, align 4
+
; CHECK: .globl alias
; CHECK: alias = notExported
@alias = dllexport alias void(), void()* @notExported
+; CHECK: .globl aliasNotExported
+; CHECK: aliasNotExported = f1
+ at aliasNotExported = alias void(), void()* @f1
+
; CHECK: .globl alias2
; CHECK: alias2 = f1
@alias2 = dllexport alias void(), void()* @f1
@@ -72,10 +80,22 @@
@blob = global [6 x i8] c"\B8*\00\00\00\C3", section ".text", align 16
@blob_alias = dllexport alias i32 (), bitcast ([6 x i8]* @blob to i32 ()*)
-; Verify item that should not be exported does not appear in the export table.
+ at exportedButNotDefinedVariable = external dllexport global i32
+declare dllexport void @exportedButNotDefinedFunction()
+define void @foo() {
+entry:
+ store i32 4, i32* @exportedButNotDefinedVariable, align 4
+ call void @exportedButNotDefinedFunction()
+ ret void
+}
+
+; Verify items that should not be exported do not appear in the export table.
; We use a separate check prefix to avoid confusion between -NOT and -SAME.
; NOTEXPORTED: .section .drectve
; NOTEXPORTED-NOT: notExported
+; NOTEXPORTED-NOT: aliasNotExported
+; NOTEXPORTED-NOT: exportedButNotDefinedVariable
+; NOTEXPORTED-NOT: exportedButNotDefinedFunction
; CHECK: .section .drectve
; WIN32: /EXPORT:f1
@@ -88,6 +108,7 @@
; WIN32-SAME: /EXPORT:Var3,DATA
; WIN32-SAME: /EXPORT:WeakVar1,DATA
; WIN32-SAME: /EXPORT:WeakVar2,DATA
+; WIN32-SAME: /EXPORT:WeakVar3,DATA
; WIN32-SAME: /EXPORT:alias
; WIN32-SAME: /EXPORT:alias2
; WIN32-SAME: /EXPORT:alias3
@@ -103,6 +124,7 @@
; MINGW-SAME: -export:Var3,data
; MINGW-SAME: -export:WeakVar1,data
; MINGW-SAME: -export:WeakVar2,data
+; MINGW-SAME: -export:WeakVar3,data
; MINGW-SAME: -export:alias
; MINGW-SAME: -export:alias2
; MINGW-SAME: -export:alias3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18682.52326.patch
Type: text/x-patch
Size: 2174 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160401/ff8d4f5d/attachment.bin>
More information about the llvm-commits
mailing list