diff options
author | Martin Nowack <martin@se.inf.tu-dresden.de> | 2014-10-20 23:50:40 +0200 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2015-03-20 15:26:52 +0000 |
commit | 8d2c8137ad60a3b5d7d5881fe42077fe4298d833 (patch) | |
tree | c91d5a25139f5bc8c54d483a9f6f035ae5a25020 /lib/Module | |
parent | d9b5b92cb1627edce7d476f8fd4328f5ee6f3bc8 (diff) | |
download | klee-8d2c8137ad60a3b5d7d5881fe42077fe4298d833.tar.gz |
[Core] Fix memory leak in assembler raising
Diffstat (limited to 'lib/Module')
-rw-r--r-- | lib/Module/RaiseAsm.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/Module/RaiseAsm.cpp b/lib/Module/RaiseAsm.cpp index d9145a1e..12e5479b 100644 --- a/lib/Module/RaiseAsm.cpp +++ b/lib/Module/RaiseAsm.cpp @@ -66,17 +66,18 @@ bool RaiseAsmPass::runOnModule(Module &M) { std::string HostTriple = llvm::sys::getHostTriple(); #endif const Target *NativeTarget = TargetRegistry::lookupTarget(HostTriple, Err); + TargetMachine * TM = 0; if (NativeTarget == 0) { llvm::errs() << "Warning: unable to select native target: " << Err << "\n"; TLI = 0; } else { #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 1) - TargetMachine *TM = NativeTarget->createTargetMachine(HostTriple, "", "", + TM = NativeTarget->createTargetMachine(HostTriple, "", "", TargetOptions()); #elif LLVM_VERSION_CODE >= LLVM_VERSION(3, 0) - TargetMachine *TM = NativeTarget->createTargetMachine(HostTriple, "", ""); + TM = NativeTarget->createTargetMachine(HostTriple, "", ""); #else - TargetMachine *TM = NativeTarget->createTargetMachine(HostTriple, ""); + TM = NativeTarget->createTargetMachine(HostTriple, ""); #endif TLI = TM->getTargetLowering(); } @@ -91,5 +92,8 @@ bool RaiseAsmPass::runOnModule(Module &M) { } } + if (TM) + delete TM; + return changed; } |