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

--- Comment #7 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:77103685ff4b50b3c4d7ee76688bdf452acc82c7

commit r11-1127-g77103685ff4b50b3c4d7ee76688bdf452acc82c7
Author: Jason Merrill <ja...@redhat.com>
Date:   Fri Jun 5 16:36:27 2020 -0400

    tree-inline: Fix VLA handling [PR95552]

    The problem in this testcase comes from cloning the constructor into
    complete and base variants.  When we clone the body the first time,
    walk_tree_1 calls copy_tree_body_r on the type of the artificial TYPE_DECL
    we made for the VLA type without calling it on the decl itself, so we
    overwrite the type of the TYPE_DECL without copying the decl first.

    This has been broken since we started inserting a TYPE_DECL for anonymous
    VLAs in r7-457.

    This patch fixes walk_tree_1 to call the function on the TYPE_DECL, as we
do
    for other decls of a DECL_EXPR.

    gcc/ChangeLog:

            PR c++/95552
            * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR.

    gcc/testsuite/ChangeLog:

            PR c++/95552
            * g++.dg/ext/vla23.C: New test.

Reply via email to