3
|
Erel Segal-Halevi · 技术社区 · 7 年前 |
![]() |
1
7
TL;DR公司
:在未优化的代码中,CLANG++为返回值留出4个字节
因为您正在使用
在这种情况下
这个 C++11 standard 表示:
在CLANG++版本中,您使用的是未优化的64位代码,默认情况下,返回值0位于
问题是,您的测试代码有点过于琐碎,无法看到这个默认返回值是如何发挥作用的。以下是一个更好的示例:
此代码有两个退出显式退出点,通过
可以看到,编译器生成了一个设置返回值的公共退出点(
EAX公司
)从堆栈地址
如果使用选项构建代码
|
![]() |
Sam Kellett · 为C++库提供C API和严格别名 7 年前 |
![]() |
Wietlol · LLVM IR本机方法 7 年前 |
![]() |
mikasa · llvm-将参数传递给传递 7 年前 |
![]() |
James Allingham · llvm JIT将库添加到模块 7 年前 |