Workaround bogus warning in fibonacci_heap<K,V>::consolidate.
authorJan Hubicka <jh@suse.cz>
Wed, 20 Nov 2019 15:45:53 +0000 (16:45 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 20 Nov 2019 15:45:53 +0000 (15:45 +0000)
* fibonacci_heap.h (fibonacci_heap<K,V>::consolidate): Turn auto_vec
to ordinary array.

From-SVN: r278504

gcc/ChangeLog
gcc/fibonacci_heap.h

index 6eb037f7d453f3bdb9d7dced376b1e8b6ef12fd1..7ba36985c4354492b580970a54e0a63bb06f3d0a 100644 (file)
@@ -1,3 +1,8 @@
+2019-11-20  Jan Hubicka  <jh@suse.cz>
+
+       * fibonacci_heap.h (fibonacci_heap<K,V>::consolidate): Turn auto_vec
+       to ordinary array.
+
 2019-11-20  Jan Hubicka  <jh@suse.cz>
 
        * fibonacci_heap.h (fibonacci_heap<K,V>::fibonacci_heap):
index 9961648d505ae99e13c94c14ef05fc6d9f2fd00a..ebd1a8bdafd6c26193650c49e38e1af694ff4ae4 100644 (file)
@@ -648,17 +648,18 @@ template<class K, class V>
 void fibonacci_heap<K,V>::consolidate ()
 {
   const int D = 1 + 8 * sizeof (long);
-  auto_vec<fibonacci_node<K,V> *, D> a;
+  fibonacci_node<K,V> *a[D];
   fibonacci_node<K,V> *w, *x, *y;
   int i, d;
 
-  a.quick_grow_cleared (D);
+  memset (a, 0, sizeof (a));
 
   while ((w = m_root) != NULL)
     {
       x = w;
       remove_root (w);
       d = x->m_degree;
+      gcc_checking_assert (d < D);
       while (a[d] != NULL)
        {
          y = a[d];