+2019-01-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/88855
+ * tree-if-conv.c (combine_blocks): Collect
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
+
2019-01-15 Tom de Vries <tdevries@suse.de>
PR target/80547
+2019-01-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/88855
+ * gcc.dg/pr88855.c: New testcase.
+
2019-01-15 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/diagnostic/typedef-initialized.C: New.
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O -ftree-loop-if-convert -ftree-vrp -fno-tree-copy-prop -fno-tree-dce -fno-tree-dominator-opts" } */
+
+typedef int jmp_buf[1];
+
+extern void exit(int) __attribute__((__noreturn__));
+extern int setjmpx(jmp_buf) __attribute__((__returns_twice__));
+
+jmp_buf jbAnagram;
+int a[6];
+int d;
+int b () { exit (1); }
+int c () { b (); }
+int e ()
+{
+ int f = 0;
+ for (; f < 6; f++)
+ a[f] = d;
+ c ();
+ setjmpx (jbAnagram);
+}
FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
SET_USE (use_p, last_vdef);
}
+ if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (gimple_phi_result (vphi)))
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI (last_vdef) = 1;
gsi = gsi_for_stmt (vphi);
remove_phi_node (&gsi, true);
}
FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
SET_USE (use_p, last_vdef);
}
+ if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (gimple_phi_result (vphi)))
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI (last_vdef) = 1;
gimple_stmt_iterator gsi = gsi_for_stmt (vphi);
remove_phi_node (&gsi, true);
}