c++: designators in single-element init lists
commit885035eacb36b5bf1aa3b0d05f675ab89665d7be
authorJason Merrill <jason@redhat.com>
Thu, 20 May 2021 01:13:43 +0000 (19 21:13 -0400)
committerJason Merrill <jason@redhat.com>
Thu, 20 May 2021 20:59:17 +0000 (20 16:59 -0400)
treeff4cd9403ff68ee97e53d5ac5d48d23502412479
parent84fd1b5dff70cd74aee7e8b18f66959d8b8e1ce7
c++: designators in single-element init lists

While looking at PR100489, it occurred to me that places that currently
use an initializer-list with a single element to initialize an object of the
same type shouldn't do that if the element has a designator.

gcc/cp/ChangeLog:

* call.c (reference_binding): Check for designator.
(implicit_conversion_1, build_special_member_call): Likewise.
* decl.c (reshape_init_r): Likewise.
* pt.c (do_class_deduction): Likewise.
* typeck2.c (digest_init_r): Likewise.

gcc/testsuite/ChangeLog:

* g++.dg/cpp2a/desig19.C: New test.
gcc/cp/call.c
gcc/cp/decl.c
gcc/cp/pt.c
gcc/cp/typeck2.c
gcc/testsuite/g++.dg/cpp2a/desig19.C [new file with mode: 0644]