diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2014-11-26 14:37:07 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2014-11-26 14:37:07 +0000 |
commit | 4186636315b90403a2dc34952b34f6ab4b79ed16 (patch) | |
tree | d9ff86887b246f14c4c99fc07c66b614b4210e7f /gcc | |
parent | 0bae64d5800c779f2ee6aa5b823a9031f24a0fb2 (diff) | |
download | gcc-4186636315b90403a2dc34952b34f6ab4b79ed16.zip gcc-4186636315b90403a2dc34952b34f6ab4b79ed16.tar.gz gcc-4186636315b90403a2dc34952b34f6ab4b79ed16.tar.bz2 |
re PR bootstrap/63995 (Bootstrap error with -mmpx -fcheck-pointer-bounds)
gcc/
PR bootstrap/63995
* tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
debug statement when searching for a new position for
bounds load/creation statement.
gcc/testsuite/
PR bootstrap/63995
* gcc.target/i386/pr63995-2.c: New.
From-SVN: r218085
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr63995-2.c | 28 | ||||
-rw-r--r-- | gcc/tree-chkp-opt.c | 3 |
4 files changed, 43 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9bd964e..702e86a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com> + + PR bootstrap/63995 + * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore + debug statement when searching for a new position for + bounds load/creation statement. + 2014-11-26 Marek Polacek <polacek@redhat.com> PR sanitizer/63788 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 03605d1..19e7aa1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com> + PR bootstrap/63995 + * gcc.target/i386/pr63995-2.c: New. + +2014-11-26 Ilya Enkovich <ilya.enkovich@intel.com> + PR lto/64075 * gcc.dg/pr64075.c: New. diff --git a/gcc/testsuite/gcc.target/i386/pr63995-2.c b/gcc/testsuite/gcc.target/i386/pr63995-2.c new file mode 100644 index 0000000..7c22e62 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr63995-2.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target mpx } */ +/* { dg-options "-O2 -g -fcheck-pointer-bounds -mmpx -fcompare-debug" } */ + +struct ts +{ + int field; +}; + +extern void test1 (); +extern void test2 (struct ts *); + +static void +init (struct ts *c) +{ + c->field = -1; +} + +struct ts +test3 (const struct ts *other) +{ + struct ts r; + if (other->field != 0) + test1 (); + init (&r); + test2 (&r); + return r; +} diff --git a/gcc/tree-chkp-opt.c b/gcc/tree-chkp-opt.c index ff390d7..92e0694 100644 --- a/gcc/tree-chkp-opt.c +++ b/gcc/tree-chkp-opt.c @@ -1175,6 +1175,9 @@ chkp_reduce_bounds_lifetime (void) FOR_EACH_IMM_USE_STMT (use_stmt, use_iter, op) { + if (is_gimple_debug (use_stmt)) + continue; + if (dom_bb && dominated_by_p (CDI_DOMINATORS, dom_bb, gimple_bb (use_stmt))) |