diff options
6 files changed, 29 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp index 18efd10a30b..68111c0c13b 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp @@ -69,6 +69,11 @@ void test_implicit() static_assert(implicit_conversion<long double>(3.14, 3.14), ""); } { + int x = 42; + optional<void* const> o(&x); + assert(*o == &x); + } + { using T = TrivialTestTypes::TestType; static_assert(implicit_conversion<T>(42, 42), ""); } diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp index 3f98d907890..34a12b8ad1c 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp @@ -53,6 +53,11 @@ int main() } { + const int x = 42; + optional<const int> o(x); + assert(*o == x); + } + { typedef TestTypes::TestType T; T::reset(); const T t(3); diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp index d2b704c95f2..5906d4edd11 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp @@ -109,6 +109,11 @@ int main() test<int>(); test<int>(3); { + const optional<const int> o(42); + optional<const int> o2(o); + assert(*o2 == 42); + } + { using T = TestTypes::TestType; T::reset(); const optional<T> rhs; diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp index 3cc456f850c..d0823d2c8c8 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp @@ -75,6 +75,10 @@ int main() } { + optional<const int> opt(in_place, 5); + assert(*opt == 5); + } + { const optional<X> opt(in_place); assert(static_cast<bool>(opt) == true); assert(*opt == X()); diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp index 5a4929c5373..bff6f5bf8f6 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp @@ -137,6 +137,11 @@ int main() test<int>(); test<int>(3); { + optional<const int> o(42); + optional<const int> o2(std::move(o)); + assert(*o2 == 42); + } + { using T = TestTypes::TestType; T::reset(); optional<T> rhs; diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp index 496661d922a..eee749d0170 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp @@ -59,6 +59,11 @@ int main() }; } { + const int x = 42; + optional<const int> o(std::move(x)); + assert(*o == 42); + } + { typedef TestTypes::TestType T; T::reset(); optional<T> opt = T{3}; |