I am testing the following patch for PR90278.

Bootstrap / regtest running on x86_64-unknown-linux-gnu.

Richard.

2019-04-29  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/90278
        * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
        EH on comparison simplification.

        * gcc.dg/torture/pr90278.c: New testcase.

Index: gcc/tree-ssa-forwprop.c
===================================================================
--- gcc/tree-ssa-forwprop.c     (revision 270645)
+++ gcc/tree-ssa-forwprop.c     (working copy)
@@ -2496,6 +2496,8 @@ pass_forwprop::execute (function *fun)
                  {
                    int did_something;
                    did_something = forward_propagate_into_comparison (&gsi);
+                   if (maybe_clean_or_replace_eh_stmt (stmt, gsi_stmt (gsi)))
+                     bitmap_set_bit (to_purge, bb->index);
                    if (did_something == 2)
                      cfg_changed = true;
                    changed = did_something != 0;
Index: gcc/testsuite/gcc.dg/torture/pr90278.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/pr90278.c      (nonexistent)
+++ gcc/testsuite/gcc.dg/torture/pr90278.c      (working copy)
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-fexceptions -fnon-call-exceptions" } */
+
+double
+hc (void)
+{
+  double dp = 0.0;
+  double ek[1];
+
+  ek[0] = 1.0 / dp < 0.0;
+
+  return ek[0];
+}

Reply via email to