From f17e663493c80e2b9b9dbc8b6340c9239efc92a0 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 23 Jul 2015 14:30:37 +0100 Subject: [PATCH] py: Issue an error when compiling Viper functions with more than 4 args. Otherwise it can be very hard to track down bugs. --- py/emitnative.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/py/emitnative.c b/py/emitnative.c index 0d3f78da4e..37dbd56b3e 100644 --- a/py/emitnative.c +++ b/py/emitnative.c @@ -675,6 +675,12 @@ STATIC void emit_native_start_pass(emit_t *emit, pass_kind_t pass, scope_t *scop if (emit->do_viper_types) { + // right now we have a restriction of maximum of 4 arguments + if (scope->num_pos_args >= 5) { + EMIT_NATIVE_VIPER_TYPE_ERROR(emit, "Viper functions don't currently support more than 4 arguments (while compiling '%q')", scope->simple_name); return; + return; + } + // entry to function int num_locals = 0; if (pass > MP_PASS_SCOPE) {