diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 210eeb4cc12..663acf16cbf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-05-13 Richard Biener + + 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 * rtl.def (SYMBOL_REF): Remove middle "0" field. diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 987e81506b7..9207e9f7296 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)