xref: /llvm-project/llvm/test/Verifier/inalloca2.ll (revision c820f2a43eaba02db97c4ff60c58a58e6bdd391d)
1; This used to be invalid, but now it's valid.  Ensure the verifier
2; doesn't reject it.
3; RUN: llvm-as %s -o /dev/null
4
5declare void @doit(ptr inalloca(i64) %a)
6
7define void @a() {
8entry:
9  %a = alloca inalloca [2 x i32]
10  call void @doit(ptr inalloca(i64) %a)
11  ret void
12}
13
14define void @b() {
15entry:
16  %a = alloca inalloca i64
17  call void @doit(ptr inalloca(i64) %a)
18  call void @doit(ptr inalloca(i64) %a)
19  ret void
20}
21
22define void @c(i1 %cond) {
23entry:
24  br i1 %cond, label %if, label %else
25
26if:
27  %a = alloca inalloca i64
28  br label %call
29
30else:
31  %b = alloca inalloca i64
32  br label %call
33
34call:
35  %args = phi ptr [ %a, %if ], [ %b, %else ]
36  call void @doit(ptr inalloca(i64) %args)
37  ret void
38}
39