Initial import from FreeBSD RELENG_4:
[dragonfly.git] / gnu / usr.bin / as / xrealloc.c
1 /* xrealloc.c - new memory or bust
2
3    Copyright (C) 1987, 1990, 1991, 1992 Free Software Foundation, Inc.
4
5    This file is part of GAS, the GNU Assembler.
6
7    GAS is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2, or (at your option)
10    any later version.
11
12    GAS is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with GAS; see the file COPYING.  If not, write to
19    the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
20
21
22 /*
23
24   NAME
25   xrealloc () - get more memory or bust
26   INDEX
27   xrealloc () uses realloc ()
28   SYNOPSIS
29   char   *my_memory;
30
31   my_memory = xrealloc (my_memory, 42);
32   / * my_memory gets (perhaps new) address of 42 chars * /
33
34   DESCRIPTION
35
36   Use xrealloc () as an "error-free" realloc ().It does almost the same
37   job.  When it cannot honour your request for memory it BOMBS your
38   program with a "virtual memory exceeded" message.  Realloc() returns
39   NULL and does not bomb your program.
40
41   SEE ALSO
42   realloc ()
43   */
44
45 #ifndef lint
46 static char rcsid[] = "$FreeBSD: src/gnu/usr.bin/as/xrealloc.c,v 1.6 1999/08/27 23:34:24 peter Exp $";
47 #endif
48
49
50 #if __STDC__ == 1
51 #include <stdlib.h>
52 #else
53 #ifdef USG
54 #include <malloc.h>
55 #else
56 char   *realloc ();
57 #endif /* USG */
58 #endif /* not __STDC__ */
59
60 #define error as_fatal
61
62 char   *
63     xrealloc (ptr, n)
64 register char  *ptr;
65 long    n;
66 {
67         void    error();
68
69         if ((ptr = realloc (ptr, (unsigned)n)) == 0)
70             error ("virtual memory exceeded");
71         return (ptr);
72 }
73
74 /* end of xrealloc.c */