]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++: improve class NTTP object pretty printing [PR111471]
authorPatrick Palka <ppalka@redhat.com>
Wed, 20 Sep 2023 16:09:36 +0000 (12:09 -0400)
committerPatrick Palka <ppalka@redhat.com>
Wed, 20 Sep 2023 16:09:36 +0000 (12:09 -0400)
commit75c4b0cde4835b45350da0a5cd82f1d1a0a7a2f1
treee5fefd77c7e19b2f90452a353580445621300246
parent915574e538322aad5195bc3b6be2a4f85bbd2467
c++: improve class NTTP object pretty printing [PR111471]

1. Move class NTTP object pretty printing to a more general spot in
   the pretty printer, so that we always print its value instead of
   its (mangled) name even when it appears outside of a template
   argument list.
2. Print the type of an class NTTP object alongside its CONSTRUCTOR
   value, like dump_expr would have done.
3. Don't print const VIEW_CONVERT_EXPR wrappers for class NTTPs.

PR c++/111471

gcc/cp/ChangeLog:

* cxx-pretty-print.cc (cxx_pretty_printer::expression)
<case VAR_DECL>: Handle class NTTP objects by printing
their type and value.
<case VIEW_CONVERT_EXPR>: Strip const VIEW_CONVERT_EXPR
wrappers for class NTTPs.
(pp_cxx_template_argument_list): Don't handle class NTTP
objects here.

gcc/testsuite/ChangeLog:

* g++.dg/concepts/diagnostic19.C: New test.
gcc/cp/cxx-pretty-print.cc
gcc/testsuite/g++.dg/concepts/diagnostic19.C [new file with mode: 0644]