程序使用了无法解析的外部函数 'llvm.returnaddress.i8'
Program used external function 'llvm.returnaddress.i8' which could not be resolved
我想在传递中使用 llvm.returnaddress.i8
来获取函数的 return 值。
执行../llvm/bin/lli test_re.bc
后,得到
LLVM ERROR: Program used external function 'llvm.returnaddress.i8' which could not be resolved!
不知道怎么解决。有什么建议吗?谢谢!
内部函数称为 llvm.returnaddress,而不是 llvm.returnaddress.i8
。
declare i8* @llvm.returnaddress(i32)
declare i32 @printf(i8*, ...)
@fmt = constant [20 x i8] c"Return address: %p[=10=]a[=10=]"
define i32 @main() {
%fmt = getelementptr [20 x i8], [20 x i8]* @fmt, i32 0, i32 0
%ra = call i8* @llvm.returnaddress(i32 0)
call i32 (i8*, ...) @printf(i8* %fmt, i8* %ra)
ret i32 0
}
我想在传递中使用 llvm.returnaddress.i8
来获取函数的 return 值。
执行../llvm/bin/lli test_re.bc
后,得到
LLVM ERROR: Program used external function 'llvm.returnaddress.i8' which could not be resolved!
不知道怎么解决。有什么建议吗?谢谢!
内部函数称为 llvm.returnaddress,而不是 llvm.returnaddress.i8
。
declare i8* @llvm.returnaddress(i32)
declare i32 @printf(i8*, ...)
@fmt = constant [20 x i8] c"Return address: %p[=10=]a[=10=]"
define i32 @main() {
%fmt = getelementptr [20 x i8], [20 x i8]* @fmt, i32 0, i32 0
%ra = call i8* @llvm.returnaddress(i32 0)
call i32 (i8*, ...) @printf(i8* %fmt, i8* %ra)
ret i32 0
}