diff options
| author | Marshall Clow <mclow.lists@gmail.com> | 2019-06-27 18:40:55 +0000 |
|---|---|---|
| committer | Marshall Clow <mclow.lists@gmail.com> | 2019-06-27 18:40:55 +0000 |
| commit | 954014a0fac4feb14e77eaa0b95d96f8095383b2 (patch) | |
| tree | 5f7b7a0d2eebca2fb67199532f3d8a31fbc707f4 /libcxx/test/std/utilities/optional | |
| parent | 2dcd2c2493b10d33add69b7bce2c9e3c55cb9da8 (diff) | |
| download | bcm5719-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.cpp | 12 |
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; } |

