On 07/30/18 08:52, Richard Biener wrote: > On Sun, 29 Jul 2018, Bernd Edlinger wrote: > >> Hi! >> >> This fixes another not NUL terminated string literal that is created >> in tree-ssa-forwprop.c at simplify_builtin_call. >> >> src_buf is set up to contain a NUL at src_buf[src_len], thus use src_len + 1 >> as length parameter to build_string_literal. All other uses of >> build_string_literal do it right, as far as I can see. >> >> >> Bootstrapped and reg-tested on x86_64-pc-linux-gnu. >> Is it OK for trunk? > > OK. > > Richard. >
Hi, when I installed that patch it appeared to me that naturally all string constants ought to be zero-terminated. But since we have now the STRING_CST semantic changes installed, which do equally support both zero and non-zero terminated string constants, I want to revert this again: r263068 | edlinger | 2018-07-30 15:26:25 +0200 (Mo, 30. Jul 2018) | 5 Zeilen GeƤnderte Pfade: M /trunk/gcc/ChangeLog M /trunk/gcc/tree-ssa-forwprop.c 2018-07-30 Bernd Edlinger <bernd.edlin...@hotmail.de> * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL terminated string literal. So unless there are reasons to keep this zero-terminated string constant, I am going to revert this patch today evening, after another Bootstrapped and reg-tested on x86_64-pc-linux-gnu. Thanks Bernd.
Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 263068) +++ gcc/ChangeLog (revision 263067) @@ -1,8 +1,3 @@ -2018-07-30 Bernd Edlinger <bernd.edlin...@hotmail.de> - - * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL - terminated string literal. - 2018-07-30 Segher Boessenkool <seg...@kernel.crashing.org> PR rtl-optimization/85160 Index: gcc/tree-ssa-forwprop.c =================================================================== --- gcc/tree-ssa-forwprop.c (revision 263068) +++ gcc/tree-ssa-forwprop.c (revision 263067) @@ -1391,7 +1391,7 @@ src_buf, ptr1_align, false)) break; - new_str_cst = build_string_literal (src_len + 1, src_buf); + new_str_cst = build_string_literal (src_len, src_buf); if (callee1) { /* If STMT1 is a mem{,p}cpy call, adjust it and remove