[Bug c++/102414] [12 Regression] ICE in unify_array_domain, at cp/pt.c:23442 since r12-1933-ge66d0b7b87d105d2

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jan 31 20:36:35 GMT 2022


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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Marek Polacek <mpolacek@gcc.gnu.org>:

https://gcc.gnu.org/g:874ad5d6745bf3bbe4aa138cef09c669b3fb9b07

commit r12-6952-g874ad5d6745bf3bbe4aa138cef09c669b3fb9b07
Author: Marek Polacek <polacek@redhat.com>
Date:   Thu Jan 27 18:11:03 2022 -0500

    c++: ICE with auto[] and VLA [PR102414]

    Here we ICE in unify_array_domain when we're trying to deduce the type
    of an array, as in

      auto(*p)[i] = (int(*)[i])0;

    but unify_array_domain doesn't arbitrarily complex bounds.  Another
    test is, e.g.,

      auto (*b)[0/0] = &a;

    where the type of the array is

      <<< Unknown tree: template_type_parm >>>[0:(sizetype) ((ssizetype) (0 /
0) - 1)]

    It seems to me that we need not handle these.

            PR c++/102414
            PR c++/101874

    gcc/cp/ChangeLog:

            * decl.cc (create_array_type_for_decl): Use template_placeholder_p.
            Sorry on a variable-length array of auto.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp23/auto-array3.C: New test.
            * g++.dg/cpp23/auto-array4.C: New test.


More information about the Gcc-bugs mailing list