aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 887e0fc8bf..b0e8c2d8ee 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -17280,7 +17280,11 @@ static IrInstruction *ir_analyze_instruction_elem_ptr(IrAnalyze *ira, IrInstruct
ZigType *actual_array_type = ir_resolve_type(ira, elem_ptr_instruction->init_array_type->child);
if (type_is_invalid(actual_array_type))
return ira->codegen->invalid_instruction;
- assert(actual_array_type->id == ZigTypeIdArray);
+ if (actual_array_type->id != ZigTypeIdArray) {
+ ir_add_error(ira, elem_ptr_instruction->init_array_type,
+ buf_sprintf("expected array type or [_], found slice"));
+ return ira->codegen->invalid_instruction;
+ }
ConstExprValue *array_init_val = create_const_vals(1);
array_init_val->special = ConstValSpecialStatic;
@@ -19575,7 +19579,7 @@ static IrInstruction *ir_analyze_instruction_container_init_list(IrAnalyze *ira,
size_t elem_count = instruction->item_count;
if (is_slice(container_type)) {
- ir_add_error(ira, &instruction->base,
+ ir_add_error(ira, instruction->container_type,
buf_sprintf("expected array type or [_], found slice"));
return ira->codegen->invalid_instruction;
}