Support %f in pp_format

Programming / Compilers / GCC - dmalcolm [138bc75d-0d04-0410-961f-82ee72b054a4] - 8 November 2018 15:31 EST

Numerous formatted messages from the inliner use %f, mostly as %f, but occasionally with length modifiers.

This patch implements the simplest case of "%f" for pp_format (with no modifier support) to make it easier to port these messages from fprintf to dump_printf_loc.

The selftest has an assertion that %f on 1.0 is printed as "1.000000". This comes from the host's sprintf, and I believe this is guaranteed by POSIX: "If the precision is missing, it shall be taken as 6". If this is an issue I can drop the selftest.

gcc/c-family/ChangeLog:
- c-format.c (gcc_dump_printf_char_table): Add entry for %f.

gcc/ChangeLog:
- pretty-print.c (pp_format): Handle %f. (selftest::test_pp_format): Add test of %f.
- pretty-print.h (pp_double): New macro.

gcc/testsuite/ChangeLog:
- gcc.dg/format/gcc_diag-10.c: Add coverage for %f.

e75dc1cba8f Support %f in pp_format
gcc/ChangeLog | 6 ++++++
gcc/c-family/ChangeLog | 4 ++++
gcc/c-family/c-format.c | 3 +++
gcc/pretty-print.c | 6 ++++++
gcc/pretty-print.h | 1 +
gcc/testsuite/ChangeLog | 4 ++++
gcc/testsuite/gcc.dg/format/gcc_diag-10.c | 2 ++
7 files changed, 26 insertions(+)

Upstream: gcc.gnu.org


  • Share