[Bug other/61321] demangler crash on casts in template parameters

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu May 19 12:04:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61321

--- Comment #21 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Thu May 19 12:04:11 2016
New Revision: 236455

URL: https://gcc.gnu.org/viewcvs?rev=236455&root=gcc&view=rev
Log:
        Backported from mainline
        2015-11-27  Pedro Alves  <palves@redhat.com>

        PR other/61321
        PR other/61233
        * demangle.h (enum demangle_component_type)
        <DEMANGLE_COMPONENT_CONVERSION>: New value.

        * cp-demangle.c (d_demangle_callback, d_make_comp): Handle
        DEMANGLE_COMPONENT_CONVERSION.
        (is_ctor_dtor_or_conversion): Handle DEMANGLE_COMPONENT_CONVERSION
        instead of DEMANGLE_COMPONENT_CAST.
        (d_operator_name): Return a DEMANGLE_COMPONENT_CONVERSION
        component if handling a conversion.
        (d_count_templates_scopes, d_print_comp_inner): Handle
        DEMANGLE_COMPONENT_CONVERSION.
        (d_print_comp_inner): Handle DEMANGLE_COMPONENT_CONVERSION instead
        of DEMANGLE_COMPONENT_CAST.
        (d_print_cast): Rename as ...
        (d_print_conversion): ... this.  Adjust comments.
        (d_print_cast): Rewrite - simply print the left subcomponent.
        * cp-demint.c (cplus_demangle_fill_component): Handle
        DEMANGLE_COMPONENT_CONVERSION.

        * testsuite/demangle-expected: Add tests.

Added:
    branches/gcc-4_9-branch/libiberty/testsuite/demangler-fuzzer.c
Modified:
    branches/gcc-4_9-branch/include/ChangeLog
    branches/gcc-4_9-branch/include/demangle.h
    branches/gcc-4_9-branch/libiberty/ChangeLog
    branches/gcc-4_9-branch/libiberty/cp-demangle.c
    branches/gcc-4_9-branch/libiberty/cp-demint.c
    branches/gcc-4_9-branch/libiberty/testsuite/demangle-expected


More information about the Gcc-bugs mailing list