diff --git a/.upstream-tests/test/heterogeneous/tuple.pass.cpp b/.upstream-tests/test/heterogeneous/tuple.pass.cpp index 2593d3d985..ff5c693812 100644 --- a/.upstream-tests/test/heterogeneous/tuple.pass.cpp +++ b/.upstream-tests/test/heterogeneous/tuple.pass.cpp @@ -7,6 +7,8 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: nvrtc +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // uncomment for a really verbose output detailing what test steps are being launched // #define DEBUG_TESTERS diff --git a/.upstream-tests/test/std/numerics/complex.number/cmplx.over/conj.pass.cpp b/.upstream-tests/test/std/numerics/complex.number/cmplx.over/conj.pass.cpp index 19f13136af..88bbea306e 100644 --- a/.upstream-tests/test/std/numerics/complex.number/cmplx.over/conj.pass.cpp +++ b/.upstream-tests/test/std/numerics/complex.number/cmplx.over/conj.pass.cpp @@ -14,6 +14,10 @@ // template complex conj(T); // complex conj(float); +#if defined(_MSC_VER) +#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data +#endif + #include #include #include @@ -21,10 +25,6 @@ #include "test_macros.h" #include "../cases.h" -#if defined(_MSC_VER) -#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data -#endif - template __host__ __device__ void test(T x, typename cuda::std::enable_if::value>::type* = 0) diff --git a/.upstream-tests/test/std/numerics/complex.number/cmplx.over/pow.pass.cpp b/.upstream-tests/test/std/numerics/complex.number/cmplx.over/pow.pass.cpp index 6e647e95ed..b01704a32b 100644 --- a/.upstream-tests/test/std/numerics/complex.number/cmplx.over/pow.pass.cpp +++ b/.upstream-tests/test/std/numerics/complex.number/cmplx.over/pow.pass.cpp @@ -20,6 +20,10 @@ // complex::type> // pow(const complex& x, const complex& y); +#if defined(_MSC_VER) +#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data +#endif + #include #include #include @@ -27,10 +31,6 @@ #include "test_macros.h" #include "../cases.h" -#if defined(_MSC_VER) -#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data -#endif - template __host__ __device__ double promote(T, typename cuda::std::enable_if::value>::type* = 0); diff --git a/.upstream-tests/test/std/numerics/complex.number/cmplx.over/proj.pass.cpp b/.upstream-tests/test/std/numerics/complex.number/cmplx.over/proj.pass.cpp index 2a6cf9659f..1665a9d239 100644 --- a/.upstream-tests/test/std/numerics/complex.number/cmplx.over/proj.pass.cpp +++ b/.upstream-tests/test/std/numerics/complex.number/cmplx.over/proj.pass.cpp @@ -14,6 +14,10 @@ // template complex proj(T); // complex proj(float); +#if defined(_MSC_VER) +#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data +#endif + #include #include #include @@ -21,10 +25,6 @@ #include "test_macros.h" #include "../cases.h" -#if defined(_MSC_VER) -#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data -#endif - template __host__ __device__ void test(T x, typename cuda::std::enable_if::value>::type* = 0) diff --git a/.upstream-tests/test/std/numerics/complex.number/cmplx.over/real.pass.cpp b/.upstream-tests/test/std/numerics/complex.number/cmplx.over/real.pass.cpp index 690d0fac07..6b1bd2ef73 100644 --- a/.upstream-tests/test/std/numerics/complex.number/cmplx.over/real.pass.cpp +++ b/.upstream-tests/test/std/numerics/complex.number/cmplx.over/real.pass.cpp @@ -12,6 +12,10 @@ // T // real(const T& x); +#if defined(_MSC_VER) +#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data +#endif + #include #include #include @@ -19,10 +23,6 @@ #include "test_macros.h" #include "../cases.h" -#if defined(_MSC_VER) -#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data -#endif - template __host__ __device__ void test(typename cuda::std::enable_if::value>::type* = 0) diff --git a/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/assignment_complex.pass.cpp b/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/assignment_complex.pass.cpp index 196f3e82aa..e08088b31b 100644 --- a/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/assignment_complex.pass.cpp +++ b/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/assignment_complex.pass.cpp @@ -11,15 +11,15 @@ // complex& operator=(const complex&); // template complex& operator= (const complex&); +#if defined(_MSC_VER) +#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data +#endif + #include #include #include "test_macros.h" -#if defined(_MSC_VER) -#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data -#endif - template __host__ __device__ void test() diff --git a/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/divide_equal_complex.pass.cpp b/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/divide_equal_complex.pass.cpp index 321a65a7f6..ce50f8c7ec 100644 --- a/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/divide_equal_complex.pass.cpp +++ b/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/divide_equal_complex.pass.cpp @@ -10,15 +10,15 @@ // complex& operator/=(const complex& rhs); +#if defined(_MSC_VER) +# pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data +#endif + #include #include #include "test_macros.h" -#if defined(_MSC_VER) -#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data -#endif - template __host__ __device__ void test() diff --git a/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/times_equal_complex.pass.cpp b/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/times_equal_complex.pass.cpp index 5037994438..62d34189be 100644 --- a/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/times_equal_complex.pass.cpp +++ b/.upstream-tests/test/std/numerics/complex.number/complex.member.ops/times_equal_complex.pass.cpp @@ -10,15 +10,15 @@ // complex& operator*=(const complex& rhs); +#if defined(_MSC_VER) +#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data +#endif + #include #include #include "test_macros.h" -#if defined(_MSC_VER) -#pragma warning(disable: 4244) // conversion from 'const double' to 'int', possible loss of data -#endif - template __host__ __device__ void test() diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/plus_minus_equal.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/plus_minus_equal.pass.cpp index f5234b0673..a51639535a 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/plus_minus_equal.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/plus_minus_equal.pass.cpp @@ -19,6 +19,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + template __host__ __device__ constexpr bool testConstexpr() diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/minus.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/minus.pass.cpp index 3f39087c3b..c197afcd76 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/minus.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/minus.pass.cpp @@ -23,6 +23,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + template __host__ __device__ constexpr bool testConstexpr() diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/minus.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/minus.pass.cpp index 177c8f4fc8..310f424405 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/minus.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/minus.pass.cpp @@ -25,6 +25,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + template __host__ __device__ constexpr bool testConstexpr() diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.local_days.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.local_days.pass.cpp index 569ff0c944..4c85fb875c 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.local_days.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.local_days.pass.cpp @@ -29,6 +29,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + int main(int, char**) { using year = cuda::std::chrono::year; diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.sys_days.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.sys_days.pass.cpp index 91296b9848..73dc714f36 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.sys_days.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.sys_days.pass.cpp @@ -12,7 +12,7 @@ // constexpr year_month_day(const sys_days& dp) noexcept; // -// Effects: Constructs an object of type year_month_day that corresponds +// Effects: Constructs an object of type year_month_day that corresponds // to the date represented by dp. // // Remarks: For any value ymd of type year_month_day for which ymd.ok() is true, @@ -28,6 +28,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + int main(int, char**) { using year = cuda::std::chrono::year; diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.local_days.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.local_days.pass.cpp index 98fd0146e8..b95af5e3fe 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.local_days.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.local_days.pass.cpp @@ -35,6 +35,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + __host__ __device__ void RunTheExample() { @@ -42,7 +49,7 @@ void RunTheExample() static_assert(year_month_day{local_days{year{2017}/January/0}} == year{2016}/December/31,""); static_assert(year_month_day{local_days{year{2017}/January/31}} == year{2017}/January/31,""); - static_assert(year_month_day{local_days{year{2017}/January/32}} == year{2017}/February/1,""); + static_assert(year_month_day{local_days{year{2017}/January/32}} == year{2017}/February/1,""); } int main(int, char**) diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp index fe42770cd7..906e11b384 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp @@ -35,6 +35,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + __host__ __device__ void RunTheExample() { @@ -42,7 +49,7 @@ void RunTheExample() static_assert(year_month_day{sys_days{year{2017}/January/0}} == year{2016}/December/31,""); static_assert(year_month_day{sys_days{year{2017}/January/31}} == year{2017}/January/31,""); - static_assert(year_month_day{sys_days{year{2017}/January/32}} == year{2017}/February/1,""); + static_assert(year_month_day{sys_days{year{2017}/January/32}} == year{2017}/February/1,""); } int main(int, char**) diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.local_days.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.local_days.pass.cpp index e92c222348..41f6550d1a 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.local_days.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.local_days.pass.cpp @@ -29,6 +29,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + int main(int, char**) { using year = cuda::std::chrono::year; diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.sys_days.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.sys_days.pass.cpp index 7082f96ece..fc3deb36a4 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.sys_days.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.sys_days.pass.cpp @@ -28,6 +28,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + int main(int, char**) { using year = cuda::std::chrono::year; diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.local_days.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.local_days.pass.cpp index d5c3424587..91c9dae10e 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.local_days.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.local_days.pass.cpp @@ -25,6 +25,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + int main(int, char**) { using year = cuda::std::chrono::year; diff --git a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp index 4dd0b49447..7ca0d4c5fc 100644 --- a/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp +++ b/.upstream-tests/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp @@ -25,6 +25,13 @@ #include "test_macros.h" +// MSVC warns about unsigned/signed comparisons and addition/subtraction +// Silence these warnings, but not the ones within the header itself. +#if defined(_MSC_VER) +# pragma warning( disable: 4307 ) +# pragma warning( disable: 4308 ) +#endif + int main(int, char**) { using year = cuda::std::chrono::year; diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.general/ignore.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.general/ignore.pass.cpp index c35c5f5e55..58c335c018 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.general/ignore.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.general/ignore.pass.cpp @@ -10,7 +10,9 @@ // constexpr unspecified ignore; -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.general/tuple.smartptr.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.general/tuple.smartptr.pass.cpp index c8cb7f7770..06b23d93e8 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.general/tuple.smartptr.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.general/tuple.smartptr.pass.cpp @@ -7,7 +7,9 @@ //===----------------------------------------------------------------------===// // -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // Tuples of smart pointers; based on bug #18350 // auto_ptr doesn't have a copy constructor that takes a const &, but tuple does. diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/TupleFunction.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/TupleFunction.pass.cpp index d5d43fe4fb..754a00452e 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/TupleFunction.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/TupleFunction.pass.cpp @@ -6,7 +6,9 @@ // //===----------------------------------------------------------------------===// -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // This is for bugs 18853 and 19118 diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply.pass.cpp index 0e656efdb7..db474e7da7 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply.pass.cpp @@ -6,9 +6,10 @@ // //===----------------------------------------------------------------------===// -// UNSUPPORTED: c++98, c++03, c++11, c++14 +// UNSUPPORTED: c++98, c++03, c++11, c++14 // UNSUPPORTED: nvrtc - +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // // template constexpr decltype(auto) apply(F &&, T &&) diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_extended_types.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_extended_types.pass.cpp index 4908965027..ea727eb8fc 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_extended_types.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_extended_types.pass.cpp @@ -8,7 +8,9 @@ -// UNSUPPORTED: c++98, c++03, c++11, c++14 +// UNSUPPORTED: c++98, c++03, c++11, c++14 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_large_arity.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_large_arity.pass.cpp index 62a7cb677f..380c30ba89 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_large_arity.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_large_arity.pass.cpp @@ -8,6 +8,8 @@ // UNSUPPORTED: c++98, c++03, c++11, c++14 // UNSUPPORTED: nvrtc +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/make_from_tuple.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/make_from_tuple.pass.cpp index 311a0d33b2..0855337d00 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/make_from_tuple.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.apply/make_from_tuple.pass.cpp @@ -8,6 +8,8 @@ // UNSUPPORTED: c++98, c++03, c++11, c++14 // UNSUPPORTED: nvrtc +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/const_pair.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/const_pair.pass.cpp index b8b4f6a524..9c29af1bae 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/const_pair.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/const_pair.pass.cpp @@ -13,7 +13,9 @@ // template // tuple& operator=(const pair& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp index 2a01e3e2e0..648a2760f3 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp @@ -6,8 +6,6 @@ // //===----------------------------------------------------------------------===// - - // // template class tuple; @@ -15,7 +13,9 @@ // template // tuple& operator=(const tuple& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -76,6 +76,7 @@ int main(int, char**) assert(cuda::std::get<1>(t1) == int('a')); assert(cuda::std::get<2>(t1).id_ == 2); } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { // Test that tuple evaluates correctly applies an lvalue reference // before evaluating is_assignable (ie 'is_assignable') @@ -88,6 +89,6 @@ int main(int, char**) assert(cuda::std::get<0>(t) == 43); assert(&cuda::std::get<0>(t) == &x); } - +#endif return 0; } diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_move.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_move.pass.cpp index 8bc46276b8..b3b9c80616 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_move.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_move.pass.cpp @@ -15,7 +15,9 @@ // template // tuple& operator=(tuple&& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -98,6 +100,7 @@ int main(int, char**) assert(cuda::std::get<1>(t1) == int('a')); assert(cuda::std::get<2>(t1)->id_ == 3); }*/ +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { // Test that tuple evaluates correctly applies an lvalue reference // before evaluating is_assignable (ie 'is_assignable') @@ -110,6 +113,6 @@ int main(int, char**) assert(cuda::std::get<0>(t) == 43); assert(&cuda::std::get<0>(t) == &x); } - +#endif return 0; } diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/copy.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/copy.pass.cpp index e23f45b972..c2fa85c69e 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/copy.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/copy.pass.cpp @@ -14,7 +14,9 @@ // tuple& operator=(const tuple& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -75,6 +77,7 @@ int main(int, char**) assert(cuda::std::get<2>(t) == "some text"); } */ +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { // test reference assignment. using T = cuda::std::tuple; @@ -90,6 +93,7 @@ int main(int, char**) assert(cuda::std::get<1>(t) == y2); assert(&cuda::std::get<1>(t) == &y); } +#endif // cuda::std::unique_ptr not supported /* { diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/move.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/move.pass.cpp index 6254d9d497..a680cfd41e 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/move.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/move.pass.cpp @@ -14,7 +14,9 @@ // tuple& operator=(tuple&& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -65,6 +67,7 @@ int main(int, char**) t = cuda::std::move(t0); unused(t); } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { typedef cuda::std::tuple T; T t0(MoveOnly(0)); @@ -104,6 +107,7 @@ int main(int, char**) assert(cuda::std::get<1>(t) == y2); assert(&cuda::std::get<1>(t) == &y); } +#endif // cuda::std::unique_ptr not supported /* { diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/move_pair.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/move_pair.pass.cpp index af97d78bc1..f70d2ec92a 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/move_pair.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.assign/move_pair.pass.cpp @@ -13,7 +13,9 @@ // template // tuple& operator=(pair&& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.pass.cpp index 7d792139d6..499016b0a7 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.pass.cpp @@ -7,9 +7,9 @@ // //===----------------------------------------------------------------------===// - - -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR22806_constrain_tuple_like_ctor.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR22806_constrain_tuple_like_ctor.pass.cpp index d0f3b3134c..db4bed5716 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR22806_constrain_tuple_like_ctor.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR22806_constrain_tuple_like_ctor.pass.cpp @@ -8,7 +8,9 @@ -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // @@ -96,9 +98,11 @@ int main(int, char**) // cuda::std::allocator not supported // cuda::std::allocator A; { // rvalue reference +#if !(defined(_MSC_VER) && _MSC_VER < 1916) T t1(42); cuda::std::tuple< T&& > t2(cuda::std::move(t1)); assert(&cuda::std::get<0>(t2) == &t1); +#endif } { // const lvalue reference T t1(42); @@ -116,10 +120,12 @@ int main(int, char**) assert(&cuda::std::get<0>(t2) == &t1); } { // const rvalue reference +#if !(defined(_MSC_VER) && _MSC_VER < 1916) T t1(42); cuda::std::tuple< T const && > t2(cuda::std::move(t1)); assert(&cuda::std::get<0>(t2) == &t1); +#endif } // cuda::std::allocator not supported /* @@ -154,16 +160,20 @@ int main(int, char**) // the 'tuple(UTypes...)' ctor should be chosen and 'UDT' constructed from // 'tuple'. { +#if !(defined(_MSC_VER) && _MSC_VER < 1916) using VT = ConstructibleFromTupleAndInt; cuda::std::tuple t1(42); cuda::std::tuple t2(t1); assert(cuda::std::get<0>(t2).state == VT::FromTuple); +#endif } { +#if !(defined(_MSC_VER) && _MSC_VER < 1916) using VT = ConvertibleFromTupleAndInt; cuda::std::tuple t1(42); cuda::std::tuple t2 = {t1}; assert(cuda::std::get<0>(t2).state == VT::FromTuple); +#endif } // Test constructing a 1-tuple of the form tuple from another 1-tuple // 'tuple' where UDT cannot be constructed from 'tuple' but can diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp index b648965fd6..53a6b50add 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp @@ -8,7 +8,8 @@ -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// XFAIL: msvc // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp index a1566fc0c1..dbdd592d66 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp @@ -14,6 +14,9 @@ // explicit tuple(UTypes&&... u); // XFAIL: gcc-4.8, gcc-4.9 +// XFAIL: msvc-19.12, msvc-19.13 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // UNSUPPORTED: c++98, c++03 diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp index 397dd9b40c..35dbb57ab8 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp @@ -6,7 +6,9 @@ // //===----------------------------------------------------------------------===// -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_UTypes.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_UTypes.pass.cpp index 2310bc32f4..58a9f4ea2f 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_UTypes.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_UTypes.pass.cpp @@ -13,7 +13,9 @@ // template // tuple(allocator_arg_t, const Alloc& a, UTypes&&...); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_Types.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_Types.pass.cpp index f00854ca6d..d9f007a47e 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_Types.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_Types.pass.cpp @@ -13,7 +13,9 @@ // template // tuple(allocator_arg_t, const Alloc& a, const Types&...); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_pair.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_pair.pass.cpp index f2c971b632..b426dd0169 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_pair.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_pair.pass.cpp @@ -13,7 +13,9 @@ // template // tuple(allocator_arg_t, const Alloc& a, const pair&); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_copy.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_copy.pass.cpp index 53c84a61d0..b4c0004a36 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_copy.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_copy.pass.cpp @@ -13,7 +13,9 @@ // template // tuple(allocator_arg_t, const Alloc& a, const tuple&); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp index 0e78425de2..cf787a2477 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp @@ -13,7 +13,9 @@ // template // tuple(allocator_arg_t, const Alloc& a, tuple&&); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_copy.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_copy.pass.cpp index 2cc3bed01b..59b893fa9c 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_copy.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_copy.pass.cpp @@ -13,7 +13,9 @@ // template // tuple(allocator_arg_t, const Alloc& a, const tuple&); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move.pass.cpp index a22357ba15..c3b7da7711 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move.pass.cpp @@ -13,7 +13,9 @@ // template // tuple(allocator_arg_t, const Alloc& a, tuple&&); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -32,10 +34,12 @@ int main(int, char**) T t(cuda::std::allocator_arg, A1(), cuda::std::move(t0)); } { +#if !(defined(_MSC_VER) && _MSC_VER < 1916) typedef cuda::std::tuple T; T t0(MoveOnly(0)); T t(cuda::std::allocator_arg, A1(), cuda::std::move(t0)); assert(cuda::std::get<0>(t) == 0); +#endif } { typedef cuda::std::tuple T; @@ -56,6 +60,7 @@ int main(int, char**) // testing extensions #ifdef _LIBCUDACXX_VERSION { +#if !(defined(_MSC_VER) && _MSC_VER < 1916) typedef cuda::std::tuple T; T t0(0 ,1); alloc_first::allocator_constructed() = false; @@ -63,8 +68,10 @@ int main(int, char**) assert(alloc_first::allocator_constructed()); assert(cuda::std::get<0>(t) == 0); assert(cuda::std::get<1>(t) == 1); +#endif } { +#if !(defined(_MSC_VER) && _MSC_VER < 1916) typedef cuda::std::tuple T; T t0(1, 2, 3); alloc_first::allocator_constructed() = false; @@ -75,6 +82,7 @@ int main(int, char**) assert(cuda::std::get<0>(t) == 1); assert(cuda::std::get<1>(t) == 2); assert(cuda::std::get<2>(t) == 3); +#endif } #endif diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move_pair.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move_pair.pass.cpp index 8752d53c2a..2bb1e67da5 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move_pair.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move_pair.pass.cpp @@ -13,7 +13,9 @@ // template // tuple(allocator_arg_t, const Alloc& a, pair&&); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_Types.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_Types.pass.cpp index 6ed044684d..0c049af298 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_Types.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_Types.pass.cpp @@ -14,7 +14,9 @@ // explicit tuple(const T&...); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_pair.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_pair.pass.cpp index b5979cb655..3fb0dbcb36 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_pair.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_pair.pass.cpp @@ -12,7 +12,9 @@ // template tuple(const pair& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_copy.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_copy.pass.cpp index e810eb9dac..972de44fbc 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_copy.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_copy.pass.cpp @@ -14,7 +14,9 @@ // XFAIL: gcc-4.8, gcc-4.9 -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -149,9 +151,11 @@ int main(int, char**) static_assert(cuda::std::is_convertible::value, ""); static_assert(cuda::std::is_convertible&&, const cuda::std::tuple&>::value, ""); +#if !(defined(_MSC_VER) && _MSC_VER < 1916) ExplicitTwo e; cuda::std::tuple t = cuda::std::tuple(cuda::std::move(e)); ((void)t); +#endif } return 0; } diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_move.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_move.pass.cpp index bb5e3ad9fb..6febb839a6 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_move.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_move.pass.cpp @@ -14,8 +14,10 @@ // template tuple(tuple&& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 // UNSUPPORTED: nvrtc +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/copy.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/copy.pass.cpp index 346631da73..ec8e732b78 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/copy.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/copy.pass.cpp @@ -12,7 +12,9 @@ // tuple(const tuple& u) = default; -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp index a5fe4fc818..99526e5d2a 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp @@ -14,7 +14,9 @@ // explicit(see-below) constexpr tuple(); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/dtor.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/dtor.pass.cpp index 654748e96b..6e1f63e5a9 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/dtor.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/dtor.pass.cpp @@ -6,7 +6,9 @@ // //===----------------------------------------------------------------------===// -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move.pass.cpp index 0fa7751412..3368423bd6 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move.pass.cpp @@ -12,7 +12,9 @@ // tuple(tuple&& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -67,7 +69,9 @@ __host__ __device__ void test_sfinae() { } // args constructors { +#if !(defined(_MSC_VER) && _MSC_VER < 1916) static_assert(cuda::std::is_constructible::value, ""); +#endif static_assert(!cuda::std::is_constructible::value, ""); static_assert(!cuda::std::is_constructible::value, ""); } @@ -97,6 +101,7 @@ int main(int, char**) T t = cuda::std::move(t0); unused(t); // Prevent unused warning } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { typedef cuda::std::tuple T; T t0(MoveOnly(0)); @@ -127,6 +132,7 @@ int main(int, char**) d_t d2(static_cast(d)); unused(d2); } +#endif { test_sfinae(); test_sfinae(); diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move_pair.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move_pair.pass.cpp index ad1db0f691..e19f263ae6 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move_pair.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move_pair.pass.cpp @@ -12,7 +12,9 @@ // template tuple(pair&& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/nothrow_cnstr.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/nothrow_cnstr.pass.cpp index e5e36946cb..a7257669b4 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/nothrow_cnstr.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/nothrow_cnstr.pass.cpp @@ -13,6 +13,8 @@ // tuple(tuple&& u); // UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // XFAIL: gcc-8 && c++17 // XFAIL: gcc-7 && c++17 diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/tuple_array_template_depth.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/tuple_array_template_depth.pass.cpp index 46f2a9c335..dcba13d4c4 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/tuple_array_template_depth.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/tuple_array_template_depth.pass.cpp @@ -6,7 +6,9 @@ // //===----------------------------------------------------------------------===// -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/forward_as_tuple.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/forward_as_tuple.pass.cpp index 3c7f756d6c..b186fccfb0 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/forward_as_tuple.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/forward_as_tuple.pass.cpp @@ -13,7 +13,9 @@ // template // tuple forward_as_tuple(Types&&... t); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -66,9 +68,11 @@ int main(int, char**) { test0(cuda::std::forward_as_tuple()); } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { test1a(cuda::std::forward_as_tuple(1)); } +#endif { int i = 2; test1b(cuda::std::forward_as_tuple(i)); diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/make_tuple.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/make_tuple.pass.cpp index 596c6220c4..77d855c39f 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/make_tuple.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/make_tuple.pass.cpp @@ -15,7 +15,9 @@ // template // tuple make_tuple(Types&&... t); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp index 5d47860a4a..084bb78d0f 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/tie.pass.cpp @@ -15,7 +15,9 @@ // template // tuple tie(Types&... t); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp index e2d9a6485c..3bf95191a9 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp @@ -14,7 +14,9 @@ // template tuple tuple_cat(Tuples&&... tpls); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -80,6 +82,7 @@ int main(int, char**) unused(t); // Prevent unused warning } */ +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { constexpr cuda::std::tuple t1(1); constexpr cuda::std::tuple t = cuda::std::tuple_cat(t1); @@ -92,12 +95,15 @@ int main(int, char**) static_assert(cuda::std::get<1>(t) == 1, ""); } #endif +#endif +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { cuda::std::tuple t = cuda::std::tuple_cat(cuda::std::tuple(1, 2)); assert(cuda::std::get<0>(t) == 1); assert(cuda::std::get<1>(t) == 2); } +#endif // cuda::std::array not supported /* { @@ -107,12 +113,13 @@ int main(int, char**) assert(cuda::std::get<2>(t) == 0); } */ +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { cuda::std::tuple t = cuda::std::tuple_cat(cuda::std::pair(2, 1)); assert(cuda::std::get<0>(t) == 2); assert(cuda::std::get<1>(t) == 1); } - +#endif { cuda::std::tuple<> t1; cuda::std::tuple<> t2; @@ -161,6 +168,7 @@ int main(int, char**) assert(cuda::std::get<1>(t3) == 3.5); assert(cuda::std::get<2>(t3) == nullptr); } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { cuda::std::tuple t1(nullptr, 1); cuda::std::tuple t2(2, 3.5); @@ -271,5 +279,6 @@ int main(int, char**) int, const int, int&, const int&>); unused(r); } +#endif return 0; } diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const.pass.cpp index 19ca98492a..12aa6d713c 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const.pass.cpp @@ -16,7 +16,9 @@ // typename tuple_element >::type const& // get(const tuple& t); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include // cuda::std::string not supported diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.pass.cpp index ce6186f8f9..5e2e45b176 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.pass.cpp @@ -16,7 +16,9 @@ // const typename tuple_element >::type&& // get(const tuple&& t); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -64,6 +66,7 @@ int main(int, char**) static_assert(noexcept(cuda::std::get<1>(cuda::std::move(p))), ""); } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { int x = 42; int const y = 43; @@ -73,6 +76,7 @@ int main(int, char**) static_assert(cuda::std::is_same(cuda::std::move(p)))>::value, ""); static_assert(noexcept(cuda::std::get<1>(cuda::std::move(p))), ""); } +#endif #if TEST_STD_VER > 11 { diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_non_const.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_non_const.pass.cpp index 8b2ea135c8..3e03cda678 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_non_const.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_non_const.pass.cpp @@ -14,7 +14,9 @@ // typename tuple_element >::type& // get(tuple& t); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include // cuda::std::string not supported diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_rv.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_rv.pass.cpp index 5c52a6ab96..2bc15cd786 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_rv.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_rv.pass.cpp @@ -14,7 +14,9 @@ // typename tuple_element >::type&& // get(tuple&& t); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -36,10 +38,12 @@ int main(int, char**) assert(*p == 3); } */ +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { cuda::std::tuple t(3); MoveOnly _m = cuda::std::get<0>(cuda::std::move(t)); assert(_m.get() == 3); } +#endif return 0; } diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp index d3d23eaa85..e125f1d982 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp @@ -8,7 +8,9 @@ -// UNSUPPORTED: c++98, c++03, c++11 +// UNSUPPORTED: c++98, c++03, c++11 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -88,6 +90,7 @@ int main(int, char**) static_assert(noexcept(cuda::std::get(cuda::std::move(t))), ""); } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { int x = 42; int y = 43; @@ -97,7 +100,7 @@ int main(int, char**) static_assert(cuda::std::is_same(cuda::std::move(t)))>::value, ""); static_assert(noexcept(cuda::std::get(cuda::std::move(t))), ""); } - +#endif { constexpr const cuda::std::tuple t { 1, 2, 3.4, 5.6 }; static_assert(cuda::std::get(cuda::std::move(t)) == 1, ""); diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple.include.array.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple.include.array.pass.cpp index 7d8e9bfe1b..87ba904c80 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple.include.array.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple.include.array.pass.cpp @@ -19,7 +19,9 @@ // LWG #2212 says that tuple_size and tuple_element must be // available after including -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include // cuda::std::array not supported diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_element.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_element.pass.cpp index f6a5494924..f12fd0a113 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_element.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_element.pass.cpp @@ -16,7 +16,9 @@ // typedef Ti type; // }; -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size.pass.cpp index 7ade0333e1..02a42c32c0 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size.pass.cpp @@ -14,7 +14,9 @@ // class tuple_size> // : public integral_constant { }; -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp index 248b1f3ff8..e839e31a65 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp @@ -16,7 +16,9 @@ // XFAIL: gcc-4.8, gcc-4.9 -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include // cuda::std::array not supported diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.pass.cpp index 46627eb066..6e7ca4605e 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.pass.cpp @@ -6,7 +6,9 @@ // //===----------------------------------------------------------------------===// -// UNSUPPORTED: c++98, c++03, c++11, c++14 +// UNSUPPORTED: c++98, c++03, c++11, c++14 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 // diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp index ceb22788d9..959e45d01a 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp @@ -16,7 +16,9 @@ // XFAIL: gcc-4.8, gcc-4.9 -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp index 6b78c1b565..7093656368 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp @@ -14,7 +14,9 @@ // bool // operator==(const tuple& t, const tuple& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include // cuda::std::string not supported diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.rel/lt.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.rel/lt.pass.cpp index 63db889956..aba189ebbf 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.rel/lt.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.rel/lt.pass.cpp @@ -26,7 +26,9 @@ // bool // operator>=(const tuple& t, const tuple& u); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include // cuda::std::string not supported diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.special/non_member_swap.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.special/non_member_swap.pass.cpp index 3f8f8cb55a..a5a806ee0c 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.special/non_member_swap.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.special/non_member_swap.pass.cpp @@ -13,7 +13,9 @@ // template // void swap(tuple& x, tuple& y); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -29,6 +31,7 @@ int main(int, char**) T t1; swap(t0, t1); } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { typedef cuda::std::tuple T; T t0(MoveOnly(0)); @@ -59,6 +62,6 @@ int main(int, char**) assert(cuda::std::get<1>(t1) == 1); assert(cuda::std::get<2>(t1) == 2); } - +#endif return 0; } diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.swap/member_swap.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.swap/member_swap.pass.cpp index 4e26fa9eb5..2c422f8cd4 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.swap/member_swap.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.swap/member_swap.pass.cpp @@ -12,7 +12,9 @@ // void swap(tuple& rhs); -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include @@ -28,6 +30,7 @@ int main(int, char**) T t1; t0.swap(t1); } +#if !(defined(_MSC_VER) && _MSC_VER < 1916) { typedef cuda::std::tuple T; T t0(MoveOnly(0)); @@ -58,6 +61,6 @@ int main(int, char**) assert(cuda::std::get<1>(t1) == 1); assert(cuda::std::get<2>(t1) == 2); } - +#endif return 0; } diff --git a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.traits/uses_allocator.pass.cpp b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.traits/uses_allocator.pass.cpp index 31fb95f567..9d1b8f0727 100644 --- a/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.traits/uses_allocator.pass.cpp +++ b/.upstream-tests/test/std/utilities/tuple/tuple.tuple/tuple.traits/uses_allocator.pass.cpp @@ -13,7 +13,9 @@ // template // struct uses_allocator, Alloc> : true_type { }; -// UNSUPPORTED: c++98, c++03 +// UNSUPPORTED: c++98, c++03 +// Internal compiler error in 14.24 +// XFAIL: msvc-19.20, msvc-19.21, msvc-19.22, msvc-19.23, msvc-19.24, msvc-19.25 #include #include diff --git a/include/cuda/std/detail/libcxx/include/atomic b/include/cuda/std/detail/libcxx/include/atomic index bd6bdebcf9..b97738ffa6 100644 --- a/include/cuda/std/detail/libcxx/include/atomic +++ b/include/cuda/std/detail/libcxx/include/atomic @@ -1239,7 +1239,7 @@ _LIBCUDACXX_INLINE_VISIBILITY void __cxx_atomic_wait(__cxx_atomic_impl<_Tp, _Sco } // general atomic/atomic_ref -template () && !is_same<_Tp, bool>()> +template ::value && !is_same<_Tp, bool>::value> struct __atomic_base { mutable __cxx_atomic_impl<_Tp, _Sco> __a_; diff --git a/include/cuda/std/detail/libcxx/include/chrono b/include/cuda/std/detail/libcxx/include/chrono index 231a72d978..d64d57eb0e 100644 --- a/include/cuda/std/detail/libcxx/include/chrono +++ b/include/cuda/std/detail/libcxx/include/chrono @@ -1699,7 +1699,7 @@ bool operator>=(const day& __lhs, const day& __rhs) noexcept _LIBCUDACXX_INLINE_VISIBILITY inline constexpr day operator+ (const day& __lhs, const days& __rhs) noexcept -{ return day(static_cast(__lhs) + __rhs.count()); } +{ return day(static_cast(__lhs) + static_cast(__rhs.count())); } _LIBCUDACXX_INLINE_VISIBILITY inline constexpr @@ -2534,7 +2534,7 @@ year_month_day::__from_days(days __d) noexcept const unsigned __doy = __doe - (365 * __yoe + __yoe/4 - __yoe/100); // [0, 365] const unsigned __mp = (5 * __doy + 2)/153; // [0, 11] const unsigned __dy = __doy - (153 * __mp + 2)/5 + 1; // [1, 31] - const unsigned __mth = __mp + (__mp < 10 ? 3 : -9); // [1, 12] + const unsigned __mth = __mp + static_cast(__mp < 10 ? 3 : -9); // [1, 12] return year_month_day{chrono::year{__yr + (__mth <= 2)}, chrono::month{__mth}, chrono::day{__dy}}; } @@ -2553,9 +2553,10 @@ inline constexpr days year_month_day::__to_days() const noexcept const unsigned __dy = static_cast(__d); const int __era = (__yr >= 0 ? __yr : __yr - 399) / 400; - const unsigned __yoe = static_cast(__yr - __era * 400); // [0, 399] - const unsigned __doy = (153 * (__mth + (__mth > 2 ? -3 : 9)) + 2) / 5 + __dy-1; // [0, 365] - const unsigned __doe = __yoe * 365 + __yoe/4 - __yoe/100 + __doy; // [0, 146096] + const unsigned __yoe = static_cast(__yr - __era * 400); // [0, 399] + const unsigned __doy = static_cast( + (153 * (__mth + static_cast(__mth > 2 ? -3 : 9)) + 2) / 5 + __dy-1); // [0, 365] + const unsigned __doe = __yoe * 365 + __yoe/4 - __yoe/100 + __doy; // [0, 146096] return days{__era * 146097 + static_cast(__doe) - 719468}; }