cxx-pretty-print.c
72.1 KB
-
c++: "'decltype_type' not supported" in diagnostic [PR85278] · 58a29af8
This fixes a garbled concepts diagnostic by moving the handling of DECLTYPE_TYPE from pp_cxx_type_specifier_seq to cxx_pretty_printer::simple_type_specifier, a move which also seems to be more consistent with the language grammar. This patch also fixes pretty printing of rvalue reference types via cxx_pretty_printer::type_id, which eventually calls pp_c_pointer which currently doesn't distinguish between lvalue and rvalue references. gcc/c-family/ChangeLog: PR c++/85278 * c-pretty-print.c (pp_c_pointer) <case REFERENCE_TYPE>: Print a double ampersand if it's an rvalue reference type. gcc/cp/ChangeLog: PR c++/85278 * cxx-pretty-print.c (cxx_pretty_printer:simple_type_specifier) <case DECLTYPE_TYPE>: Handle DECLTYPE_TYPE here instead of ... (pp_cxx_type_specifier_seq) <case DECLTYPE_TYPE>: ... here. (cxx_pretty_printer::direct_abstract_declarator) <case DECLTYPE_TYPE>: New no-op case. gcc/testsuite/ChangeLog: PR c++/85278 * g++.dg/concepts/diagnostic9.C: New test.
Patrick Palka committed