diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-06 22:29:42 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-06 22:29:42 +0000 |
commit | 4682b6fe285dd8c2cb48e96189e1aee558d96b17 (patch) | |
tree | bc6ed12ab486e9243fadc7deb1fa88cc3d721bdf /include | |
parent | abbefad06f1b5c3e3b0ba58b243a7b88803a257a (diff) | |
download | gcc-4682b6fe285dd8c2cb48e96189e1aee558d96b17.tar.gz |
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
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 5 | ||||
-rw-r--r-- | include/demangle.h | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 64b0a6caeeb..20da6186ff0 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2008-10-06 Jason Merrill <jason@redhat.com> + + * demangle.h (enum demangle_component_type): Add + DEMANGLE_COMPONENT_PACK_EXPANSION. + 2008-09-09 Jason Merrill <jason@redhat.com> * demangle.h (enum demangle_component_type): Add diff --git a/include/demangle.h b/include/demangle.h index 146d778e097..0ea639d62ba 100644 --- a/include/demangle.h +++ b/include/demangle.h @@ -372,7 +372,9 @@ enum demangle_component_type /* A name formed by a single character. */ DEMANGLE_COMPONENT_CHARACTER, /* A decltype type. */ - DEMANGLE_COMPONENT_DECLTYPE + DEMANGLE_COMPONENT_DECLTYPE, + /* A pack expansion. */ + DEMANGLE_COMPONENT_PACK_EXPANSION }; /* Types which are only used internally. */ |