1 ; RUN: opt < %s -passes=lint -disable-output 2>&1 | FileCheck %s
10 tail call void @f1(ptr %c)
14 ; Lint should complain about the tail call passing the alloca'd value %c to f1.
15 ; CHECK: Undefined behavior: Call with "tail" keyword references alloca
16 ; CHECK-NEXT: tail call void @f1(ptr %c)
18 declare void @f3(ptr byval(%s))
23 tail call void @f3(ptr byval(%s) %c)
27 ; Lint should not complain about passing the alloca'd %c since it's passed
28 ; byval, effectively copying the data to the stack instead of leaking the
30 ; CHECK-NOT: Undefined behavior: Call with "tail" keyword references alloca
31 ; CHECK-NOT: tail call void @f3(ptr byval(%s) %c)