关于CH32V307的isnan和isfinite的问题

我在CH32V307上把一个float赋值成NAN

然后用isnan和isfinite的无法正常判断现在是不是NAN

请问是什么情况?

您好,我这边测试是没有问题的,如下图1。注意程序中使用要调用math库,要添加对应的头文件和路径,如下图2。

image.png

图1

image.png

图2


你好,根据我进一步的测试,我发现

O2,isnan和isfinite可以用

O3,可以用

OFast,就不行了



O2+LTO,可以用

O3+LTO,可以用

OFast+LTO,不行


麻烦帮我们看看是什么情况


进一步测试发现在使用isnan和isfinite的函数前面用__attribute__((optimize(0),noinline))修饰同样可以正常工作


你好,请问有人能回答一下如何在开启OFast编译优化的同时正确使用isnan和isfinite吗?


只有登录才能回复,可以选择微信账号登录