changed some large static data structures into STATIC
authorerikb <none@none>
Mon, 15 Sep 1986 08:47:53 +0000 (08:47 +0000)
committererikb <none@none>
Mon, 15 Sep 1986 08:47:53 +0000 (08:47 +0000)
lang/cem/cemcom/Makefile.erik
lang/cem/cemcom/Parameters
lang/cem/cemcom/dumpidf.c
lang/cem/cemcom/input.c
lang/cem/cemcom/replace.c

index 73d412c..7f8ea21 100644 (file)
@@ -77,7 +77,7 @@ GHSRC =       botch_free.h dataflow.h debug.h density.h errout.h \
        idepth.h idfsize.h ifdepth.h inputtype.h inumlength.h lapbuf.h \
        maxincl.h myalloc.h nobitfield.h nopp.h \
        nparams.h numsize.h parbufsize.h pathlength.h predefine.h \
-       strsize.h target_sizes.h textsize.h use_tmp.h spec_arith.h
+       strsize.h target_sizes.h textsize.h use_tmp.h spec_arith.h static.h
 
 # Other generated files, for 'make clean' only
 GENERATED = tab tokenfile.g Lpars.h LLfiles LL.output lint.out \
@@ -217,15 +217,15 @@ cstoper.o: Lpars.h arith.h assert.h debug.h expr.h idf.h label.h nobitfield.h no
 arith.o: Lpars.h alloc.h arith.h botch_free.h expr.h field.h idf.h label.h mes.h nobitfield.h nopp.h spec_arith.h storage.h type.h
 alloc.o: alloc.h assert.h debug.h myalloc.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 idf.h label.h level.h mes.h nobitfield.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 nopp.h spec_arith.h stack.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 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 label.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 nopp.h sizes.h spec_arith.h type.h
 tokenname.o: LLlex.h Lpars.h arith.h idf.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 idf.h idfsize.h input.h nopp.h numsize.h sizes.h spec_arith.h strsize.h
 LLmessage.o: LLlex.h Lpars.h alloc.h arith.h idf.h nopp.h spec_arith.h
-input.o: LLlex.h alloc.h arith.h assert.h debug.h idepth.h input.h inputtype.h interface.h nopp.h pathlength.h spec_arith.h
+input.o: LLlex.h alloc.h arith.h assert.h debug.h idepth.h input.h inputtype.h interface.h nopp.h pathlength.h spec_arith.h static.h
 domacro.o: LLlex.h Lpars.h alloc.h arith.h assert.h botch_free.h class.h debug.h idf.h idfsize.h ifdepth.h input.h interface.h macro.h nopp.h nparams.h parbufsize.h spec_arith.h storage.h textsize.h
-replace.o: LLlex.h alloc.h arith.h assert.h class.h debug.h idf.h input.h interface.h macro.h nopp.h pathlength.h spec_arith.h strsize.h
+replace.o: LLlex.h alloc.h arith.h assert.h class.h debug.h idf.h input.h interface.h macro.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 predefine.h
 options.o: align.h arith.h class.h idf.h idfsize.h macro.h maxincl.h nobitfield.h nopp.h sizes.h spec_arith.h storage.h use_tmp.h
 scan.o: class.h idf.h input.h interface.h lapbuf.h macro.h nopp.h nparams.h
index dab11db..5fff54b 100644 (file)
 /* describes internal compiler arithmetics */
 #undef SPECIAL_ARITHMETICS     /* something different from native long */
 
+
+!File: static.h
+#define STATIC                 /* decl. spec. for large "static" arrays */
index a7bf5ac..e6a67c1 100644 (file)
@@ -16,6 +16,7 @@
 #include       "Lpars.h"
 #include       "label.h"
 #include       "expr.h"
+#include       "static.h"
 
 /*     Some routines (symbol2str, token2str, type2str) which should have
  *     yielded strings are written to yield a pointer to a transient piece
@@ -284,15 +285,16 @@ type2str(tp)
        return buf;
 }
 
+STATIC char trans_buf[MAXTRANS][300];
+
 char *         /* the ultimate transient buffer supplier */
 next_transient()
 {
        static int bnum;
-       static char buf[MAXTRANS][300];
 
        if (++bnum == MAXTRANS)
                bnum = 0;
-       return buf[bnum];
+       return trans_buf[bnum];
 }
 
 print_expr(msg, expr)
index daa4e96..0fa38e2 100644 (file)
@@ -32,7 +32,7 @@
 
 #include       <system.h>
 #include       "nopp.h"
-#include       "inputtype.h"   /* UF */
+#include       "inputtype.h"
 #include       "interface.h"
 #include       "arith.h"
 #include       "LLlex.h"
 #include       "alloc.h"
 
 #ifndef NOPP
-#include       "idepth.h"      /* UF */
-#include       "debug.h"       /* UF */
-#include       "pathlength.h"  /* UF */
+#include       "idepth.h"
+#include       "debug.h"
+#include       "pathlength.h"
 #include       "assert.h"
+#include       "static.h"
 #endif NOPP
 
 EXPORT char *ipp = 0;          /* input pointer        */
@@ -445,18 +446,19 @@ setwdir(wdir, fn)
 #ifndef NOPP
 /*     mk_filename() concatenates a dir and filename.
 */
+STATIC char path[PATHLENGTH];
+
 PRIVATE char *
 mk_filename(dir, file)
        register char *dir, *file;
 {
-       static char newfn[PATHLENGTH];
-       register char *dst = &newfn[0];
+       register char *dst = &path[0];
 
        if (!(dir[0] == '.' && dir[1] == '\0')) {
                while (*dst++ = *dir++);
                *(dst - 1) = '/';
        }
        while (*dst++ = *file++);
-       return &newfn[0];
+       return &path[0];
 }
 #endif NOPP
index 8738fa0..b19d41b 100644 (file)
@@ -17,6 +17,7 @@
 #include       "class.h"
 #include       "assert.h"
 #include       "interface.h"
+#include       "static.h"
 
 char *strcpy(), *strcat();
 char *long2str();
@@ -62,6 +63,8 @@ replace(idef)
        return 1;
 }
 
+STATIC char FilNamBuf[PATHLENGTH];
+
 PRIVATE
 macro_func(idef)
        struct idf *idef;
@@ -71,8 +74,6 @@ macro_func(idef)
                replacement texts must be evaluated at the time they are
                used.
        */
-       static char FilNamBuf[PATHLENGTH];
-
        /* This switch is very blunt... */
        switch (idef->id_text[2]) {
        case 'F' :                      /* __FILE__     */