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

--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:9b7ab853bf33106fd0539e36d6ce7730269026e1

commit r12-2873-g9b7ab853bf33106fd0539e36d6ce7730269026e1
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Aug 12 09:16:13 2021 +0200

    c++: Fix ICE on defaulted spaceship with pointer return type [PR94162]

    The spaceship-synth-neg6.C testcase ICEs because we call cat_tag_for
    on the explicit return type, but pointer types don't have
    TYPE_LINKAGE_IDENTIFIER.  The patch fixes that by checking for
    CLASS_TYPE_P only and also adds verification that it is in std
    namespace, so we don't return non-cc_last for
my_namespace::partial_ordering.

    The g++.dg/cpp2a/spaceship-synth11.C testcase is from a PR that has been
    fixed with r12-619-gfc178519771db508c03611cff4a1466cf67fce1d (but
    not backported to 11).

    2021-08-12  Jakub Jelinek  <ja...@redhat.com>

    gcc/cp/
            PR c++/94162
            * method.c (cat_tag_for): Return cc_last for !CLASS_TYPE_P
            or for classes not in std namespace.
    gcc/testsuite/
            PR c++/99429
            * g++.dg/cpp2a/spaceship-synth11.C: New test.

            PR c++/94162
            * g++.dg/cpp2a/spaceship-synth-neg6.C: New test.

Reply via email to