From 7fcd74585a1705c621c6b61b3f2dd1d90621bbb4 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Mon, 16 Feb 2015 18:21:19 +0000 Subject: [PATCH] MSVC 2013 supports std::forward_as_tuple, while MSVC 2012 did not; so we can move to using the improved API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229414 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/LexicalScopes.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/CodeGen/LexicalScopes.cpp b/lib/CodeGen/LexicalScopes.cpp index b621e3baee5..d71b0afdaec 100644 --- a/lib/CodeGen/LexicalScopes.cpp +++ b/lib/CodeGen/LexicalScopes.cpp @@ -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; } -- 2.34.1