From 82057f08cee867057919c00a96f938283baad4fd Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 10 Jan 2018 21:13:20 +0000 Subject: [PATCH] Fix issue #172 --- src/ir.cpp | 4 +++- src/parser.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ir.cpp b/src/ir.cpp index 40bef0805..789c32317 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -1626,9 +1626,11 @@ irValue *ir_emit_call(irProcedure *p, irValue *value, irValue **args, isize arg_ context_ptr = ir_find_or_generate_context_ptr(p); } + bool is_c_vararg = pt->Proc.c_vararg; isize param_count = pt->Proc.param_count; - if (pt->Proc.c_vararg) { + if (is_c_vararg) { GB_ASSERT(param_count-1 <= arg_count); + param_count -= 1; } else { GB_ASSERT_MSG(param_count == arg_count, "%td == %td", param_count, arg_count); } diff --git a/src/parser.cpp b/src/parser.cpp index 5e5fb7ac0..7810c0e01 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -3965,7 +3965,7 @@ AstNode *parse_switch_stmt(AstFile *f) { body = ast_block_stmt(f, list, open, close); if (!is_type_match) { - tag = convert_stmt_to_expr(f, tag, str_lit("match expression")); + tag = convert_stmt_to_expr(f, tag, str_lit("switch expression")); return ast_switch_stmt(f, token, init, tag, body); } else { return ast_type_switch_stmt(f, token, tag, body);