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

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

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

commit r10-6220-g9c1179c339e050e2ce7c545f648b684d38dec69d
Author: Jason Merrill <ja...@redhat.com>
Date:   Fri Jan 24 14:58:56 2020 -0500

    c++: Fix ICE with constrained friend (PR93400).

    Here, the problem was that tsubst_friend_function was modifying the
    CONSTRAINT_INFO for the friend template to have the constraints for one
    instantiation, which fell down when we went to adjust it for another
    instantiation.  Fixed by deferring substitution of trailing requirements
    until we try to check declaration matching.

        PR c++/93400 - ICE with constrained friend.
        * constraint.cc (maybe_substitute_reqs_for): New.
        * decl.c (function_requirements_equivalent_p): Call it.
        * pt.c (tsubst_friend_function): Only substitute
        TEMPLATE_PARMS_CONSTRAINTS.
        (tsubst_template_parms): Copy constraints.

Reply via email to