瀏覽代碼

Push `context` onto stack before evaluating procedure parameters

Fixes #4711
Feoramund 2 月之前
父節點
當前提交
378e72b211
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      src/llvm_backend_proc.cpp

+ 3 - 3
src/llvm_backend_proc.cpp

@@ -546,6 +546,9 @@ gb_internal void lb_begin_procedure_body(lbProcedure *p) {
 	GB_ASSERT(p->type != nullptr);
 
 	lb_ensure_abi_function_type(p->module, p);
+	if (p->type->Proc.calling_convention == ProcCC_Odin) {
+		lb_push_context_onto_stack_from_implicit_parameter(p);
+	}
 	{
 		lbFunctionType *ft = p->abi_function_type;
 
@@ -743,9 +746,6 @@ gb_internal void lb_begin_procedure_body(lbProcedure *p) {
 
 		}
 	}
-	if (p->type->Proc.calling_convention == ProcCC_Odin) {
-		lb_push_context_onto_stack_from_implicit_parameter(p);
-	}
 
 	lb_set_debug_position_to_procedure_begin(p);
 	if (p->debug_info != nullptr) {