diff --git a/PLASMA-BLD2.PO b/PLASMA-BLD2.PO index 4f218de..2df2119 100644 Binary files a/PLASMA-BLD2.PO and b/PLASMA-BLD2.PO differ diff --git a/PLASMA-DEM2.PO b/PLASMA-DEM2.PO index c0e4b40..21c38ce 100644 Binary files a/PLASMA-DEM2.PO and b/PLASMA-DEM2.PO differ diff --git a/PLASMA-SOS2.PO b/PLASMA-SOS2.PO index 282707a..7ce4590 100644 Binary files a/PLASMA-SOS2.PO and b/PLASMA-SOS2.PO differ diff --git a/PLASMA-SYS2.PO b/PLASMA-SYS2.PO index baf6683..0bc7257 100644 Binary files a/PLASMA-SYS2.PO and b/PLASMA-SYS2.PO differ diff --git a/src/toolsrc/parse.c b/src/toolsrc/parse.c index 6f2aa02..43d20c1 100755 --- a/src/toolsrc/parse.c +++ b/src/toolsrc/parse.c @@ -1069,7 +1069,7 @@ int parse_stmnt(void) casetag[i] = casetag[i-1]; i--; } - if (casecnt && (caseval[i] == constval)) + if ((i < casecnt) && (caseval[i] == constval)) parse_error("Duplicate CASE"); caseval[i] = constval; casetag[i] = tag_of; diff --git a/src/toolsrc/parse.pla b/src/toolsrc/parse.pla index 37c653d..141d2b0 100644 --- a/src/toolsrc/parse.pla +++ b/src/toolsrc/parse.pla @@ -821,7 +821,7 @@ def parse_stmnt casetag=>[i] = casetag=>[i-1] i-- loop - if casecnt and caseval=>[i] == caseconst; exit_err(ERR_DUP|ERR_STATE); fin + if i < casecnt and caseval=>[i] == caseconst; exit_err(ERR_DUP|ERR_STATE); fin caseval=>[i] = caseconst casetag=>[i] = tag_of casecnt++