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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>:

https://gcc.gnu.org/g:a7c8036b26082d8da001e05596777c5f911590e1

commit r13-4799-ga7c8036b26082d8da001e05596777c5f911590e1
Author: Patrick Palka <ppa...@redhat.com>
Date:   Mon Dec 19 14:59:43 2022 -0500

    c++: ICE with concepts TS multiple auto deduction [PR101886]

    In extract_autos_r, we need to recompute TYPE_CANONICAL for the template
    type parameter after adjusting its index, otherwise we end up with a
    comptypes ICE for the below testcase.  Note that such in-place type
    adjustment isn't generally safe to do since the type could be the
    TYPE_CANONICAL of another (unadjusted) type, but in this case the
    canonical auto (of some level and 0 index) is the first auto (of that
    level) that's created, and so any auto that we do end up adjusting can't
    be the canonical one.

            PR c++/101886

    gcc/cp/ChangeLog:

            * pt.cc (extract_autos_r): Recompute TYPE_CANONICAL after
            adjusting the template type parameter's index.  Simplify
            by using TEMPLATE_TYPE_IDX.  Add some sanity checks.

    gcc/testsuite/ChangeLog:

            * g++.dg/concepts/auto5.C: New test.

Reply via email to