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