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
+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
+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
--- /dev/null
+/* { 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++;
+ }
+}
return false;
else if (addr.pol[0].var)
return false;
+ else if (TREE_CODE (addr.pol[0].cst) != INTEGER_CST)
+ return false;
else if (integer_zerop (addr.pol[0].cst))
*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;
else
*sign = 1;