diff --git a/lang/cem/cemcom.ansi/ch3mon.c b/lang/cem/cemcom.ansi/ch3mon.c index 41b27740..40cc4402 100644 --- a/lang/cem/cemcom.ansi/ch3mon.c +++ b/lang/cem/cemcom.ansi/ch3mon.c @@ -20,7 +20,7 @@ #include "sizes.h" extern char options[]; -extern arith full_mask[/*MAXSIZE*/]; /* cstoper.c */ +extern arith full_mask[/*MAXSIZE + 1*/]; /* cstoper.c */ char *symbol2str(); ch3mon(oper, expp) diff --git a/lang/cem/cemcom.ansi/ch7mon.c b/lang/cem/cemcom.ansi/ch7mon.c index ab3e3864..f7962904 100644 --- a/lang/cem/cemcom.ansi/ch7mon.c +++ b/lang/cem/cemcom.ansi/ch7mon.c @@ -18,7 +18,7 @@ #include "def.h" extern char options[]; -extern arith full_mask[/*MAXSIZE*/]; /* cstoper.c */ +extern arith full_mask[/*MAXSIZE + 1*/]; /* cstoper.c */ char *symbol2str(); ch7mon(oper, expp) diff --git a/lang/cem/cemcom.ansi/cstoper.c b/lang/cem/cemcom.ansi/cstoper.c index ddd7bf68..c86f122b 100644 --- a/lang/cem/cemcom.ansi/cstoper.c +++ b/lang/cem/cemcom.ansi/cstoper.c @@ -16,7 +16,8 @@ #include "Lpars.h" #include "assert.h" -arith full_mask[MAXSIZE];/* full_mask[1] == 0XFF, full_mask[2] == 0XFFFF, .. */ +/* full_mask[1] == 0XFF, full_mask[2] == 0XFFFF, .. */ +arith full_mask[MAXSIZE + 1]; #ifndef NOCROSS arith max_int; /* maximum integer on target machine */ arith max_unsigned; /* maximum unsigned on target machine */ @@ -247,7 +248,7 @@ init_cst() while (!(bt < 0)) { bt = (bt << 8) + 0377, i++; - if (i == MAXSIZE) + if (i > MAXSIZE) fatal("array full_mask too small for this machine"); full_mask[i] = bt; }