Skip to content
Snippets Groups Projects
  • Jason Merrill's avatar
    38179091
    PR c++/37376, other mangling issues · 38179091
    Jason Merrill authored
    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.
    
    From-SVN: r140916
    38179091
    History
    PR c++/37376, other mangling issues
    Jason Merrill authored
    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.
    
    From-SVN: r140916