From c543b18ae2c9dace399e8e5d0b710353de7371b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Dumont?= Date: Sat, 19 Feb 2011 21:51:43 +0100 Subject: [PATCH] string (basic_string::insert): Add iterator check and pass normal iterator to normal insert. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. From-SVN: r170322 --- libstdc++-v3/ChangeLog | 8 ++++++++ libstdc++-v3/include/debug/macros.h | 2 -- libstdc++-v3/include/debug/string | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) 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__