This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] fix a couple of bugs in const string folding (PR 86532)


On 07/24/2018 02:16 PM, Martin Sebor wrote:
> On 07/20/2018 04:20 AM, Richard Biener wrote:
>> On Thu, 19 Jul 2018, Martin Sebor wrote:
>>
>>> Here's one more update with tweaks addressing a couple more
>>> of Bernd's comments:
>>>
>>> 1) correct the use of TREE_STRING_LENGTH() where a number of
>>> array elements is expected and not bytes
>>> 2) set CHARTYPE as soon as it's first determined rather than
>>> trying to extract it again later
TREE_STRING_LENGTH is *really* poorly named.  It practically invites misuse.

[ Snip ]


> 
> 
> gcc-86532.diff
> 
> 
> PR tree-optimization/86622 - incorrect strlen of array of array plus variable offset
> PR tree-optimization/86532 - Wrong code due to a wrong strlen folding starting with r262522
> 
> gcc/ChangeLog:
> 
> 	PR tree-optimization/86622
> 	PR tree-optimization/86532
> 	* builtins.h (string_length): Declare.
> 	* builtins.c (c_strlen): Correct handling of non-constant offsets.	
> 	(check_access): Be prepared for non-constant length ranges.
> 	(string_length): Make extern.
> 	* expr.c (string_constant): Only handle the minor non-constant
> 	array index.  Use string_constant to compute the length of
> 	a generic string constant.
> 
> gcc/testsuite/ChangeLog:
> 
> 	PR tree-optimization/86622
> 	PR tree-optimization/86532
> 	* gcc.c-torture/execute/strlen-2.c: New test.
> 	* gcc.c-torture/execute/strlen-3.c: New test.
> 	* gcc.c-torture/execute/strlen-4.c: New test.
> 
OK
jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]