Commit 8a7df031 by Martin Liska Committed by Martin Liska

Fix ICE in tree-chkp-opt.c (PR tree-optimization/79631).

2017-03-09  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/79631
	* tree-chkp-opt.c (chkp_is_constant_addr): Call
	tree_int_cst_sign_bit just for INTEGER constants.
2017-03-09  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/79631
	* gcc.target/i386/mpx/pr79631.c: New test.

From-SVN: r245998
parent 3828bb0d
2017-03-09 Martin Liska <mliska@suse.cz> 2017-03-09 Martin Liska <mliska@suse.cz>
PR tree-optimization/79631
* tree-chkp-opt.c (chkp_is_constant_addr): Call
tree_int_cst_sign_bit just for INTEGER constants.
2017-03-09 Martin Liska <mliska@suse.cz>
PR target/65705 PR target/65705
PR target/69804 PR target/69804
* toplev.c (process_options): Disable -fcheck-pointer-bounds with * toplev.c (process_options): Disable -fcheck-pointer-bounds with
......
2017-03-09 Martin Liska <mliska@suse.cz> 2017-03-09 Martin Liska <mliska@suse.cz>
PR tree-optimization/79631
* gcc.target/i386/mpx/pr79631.c: New test.
2017-03-09 Martin Liska <mliska@suse.cz>
PR target/65705 PR target/65705
PR target/69804 PR target/69804
* gcc.target/i386/pr71458.c: Update scanned pattern. * gcc.target/i386/pr71458.c: Update scanned pattern.
......
/* { dg-do compile { target { ! x32 } } } */
/* { dg-options "-fcheck-pointer-bounds -mmpx -O2" } */
typedef struct { int _mp_size; } mpz_t[1];
int a, b;
void fn1()
{
mpz_t c[1][b];
for (;;) {
int d = 0 >= 0 ? 0 == 0 ? c[0][0]->_mp_size ? -1 : 0 : 0 : 0,
e = 0 >= 0 ? 0 == 0 ? c[1][1]->_mp_size ? -1 : 0 : 0 : 0;
if (d != e)
a++;
}
}
...@@ -239,9 +239,11 @@ chkp_is_constant_addr (const address_t &addr, int *sign) ...@@ -239,9 +239,11 @@ chkp_is_constant_addr (const address_t &addr, int *sign)
return false; return false;
else if (addr.pol[0].var) else if (addr.pol[0].var)
return false; return false;
else if (TREE_CODE (addr.pol[0].cst) != INTEGER_CST)
return false;
else if (integer_zerop (addr.pol[0].cst)) else if (integer_zerop (addr.pol[0].cst))
*sign = 0; *sign = 0;
else if (tree_int_cst_sign_bit (addr.pol[0].cst)) else if (tree_int_cst_sign_bit (addr.pol[0].cst))
*sign = -1; *sign = -1;
else else
*sign = 1; *sign = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment