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