Re: mingw-w64 and __attribute__((format(printf))) issue

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

 



在 2020/5/12 20:02, Jakub Jelinek 写道:
> 
> gomp_fatal etc. call vfprintf under the hood though, does that one handle
> %llu on mingw?  If not, using %llu for the PRI* macros looks wrong to me.
> 

As long as libgomp doesn't enable `__USE_MINGW_ANSI_STDIO`, the answer
is a bit complex:

0) With all versions of mingw-w64 (probably MinGW.org too) that have
   been released, the MS `vfprintf()` is called; see below.

1) With current master of mingw-w64, and:

   a) -std={gnu,c}89, or
      -std={gnu,c}++03: Ditto; see below.

   b) -std={gnu,c}99, or
      -std={gnu,c}++11: The mingw-w64 one is called,
                        so it is always supported.

2) If stdio.h is not included (the user declares this function
   themselves, e.g. during configure checks), then the MS one is called;
   see below.


About the behavior of MS `vfprintf()`:

0) On Windows 7 (probably Vista and 2008, untested), *printf functions
   from MSVCRT do accept `%llu`, so it's valid despite the warning.

1) On Windows XP (probably also 2003, untested), `%lld` is not
   recognized.

-- 
Best regards,
LH_Mouse

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux