aboutsummaryrefslogtreecommitdiff
path: root/test/std/utilities
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-02-11 13:25:42 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-02-11 13:25:42 +0000
commite392b74caad5d93946653d4656f1b354fa0ef713 (patch)
tree0432181d8ae0e410bfb961f7d0a14a6b60b68b6c /test/std/utilities
parent7c24d4db412189cf83de2bb328543564c8ad9224 (diff)
Notes
Diffstat (limited to 'test/std/utilities')
-rw-r--r--test/std/utilities/optional/optional.bad_optional_access/derive.pass.cpp6
-rw-r--r--test/std/utilities/variant/variant.visit/visit.pass.cpp11
2 files changed, 14 insertions, 3 deletions
diff --git a/test/std/utilities/optional/optional.bad_optional_access/derive.pass.cpp b/test/std/utilities/optional/optional.bad_optional_access/derive.pass.cpp
index 85e36d2c107d..d96f70bb7ba4 100644
--- a/test/std/utilities/optional/optional.bad_optional_access/derive.pass.cpp
+++ b/test/std/utilities/optional/optional.bad_optional_access/derive.pass.cpp
@@ -11,7 +11,7 @@
// <optional>
-// class bad_optional_access : public logic_error
+// class bad_optional_access : public exception
#include <optional>
#include <type_traits>
@@ -20,6 +20,6 @@ int main()
{
using std::bad_optional_access;
- static_assert(std::is_base_of<std::logic_error, bad_optional_access>::value, "");
- static_assert(std::is_convertible<bad_optional_access*, std::logic_error*>::value, "");
+ static_assert(std::is_base_of<std::exception, bad_optional_access>::value, "");
+ static_assert(std::is_convertible<bad_optional_access*, std::exception*>::value, "");
}
diff --git a/test/std/utilities/variant/variant.visit/visit.pass.cpp b/test/std/utilities/variant/variant.visit/visit.pass.cpp
index 46d225883ae9..408a65c0903f 100644
--- a/test/std/utilities/variant/variant.visit/visit.pass.cpp
+++ b/test/std/utilities/variant/variant.visit/visit.pass.cpp
@@ -283,9 +283,20 @@ void test_exceptions() {
#endif
}
+// See http://llvm.org/PR31916
+void test_caller_accepts_nonconst() {
+ struct A {};
+ struct Visitor {
+ void operator()(A&) {}
+ };
+ std::variant<A> v;
+ std::visit(Visitor{}, v);
+}
+
int main() {
test_call_operator_forwarding();
test_argument_forwarding();
test_constexpr();
test_exceptions();
+ test_caller_accepts_nonconst();
}