https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95303
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:9845b7b45621e3833aee47276cb111e43be0e48b commit r11-1903-g9845b7b45621e3833aee47276cb111e43be0e48b Author: Patrick Palka <ppa...@redhat.com> Date: Tue Jul 7 16:33:12 2020 -0400 c++: wrong pretty printing of nested type [PR95303] In the testcase below, we pretty print the nested type A<int>::B as A<int>::B<int> because we don't check whether B is itself a class template before printing the innermost set of template arguments from B's TEMPLATE_INFO (which in this case belong to A). This patch fixes this by checking PRIMARY_TEMPLATE_P beforehand. gcc/cp/ChangeLog: PR c++/95303 * cxx-pretty-print.c (pp_cxx_unqualified_id): Check PRIMARY_TEMPLATE_P before printing the innermost template arguments. gcc/testsuite/ChangeLog: PR c++/95303 * g++.dg/concepts/diagnostic14.C: New test.