From 4186636315b90403a2dc34952b34f6ab4b79ed16 Mon Sep 17 00:00:00 2001 From: Ilya Enkovich Date: Wed, 26 Nov 2014 14:37:07 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 ++++++ gcc/testsuite/ChangeLog | 5 ++++ gcc/testsuite/gcc.target/i386/pr63995-2.c | 28 +++++++++++++++++++++++ gcc/tree-chkp-opt.c | 3 +++ 4 files changed, 43 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/pr63995-2.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9bd964ec445..702e86a77e0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-11-26 Ilya Enkovich + + 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 PR sanitizer/63788 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 03605d1178e..19e7aa17c6a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-11-26 Ilya Enkovich + + PR bootstrap/63995 + * gcc.target/i386/pr63995-2.c: New. + 2014-11-26 Ilya Enkovich PR lto/64075 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 00000000000..7c22e625a8d --- /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 ff390d7bb3d..92e0694f09b 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))) -- 2.30.2