Commit 76d0e49e61
Changed files (2)
src
test
src/ir.cpp
@@ -5266,7 +5266,9 @@ static IrInstruction *ir_exec_const_result(IrExecutable *exec) {
if (instruction->id == IrInstructionIdReturn) {
IrInstructionReturn *ret_inst = (IrInstructionReturn *)instruction;
IrInstruction *value = ret_inst->value;
- assert(value->value.special != ConstValSpecialRuntime);
+ if (value->value.special == ConstValSpecialRuntime) {
+ return nullptr;
+ }
return value;
} else if (ir_has_side_effects(instruction)) {
return nullptr;
test/run_tests.cpp
@@ -1128,7 +1128,7 @@ const Foo = struct {
};
var global_var: usize = 1;
fn get() -> usize { global_var }
- )SOURCE", 1, ".tmp_source.zig:3:9: error: unable to evaluate constant expression");
+ )SOURCE", 1, ".tmp_source.zig:3:12: error: unable to evaluate constant expression");
add_compile_fail_case("unnecessary if statement", R"SOURCE(