| ... | @@ -3858,6 +3858,8 @@ static IrInstruction *ir_gen_builtin_fn_call(IrBuilder *irb, Scope *scope, AstNo | ... | @@ -3858,6 +3858,8 @@ static IrInstruction *ir_gen_builtin_fn_call(IrBuilder *irb, Scope *scope, AstNo |
| 3858 | return irb->codegen->invalid_instruction; | 3858 | return irb->codegen->invalid_instruction; |
| 3859 | } | 3859 | } |
| 3860 | | 3860 | |
| | 3861 | bool is_async = exec_is_async(irb->exec); |
| | 3862 | |
| 3861 | switch (builtin_fn->id) { | 3863 | switch (builtin_fn->id) { |
| 3862 | case BuiltinFnIdInvalid: | 3864 | case BuiltinFnIdInvalid: |
| 3863 | zig_unreachable(); | 3865 | zig_unreachable(); |
| ... | @@ -4491,6 +4493,10 @@ static IrInstruction *ir_gen_builtin_fn_call(IrBuilder *irb, Scope *scope, AstNo | ... | @@ -4491,6 +4493,10 @@ static IrInstruction *ir_gen_builtin_fn_call(IrBuilder *irb, Scope *scope, AstNo |
| 4491 | case BuiltinFnIdFrameAddress: | 4493 | case BuiltinFnIdFrameAddress: |
| 4492 | return ir_lval_wrap(irb, scope, ir_build_frame_address(irb, scope, node), lval); | 4494 | return ir_lval_wrap(irb, scope, ir_build_frame_address(irb, scope, node), lval); |
| 4493 | case BuiltinFnIdHandle: | 4495 | case BuiltinFnIdHandle: |
| | 4496 | if (!is_async) { |
| | 4497 | add_node_error(irb->codegen, node, buf_sprintf("@handle() in non-async function")); |
| | 4498 | return irb->codegen->invalid_instruction; |
| | 4499 | } |
| 4494 | return ir_lval_wrap(irb, scope, ir_build_handle(irb, scope, node), lval); | 4500 | return ir_lval_wrap(irb, scope, ir_build_handle(irb, scope, node), lval); |
| 4495 | case BuiltinFnIdAlignOf: | 4501 | case BuiltinFnIdAlignOf: |
| 4496 | { | 4502 | { |