re PR c++/78761 (C++14, compiler generate mangled name that can not be demangled)

PR c++/78761
	* cp-demangle.c (cplus_demangle_type): Demangle Dc as decltype(auto).
	* testsuite/demangle-expected: Add test for decltype(auto).

From-SVN: r243593
This commit is contained in:
Jakub Jelinek 2016-12-13 07:16:05 +01:00 committed by Jakub Jelinek
parent 4de3788411
commit 816f431440
3 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2016-12-13 Jakub Jelinek <jakub@redhat.com>
PR c++/78761
* cp-demangle.c (cplus_demangle_type): Demangle Dc as decltype(auto).
* testsuite/demangle-expected: Add test for decltype(auto).
2016-12-12 Nathan Sidwell <nathan@acm.org> 2016-12-12 Nathan Sidwell <nathan@acm.org>
PR c++/78252 PR c++/78252

View File

@ -2593,6 +2593,10 @@ cplus_demangle_type (struct d_info *di)
/* auto */ /* auto */
ret = d_make_name (di, "auto", 4); ret = d_make_name (di, "auto", 4);
break; break;
case 'c':
/* decltype(auto) */
ret = d_make_name (di, "decltype(auto)", 14);
break;
case 'f': case 'f':
/* 32-bit decimal floating point */ /* 32-bit decimal floating point */

View File

@ -4200,6 +4200,9 @@ decltype (new auto({parm#1})) f<int>(int)
_Z1fIiERDaRKT_S1_ _Z1fIiERDaRKT_S1_
auto& f<int>(int const&, int) auto& f<int>(int const&, int)
--format=gnu-v3 --format=gnu-v3
_Z1gIiEDcRKT_S0_
decltype(auto) g<int>(int const&, int)
--format=gnu-v3
_Z1gILi1EEvR1AIXT_EER1BIXscbT_EE _Z1gILi1EEvR1AIXT_EER1BIXscbT_EE
void g<1>(A<1>&, B<static_cast<bool>(1)>&) void g<1>(A<1>&, B<static_cast<bool>(1)>&)
--format=gnu-v3 --format=gnu-v3