Commit 76d0e49e61

Andrew Kelley <superjoe30@gmail.com>
2017-01-08 16:54:05
fix unable to eval const expr test case
1 parent e4bc8d2
Changed files (2)
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(