【发布时间】:2017-06-09 16:25:54
【问题描述】:
编译器需要哪些编译器才能处理 GCC 支持的 returns_twice 属性以及 setjmp 和 fork 等 glibc 函数所必需的?
我已经看到returns_twice 函数不能被内联并且需要发出关于寄存器破坏的警告的声明,但是我找不到编译器需要如何实现它的清晰描述。
【问题讨论】:
-
你问是因为你在写一个编译器吗?因为你有一个你正在考虑用这个属性装饰的函数?其他?我不认为fork 是returns_twice(vfork 可能是)。从本质上讲,returns_twice 意味着 setjmp 正常工作所需的任何魔法......
-
我是从在编译器中实现它的角度来询问的,这意味着“setjmp 正常工作需要什么魔法”的技术细节。我了解如何以及为什么在我的代码中使用该属性。