From: Nathan Sidwell Date: Mon, 24 Aug 2020 13:28:37 +0000 (-0700) Subject: c++: overload dumper X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=311281441cbea05691aec4fb1b5ebff39106cd5b;p=gcc.git 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. --- diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index dfc244fdceb..11833e3b4da 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); + } +}