Renamed from strtoxmax.c, removing the old strtoimax.c.
[gnulib.git] / lib / xalloc.h
index 063c3a1..098a6c2 100644 (file)
@@ -1,5 +1,5 @@
 /* xalloc.h -- malloc with out-of-memory checking
-   Copyright (C) 1990-1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1990-1998, 1999, 2000 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #  endif
 # endif
 
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-#  define __attribute__(x)
+# ifndef __attribute__
+#  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
+#   define __attribute__(x)
+#  endif
 # endif
 
 # ifndef ATTRIBUTE_NORETURN
@@ -41,28 +43,28 @@ extern int xalloc_exit_failure;
 
 /* If this pointer is non-zero, run the specified function upon each
    allocation failure.  It is initialized to zero. */
-extern void (*xalloc_fail_func) PARAMS ((void)) ATTRIBUTE_NORETURN;
+extern void (*xalloc_fail_func) PARAMS ((void));
 
 /* If XALLOC_FAIL_FUNC is undefined or a function that returns, this
-   message must be non-NULL.  It is translated via gettext.
-   The default value is "Memory exhausted".  */
-extern char *const xalloc_msg_memory_exhausted;
+   message is output.  It is translated via gettext.
+   Its value is "memory exhausted".  */
+extern char const xalloc_msg_memory_exhausted[];
 
 /* This function is always triggered when memory is exhausted.  It is
    in charge of honoring the three previous items.  This is the
    function to call when one wants the program to die because of a
    memory allocation failure.  */
-extern void xalloc_die PARAMS ((void));
+extern void xalloc_die PARAMS ((void)) ATTRIBUTE_NORETURN;
 
 void *xmalloc PARAMS ((size_t n));
 void *xcalloc PARAMS ((size_t n, size_t s));
 void *xrealloc PARAMS ((void *p, size_t n));
 char *xstrdup PARAMS ((const char *str));
 
-# define XMALLOC(Type, N_bytes) ((Type *) xmalloc (sizeof (Type) * (N_bytes)))
-# define XCALLOC(Type, N_bytes) ((Type *) xcalloc (sizeof (Type), (N_bytes)))
-# define XREALLOC(Ptr, Type, N_bytes) \
-  ((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_bytes)))
+# define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items)))
+# define XCALLOC(Type, N_items) ((Type *) xcalloc (sizeof (Type), (N_items)))
+# define XREALLOC(Ptr, Type, N_items) \
+  ((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items)))
 
 /* Declare and alloc memory for VAR of type TYPE. */
 # define NEW(Type, Var)  Type *(Var) = XMALLOC (Type, 1)