gimple-fold.c (fold_gimple_assign): Fix condition guarding ipa-devirt path; fix thinko there.

* gimple-fold.c (fold_gimple_assign): Fix condition guarding
	ipa-devirt path; fix thinko there.

From-SVN: r213150
This commit is contained in:
Jan Hubicka 2014-07-29 11:36:36 +02:00 committed by Jan Hubicka
parent eb5453a590
commit f8a39967a5
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2014-07-28 Jan Hubicka <hubicka@ucw.cz>
* gimple-fold.c (fold_gimple_assign): Fix condition guarding
ipa-devirt path; fix thinko there.
2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
* config/i386/i386.c (ix86_return_in_memory): replace one

View File

@ -372,11 +372,11 @@ fold_gimple_assign (gimple_stmt_iterator *si)
tree val = OBJ_TYPE_REF_EXPR (rhs);
if (is_gimple_min_invariant (val))
return val;
else if (flag_devirtualize && virtual_method_call_p (val))
else if (flag_devirtualize && virtual_method_call_p (rhs))
{
bool final;
vec <cgraph_node *>targets
= possible_polymorphic_call_targets (val, stmt, &final);
= possible_polymorphic_call_targets (rhs, stmt, &final);
if (final && targets.length () <= 1 && dbg_cnt (devirt))
{
tree fndecl;
@ -395,7 +395,8 @@ fold_gimple_assign (gimple_stmt_iterator *si)
? targets[0]->name ()
: "__builtin_unreachable");
}
val = fold_convert (TREE_TYPE (val), fndecl);
val = fold_convert (TREE_TYPE (val),
build_fold_addr_expr_loc (loc, fndecl));
STRIP_USELESS_TYPE_CONVERSION (val);
return val;
}