| ; RUN: opt < %s -argpromotion | |
| declare void @llvm.gcroot(i8**, i8*) | |
| define i32 @g() { | |
| entry: | |
| %var = alloca i32 | |
| store i32 1, i32* %var | |
| %x = call i32 @f(i32* %var) | |
| ret i32 %x | |
| } | |
| define internal i32 @f(i32* %xp) gc "example" { | |
| entry: | |
| %var = alloca i8* | |
| call void @llvm.gcroot(i8** %var, i8* null) | |
| %x = load i32* %xp | |
| ret i32 %x | |
| } |