14 #ifndef LLVM_SUPPORT_MANAGEDSTATIC_H
15 #define LLVM_SUPPORT_MANAGEDSTATIC_H
32 static void call(
void * Ptr) {
delete (
T*)Ptr; }
35 static void call(
void * Ptr) {
delete[] (
T*)Ptr; }
71 return *
static_cast<C*
>(
Ptr);
79 return static_cast<C*
>(
Ptr);
87 return *
static_cast<C*
>(
Ptr);
95 return static_cast<C*
>(
Ptr);
bool isConstructed() const
isConstructed - Return true if this object has not been created yet.
const C * operator->() const
const C & operator*() const
void * object_creator()
object_creator - Helper method for ManagedStatic.
const ManagedStaticBase * Next
static void call(void *Ptr)
#define TsanHappensAfter(cv)
object_deleter - Helper method for ManagedStatic.
void(* DeleterFn)(void *)
void llvm_shutdown()
llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
bool llvm_is_multithreaded()
Returns true if LLVM is compiled with support for multi-threading, and false otherwise.
void RegisterManagedStatic(void *(*creator)(), void(*deleter)(void *)) const
ManagedStaticBase - Common base class for ManagedStatic instances.
static void call(void *Ptr)
llvm_shutdown_obj - This is a simple helper class that calls llvm_shutdown() when it is destroyed...
ManagedStatic - This transparently changes the behavior of global statics to be lazily constructed on...