diff options
author | marha <marha@users.sourceforge.net> | 2010-11-19 13:18:48 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-11-19 13:18:48 +0000 |
commit | 12f606ce06ef926f366a03079c5e3107c23f18af (patch) | |
tree | 28d7be4328bca9c31c1ab0f7cb5924c196be23a0 /tools/bison++/allocate.cc | |
parent | 773752eab55047c33bad0d88006bb69f5c601502 (diff) | |
download | vcxsrv-12f606ce06ef926f366a03079c5e3107c23f18af.tar.gz vcxsrv-12f606ce06ef926f366a03079c5e3107c23f18af.tar.bz2 vcxsrv-12f606ce06ef926f366a03079c5e3107c23f18af.zip |
Added tool bison++-1.21.11
Diffstat (limited to 'tools/bison++/allocate.cc')
-rw-r--r-- | tools/bison++/allocate.cc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tools/bison++/allocate.cc b/tools/bison++/allocate.cc new file mode 100644 index 000000000..773366eb6 --- /dev/null +++ b/tools/bison++/allocate.cc @@ -0,0 +1,61 @@ +/* Allocate and clear storage for bison, + Copyright (C) 1984, 1989 Free Software Foundation, Inc. + +This file is part of Bison, the GNU Compiler Compiler. + +Bison is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +Bison is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Bison; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +#include <stdio.h> + +extern "C" char *calloc (unsigned,unsigned); +extern "C" char *realloc (char*,unsigned); +extern void done (int); + +extern char *program_name; + +char * +xmalloc (unsigned n) +{ + register char *block; + + /* Avoid uncertainty about what an arg of 0 will do. */ + if (n == 0) + n = 1; + block = calloc (n, 1); + if (block == NULL) + { + fprintf (stderr, "%s: memory exhausted\n", program_name); + done (1); + } + + return (block); +} + +char * +xrealloc (char* block, unsigned n) +{ + /* Avoid uncertainty about what an arg of 0 will do. */ + if (n == 0) + n = 1; + block = realloc (block, n); + if (block == NULL) + { + fprintf (stderr, "%s: memory exhausted\n", program_name); + done (1); + } + + return (block); +} |