aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-inline.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 210eeb4..663acf1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-13 Richard Biener <rguenther@suse.de>
+
+ PR ipa/60973
+ * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
+ it needs revisiting whether the call still may be tail-called.
+
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
* rtl.def (SYMBOL_REF): Remove middle "0" field.
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 987e815..9207e9f 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -1483,6 +1483,11 @@ remap_gimple_stmt (gimple stmt, copy_body_data *id)
/* Create a new deep copy of the statement. */
copy = gimple_copy (stmt);
+ /* Clear flags that need revisiting. */
+ if (is_gimple_call (copy)
+ && gimple_call_tail_p (copy))
+ gimple_call_set_tail (copy, false);
+
/* Remap the region numbers for __builtin_eh_{pointer,filter},
RESX and EH_DISPATCH. */
if (id->eh_map)