diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/Makefile.in | 4 | ||||
-rw-r--r-- | gdb/c-exp.y | 26 | ||||
-rw-r--r-- | gdb/m2-exp.y | 26 |
4 files changed, 35 insertions, 29 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d7fd3ff..4743e4e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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). diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 9e0c0c4..c4a5cda 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -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 diff --git a/gdb/c-exp.y b/gdb/c-exp.y index 3389142..3fe853e 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -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; } ; diff --git a/gdb/m2-exp.y b/gdb/m2-exp.y index 73e0855..d932e16 100644 --- a/gdb/m2-exp.y +++ b/gdb/m2-exp.y @@ -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,"."); |