From 003ce73312c764efd7646e26a342a49dc4ff943f Mon Sep 17 00:00:00 2001 From: Stanislav Gromov Date: Sat, 19 Mar 2022 18:05:30 +0700 Subject: [PATCH 1/2] Fix assertion failure in `delete_symbols()` --- source/compiler/sc1.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/compiler/sc1.c b/source/compiler/sc1.c index cedcbcbb..ad94f001 100644 --- a/source/compiler/sc1.c +++ b/source/compiler/sc1.c @@ -3822,8 +3822,10 @@ static void funcstub(int fnative) } /* if */ if (tok==tOPERATOR) { - if (numdim!=0) + if (numdim!=0) { error(10); /* invalid function or declaration */ + numdim=0; /* ignore the array size specification */ + } /* if */ opertok=operatorname(symbolname); if (opertok==0) return; /* error message already given */ From b3d646b1179daf9c0e709aa6c54800ef85a31e6f Mon Sep 17 00:00:00 2001 From: Stanislav Gromov Date: Sun, 20 Mar 2022 17:57:09 +0700 Subject: [PATCH 2/2] Fix warning about signed/unsigned mismatch in `while (++ichild->dim.array.level+1) { error(25); /* function heading differs from prototype */ } else { - unsigned int i=0; + int i=0; sub=sym->child; do { if (dim[i]!=sub->dim.array.length) {