From 2bbecf24162b546e623c66a674159619bcc5b520 Mon Sep 17 00:00:00 2001 From: ceriel Date: Tue, 26 Apr 1988 10:14:01 +0000 Subject: [PATCH] better argument checking of standard functions --- lang/m2/comp/chk_expr.c | 11 +++++++++++ lang/m2/comp/cstoper.c | 3 +++ 2 files changed, 14 insertions(+) diff --git a/lang/m2/comp/chk_expr.c b/lang/m2/comp/chk_expr.c index 5684ffd3a..682da96a1 100644 --- a/lang/m2/comp/chk_expr.c +++ b/lang/m2/comp/chk_expr.c @@ -1199,6 +1199,17 @@ ChkStandard(expp) W_STRICT, "%s on conformant array", expp->nd_left->nd_def->df_idf->id_text); +#endif +#ifndef STRICT_3RD_ED + if (! options['3'] && edf->df_value.df_stdname == S_TSIZE) { + if (arg->nd_right) { + node_warning(arg->nd_right, + W_OLDFASHIONED, + "TSIZE with multiple parameters, only first parameter used"); + FreeNode(arg->nd_right); + arg->nd_right = 0; + } + } #endif break; diff --git a/lang/m2/comp/cstoper.c b/lang/m2/comp/cstoper.c index 9224aef0b..1e6553954 100644 --- a/lang/m2/comp/cstoper.c +++ b/lang/m2/comp/cstoper.c @@ -522,6 +522,9 @@ cstcall(expp, call) default: crash("(cstcall)"); } + expp->nd_right = 0; /* don't deallocate, for further + argument checking + */ FreeLR(expp); } -- 2.34.1