* Makefile.in (c-exp.tab.c, m2-exp.tab.c): Add sed patterns to

remap all malloc's to xmalloc's and all realloc's to xrealloc's.
	* c-exp.y, m2-exp.y:  Add comment about how malloc/realloc are
	  remapped to xmalloc/xrealloc, use only malloc/realloc in grammer
	  file.  Remove preprocessor defines that previously did remapping.
This commit is contained in:
Fred Fish 1992-10-31 00:35:08 +00:00
parent b533ed9479
commit e35843d476
4 changed files with 35 additions and 29 deletions

View File

@ -1,3 +1,11 @@
FFri Oct 30 16:33:02 1992 Fred Fish (fnf@cygnus.com)
* Makefile.in (c-exp.tab.c, m2-exp.tab.c): Add sed patterns to
remap all malloc's to xmalloc's and all realloc's to xrealloc's.
* c-exp.y, m2-exp.y: Add comment about how malloc/realloc are
remapped to xmalloc/xrealloc, use only malloc/realloc in grammer
file. Remove preprocessor defines that previously did remapping.
Tue Oct 27 17:08:45 1992 K. Richard Pixley (rich@cygnus.com)
hp300 native support (hp300hpux untested).

View File

@ -673,6 +673,8 @@ c-exp.tab.c: $(srcdir)/c-exp.y
-sed -e '/extern.*malloc/d' \
-e '/extern.*realloc/d' \
-e '/extern.*free/d' \
-e 's/malloc/xmalloc/g' \
-e 's/realloc/xrealloc/g' \
< y.tab.c > c-exp.tab.c
-rm y.tab.c
@ -684,6 +686,8 @@ m2-exp.tab.c: $(srcdir)/m2-exp.y
-sed -e '/extern.*malloc/d' \
-e '/extern.*realloc/d' \
-e '/extern.*free/d' \
-e 's/malloc/xmalloc/g' \
-e 's/realloc/xrealloc/g' \
< y.tab.c > m2-exp.tab.c
-rm y.tab.c

View File

@ -24,7 +24,15 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
See expression.h for the details of the format.
What is important here is that it can be built up sequentially
during the process of parsing; the lower levels of the tree always
come first in the result. */
come first in the result.
Note that malloc's and realloc's in this file are transformed to
xmalloc and xrealloc respectively by the same sed command in the
makefile that remaps any other malloc/realloc inserted by the parser
generator. Doing this with #defines and trying to control the interaction
with include files (<malloc.h> and <stdlib.h> for example) just became
too messy, particularly when such includes can be inserted at random
times by the parser generator. */
%{
@ -193,18 +201,6 @@ parse_number PARAMS ((char *, int, int, YYSTYPE *));
%type <bval> block
%left COLONCOLON
%{
/* Ensure that if the generated parser contains any calls to malloc/realloc,
that they get mapped to xmalloc/xrealloc. We have to do this here
rather than earlier in the file because this is the first point after
the place where the SVR4 yacc includes <malloc.h>, and if we do it
before that, then the remapped declarations in <malloc.h> will collide
with the ones in "defs.h". */
#define malloc xmalloc
#define realloc xrealloc
%}
%%
@ -913,13 +909,13 @@ typename: TYPENAME
nonempty_typelist
: type
{ $$ = (struct type **) xmalloc (sizeof (struct type *) * 2);
{ $$ = (struct type **) malloc (sizeof (struct type *) * 2);
$<ivec>$[0] = 1; /* Number of types in vector */
$$[1] = $1;
}
| nonempty_typelist ',' type
{ int len = sizeof (struct type *) * (++($<ivec>1[0]) + 1);
$$ = (struct type **) xrealloc ((char *) $1, len);
$$ = (struct type **) realloc ((char *) $1, len);
$$[$<ivec>$[0]] = $3;
}
;

View File

@ -26,9 +26,18 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
See expression.h for the details of the format.
What is important here is that it can be built up sequentially
during the process of parsing; the lower levels of the tree always
come first in the result. */
come first in the result.
Note that malloc's and realloc's in this file are transformed to
xmalloc and xrealloc respectively by the same sed command in the
makefile that remaps any other malloc/realloc inserted by the parser
generator. Doing this with #defines and trying to control the interaction
with include files (<malloc.h> and <stdlib.h> for example) just became
too messy, particularly when such includes can be inserted at random
times by the parser generator. */
%{
#include <stdio.h>
#include <string.h>
#include "defs.h"
@ -177,18 +186,7 @@ struct block *modblock=0;
%right QID
*/
%{
/* Ensure that if the generated parser contains any calls to malloc/realloc,
that they get mapped to xmalloc/xrealloc. We have to do this here
rather than earlier in the file because this is the first point after
the place where the SVR4 yacc includes <malloc.h>, and if we do it
before that, then the remapped declarations in <malloc.h> will collide
with the ones in "defs.h". */
#define malloc xmalloc
#define realloc xrealloc
%}
%%
start : exp
@ -1159,7 +1157,7 @@ static char *
make_qualname(mod,ident)
char *mod, *ident;
{
char *new = xmalloc(strlen(mod)+strlen(ident)+2);
char *new = malloc(strlen(mod)+strlen(ident)+2);
strcpy(new,mod);
strcat(new,".");