summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/optional
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2019-06-27 18:40:55 +0000
committerMarshall Clow <mclow.lists@gmail.com>2019-06-27 18:40:55 +0000
commit954014a0fac4feb14e77eaa0b95d96f8095383b2 (patch)
tree5f7b7a0d2eebca2fb67199532f3d8a31fbc707f4 /libcxx/test/std/utilities/optional
parent2dcd2c2493b10d33add69b7bce2c9e3c55cb9da8 (diff)
downloadbcm5719-llvm-954014a0fac4feb14e77eaa0b95d96f8095383b2.tar.gz
bcm5719-llvm-954014a0fac4feb14e77eaa0b95d96f8095383b2.zip
Add a missing '__uncvref_t' to the SFINAE constraints for optional's assignment operator. Fixes PR38638. Thanks to Jonathan Wakely for the report
llvm-svn: 364574
Diffstat (limited to 'libcxx/test/std/utilities/optional')
-rw-r--r--libcxx/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp
index 8d2a8a00c94..3dd28ace26f 100644
--- a/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp
+++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp
@@ -241,6 +241,16 @@ enum MyEnum { Zero, One, Two, Three, FortyTwo = 42 };
using Fn = void(*)();
+// https://bugs.llvm.org/show_bug.cgi?id=38638
+template <class T>
+constexpr T pr38638(T v)
+{
+ std::optional<T> o;
+ o = v;
+ return *o + 2;
+}
+
+
int main(int, char**)
{
test_sfinae();
@@ -269,5 +279,7 @@ int main(int, char**)
}
test_throws();
+ static_assert(pr38638(3) == 5, "");
+
return 0;
}
OpenPOWER on IntegriCloud