diff options
author | Howard Hinnant <hhinnant@apple.com> | 2013-08-01 00:41:55 +0000 |
---|---|---|
committer | Howard Hinnant <hhinnant@apple.com> | 2013-08-01 00:41:55 +0000 |
commit | ce075cf1aa28c5cb09d48f3bcbc6dcb44ed08548 (patch) | |
tree | b7f7243a7b9ed743fe77ece132ba16f01e34e8ab /libcxx | |
parent | 03cd107364e95739f039b40b920cbaa215282956 (diff) | |
download | bcm5719-llvm-ce075cf1aa28c5cb09d48f3bcbc6dcb44ed08548.tar.gz bcm5719-llvm-ce075cf1aa28c5cb09d48f3bcbc6dcb44ed08548.zip |
Constrain fill_n -> memset operations to include implicit convertibility to unsigned char. This fixes http://llvm.org/bugs/show_bug.cgi?id=16764. Also a drive-by fix on a chrono test suite bug.
llvm-svn: 187552
Diffstat (limited to 'libcxx')
-rw-r--r-- | libcxx/include/algorithm | 1 | ||||
-rw-r--r-- | libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm index 19d016fb7d5..119fbbbbac4 100644 --- a/libcxx/include/algorithm +++ b/libcxx/include/algorithm @@ -2012,6 +2012,7 @@ fill_n(_OutputIterator __first, _Size __n, const _Tp& __value_) return _VSTD::__fill_n(__first, __n, __value_, integral_constant<bool, is_pointer<_OutputIterator>::value && is_trivially_assignable<typename remove_pointer<_OutputIterator>::type, _Tp>::value && + is_convertible<_Tp, unsigned char>::value && sizeof(typename remove_pointer<_OutputIterator>::type) == 1>()); } diff --git a/libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp b/libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp index 837f4372122..c52990961c2 100644 --- a/libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp +++ b/libcxx/test/utilities/time/time.duration/time.duration.cons/default.pass.cpp @@ -27,7 +27,7 @@ test() D d; assert(d.count() == typename D::rep()); #ifndef _LIBCPP_HAS_NO_CONSTEXPR - constexpr D d2; + constexpr D d2 = D(); static_assert(d2.count() == typename D::rep(), ""); #endif } |