diff options
author | Anders Carlsson <andersca@mac.com> | 2009-08-08 21:45:14 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-08-08 21:45:14 +0000 |
commit | f40886accaf36a739360073366e71369fc0fb064 (patch) | |
tree | a4de83aee5ef2365b0e5365c4d27c8704feb925c /clang/lib/CodeGen/CodeGenFunction.h | |
parent | e2dc8a46e9ab5f790e5ad17e7ba1afd05cfcd80c (diff) | |
download | bcm5719-llvm-f40886accaf36a739360073366e71369fc0fb064.tar.gz bcm5719-llvm-f40886accaf36a739360073366e71369fc0fb064.zip |
Refactor some code and implement support for global destructors for static variables.
llvm-svn: 78507
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 6e4d9ec8919..da88b53352e 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -887,11 +887,20 @@ public: llvm::GlobalValue::LinkageTypes Linkage); - /// GenerateStaticCXXBlockVarDecl - Create the initializer for a C++ + /// EmitStaticCXXBlockVarDeclInit - Create the initializer for a C++ /// runtime initialized static block var decl. - void GenerateStaticCXXBlockVarDeclInit(const VarDecl &D, - llvm::GlobalVariable *GV); + void EmitStaticCXXBlockVarDeclInit(const VarDecl &D, + llvm::GlobalVariable *GV); + /// EmitCXXGlobalVarDeclInit - Create the initializer for a C++ + /// variable with global storage. + void EmitCXXGlobalVarDeclInit(const VarDecl &D, llvm::Constant *DeclPtr); + + /// EmitCXXGlobalDtorRegistration - Emits a call to register the global ptr + /// with the C++ runtime so that its destructor will be called at exit. + void EmitCXXGlobalDtorRegistration(const CXXDestructorDecl *Dtor, + llvm::Constant *DeclPtr); + void EmitCXXConstructExpr(llvm::Value *Dest, const CXXConstructExpr *E); RValue EmitCXXExprWithTemporaries(const CXXExprWithTemporaries *E, |