summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorNico Rieck <nico.rieck@gmail.com>2014-01-14 12:38:32 +0000
committerNico Rieck <nico.rieck@gmail.com>2014-01-14 12:38:32 +0000
commit55463f4ec19618207dcf07016ad6aa1def429dc4 (patch)
tree0b3bb45fe7076f7ca661939a405b8c49c3a18631 /test
parent62b811443db32e55b37370b421e0f34454417b47 (diff)
downloadllvm-55463f4ec19618207dcf07016ad6aa1def429dc4.tar.gz
llvm-55463f4ec19618207dcf07016ad6aa1def429dc4.tar.bz2
llvm-55463f4ec19618207dcf07016ad6aa1def429dc4.tar.xz
Revert "Decouple dllexport/dllimport from linkage"
Revert this for now until I fix an issue in Clang with it. This reverts commit r199204. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199207 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Bitcode/linkage-types-3.2.ll2
-rw-r--r--test/CodeGen/X86/dll-linkage.ll14
-rw-r--r--test/CodeGen/X86/dllexport-x86_64.ll79
-rw-r--r--test/CodeGen/X86/dllexport.ll100
-rw-r--r--test/CodeGen/X86/dllimport-x86_64.ll48
-rw-r--r--test/CodeGen/X86/dllimport.ll59
6 files changed, 21 insertions, 281 deletions
diff --git a/test/Bitcode/linkage-types-3.2.ll b/test/Bitcode/linkage-types-3.2.ll
index 8bacb124ee..65c31dd128 100644
--- a/test/Bitcode/linkage-types-3.2.ll
+++ b/test/Bitcode/linkage-types-3.2.ll
@@ -50,7 +50,7 @@
; CHECK: @dllexport.var = dllexport global i32 0
@dllimport.var = dllimport global i32
-; CHECK: @dllimport.var = external dllimport global i32
+; CHECK: @dllimport.var = dllimport global i32
define private void @private()
; CHECK: define private void @private
diff --git a/test/CodeGen/X86/dll-linkage.ll b/test/CodeGen/X86/dll-linkage.ll
new file mode 100644
index 0000000000..a0c2a54a99
--- /dev/null
+++ b/test/CodeGen/X86/dll-linkage.ll
@@ -0,0 +1,14 @@
+; RUN: llc < %s -mtriple=i386-pc-mingw32 | FileCheck %s
+
+; RUN: llc < %s -mtriple=i386-pc-mingw32 -O0 | FileCheck %s -check-prefix=FAST
+; PR6275
+
+declare dllimport void @foo()
+
+define void @bar() nounwind {
+; CHECK: calll *__imp__foo
+; FAST: movl __imp__foo, [[R:%[a-z]{3}]]
+; FAST: calll *[[R]]
+ call void @foo()
+ ret void
+}
diff --git a/test/CodeGen/X86/dllexport-x86_64.ll b/test/CodeGen/X86/dllexport-x86_64.ll
deleted file mode 100644
index 6bf73aa536..0000000000
--- a/test/CodeGen/X86/dllexport-x86_64.ll
+++ /dev/null
@@ -1,79 +0,0 @@
-; RUN: llc -mtriple x86_64-pc-win32 < %s | FileCheck -check-prefix=CHECK -check-prefix=WIN32 %s
-; RUN: llc -mtriple x86_64-pc-mingw32 < %s | FileCheck -check-prefix=CHECK -check-prefix=MINGW %s
-
-; CHECK: .text
-
-define void @notExported() {
- ret void
-}
-
-; CHECK: .globl f1
-define dllexport void @f1() {
- ret void
-}
-
-; CHECK: .globl f2
-define dllexport void @f2() unnamed_addr {
- ret void
-}
-
-; CHECK: .section .text,"xr",discard,lnk1
-; CHECK: .globl lnk1
-define linkonce_odr dllexport void @lnk1() {
- ret void
-}
-
-; CHECK: .section .text,"xr",discard,lnk2
-; CHECK: .globl lnk2
-define linkonce_odr dllexport void @lnk2() alwaysinline {
- ret void
-}
-
-; CHECK: .section .text,"xr",discard,weak1
-; CHECK: .globl weak1
-define weak_odr dllexport void @weak1() {
- ret void
-}
-
-
-; CHECK: .data
-; CHECK: .globl Var1
-@Var1 = dllexport global i32 1, align 4
-
-; CHECK: .rdata,"r"
-; CHECK: .globl Var2
-@Var2 = dllexport unnamed_addr constant i32 1
-
-; CHECK: .comm Var3
-@Var3 = common dllexport global i32 0, align 4
-
-; CHECK: .section .data,"w",discard,WeakVar1
-; CHECK: .globl WeakVar1
-@WeakVar1 = weak_odr dllexport global i32 1, align 4
-
-; CHECK: .section .rdata,"r",discard,WeakVar2
-; CHECK: .globl WeakVar2
-@WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1
-
-
-; CHECK: .section .drectve
-; WIN32: /EXPORT:Var1,DATA
-; WIN32: /EXPORT:Var2,DATA
-; WIN32: /EXPORT:Var3,DATA
-; WIN32: /EXPORT:WeakVar1,DATA
-; WIN32: /EXPORT:WeakVar2,DATA
-; WIN32: /EXPORT:f1
-; WIN32: /EXPORT:f2
-; WIN32: /EXPORT:lnk1
-; WIN32: /EXPORT:lnk2
-; WIN32: /EXPORT:weak1
-; MINGW: -export:Var1,data
-; MINGW: -export:Var2,data
-; MINGW: -export:Var3,data
-; MINGW: -export:WeakVar1,data
-; MINGW: -export:WeakVar2,data
-; MINGW: -export:f1
-; MINGW: -export:f2
-; MINGW: -export:lnk1
-; MINGW: -export:lnk2
-; MINGW: -export:weak1
diff --git a/test/CodeGen/X86/dllexport.ll b/test/CodeGen/X86/dllexport.ll
index 1d99212597..bf57e78f35 100644
--- a/test/CodeGen/X86/dllexport.ll
+++ b/test/CodeGen/X86/dllexport.ll
@@ -1,100 +1,12 @@
-; RUN: llc -mtriple i386-pc-win32 < %s | FileCheck -check-prefix=CHECK -check-prefix=WIN32 %s
-; RUN: llc -mtriple i386-pc-mingw32 < %s | FileCheck -check-prefix=CHECK -check-prefix=MINGW %s
+; RUN: llc < %s | FileCheck %s
+; PR2936
-; CHECK: .text
+target triple = "i386-pc-mingw32"
-define void @notExported() {
- ret void
-}
-
-; CHECK: .globl _f1
-define dllexport void @f1() {
- ret void
-}
-
-; CHECK: .globl _f2
-define dllexport void @f2() unnamed_addr {
- ret void
-}
-
-; CHECK: .globl _stdfun@0
-define dllexport x86_stdcallcc void @stdfun() nounwind {
- ret void
-}
-
-; CHECK: .globl @fastfun@0
-define dllexport x86_fastcallcc i32 @fastfun() nounwind {
+define dllexport x86_fastcallcc i32 @foo() nounwind {
+entry:
ret i32 0
}
-; CHECK: .globl _thisfun
-define dllexport x86_thiscallcc void @thisfun() nounwind {
- ret void
-}
-
-; CHECK: .section .text,"xr",discard,_lnk1
-; CHECK: .globl _lnk1
-define linkonce_odr dllexport void @lnk1() {
- ret void
-}
-
-; CHECK: .section .text,"xr",discard,_lnk2
-; CHECK: .globl _lnk2
-define linkonce_odr dllexport void @lnk2() alwaysinline {
- ret void
-}
-
-; CHECK: .section .text,"xr",discard,_weak1
-; CHECK: .globl _weak1
-define weak_odr dllexport void @weak1() {
- ret void
-}
-
-
-; CHECK: .data
-; CHECK: .globl _Var1
-@Var1 = dllexport global i32 1, align 4
-
-; CHECK: .rdata,"r"
-; CHECK: .globl _Var2
-@Var2 = dllexport unnamed_addr constant i32 1
-
-; CHECK: .comm _Var3
-@Var3 = common dllexport global i32 0, align 4
-
-; CHECK: .section .data,"w",discard,_WeakVar1
-; CHECK: .globl _WeakVar1
-@WeakVar1 = weak_odr dllexport global i32 1, align 4
-
-; CHECK: .section .rdata,"r",discard,_WeakVar2
-; CHECK: .globl _WeakVar2
-@WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1
-
-
; CHECK: .section .drectve
-; WIN32: /EXPORT:_Var1,DATA
-; WIN32: /EXPORT:_Var2,DATA
-; WIN32: /EXPORT:_Var3,DATA
-; WIN32: /EXPORT:_WeakVar1,DATA
-; WIN32: /EXPORT:_WeakVar2,DATA
-; WIN32: /EXPORT:_f1
-; WIN32: /EXPORT:_f2
-; WIN32: /EXPORT:_stdfun@0
-; WIN32: /EXPORT:@fastfun@0
-; WIN32: /EXPORT:_thisfun
-; WIN32: /EXPORT:_lnk1
-; WIN32: /EXPORT:_lnk2
-; WIN32: /EXPORT:_weak1
-; MINGW: -export:_Var1,data
-; MINGW: -export:_Var2,data
-; MINGW: -export:_Var3,data
-; MINGW: -export:_WeakVar1,data
-; MINGW: -export:_WeakVar2,data
-; MINGW: -export:_f1
-; MINGW: -export:_f2
-; MINGW: -export:_stdfun@0
-; MINGW: -export:@fastfun@0
-; MINGW: -export:_thisfun
-; MINGW: -export:_lnk1
-; MINGW: -export:_lnk2
-; MINGW: -export:_weak1
+; CHECK: -export:@foo@0
diff --git a/test/CodeGen/X86/dllimport-x86_64.ll b/test/CodeGen/X86/dllimport-x86_64.ll
deleted file mode 100644
index 666409fd4c..0000000000
--- a/test/CodeGen/X86/dllimport-x86_64.ll
+++ /dev/null
@@ -1,48 +0,0 @@
-; RUN: llc -mtriple x86_64-pc-win32 < %s | FileCheck %s
-; RUN: llc -mtriple x86_64-pc-mingw32 < %s | FileCheck %s
-;
-; RUN: llc -mtriple x86_64-pc-mingw32 -O0 < %s | FileCheck %s -check-prefix=FAST
-; PR6275
-;
-; RUN: opt -mtriple x86_64-pc-win32 -std-compile-opts -S < %s | FileCheck %s -check-prefix=OPT
-
-@Var1 = external dllimport global i32
-@Var2 = available_externally dllimport unnamed_addr constant i32 1
-
-declare dllimport void @fun()
-
-define available_externally dllimport void @inline1() {
- ret void
-}
-
-define available_externally dllimport void @inline2() {
- ret void
-}
-
-declare void @dummy(...)
-
-define void @use() nounwind {
-; CHECK: callq *__imp_fun(%rip)
-; FAST: movq __imp_fun(%rip), [[R:%[a-z]{3}]]
-; FAST-NEXT: callq *[[R]]
- call void @fun()
-
-; CHECK: callq *__imp_inline1(%rip)
-; CHECK: callq *__imp_inline2(%rip)
- call void @inline1()
- call void @inline2()
-
-; available_externally uses go away
-; OPT-NOT: call void @inline1()
-; OPT-NOT: call void @inline2()
-; OPT-NOT: load i32* @Var2
-; OPT: call void (...)* @dummy(i32 %1, i32 1)
-
-; CHECK-DAG: movq __imp_Var1(%rip), [[R1:%[a-z]{3}]]
-; CHECK-DAG: movq __imp_Var2(%rip), [[R2:%[a-z]{3}]]
- %1 = load i32* @Var1
- %2 = load i32* @Var2
- call void(...)* @dummy(i32 %1, i32 %2)
-
- ret void
-}
diff --git a/test/CodeGen/X86/dllimport.ll b/test/CodeGen/X86/dllimport.ll
deleted file mode 100644
index 695bfce821..0000000000
--- a/test/CodeGen/X86/dllimport.ll
+++ /dev/null
@@ -1,59 +0,0 @@
-; RUN: llc -mtriple i386-pc-win32 < %s | FileCheck %s
-; RUN: llc -mtriple i386-pc-mingw32 < %s | FileCheck %s
-;
-; RUN: llc -mtriple i386-pc-mingw32 -O0 < %s | FileCheck %s -check-prefix=FAST
-; PR6275
-;
-; RUN: opt -mtriple i386-pc-win32 -std-compile-opts -S < %s | FileCheck %s -check-prefix=OPT
-
-@Var1 = external dllimport global i32
-@Var2 = available_externally dllimport unnamed_addr constant i32 1
-
-declare dllimport void @fun()
-
-define available_externally dllimport void @inline1() {
- ret void
-}
-
-define available_externally dllimport void @inline2() alwaysinline {
- ret void
-}
-
-declare dllimport x86_stdcallcc void @stdfun() nounwind
-declare dllimport x86_fastcallcc void @fastfun() nounwind
-declare dllimport x86_thiscallcc void @thisfun() nounwind
-
-declare void @dummy(...)
-
-define void @use() nounwind {
-; CHECK: calll *__imp__fun
-; FAST: movl __imp__fun, [[R:%[a-z]{3}]]
-; FAST-NEXT: calll *[[R]]
- call void @fun()
-
-; CHECK: calll *__imp__inline1
-; CHECK: calll *__imp__inline2
- call void @inline1()
- call void @inline2()
-
-; CHECK: calll *__imp__stdfun@0
-; CHECK: calll *__imp_@fastfun@0
-; CHECK: calll *__imp__thisfun
- call void @stdfun()
- call void @fastfun()
- call void @thisfun()
-
-; available_externally uses go away
-; OPT-NOT: call void @inline1()
-; OPT-NOT: call void @inline2()
-; OPT-NOT: load i32* @Var2
-; OPT: call void (...)* @dummy(i32 %1, i32 1)
-
-; CHECK-DAG: movl __imp__Var1, [[R1:%[a-z]{3}]]
-; CHECK-DAG: movl __imp__Var2, [[R2:%[a-z]{3}]]
- %1 = load i32* @Var1
- %2 = load i32* @Var2
- call void(...)* @dummy(i32 %1, i32 %2)
-
- ret void
-}