From 025dd1e0afc2c48cdc0038862d0adcb052a5ff9e Mon Sep 17 00:00:00 2001 From: mpolacek Date: Fri, 29 Apr 2016 12:39:25 +0000 Subject: [PATCH] PR c/70852 * c-common.c (warn_for_memset): Check domain before accessing it. * gcc.dg/pr70852.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235638 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/c-family/ChangeLog | 5 +++++ gcc/c-family/c-common.c | 1 + gcc/testsuite/ChangeLog | 3 +++ gcc/testsuite/gcc.dg/pr70852.c | 11 +++++++++++ 4 files changed, 20 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/pr70852.c diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index f70dc0ea66dd..2a740a57e7bb 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2016-04-29 Marek Polacek + + PR c/70852 + * c-common.c (warn_for_memset): Check domain before accessing it. + 2016-04-29 Dominik Vogt PR/69089 diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index b2219791881b..3c35a6b43530 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -11796,6 +11796,7 @@ warn_for_memset (location_t loc, tree arg0, tree arg2, tree elt_type = TREE_TYPE (type); tree domain = TYPE_DOMAIN (type); if (!integer_onep (TYPE_SIZE_UNIT (elt_type)) + && domain != NULL_TREE && TYPE_MAXVAL (domain) && TYPE_MINVAL (domain) && integer_zerop (TYPE_MINVAL (domain)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 93e89d98fb77..3911534c8bb1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -3,6 +3,9 @@ PR sanitizer/70342 * g++.dg/ubsan/null-7.C: New test. + PR c/70852 + * gcc.dg/pr70852.c: New test. + 2016-04-29 Dominik Vogt PR/69089 diff --git a/gcc/testsuite/gcc.dg/pr70852.c b/gcc/testsuite/gcc.dg/pr70852.c new file mode 100644 index 000000000000..2dec08296524 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr70852.c @@ -0,0 +1,11 @@ +/* PR c/70852 */ +/* { dg-do compile } */ +/* { dg-options "-Wall" } */ + +extern void *memset (void *, int, __SIZE_TYPE__); +extern int A[]; +void +fn1 (void) +{ + memset (A, 0, 1); +} -- 2.47.3