This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [4.5 C] Provide <stdint.h> (bug 448)


On Sun, 26 Apr 2009, Eric Botcazou wrote:

> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-1.c: In 
> funct\
> ion 'test_exact':^M
> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-1.c:108: 
> erro\
> r: pointer targets in initialization differ in signedness^M

You should make fixincludes fix the definition (in sys/int_limits.h)

#define UINT8_MAX       (255U)

so it expands to a signed value, since uint8_t promotes to signed int, as 
well as reporting this header bug to Sun.

> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-1.c:114: 
> erro\
> r: pointer targets in initialization differ in signedness^M

Likewise.

#define UINT16_MAX      (65535U)

> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-1.c: In 
> funct\
> ion 'test_least':^M
> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-1.c:149: 
> erro\
> r: pointer targets in initialization differ in signedness^M
> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-1.c:152: 
> erro\
> r: pointer targets in initialization differ in signedness^M

Since these limits are defined to UINT8_MAX and UINT16_MAX, no separate 
fixes are needed for them.

> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-7.c:140: 
> erro\
> r: #error "INT_FAST16_MIN not usable in #if or wrong value"^M
> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-7.c:143: 
> erro\
> r: #error "INT_FAST16_MAX not usable in #if or wrong value"^M
> /nile.build/botcazou/gcc-head/src/gcc/testsuite/gcc.dg/c99-stdint-7.c:146: 
> erro\
> r: #error "UINT_FAST16_MAX not usable in #if or wrong value"^M

sys/int_types.h defines int_fast16_t to int and uint_fast16_t to unsigned 
int, and GCC knows this, but sys/int_limits.h wrongly defines the limits 
to INT16_MAX, INT16_MIN, UINT16_MAX.  You should make fixincludes fix 
sys/int_limits.h and report the bug to Sun.

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]