libgcc2.c (__empty): An empty function used by the C++ frontend for defaulting cleanup actions.
* libgcc2.c (__empty): An empty function used by the C++ frontend for defaulting cleanup actions. * tree.c (save_tree_status, restore_tree_status): Save and restore temporary_firstobj, so that in progress objects that live on the temporary obstack are not reallocated, if we save and restore the tree status in their lifetime. From-SVN: r10799
This commit is contained in:
parent
24bd20c2e1
commit
8fa6b6c92c
|
@ -2367,6 +2367,11 @@ __register_exceptions (exception_table *table)
|
|||
exception_table_list = node;
|
||||
}
|
||||
|
||||
void
|
||||
__empty ()
|
||||
{
|
||||
}
|
||||
|
||||
#if #machine(i386)
|
||||
void
|
||||
__unwind_function(void *ptr)
|
||||
|
|
|
@ -340,6 +340,7 @@ save_tree_status (p, context)
|
|||
p->all_types_permanent = all_types_permanent;
|
||||
p->momentary_stack = momentary_stack;
|
||||
p->maybepermanent_firstobj = maybepermanent_firstobj;
|
||||
p->temporary_firstobj = temporary_firstobj;
|
||||
p->momentary_firstobj = momentary_firstobj;
|
||||
p->momentary_function_firstobj = momentary_function_firstobj;
|
||||
p->function_obstack = function_obstack;
|
||||
|
@ -392,6 +393,7 @@ save_tree_status (p, context)
|
|||
expression_obstack = &permanent_obstack;
|
||||
rtl_obstack = saveable_obstack = &permanent_obstack;
|
||||
|
||||
temporary_firstobj = (char *) obstack_alloc (&temporary_obstack, 0);
|
||||
momentary_firstobj = (char *) obstack_finish (&momentary_obstack);
|
||||
momentary_function_firstobj = momentary_firstobj;
|
||||
}
|
||||
|
@ -420,6 +422,7 @@ restore_tree_status (p)
|
|||
obstack_free (function_obstack, 0);
|
||||
free (function_obstack);
|
||||
|
||||
temporary_firstobj = p->temporary_firstobj;
|
||||
momentary_firstobj = p->momentary_firstobj;
|
||||
momentary_function_firstobj = p->momentary_function_firstobj;
|
||||
maybepermanent_firstobj = p->maybepermanent_firstobj;
|
||||
|
|
Loading…
Reference in New Issue