http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59309
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bviyer at gmail dot com --- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> --- There are /* This should give the number of parameters. */ total_args = list_length (new_args); arg_array = XNEWVEC (tree, total_args); ii_args = new_args; for (ii = 0; ii < total_args; ii++) { arg_array[ii] = TREE_VALUE (ii_args); ii_args = TREE_CHAIN (ii_args); } TREE_USED (function) = 1; rest_of_decl_compilation (function, 0, 0); call1 = cilk_call_setjmp (cfun->cilk_frame_decl); if (*arg_array == NULL_TREE) call2 = build_call_expr (function, 0); else call2 = build_call_expr_loc_array (EXPR_LOCATION (*spawn_p), function, total_args, arg_array); When total_args == 0, XNEWVEC (tree, total_args) doesn't return NULL and "*arg_array" will be wrong.