diff options
author | Marek Polacek <polacek@redhat.com> | 2016-04-29 12:39:25 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2016-04-29 12:39:25 +0000 |
commit | 2fff3db89fa064071835924a7a9e1751a0b383fa (patch) | |
tree | 136005217bb86ce1eacfff3f8d4a764a43ee0c3c /gcc | |
parent | 500ecf4abd0f29d0cb4555de105a3f4152b6c423 (diff) | |
download | gcc-2fff3db89fa064071835924a7a9e1751a0b383fa.zip gcc-2fff3db89fa064071835924a7a9e1751a0b383fa.tar.gz gcc-2fff3db89fa064071835924a7a9e1751a0b383fa.tar.bz2 |
re PR c/70852 (ice in warn_for_memset)
PR c/70852
* c-common.c (warn_for_memset): Check domain before accessing it.
* gcc.dg/pr70852.c: New test.
From-SVN: r235638
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-family/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-family/c-common.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr70852.c | 11 |
4 files changed, 20 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index f70dc0e..2a740a5 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2016-04-29 Marek Polacek <polacek@redhat.com> + + PR c/70852 + * c-common.c (warn_for_memset): Check domain before accessing it. + 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com> PR/69089 diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index b221979..3c35a6b 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 93e89d9..3911534 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 <vogt@linux.vnet.ibm.com> PR/69089 diff --git a/gcc/testsuite/gcc.dg/pr70852.c b/gcc/testsuite/gcc.dg/pr70852.c new file mode 100644 index 0000000..2dec082 --- /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); +} |