Don't rely on an implicit std::tuple constructor.
authorZachary Turner <zturner@google.com>
Fri, 17 Mar 2017 00:16:21 +0000 (00:16 +0000)
committerZachary Turner <zturner@google.com>
Fri, 17 Mar 2017 00:16:21 +0000 (00:16 +0000)
Apparently it doesn't have one, so using an initializer list
doesn't work correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298018 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/Support/Path.cpp

index cfd448b5fc902dd19e54ffeb451dc0b695cf5130..042cd1eef082b6b3b9dbbf9c5a473a192e866244 100644 (file)
@@ -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;