PR tree-optimization/71625 - missing strlen optimization on different array initializ...
commitb2fc0527d79d94b1c0c3bdc25c3cc416d826620f
authormsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Aug 2018 17:57:51 +0000 (13 17:57 +0000)
committermsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Aug 2018 17:57:51 +0000 (13 17:57 +0000)
treef8eac004f5eeb0fa8a2376e0ab0e5fb0844532e2
parentc9d00375b34a1d6b29ddc8124b4d4e6f50cbabf5
PR tree-optimization/71625 - missing strlen optimization on different array initialization style

gcc/c/ChangeLog:

PR tree-optimization/71625
* c-parser.c (c_parser_declaration_or_fndef): Call
braced_list_to_string.

gcc/c-family/ChangeLog:

PR tree-optimization/71625
* c-common.c (braced_list_to_string): New function.
* c-common.h (braced_list_to_string): Declare it.

gcc/cp/ChangeLog:

PR tree-optimization/71625
* decl.c (check_initializer):  Call braced_list_to_string.
(eval_check_narrowing): New function.
* gcc/cp/typeck2.c (digest_init_r): Accept strings literals
as initilizers for all narrow character types.

gcc/testsuite/ChangeLog:

PR tree-optimization/71625

* g++.dg/init/string2.C: New test.
* g++.dg/init/string3.C: New test.
* g++.dg/init/string4.C: New test.
* gcc.dg/init-string-3.c: New test.
* gcc.dg/strlenopt-55.c: New test.
* gcc.dg/strlenopt-56.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263511 138bc75d-0d04-0410-961f-82ee72b054a4
16 files changed:
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/c-family/c-common.h
gcc/c/ChangeLog
gcc/c/c-parser.c
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/typeck2.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/attr-nonstring-3.c
gcc/testsuite/g++.dg/init/string2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/init/string3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/init/string4.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/init-string-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/strlenopt-55.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/strlenopt-56.c [new file with mode: 0644]