cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when gimple call statement is update.
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when gimple call statement is update. * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL. From-SVN: r208654
This commit is contained in:
parent
bd10e887a5
commit
eb14a79f35
@ -1,3 +1,10 @@
|
||||
2014-03-18 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
|
||||
gimple call statement is update.
|
||||
* gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
|
||||
GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
|
||||
|
||||
2014-03-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR sanitizer/60557
|
||||
|
@ -1519,7 +1519,10 @@ cgraph_update_edges_for_call_stmt_node (struct cgraph_node *node,
|
||||
{
|
||||
if (callee->decl == new_call
|
||||
|| callee->former_clone_of == new_call)
|
||||
return;
|
||||
{
|
||||
cgraph_set_call_stmt (e, new_stmt);
|
||||
return;
|
||||
}
|
||||
callee = callee->clone_of;
|
||||
}
|
||||
}
|
||||
|
@ -1153,8 +1153,13 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace)
|
||||
{
|
||||
tree var = create_tmp_var (TREE_TYPE (lhs), NULL);
|
||||
tree def = get_or_create_ssa_default_def (cfun, var);
|
||||
gsi_insert_before (gsi, new_stmt, GSI_SAME_STMT);
|
||||
|
||||
/* To satisfy condition for
|
||||
cgraph_update_edges_for_call_stmt_node,
|
||||
we need to preserve GIMPLE_CALL statement
|
||||
at position of GSI iterator. */
|
||||
update_call_from_tree (gsi, def);
|
||||
gsi_insert_before (gsi, new_stmt, GSI_NEW_STMT);
|
||||
}
|
||||
else
|
||||
gsi_replace (gsi, new_stmt, true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user