diff options
| author | jacob gw <jacoblevgw@gmail.com> | 2021-03-31 20:16:32 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-03-31 18:09:45 -0700 |
| commit | fedc9ebd26175bf8309d665f3e1ee6769e8af86d (patch) | |
| tree | c072a70aee3ef73ee368fc8f01baf3b407577924 /src/Sema.zig | |
| parent | 3cebaaad1ca16a9e0203ed8c1684d0ce72da9487 (diff) | |
| download | zig-fedc9ebd26175bf8309d665f3e1ee6769e8af86d.tar.gz zig-fedc9ebd26175bf8309d665f3e1ee6769e8af86d.zip | |
stage2: cbe: restore all previously passing tests!
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 504edfe97b..212db3a0e4 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -3737,8 +3737,12 @@ fn analyzeRet( if (need_coercion) { if (sema.func) |func| { const fn_ty = func.owner_decl.typed_value.most_recent.typed_value.ty; - const casted_operand = try sema.coerce(block, fn_ty.fnReturnType(), operand, src); - _ = try block.addUnOp(src, Type.initTag(.noreturn), .ret, casted_operand); + const fn_ret_ty = fn_ty.fnReturnType(); + const casted_operand = try sema.coerce(block, fn_ret_ty, operand, src); + if (fn_ret_ty.zigTypeTag() == .Void) + _ = try block.addNoOp(src, Type.initTag(.noreturn), .retvoid) + else + _ = try block.addUnOp(src, Type.initTag(.noreturn), .ret, casted_operand); return always_noreturn; } } |
