[PATCH][1/2] Improve array bound warnings

Jakub Jelinek jakub@redhat.com
Mon Jan 26 15:36:00 GMT 2015


On Mon, Jan 26, 2015 at 03:57:20PM +0100, Richard Biener wrote:
> 
> I've looked at PR64277 and noticed we haven't been applying TLC to the
> array-bound warning code for a long time.  I noticed we don't
> warn for out-of-bound return &a[11]; - fixed with the simplifications.
> I also noticed that anti-range handling has off-by-one errors
> (well, always applied ignore_off_by_one and to both ends of the array).
> 
> Bootstrap and regtest pending on x86_64-unknown-linux-gnu.
> 
> It doesn't help the testcase in PR64277 ([2/2] will somewhat).
> 
> Ok for trunk?  (seems we never warned for returning &a[11] and
> anti-range handling was broken all the time)
> 
> I can as well queue this for GCC 6.

I think for this warning which is notorious for generating false positives
everywhere it would be better to defer to GCC 6 at this point.

> 2015-01-26  Richard Biener  <rguenther@suse.de>
> 
> 	PR tree-optimization/64277
> 	* tree-vrp.c (check_array_ref): Fix anti-range handling,
> 	simplify upper bound handling.
> 	(search_for_addr_array): Simplify.
> 	(check_array_bounds): Handle ADDR_EXPRs here.
> 	(check_all_array_refs): Simplify.
> 
> 	* gcc.dg/Warray-bounds-12.c: New testcase.
> 	* gcc.dg/Warray-bounds-13.c: Likewise.

	Jakub



More information about the Gcc-patches mailing list