| ... | @@ -10369,7 +10369,11 @@ static TypeTableEntry *ir_analyze_fn_call(IrAnalyze *ira, IrInstructionCall *cal | ... | @@ -10369,7 +10369,11 @@ static TypeTableEntry *ir_analyze_fn_call(IrAnalyze *ira, IrInstructionCall *cal |
| 10369 | arg_tuple_i < arg->value.data.x_arg_tuple.end_index; arg_tuple_i += 1) | 10369 | arg_tuple_i < arg->value.data.x_arg_tuple.end_index; arg_tuple_i += 1) |
| 10370 | { | 10370 | { |
| 10371 | VariableTableEntry *arg_var = get_fn_var_by_index(parent_fn_entry, arg_tuple_i); | 10371 | VariableTableEntry *arg_var = get_fn_var_by_index(parent_fn_entry, arg_tuple_i); |
| 10372 | assert(arg_var != nullptr); | 10372 | if (arg_var == nullptr) { |
| | 10373 | ir_add_error(ira, arg, |
| | 10374 | buf_sprintf("compiler bug: var args can't handle void. https://github.com/zig-lang/zig/issues/557")); |
| | 10375 | return ira->codegen->builtin_types.entry_invalid; |
| | 10376 | } |
| 10373 | IrInstruction *arg_var_ptr_inst = ir_get_var_ptr(ira, arg, arg_var, true, false); | 10377 | IrInstruction *arg_var_ptr_inst = ir_get_var_ptr(ira, arg, arg_var, true, false); |
| 10374 | if (type_is_invalid(arg_var_ptr_inst->value.type)) | 10378 | if (type_is_invalid(arg_var_ptr_inst->value.type)) |
| 10375 | return ira->codegen->builtin_types.entry_invalid; | 10379 | return ira->codegen->builtin_types.entry_invalid; |