This is the mail archive of the newlib@sourceware.org mailing list for the newlib 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: h8300, m32c and PRIuPTR


On Mar 15 17:02, Joel Sherrill wrote:
> Hi
> 
> Fighting through more printf() format warnings. This code
> compiles without warning on all 18 RTEMS targets with
> default arguments but has warnings on a h8300 and m32c
> when certain CPU model CFLAGS are added. From a quick
> check of the impact of adding the -mcpu=m32cm argument,
> it is changing the sizeof(ptr) from 2 to 4 bytes.
> 
> 
> ==================
> #include <stdio.h>
> #include <inttypes.h>
> 
> void f( uintptr_t x)
> {
>   printf( "%" PRIuPTR "\n", x );
> }
> ==================
> 
> The warning is:
> 
> f.c:6:3: warning: format '%u' expects argument of type 'unsigned int', but
> argument 2 has type 'uintptr_t' [-Wformat=]
>    printf( "%" PRIuPTR "\n", x );
>    ^
> 
> Various compiler options that trigger the warning:
> 
> 
> h8300-rtems4.11-gcc  -Wall -c f.c <== no warning
> 
> h8300-rtems4.11-gcc -mh -mint32 -Wall -c f.c <== warning
> 
> h8300-rtems4.11-gcc -msx  -Wall -c f.c <== warning
> 
> m32c-rtems4.11-gcc  -Wall -c f.c <== no warning
> 
> m32c-rtems4.11-gcc -mcpu=m32cm  -Wall -c f.c <== warning
> 
> Any ideas on how to address this?

The m32r target requires building with multilibs, it seems.  The fact
that the type doesn't match shows that configure didn't catch the right
base types for PRIuPTR and friends.  For some cases it might be
necessary to set _UINTPTR_EQ_ULONG or _UINTPTR_EQ_ULONGLONG.  Afaics,
this configure tests are yours.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

Attachment: pgprVjmiYCNQL.pgp
Description: PGP signature


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