diff options
author | David Malcolm <dmalcolm@redhat.com> | 2018-11-08 15:28:20 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2018-11-08 15:28:20 +0000 |
commit | d8010ee4560a947f690891f919db177b03581f9a (patch) | |
tree | c6bb3ddeba0c95c166a971951e837fb414559832 /gcc/dump-context.h | |
parent | 0d8f74b4cf06835a327aaef69787a4b7d9dc8e66 (diff) | |
download | gcc-d8010ee4560a947f690891f919db177b03581f9a.zip gcc-d8010ee4560a947f690891f919db177b03581f9a.tar.gz gcc-d8010ee4560a947f690891f919db177b03581f9a.tar.bz2 |
dump_printf: add "%C" for dumping cgraph_node *
This patch implements support for %C in dump_printf for dumping
cgraph_node *.
(I would have preferred to have a code for printing symtab_node *
and both subclasses, but there doesn't seem to be a good way for
-Wformat to handle inheritance, so, failing that, I went with
this approach).
gcc/c-family/ChangeLog:
* c-format.c (local_cgraph_node_ptr_node): New variable.
(gcc_dump_printf_char_table): Add entry for %C.
(get_pointer_to_named_type): New function, taken from the handling
code for "gimple *" from...
(init_dynamic_diag_info): ...here. Add handling for
"cgraph_node *".
* c-format.h (T_CGRAPH_NODE): New.
gcc/ChangeLog:
* dump-context.h (ASSERT_IS_CGRAPH_NODE): New macro.
* dumpfile.c (make_item_for_dump_cgraph_node): Move to before...
(dump_pretty_printer::decode_format): Implement "%C" for
cgraph_node *.
(selftest::test_capture_of_dump_calls): Rename "where" to
"stmt_loc". Convert test_decl to a function decl and set its
location. Add a symbol_table_test RAII instance and a
cgraph_node, using it to test "%C" and dump_symtab_node.
gcc/testsuite/ChangeLog:
* gcc.dg/format/gcc_diag-10.c (cgraph_node): New typedef.
(test_dump): Add testing of %C.
From-SVN: r265918
Diffstat (limited to 'gcc/dump-context.h')
-rw-r--r-- | gcc/dump-context.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/dump-context.h b/gcc/dump-context.h index 3a45f23..ace139c 100644 --- a/gcc/dump-context.h +++ b/gcc/dump-context.h @@ -251,6 +251,14 @@ verify_item (const location &loc, (EXPECTED_LOCATION), (EXPECTED_TEXT)); \ SELFTEST_END_STMT +/* Verify that ITEM is a symtab node, with the expected values. */ + +#define ASSERT_IS_SYMTAB_NODE(ITEM, EXPECTED_LOCATION, EXPECTED_TEXT) \ + SELFTEST_BEGIN_STMT \ + verify_item (SELFTEST_LOCATION, (ITEM), OPTINFO_ITEM_KIND_SYMTAB_NODE, \ + (EXPECTED_LOCATION), (EXPECTED_TEXT)); \ + SELFTEST_END_STMT + } // namespace selftest #endif /* CHECKING_P */ |