Skip to content
Snippets Groups Projects
Commit eddce742 authored by Nat Goodspeed's avatar Nat Goodspeed
Browse files

MAINT-5232: Do less work inside typeid() calls.

clang gets nervous about expressions that call functions inside typeid(), even
though these particular typeid() calls are runtime expressions on runtime
values. Extract the offending calls to a previous statement.
parent c92eb7e5
No related branches found
No related tags found
No related merge requests found
......@@ -115,9 +115,10 @@ void LLSingletonBase::pop_initializing()
}
if (list.back() != this)
{
LLSingletonBase* back(list.back());
logerrs("Push/pop mismatch in stack of currently-initializing LLSingletons: ",
demangle(typeid(*this).name()).c_str(), "::getInstance() trying to pop ",
demangle(typeid(*list.back()).name()).c_str());
demangle(typeid(*back).name()).c_str());
}
// Here we're sure that list.back() == this. Whew, pop it.
list.pop_back();
......@@ -148,7 +149,8 @@ void LLSingletonBase::capture_dependency(EInitState initState)
{
// 'found' is an iterator; *found is an LLSingletonBase*; **found
// is the actual LLSingletonBase instance.
out << demangle(typeid(**found).name()) << " -> ";
LLSingletonBase* foundp(*found);
out << demangle(typeid(*foundp).name()) << " -> ";
}
// We promise to capture dependencies from both the constructor
// and the initSingleton() method, so an LLSingleton's instance
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment