https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78703
--- Comment #6 from Martin Sebor <msebor at gcc dot gnu.org> --- Author: msebor Date: Tue Jan 24 00:55:19 2017 New Revision: 244845 URL: https://gcc.gnu.org/viewcvs?rev=244845&root=gcc&view=rev Log: PR middle-end/78703 - -fprintf-return-value floating point handling incorrect in locales with a mulltibyte decimal point * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting. (fmtresult::operator+=): Outlined. (struct fmtresult): Add ctors. (struct conversion_spec): Rename... (struct directive): ...to this. Add and remove data members. (directive::set_width, directive::set_precision): New functions. (format_percent): Use fmtresult ctor. (get_width_and_precision): Remove. (format_integer): Make naming changes. Avoid computing width and precision. (format_floating): Same. Adjust indentation. (format_character, format_none): New functions. (format_string): Moved character handling to format_character. (format_directive): Remove arguments, change return type. (parse_directive): New function. (pass_sprintf_length::compute_format_length): Move directive parsing to parse_directive. Modified: trunk/gcc/ChangeLog trunk/gcc/gimple-ssa-sprintf.c