[PATCH 4/5] - extend -Wstringop-overflow to detect out-of-bounds accesses to array parameters

Jeff Law law@redhat.com
Thu Aug 13 16:31:08 GMT 2020


On Tue, 2020-07-28 at 19:22 -0600, Martin Sebor via Gcc-patches wrote:
> Patch 4 adds support to the machinery behind -Wstringop-overflow
> to issue warnings for (likely) out of bounds accesses in calls to
> functions with the internal attribute access specification.  This
> implements the feature pr50584 asks for (plus more).

> [4/5] - Extend -Wstringop-overflow to detect out-of-bounds accesses to array parameters.
> 
> gcc/ChangeLog:
> 
> 	* tree-ssa-uninit.c (maybe_warn_pass_by_reference): Handle attribute
> 	access internal representation of arrays.
> 
> gcc/testsuite/ChangeLog:
> 
> 	* gcc.dg/uninit-37.c: New test.
> 
> gcc/ChangeLog:
> 
> 	PR c/50584
> 	* builtins.c (warn_for_access): Add argument.  Distinguish between
> 	reads and writes.
> 	(check_access): Add argument.  Distinguish between reads and writes.
> 	(gimple_call_alloc_size): Set range even on failure.
> 	(gimple_parm_array_size): New function.
> 	(compute_objsize): Call it.
> 	(check_memop_access): Pass check_access an additional argument.
> 	(expand_builtin_memchr, expand_builtin_strcat): Same.
> 	(expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
> 	(expand_builtin_stpncpy, check_strncat_sizes): Same.
> 	(expand_builtin_strncat, expand_builtin_strncpy): Same.
> 	(expand_builtin_memcmp): Same.
> 	* builtins.h (compute_objsize): Declare a new overload.
> 	(gimple_parm_array_size): Declare.
> 	(check_access): Add argument.
> 	* calls.c (append_attrname): Simplify.
> 	(maybe_warn_rdwr_sizes): Handle internal attribute access.
> 
> gcc/testsuite/ChangeLog:
> 
> 	PR c/50584
> 	* c-c++-common/Wsizeof-pointer-memaccess1.c: Disable new expected
> 	warnings.
> 	* g++.dg/ext/attr-access.C: Update text of expected warnings.
> 	* gcc.dg/Wstringop-overflow-23.c: Same.
> 	* gcc.dg/Wstringop-overflow-24.c: Same.
> 	* gcc.dg/attr-access-none.c: Same.
> 	* gcc.dg/Wstringop-overflow-40.c: New test.
> 	* gcc.dg/attr-access-2.c: New test.
OK once the prereqs are approved.

jeff
> 



More information about the Gcc-patches mailing list