|
From: | Paul McClean |
Subject: | [avr-gcc-list] AVR Libc int32_t and uint32_t typedefs are incorrect |
Date: | Tue, 10 Jan 2012 17:45:20 -0000 |
Hi all, I recently discovered that the int32_t and uint32_t typedefs
in stdint.h are incorrect (at least on my target – AT90CAN128). From what I can tell, the typedefs are duplicated, once for
doxygen and once for gcc. Unfortunately they are different. Referring to the latest v1.8.0 stdint.h, line 94 and 99
define int32_t and uint32_t as signed long and unsigned long respectively. This
is correct (according to my tests) but these lines are only processed by
Doxygen. However lines 125 and 126 define int32_t and uint32_t as signed int
and unsigned int respectively. This is what the compiler uses, which is
unfortunately incorrect. I have confirmed the sizes of the basic types on my system: sizeof(long) = 4 sizeof(unsigned long) = 4 sizeof(int) = 2 sizeof(unsigned int) = 2 I believe this issue has been in the source since v1.4.0 and
the move to doxygen. Regards, Paul Asylia ExchangeDefender Message Security: Check Authenticity |
[Prev in Thread] | Current Thread | [Next in Thread] |