1 ; RUN: llvm-dis < %s.bc| FileCheck %s
3 ; attributes-3.3.ll.bc was generated by passing this file to llvm-as-3.3.
4 ; The test checks that LLVM does not silently misread attributes of
7 define void @f1(i8 zeroext)
8 ; CHECK: define void @f1(i8 zeroext)
13 define void @f2(i8 signext)
14 ; CHECK: define void @f2(i8 signext)
19 define void @f3() noreturn
20 ; CHECK: define void @f3() #0
25 define void @f4(i8 inreg)
26 ; CHECK: define void @f4(i8 inreg)
31 define void @f5(i8* sret)
32 ; CHECK: define void @f5(i8* sret)
37 define void @f6() nounwind
38 ; CHECK: define void @f6() #1
43 define void @f7(i8* noalias)
44 ; CHECK: define void @f7(i8* noalias)
49 define void @f8(i8* byval)
50 ; CHECK: define void @f8(i8* byval)
55 define void @f9(i8* nest)
56 ; CHECK: define void @f9(i8* nest)
61 define void @f10() readnone
62 ; CHECK: define void @f10() #2
67 define void @f11() readonly
68 ; CHECK: define void @f11() #3
73 define void @f12() noinline
74 ; CHECK: define void @f12() #4
79 define void @f13() alwaysinline
80 ; CHECK: define void @f13() #5
85 define void @f14() optsize
86 ; CHECK: define void @f14() #6
91 define void @f15() ssp
92 ; CHECK: define void @f15() #7
97 define void @f16() sspreq
98 ; CHECK: define void @f16() #8
103 define void @f17(i8 align 4)
104 ; CHECK: define void @f17(i8 align 4)
109 define void @f18(i8* nocapture)
110 ; CHECK: define void @f18(i8* nocapture)
115 define void @f19() noredzone
116 ; CHECK: define void @f19() #9
121 define void @f20() noimplicitfloat
122 ; CHECK: define void @f20() #10
127 define void @f21() naked
128 ; CHECK: define void @f21() #11
133 define void @f22() inlinehint
134 ; CHECK: define void @f22() #12
139 define void @f23() alignstack(4)
140 ; CHECK: define void @f23() #13
145 define void @f24() returns_twice
146 ; CHECK: define void @f24() #14
151 define void @f25() uwtable
152 ; CHECK: define void @f25() #15
157 define void @f26() nonlazybind
158 ; CHECK: define void @f26() #16
163 define void @f27() sanitize_address
164 ; CHECK: define void @f27() #17
168 define void @f28() sanitize_thread
169 ; CHECK: define void @f28() #18
173 define void @f29() sanitize_memory
174 ; CHECK: define void @f29() #19
179 define void @f30() "cpu"="cortex-a8"
180 ; CHECK: define void @f30() #20
185 define i8 @f31(i8 returned %A)
186 ; CHECK: define i8 @f31(i8 returned %A)
191 define void @f32() sspstrong
192 ; CHECK: define void @f32() #21
197 define void @f33() minsize
198 ; CHECK: define void @f33() #22
203 declare void @nobuiltin()
206 ; CHECK: define void @f34()
208 call void @nobuiltin() nobuiltin
209 ; CHECK: call void @nobuiltin() #23
213 ; CHECK: attributes #0 = { noreturn }
214 ; CHECK: attributes #1 = { nounwind }
215 ; CHECK: attributes #2 = { readnone }
216 ; CHECK: attributes #3 = { readonly }
217 ; CHECK: attributes #4 = { noinline }
218 ; CHECK: attributes #5 = { alwaysinline }
219 ; CHECK: attributes #6 = { optsize }
220 ; CHECK: attributes #7 = { ssp }
221 ; CHECK: attributes #8 = { sspreq }
222 ; CHECK: attributes #9 = { noredzone }
223 ; CHECK: attributes #10 = { noimplicitfloat }
224 ; CHECK: attributes #11 = { naked }
225 ; CHECK: attributes #12 = { inlinehint }
226 ; CHECK: attributes #13 = { alignstack=4 }
227 ; CHECK: attributes #14 = { returns_twice }
228 ; CHECK: attributes #15 = { uwtable }
229 ; CHECK: attributes #16 = { nonlazybind }
230 ; CHECK: attributes #17 = { sanitize_address }
231 ; CHECK: attributes #18 = { sanitize_thread }
232 ; CHECK: attributes #19 = { sanitize_memory }
233 ; CHECK: attributes #20 = { "cpu"="cortex-a8" }
234 ; CHECK: attributes #21 = { sspstrong }
235 ; CHECK: attributes #22 = { minsize }
236 ; CHECK: attributes #23 = { nobuiltin }