diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 525cf7d558ef..1d5cbcdd1043 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2011-02-19 François Dumont + + * include/debug/string (basic_string::insert): Add iterator check and + pass normal iterator to normal insert. + * include/debug/macros.h (__glibcxx_check_heap, + __glibcxx_check_heap_pred): Remove __glibcxx_check_valid_range, + already done. + 2011-02-17 Paolo Carlini PR libstdc++/47776 diff --git a/libstdc++-v3/include/debug/macros.h b/libstdc++-v3/include/debug/macros.h index 1244612118c1..c90bec5cf011 100644 --- a/libstdc++-v3/include/debug/macros.h +++ b/libstdc++-v3/include/debug/macros.h @@ -286,7 +286,6 @@ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(_First, _Last, \ // Verify that the iterator range [_First, _Last) is a heap #define __glibcxx_check_heap(_First,_Last) \ -__glibcxx_check_valid_range(_First,_Last); \ _GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last), \ _M_message(__gnu_debug::__msg_not_heap) \ ._M_iterator(_First, #_First) \ @@ -295,7 +294,6 @@ _GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last), \ /** Verify that the iterator range [_First, _Last) is a heap w.r.t. the predicate _Pred. */ #define __glibcxx_check_heap_pred(_First,_Last,_Pred) \ -__glibcxx_check_valid_range(_First,_Last); \ _GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last, _Pred), \ _M_message(__gnu_debug::__msg_not_heap_pred) \ ._M_iterator(_First, #_First) \ diff --git a/libstdc++-v3/include/debug/string b/libstdc++-v3/include/debug/string index 4fe0a0686d70..fe073f21c7fd 100644 --- a/libstdc++-v3/include/debug/string +++ b/libstdc++-v3/include/debug/string @@ -514,7 +514,8 @@ namespace __gnu_debug void insert(iterator __p, std::initializer_list<_CharT> __l) { - _Base::insert(__p, __l); + __glibcxx_check_insert(__p); + _Base::insert(__p.base(), __l); this->_M_invalidate_all(); } #endif // __GXX_EXPERIMENTAL_CXX0X__