aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index c3a9840ceb..8a750e6983 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -27910,11 +27910,10 @@ static IrInstGen *ir_analyze_instruction_fn_proto(IrAnalyze *ira, IrInstSrcFnPro
if (cc == CallingConventionC) {
break;
- } else if (cc == CallingConventionUnspecified) {
- lazy_fn_type->is_generic = true;
- return result;
} else {
- zig_unreachable();
+ ir_add_error(ira, &instruction->base.base,
+ buf_sprintf("var args only allowed in functions with C calling convention"));
+ return ira->codegen->invalid_inst_gen;
}
}
@@ -30979,10 +30978,10 @@ static ZigType *ir_resolve_lazy_fn_type(IrAnalyze *ira, AstNode *source_node, La
if (fn_type_id.cc == CallingConventionC) {
fn_type_id.param_count = fn_type_id.next_param_index;
break;
- } else if (fn_type_id.cc == CallingConventionUnspecified) {
- return get_generic_fn_type(ira->codegen, &fn_type_id);
} else {
- zig_unreachable();
+ ir_add_error_node(ira, param_node,
+ buf_sprintf("var args only allowed in functions with C calling convention"));
+ return nullptr;
}
}
FnTypeParamInfo *param_info = &fn_type_id.param_info[fn_type_id.next_param_index];