@@ -1870,15 +1870,22 @@ scan_function (cgraph_node *node, struct function *fun)
case GIMPLE_CALL:
{
unsigned argument_count = gimple_call_num_args (stmt);
- scan_call_info call_info;
+ isra_scan_context ctx = ISRA_CTX_ARG;
+ scan_call_info call_info, *call_info_p = &call_info;
call_info.cs = node->get_edge (stmt);
- call_info.argument_count = argument_count;
+ if (!call_info.cs)
+ {
+ call_info_p = NULL;
+ ctx = ISRA_CTX_LOAD;
+ }
+ else
+ call_info.argument_count = argument_count;
for (unsigned i = 0; i < argument_count; i++)
{
call_info.arg_idx = i;
scan_expr_access (gimple_call_arg (stmt, i), stmt,
- ISRA_CTX_ARG, bb, &call_info);
+ ctx, bb, call_info_p);
}
tree lhs = gimple_call_lhs (stmt);