1 ; RUN: not opt -passes=verify %s 2>&1 | FileCheck %s
3 declare swifttailcc void @simple()
5 define swifttailcc void @inreg(ptr inreg) {
6 ; CHECK: inreg attribute not allowed in swifttailcc musttail caller
7 musttail call swifttailcc void @simple()
11 define swifttailcc void @inalloca(ptr inalloca(i8)) {
12 ; CHECK: inalloca attribute not allowed in swifttailcc musttail caller
13 musttail call swifttailcc void @simple()
17 define swifttailcc void @swifterror(ptr swifterror) {
18 ; CHECK: swifterror attribute not allowed in swifttailcc musttail caller
19 musttail call swifttailcc void @simple()
23 define swifttailcc void @preallocated(ptr preallocated(i8)) {
24 ; CHECK: preallocated attribute not allowed in swifttailcc musttail caller
25 musttail call swifttailcc void @simple()
29 define swifttailcc void @byref(ptr byref(i8)) {
30 ; CHECK: byref attribute not allowed in swifttailcc musttail caller
31 musttail call swifttailcc void @simple()
35 define swifttailcc void @call_inreg() {
36 ; CHECK: inreg attribute not allowed in swifttailcc musttail callee
37 musttail call swifttailcc void @inreg(ptr inreg undef)
41 define swifttailcc void @call_inalloca() {
42 ; CHECK: inalloca attribute not allowed in swifttailcc musttail callee
43 musttail call swifttailcc void @inalloca(ptr inalloca(i8) undef)
47 define swifttailcc void @call_swifterror() {
48 ; CHECK: swifterror attribute not allowed in swifttailcc musttail callee
49 %err = alloca swifterror ptr
50 musttail call swifttailcc void @swifterror(ptr swifterror %err)
54 define swifttailcc void @call_preallocated() {
55 ; CHECK: preallocated attribute not allowed in swifttailcc musttail callee
56 musttail call swifttailcc void @preallocated(ptr preallocated(i8) undef)
60 define swifttailcc void @call_byref() {
61 ; CHECK: byref attribute not allowed in swifttailcc musttail callee
62 musttail call swifttailcc void @byref(ptr byref(i8) undef)
67 declare swifttailcc void @varargs(...)
68 define swifttailcc void @call_varargs(...) {
69 ; CHECK: cannot guarantee swifttailcc tail call for varargs function
70 musttail call swifttailcc void(...) @varargs(...)