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

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:54bf72ebfe983c611673bcc4368b5834773fcc7d

commit r16-3287-g54bf72ebfe983c611673bcc4368b5834773fcc7d
Author: Ben Wu <soggysocks...@gmail.com>
Date:   Tue Aug 19 13:49:41 2025 -0400

    c++: Fix ICE on mangling invalid compound requirement [PR120618]

    This testcase caused an ICE when mangling the invalid type-constraint in
    write_requirement since write_type_constraint expects a TEMPLATE_TYPE_PARM.

    Setting the trailing return type to NULL_TREE when a
    return-type-requirement is found in place of a type-constraint prevents the
    failed assertion in write_requirement. It also allows the invalid
    constraint to be satisfied in some contexts to prevent redundant errors,
    e.g. in concepts-requires5.C.

    Bootstrapped and tested on x86_64-linux-gnu.

            PR c++/120618

    gcc/cp/ChangeLog:

            * parser.cc (cp_parser_compound_requirement): Set type to
            NULL_TREE for invalid type-constraint.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp2a/concepts-requires5.C: Don't require
            redundant diagnostic in static assertion.
            * g++.dg/concepts/pr120618.C: New test.

    Suggested-by: Jason Merrill <ja...@redhat.com>

Reply via email to