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. Tested x86_64-pc-linux-gnu. OK for trunk, or should I add a new hook for constants? gcc/cp/ChangeLog: * ptree.c (cxx_print_xnode): Handle PTRMEM_CST. gcc/ChangeLog: * print-tree.c (print_node): Also call print_xnode hook for tcc_constant class. --- gcc/cp/ptree.c | 3 +++ gcc/print-tree.c | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index 1dcd764af01..9e981d656e3 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/print-tree.c b/gcc/print-tree.c index d1fbd044c27..b5dc523fcb1 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; } base-commit: fae00a0ac0e5687343a60ae02bf60352002ab9aa -- 2.27.0