FreeBSD/contrib/gcc/cp/tree.c
/* When we parse a default argument expression, we may create
   temporary variables via TARGET_EXPRs.  When we actually use the
   default-argument expression, we make a copy of the expression, but
   we must replace the temporaries with appropriate local versions.  */
When we parse a default argument expression, we may create
temporary variables via TARGET_EXPRs.  When we actually use the
default-argument expression, we make a copy of the expression, but
we must replace the temporaries with appropriate local versions.
When we parse a default argument expression we may create temporary variables via TARGET_EXPRs . When we actually use the default - argument expression we make a copy of the expression but we must replace the temporaries with appropriate local versions .
tree
break_out_target_exprs (tree t)
{
  static int target_remap_count;
  static splay_tree target_remap;
  if (!target_remap_count++)
    target_remap = splay_tree_new (splay_tree_compare_pointers,
				   NULL,
				   NULL);
  walk_tree (&t, bot_manip, target_remap, NULL);
  walk_tree (&t, bot_replace, target_remap, NULL);
  if (!--target_remap_count)
    {
      splay_tree_delete (target_remap);
      target_remap = NULL;
    }
  return t;
}
tree break_out_target_exprs ( tree t ) { static int target_remap_count ; static splay_tree target_remap ; if ( ! target_remap_count ++ ) target_remap = splay_tree_new ( splay_tree_compare_pointers , NULL , NULL ) ; walk_tree ( & t , bot_manip , target_remap , NULL ) ; walk_tree ( & t , bot_replace , target_remap , NULL ) ; if ( ! -- target_remap_count ) { splay_tree_delete ( target_remap ) ; target_remap = NULL ; } return t ; }
When we parse a default argument expression, we may create
temporary variables via TARGET_EXPRs.
When we parse a default argument expression we may create temporary variables via TARGET_EXPRs .
/*splay_tree_delete_key_fn=*/ /*splay_tree_delete_value_fn=*/