diff options
author | Alp Toker <alp@nuanti.com> | 2013-12-28 21:58:40 +0000 |
---|---|---|
committer | Alp Toker <alp@nuanti.com> | 2013-12-28 21:58:40 +0000 |
commit | 82862258e3208c5771f64b6a823d10400342ae68 (patch) | |
tree | a704d7b73d457f19ed9acb5fc4990d55605f6418 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 3ca67d6404f6a6f0bec96014d75656de2c87e8cd (diff) | |
download | bcm5719-llvm-82862258e3208c5771f64b6a823d10400342ae68.tar.gz bcm5719-llvm-82862258e3208c5771f64b6a823d10400342ae68.zip |
Tidy up CGCXXABI creation
'create' functions conventionally return a pointer, not a reference.
Also use an OwningPtr to get replace the delete of a reference member.
No functional change.
llvm-svn: 198126
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 718998b7ab8..7baef23b116 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -55,15 +55,15 @@ using namespace CodeGen; static const char AnnotationSection[] = "llvm.metadata"; -static CGCXXABI &createCXXABI(CodeGenModule &CGM) { +static CGCXXABI *createCXXABI(CodeGenModule &CGM) { switch (CGM.getTarget().getCXXABI().getKind()) { case TargetCXXABI::GenericAArch64: case TargetCXXABI::GenericARM: case TargetCXXABI::iOS: case TargetCXXABI::GenericItanium: - return *CreateItaniumCXXABI(CGM); + return CreateItaniumCXXABI(CGM); case TargetCXXABI::Microsoft: - return *CreateMicrosoftCXXABI(CGM); + return CreateMicrosoftCXXABI(CGM); } llvm_unreachable("invalid C++ ABI kind"); @@ -117,7 +117,7 @@ CodeGenModule::CodeGenModule(ASTContext &C, const CodeGenOptions &CGO, if (SanOpts.Thread || (!CodeGenOpts.RelaxedAliasing && CodeGenOpts.OptimizationLevel > 0)) TBAA = new CodeGenTBAA(Context, VMContext, CodeGenOpts, getLangOpts(), - ABI.getMangleContext()); + getCXXABI().getMangleContext()); // If debug info or coverage generation is enabled, create the CGDebugInfo // object. @@ -138,7 +138,6 @@ CodeGenModule::~CodeGenModule() { delete OpenCLRuntime; delete CUDARuntime; delete TheTargetCodeGenInfo; - delete &ABI; delete TBAA; delete DebugInfo; delete ARCData; |