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

--- Comment #6 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:e6cc142ad99ab8d28581f4ce61056c9cce74dba3

commit r11-7102-ge6cc142ad99ab8d28581f4ce61056c9cce74dba3
Author: Tom Greenslade (thomgree) <thomg...@cisco.com>
Date:   Wed Feb 3 11:31:53 2021 +0000

    c++: fix string literal member initializer bug [PR90926]

    build_aggr_conv did not correctly handle string literal member
initializers.
    Extended can_convert_array to handle this case. For the additional check of
    compatibility of character types, factored out code from digest_init_r into
    a new function.

    gcc/cp/ChangeLog:

            PR c++/90926
            * call.c (can_convert_array): Extend to handle all valid aggregate
            initializers of an array; including by string literals, not just by
            brace-init-list.
            (build_aggr_conv): Call can_convert_array more often, not just in
            brace-init-list case.
            * typeck2.c (array_string_literal_compatible_p): New function.
            (digest_init_r): call array_string_literal_compatible_p
            * cp-tree.h: (array_string_literal_compatible_p): Declare.

    gcc/testsuite/ChangeLog:

            PR c++/90926
            * g++.dg/cpp1y/nsdmi-aggr12.C: New test.

Reply via email to