Commit cd992b89d2

Andrew Kelley <superjoe30@gmail.com>
2017-02-24 21:07:46
fix unwrap error payload not emitting debug safety
1 parent a665872
Changed files (2)
src/ir.cpp
@@ -12423,6 +12423,7 @@ bool ir_has_side_effects(IrInstruction *instruction) {
         case IrInstructionIdCheckSwitchProngs:
         case IrInstructionIdSetGlobalAlign:
         case IrInstructionIdSetGlobalSection:
+        case IrInstructionIdUnwrapErrPayload:
             return true;
         case IrInstructionIdPhi:
         case IrInstructionIdUnOp:
@@ -12471,7 +12472,6 @@ bool ir_has_side_effects(IrInstruction *instruction) {
         case IrInstructionIdFrameAddress:
         case IrInstructionIdTestErr:
         case IrInstructionIdUnwrapErrCode:
-        case IrInstructionIdUnwrapErrPayload:
         case IrInstructionIdMaybeWrap:
         case IrInstructionIdErrWrapCode:
         case IrInstructionIdErrWrapPayload:
test/run_tests.cpp
@@ -1896,6 +1896,20 @@ fn unsigned_cast(x: i32) -> u32 {
 }
     )SOURCE");
 
+    add_debug_safety_case("unwrap error", R"SOURCE(
+pub fn panic(message: []const u8) -> unreachable {
+    @breakpoint();
+    while (true) {}
+}
+error Whatever;
+pub fn main(args: [][]u8) -> %void {
+    %%bar();
+}
+fn bar() -> %void {
+    return error.Whatever;
+}
+    )SOURCE");
+
 }
 
 //////////////////////////////////////////////////////////////////////////////