attributes-3.3.ll 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. ; RUN: llvm-dis < %s.bc| FileCheck %s
  2. ; RUN: verify-uselistorder < %s.bc
  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
  5. ; older bitcode files.
  6. define void @f1(i8 zeroext)
  7. ; CHECK: define void @f1(i8 zeroext)
  8. {
  9. ret void;
  10. }
  11. define void @f2(i8 signext)
  12. ; CHECK: define void @f2(i8 signext)
  13. {
  14. ret void;
  15. }
  16. define void @f3() noreturn
  17. ; CHECK: define void @f3() #0
  18. {
  19. ret void;
  20. }
  21. define void @f4(i8 inreg)
  22. ; CHECK: define void @f4(i8 inreg)
  23. {
  24. ret void;
  25. }
  26. define void @f5(i8* sret)
  27. ; CHECK: define void @f5(i8* sret)
  28. {
  29. ret void;
  30. }
  31. define void @f6() nounwind
  32. ; CHECK: define void @f6() #1
  33. {
  34. ret void;
  35. }
  36. define void @f7(i8* noalias)
  37. ; CHECK: define void @f7(i8* noalias)
  38. {
  39. ret void;
  40. }
  41. define void @f8(i8* byval)
  42. ; CHECK: define void @f8(i8* byval)
  43. {
  44. ret void;
  45. }
  46. define void @f9(i8* nest)
  47. ; CHECK: define void @f9(i8* nest)
  48. {
  49. ret void;
  50. }
  51. define void @f10() readnone
  52. ; CHECK: define void @f10() #2
  53. {
  54. ret void;
  55. }
  56. define void @f11() readonly
  57. ; CHECK: define void @f11() #3
  58. {
  59. ret void;
  60. }
  61. define void @f12() noinline
  62. ; CHECK: define void @f12() #4
  63. {
  64. ret void;
  65. }
  66. define void @f13() alwaysinline
  67. ; CHECK: define void @f13() #5
  68. {
  69. ret void;
  70. }
  71. define void @f14() optsize
  72. ; CHECK: define void @f14() #6
  73. {
  74. ret void;
  75. }
  76. define void @f15() ssp
  77. ; CHECK: define void @f15() #7
  78. {
  79. ret void;
  80. }
  81. define void @f16() sspreq
  82. ; CHECK: define void @f16() #8
  83. {
  84. ret void;
  85. }
  86. define void @f17(i8 align 4)
  87. ; CHECK: define void @f17(i8 align 4)
  88. {
  89. ret void;
  90. }
  91. define void @f18(i8* nocapture)
  92. ; CHECK: define void @f18(i8* nocapture)
  93. {
  94. ret void;
  95. }
  96. define void @f19() noredzone
  97. ; CHECK: define void @f19() #9
  98. {
  99. ret void;
  100. }
  101. define void @f20() noimplicitfloat
  102. ; CHECK: define void @f20() #10
  103. {
  104. ret void;
  105. }
  106. define void @f21() naked
  107. ; CHECK: define void @f21() #11
  108. {
  109. ret void;
  110. }
  111. define void @f22() inlinehint
  112. ; CHECK: define void @f22() #12
  113. {
  114. ret void;
  115. }
  116. define void @f23() alignstack(4)
  117. ; CHECK: define void @f23() #13
  118. {
  119. ret void;
  120. }
  121. define void @f24() returns_twice
  122. ; CHECK: define void @f24() #14
  123. {
  124. ret void;
  125. }
  126. define void @f25() uwtable
  127. ; CHECK: define void @f25() #15
  128. {
  129. ret void;
  130. }
  131. define void @f26() nonlazybind
  132. ; CHECK: define void @f26() #16
  133. {
  134. ret void;
  135. }
  136. define void @f27() sanitize_address
  137. ; CHECK: define void @f27() #17
  138. {
  139. ret void;
  140. }
  141. define void @f28() sanitize_thread
  142. ; CHECK: define void @f28() #18
  143. {
  144. ret void;
  145. }
  146. define void @f29() sanitize_memory
  147. ; CHECK: define void @f29() #19
  148. {
  149. ret void;
  150. }
  151. define void @f30() "cpu"="cortex-a8"
  152. ; CHECK: define void @f30() #20
  153. {
  154. ret void;
  155. }
  156. define i8 @f31(i8 returned %A)
  157. ; CHECK: define i8 @f31(i8 returned %A)
  158. {
  159. ret i8 %A;
  160. }
  161. define void @f32() sspstrong
  162. ; CHECK: define void @f32() #21
  163. {
  164. ret void;
  165. }
  166. define void @f33() minsize
  167. ; CHECK: define void @f33() #22
  168. {
  169. ret void;
  170. }
  171. declare void @nobuiltin()
  172. define void @f34()
  173. ; CHECK: define void @f34()
  174. {
  175. call void @nobuiltin() nobuiltin
  176. ; CHECK: call void @nobuiltin() #23
  177. ret void;
  178. }
  179. ; CHECK: attributes #0 = { noreturn }
  180. ; CHECK: attributes #1 = { nounwind }
  181. ; CHECK: attributes #2 = { readnone }
  182. ; CHECK: attributes #3 = { readonly }
  183. ; CHECK: attributes #4 = { noinline }
  184. ; CHECK: attributes #5 = { alwaysinline }
  185. ; CHECK: attributes #6 = { optsize }
  186. ; CHECK: attributes #7 = { ssp }
  187. ; CHECK: attributes #8 = { sspreq }
  188. ; CHECK: attributes #9 = { noredzone }
  189. ; CHECK: attributes #10 = { noimplicitfloat }
  190. ; CHECK: attributes #11 = { naked }
  191. ; CHECK: attributes #12 = { inlinehint }
  192. ; CHECK: attributes #13 = { alignstack=4 }
  193. ; CHECK: attributes #14 = { returns_twice }
  194. ; CHECK: attributes #15 = { uwtable }
  195. ; CHECK: attributes #16 = { nonlazybind }
  196. ; CHECK: attributes #17 = { sanitize_address }
  197. ; CHECK: attributes #18 = { sanitize_thread }
  198. ; CHECK: attributes #19 = { sanitize_memory }
  199. ; CHECK: attributes #20 = { "cpu"="cortex-a8" }
  200. ; CHECK: attributes #21 = { sspstrong }
  201. ; CHECK: attributes #22 = { minsize }
  202. ; CHECK: attributes #23 = { nobuiltin }