aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-09-11 23:30:39 -0700
committerRichard Henderson <rth@gcc.gnu.org>1999-09-11 23:30:39 -0700
commit24554b03c644591306283dd455eef887d1f1b0fe (patch)
tree88853ad115b0c3604e2de43f3c0a9c852fdb276a /gcc/tree.c
parent1497faf6be0086785ed49a0fd0177d78d9ce346c (diff)
downloadgcc-24554b03c644591306283dd455eef887d1f1b0fe.zip
gcc-24554b03c644591306283dd455eef887d1f1b0fe.tar.gz
gcc-24554b03c644591306283dd455eef887d1f1b0fe.tar.bz2
tree.c (save_tree_status): Revert 10 Sep change.
* tree.c (save_tree_status): Revert 10 Sep change. (restore_tree_status): Likewise. Call obstack_free with NULL before freeing the obstack proper. From-SVN: r29355
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index b9da51b..ca471a9 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -365,7 +365,8 @@ save_tree_status (p)
function_maybepermanent_obstack
= (struct obstack *) xmalloc (sizeof (struct obstack));
gcc_obstack_init (function_maybepermanent_obstack);
- maybepermanent_firstobj = NULL;
+ maybepermanent_firstobj
+ = (char *) obstack_finish (function_maybepermanent_obstack);
function_obstack = (struct obstack *) xmalloc (sizeof (struct obstack));
gcc_obstack_init (function_obstack);
@@ -394,14 +395,16 @@ restore_tree_status (p)
/* Free saveable storage used by the function just compiled and not
saved. */
obstack_free (function_maybepermanent_obstack, maybepermanent_firstobj);
+ if (obstack_empty_p (function_maybepermanent_obstack))
+ {
+ obstack_free (function_maybepermanent_obstack, NULL);
+ free (function_maybepermanent_obstack);
+ }
obstack_free (&temporary_obstack, temporary_firstobj);
obstack_free (&momentary_obstack, momentary_function_firstobj);
obstack_free (function_obstack, NULL);
-
- if (maybepermanent_firstobj == NULL)
- free (function_maybepermanent_obstack);
free (function_obstack);
temporary_firstobj = p->temporary_firstobj;