re PR ipa/60973 (Invalid propagation of a tail call in devirt pass)

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.

From-SVN: r210364
This commit is contained in:
Richard Biener 2014-05-13 11:04:44 +00:00 committed by Richard Biener
parent da3cd11361
commit 6b77934ee0
2 changed files with 11 additions and 0 deletions

View file

@ -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.

View file

@ -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)