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

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I don't think so. Libstdc++ is using dirty tricks to have two different kinds
of `long double` visible in the same TU, and passing each of them to the
appropriate snprintf function.

The snprintf function is correct to use the format attr to say %Lf expects long
double, but libstdc++ is bypassing the public API for snprintf and calling the
__snprintfibm128 version directly with a __ibm128 value. That's correct code,
and the correct type for %Lf with that function, but the format attr doesn't
know about the alternative long double types.

I don't think it needs to be taught, because this is not something users ever
need to do.

Reply via email to