Commit bc5d666a authored by Marius Wachtler's avatar Marius Wachtler

Fix small issues encountered when doing OSR

parent 8ce0e0bb
...@@ -785,7 +785,7 @@ Box* ASTInterpreter::doOSR(AST_Jump* node) { ...@@ -785,7 +785,7 @@ Box* ASTInterpreter::doOSR(AST_Jump* node) {
= incref(frame_info.passed_closure); = incref(frame_info.passed_closure);
if (created_closure) if (created_closure)
sorted_symbol_table[source_info->getInternedStrings().get(CREATED_CLOSURE_NAME)] = created_closure; sorted_symbol_table[source_info->getInternedStrings().get(CREATED_CLOSURE_NAME)] = incref(created_closure);
sorted_symbol_table[source_info->getInternedStrings().get(FRAME_INFO_PTR_NAME)] = (Box*)&frame_info; sorted_symbol_table[source_info->getInternedStrings().get(FRAME_INFO_PTR_NAME)] = (Box*)&frame_info;
......
...@@ -1057,6 +1057,7 @@ private: ...@@ -1057,6 +1057,7 @@ private:
assert(exc_info->getType() == g.llvm_excinfo_type->getPointerTo()); assert(exc_info->getType() == g.llvm_excinfo_type->getPointerTo());
llvm::Constant* v = getNullPtr(g.llvm_value_type_ptr); llvm::Constant* v = getNullPtr(g.llvm_value_type_ptr);
emitter.setType(v, RefType::BORROWED);
builder->CreateStore(v, builder->CreateConstInBoundsGEP2_32(exc_info, 0, 0)); builder->CreateStore(v, builder->CreateConstInBoundsGEP2_32(exc_info, 0, 0));
builder->CreateStore(v, builder->CreateConstInBoundsGEP2_32(exc_info, 0, 1)); builder->CreateStore(v, builder->CreateConstInBoundsGEP2_32(exc_info, 0, 1));
builder->CreateStore(v, builder->CreateConstInBoundsGEP2_32(exc_info, 0, 2)); builder->CreateStore(v, builder->CreateConstInBoundsGEP2_32(exc_info, 0, 2));
...@@ -2053,7 +2054,7 @@ private: ...@@ -2053,7 +2054,7 @@ private:
converted_msg = msg->makeConverted(emitter, msg->getBoxType()); converted_msg = msg->makeConverted(emitter, msg->getBoxType());
llvm_args.push_back(converted_msg->getValue()); llvm_args.push_back(converted_msg->getValue());
} else { } else {
llvm_args.push_back(getNullPtr(g.llvm_value_type_ptr)); llvm_args.push_back(emitter.setType(getNullPtr(g.llvm_value_type_ptr), RefType::BORROWED));
} }
llvm::CallSite call = emitter.createCall(unw_info, g.funcs.assertFail, llvm_args); llvm::CallSite call = emitter.createCall(unw_info, g.funcs.assertFail, llvm_args);
call.setDoesNotReturn(); call.setDoesNotReturn();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment