Skip to content
Snippets Groups Projects
  • Jakub Jelinek's avatar
    65388b28
    c++, demangle: Implement https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal · 65388b28
    Jakub Jelinek authored
    The following patch attempts to implement what apparently clang++
    implemented for explicit object member function mangling, but nobody
    actually proposed in patch form in
    https://github.com/itanium-cxx-abi/cxx-abi/issues/148
    
    2024-01-13  Jakub Jelinek  <jakub@redhat.com>
    
    gcc/cp/
    	* mangle.cc (write_nested_name): Mangle explicit object
    	member functions with H as per
    	https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal.
    gcc/testsuite/
    	* g++.dg/abi/mangle79.C: New test.
    include/
    	* demangle.h (enum demangle_component_type): Add
    	DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
    libiberty/
    	* cp-demangle.c (FNQUAL_COMPONENT_CASE): Add case for
    	DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
    	(d_dump): Handle DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
    	(d_nested_name): Parse H after N in nested name.
    	(d_count_templates_scopes): Handle
    	DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
    	(d_print_mod): Likewise.
    	(d_print_function_type): Likewise.
    	* testsuite/demangle-expected: Add tests for explicit object
    	member functions.
    65388b28
    History
    c++, demangle: Implement https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal
    Jakub Jelinek authored
    The following patch attempts to implement what apparently clang++
    implemented for explicit object member function mangling, but nobody
    actually proposed in patch form in
    https://github.com/itanium-cxx-abi/cxx-abi/issues/148
    
    2024-01-13  Jakub Jelinek  <jakub@redhat.com>
    
    gcc/cp/
    	* mangle.cc (write_nested_name): Mangle explicit object
    	member functions with H as per
    	https://github.com/itanium-cxx-abi/cxx-abi/issues/148 non-proposal.
    gcc/testsuite/
    	* g++.dg/abi/mangle79.C: New test.
    include/
    	* demangle.h (enum demangle_component_type): Add
    	DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
    libiberty/
    	* cp-demangle.c (FNQUAL_COMPONENT_CASE): Add case for
    	DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
    	(d_dump): Handle DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
    	(d_nested_name): Parse H after N in nested name.
    	(d_count_templates_scopes): Handle
    	DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
    	(d_print_mod): Likewise.
    	(d_print_function_type): Likewise.
    	* testsuite/demangle-expected: Add tests for explicit object
    	member functions.