Ben*_*ler 9 c++ gcc errno compiler-optimization math-functions
我对这篇文章感到兴奋:/sf/answers/4037224201/,我考虑使用-fno-math-errno. 但我想确保我不会损害我正在开发的软件的行为。
因此,我检查了(相当大的)代码库以查看errno正在使用的位置,并且我想确定这些用法是否会干扰-fno-math-errno. 但如何做到这一点呢?文档说:
-fno-数学错误号
在调用使用单条指令执行的数学函数(例如 sqrt...)后,请勿设置 errno
但我如何知道单条指令执行了哪些数学函数呢?这有记录在某处吗?在哪里?
似乎我使用的代码库errno特别依赖于调用strtol和使用流时。我猜这strtol不是用一条指令执行的。它是否被认为是一个数学函数?我怎样才能确定?
-fno-math-errno您可以在 GCC 的builtins.def中找到受其影响的函数列表(搜索“ERRNO”)。似乎只有math.h标头中的某些功能(cos、sin、exp等)受到影响。使用 errno(strtol等)的其他标准函数的处理在此标志下不会改变。
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |