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

Reply via email to