middle-end/95231 - revert parts of PR95171
authorRichard Biener <rguenther@suse.de>
Wed, 20 May 2020 09:00:57 +0000 (11:00 +0200)
committerRichard Biener <rguenther@suse.de>
Wed, 20 May 2020 11:27:46 +0000 (13:27 +0200)
I mistook the opportunity to also "fix" the [VEC_]COND_EXPR case
for PR95171 but I was wrong in that it doesn't need the fix and
in the actual fix as well.  The following just reverts that part.

2020-05-20  Richard Biener  <rguenther@suse.de>

PR middle-end/95231
* tree-inline.c (remap_gimple_stmt): Revert adjusting
COND_EXPR and VEC_COND_EXPR for a -fnon-call-exception boundary.

* g++.dg/other/pr95231.C: New testcase.

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/pr95231.C [new file with mode: 0644]
gcc/tree-inline.c

index ae0a74779783ba92af619737de0076f2bfb48854..2eba6db9a911089665ab9d886904dfd9a081201c 100644 (file)
@@ -1,3 +1,9 @@
+2020-05-20  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/95231
+       * tree-inline.c (remap_gimple_stmt): Revert adjusting
+       COND_EXPR and VEC_COND_EXPR for a -fnon-call-exception boundary.
+
 2020-05-20  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
            Andre Vieira  <andre.simoesdiasvieira@arm.com>
 
index 401025718ee1d8935a5f5c8081430fc0dc3284b1..3d63c57f308989536b22d5af91cc145b98478133 100644 (file)
@@ -1,3 +1,8 @@
+2020-05-20  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/95231
+       * g++.dg/other/pr95231.C: New testcase.
+
 2020-05-30  Richard Biener  <rguenther@suse.de>
 
        PR c/95141
diff --git a/gcc/testsuite/g++.dg/other/pr95231.C b/gcc/testsuite/g++.dg/other/pr95231.C
new file mode 100644 (file)
index 0000000..de06366
--- /dev/null
@@ -0,0 +1,4 @@
+/* { dg-do compile { target c++11 } } */
+/* { dg-options "-O3 -fnon-call-exceptions" } */
+
+#include "vector-compare.C"
index 943f3f9407be2453b0752eba1abbd15350478e63..3160ca3f88a4b7bf18be8a2f47147aadaffd77a5 100644 (file)
@@ -1974,17 +1974,6 @@ remap_gimple_stmt (gimple *stmt, copy_body_data *id)
            gimple_cond_set_lhs (cond, gimple_assign_lhs (cmp));
            gimple_cond_set_rhs (cond, boolean_false_node);
          }
-      if (gassign *ass = dyn_cast <gassign *> (copy))
-       if ((gimple_assign_rhs_code (ass) == COND_EXPR
-            || gimple_assign_rhs_code (ass) == VEC_COND_EXPR)
-           && gimple_could_trap_p (ass))
-         {
-           gassign *cmp
-             = gimple_build_assign (make_ssa_name (boolean_type_node),
-                                    gimple_assign_rhs1 (ass));
-           gimple_seq_add_stmt (&stmts, cmp);
-           gimple_assign_set_rhs1 (ass, gimple_assign_lhs (cmp));
-         }
     }
 
   gimple_seq_add_stmt (&stmts, copy);