On 08/22/18 00:43, Jeff Law wrote:
> [ I'm still digesting, but saw something in this that ought to be broken
> out... ]
> 
> On 08/19/2018 09:55 AM, Bernd Edlinger wrote:
>> diff -Npur gcc/tree-ssa-dse.c gcc/tree-ssa-dse.c
>> --- gcc/tree-ssa-dse.c       2018-07-18 21:21:34.000000000 +0200
>> +++ gcc/tree-ssa-dse.c       2018-08-19 14:29:32.344498771 +0200
>> @@ -248,6 +248,12 @@ compute_trims (ao_ref *ref, sbitmap live
>>       residual handling in mem* and str* functions is usually
>>       reasonably efficient.  */
>>         *trim_tail = last_orig - last_live;
>> +      /* Don't fold away an out of bounds access, as this defeats proper
>> +     warnings.  */
>> +      if (*trim_tail
>> +      && compare_tree_int (TYPE_SIZE_UNIT (TREE_TYPE (ref->base)),
>> +                           last_orig) <= 0)
>> +    *trim_tail = 0;
>>       }
>>     else
>>       *trim_tail = 0;
> This seems like a good change in and of itself and should be able to go
> forward without further review work.   Consider this hunk approved,
> along with any testsuite you have which tickles this code (I didn't
> immediately see one attached to this patch.  But I could have missed it).
> 

Sorry, for not being clear on this.

I needed both hunks "Don't fold away an out of bounds access, as this defeats 
proper
warnings" to prevent a regression on gcc.dg/Wstringop-overflow-5.c,
and surprise surprise, the xfail in gcc.dg/Wstringop-overflow-6.c suddenly 
popped up.

So without the unsafe range info, gcc.dg/Wstringop-overflow-5.c needs both hunks
to not regress, but gcc.dg/Wstringop-overflow-6.c only needs the other one I 
committed
yesterday.

So unfortunately I have no test case except gcc.dg/Wstringop-overflow-5.c for 
that.


Still OK?


Bernd.

Reply via email to