This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: empty range in pop_heap


On 2011.12.03 at 15:35 +0000, Jonathan Wakely wrote:
> On 12 November 2011 15:14, Jonathan Wakely wrote:
> > On 12 November 2011 15:04, Marc Glisse wrote:
> >>
> >> Debug-mode seems to check that first,last is a valid range, is a heap, but
> >> not that it is not empty. Maybe it could?
> >
> > Good idea, thanks. ?I'll change that.
> 
> As promised.
> 
>         * include/debug/macros.h (__glibcxx_check_non_empty_range): Define.
>         * include/debug/debug.h (__glibcxx_requires_non_empty_range): Define.
>         * include/debug/formatter.h (__msg_non_empty_range): Add.
>         * src/debug.cc: Message text for __msg_non_empty_range.
>         * include/bits/stl_heap.h (pop_heap): Check for non-empty range.
>         * testsuite/25_algorithms/pop_heap/empty_neg.cc: New.
> 
> Tested x86_64-linux, committed to trunk.

Thanks Jonathan.

You forgot to change the second one with the comparison functor.

diff --git a/libstdc++-v3/include/bits/stl_heap.h b/libstdc++-v3/include/bits/stl_heap.h
index ed7750c..af62525 100644
--- a/libstdc++-v3/include/bits/stl_heap.h
+++ b/libstdc++-v3/include/bits/stl_heap.h
@@ -360,6 +360,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       // concept requirements
       __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
 	    _RandomAccessIterator>)
+      __glibcxx_requires_non_empty_range(__first, __last);
       __glibcxx_requires_valid_range(__first, __last);
       __glibcxx_requires_heap_pred(__first, __last, __comp);
 

-- 
Markus


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]