aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gimple-fold.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index efbbe41..89a84a2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-10-15 Richard Biener <rguenther@suse.de>
+
+ * gimple-fold.c (gimple_fold_call): Properly keep virtual
+ SSA form up-to-date when devirtualizing a call to
+ __builtin_unreachable and avoid fixing up EH info here.
+
2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Anna Tikhonova <anna.tikhonova@intel.com>
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index a0ce0db..cc27cb9 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -2629,7 +2629,11 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace)
gsi_insert_before (gsi, new_stmt, GSI_NEW_STMT);
}
else
- gsi_replace (gsi, new_stmt, true);
+ {
+ gimple_set_vuse (new_stmt, gimple_vuse (stmt));
+ gimple_set_vdef (new_stmt, gimple_vdef (stmt));
+ gsi_replace (gsi, new_stmt, false);
+ }
return true;
}
}