From a3128cb22880d448c4e7620029e8e6e8b0167cf4 Mon Sep 17 00:00:00 2001 From: Mikael Holmen Date: Thu, 24 Sep 2020 11:18:21 +0200 Subject: [PATCH] [unittests] Use std::make_tuple to make some toolchains happy again My toolchain stopped working (LLVM 8.0, libstdc++ 5.4.0) after 577adda: 06:25:37 ../unittests/Support/Path.cpp:91:7: error: chosen constructor is explicit in copy-initialization 06:25:37 {"", false, false}, {"/", true, true}, {"/foo", true, true}, 06:25:37 ^~~~~~~~~~~~~~~~~~ 06:25:37 /proj/flexasic/app/llvm/8.0/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:479:19: note: explicit constructor declared here 06:25:37 constexpr tuple(_UElements&&... __elements) 06:25:37 ^ This commit adds explicit calls to std::make_tuple to work around the problem. --- unittests/Support/Path.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/unittests/Support/Path.cpp b/unittests/Support/Path.cpp index 10ebea7940a..ef1877381b0 100644 --- a/unittests/Support/Path.cpp +++ b/unittests/Support/Path.cpp @@ -88,11 +88,19 @@ TEST(is_separator, Works) { TEST(is_absolute_gnu, Works) { // Test tuple . const std::tuple Paths[] = { - {"", false, false}, {"/", true, true}, {"/foo", true, true}, - {"\\", false, true}, {"\\foo", false, true}, {"foo", false, false}, - {"c", false, false}, {"c:", false, true}, {"c:\\", false, true}, - {"!:", false, true}, {"xx:", false, false}, {"c:abc\\", false, true}, - {":", false, false}}; + std::make_tuple("", false, false), + std::make_tuple("/", true, true), + std::make_tuple("/foo", true, true), + std::make_tuple("\\", false, true), + std::make_tuple("\\foo", false, true), + std::make_tuple("foo", false, false), + std::make_tuple("c", false, false), + std::make_tuple("c:", false, true), + std::make_tuple("c:\\", false, true), + std::make_tuple("!:", false, true), + std::make_tuple("xx:", false, false), + std::make_tuple("c:abc\\", false, true), + std::make_tuple(":", false, false)}; for (const auto &Path : Paths) { EXPECT_EQ(path::is_absolute_gnu(std::get<0>(Path), path::Style::posix),