From 311281441cbea05691aec4fb1b5ebff39106cd5b Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Mon, 24 Aug 2020 06:28:37 -0700 Subject: [PATCH] c++: overload dumper I frequently need to look at overload sets, and debug_node spews more information than is useful, most of the time. Here's a dumper for overloads, that just tells you their full name and where they came from. gcc/cp * ptree.c (debug_overload): New. --- gcc/cp/ptree.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index dfc244f..11833e3 100644 --- a/gcc/cp/ptree.c +++ b/gcc/cp/ptree.c @@ -321,3 +321,19 @@ debug_tree (cp_expr node) { debug_tree (node.get_value()); } + +DEBUG_FUNCTION void +debug_overload (tree node) +{ + FILE *file = stdout; + + for (lkp_iterator iter (node); iter; ++iter) + { + tree decl = *iter; + auto xloc = expand_location (DECL_SOURCE_LOCATION (decl)); + auto fullname = decl_as_string (decl, 0); + + fprintf (file, "%p: %s:%d:%d \"%s\"\n", (void *)decl, + xloc.file, xloc.line, xloc.column, fullname); + } +} -- 2.7.4