brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 2f0ce4f Raw
73 lines · plain
1; RUN: not opt -passes=verify %s 2>&1 | FileCheck %s2 3declare tailcc void @simple()4 5define tailcc void @inreg(ptr inreg) {6; CHECK: inreg attribute not allowed in tailcc musttail caller7  musttail call tailcc void @simple()8  ret void9}10 11define tailcc void @inalloca(ptr inalloca(i8)) {12; CHECK: inalloca attribute not allowed in tailcc musttail caller13  musttail call tailcc void @simple()14  ret void15}16 17define tailcc void @swifterror(ptr swifterror) {18; CHECK: swifterror attribute not allowed in tailcc musttail caller19  musttail call tailcc void @simple()20  ret void21}22 23define tailcc void @preallocated(ptr preallocated(i8)) {24; CHECK: preallocated attribute not allowed in tailcc musttail caller25  musttail call tailcc void @simple()26  ret void27}28 29define tailcc void @byref(ptr byref(i8)) {30; CHECK: byref attribute not allowed in tailcc musttail caller31  musttail call tailcc void @simple()32  ret void33}34 35define tailcc void @call_inreg() {36; CHECK: inreg attribute not allowed in tailcc musttail callee37  musttail call tailcc void @inreg(ptr inreg undef)38  ret void39}40 41define tailcc void @call_inalloca() {42; CHECK: inalloca attribute not allowed in tailcc musttail callee43  musttail call tailcc void @inalloca(ptr inalloca(i8) undef)44  ret void45}46 47define tailcc void @call_swifterror() {48; CHECK: swifterror attribute not allowed in tailcc musttail callee49  %err = alloca swifterror ptr50  musttail call tailcc void @swifterror(ptr swifterror %err)51  ret void52}53 54define tailcc void @call_preallocated() {55; CHECK: preallocated attribute not allowed in tailcc musttail callee56  musttail call tailcc void @preallocated(ptr preallocated(i8) undef)57  ret void58}59 60define tailcc void @call_byref() {61; CHECK: byref attribute not allowed in tailcc musttail callee62  musttail call tailcc void @byref(ptr byref(i8) undef)63  ret void64}65 66 67declare tailcc void @varargs(...)68define tailcc void @call_varargs(...) {69; CHECK: cannot guarantee tailcc tail call for varargs function70  musttail call tailcc void(...) @varargs(...)71  ret void72}73