77
|
1 ; RUN: llc -mtriple i386-pc-win32 < %s \
|
|
2 ; RUN: | FileCheck -check-prefix CHECK -check-prefix CHECK-CL %s
|
|
3 ; RUN: llc -mtriple i386-pc-mingw32 < %s \
|
|
4 ; RUN: | FileCheck -check-prefix CHECK -check-prefix CHECK-GCC %s
|
|
5 ; RUN: llc -mtriple i686-pc-cygwin %s -o - \
|
|
6 ; RUN: | FileCheck -check-prefix CHECK -check-prefix CHECK-GCC %s
|
|
7
|
|
8 ; CHECK: .text
|
|
9
|
|
10 define void @notExported() {
|
|
11 ret void
|
|
12 }
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13
|
77
|
14 ; CHECK: .globl _f1
|
|
15 define dllexport void @f1() {
|
|
16 ret void
|
|
17 }
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18
|
77
|
19 ; CHECK: .globl _f2
|
|
20 define dllexport void @f2() unnamed_addr {
|
|
21 ret void
|
|
22 }
|
|
23
|
83
|
24 declare dllexport void @not_defined()
|
|
25
|
77
|
26 ; CHECK: .globl _stdfun@0
|
|
27 define dllexport x86_stdcallcc void @stdfun() nounwind {
|
|
28 ret void
|
|
29 }
|
|
30
|
|
31 ; CHECK: .globl @fastfun@0
|
|
32 define dllexport x86_fastcallcc i32 @fastfun() nounwind {
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 ret i32 0
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35
|
77
|
36 ; CHECK: .globl _thisfun
|
|
37 define dllexport x86_thiscallcc void @thisfun() nounwind {
|
|
38 ret void
|
|
39 }
|
|
40
|
|
41 ; CHECK: .globl _lnk1
|
|
42 define linkonce_odr dllexport void @lnk1() {
|
|
43 ret void
|
|
44 }
|
|
45
|
|
46 ; CHECK: .globl _lnk2
|
|
47 define linkonce_odr dllexport void @lnk2() alwaysinline {
|
|
48 ret void
|
|
49 }
|
|
50
|
|
51 ; CHECK: .globl _weak1
|
|
52 define weak_odr dllexport void @weak1() {
|
|
53 ret void
|
|
54 }
|
|
55
|
|
56
|
|
57 ; CHECK: .data
|
|
58 ; CHECK: .globl _Var1
|
|
59 @Var1 = dllexport global i32 1, align 4
|
|
60
|
83
|
61 ; CHECK: .rdata,"dr"
|
77
|
62 ; CHECK: .globl _Var2
|
|
63 @Var2 = dllexport unnamed_addr constant i32 1
|
|
64
|
|
65 ; CHECK: .comm _Var3
|
|
66 @Var3 = common dllexport global i32 0, align 4
|
|
67
|
|
68 ; CHECK: .globl _WeakVar1
|
|
69 @WeakVar1 = weak_odr dllexport global i32 1, align 4
|
|
70
|
|
71 ; CHECK: .globl _WeakVar2
|
|
72 @WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1
|
|
73
|
|
74
|
|
75 ; CHECK: .globl _alias
|
|
76 ; CHECK: _alias = _notExported
|
95
|
77 @alias = dllexport alias void(), void()* @notExported
|
77
|
78
|
|
79 ; CHECK: .globl _alias2
|
|
80 ; CHECK: _alias2 = _f1
|
95
|
81 @alias2 = dllexport alias void(), void()* @f1
|
77
|
82
|
|
83 ; CHECK: .globl _alias3
|
|
84 ; CHECK: _alias3 = _notExported
|
95
|
85 @alias3 = dllexport alias void(), void()* @notExported
|
77
|
86
|
|
87 ; CHECK: .weak _weak_alias
|
|
88 ; CHECK: _weak_alias = _f1
|
95
|
89 @weak_alias = weak_odr dllexport alias void(), void()* @f1
|
77
|
90
|
0
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91 ; CHECK: .section .drectve
|
95
|
92 ; CHECK-CL-NOT: not_exported
|
|
93 ; CHECK-CL: /EXPORT:_f1
|
|
94 ; CHECK-CL-SAME: /EXPORT:_f2
|
|
95 ; CHECK-CL-SAME: /EXPORT:_stdfun@0
|
|
96 ; CHECK-CL-SAME: /EXPORT:@fastfun@0
|
|
97 ; CHECK-CL-SAME: /EXPORT:_thisfun
|
|
98 ; CHECK-CL-SAME: /EXPORT:_lnk1
|
|
99 ; CHECK-CL-SAME: /EXPORT:_lnk2
|
|
100 ; CHECK-CL-SAME: /EXPORT:_weak1
|
|
101 ; CHECK-CL-SAME: /EXPORT:_Var1,DATA
|
|
102 ; CHECK-CL-SAME: /EXPORT:_Var2,DATA
|
|
103 ; CHECK-CL-SAME: /EXPORT:_Var3,DATA
|
|
104 ; CHECK-CL-SAME: /EXPORT:_WeakVar1,DATA
|
|
105 ; CHECK-CL-SAME: /EXPORT:_WeakVar2,DATA
|
|
106 ; CHECK-CL-SAME: /EXPORT:_alias
|
|
107 ; CHECK-CL-SAME: /EXPORT:_alias2
|
|
108 ; CHECK-CL-SAME: /EXPORT:_alias3
|
|
109 ; CHECK-CL-SAME: /EXPORT:_weak_alias"
|
83
|
110 ; CHECK-CL-NOT: not_exported
|
95
|
111 ; CHECK-GCC-NOT: not_exported
|
|
112 ; CHECK-GCC: -export:f1
|
|
113 ; CHECK-GCC-SAME: -export:f2
|
|
114 ; CHECK-GCC-SAME: -export:stdfun@0
|
|
115 ; CHECK-GCC-SAME: -export:@fastfun@0
|
|
116 ; CHECK-GCC-SAME: -export:thisfun
|
|
117 ; CHECK-GCC-SAME: -export:lnk1
|
|
118 ; CHECK-GCC-SAME: -export:lnk2
|
|
119 ; CHECK-GCC-SAME: -export:weak1
|
|
120 ; CHECK-GCC-SAME: -export:Var1,data
|
|
121 ; CHECK-GCC-SAME: -export:Var2,data
|
|
122 ; CHECK-GCC-SAME: -export:Var3,data
|
|
123 ; CHECK-GCC-SAME: -export:WeakVar1,data
|
|
124 ; CHECK-GCC-SAME: -export:WeakVar2,data
|
|
125 ; CHECK-GCC-SAME: -export:alias
|
|
126 ; CHECK-GCC-SAME: -export:alias2
|
|
127 ; CHECK-GCC-SAME: -export:alias3
|
|
128 ; CHECK-GCC-SAME: -export:weak_alias"
|
|
129 ; CHECK-GCC-NOT: not_exported
|