FreeBSD/contrib/gcc/cp/parser.c
/* APPLE LOCAL begin radar 6169527 */
/* This routine is mostly rewritten for c++ because initialization of variables
 may involve copy construction. */
APPLE LOCAL begin radar 6169527
This routine is mostly rewritten for c++ because initialization of variables
may involve copy construction.
APPLE LOCAL begin radar 6169527 This routine is mostly rewritten for c ++ because initialization of variables may involve copy construction .
static void
declare_block_prologue_local_vars (tree self_parm, tree component,
				    tree stmt)
{
  tree decl, block_component;
  tree_stmt_iterator i;
  tree initialization_stmt;
  int save_line = LOCATION_LINE (input_location);
  decl = component;
  block_component = build_component_ref (build_indirect_ref (self_parm, "->"),
					  DECL_NAME (component));
  gcc_assert (block_component);
  LOCATION_LINE (input_location) = DECL_SOURCE_LINE (decl) - 1;
  DECL_EXTERNAL (decl) = 0;
  TREE_STATIC (decl) = 0;
  TREE_USED (decl) = 1;
  DECL_CONTEXT (decl) = current_function_decl;
  DECL_ARTIFICIAL (decl) = 1;
  initialization_stmt = push_stmt_list();
  cp_finish_decl (decl, block_component, 0, 0, LOOKUP_ONLYCONVERTING);
  initialization_stmt = pop_stmt_list (initialization_stmt);
  LOCATION_LINE (input_location) = save_line;
  i = tsi_start (stmt);
  tsi_link_before (&i, initialization_stmt, TSI_SAME_STMT);
}
static void declare_block_prologue_local_vars ( tree self_parm , tree component , tree stmt ) { tree decl , block_component ; tree_stmt_iterator i ; tree initialization_stmt ; int save_line = LOCATION_LINE ( input_location ) ; decl = component ; block_component = build_component_ref ( build_indirect_ref ( self_parm , " " ) , DECL_NAME ( component ) ) ; gcc_assert ( block_component ) ; LOCATION_LINE ( input_location ) = DECL_SOURCE_LINE ( decl ) - 1 ; DECL_EXTERNAL ( decl ) = 0 ; TREE_STATIC ( decl ) = 0 ; TREE_USED ( decl ) = 1 ; DECL_CONTEXT ( decl ) = current_function_decl ; DECL_ARTIFICIAL ( decl ) = 1 ; initialization_stmt = push_stmt_list ( ) ; cp_finish_decl ( decl , block_component , 0 , 0 , LOOKUP_ONLYCONVERTING ) ; initialization_stmt = pop_stmt_list ( initialization_stmt ) ; LOCATION_LINE ( input_location ) = save_line ; i = tsi_start ( stmt ) ; tsi_link_before ( & i , initialization_stmt , TSI_SAME_STMT ) ; }
APPLE LOCAL begin radar 6169527
This routine is mostly rewritten for c++ because initialization of variables
may involve copy construction.
APPLE LOCAL begin radar 6169527 This routine is mostly rewritten for c ++ because initialization of variables may involve copy construction .
/* APPLE LOCAL radar 6163705  */ /* APPLE LOCAL radar 6163705  */ /* APPLE LOCAL radar 6163705  */ /* Prepend a initialization_stmt statement to the statement list. */