[llvm] r298018 - Don't rely on an implicit std::tuple constructor.

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 16 17:16:21 PDT 2017


Author: zturner
Date: Thu Mar 16 19:16:21 2017
New Revision: 298018

URL: http://llvm.org/viewvc/llvm-project?rev=298018&view=rev
Log:
Don't rely on an implicit std::tuple constructor.

Apparently it doesn't have one, so using an initializer list
doesn't work correctly.

Modified:
    llvm/trunk/unittests/Support/Path.cpp

Modified: llvm/trunk/unittests/Support/Path.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/Path.cpp?rev=298018&r1=298017&r2=298018&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/Path.cpp (original)
+++ llvm/trunk/unittests/Support/Path.cpp Thu Mar 16 19:16:21 2017
@@ -1054,10 +1054,15 @@ TEST_F(FileSystemTest, FileMapping) {
 }
 
 TEST(Support, NormalizePath) {
-  using TestTuple = std::tuple<StringRef, StringRef, StringRef>;
-  TestTuple Tests[] = {{"a", "a", "a"},         {"a/b", "a\\b", "a/b"},
-                       {"a\\b", "a\\b", "a/b"}, {"a\\\\b", "a\\\\b", "a\\\\b"},
-                       {"\\a", "\\a", "/a"},    {"a\\", "a\\", "a/"}};
+  using TestTuple = std::tuple<const char *, const char *, const char *>;
+  std::vector<TestTuple> Tests;
+  Tests.emplace_back("a", "a", "a");
+  Tests.emplace_back("a/b", "a\\b", "a/b");
+  Tests.emplace_back("a\\b", "a\\b", "a/b");
+  Tests.emplace_back("a\\\\b", "a\\\\b", "a\\\\b");
+  Tests.emplace_back("\\a", "\\a", "/a");
+  Tests.emplace_back("a\\", "a\\", "a/");
+
   for (auto &T : Tests) {
     SmallString<64> Win = std::get<0>(T);
     SmallString<64> Posix = Win;




More information about the llvm-commits mailing list