Просмотр исходного кода

Change `find_or_generator_context_ptr` behaviours

gingerBill 5 лет назад
Родитель
Сommit
92402603b9
2 измененных файлов с 2 добавлено и 6 удалено
  1. 0 1
      src/ir.cpp
  2. 2 5
      src/llvm_backend.cpp

+ 0 - 1
src/ir.cpp

@@ -3115,7 +3115,6 @@ irValue *ir_find_or_generate_context_ptr(irProcedure *proc) {
 
 	irValue *c = ir_add_local_generated(proc, t_context, true);
 	ir_push_context_onto_stack(proc, c);
-	ir_emit_store(proc, c, ir_emit_load(proc, proc->module->global_default_context));
 	ir_emit_init_context(proc, c);
 	return c;
 }

+ 2 - 5
src/llvm_backend.cpp

@@ -6039,14 +6039,11 @@ lbAddr lb_find_or_generate_context_ptr(lbProcedure *p) {
 
 	Type *pt = base_type(p->type);
 	GB_ASSERT(pt->kind == Type_Proc);
-	if (pt->Proc.calling_convention != ProcCC_Odin) {
-		return p->module->global_default_context;
-	} else {
+	{
 		lbAddr c = lb_add_local_generated(p, t_context, false);
 		c.kind = lbAddr_Context;
-		lb_push_context_onto_stack(p, c);
-		lb_addr_store(p, c, lb_addr_load(p, p->module->global_default_context));
 		lb_emit_init_context(p, c);
+		lb_push_context_onto_stack(p, c);
 		return c;
 	}
 }