diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2013-06-21 21:15:32 +0000 |
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2013-06-21 21:15:32 +0000 |
| commit | 92a6c74bbf369a84270370dc4b3449c6a87ac09d (patch) | |
| tree | 40e699219bad2af0eca19fd4a7bc46f00e83931f /clang/lib | |
| parent | 940ca4d4626bbdd8d228b34416d3b0d4ff8b004e (diff) | |
| download | bcm5719-llvm-92a6c74bbf369a84270370dc4b3449c6a87ac09d.tar.gz bcm5719-llvm-92a6c74bbf369a84270370dc4b3449c6a87ac09d.zip | |
Fix a leak of TargetMachine in clang. We'll continue to leak it on purpose if
given -disable-free. (Reviewed by John McCall over IRC.)
llvm-svn: 184595
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/CodeGen/BackendUtil.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index e173aa9314a..7d1a3c82e84 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -528,6 +528,7 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action, raw_ostream *OS) { Action != Backend_EmitLL); TargetMachine *TM = CreateTargetMachine(UsesCodeGen); if (UsesCodeGen && !TM) return; + llvm::OwningPtr<TargetMachine> TMOwner(CodeGenOpts.DisableFree ? 0 : TM); CreatePasses(TM); switch (Action) { diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index d9316ec4f0f..d7d679fcc07 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -363,6 +363,7 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, Opts.CodeModel = Args.getLastArgValue(OPT_mcode_model); Opts.DebugPass = Args.getLastArgValue(OPT_mdebug_pass); Opts.DisableFPElim = Args.hasArg(OPT_mdisable_fp_elim); + Opts.DisableFree = Args.hasArg(OPT_disable_free); Opts.DisableTailCalls = Args.hasArg(OPT_mdisable_tail_calls); Opts.FloatABI = Args.getLastArgValue(OPT_mfloat_abi); Opts.HiddenWeakVTables = Args.hasArg(OPT_fhidden_weak_vtables); |

