libgcc2.c (__empty): An empty function used by the C++ frontend for defaulting cleanu...
authorMike Stump <mrs@gcc.gnu.org>
Mon, 18 Dec 1995 17:42:56 +0000 (17:42 +0000)
committerMike Stump <mrs@gcc.gnu.org>
Mon, 18 Dec 1995 17:42:56 +0000 (17:42 +0000)
* 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

gcc/libgcc2.c
gcc/tree.c

index 1e01e9139866d72748ed72ffe16fa6985dc6591c..1dd16f9303c981b7d9c72071a204e51ee3f138bf 100644 (file)
@@ -2367,6 +2367,11 @@ __register_exceptions (exception_table *table)
   exception_table_list = node;
 }
 
+void
+__empty ()
+{
+}
+
 #if #machine(i386)
 void
 __unwind_function(void *ptr)
index 8281e9c457b873d1817b5899cacd7666b2f25693..60538bd197e925e5d3f515b6b4ebb935a9708e02 100644 (file)
@@ -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;