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.