]> git.saurik.com Git - bison.git/blame - src/allocate.c
entered into RCS
[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>
22
23extern char *calloc ();
24extern char *realloc ();
25extern void done ();
26
27extern char *program_name;
28
29char *
30xmalloc (n)
31 register unsigned n;
32{
33 register char *block;
34
35 /* Avoid uncertainty about what an arg of 0 will do. */
36 if (n == 0)
37 n = 1;
38 block = calloc (n, 1);
39 if (block == NULL)
40 {
41 fprintf (stderr, "%s: memory exhausted\n", program_name);
42 done (1);
43 }
44
45 return (block);
46}
47
48char *
49xrealloc (block, n)
50 register char *block;
51 register unsigned n;
52{
53 /* Avoid uncertainty about what an arg of 0 will do. */
54 if (n == 0)
55 n = 1;
56 block = realloc (block, n);
57 if (block == NULL)
58 {
59 fprintf (stderr, "%s: memory exhausted\n", program_name);
60 done (1);
61 }
62
63 return (block);
64}