Author: hhinnant
Date: Sun Aug  5 16:43:11 2012
New Revision: 161309

URL: http://llvm.org/viewvc/llvm-project?rev=161309&view=rev
Log:
std::equal operating on non-const __bit_iterators was not working.  This fixes 
it.

Modified:
    libcxx/trunk/include/__bit_reference

Modified: libcxx/trunk/include/__bit_reference
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__bit_reference?rev=161309&r1=161308&r2=161309&view=diff
==============================================================================
--- libcxx/trunk/include/__bit_reference (original)
+++ libcxx/trunk/include/__bit_reference Sun Aug  5 16:43:11 2012
@@ -927,12 +927,12 @@
 
 // equal
 
-template <class _Cp>
+template <class _Cp, bool _IC1, bool _IC2>
 bool
-__equal_unaligned(__bit_iterator<_Cp, true> __first1, __bit_iterator<_Cp, 
true> __last1,
-                  __bit_iterator<_Cp, true> __first2)
+__equal_unaligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, 
_IC1> __last1,
+                  __bit_iterator<_Cp, _IC2> __first2)
 {
-    typedef __bit_iterator<_Cp, true> _It;
+    typedef __bit_iterator<_Cp, _IC1> _It;
     typedef  typename _It::difference_type difference_type;
     typedef typename _It::__storage_type __storage_type;
     static const unsigned __bits_per_word = _It::__bits_per_word;
@@ -1009,12 +1009,12 @@
     return true;
 }
 
-template <class _Cp>
+template <class _Cp, bool _IC1, bool _IC2>
 bool
-__equal_aligned(__bit_iterator<_Cp, true> __first1, __bit_iterator<_Cp, true> 
__last1,
-                __bit_iterator<_Cp, true> __first2)
+__equal_aligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> 
__last1,
+                __bit_iterator<_Cp, _IC2> __first2)
 {
-    typedef __bit_iterator<_Cp, true> _It;
+    typedef __bit_iterator<_Cp, _IC1> _It;
     typedef  typename _It::difference_type difference_type;
     typedef typename _It::__storage_type __storage_type;
     static const unsigned __bits_per_word = _It::__bits_per_word;
@@ -1234,12 +1234,12 @@
     template <class _Dp> friend __bit_iterator<_Dp, false> 
rotate(__bit_iterator<_Dp, false>,
                                                                 
__bit_iterator<_Dp, false>,
                                                                 
__bit_iterator<_Dp, false>);
-    template <class _Dp> friend bool __equal_aligned(__bit_iterator<_Dp, true>,
-                                                    __bit_iterator<_Dp, true>,
-                                                    __bit_iterator<_Dp, true>);
-    template <class _Dp> friend bool __equal_unaligned(__bit_iterator<_Dp, 
true>,
-                                                      __bit_iterator<_Dp, 
true>,
-                                                      __bit_iterator<_Dp, 
true>);
+    template <class _Dp, bool _IC1, bool _IC2> friend bool 
__equal_aligned(__bit_iterator<_Dp, _IC1>,
+                                                    __bit_iterator<_Dp, _IC1>,
+                                                    __bit_iterator<_Dp, _IC2>);
+    template <class _Dp, bool _IC1, bool _IC2> friend bool 
__equal_unaligned(__bit_iterator<_Dp, _IC1>,
+                                                      __bit_iterator<_Dp, 
_IC1>,
+                                                      __bit_iterator<_Dp, 
_IC2>);
     template <class _Dp, bool _IC1, bool _IC2> friend bool 
equal(__bit_iterator<_Dp, _IC1>,
                                                                 
__bit_iterator<_Dp, _IC1>,
                                                                 
__bit_iterator<_Dp, _IC2>);


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to