diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2018-09-13 18:43:44 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2018-09-13 12:43:44 -0600 |
commit | 0a4b0aa140d187faa2f72da821de428a6a557da7 (patch) | |
tree | 15c606c53e7617afa9a43db60e7f9038589630cb /gcc/cp | |
parent | 8b393e9fb21ee2889eb341ec20e6e84e6f4de2a5 (diff) | |
download | gcc-0a4b0aa140d187faa2f72da821de428a6a557da7.zip gcc-0a4b0aa140d187faa2f72da821de428a6a557da7.tar.gz gcc-0a4b0aa140d187faa2f72da821de428a6a557da7.tar.bz2 |
typeck2.c (digest_init_r): Fix overlength strings.
* typeck2.c (digest_init_r): Fix overlength strings.
* vtable-class-hierarchy.c (build_key_buffer_arg): Make string literal
NUL terminated.
From-SVN: r264286
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/typeck2.c | 9 |
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ca8939d..8ba87ce 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2018-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> + + * typeck2.c (digest_init_r): Fix overlength strings. + * vtable-class-hierarchy.c (build_key_buffer_arg): Make string literal + NUL terminated. + 2018-09-13 Ville Voutilainen <ville.voutilainen@gmail.com> PR c++/87093 diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 7cd0a7e..b13ed26 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -1112,8 +1112,13 @@ digest_init_r (tree type, tree init, int nested, int flags, counted in the length of the constant, but in C++ this would be invalid. */ if (size < TREE_STRING_LENGTH (init)) - permerror (loc, "initializer-string for array " - "of chars is too long"); + { + permerror (loc, "initializer-string for array " + "of chars is too long"); + + init = build_string (size, TREE_STRING_POINTER (init)); + TREE_TYPE (init) = type; + } } return init; } |