+2018-11-08 David Malcolm <dmalcolm@redhat.com>
+
+ * pretty-print.c (pp_format): Handle %f.
+ (selftest::test_pp_format): Add test of %f.
+ * pretty-print.h (pp_double): New macro.
+
2018-11-08 David Malcolm <dmalcolm@redhat.com>
* dump-context.h (ASSERT_IS_CGRAPH_NODE): New macro.
+2018-11-08 David Malcolm <dmalcolm@redhat.com>
+
+ * c-format.c (gcc_dump_printf_char_table): Add entry for %f.
+
2018-11-08 David Malcolm <dmalcolm@redhat.com>
* c-format.c (local_cgraph_node_ptr_node): New variable.
/* T requires a "tree" at runtime. */
{ "T", 1, STD_C89, { T89_T, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "\"", NULL },
+ /* %f requires a "double"; it doesn't support modifiers. */
+ { "f", 0, STD_C89, { T89_D, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "\"", NULL },
+
{ NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
};
%ld, %li, %lo, %lu, %lx: long versions of the above.
%lld, %lli, %llo, %llu, %llx: long long versions.
%wd, %wi, %wo, %wu, %wx: HOST_WIDE_INT versions.
+ %f: double
%c: character.
%s: string.
%p: pointer (printed in a host-dependent manner).
(pp, *text->args_ptr, precision, unsigned, "u");
break;
+ case 'f':
+ pp_double (pp, va_arg (*text->args_ptr, double));
+ break;
+
case 'Z':
{
int *v = va_arg (*text->args_ptr, int *);
ASSERT_PP_FORMAT_2 ("17 12345678", "%wo %x", (HOST_WIDE_INT)15, 0x12345678);
ASSERT_PP_FORMAT_2 ("0xcafebabe 12345678", "%wx %x", (HOST_WIDE_INT)0xcafebabe,
0x12345678);
+ ASSERT_PP_FORMAT_2 ("1.000000 12345678", "%f %x", 1.0, 0x12345678);
ASSERT_PP_FORMAT_2 ("A 12345678", "%c %x", 'A', 0x12345678);
ASSERT_PP_FORMAT_2 ("hello world 12345678", "%s %x", "hello world",
0x12345678);
pp_string (PP, pp_buffer (PP)->digit_buffer); \
} \
while (0)
+#define pp_double(PP, F) pp_scalar (PP, "%f", F)
#define pp_pointer(PP, P) pp_scalar (PP, "%p", P)
#define pp_identifier(PP, ID) pp_string (PP, (pp_translate_identifiers (PP) \
+2018-11-08 David Malcolm <dmalcolm@redhat.com>
+
+ * gcc.dg/format/gcc_diag-10.c: Add coverage for %f.
+
2018-11-08 David Malcolm <dmalcolm@redhat.com>
* gcc.dg/format/gcc_diag-10.c (cgraph_node): New typedef.
dump ("%T", t);
dump ("%G", stmt);
dump ("%C", node);
+ dump ("%f", 1.0);
+ dump ("%4.2f", 1.0); /* { dg-warning "format" } */
}