c++: Fix list-init of array of no-copy type [PR63707]
authorJason Merrill <jason@redhat.com>
Fri, 15 Jan 2021 16:42:00 +0000 (11:42 -0500)
committerJason Merrill <jason@redhat.com>
Fri, 15 Jan 2021 18:38:14 +0000 (13:38 -0500)
commitcd09079cfd50d289cbb05eadb728a0713f6bae8a
tree2b80b4b22e434bda20d942536068420b995f013c
parentc0194736b477aef3cf0d15ccd12c64572869cf3f
c++: Fix list-init of array of no-copy type [PR63707]

build_vec_init_elt models initialization from some arbitrary object of the
type, i.e. copy, but in the case of list-initialization we don't do a copy
from the elements, we initialize them directly.

gcc/cp/ChangeLog:

PR c++/63707
* tree.c (build_vec_init_expr): Don't call build_vec_init_elt
if we got a CONSTRUCTOR.

gcc/testsuite/ChangeLog:

PR c++/63707
* g++.dg/cpp0x/initlist-array13.C: New test.
gcc/cp/tree.c
gcc/testsuite/g++.dg/cpp0x/initlist-array13.C [new file with mode: 0644]