From: Marek Polacek Date: Thu, 1 Oct 2020 20:40:17 +0000 (-0400) Subject: c++: Fix printing of C++20 template parameter object [PR97014] X-Git-Tag: basepoints/gcc-12~4620 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47f09ec9717058ada97be33bcbb23ceb6322ba61;p=thirdparty%2Fgcc.git c++: Fix printing of C++20 template parameter object [PR97014] No one is interested in the mangled name of the C++20 template parameter object for a class NTTP. So instead of printing required for the satisfaction of ‘positive’ [with T = X<::_ZTAXtl5ratioLin1ELi2EEE>] let's print required for the satisfaction of ‘positive’ [with T = X<{-1, 2}>] I don't think adding a test is necessary for this. gcc/cp/ChangeLog: PR c++/97014 * cxx-pretty-print.c (pp_cxx_template_argument_list): If the argument is template_parm_object_p, print its DECL_INITIAL. --- diff --git a/gcc/cp/cxx-pretty-print.c b/gcc/cp/cxx-pretty-print.c index d10c18db0398..8bea79b93a2f 100644 --- a/gcc/cp/cxx-pretty-print.c +++ b/gcc/cp/cxx-pretty-print.c @@ -1910,6 +1910,8 @@ pp_cxx_template_argument_list (cxx_pretty_printer *pp, tree t) if (TYPE_P (arg) || (TREE_CODE (arg) == TEMPLATE_DECL && TYPE_P (DECL_TEMPLATE_RESULT (arg)))) pp->type_id (arg); + else if (template_parm_object_p (arg)) + pp->expression (DECL_INITIAL (arg)); else pp->expression (arg); }