[Bug middle-end/59309] FAIL: c-c++-common/cilk-plus/CK/spawnee_inline.c -g -fcilkplus (test for excess errors)

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Nov 27 13:20:00 GMT 2013


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.



More information about the Gcc-bugs mailing list