aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2021-10-29 16:39:01 -0400
committerJason Merrill <jason@redhat.com>2021-11-16 10:20:30 -0500
commit132f1c27770fa6dafdf14591878d301aedd5ae16 (patch)
tree2ce7efc1e98e0a34e73c685f731ac26d68b71656 /gcc
parent11c4a06a6c1a9db0bfdb3ee8509392dd7163709c (diff)
downloadgcc-132f1c27770fa6dafdf14591878d301aedd5ae16.zip
gcc-132f1c27770fa6dafdf14591878d301aedd5ae16.tar.gz
gcc-132f1c27770fa6dafdf14591878d301aedd5ae16.tar.bz2
c++: improve print_node of PTRMEM_CST
It's been inconvenient that pretty-printing of PTRMEM_CST didn't display what member the constant refers to. Adding that is complicated by the absence of a langhook for CONSTANT_CLASS_P nodes; the simplest fix for that is to use the tcc_exceptional hook for tcc_constant as well. gcc/cp/ChangeLog: * ptree.c (cxx_print_xnode): Handle PTRMEM_CST. gcc/ChangeLog: * langhooks.h (struct lang_hooks): Adjust comment. * print-tree.c (print_node): Also call print_xnode hook for tcc_constant class.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ptree.c3
-rw-r--r--gcc/langhooks.h2
-rw-r--r--gcc/print-tree.c3
3 files changed, 5 insertions, 3 deletions
diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
index ca7884d..d514aa2 100644
--- a/gcc/cp/ptree.c
+++ b/gcc/cp/ptree.c
@@ -379,6 +379,9 @@ cxx_print_xnode (FILE *file, tree node, int indent)
if (tree message = STATIC_ASSERT_MESSAGE (node))
print_node (file, "message", message, indent+4);
break;
+ case PTRMEM_CST:
+ print_node (file, "member", PTRMEM_CST_MEMBER (node), indent+4);
+ break;
default:
break;
}
diff --git a/gcc/langhooks.h b/gcc/langhooks.h
index 3e89134..3db8f2a 100644
--- a/gcc/langhooks.h
+++ b/gcc/langhooks.h
@@ -477,7 +477,7 @@ struct lang_hooks
void (*print_statistics) (void);
/* Called by print_tree when there is a tree of class tcc_exceptional
- that it doesn't know how to display. */
+ or tcc_constant that it doesn't know how to display. */
lang_print_tree_hook print_xnode;
/* Called to print language-dependent parts of tcc_decl, tcc_type,
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index d1fbd04..b5dc523 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -1004,8 +1004,7 @@ print_node (FILE *file, const char *prefix, tree node, int indent,
break;
default:
- if (EXCEPTIONAL_CLASS_P (node))
- lang_hooks.print_xnode (file, node, indent);
+ lang_hooks.print_xnode (file, node, indent);
break;
}