[libcxx] r203610 - Fix ABI break I made in r203587; thanks to Richard Smith for the catch.
Marshall Clow
mclow.lists at gmail.com
Tue Mar 11 15:05:32 PDT 2014
Author: marshall
Date: Tue Mar 11 17:05:31 2014
New Revision: 203610
URL: http://llvm.org/viewvc/llvm-project?rev=203610&view=rev
Log:
Fix ABI break I made in r203587; thanks to Richard Smith for the catch.
Modified:
libcxx/trunk/include/iterator
Modified: libcxx/trunk/include/iterator
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/iterator?rev=203610&r1=203609&r2=203610&view=diff
==============================================================================
--- libcxx/trunk/include/iterator (original)
+++ libcxx/trunk/include/iterator Tue Mar 11 17:05:31 2014
@@ -538,16 +538,18 @@ class _LIBCPP_TYPE_VIS_ONLY reverse_iter
{
protected:
_Iter current;
+private:
+ mutable _Iter __t; // no longer used as of LWG #2360, not removed due to ABI break
public:
typedef _Iter iterator_type;
typedef typename iterator_traits<_Iter>::difference_type difference_type;
typedef typename iterator_traits<_Iter>::reference reference;
typedef typename iterator_traits<_Iter>::pointer pointer;
- _LIBCPP_INLINE_VISIBILITY reverse_iterator() : current() {}
- _LIBCPP_INLINE_VISIBILITY explicit reverse_iterator(_Iter __x) : current(__x) {}
+ _LIBCPP_INLINE_VISIBILITY reverse_iterator() : current(), __t() {}
+ _LIBCPP_INLINE_VISIBILITY explicit reverse_iterator(_Iter __x) : current(__x), __t() {}
template <class _Up> _LIBCPP_INLINE_VISIBILITY reverse_iterator(const reverse_iterator<_Up>& __u)
- : current(__u.base()) {}
+ : current(__u.base()), __t() {}
_LIBCPP_INLINE_VISIBILITY _Iter base() const {return current;}
_LIBCPP_INLINE_VISIBILITY reference operator*() const {_Iter __tmp = current; return *--__tmp;}
_LIBCPP_INLINE_VISIBILITY pointer operator->() const {return _VSTD::addressof(operator*());}
More information about the cfe-commits
mailing list