https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114775

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Nikita Kniazev from comment #7)
> (In reply to Andrew Pinski from comment #6)
> > (In reply to Nikita Kniazev from comment #5)
> > > > So there is mingw_printf and gnu_printf attributes for mingw because at 
> > > > one point %ll didn't exist for mingw and nobody has updated it since 
> > > > then.
> > > 
> > > Do you mean that binutils and [other code out
> > > there](https://github.com/
> > > search?q=%2F__attribute__%5Cs*%5C%28%5Cs*%5C%28%5Cs*_*format_*%5Cs*%5C%28%5Cs
> > > *_*printf%2F&type=code) should be updated to use gnu_printf in attributes?
> > > That would be a lot of work, clang doesn't know gnu_printf, and is wrong 
> > > for
> > > actual printf wrappers.
> > 
> > This has been documented/implemented this way for ~16 years now (for GCC
> > 4.4.0), r0-86297-g6590fc9fbd071d .
> > 
> > https://inbox.sourceware.org/gcc-patches/OF604F1098.0E3FE32A-ONC1257408.
> > 003bb78c-c1257408.003ce...@onevision.de/
> 
> Which attributes should use for
> 
> void my_printf(const char *fmt, ...)
> {
>   va_list ap;
> 
>   va_start(ap, fmt);
>   printf(fmt, ap);
>   va_end(ap);
> }
> 
> so it will behave correctly with any combination of -std=c89, -std=c99,
> __USE_MINGW_ANSI_STDIO=0, __USE_MINGW_ANSI_STDIO=1, _UCRT

that is a good question but that is a question for the mingw forums really
rather than inside gcc bugzilla.

Reply via email to