From f47bcae03ece9015a079a7afac7fe5b205fee343 Mon Sep 17 00:00:00 2001 From: Alp Toker <alp@nuanti.com> Date: Sat, 28 Dec 2013 21:58:40 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198126 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CodeGenModule.cpp | 9 ++++----- lib/CodeGen/CodeGenModule.h | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index 718998b7ab8..7baef23b116 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/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; diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h index b02f0178d93..5f26ab968c4 100644 --- a/lib/CodeGen/CodeGenModule.h +++ b/lib/CodeGen/CodeGenModule.h @@ -236,7 +236,7 @@ class CodeGenModule : public CodeGenTypeCache { DiagnosticsEngine &Diags; const llvm::DataLayout &TheDataLayout; const TargetInfo &Target; - CGCXXABI &ABI; + llvm::OwningPtr<CGCXXABI> ABI; llvm::LLVMContext &VMContext; CodeGenTBAA *TBAA; @@ -535,7 +535,7 @@ public: DiagnosticsEngine &getDiags() const { return Diags; } const llvm::DataLayout &getDataLayout() const { return TheDataLayout; } const TargetInfo &getTarget() const { return Target; } - CGCXXABI &getCXXABI() { return ABI; } + CGCXXABI &getCXXABI() const { return *ABI; } llvm::LLVMContext &getLLVMContext() { return VMContext; } bool shouldUseTBAA() const { return TBAA != 0; } -- GitLab