OSDN Git Service

gcc/cp/:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 6 Oct 2008 22:29:42 +0000 (22:29 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 6 Oct 2008 22:29:42 +0000 (22:29 +0000)
commit4682b6fe285dd8c2cb48e96189e1aee558d96b17
treebc6ed12ab486e9243fadc7deb1fa88cc3d721bdf
parentabbefad06f1b5c3e3b0ba58b243a7b88803a257a
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140916 138bc75d-0d04-0410-961f-82ee72b054a4
17 files changed:
gcc/cp/ChangeLog
gcc/cp/mangle.c
gcc/cp/operators.def
gcc/testsuite/g++.dg/abi/mangle30.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/auto6.C
gcc/testsuite/g++.dg/cpp0x/variadic4.C
gcc/testsuite/g++.dg/cpp0x/variadic42.C
gcc/testsuite/g++.dg/ext/utf-mangle.C
gcc/tree.h
include/ChangeLog
include/demangle.h
libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/cp-demangle.h
libiberty/testsuite/demangle-expected
libstdc++-v3/ChangeLog
libstdc++-v3/config/abi/pre/gnu.ver