aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/oacc-low.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/oacc-low.c b/gcc/oacc-low.c
index 3f2178d3e83..630eda47c05 100644
--- a/gcc/oacc-low.c
+++ b/gcc/oacc-low.c
@@ -307,7 +307,11 @@ lower_oacc_kernels(gimple_stmt_iterator *gsi, oacc_context* ctx)
vec<tree> args;
args.create(16);
splay_tree_foreach(ctx->param_map, create_call_params, (void*)&args);
- size_t size = sizeof(struct gimple_statement_acc_kernels) + (args.length() - 1) * sizeof(tree);
+ size_t size;
+ if (args.length() != 0)
+ size = sizeof(struct gimple_statement_acc_kernels) + (args.length() - 1) * sizeof(tree);
+ else
+ size = sizeof(struct gimple_statement_acc_kernels);
gimple new_stmt = ggc_alloc_gimple_statement_d (size);
memcpy(new_stmt, stmt, sizeof(struct gimple_statement_acc_kernels));