[lld] r202645 - [C++11] Work around an incompatibility between llvm::tie and std::tie.

Benjamin Kramer benny.kra at googlemail.com
Sun Mar 2 05:45:18 PST 2014


Author: d0k
Date: Sun Mar  2 07:45:18 2014
New Revision: 202645

URL: http://llvm.org/viewvc/llvm-project?rev=202645&view=rev
Log:
[C++11] Work around an incompatibility between llvm::tie and std::tie.

Modified:
    lld/trunk/lib/Driver/WinLinkDriver.cpp
    lld/trunk/lib/Driver/WinLinkModuleDef.cpp
    lld/trunk/lib/ReaderWriter/PECOFF/EdataPass.cpp

Modified: lld/trunk/lib/Driver/WinLinkDriver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/WinLinkDriver.cpp?rev=202645&r1=202644&r2=202645&view=diff
==============================================================================
--- lld/trunk/lib/Driver/WinLinkDriver.cpp (original)
+++ lld/trunk/lib/Driver/WinLinkDriver.cpp Sun Mar  2 07:45:18 2014
@@ -97,7 +97,7 @@ static std::vector<StringRef> splitPathL
   std::vector<StringRef> ret;
   while (!str.empty()) {
     StringRef path;
-    llvm::tie(path, str) = str.split(';');
+    std::tie(path, str) = str.split(';');
     ret.push_back(path);
   }
   return ret;
@@ -107,7 +107,7 @@ static std::vector<StringRef> splitPathL
 // "<string>=<string>".
 static bool parseAlternateName(StringRef arg, StringRef &weak, StringRef &def,
                                raw_ostream &diagnostics) {
-  llvm::tie(weak, def) = arg.split('=');
+  std::tie(weak, def) = arg.split('=');
   if (weak.empty() || def.empty()) {
     diagnostics << "Error: malformed /alternatename option: " << arg << "\n";
     return false;
@@ -120,7 +120,7 @@ static bool parseAlternateName(StringRef
 static bool parseMemoryOption(StringRef arg, uint64_t &reserve,
                               uint64_t &commit) {
   StringRef reserveStr, commitStr;
-  llvm::tie(reserveStr, commitStr) = arg.split(',');
+  std::tie(reserveStr, commitStr) = arg.split(',');
   if (reserveStr.getAsInteger(0, reserve))
     return false;
   if (!commitStr.empty() && commitStr.getAsInteger(0, commit))
@@ -132,7 +132,7 @@ static bool parseMemoryOption(StringRef
 // "<integer>[.<integer>]".
 static bool parseVersion(StringRef arg, uint32_t &major, uint32_t &minor) {
   StringRef majorVersion, minorVersion;
-  llvm::tie(majorVersion, minorVersion) = arg.split('.');
+  std::tie(majorVersion, minorVersion) = arg.split('.');
   if (minorVersion.empty())
     minorVersion = "0";
   if (majorVersion.getAsInteger(0, major))
@@ -168,7 +168,7 @@ static bool parseSubsystem(StringRef arg
                            llvm::Optional<uint32_t> &minor,
                            raw_ostream &diagnostics) {
   StringRef subsystemStr, osVersion;
-  llvm::tie(subsystemStr, osVersion) = arg.split(',');
+  std::tie(subsystemStr, osVersion) = arg.split(',');
   if (!osVersion.empty()) {
     uint32_t v1, v2;
     if (!parseVersion(osVersion, v1, v2))
@@ -208,7 +208,7 @@ static bool parseSection(StringRef optio
                          llvm::Optional<uint32_t> &flags,
                          llvm::Optional<uint32_t> &mask) {
   StringRef flagString;
-  llvm::tie(section, flagString) = option.split(",");
+  std::tie(section, flagString) = option.split(",");
 
   bool negative = false;
   if (flagString.startswith("!")) {
@@ -294,14 +294,14 @@ static bool parseManifestUac(StringRef o
     if (option.startswith_lower("level=")) {
       option = option.substr(strlen("level="));
       StringRef value;
-      llvm::tie(value, option) = option.split(" ");
+      std::tie(value, option) = option.split(" ");
       level = value.str();
       continue;
     }
     if (option.startswith_lower("uiaccess=")) {
       option = option.substr(strlen("uiaccess="));
       StringRef value;
-      llvm::tie(value, option) = option.split(" ");
+      std::tie(value, option) = option.split(" ");
       uiAccess = value.str();
       continue;
     }
@@ -314,7 +314,7 @@ static bool parseExport(StringRef option
                         PECOFFLinkingContext::ExportDesc &ret) {
   StringRef name;
   StringRef rest;
-  llvm::tie(name, rest) = option.split(",");
+  std::tie(name, rest) = option.split(",");
   if (name.empty())
     return false;
   ret.name = name;
@@ -323,7 +323,7 @@ static bool parseExport(StringRef option
     if (rest.empty())
       return true;
     StringRef arg;
-    llvm::tie(arg, rest) = rest.split(",");
+    std::tie(arg, rest) = rest.split(",");
     if (arg.equals_lower("noname")) {
       if (ret.ordinal < 0)
         return false;
@@ -404,7 +404,7 @@ static void quoteAndPrintXml(raw_ostream
     if (str.empty())
       return;
     StringRef line;
-    llvm::tie(line, str) = str.split("\n");
+    std::tie(line, str) = str.split("\n");
     if (line.empty())
       continue;
     out << '\"';
@@ -542,7 +542,7 @@ handleFailIfMismatchOption(StringRef opt
                            std::map<StringRef, StringRef> &mustMatch,
                            raw_ostream &diagnostics) {
   StringRef key, value;
-  llvm::tie(key, value) = option.split('=');
+  std::tie(key, value) = option.split('=');
   if (key.empty() || value.empty()) {
     diagnostics << "error: malformed /failifmismatch option: " << option << "\n";
     return true;
@@ -815,7 +815,7 @@ WinLinkDriver::parse(int argc, const cha
     case OPT_merge: {
       // Parse /merge:<from>=<to>.
       StringRef from, to;
-      llvm::tie(from, to) = StringRef(inputArg->getValue()).split('=');
+      std::tie(from, to) = StringRef(inputArg->getValue()).split('=');
       if (from.empty() || to.empty()) {
         diagnostics << "error: malformed /merge option: "
                     << inputArg->getValue() << "\n";

Modified: lld/trunk/lib/Driver/WinLinkModuleDef.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/WinLinkModuleDef.cpp?rev=202645&r1=202644&r2=202645&view=diff
==============================================================================
--- lld/trunk/lib/Driver/WinLinkModuleDef.cpp (original)
+++ lld/trunk/lib/Driver/WinLinkModuleDef.cpp Sun Mar  2 07:45:18 2014
@@ -221,7 +221,7 @@ bool Parser::parseVersion(int &major, in
   if (_tok._kind != Kind::identifier)
     return false;
   StringRef v1, v2;
-  llvm::tie(v1, v2) = _tok._range.split('.');
+  std::tie(v1, v2) = _tok._range.split('.');
   if (v1.getAsInteger(10, major))
     return false;
   if (v2.empty()) {

Modified: lld/trunk/lib/ReaderWriter/PECOFF/EdataPass.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/EdataPass.cpp?rev=202645&r1=202644&r2=202645&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/PECOFF/EdataPass.cpp (original)
+++ lld/trunk/lib/ReaderWriter/PECOFF/EdataPass.cpp Sun Mar  2 07:45:18 2014
@@ -144,7 +144,7 @@ void EdataPass::perform(std::unique_ptr<
     return;
 
   int ordinalBase, maxOrdinal;
-  llvm::tie(ordinalBase, maxOrdinal) = getOrdinalBase(entries);
+  std::tie(ordinalBase, maxOrdinal) = getOrdinalBase(entries);
 
   std::vector<TableEntry> namedEntries;
   for (TableEntry &e : entries)





More information about the llvm-commits mailing list