https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108203
--- Comment #2 from LIU Hao <lh_mouse at 126 dot com> --- (In reply to nightstrike from comment #0) > Bug report that came from it: > https://sourceforge.net/p/mingw-w64/bugs/292/ > I think this should be no longer the case. Two years ago I submitted a patch that made the `ms_printf` attribute accept `%lld`, so there is now a universal modifier for `long long`. The issue here looks like that `printf` , which is a 'well known' function to GCC, has a pre-defined attribute. If a new `*_printf` attribute is declared, it gets both, as pointed out by Andrew Pinski.