r140916 - in /trunk: gcc/cp/ChangeLog gcc/cp/ma...
jason@gcc.gnu.org
jason@gcc.gnu.org
Mon Oct 6 22:29:00 GMT 2008
Author: jason
Date: Mon Oct 6 22:29:42 2008
New Revision: 140916
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140916
Log:
gcc/cp/:
PR c++/37376, other mangling issues
* mangle.c (write_type): Update TYPE_PACK_EXPANSION mangling.
(write_member_name): Break out from...
(write_expression): ...here. Handle dependent COMPONENT_REF.
(write_template_arg): Wrap an argument pack in 'I'/'E'.
(write_builtin_type): Update char16/32_t mangling.
(write_nested_name, write_prefix): Don't forget template args
for typename types.
* operators.def: Add ARROW_EXPR, update COMPONENT_REF and
EXPR_PACK_EXPANSION.
libstdc++-v3/:
* config/abi/pre/gnu.ver: Update char16/32_t manglings.
include/:
* demangle.h (enum demangle_component_type): Add
DEMANGLE_COMPONENT_PACK_EXPANSION.
libiberty/:
* cp-demangle.c (struct d_print_info): Add pack_index.
(d_dump): Add DEMANGLE_COMPONENT_PACK_EXPANSION.
(d_make_comp): Likewise. DEMANGLE_COMPONENT_ARGLIST and
DEMANGLE_COMPONENT_TEMPLATE_ARGLIST can have two null args.
(cplus_demangle_builtin_types): Add char16/32_t.
(cplus_demangle_type): Recognize them.
(d_template_args): Handle empty argument packs.
(d_template_arg): Handle argument packs.
(d_expression): Handle dependent name.
(d_index_template_argument): New fn.
(d_lookup_template_argument): New fn.
(d_find_pack, d_pack_length): New fn.
(d_print_subexpr): Split out...
(d_print_comp): ...from here. Use d_*_template_argument.
Handle empty arg lists. Support pack expansions.
* cp-demangle.h (D_BUILTIN_TYPE_COUNT): Increase to 32.
Added:
trunk/gcc/testsuite/g++.dg/abi/mangle30.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/mangle.c
trunk/gcc/cp/operators.def
trunk/gcc/testsuite/g++.dg/cpp0x/auto6.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic4.C
trunk/gcc/testsuite/g++.dg/cpp0x/variadic42.C
trunk/gcc/testsuite/g++.dg/ext/utf-mangle.C
trunk/gcc/tree.h
trunk/include/ChangeLog
trunk/include/demangle.h
trunk/libiberty/ChangeLog
trunk/libiberty/cp-demangle.c
trunk/libiberty/cp-demangle.h
trunk/libiberty/testsuite/demangle-expected
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/config/abi/pre/gnu.ver
More information about the Gcc-cvs
mailing list