http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57010



Paolo Carlini <paolo.carlini at oracle dot com> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|UNCONFIRMED                 |ASSIGNED

   Last reconfirmed|                            |2013-04-20

         AssignedTo|unassigned at gcc dot       |paolo.carlini at oracle dot

                   |gnu.org                     |com

     Ever Confirmed|0                           |1



--- Comment #2 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-04-20 
10:15:59 UTC ---

Mine. I'm testing something like this:



Index: stl_heap.h

===================================================================

--- stl_heap.h    (revision 198008)

+++ stl_heap.h    (working copy)

@@ -291,8 +291,11 @@

       __glibcxx_requires_valid_range(__first, __last);

       __glibcxx_requires_heap(__first, __last);



-      --__last;

-      std::__pop_heap(__first, __last, __last);

+      if (__last - __first > 1)

+    {

+      --__last;

+      std::__pop_heap(__first, __last, __last);

+    }

     }



   template<typename _RandomAccessIterator, typename _Distance,

@@ -363,8 +366,11 @@

       __glibcxx_requires_non_empty_range(__first, __last);

       __glibcxx_requires_heap_pred(__first, __last, __comp);



-      --__last;

-      std::__pop_heap(__first, __last, __last, __comp);

+      if (__last - __first > 1)

+    {

+      --__last;

+      std::__pop_heap(__first, __last, __last, __comp);

+    }

     }



   /**

Reply via email to