[Bug c/37768] bogus warnings on x86_64-mingw32 due to attribute((format(printf))) breakage

2008-10-09 Thread mikpe at it dot uu dot se


--- Comment #2 from mikpe at it dot uu dot se  2008-10-09 07:04 ---
  The program below illustrates the issue. It declares a private C99-compliant
  snprintf() implementation and invokes it with %zu and %llx formats. This
  triggers the following bogus warnings on x86_64-pc-mingw32:
 
 Use gnu_printf for such an implementation.

Thanks. Using gnu_printf (new in 4.4) solves the issues I had.


-- 

mikpe at it dot uu dot se changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37768



[Bug c/37768] bogus warnings on x86_64-mingw32 due to attribute((format(printf))) breakage

2008-10-08 Thread joseph at codesourcery dot com


--- Comment #1 from joseph at codesourcery dot com  2008-10-08 16:15 ---
Subject: Re:   New: bogus warnings on x86_64-mingw32 due to
 attribute((format(printf))) breakage

On Wed, 8 Oct 2008, mikpe at it dot uu dot se wrote:

 When gcc is configured to generate code for x86_64-pc-mingw32, that is MinGW
 for 64-bit Windows, attribute((format(printf))) is redefined by the backend to
 be compatible with MSVC's runtime library, which differs significantly from
 C99.

Correct.  This is the conclusion we eventually reached, that printf 
would be for the system formats (e.g. for a function wrapping a call to a 
system function), that gnu_printf would be for the formats accepted by 
the GNU C Library (including GNU extensions) on all platforms and that 
ms_printf would be for the MSVC formats, on Windows platforms only.

 The program below illustrates the issue. It declares a private C99-compliant
 snprintf() implementation and invokes it with %zu and %llx formats. This
 triggers the following bogus warnings on x86_64-pc-mingw32:

Use gnu_printf for such an implementation.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37768