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: Click below to verify authenticity http://www.exchangedefender.com/verify.asp?id=q0AHjOt8026479&from=p.mccl...@kelvatek.com
_______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-gcc-list