diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-09-15 18:46:13 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-09-15 18:46:13 +0000 |
commit | 02b77f4248815b31e711e506bfd8c440ddbd9ad1 (patch) | |
tree | e2d40cc7bdd54a700d95dd601c516c0418909a16 /clang/lib/CodeGen/CodeGenModule.h | |
parent | d759fe57643ed07e3b4cec9683be9cfca2641db9 (diff) | |
download | bcm5719-llvm-02b77f4248815b31e711e506bfd8c440ddbd9ad1.tar.gz bcm5719-llvm-02b77f4248815b31e711e506bfd8c440ddbd9ad1.zip |
Create a emitCXXStructor function and make the existing emitCXXConstructor and
emitCXXDestructor static helpers.
A next patch will make it a helper in CGCXXABI.
llvm-svn: 217804
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.h | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h index 3b4417b351f..1ae09c84cc9 100644 --- a/clang/lib/CodeGen/CodeGenModule.h +++ b/clang/lib/CodeGen/CodeGenModule.h @@ -1044,6 +1044,14 @@ public: /// are emitted lazily. void EmitGlobal(GlobalDecl D); + bool TryEmitDefinitionAsAlias(GlobalDecl Alias, GlobalDecl Target, + bool InEveryTU); + bool TryEmitBaseDestructorAsAlias(const CXXDestructorDecl *D); + + /// Set attributes for a global definition. + void setFunctionDefinitionAttributes(const FunctionDecl *D, + llvm::Function *F); + private: llvm::GlobalValue *GetGlobalValue(StringRef Ref); @@ -1064,10 +1072,6 @@ private: void setNonAliasAttributes(const Decl *D, llvm::GlobalObject *GO); - /// Set attributes for a global definition. - void setFunctionDefinitionAttributes(const FunctionDecl *D, - llvm::Function *F); - /// Set function attributes for a function declaration. void SetFunctionAttributes(GlobalDecl GD, llvm::Function *F, @@ -1083,19 +1087,13 @@ private: // C++ related functions. - bool TryEmitDefinitionAsAlias(GlobalDecl Alias, GlobalDecl Target, - bool InEveryTU); - bool TryEmitBaseDestructorAsAlias(const CXXDestructorDecl *D); - void EmitNamespace(const NamespaceDecl *D); void EmitLinkageSpec(const LinkageSpecDecl *D); void CompleteDIClassType(const CXXMethodDecl* D); - /// Emit a single constructor with the given type from a C++ constructor Decl. - void EmitCXXConstructor(const CXXConstructorDecl *D, CXXCtorType Type); - - /// Emit a single destructor with the given type from a C++ destructor Decl. - void EmitCXXDestructor(const CXXDestructorDecl *D, CXXDtorType Type); + /// Emit a single constructor/destructor with the given type from a C++ + /// constructor Decl. + void emitCXXStructor(const CXXMethodDecl *D, StructorType Type); /// \brief Emit the function that initializes C++ thread_local variables. void EmitCXXThreadLocalInitFunc(); |