diff options
Diffstat (limited to 'libcxx/test/std/utilities/utility')
6 files changed, 10 insertions, 97 deletions
diff --git a/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp index 903aa935583..d70d060deb0 100644 --- a/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp @@ -12,7 +12,7 @@ // template <class T1, class T2> struct pair -// struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; +// struct piecewise_construct_t { }; // constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); #include <utility> diff --git a/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp deleted file mode 100644 index b8dd28a5764..00000000000 --- a/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp +++ /dev/null @@ -1,29 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++98, c++03 - -// Before GCC 6, aggregate initialization kicks in. -// See https://stackoverflow.com/q/41799015/627587. -// UNSUPPORTED: gcc-5 - -// <utility> - -// struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; -// constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); - -// This test checks for LWG 2510. - -#include <utility> - - -std::piecewise_construct_t f() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}} - -int main(int, char**) { - return 0; -} diff --git a/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.pass.cpp deleted file mode 100644 index 0fdba067487..00000000000 --- a/libcxx/test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.pass.cpp +++ /dev/null @@ -1,24 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++98, c++03 - -// <utility> - -// struct piecewise_construct_t { explicit piecewise_construct_t() = default; }; -// constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); - -#include <utility> - - -int main(int, char**) { - std::piecewise_construct_t x = std::piecewise_construct; - (void)x; - - return 0; -} diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp deleted file mode 100644 index 511f21ec301..00000000000 --- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp +++ /dev/null @@ -1,42 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// UNSUPPORTED: c++98, c++03 - -// Before GCC 6, aggregate initialization kicks in. -// See https://stackoverflow.com/q/41799015/627587. -// UNSUPPORTED: gcc-5 - -// <utility> - -// template <class T1, class T2> struct pair - -// explicit(see-below) constexpr pair(); - -// This test checks the conditional explicitness of std::pair's default -// constructor as introduced by the resolution of LWG 2510. - -#include <utility> - - -struct ImplicitlyDefaultConstructible { - ImplicitlyDefaultConstructible() = default; -}; - -struct ExplicitlyDefaultConstructible { - explicit ExplicitlyDefaultConstructible() = default; -}; - -std::pair<ImplicitlyDefaultConstructible, ExplicitlyDefaultConstructible> test1() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}} -std::pair<ExplicitlyDefaultConstructible, ImplicitlyDefaultConstructible> test2() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}} -std::pair<ExplicitlyDefaultConstructible, ExplicitlyDefaultConstructible> test3() { return {}; } // expected-error 1 {{chosen constructor is explicit in copy-initialization}} -std::pair<ImplicitlyDefaultConstructible, ImplicitlyDefaultConstructible> test4() { return {}; } - -int main(int, char**) { - return 0; -} diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp index d214972058c..de3730ef3cb 100644 --- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp @@ -10,7 +10,12 @@ // template <class T1, class T2> struct pair -// explicit(see-below) constexpr pair(); +// constexpr pair(); + +// This test doesn't pass due to a constexpr bug in GCC 4.9 that fails +// to initialize any type without a user provided constructor in a constant +// expression (e.g. float). +// XFAIL: gcc-4.9 // NOTE: The SFINAE on the default constructor is tested in // default-sfinae.pass.cpp diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp index be7c0a8a8be..6841f286553 100644 --- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp @@ -13,6 +13,9 @@ // pair(pair const&) = default; // pair(pair&&) = default; +// Doesn't pass due to use of is_trivially_* trait. +// XFAIL: gcc-4.9 + #include <utility> #include <cassert> |