diff options
author | Stephen Hines <srhines@google.com> | 2014-04-23 16:57:46 -0700 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2014-04-24 15:53:16 -0700 |
commit | 36b56886974eae4f9c5ebc96befd3e7bfe5de338 (patch) | |
tree | e6cfb69fbbd937f450eeb83bfb83b9da3b01275a /test/CodeGen/X86/dllexport-x86_64.ll | |
parent | 69a8640022b04415ae9fac62f8ab090601d8f889 (diff) | |
download | external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.zip external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.gz external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.bz2 |
Update to LLVM 3.5a.
Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
Diffstat (limited to 'test/CodeGen/X86/dllexport-x86_64.ll')
-rw-r--r-- | test/CodeGen/X86/dllexport-x86_64.ll | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/test/CodeGen/X86/dllexport-x86_64.ll b/test/CodeGen/X86/dllexport-x86_64.ll new file mode 100644 index 0000000..a38c2d8 --- /dev/null +++ b/test/CodeGen/X86/dllexport-x86_64.ll @@ -0,0 +1,104 @@ +; 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: .globl alias +; CHECK: alias = notExported +@alias = dllexport alias void()* @notExported + +; CHECK: .globl alias2 +; CHECK: alias2 = f1 +@alias2 = dllexport alias void()* @f1 + +; CHECK: .globl alias3 +; CHECK: alias3 = notExported +@alias3 = dllexport alias void()* @alias + +; CHECK: .weak weak_alias +; CHECK: weak_alias = f1 +@weak_alias = dllexport alias weak_odr void()* @f1 + + +; 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 +; WIN32: /EXPORT:alias +; WIN32: /EXPORT:alias2 +; WIN32: /EXPORT:alias3 +; WIN32: /EXPORT:weak_alias +; 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 +; MINGW: -export:alias +; MINGW: -export:alias2 +; MINGW: -export:alias3 +; MINGW: -export:weak_alias |