]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libiberty/xatexit.c
c++: Implement modules ABI for vtable emissions
[thirdparty/gcc.git] / libiberty / xatexit.c
index f5d315032893d1f74f79d33e7c13b2e983d529ad..8a985cab4bc752b2df8cf4283d894aa720778d0f 100644 (file)
@@ -11,7 +11,7 @@
 @deftypefun int xatexit (void (*@var{fn}) (void))
 
 Behaves as the standard @code{atexit} function, but with no limit on
-the number of registered funtions.  Returns 0 on success, or -1 on
+the number of registered functions.  Returns 0 on success, or @minus{}1 on
 failure.  If you use @code{xatexit} to register functions, you must use
 @code{xexit} to terminate your program.
 
@@ -22,31 +22,35 @@ failure.  If you use @code{xatexit} to register functions, you must use
 /* Adapted from newlib/libc/stdlib/{,at}exit.[ch].
    If you use xatexit, you must call xexit instead of exit.  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 #include "ansidecl.h"
 #include "libiberty.h"
 
 #include <stdio.h>
 
-#ifdef __STDC__
 #include <stddef.h>
-#else
-#define size_t unsigned long
-#endif
 
+#if VMS
+#include <stdlib.h>
+#include <unixlib.h>
+#else
 /* For systems with larger pointers than ints, this must be declared.  */
-PTR malloc PARAMS ((size_t));
+void *malloc (size_t);
+#endif
 
-static void xatexit_cleanup PARAMS ((void));
+static void xatexit_cleanup (void);
 
 /* Pointer to function run by xexit.  */
-extern void (*_xexit_cleanup) PARAMS ((void));
+extern void (*_xexit_cleanup) (void);
 
 #define        XATEXIT_SIZE 32
 
 struct xatexit {
        struct  xatexit *next;          /* next in list */
        int     ind;                    /* next index in this table */
-       void    (*fns[XATEXIT_SIZE]) PARAMS ((void));   /* the table itself */
+       void    (*fns[XATEXIT_SIZE]) (void);    /* the table itself */
 };
 
 /* Allocate one struct statically to guarantee that we can register
@@ -60,8 +64,7 @@ static struct xatexit *xatexit_head = &xatexit_first;
    Return 0 if successful, -1 if not.  */
 
 int
-xatexit (fn)
-     void (*fn) PARAMS ((void));
+xatexit (void (*fn) (void))
 {
   register struct xatexit *p;
 
@@ -85,7 +88,7 @@ xatexit (fn)
 /* Call any cleanup functions.  */
 
 static void
-xatexit_cleanup ()
+xatexit_cleanup (void)
 {
   register struct xatexit *p;
   register int n;