From 8f4bdc0e37b4b24a58a15ecf41d1355a3b3fdcbb Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 30 Apr 2013 21:34:13 +0000 Subject: Revert r180739 and r180748: they broke C++11 thread_local on non-Darwin systems and did not do the right thing on Darwin. Original commit message: Emit the TLS intialization functions into a list. Add the TLS initialization functions to a list of initialization functions. The back-end takes this list and places the function pointers into the correct section. This way they're called before `main().' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180809 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CodeGenModule.h | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'lib/CodeGen/CodeGenModule.h') diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h index ca30096dcb..0f4fe8ae51 100644 --- a/lib/CodeGen/CodeGenModule.h +++ b/lib/CodeGen/CodeGenModule.h @@ -293,10 +293,6 @@ class CodeGenModule : public CodeGenTypeCache { /// priorities to be emitted when the translation unit is complete. CtorList GlobalDtors; - /// TLSInitFuncs - Store the list of TLS initialization functions toe be - /// emitted with the translation unit is complete. - std::vector TLSInitFuncs; - /// MangledDeclNames - A map of canonical GlobalDecls to their mangled names. llvm::DenseMap MangledDeclNames; llvm::BumpPtrAllocator MangledNamesAllocator; @@ -1057,18 +1053,11 @@ private: void AddGlobalCtor(llvm::Function *Ctor, int Priority=65535); void AddGlobalDtor(llvm::Function *Dtor, int Priority=65535); - void AddTLSInitFunc(llvm::Function *Init); - /// EmitCtorList - Generates a global array of functions and priorities using /// the given list and name. This array will have appending linkage and is /// suitable for use as a LLVM constructor or destructor array. void EmitCtorList(const CtorList &Fns, const char *GlobalName); - /// EmitTLSList - Generates a global array of functions with the name - /// `llvm.tls_init_funcs'. This array will have appending linkage and is meant - /// to hold initialization functions for TLS variables. - void EmitTLSList(ArrayRef Fns); - /// EmitFundamentalRTTIDescriptor - Emit the RTTI descriptors for the /// given type. void EmitFundamentalRTTIDescriptor(QualType Type); -- cgit v1.2.3-18-g5258