summaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-13 11:06:00 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-13 11:06:00 +0000
commit6d17c5d69e01840cb2fa3298101f4e606dea8fb0 (patch)
tree7f348917dd1ab9cbf4c0807d23222b72186d830c /gcc/tree-inline.c
parent6000f2b28014eec7e398806ece8457c478bffde5 (diff)
downloadgcc-6d17c5d69e01840cb2fa3298101f4e606dea8fb0.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@210365 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index c63b670878a..04d099f61f4 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -1485,6 +1485,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)