aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/stdlib/exit.c
diff options
context:
space:
mode:
authorMatthew Green <mrg@redhat.com>2002-02-03 09:24:18 +0000
committerMatthew Green <mrg@redhat.com>2002-02-03 09:24:18 +0000
commit8195aff714f2ea5d680a5129a1d54af388e90355 (patch)
tree683ff47f4802385e669491dda42bf8050772dbdf /newlib/libc/stdlib/exit.c
parentad67ada2fc7cdb361643d506701e274a67d796f9 (diff)
downloadnewlib-8195aff714f2ea5d680a5129a1d54af388e90355.zip
newlib-8195aff714f2ea5d680a5129a1d54af388e90355.tar.gz
newlib-8195aff714f2ea5d680a5129a1d54af388e90355.tar.bz2
* implement a new `struct _reent' that is significantly smaller. use this
if _REENT_SMALL is defined in config.h. define this for xstormy16.
Diffstat (limited to 'newlib/libc/stdlib/exit.c')
-rw-r--r--newlib/libc/stdlib/exit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/newlib/libc/stdlib/exit.c b/newlib/libc/stdlib/exit.c
index 543bd0e..fb7f73e 100644
--- a/newlib/libc/stdlib/exit.c
+++ b/newlib/libc/stdlib/exit.c
@@ -62,9 +62,14 @@ _DEFUN (exit, (code),
register struct _atexit *p;
register int n;
+#ifdef _REENT_SMALL
+ for (p = &_REENT->_atexit, n = p->_ind; --n >= 0;)
+ (*p->_fns[n]) ();
+#else
for (p = _REENT->_atexit; p; p = p->_next)
for (n = p->_ind; --n >= 0;)
(*p->_fns[n]) ();
+#endif
if (_REENT->__cleanup)
(*_REENT->__cleanup) (_REENT);
_exit (code);