当我在支持软件浮点仿真(禁用了硬件浮点)的32位powerpc内核中运行以下C++程序时,我得到了错误的条件评估。有人可以告诉我这里的潜在问题是什么?
#include <stdio.h>
int main() {
int newmax = 1;
if ((newmax + 0.0) > 256) {
printf("\nShouldn't be here\n");
} else {
printf("\nShould be here\n");
}
}
编译:
powerpc-linux-g++ -msoft-float -c floating.cxx
powerpc-linux-g++ -o floating floating.o
目标系统中的输出:
[linux:/]$ ./floating
Shouldn't be here
最佳答案
链接时也应指定-msoft-float
使用-S标志给我们反汇编:powerpc-linux-g++ -msoft-float -c float.cxx -S -o float.s
关于c++ - 错误的浮点行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15045351/