Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/X86/dllexport.ll @ 83:60c9769439b8 LLVM3.7
LLVM 3.7
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Feb 2015 14:55:36 +0900 |
parents | 54457678186b |
children | afa8332a0e37 |
comparison
equal
deleted
inserted
replaced
78:af83660cff7b | 83:60c9769439b8 |
---|---|
19 ; CHECK: .globl _f2 | 19 ; CHECK: .globl _f2 |
20 define dllexport void @f2() unnamed_addr { | 20 define dllexport void @f2() unnamed_addr { |
21 ret void | 21 ret void |
22 } | 22 } |
23 | 23 |
24 declare dllexport void @not_defined() | |
25 | |
24 ; CHECK: .globl _stdfun@0 | 26 ; CHECK: .globl _stdfun@0 |
25 define dllexport x86_stdcallcc void @stdfun() nounwind { | 27 define dllexport x86_stdcallcc void @stdfun() nounwind { |
26 ret void | 28 ret void |
27 } | 29 } |
28 | 30 |
34 ; CHECK: .globl _thisfun | 36 ; CHECK: .globl _thisfun |
35 define dllexport x86_thiscallcc void @thisfun() nounwind { | 37 define dllexport x86_thiscallcc void @thisfun() nounwind { |
36 ret void | 38 ret void |
37 } | 39 } |
38 | 40 |
39 ; CHECK: .section .text,"xr",discard,_lnk1 | |
40 ; CHECK: .globl _lnk1 | 41 ; CHECK: .globl _lnk1 |
41 define linkonce_odr dllexport void @lnk1() { | 42 define linkonce_odr dllexport void @lnk1() { |
42 ret void | 43 ret void |
43 } | 44 } |
44 | 45 |
45 ; CHECK: .section .text,"xr",discard,_lnk2 | |
46 ; CHECK: .globl _lnk2 | 46 ; CHECK: .globl _lnk2 |
47 define linkonce_odr dllexport void @lnk2() alwaysinline { | 47 define linkonce_odr dllexport void @lnk2() alwaysinline { |
48 ret void | 48 ret void |
49 } | 49 } |
50 | 50 |
51 ; CHECK: .section .text,"xr",discard,_weak1 | |
52 ; CHECK: .globl _weak1 | 51 ; CHECK: .globl _weak1 |
53 define weak_odr dllexport void @weak1() { | 52 define weak_odr dllexport void @weak1() { |
54 ret void | 53 ret void |
55 } | 54 } |
56 | 55 |
57 | 56 |
58 ; CHECK: .data | 57 ; CHECK: .data |
59 ; CHECK: .globl _Var1 | 58 ; CHECK: .globl _Var1 |
60 @Var1 = dllexport global i32 1, align 4 | 59 @Var1 = dllexport global i32 1, align 4 |
61 | 60 |
62 ; CHECK: .rdata,"rd" | 61 ; CHECK: .rdata,"dr" |
63 ; CHECK: .globl _Var2 | 62 ; CHECK: .globl _Var2 |
64 @Var2 = dllexport unnamed_addr constant i32 1 | 63 @Var2 = dllexport unnamed_addr constant i32 1 |
65 | 64 |
66 ; CHECK: .comm _Var3 | 65 ; CHECK: .comm _Var3 |
67 @Var3 = common dllexport global i32 0, align 4 | 66 @Var3 = common dllexport global i32 0, align 4 |
68 | 67 |
69 ; CHECK: .section .data,"wd",discard,_WeakVar1 | |
70 ; CHECK: .globl _WeakVar1 | 68 ; CHECK: .globl _WeakVar1 |
71 @WeakVar1 = weak_odr dllexport global i32 1, align 4 | 69 @WeakVar1 = weak_odr dllexport global i32 1, align 4 |
72 | 70 |
73 ; CHECK: .section .rdata,"rd",discard,_WeakVar2 | |
74 ; CHECK: .globl _WeakVar2 | 71 ; CHECK: .globl _WeakVar2 |
75 @WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1 | 72 @WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1 |
76 | 73 |
77 | 74 |
78 ; CHECK: .globl _alias | 75 ; CHECK: .globl _alias |
89 | 86 |
90 ; CHECK: .weak _weak_alias | 87 ; CHECK: .weak _weak_alias |
91 ; CHECK: _weak_alias = _f1 | 88 ; CHECK: _weak_alias = _f1 |
92 @weak_alias = weak_odr dllexport alias void()* @f1 | 89 @weak_alias = weak_odr dllexport alias void()* @f1 |
93 | 90 |
94 | |
95 ; CHECK: .section .drectve | 91 ; CHECK: .section .drectve |
96 ; CHECK-CL: " /EXPORT:_Var1,DATA" | 92 ; CHECK-CL: " /EXPORT:_Var1,DATA" |
97 ; CHECK-CL: " /EXPORT:_Var2,DATA" | 93 ; CHECK-CL: " /EXPORT:_Var2,DATA" |
98 ; CHECK-CL: " /EXPORT:_Var3,DATA" | 94 ; CHECK-CL: " /EXPORT:_Var3,DATA" |
99 ; CHECK-CL: " /EXPORT:_WeakVar1,DATA" | 95 ; CHECK-CL: " /EXPORT:_WeakVar1,DATA" |
100 ; CHECK-CL: " /EXPORT:_WeakVar2,DATA" | 96 ; CHECK-CL: " /EXPORT:_WeakVar2,DATA" |
101 ; CHECK-CL: " /EXPORT:_f1" | 97 ; CHECK-CL: " /EXPORT:_f1" |
102 ; CHECK-CL: " /EXPORT:_f2" | 98 ; CHECK-CL: " /EXPORT:_f2" |
99 ; CHECK-CL-NOT: not_exported | |
103 ; CHECK-CL: " /EXPORT:_stdfun@0" | 100 ; CHECK-CL: " /EXPORT:_stdfun@0" |
104 ; CHECK-CL: " /EXPORT:@fastfun@0" | 101 ; CHECK-CL: " /EXPORT:@fastfun@0" |
105 ; CHECK-CL: " /EXPORT:_thisfun" | 102 ; CHECK-CL: " /EXPORT:_thisfun" |
106 ; CHECK-CL: " /EXPORT:_lnk1" | 103 ; CHECK-CL: " /EXPORT:_lnk1" |
107 ; CHECK-CL: " /EXPORT:_lnk2" | 104 ; CHECK-CL: " /EXPORT:_lnk2" |
115 ; CHECK-GCC: " -export:Var3,data" | 112 ; CHECK-GCC: " -export:Var3,data" |
116 ; CHECK-GCC: " -export:WeakVar1,data" | 113 ; CHECK-GCC: " -export:WeakVar1,data" |
117 ; CHECK-GCC: " -export:WeakVar2,data" | 114 ; CHECK-GCC: " -export:WeakVar2,data" |
118 ; CHECK-GCC: " -export:f1" | 115 ; CHECK-GCC: " -export:f1" |
119 ; CHECK-GCC: " -export:f2" | 116 ; CHECK-GCC: " -export:f2" |
117 ; CHECK-CL-NOT: not_exported | |
120 ; CHECK-GCC: " -export:stdfun@0" | 118 ; CHECK-GCC: " -export:stdfun@0" |
121 ; CHECK-GCC: " -export:@fastfun@0" | 119 ; CHECK-GCC: " -export:@fastfun@0" |
122 ; CHECK-GCC: " -export:thisfun" | 120 ; CHECK-GCC: " -export:thisfun" |
123 ; CHECK-GCC: " -export:lnk1" | 121 ; CHECK-GCC: " -export:lnk1" |
124 ; CHECK-GCC: " -export:lnk2" | 122 ; CHECK-GCC: " -export:lnk2" |