]> git.saurik.com Git - bison.git/blob - src/allocate.c
[__STDC__ or _MSC_VER]:
[bison.git] / src / allocate.c
1 /* Allocate and clear storage for bison,
2 Copyright (C) 1984, 1989 Free Software Foundation, Inc.
3
4 This file is part of Bison, the GNU Compiler Compiler.
5
6 Bison is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 Bison is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with Bison; see the file COPYING. If not, write to
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20
21 #include <stdio.h>
22 #include "system.h"
23
24 #if defined (__STDC__) || defined (_MSC_VER)
25 extern void *calloc ();
26 extern void *realloc ();
27 #else
28 extern char *calloc ();
29 extern char *realloc ();
30 #endif
31
32 extern void done ();
33
34 extern char *program_name;
35
36 char *
37 xmalloc (n)
38 register unsigned n;
39 {
40 register char *block;
41
42 /* Avoid uncertainty about what an arg of 0 will do. */
43 if (n == 0)
44 n = 1;
45 block = calloc (n, 1);
46 if (block == NULL)
47 {
48 fprintf (stderr, _("%s: memory exhausted\n"), program_name);
49 done (1);
50 }
51
52 return (block);
53 }
54
55 char *
56 xrealloc (block, n)
57 register char *block;
58 register unsigned n;
59 {
60 /* Avoid uncertainty about what an arg of 0 will do. */
61 if (n == 0)
62 n = 1;
63 block = realloc (block, n);
64 if (block == NULL)
65 {
66 fprintf (stderr, _("%s: memory exhausted\n"), program_name);
67 done (1);
68 }
69
70 return (block);
71 }