* mcheck.c: Avoid warning about undeclared abort fn.

* tm-sparc.h (PC_ADJUST):  Avoid calling error() from this;
it causes recursive calls to error() when used in cleanups.
To do so requires that we make it a function, so we do.
* sparc-tdep.c (sparc_pc_adjust):  New implem of PC_ADJUST.
* utils.c (do_cleanups):  Remove the current cleanup from the
chain *before* calling it, in case error() is called from it.
The result won't be pretty, but won't be an infinite loop either.
This commit is contained in:
John Gilmore
1991-08-20 03:02:39 +00:00
parent 24e2462158
commit 5e5215eba7
5 changed files with 40 additions and 6 deletions

View File

@ -134,8 +134,8 @@ do_cleanups (old_chain)
register struct cleanup *ptr;
while ((ptr = cleanup_chain) != old_chain)
{
cleanup_chain = ptr->next; /* Do this first incase recursion */
(*ptr->function) (ptr->arg);
cleanup_chain = ptr->next;
free (ptr);
}
}