diff options
author | Marek Polacek <polacek@redhat.com> | 2014-07-15 11:06:07 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2014-07-15 11:06:07 +0000 |
commit | 4d661eaacb8d418edecdeede04c731d60d0d9dfc (patch) | |
tree | 8d686d4549052439ee077ca3e113b4edebe62711 | |
parent | 6ae506425148269dfdd5b2001804bdb461ec5706 (diff) | |
download | gcc-4d661eaacb8d418edecdeede04c731d60d0d9dfc.zip gcc-4d661eaacb8d418edecdeede04c731d60d0d9dfc.tar.gz gcc-4d661eaacb8d418edecdeede04c731d60d0d9dfc.tar.bz2 |
c-ubsan.c (ubsan_instrument_bounds): Don't instrument if TYPE_MAX_VALUE is NULL.
* c-ubsan.c (ubsan_instrument_bounds): Don't instrument if
TYPE_MAX_VALUE is NULL.
* gcc.dg/ubsan/bounds-1.c: New test.
From-SVN: r212552
-rw-r--r-- | gcc/c-family/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-family/c-ubsan.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ubsan/bounds-1.c | 10 |
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 2cd29fe..977de69 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2014-07-15 Marek Polacek <polacek@redhat.com> + + * c-ubsan.c (ubsan_instrument_bounds): Don't instrument if + TYPE_MAX_VALUE is NULL. + 2014-07-14 Jakub Jelinek <jakub@redhat.com> PR middle-end/61294 diff --git a/gcc/c-family/c-ubsan.c b/gcc/c-family/c-ubsan.c index 3698580..ad5dd0b 100644 --- a/gcc/c-family/c-ubsan.c +++ b/gcc/c-family/c-ubsan.c @@ -265,7 +265,7 @@ ubsan_instrument_bounds (location_t loc, tree array, tree *index, tree type = TREE_TYPE (array); tree domain = TYPE_DOMAIN (type); - if (domain == NULL_TREE) + if (domain == NULL_TREE || TYPE_MAX_VALUE (domain) == NULL_TREE) return NULL_TREE; tree bound = TYPE_MAX_VALUE (domain); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2f25963..8332a20 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-07-15 Marek Polacek <polacek@redhat.com> + + * gcc.dg/ubsan/bounds-1.c: New test. + 2014-06-15 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray_34.f90: New. diff --git a/gcc/testsuite/gcc.dg/ubsan/bounds-1.c b/gcc/testsuite/gcc.dg/ubsan/bounds-1.c new file mode 100644 index 0000000..6f3cd2d --- /dev/null +++ b/gcc/testsuite/gcc.dg/ubsan/bounds-1.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-fsanitize=bounds" } */ + +struct T { int c; char d[]; } t = { 1, "abcdefg" }; + +int +baz (int i) +{ + return t.d[i]; +} |