diff --git a/bootstrap/unix-44/OPB.c b/bootstrap/unix-44/OPB.c index adda3018..8533be52 100644 --- a/bootstrap/unix-44/OPB.c +++ b/bootstrap/unix-44/OPB.c @@ -2172,6 +2172,8 @@ void OPB_StPar1 (OPT_Node *par0, OPT_Node x, INT8 fctno) if (((x->class == 8 || x->class == 9) || __IN(f, 0x0501, 32)) || x->typ->comp == 3) { OPB_err(126); } + OPT_TypSize(x->typ); + OPT_TypSize(p->typ); if ((x->class != 7 && x->typ->size < p->typ->size)) { OPB_err(-308); } diff --git a/bootstrap/unix-48/OPB.c b/bootstrap/unix-48/OPB.c index adda3018..8533be52 100644 --- a/bootstrap/unix-48/OPB.c +++ b/bootstrap/unix-48/OPB.c @@ -2172,6 +2172,8 @@ void OPB_StPar1 (OPT_Node *par0, OPT_Node x, INT8 fctno) if (((x->class == 8 || x->class == 9) || __IN(f, 0x0501, 32)) || x->typ->comp == 3) { OPB_err(126); } + OPT_TypSize(x->typ); + OPT_TypSize(p->typ); if ((x->class != 7 && x->typ->size < p->typ->size)) { OPB_err(-308); } diff --git a/bootstrap/unix-88/OPB.c b/bootstrap/unix-88/OPB.c index adda3018..8533be52 100644 --- a/bootstrap/unix-88/OPB.c +++ b/bootstrap/unix-88/OPB.c @@ -2172,6 +2172,8 @@ void OPB_StPar1 (OPT_Node *par0, OPT_Node x, INT8 fctno) if (((x->class == 8 || x->class == 9) || __IN(f, 0x0501, 32)) || x->typ->comp == 3) { OPB_err(126); } + OPT_TypSize(x->typ); + OPT_TypSize(p->typ); if ((x->class != 7 && x->typ->size < p->typ->size)) { OPB_err(-308); } diff --git a/bootstrap/windows-48/OPB.c b/bootstrap/windows-48/OPB.c index adda3018..8533be52 100644 --- a/bootstrap/windows-48/OPB.c +++ b/bootstrap/windows-48/OPB.c @@ -2172,6 +2172,8 @@ void OPB_StPar1 (OPT_Node *par0, OPT_Node x, INT8 fctno) if (((x->class == 8 || x->class == 9) || __IN(f, 0x0501, 32)) || x->typ->comp == 3) { OPB_err(126); } + OPT_TypSize(x->typ); + OPT_TypSize(p->typ); if ((x->class != 7 && x->typ->size < p->typ->size)) { OPB_err(-308); } diff --git a/bootstrap/windows-88/OPB.c b/bootstrap/windows-88/OPB.c index adda3018..8533be52 100644 --- a/bootstrap/windows-88/OPB.c +++ b/bootstrap/windows-88/OPB.c @@ -2172,6 +2172,8 @@ void OPB_StPar1 (OPT_Node *par0, OPT_Node x, INT8 fctno) if (((x->class == 8 || x->class == 9) || __IN(f, 0x0501, 32)) || x->typ->comp == 3) { OPB_err(126); } + OPT_TypSize(x->typ); + OPT_TypSize(p->typ); if ((x->class != 7 && x->typ->size < p->typ->size)) { OPB_err(-308); } diff --git a/src/compiler/OPB.Mod b/src/compiler/OPB.Mod index 5cdad662..91576fd3 100644 --- a/src/compiler/OPB.Mod +++ b/src/compiler/OPB.Mod @@ -1226,6 +1226,7 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) err(126) END; (* Warn if the result type includes memory past the end of the source variable *) + OPT.TypSize(x.typ); OPT.TypSize(p.typ); IF (x.class # OPT.Nconst) & (x.typ.size < p.typ.size) THEN err(-308) END; IF (x.class = OPT.Nconst) & (x.typ.form = OPT.Int) & (p.typ.form = OPT.Int) THEN