now uses alloc module, bug fixes, -N option under USE_TMP, to not do so

This commit is contained in:
ceriel 1987-01-24 00:25:56 +00:00
parent b4e4250144
commit 8116e3181f
37 changed files with 124 additions and 136 deletions

View file

@ -1,6 +1,7 @@
/* $Header$ */ /* $Header$ */
/* L E X I C A L A N A L Y Z E R */ /* L E X I C A L A N A L Y Z E R */
#include <alloc.h>
#include "nofloat.h" #include "nofloat.h"
#include "idfsize.h" #include "idfsize.h"
#include "numsize.h" #include "numsize.h"
@ -8,7 +9,6 @@
#include "strsize.h" #include "strsize.h"
#include "nopp.h" #include "nopp.h"
#include "input.h" #include "input.h"
#include "alloc.h"
#include "arith.h" #include "arith.h"
#include "def.h" #include "def.h"
#include "idf.h" #include "idf.h"

View file

@ -1,9 +1,9 @@
/* $Header$ */ /* $Header$ */
/* PARSER ERROR ADMINISTRATION */ /* PARSER ERROR ADMINISTRATION */
#include <alloc.h>
#include "nofloat.h" #include "nofloat.h"
#include "idf.h" #include "idf.h"
#include "alloc.h"
#include "arith.h" #include "arith.h"
#include "LLlex.h" #include "LLlex.h"
#include "Lpars.h" #include "Lpars.h"
@ -12,9 +12,10 @@ extern char *symbol2str();
LLmessage(tk) { LLmessage(tk) {
err_occurred = 1; err_occurred = 1;
if (tk < 0) if (tk < 0) {
fatal("parser administration overflow"); error("end of file expected");
if (tk) { }
else if (tk) {
error("%s missing", symbol2str(tk)); error("%s missing", symbol2str(tk));
insert_token(tk); insert_token(tk);
} }

View file

@ -18,12 +18,14 @@ STRLIB = $(EMHOME)/modules/lib/libstring.a
PRTLIB = $(EMHOME)/modules/lib/libprint.a PRTLIB = $(EMHOME)/modules/lib/libprint.a
EMMESLIB = $(EMHOME)/modules/lib/libem_mes.a EMMESLIB = $(EMHOME)/modules/lib/libem_mes.a
INPLIB = $(EMHOME)/modules/lib/libinput.a INPLIB = $(EMHOME)/modules/lib/libinput.a
ALLOCLIB = $(EMHOME)/modules/lib/liballoc.a
MALLOC = $(EMHOME)/modules/lib/malloc.o
#CH3LIB = $(EMHOME)/modules/lib/libch3.a #CH3LIB = $(EMHOME)/modules/lib/libch3.a
CH3LIB = CH3LIB =
LIBS = $(INPLIB) $(CH3LIB) $(EMMESLIB) $(EMKLIB) \ LIBS = $(INPLIB) $(CH3LIB) $(EMMESLIB) $(EMKLIB) \
$(PRTLIB) $(STRLIB) $(SYSLIB) $(PRTLIB) $(STRLIB) $(ALLOCLIB) $(MALLOC) $(SYSLIB)
ELIBS = $(INPLIB) $(CH3LIB) $(EMMESLIB) $(EMELIB) \ ELIBS = $(INPLIB) $(CH3LIB) $(EMMESLIB) $(EMELIB) \
$(PRTLIB) $(STRLIB) $(SYSLIB) $(PRTLIB) $(STRLIB) $(ALLOCLIB) $(MALLOC) $(SYSLIB)
LIB_INCLUDES = -I$(EMHOME)/modules/h -I$(EMHOME)/modules/pkg LIB_INCLUDES = -I$(EMHOME)/modules/h -I$(EMHOME)/modules/pkg
EM_INCLUDES = -I$(EMHOME)/h EM_INCLUDES = -I$(EMHOME)/h
SYSLLIB = $(EMHOME)/modules/lib/llib-lsys.ln SYSLLIB = $(EMHOME)/modules/lib/llib-lsys.ln
@ -34,9 +36,10 @@ PRTLLIB = $(EMHOME)/modules/lib/llib-lprint.ln
EMMESLLIB = $(EMHOME)/modules/lib/llib-lmes.ln EMMESLLIB = $(EMHOME)/modules/lib/llib-lmes.ln
INPLLIB = $(EMHOME)/modules/lib/llib-linput.ln INPLLIB = $(EMHOME)/modules/lib/llib-linput.ln
CH3LLIB = $(EMHOME)/modules/lib/llib-lch3.ln CH3LLIB = $(EMHOME)/modules/lib/llib-lch3.ln
ALLOCLLIB = $(EMHOME)/modules/lib/llib-alloc.ln
LINTLIBS = LINTLIBS =
#LINTLIBS = $(CH3LLIB) $(INPLLIB) $(EMMESLLIB) $(EMKLLIB) \ #LINTLIBS = $(CH3LLIB) $(INPLLIB) $(EMMESLLIB) $(EMKLLIB) \
# $(PRTLLIB) $(STRLLIB) $(SYSLLIB) # $(PRTLLIB) $(STRLLIB) $(SYSLLIB) $(ALLOCLLIB)
# Where to install the compiler and its driver # Where to install the compiler and its driver
CEMCOM = $(DESTINATION)/cemcom CEMCOM = $(DESTINATION)/cemcom
@ -58,16 +61,17 @@ CFLAGS = $(CDEFS) $(COPTIONS) -O# we cannot pass the COPTIONS to lint!
# Grammar files and their objects # Grammar files and their objects
LSRC = tokenfile.g declar.g statement.g expression.g program.g LSRC = tokenfile.g declar.g statement.g expression.g program.g
GLCSRC = tokenfile.c declar.c statement.c expression.c program.c
LOBJ = tokenfile.o declar.o statement.o expression.o program.o Lpars.o LOBJ = tokenfile.o declar.o statement.o expression.o program.o Lpars.o
# Objects of hand-written C files # Objects of hand-written C files
COBJ = main.o idf.o declarator.o decspecs.o struct.o \ COBJ = main.o idf.o declarator.o decspecs.o struct.o \
expr.o ch7.o ch7bin.o cstoper.o arith.o \ expr.o ch7.o ch7bin.o cstoper.o arith.o \
alloc.o asm.o code.o dumpidf.o error.o field.o\ asm.o code.o dumpidf.o error.o field.o\
tokenname.o LLlex.o LLmessage.o \ tokenname.o LLlex.o LLmessage.o \
input.o domacro.o replace.o init.o options.o \ input.o domacro.o replace.o init.o options.o \
scan.o skip.o stack.o type.o ch7mon.o label.o eval.o \ scan.o skip.o stack.o type.o ch7mon.o label.o eval.o \
switch.o storage.o ival.o conversion.o \ switch.o ival.o conversion.o \
blocks.o dataflow.o blocks.o dataflow.o
# Objects of other generated C files # Objects of other generated C files
@ -81,13 +85,13 @@ GSRC = char.c symbol2str.c next.c \
# .h files generated by `make hfiles'; PLEASE KEEP THIS UP-TO-DATE! # .h files generated by `make hfiles'; PLEASE KEEP THIS UP-TO-DATE!
GHSRC = botch_free.h dataflow.h debug.h density.h errout.h \ GHSRC = botch_free.h dataflow.h debug.h density.h errout.h \
idepth.h idfsize.h ifdepth.h inputtype.h inumlength.h lapbuf.h \ idepth.h idfsize.h ifdepth.h inputtype.h inumlength.h lapbuf.h \
maxincl.h myalloc.h nobitfield.h nofloat.h nopp.h \ maxincl.h nobitfield.h nofloat.h nopp.h \
nparams.h numsize.h parbufsize.h pathlength.h \ nparams.h numsize.h parbufsize.h pathlength.h \
strsize.h target_sizes.h textsize.h use_tmp.h spec_arith.h static.h strsize.h target_sizes.h textsize.h use_tmp.h spec_arith.h static.h
# Other generated files, for 'make clean' only # Other generated files, for 'make clean' only
GENERATED = tab tokenfile.g Lpars.h LLfiles LL.output lint.out \ GENERATED = tab tokenfile.g Lpars.h LLfiles LL.output lint.out \
print Xref lxref hfiles cfiles print Xref lxref hfiles cfiles $(GLCSRC)
# include files containing ALLOCDEF specifications # include files containing ALLOCDEF specifications
NEXTFILES = code.str declar.str decspecs.str def.str expr.str field.str \ NEXTFILES = code.str declar.str decspecs.str def.str expr.str field.str \
@ -211,47 +215,45 @@ sim: cfiles
$(SIM) $(SIMFLAGS) `sources $(COBJ)` $(GSRC) $(LSRC) $(SIM) $(SIMFLAGS) `sources $(COBJ)` $(GSRC) $(LSRC)
#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO #AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
main.o: LLlex.h Lpars.h alloc.h arith.h debug.h declar.h file_info.h idf.h input.h inputtype.h level.h maxincl.h myalloc.h nobitfield.h nofloat.h nopp.h spec_arith.h specials.h target_sizes.h tokenname.h type.h use_tmp.h main.o: LLlex.h Lpars.h arith.h debug.h declar.h file_info.h idf.h input.h inputtype.h level.h maxincl.h nobitfield.h nofloat.h nopp.h spec_arith.h specials.h target_sizes.h tokenname.h type.h use_tmp.h
idf.o: LLlex.h Lpars.h align.h alloc.h arith.h assert.h botch_free.h debug.h declar.h decspecs.h def.h file_info.h idf.h idfsize.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h specials.h stack.h storage.h struct.h type.h idf.o: LLlex.h Lpars.h align.h arith.h assert.h botch_free.h debug.h declar.h decspecs.h def.h file_info.h idf.h idfsize.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h specials.h stack.h struct.h type.h
declarator.o: Lpars.h alloc.h arith.h botch_free.h declar.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h type.h declarator.o: Lpars.h arith.h botch_free.h declar.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h type.h
decspecs.o: Lpars.h arith.h decspecs.h def.h level.h nobitfield.h nofloat.h spec_arith.h type.h decspecs.o: Lpars.h arith.h decspecs.h def.h level.h nobitfield.h nofloat.h spec_arith.h type.h
struct.o: LLlex.h Lpars.h align.h arith.h assert.h botch_free.h debug.h def.h field.h file_info.h idf.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h stack.h storage.h struct.h type.h struct.o: LLlex.h Lpars.h align.h arith.h assert.h botch_free.h debug.h def.h field.h file_info.h idf.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h stack.h struct.h type.h
expr.o: LLlex.h Lpars.h alloc.h arith.h botch_free.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h type.h expr.o: LLlex.h Lpars.h arith.h botch_free.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h type.h
ch7.o: Lpars.h arith.h assert.h debug.h def.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h struct.h type.h ch7.o: Lpars.h arith.h assert.h debug.h def.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h struct.h type.h
ch7bin.o: Lpars.h arith.h botch_free.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h storage.h struct.h type.h ch7bin.o: Lpars.h arith.h botch_free.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h struct.h type.h
cstoper.o: Lpars.h arith.h assert.h debug.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h target_sizes.h type.h cstoper.o: Lpars.h arith.h assert.h debug.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h target_sizes.h type.h
arith.o: Lpars.h alloc.h arith.h botch_free.h expr.h field.h idf.h label.h mes.h nobitfield.h nofloat.h nopp.h spec_arith.h storage.h type.h arith.o: Lpars.h arith.h botch_free.h expr.h field.h idf.h label.h mes.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
alloc.o: alloc.h assert.h debug.h myalloc.h code.o: LLlex.h Lpars.h arith.h assert.h atw.h botch_free.h code.h dataflow.h debug.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h level.h mes.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h specials.h stack.h stmt.h type.h use_tmp.h
code.o: LLlex.h Lpars.h alloc.h arith.h assert.h atw.h botch_free.h code.h dataflow.h debug.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h level.h mes.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h specials.h stack.h stmt.h storage.h type.h use_tmp.h
dumpidf.o: Lpars.h arith.h debug.h def.h expr.h field.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h static.h struct.h type.h dumpidf.o: Lpars.h arith.h debug.h def.h expr.h field.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h static.h struct.h type.h
error.o: LLlex.h arith.h debug.h errout.h expr.h file_info.h label.h nofloat.h nopp.h spec_arith.h tokenname.h use_tmp.h error.o: LLlex.h arith.h debug.h errout.h expr.h file_info.h label.h nofloat.h nopp.h spec_arith.h tokenname.h use_tmp.h
field.o: Lpars.h arith.h assert.h code.h debug.h expr.h field.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h type.h field.o: Lpars.h arith.h assert.h code.h debug.h expr.h field.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h type.h
tokenname.o: LLlex.h Lpars.h arith.h file_info.h idf.h nofloat.h nopp.h spec_arith.h tokenname.h tokenname.o: LLlex.h Lpars.h arith.h file_info.h idf.h nofloat.h nopp.h spec_arith.h tokenname.h
LLlex.o: LLlex.h Lpars.h alloc.h arith.h assert.h class.h debug.h def.h file_info.h idf.h idfsize.h input.h nofloat.h nopp.h numsize.h sizes.h spec_arith.h strsize.h LLlex.o: LLlex.h Lpars.h arith.h assert.h class.h debug.h def.h file_info.h idf.h idfsize.h input.h nofloat.h nopp.h numsize.h sizes.h spec_arith.h strsize.h
LLmessage.o: LLlex.h Lpars.h alloc.h arith.h file_info.h idf.h nofloat.h nopp.h spec_arith.h LLmessage.o: LLlex.h Lpars.h arith.h file_info.h idf.h nofloat.h nopp.h spec_arith.h
input.o: file_info.h input.h inputtype.h nopp.h input.o: file_info.h input.h inputtype.h nopp.h
domacro.o: LLlex.h Lpars.h alloc.h arith.h assert.h botch_free.h class.h debug.h file_info.h idf.h idfsize.h ifdepth.h input.h interface.h macro.h nofloat.h nopp.h nparams.h parbufsize.h spec_arith.h storage.h textsize.h domacro.o: LLlex.h Lpars.h arith.h assert.h botch_free.h class.h debug.h file_info.h idf.h idfsize.h ifdepth.h input.h interface.h macro.h nofloat.h nopp.h nparams.h parbufsize.h spec_arith.h textsize.h
replace.o: LLlex.h alloc.h arith.h assert.h class.h debug.h file_info.h idf.h input.h interface.h macro.h nofloat.h nopp.h pathlength.h spec_arith.h static.h strsize.h replace.o: LLlex.h arith.h assert.h class.h debug.h file_info.h idf.h input.h interface.h macro.h nofloat.h nopp.h pathlength.h spec_arith.h static.h strsize.h
init.o: alloc.h class.h idf.h interface.h macro.h nopp.h init.o: class.h idf.h interface.h macro.h nopp.h
options.o: align.h arith.h class.h idf.h idfsize.h macro.h maxincl.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h use_tmp.h options.o: align.h arith.h botch_free.h class.h idf.h idfsize.h macro.h maxincl.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h use_tmp.h
scan.o: class.h idf.h input.h interface.h lapbuf.h macro.h nopp.h nparams.h scan.o: class.h idf.h input.h interface.h lapbuf.h macro.h nopp.h nparams.h
skip.o: LLlex.h arith.h class.h file_info.h input.h interface.h nofloat.h nopp.h spec_arith.h skip.o: LLlex.h arith.h class.h file_info.h input.h interface.h nofloat.h nopp.h spec_arith.h
stack.o: Lpars.h alloc.h arith.h botch_free.h debug.h def.h idf.h level.h mes.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h storage.h struct.h type.h use_tmp.h stack.o: Lpars.h arith.h botch_free.h debug.h def.h idf.h level.h mes.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h struct.h type.h use_tmp.h
type.o: Lpars.h align.h alloc.h arith.h def.h idf.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h type.h type.o: Lpars.h align.h arith.h botch_free.h def.h idf.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h type.h
ch7mon.o: Lpars.h arith.h botch_free.h def.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h storage.h type.h ch7mon.o: Lpars.h arith.h botch_free.h def.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
label.o: Lpars.h arith.h def.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h label.o: Lpars.h arith.h def.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
eval.o: Lpars.h align.h arith.h assert.h atw.h code.h dataflow.h debug.h def.h expr.h idf.h label.h level.h mes.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h stack.h type.h eval.o: Lpars.h align.h arith.h assert.h atw.h code.h dataflow.h debug.h def.h expr.h idf.h label.h level.h mes.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h stack.h type.h
switch.o: Lpars.h arith.h assert.h botch_free.h code.h debug.h density.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h storage.h switch.h type.h switch.o: Lpars.h arith.h assert.h botch_free.h code.h debug.h density.h expr.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h switch.h type.h
storage.o: alloc.h assert.h botch_free.h debug.h storage.h
ival.o: Lpars.h align.h arith.h assert.h class.h debug.h def.h expr.h field.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h struct.h type.h ival.o: Lpars.h align.h arith.h assert.h class.h debug.h def.h expr.h field.h idf.h label.h level.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h struct.h type.h
conversion.o: Lpars.h arith.h nobitfield.h nofloat.h sizes.h spec_arith.h type.h conversion.o: Lpars.h arith.h nobitfield.h nofloat.h sizes.h spec_arith.h type.h
blocks.o: arith.h atw.h label.h nofloat.h sizes.h spec_arith.h stack.h blocks.o: arith.h atw.h label.h nofloat.h sizes.h spec_arith.h stack.h
dataflow.o: dataflow.h dataflow.o: dataflow.h
tokenfile.o: Lpars.h tokenfile.o: Lpars.h
declar.o: LLlex.h Lpars.h arith.h debug.h declar.h decspecs.h def.h expr.h field.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h storage.h struct.h type.h declar.o: LLlex.h Lpars.h arith.h debug.h declar.h decspecs.h def.h expr.h field.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h sizes.h spec_arith.h struct.h type.h
statement.o: LLlex.h Lpars.h arith.h botch_free.h code.h debug.h def.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h storage.h type.h statement.o: LLlex.h Lpars.h arith.h botch_free.h code.h debug.h def.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h stack.h type.h
expression.o: LLlex.h Lpars.h arith.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h expression.o: LLlex.h Lpars.h arith.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
program.o: LLlex.h Lpars.h alloc.h arith.h code.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h program.o: LLlex.h Lpars.h arith.h code.h declar.h decspecs.h def.h expr.h file_info.h idf.h label.h nobitfield.h nofloat.h nopp.h spec_arith.h type.h
Lpars.o: Lpars.h Lpars.o: Lpars.h
char.o: class.h char.o: class.h
symbol2str.o: Lpars.h symbol2str.o: Lpars.h

View file

@ -1,9 +1,3 @@
!File: myalloc.h
#define OWNALLOC 1 /* use own superfast allocation */
#define ALLOCSIZ 4096 /* allocate pieces of 4K */
#define ALIGNSIZE 8 /* needed for alloc.c */
!File: pathlength.h !File: pathlength.h
#define PATHLENGTH 1024 /* max. length of path to file */ #define PATHLENGTH 1024 /* max. length of path to file */
@ -35,7 +29,7 @@
!File: maxincl.h !File: maxincl.h
#define MAXINCL 8 /* maximum number of #include directories */ #define MAXINCL 12 /* maximum number of #include directories */
!File: density.h !File: density.h

View file

@ -7,17 +7,16 @@
semantics of C is a mess. semantics of C is a mess.
*/ */
#include "nofloat.h"
#include "botch_free.h" #include "botch_free.h"
#include <alloc.h>
#include "nofloat.h"
#include "nobitfield.h" #include "nobitfield.h"
#include "alloc.h"
#include "idf.h" #include "idf.h"
#include "arith.h" #include "arith.h"
#include "type.h" #include "type.h"
#include "label.h" #include "label.h"
#include "expr.h" #include "expr.h"
#include "Lpars.h" #include "Lpars.h"
#include "storage.h"
#include "field.h" #include "field.h"
#include "mes.h" #include "mes.h"
@ -202,7 +201,6 @@ arith2arith(tp, oper, expr)
*/ */
register struct expr *new = new_expr(); register struct expr *new = new_expr();
clear((char *)new, sizeof(struct expr));
new->ex_file = expr->ex_file; new->ex_file = expr->ex_file;
new->ex_line = expr->ex_line; new->ex_line = expr->ex_line;
new->ex_type = tp; new->ex_type = tp;

View file

@ -1,8 +1,9 @@
/* $Header$ */ /* $Header$ */
/* SEMANTIC ANALYSIS (CHAPTER 7RM) -- BINARY OPERATORS */ /* SEMANTIC ANALYSIS (CHAPTER 7RM) -- BINARY OPERATORS */
#include "nofloat.h"
#include "botch_free.h" #include "botch_free.h"
#include <alloc.h>
#include "nofloat.h"
#include "idf.h" #include "idf.h"
#include "arith.h" #include "arith.h"
#include "type.h" #include "type.h"
@ -10,7 +11,6 @@
#include "label.h" #include "label.h"
#include "expr.h" #include "expr.h"
#include "Lpars.h" #include "Lpars.h"
#include "storage.h"
extern char options[]; extern char options[];
extern char *symbol2str(); extern char *symbol2str();

View file

@ -1,15 +1,15 @@
/* $Header$ */ /* $Header$ */
/* SEMANTIC ANALYSIS (CHAPTER 7RM) -- MONADIC OPERATORS */ /* SEMANTIC ANALYSIS (CHAPTER 7RM) -- MONADIC OPERATORS */
#include "botch_free.h"
#include <alloc.h>
#include "nofloat.h" #include "nofloat.h"
#include "nobitfield.h" #include "nobitfield.h"
#include "botch_free.h"
#include "Lpars.h" #include "Lpars.h"
#include "arith.h" #include "arith.h"
#include "type.h" #include "type.h"
#include "label.h" #include "label.h"
#include "expr.h" #include "expr.h"
#include "storage.h"
#include "idf.h" #include "idf.h"
#include "def.h" #include "def.h"

View file

@ -1,18 +1,18 @@
/* $Header$ */ /* $Header$ */
/* C O D E - G E N E R A T I N G R O U T I N E S */ /* C O D E - G E N E R A T I N G R O U T I N E S */
#include "nofloat.h"
#include <em.h> #include <em.h>
#include "botch_free.h"
#include <alloc.h>
#include "nofloat.h"
#include "dataflow.h" #include "dataflow.h"
#include "use_tmp.h" #include "use_tmp.h"
#include "botch_free.h"
#include "arith.h" #include "arith.h"
#include "type.h" #include "type.h"
#include "idf.h" #include "idf.h"
#include "label.h" #include "label.h"
#include "code.h" #include "code.h"
#include "stmt.h" #include "stmt.h"
#include "alloc.h"
#include "def.h" #include "def.h"
#include "expr.h" #include "expr.h"
#include "sizes.h" #include "sizes.h"
@ -24,7 +24,6 @@
#include "mes.h" #include "mes.h"
#include "LLlex.h" #include "LLlex.h"
#include "specials.h" #include "specials.h"
#include "storage.h"
#include "atw.h" #include "atw.h"
#include "assert.h" #include "assert.h"
@ -47,9 +46,10 @@ init_code(dst_file)
C_init(word_size, pointer_size); /* initialise EM module */ C_init(word_size, pointer_size); /* initialise EM module */
if (C_open(dst_file) == 0) if (C_open(dst_file) == 0)
fatal("cannot write to %s\n", dst_file); fatal("cannot write to %s\n", dst_file);
#ifndef USE_TMP #ifdef USE_TMP
famous_first_words(); if (options['N'])
#endif USE_TMP #endif USE_TMP
famous_first_words();
} }
famous_first_words() famous_first_words()
@ -171,7 +171,9 @@ begin_proc(name, def) /* to be called when entering a procedure */
arith size; arith size;
register struct type *tp = def->df_type; register struct type *tp = def->df_type;
#ifndef USE_TMP #ifdef USE_TMP
if (options['N']) code_scope(name,def);
#else USE_TMP
code_scope(name, def); code_scope(name, def);
#endif USE_TMP #endif USE_TMP
#ifdef DATAFLOW #ifdef DATAFLOW
@ -326,9 +328,10 @@ code_declaration(idf, expr, lvl, sc)
) )
def->df_alloc = ALLOC_SEEN; def->df_alloc = ALLOC_SEEN;
if (expr) { /* code only if initialized */ if (expr) { /* code only if initialized */
#ifndef USE_TMP #ifdef USE_TMP
if (options['N'])
#endif USE_TMP
code_scope(text, def); code_scope(text, def);
#endif USE_TMP
def->df_alloc = ALLOC_DONE; def->df_alloc = ALLOC_DONE;
C_df_dnam(text); C_df_dnam(text);
do_ival(&(def->df_type), expr); do_ival(&(def->df_type), expr);
@ -364,9 +367,10 @@ code_declaration(idf, expr, lvl, sc)
case GLOBAL: case GLOBAL:
case IMPLICIT: case IMPLICIT:
/* we are sure there is no expression */ /* we are sure there is no expression */
#ifndef USE_TMP #ifdef USE_TMP
code_scope(text, def); if (options['N'])
#endif USE_TMP #endif USE_TMP
code_scope(text, def);
break; break;
case AUTO: case AUTO:
case REGISTER: case REGISTER:
@ -433,9 +437,10 @@ bss(idf)
*/ */
arith size = idf->id_def->df_type->tp_size; arith size = idf->id_def->df_type->tp_size;
#ifndef USE_TMP #ifdef USE_TMP
code_scope(idf->id_text, idf->id_def); if (options['N'])
#endif USE_TMP #endif USE_TMP
code_scope(idf->id_text, idf->id_def);
/* Since bss() is only called if df_alloc is non-zero, and /* Since bss() is only called if df_alloc is non-zero, and
since df_alloc is only non-zero if size >= 0, we have: since df_alloc is only non-zero if size >= 0, we have:
*/ */

View file

@ -8,7 +8,7 @@ struct string_cst { /* storing string constants */
label sc_dlb; label sc_dlb;
}; };
/* ALLOCDEF "string_cst" */ /* ALLOCDEF "string_cst" 10 */
#define LVAL 0 #define LVAL 0
#define RVAL 1 #define RVAL 1

View file

@ -2,6 +2,7 @@
/* DECLARATION SYNTAX PARSER */ /* DECLARATION SYNTAX PARSER */
{ {
#include <alloc.h>
#include "nobitfield.h" #include "nobitfield.h"
#include "debug.h" #include "debug.h"
#include "arith.h" #include "arith.h"
@ -16,7 +17,6 @@
#include "label.h" #include "label.h"
#include "expr.h" #include "expr.h"
#include "sizes.h" #include "sizes.h"
#include "storage.h"
extern char options[]; extern char options[];
} }

View file

@ -13,7 +13,7 @@ struct declarator {
struct formal *dc_formal; /* params for function */ struct formal *dc_formal; /* params for function */
}; };
/* ALLOCDEF "declarator" */ /* ALLOCDEF "declarator" 50 */
struct formal { /* list of formals */ struct formal { /* list of formals */
@ -21,7 +21,7 @@ struct formal { /* list of formals */
struct idf *fm_idf; struct idf *fm_idf;
}; };
/* ALLOCDEF "formal" */ /* ALLOCDEF "formal" 5 */
#define NO_PARAMS ((struct formal *) 0) #define NO_PARAMS ((struct formal *) 0)
@ -31,7 +31,7 @@ struct decl_unary {
arith du_count; /* for ARRAYs only */ arith du_count; /* for ARRAYs only */
}; };
/* ALLOCDEF "decl_unary" */ /* ALLOCDEF "decl_unary" 10 */
extern struct type *declare_type(); extern struct type *declare_type();
extern struct declarator null_declarator; extern struct declarator null_declarator;

View file

@ -2,12 +2,11 @@
/* D E C L A R A T O R M A N I P U L A T I O N */ /* D E C L A R A T O R M A N I P U L A T I O N */
#include "botch_free.h" #include "botch_free.h"
#include "alloc.h" #include <alloc.h>
#include "arith.h" #include "arith.h"
#include "type.h" #include "type.h"
#include "Lpars.h" #include "Lpars.h"
#include "declar.h" #include "declar.h"
#include "storage.h"
#include "idf.h" #include "idf.h"
#include "label.h" #include "label.h"
#include "expr.h" #include "expr.h"
@ -43,7 +42,6 @@ add_decl_unary(dc, fund, count, fm)
*/ */
register struct decl_unary *new = new_decl_unary(); register struct decl_unary *new = new_decl_unary();
clear((char *)new, sizeof(struct decl_unary));
new->next = dc->dc_decl_unary; new->next = dc->dc_decl_unary;
new->du_fund = fund; new->du_fund = fund;
new->du_count = count; new->du_count = count;

View file

@ -10,6 +10,6 @@ struct decspecs {
int ds_unsigned; /* 0 or 1 */ int ds_unsigned; /* 0 or 1 */
}; };
/* ALLOCDEF "decspecs" */ /* ALLOCDEF "decspecs" 50 */
extern struct decspecs null_decspecs; extern struct decspecs null_decspecs;

View file

@ -26,4 +26,4 @@ struct def { /* for ordinary tags */
#define REG_DEFAULT 1 /* register candidate, not declared as such */ #define REG_DEFAULT 1 /* register candidate, not declared as such */
#define REG_BONUS 10 /* register candidate, declared as such */ #define REG_BONUS 10 /* register candidate, declared as such */
/* ALLOCDEF "def" */ /* ALLOCDEF "def" 50 */

View file

@ -18,10 +18,9 @@
#include "textsize.h" #include "textsize.h"
#include "idfsize.h" #include "idfsize.h"
#include "assert.h" #include "assert.h"
#include "alloc.h" #include <alloc.h>
#include "class.h" #include "class.h"
#include "macro.h" #include "macro.h"
#include "storage.h"
IMPORT char *inctable[]; /* list of include directories */ IMPORT char *inctable[]; /* list of include directories */
IMPORT char *getwdir(); IMPORT char *getwdir();

View file

@ -3,7 +3,7 @@
#include "nofloat.h" #include "nofloat.h"
#include "botch_free.h" #include "botch_free.h"
#include "alloc.h" #include <alloc.h>
#include "idf.h" #include "idf.h"
#include "arith.h" #include "arith.h"
#include "def.h" #include "def.h"
@ -14,7 +14,6 @@
#include "Lpars.h" #include "Lpars.h"
#include "decspecs.h" #include "decspecs.h"
#include "declar.h" #include "declar.h"
#include "storage.h"
#include "sizes.h" #include "sizes.h"
#include "level.h" #include "level.h"
@ -122,7 +121,6 @@ dot2expr(expp)
pointer to which is stored in *expp. pointer to which is stored in *expp.
*/ */
*expp = new_expr(); *expp = new_expr();
clear((char *)*expp, sizeof(struct expr));
(*expp)->ex_file = dot.tk_file; (*expp)->ex_file = dot.tk_file;
(*expp)->ex_line = dot.tk_line; (*expp)->ex_line = dot.tk_line;
switch (DOT) { switch (DOT) {
@ -248,7 +246,6 @@ intexpr(ivalue, fund)
*/ */
register struct expr *expr = new_expr(); register struct expr *expr = new_expr();
clear((char *)expr, sizeof(struct expr));
expr->ex_file = dot.tk_file; expr->ex_file = dot.tk_file;
expr->ex_line = dot.tk_line; expr->ex_line = dot.tk_line;
fill_int_expr(expr, ivalue, fund); fill_int_expr(expr, ivalue, fund);
@ -308,7 +305,6 @@ new_oper(tp, e1, oper, e2)
register struct expr *expr = new_expr(); register struct expr *expr = new_expr();
register struct oper *op; register struct oper *op;
clear((char *)expr, sizeof(struct expr));
if (e2) { if (e2) {
register struct expr *e = e2; register struct expr *e = e2;

View file

@ -101,6 +101,6 @@ struct expr {
extern struct expr *intexpr(), *new_oper(); extern struct expr *intexpr(), *new_oper();
/* ALLOCDEF "expr" */ /* ALLOCDEF "expr" 50 */
#define ISCOMMA(e) ((e)->ex_class == Oper && (e)->OP_OPER == INITCOMMA) #define ISCOMMA(e) ((e)->ex_class == Oper && (e)->OP_OPER == INITCOMMA)

View file

@ -9,4 +9,4 @@ struct field { /* for field specifiers */
struct sdef *fd_sdef; /* upward pointer */ struct sdef *fd_sdef; /* upward pointer */
}; };
/* ALLOCDEF "field" */ /* ALLOCDEF "field" 50 */

View file

@ -6,7 +6,7 @@
#include "idfsize.h" #include "idfsize.h"
#include "botch_free.h" #include "botch_free.h"
#include "nopp.h" #include "nopp.h"
#include "alloc.h" #include <alloc.h>
#include "arith.h" #include "arith.h"
#include "align.h" #include "align.h"
#include "LLlex.h" #include "LLlex.h"
@ -23,7 +23,6 @@
#include "Lpars.h" #include "Lpars.h"
#include "assert.h" #include "assert.h"
#include "specials.h" /* registration of special identifiers */ #include "specials.h" /* registration of special identifiers */
#include "storage.h"
int idfsize = IDFSIZE; int idfsize = IDFSIZE;
extern char options[]; extern char options[];
@ -73,7 +72,6 @@ idf_hashed(tg, size, hc)
} }
/* a new struct idf must be inserted at the hook */ /* a new struct idf must be inserted at the hook */
notch = new_idf(); notch = new_idf();
clear((char *)notch, sizeof(struct idf));
notch->next = *hook; notch->next = *hook;
*hook = notch; /* hooked in */ *hook = notch; /* hooked in */
notch->id_text = Salloc(tg, size); notch->id_text = Salloc(tg, size);
@ -303,7 +301,6 @@ declare_idf(ds, dc, lvl)
else { /* fill in the def block */ else { /* fill in the def block */
register struct def *newdef = new_def(); register struct def *newdef = new_def();
clear((char *)newdef, sizeof(struct def));
newdef->next = def; newdef->next = def;
newdef->df_level = lvl; newdef->df_level = lvl;
newdef->df_type = type; newdef->df_type = type;

View file

@ -37,7 +37,7 @@ struct idf {
int id_special; /* special action needed at occurrence */ int id_special; /* special action needed at occurrence */
}; };
/* ALLOCDEF "idf" */ /* ALLOCDEF "idf" 50 */
extern struct idf *str2idf(), *idf_hashed(); extern struct idf *str2idf(), *idf_hashed();

View file

@ -5,7 +5,7 @@
#ifndef NOPP #ifndef NOPP
#include <system.h> #include <system.h>
#include "alloc.h" #include <alloc.h>
#include "class.h" #include "class.h"
#include "macro.h" #include "macro.h"
#include "idf.h" #include "idf.h"

View file

@ -27,7 +27,7 @@ struct macro {
char mc_flag; /* marking this macro */ char mc_flag; /* marking this macro */
}; };
/* ALLOCDEF "macro" */ /* ALLOCDEF "macro" 20 */
/* `token' numbers of keywords of command-line processor /* `token' numbers of keywords of command-line processor
*/ */

View file

@ -6,7 +6,6 @@
#include "nopp.h" #include "nopp.h"
#include "target_sizes.h" #include "target_sizes.h"
#include "debug.h" #include "debug.h"
#include "myalloc.h"
#include "use_tmp.h" #include "use_tmp.h"
#include "maxincl.h" #include "maxincl.h"
#include "inputtype.h" #include "inputtype.h"
@ -19,7 +18,7 @@
#include "tokenname.h" #include "tokenname.h"
#include "Lpars.h" #include "Lpars.h"
#include "LLlex.h" #include "LLlex.h"
#include "alloc.h" #include <alloc.h>
#include "specials.h" #include "specials.h"
extern struct tokenname tkidf[], tkother[]; extern struct tokenname tkidf[], tkother[];
@ -79,10 +78,6 @@ main(argc, argv)
/* parse and interpret the command line options */ /* parse and interpret the command line options */
prog_name = argv[0]; prog_name = argv[0];
#ifdef OWNALLOC
init_mem();
#endif OWNALLOC
init_hmask(); init_hmask();
#ifndef NOPP #ifndef NOPP
@ -106,12 +101,6 @@ main(argc, argv)
} }
compile(argc - 1, &argv[1]); compile(argc - 1, &argv[1]);
#ifdef OWNALLOC
#ifdef DEBUG
mem_stat();
#endif DEBUG
#endif OWNALLOC
#ifdef DEBUG #ifdef DEBUG
hash_stat(); hash_stat();
#endif DEBUG #endif DEBUG
@ -164,9 +153,11 @@ compile(argc, argv)
source = strcmp(argv[0], "-") ? argv[0] : 0; source = strcmp(argv[0], "-") ? argv[0] : 0;
#ifdef USE_TMP #ifdef USE_TMP
strcpy(tmpf, tmpfdir); if (! options['N']) {
strcat(tmpf, tmpfname); strcpy(tmpf, tmpfdir);
tmpfile = mktemp(tmpf); strcat(tmpf, tmpfname);
tmpfile = mktemp(tmpf);
}
#endif USE_TMP #endif USE_TMP
if (destination && strcmp(destination, "-") == 0) if (destination && strcmp(destination, "-") == 0)
@ -189,7 +180,11 @@ compile(argc, argv)
#endif NOPP #endif NOPP
#ifdef USE_TMP #ifdef USE_TMP
init_code(tmpfile); if (!options['N']) {
init_code(tmpfile);
}
else
init_code(destination);
#else USE_TMP #else USE_TMP
init_code(destination); init_code(destination);
#endif USE_TMP #endif USE_TMP
@ -199,9 +194,11 @@ compile(argc, argv)
end_code(); end_code();
#ifdef USE_TMP #ifdef USE_TMP
prepend_scopes(destination); if (! options['N']) {
AppendFile(tmpfile, destination); prepend_scopes(destination);
sys_remove(tmpfile); AppendFile(tmpfile, destination);
sys_remove(tmpfile);
}
#endif USE_TMP #endif USE_TMP
#ifdef DEBUG #ifdef DEBUG

View file

@ -1,8 +1,8 @@
sed ' sed -e '
s:^.*ALLOCDEF.*"\(.*\)".*$:\ s:^.*[ ]ALLOCDEF[ ].*"\(.*\)"[ ]*\([0-9][0-9]*\).*$:\
/* allocation definitions of struct \1 */\ /* allocation definitions of struct \1 */\
extern char *st_alloc();\
extern struct \1 *h_\1;\ extern struct \1 *h_\1;\
#define new_\1() ((struct \1 *) \\\ #define new_\1() ((struct \1 *) st_alloc((char **)\&h_\1, sizeof(struct \1), \2))\
st_alloc((char **)\&h_\1, sizeof(struct \1)))\ #define free_\1(p) st_free(p, \&h_\1, sizeof(struct \1))\
#define free_\1(p) st_free(p, h_\1, sizeof(struct \1))\
:' :'

View file

@ -1,6 +1,8 @@
/* $Header$ */ /* $Header$ */
/* U S E R O P T I O N - H A N D L I N G */ /* U S E R O P T I O N - H A N D L I N G */
#include "botch_free.h"
#include <alloc.h>
#include "nofloat.h" #include "nofloat.h"
#include "nopp.h" #include "nopp.h"
#include "idfsize.h" #include "idfsize.h"
@ -12,7 +14,6 @@
#include "arith.h" #include "arith.h"
#include "sizes.h" #include "sizes.h"
#include "align.h" #include "align.h"
#include "storage.h"
#include "use_tmp.h" #include "use_tmp.h"
#ifndef NOPP #ifndef NOPP
@ -126,6 +127,14 @@ do_option(text)
fatal("maximum identifier length is %d", IDFSIZE); fatal("maximum identifier length is %d", IDFSIZE);
break; break;
case 'N' :
#ifdef USE_TMP
options['N'] = 1;
#else USE_TMP
warning("-N option ignored");
#endif USE_TMP
break;
case 'P' : /* run preprocessor stand-alone, without #'s */ case 'P' : /* run preprocessor stand-alone, without #'s */
#ifndef NOPP #ifndef NOPP
options['E'] = 1; options['E'] = 1;

View file

@ -42,7 +42,6 @@
{ {
#include "nopp.h" #include "nopp.h"
#include "alloc.h"
#include "arith.h" #include "arith.h"
#include "LLlex.h" #include "LLlex.h"
#include "idf.h" #include "idf.h"

View file

@ -7,7 +7,7 @@
#include "debug.h" /* UF */ #include "debug.h" /* UF */
#include "pathlength.h" /* UF */ #include "pathlength.h" /* UF */
#include "strsize.h" /* UF */ #include "strsize.h" /* UF */
#include "alloc.h" #include <alloc.h>
#include "idf.h" #include "idf.h"
#include "input.h" #include "input.h"
#include "macro.h" #include "macro.h"

View file

@ -6,9 +6,8 @@
#include <em.h> #include <em.h>
#include <em_reg.h> #include <em_reg.h>
#include "debug.h" #include "debug.h"
#include "use_tmp.h"
#include "botch_free.h" #include "botch_free.h"
#include "alloc.h" #include <alloc.h>
#include "Lpars.h" #include "Lpars.h"
#include "arith.h" #include "arith.h"
#include "stack.h" #include "stack.h"
@ -16,7 +15,6 @@
#include "idf.h" #include "idf.h"
#include "def.h" #include "def.h"
#include "struct.h" #include "struct.h"
#include "storage.h"
#include "level.h" #include "level.h"
#include "mes.h" #include "mes.h"
@ -43,7 +41,6 @@ stack_level() {
*/ */
register struct stack_level *stl = new_stack_level(); register struct stack_level *stl = new_stack_level();
clear((char *)stl, sizeof(struct stack_level));
local_level->sl_next = stl; local_level->sl_next = stl;
stl->sl_previous = local_level; stl->sl_previous = local_level;
stl->sl_level = ++level; stl->sl_level = ++level;
@ -60,7 +57,6 @@ stack_idf(idf, stl)
*/ */
register struct stack_entry *se = new_stack_entry(); register struct stack_entry *se = new_stack_entry();
clear((char *)se, sizeof(struct stack_entry));
/* link it into the stack level */ /* link it into the stack level */
se->next = stl->sl_entry; se->next = stl->sl_entry;
se->se_idf = idf; se->se_idf = idf;

View file

@ -16,14 +16,14 @@ struct stack_level {
int sl_level; int sl_level;
}; };
/* ALLOCDEF "stack_level" */ /* ALLOCDEF "stack_level" 5 */
struct stack_entry { struct stack_entry {
struct stack_entry *next; struct stack_entry *next;
struct idf *se_idf; struct idf *se_idf;
}; };
/* ALLOCDEF "stack_entry" */ /* ALLOCDEF "stack_entry" 5 */
extern struct stack_level *local_level; extern struct stack_level *local_level;
extern struct stack_level *stack_level_of(); extern struct stack_level *stack_level_of();

View file

@ -14,7 +14,6 @@
#include "label.h" #include "label.h"
#include "expr.h" #include "expr.h"
#include "code.h" #include "code.h"
#include "storage.h"
#include "stack.h" #include "stack.h"
#include "def.h" #include "def.h"

View file

@ -7,4 +7,4 @@ struct stmt_block {
label st_continue; label st_continue;
}; };
/* ALLOCDEF "stmt_block" */ /* ALLOCDEF "stmt_block" 5 */

View file

@ -4,6 +4,7 @@
#include "nobitfield.h" #include "nobitfield.h"
#include "debug.h" #include "debug.h"
#include "botch_free.h" #include "botch_free.h"
#include <alloc.h>
#include "arith.h" #include "arith.h"
#include "stack.h" #include "stack.h"
#include "idf.h" #include "idf.h"
@ -15,7 +16,6 @@
#include "Lpars.h" #include "Lpars.h"
#include "align.h" #include "align.h"
#include "level.h" #include "level.h"
#include "storage.h"
#include "assert.h" #include "assert.h"
#include "sizes.h" #include "sizes.h"
@ -308,7 +308,6 @@ idf2sdef(idf, tp)
if (!is_anon_idf(idf)) if (!is_anon_idf(idf))
error("unknown selector %s", idf->id_text); error("unknown selector %s", idf->id_text);
*sdefp = sdef = new_sdef(); *sdefp = sdef = new_sdef();
clear((char *)sdef, sizeof(struct sdef));
sdef->sd_idf = idf; sdef->sd_idf = idf;
sdef->sd_stype = sdef->sd_type = error_type; sdef->sd_stype = sdef->sd_type = error_type;
return sdef; return sdef;

View file

@ -11,7 +11,7 @@ struct sdef { /* for selectors */
arith sd_offset; arith sd_offset;
}; };
/* ALLOCDEF "sdef" */ /* ALLOCDEF "sdef" 50 */
struct tag { /* for struct-, union- and enum tags */ struct tag { /* for struct-, union- and enum tags */
struct tag *next; struct tag *next;
@ -21,6 +21,6 @@ struct tag { /* for struct-, union- and enum tags */
}; };
/* ALLOCDEF "tag" */ /* ALLOCDEF "tag" 50 */
struct sdef *idf2sdef(); struct sdef *idf2sdef();

View file

@ -5,6 +5,7 @@
#include <em.h> #include <em.h>
#include "debug.h" #include "debug.h"
#include "botch_free.h" #include "botch_free.h"
#include <alloc.h>
#include "density.h" #include "density.h"
#include "Lpars.h" #include "Lpars.h"
#include "idf.h" #include "idf.h"
@ -12,7 +13,6 @@
#include "arith.h" #include "arith.h"
#include "switch.h" #include "switch.h"
#include "code.h" #include "code.h"
#include "storage.h"
#include "assert.h" #include "assert.h"
#include "expr.h" #include "expr.h"
#include "type.h" #include "type.h"

View file

@ -13,7 +13,7 @@ struct switch_hdr {
struct case_entry *sh_entries; struct case_entry *sh_entries;
}; };
/* ALLOCDEF "switch_hdr" */ /* ALLOCDEF "switch_hdr" 2 */
struct case_entry { struct case_entry {
struct case_entry *next; struct case_entry *next;
@ -21,4 +21,4 @@ struct case_entry {
arith ce_value; arith ce_value;
}; };
/* ALLOCDEF "case_entry" */ /* ALLOCDEF "case_entry" 40 */

View file

@ -3,7 +3,8 @@
#include "nofloat.h" #include "nofloat.h"
#include "nobitfield.h" #include "nobitfield.h"
#include "alloc.h" #include "botch_free.h"
#include <alloc.h>
#include "Lpars.h" #include "Lpars.h"
#include "arith.h" #include "arith.h"
#include "type.h" #include "type.h"
@ -11,7 +12,6 @@
#include "def.h" #include "def.h"
#include "sizes.h" #include "sizes.h"
#include "align.h" #include "align.h"
#include "storage.h"
struct type *function_of(), *array_of(); struct type *function_of(), *array_of();
#ifndef NOBITFIELD #ifndef NOBITFIELD
@ -44,7 +44,6 @@ create_type(fund)
*/ */
register struct type *ntp = new_type(); register struct type *ntp = new_type();
clear((char *)ntp, sizeof(struct type));
ntp->tp_fund = fund; ntp->tp_fund = fund;
ntp->tp_size = (arith)-1; ntp->tp_size = (arith)-1;

View file

@ -44,4 +44,4 @@ extern struct type *pa_type; /* type.c */
extern arith size_of_type(), align(); extern arith size_of_type(), align();
/* ALLOCDEF "type" */ /* ALLOCDEF "type" 50 */