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

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

https://gcc.gnu.org/g:b1c59b31ef7adc832405209e9e2a77212284abd7

commit r11-2972-gb1c59b31ef7adc832405209e9e2a77212284abd7
Author: Marek Polacek <pola...@redhat.com>
Date:   Tue Sep 1 11:44:16 2020 -0400

    c++: Allow new char[4]{"foo"} [PR77841]

    Currently, we allow new char[]{"foo"}, but not new char[4]{"foo"}.
    We should accept the latter too: [dcl.init.list]p3.3 says to treat
    this as [dcl.init.string].

    We were rejecting this code because we never called reshape_init before
    the digest_init in build_new_1.  reshape_init handles [dcl.init.string]
    by unwrapping the STRING_CST from its enclosing { }, and digest_init
    assumes that reshape_init has been called for aggregates anyway, and an
    array is an aggregate.

    gcc/cp/ChangeLog:

            PR c++/77841
            * init.c (build_new_1): Call reshape_init.

    gcc/testsuite/ChangeLog:

            PR c++/77841
            * g++.dg/cpp0x/initlist-new4.C: New test.

Reply via email to