aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-10-15 15:05:20 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-10-15 15:05:20 +0000
commit42e52a51c4d34c11b2400137f196076ba6eda9b4 (patch)
tree6128d6f82b001f30b643013e41378fdd691a19aa /gcc
parent42630ea643e7b83937cd275d9f6dee39fc82f469 (diff)
downloadgcc-42e52a51c4d34c11b2400137f196076ba6eda9b4.zip
gcc-42e52a51c4d34c11b2400137f196076ba6eda9b4.tar.gz
gcc-42e52a51c4d34c11b2400137f196076ba6eda9b4.tar.bz2
gimple-fold.c (gimple_fold_call): Properly keep virtual SSA form up-to-date when...
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. From-SVN: r216266
Diffstat (limited to 'gcc')
-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;
}
}