avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] AVR Libc int32_t and uint32_t typedefs are incorrect


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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]