1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00

MSVC 2013 supports std::forward_as_tuple, while MSVC 2012 did not; so we can move to using the improved API.

llvm-svn: 229414
This commit is contained in:
Aaron Ballman 2015-02-16 18:21:19 +00:00
parent e7964c82c7
commit 523472eab5

View File

@ -168,11 +168,10 @@ LexicalScope *LexicalScopes::getOrCreateRegularScope(MDNode *Scope) {
LexicalScope *Parent = nullptr;
if (D.isLexicalBlock())
Parent = getOrCreateLexicalScope(DebugLoc::getFromDILexicalBlock(Scope));
// FIXME: Use forward_as_tuple instead of make_tuple, once MSVC2012
// compatibility is no longer required.
I = LexicalScopeMap.emplace(std::piecewise_construct, std::make_tuple(Scope),
std::make_tuple(Parent, DIDescriptor(Scope),
nullptr, false)).first;
I = LexicalScopeMap.emplace(std::piecewise_construct,
std::forward_as_tuple(Scope),
std::forward_as_tuple(Parent, DIDescriptor(Scope),
nullptr, false)).first;
if (!Parent) {
assert(DIDescriptor(Scope).isSubprogram());
@ -199,12 +198,11 @@ LexicalScope *LexicalScopes::getOrCreateInlinedScope(MDNode *ScopeNode,
else
Parent = getOrCreateInlinedScope(Scope.getContext(), InlinedAt);
// FIXME: Use forward_as_tuple instead of make_tuple, once MSVC2012
// compatibility is no longer required.
I = InlinedLexicalScopeMap.emplace(std::piecewise_construct,
std::make_tuple(P),
std::make_tuple(Parent, Scope, InlinedAt,
false)).first;
std::forward_as_tuple(P),
std::forward_as_tuple(Parent, Scope,
InlinedAt, false))
.first;
return &I->second;
}