Skip to content

Commit 1ad58d4

Browse files
committed
rustllvm: Free TargetMachine in LLVMRustWriteOutputFile
1 parent aaf4181 commit 1ad58d4

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

Diff for: src/rustllvm/RustWrapper.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ extern "C" void LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
9090
std::string Err;
9191
const Target *TheTarget = TargetRegistry::lookupTarget(triple, Err);
9292
std::string FeaturesStr;
93-
TargetMachine &Target = *TheTarget->createTargetMachine(triple, FeaturesStr);
93+
TargetMachine *Target = TheTarget->createTargetMachine(triple, FeaturesStr);
9494
bool NoVerify = false;
9595
CodeGenOpt::Level OLvl = CodeGenOpt::Default;
9696
PassManager *PM = unwrap<PassManager>(PMR);
@@ -101,10 +101,11 @@ extern "C" void LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
101101
TargetMachine::CodeGenFileType FileType2 =
102102
static_cast<TargetMachine::CodeGenFileType>(FileType);
103103

104-
bool foo = Target.addPassesToEmitFile(*PM, FOS, FileType2, OLvl, NoVerify);
104+
bool foo = Target->addPassesToEmitFile(*PM, FOS, FileType2, OLvl, NoVerify);
105105
assert(!foo);
106106
(void)foo;
107107
PM->run(*unwrap(M));
108+
delete Target;
108109
}
109110

110111
extern "C" LLVMModuleRef LLVMRustParseBitcode(LLVMMemoryBufferRef MemBuf) {

0 commit comments

Comments
 (0)