git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206492
91177308-0d34-0410-b5e6-
96231b3b80d8
void ManagedStaticBase::RegisterManagedStatic(void *(*Creator)(),
void (*Deleter)(void*)) const {
void ManagedStaticBase::RegisterManagedStatic(void *(*Creator)(),
void (*Deleter)(void*)) const {
if (llvm_is_multithreaded()) {
llvm_acquire_global_lock();
if (!Ptr) {
if (llvm_is_multithreaded()) {
llvm_acquire_global_lock();
if (!Ptr) {
- void* tmp = Creator ? Creator() : nullptr;
TsanHappensBefore(this);
sys::MemoryFence();
TsanHappensBefore(this);
sys::MemoryFence();
} else {
assert(!Ptr && !DeleterFn && !Next &&
"Partially initialized ManagedStatic!?");
} else {
assert(!Ptr && !DeleterFn && !Next &&
"Partially initialized ManagedStatic!?");
- Ptr = Creator ? Creator() : nullptr;
DeleterFn = Deleter;
// Add to list of managed statics.
DeleterFn = Deleter;
// Add to list of managed statics.