|
@@ -578,7 +578,10 @@ gb_internal void lb_begin_procedure_body(lbProcedure *p) {
|
|
|
defer (param_index += 1);
|
|
|
|
|
|
if (arg_type->kind == lbArg_Ignore) {
|
|
|
- continue;
|
|
|
+ // Even though it is an ignored argument, it might still be referenced in the
|
|
|
+ // body.
|
|
|
+ lbValue dummy = lb_add_local_generated(p, e->type, false).addr;
|
|
|
+ lb_add_entity(p->module, e, dummy);
|
|
|
} else if (arg_type->kind == lbArg_Direct) {
|
|
|
if (e->token.string.len != 0 && !is_blank_ident(e->token.string)) {
|
|
|
LLVMTypeRef param_type = lb_type(p->module, e->type);
|
|
@@ -1051,6 +1054,7 @@ gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> c
|
|
|
Type *original_type = e->type;
|
|
|
lbArgType *arg = &ft->args[param_index];
|
|
|
if (arg->kind == lbArg_Ignore) {
|
|
|
+ param_index += 1;
|
|
|
continue;
|
|
|
}
|
|
|
|