aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2013-11-29 13:00:35 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2013-11-29 05:00:35 -0800
commitd7947e191bdfd580d7b8ddb2a72f050cbfc41913 (patch)
tree6cfb0c8004407472eafd8773114fe3983adc250c /gcc
parent35814b034651b543b2521f9bd028c35f1fcaac1a (diff)
downloadgcc-d7947e191bdfd580d7b8ddb2a72f050cbfc41913.zip
gcc-d7947e191bdfd580d7b8ddb2a72f050cbfc41913.tar.gz
gcc-d7947e191bdfd580d7b8ddb2a72f050cbfc41913.tar.bz2
Properly handle function without arguments
PR c/59309 * cilk.c (gimplify_cilk_spawn): Properly handle function without arguments. From-SVN: r205525
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/cilk.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 12db521..616a742 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2013-11-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR c/59309
+ * cilk.c (gimplify_cilk_spawn): Properly handle function without
+ arguments.
+
2013-11-29 Jakub Jelinek <jakub@redhat.com>
PR c/59280
diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c
index c85b5f2..99d9c7e 100644
--- a/gcc/c-family/cilk.c
+++ b/gcc/c-family/cilk.c
@@ -757,7 +757,10 @@ gimplify_cilk_spawn (tree *spawn_p, gimple_seq *before ATTRIBUTE_UNUSED,
/* This should give the number of parameters. */
total_args = list_length (new_args);
- arg_array = XNEWVEC (tree, total_args);
+ if (total_args)
+ arg_array = XNEWVEC (tree, total_args);
+ else
+ arg_array = NULL;
ii_args = new_args;
for (ii = 0; ii < total_args; ii++)
@@ -771,7 +774,7 @@ gimplify_cilk_spawn (tree *spawn_p, gimple_seq *before ATTRIBUTE_UNUSED,
call1 = cilk_call_setjmp (cfun->cilk_frame_decl);
- if (*arg_array == NULL_TREE)
+ if (arg_array == NULL || *arg_array == NULL_TREE)
call2 = build_call_expr (function, 0);
else
call2 = build_call_expr_loc_array (EXPR_LOCATION (*spawn_p), function,