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 <[email protected]>
* 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 <[email protected]>
-
- * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL
- terminated string literal.
-
2018-07-30 Segher Boessenkool <[email protected]>
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