In mingw there is a hack for libfortran and libstdc++, implementing
80-float (long double) output for snprintf and vsnprintf via aliases to
mingw_snprintf and mingw_vsnprintf. The problem here is, that this
implementation shodows by the aliases the msdn documented functions by a
gnu-ish variant in format arguments. This leads to troubles, in two ways.
First in case a user wants to use snprintf or vsnprintf by ms format
arguments, and second, that by bultin definition of these functions are
declared with attribute (printf,...) for the format argument, which is for
mingw the ms format style (even warning until gcc 4.3 with patches).
So I would suggest to remove just the aliases. I spoke already with FX he
"OK, I understand. Well, if you get approval for mingw to change its
definitions, then libgfortran will have to follow and use the new
names. But please, only make changes as far as necessary, because
loads of existing codes are susceptible to break, aren't they?"
and for the declaration of mingw_(v)snprintf additionally the attribute
"__attribute__((format(gnu_printf, FMTPOS, WILDARG)))
__attribute__((nonnull (FMTPOS)))" have to be added, so that gcc does
know, that these functions are using gnu-ish format style.
i.A. Kai Tietz
| (\_/) This is Bunny. Copy and paste Bunny
| (='.'=) into your signature to help him gain
| (")_(") world domination.