src/codegen.cpp: return null if calling convention is not async;
Tracking Issue #1296 ;
This commit is contained in:
parent
9366a58bdd
commit
a2e5691228
|
@ -4149,9 +4149,15 @@ static LLVMValueRef ir_render_frame_address(CodeGen *g, IrExecutable *executable
|
|||
static LLVMValueRef ir_render_handle(CodeGen *g, IrExecutable *executable,
|
||||
IrInstructionHandle *instruction)
|
||||
{
|
||||
// @andrewrk, not sure what to place here ?
|
||||
// `get_promise_frame_type` ?
|
||||
LLVMValueRef handle = LLVMConstNull(g->builtin_types.entry_promise->type_ref);
|
||||
|
||||
bool is_async = executable->fn_entry != nullptr &&
|
||||
executable->fn_entry->type_entry->data.fn.fn_type_id.cc == CallingConventionAsync;
|
||||
|
||||
if (!is_async || !executable->coro_handle) {
|
||||
return LLVMConstNull(g->builtin_types.entry_promise->type_ref);
|
||||
}
|
||||
|
||||
LLVMValueRef handle = ir_llvm_value(g, executable->coro_handle);
|
||||
return LLVMBuildRet(g->builder, handle);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user