0

这个问题与 arm-none-eabi-gcc 5.4.1 版有关。(我知道它很旧,但我必须使用它)。

int32_t tmp = INT32_MIN / 2;

这将产生以下程序集:

mov.w   r3, #1073741824 ; 0x40000000

在 stdint.h 中查看此宏时:

#define INT32_MIN        (-0x80000000)

是正确的。

调试器还显示对应于 0x40000000 的正数。

我希望0xC0000000。

这是该特定 gcc 预处理器的错误还是正常?

4

1 回答 1

0

是个bug,GCC 6.3.0 预处理器执行正常。

试图在https://gcc.gnu.org/bugzilla/buglist.cgi上找到更多信息,但报告的错误太多,我没有成功......

于 2022-02-03T00:18:02.110 回答