Commit 515092210f

Andrew Kelley <andrew@ziglang.org>
2019-06-11 19:48:53
fix not checking return value of resolving result
1 parent 1c2e889
Changed files (2)
src/ir.cpp
@@ -14946,6 +14946,8 @@ static IrInstruction *ir_analyze_instruction_resolve_result(IrAnalyze *ira, IrIn
         return ira->codegen->invalid_instruction;
     IrInstruction *result_loc = ir_resolve_result(ira, &instruction->base, instruction->result_loc,
             implicit_elem_type, nullptr);
+    if (instr_is_unreachable(result_loc) || type_is_invalid(result_loc->value.type))
+        return result_loc;
     ir_assert(result_loc->value.type->id == ZigTypeIdPointer, &instruction->base);
     ZigType *actual_elem_type = result_loc->value.type->data.pointer.child_type;
     if (actual_elem_type->id == ZigTypeIdOptional && implicit_elem_type->id != ZigTypeIdOptional) {
BRANCH_TODO
@@ -1,6 +1,8 @@
 Scratch pad for stuff to do before merging master
 =================================================
 
+get an empty file compiling successfully (with no panic fn override)
+
 uncomment all the behavior tests
 
 look at all the ir_gen_node ir_gen_node_extra calls and make sure result locations are properly propagated