diff options
author | dim <dim@FreeBSD.org> | 2012-06-01 06:55:01 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-06-01 06:55:01 +0000 |
commit | 1728b56bf338725a030b3380a7fe7c45a9c158b0 (patch) | |
tree | bebeea14202739be50c83672417f24041a2c04bc /contrib/libc++ | |
parent | 37d863747e7d834334cf5f938b385fa9f61f0c06 (diff) | |
download | FreeBSD-src-1728b56bf338725a030b3380a7fe7c45a9c158b0.zip FreeBSD-src-1728b56bf338725a030b3380a7fe7c45a9c158b0.tar.gz |
Fix dangling else in libc++'s __bit_reference header. This has also
been sent upstream.
MFC after: 3 days
Diffstat (limited to 'contrib/libc++')
-rw-r--r-- | contrib/libc++/include/__bit_reference | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/contrib/libc++/include/__bit_reference b/contrib/libc++/include/__bit_reference index 906b9da..48538a2 100644 --- a/contrib/libc++/include/__bit_reference +++ b/contrib/libc++/include/__bit_reference @@ -950,11 +950,15 @@ __equal_unaligned(__bit_iterator<_Cp, true> __first1, __bit_iterator<_Cp, true> __storage_type __ddn = _VSTD::min<__storage_type>(__dn, __clz_r); __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn)); if (__first2.__ctz_ > __first1.__ctz_) + { if ((*__first2.__seg_ & __m) != (__b << (__first2.__ctz_ - __first1.__ctz_))) return false; + } else + { if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ - __first2.__ctz_))) return false; + } __first2.__seg_ += (__ddn + __first2.__ctz_) / __bits_per_word; __first2.__ctz_ = static_cast<unsigned>((__ddn + __first2.__ctz_) % __bits_per_word); __dn -= __ddn; |