aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2014-11-26 14:37:07 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2014-11-26 14:37:07 +0000
commit4186636315b90403a2dc34952b34f6ab4b79ed16 (patch)
treed9ff86887b246f14c4c99fc07c66b614b4210e7f /gcc
parent0bae64d5800c779f2ee6aa5b823a9031f24a0fb2 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr63995-2.c28
-rw-r--r--gcc/tree-chkp-opt.c3
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)))