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