summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.h
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-08-08 23:24:23 +0000
committerAnders Carlsson <andersca@mac.com>2009-08-08 23:24:23 +0000
commitb8be93fc92c684a331a1ad40b30c77de3c18a67a (patch)
treef27bb74a30944cd5ce4ab45f693f6cf96e84e7e3 /clang/lib/CodeGen/CodeGenModule.h
parentcfed3005e5c9d8ff26ee53ef4f9e459a2106c11d (diff)
downloadbcm5719-llvm-b8be93fc92c684a331a1ad40b30c77de3c18a67a.tar.gz
bcm5719-llvm-b8be93fc92c684a331a1ad40b30c77de3c18a67a.zip
Add support for global initializers.
llvm-svn: 78515
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.h')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h
index 3aa015a99f7..923b6d204c6 100644
--- a/clang/lib/CodeGen/CodeGenModule.h
+++ b/clang/lib/CodeGen/CodeGenModule.h
@@ -173,6 +173,10 @@ class CodeGenModule : public BlockModule {
llvm::StringMap<llvm::Constant*> CFConstantStringMap;
llvm::StringMap<llvm::Constant*> ConstantStringMap;
+ /// CXXGlobalInits - Variables with global initializers that need to run
+ /// before main.
+ std::vector<const VarDecl*> CXXGlobalInits;
+
/// CFConstantStringClassRef - Cached reference to the class for constant
/// strings. This value has type int * but is actually an Obj-C class pointer.
llvm::Constant *CFConstantStringClassRef;
@@ -444,6 +448,9 @@ private:
/// a C++ destructor Decl.
void EmitCXXDestructor(const CXXDestructorDecl *D, CXXDtorType Type);
+ /// EmitCXXGlobalInitFunc - Emit a function that initializes C++ globals.
+ void EmitCXXGlobalInitFunc();
+
// FIXME: Hardcoding priority here is gross.
void AddGlobalCtor(llvm::Function *Ctor, int Priority=65535);
void AddGlobalDtor(llvm::Function *Dtor, int Priority=65535);
OpenPOWER on IntegriCloud