check number of locals and parameters
authorceriel <none@none>
Tue, 24 Nov 1987 14:21:35 +0000 (14:21 +0000)
committerceriel <none@none>
Tue, 24 Nov 1987 14:21:35 +0000 (14:21 +0000)
lang/m2/comp/Version.c
lang/m2/comp/type.c
lang/m2/comp/walk.c

index 9b8c4ce..7e734b1 100644 (file)
@@ -1 +1 @@
-static char Version[] = "ACK Modula-2 compiler Version 0.28";
+static char Version[] = "ACK Modula-2 compiler Version 0.29";
index 3a9a31d..22496d8 100644 (file)
@@ -399,6 +399,9 @@ proc_type(result_type, parameters, n_bytes_params)
 
        tp->prc_params = parameters;
        tp->prc_nbpar = n_bytes_params;
+       if (! fit(n_bytes_params, (int) word_size)) {
+               error("maximum parameter byte count exceeded");
+       }
        return tp;
 }
 
index d148ac9..7961ec7 100644 (file)
@@ -339,6 +339,9 @@ WalkProcedure(procedure)
        C_ret(func_res_size);
        if (! options['n']) WalkDefList(sc->sc_def, RegisterMessage);
        C_end(-sc->sc_off);
+       if (! fit(sc->sc_off, (int) word_size)) {
+               node_error(procedure->prc_body, "maximum local byte count exceeded");
+       }
        TmpClose();
        CurrVis = savevis;
        proclevel--;