LLVM IR 主函数返回 void
LLVM IR main function returning void
我正在测试一个主函数,它只是 return 无效,并且当 运行 位码 lli
时出现核心转储错误(信号 65 或 73):
define void @main() {
entry:
ret void
}
它是 lli
的限制还是在 LLVM 中完全非法?
我很清楚在 C++ 中,return 类型为 void 的 main 函数的声明是不正确的。事实上,我已经用 Clang 尝试过这个(这只是一个警告)并得到几乎相同的代码(由于 #0
属性不完全相同,但足够接近以至于我相信差异不会导致这个问题):
; Function Attrs: nounwind
define void @main() #0 {
entry:
ret void
}
我没有崩溃,所以罪魁祸首一定是别的东西:
$ echo "define void @main() {entry: ret void}" | lli -
$
在任何情况下,lli 都支持 void main 方法,如您在 ExecutionEngine::runFunctionAsMain()
.
中所见
我正在测试一个主函数,它只是 return 无效,并且当 运行 位码 lli
时出现核心转储错误(信号 65 或 73):
define void @main() {
entry:
ret void
}
它是 lli
的限制还是在 LLVM 中完全非法?
我很清楚在 C++ 中,return 类型为 void 的 main 函数的声明是不正确的。事实上,我已经用 Clang 尝试过这个(这只是一个警告)并得到几乎相同的代码(由于 #0
属性不完全相同,但足够接近以至于我相信差异不会导致这个问题):
; Function Attrs: nounwind
define void @main() #0 {
entry:
ret void
}
我没有崩溃,所以罪魁祸首一定是别的东西:
$ echo "define void @main() {entry: ret void}" | lli -
$
在任何情况下,lli 都支持 void main 方法,如您在 ExecutionEngine::runFunctionAsMain()
.