static bitmap task_shared_vars;
static bitmap global_nonaddressable_vars;
static vec<omp_context *> taskreg_contexts;
+static vec<gomp_task *> task_cpyfns;
static void scan_omp (gimple_seq *, omp_context *);
static tree scan_omp_1_op (tree *, int *, void *);
DECL_ABSTRACT_ORIGIN (t) = NULL;
}
- if (is_task_ctx (ctx))
- finalize_task_copyfn (as_a <gomp_task *> (ctx->stmt));
-
if (ctx->task_reduction_map)
{
ctx->task_reductions.release ();
size_t looptempno = 0;
child_fn = gimple_omp_task_copy_fn (task_stmt);
+ task_cpyfns.safe_push (task_stmt);
child_cfun = DECL_STRUCT_FUNCTION (child_fn);
gcc_assert (child_cfun->cfg == NULL);
DECL_SAVED_TREE (child_fn) = alloc_stmt_list ();
&& (TREE_CODE (TREE_TYPE (DECL_ARGUMENTS (current_function_decl)))
== POINTER_TYPE))
remove_member_access_dummy_vars (DECL_INITIAL (current_function_decl));
+
+ gomp_task *task_stmt;
+ unsigned j;
+ FOR_EACH_VEC_ELT (task_cpyfns, j, task_stmt)
+ finalize_task_copyfn (task_stmt);
+ task_cpyfns.release ();
return 0;
}