2014-12-15 Richard Biener <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Dec 2014 14:24:06 +0000 (14:24 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Dec 2014 14:24:06 +0000 (14:24 +0000)
* vec.h (vec::safe_grow): Guard against a grow to zero size.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218749 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/vec.h

index 3e3eda6..9007563 100644 (file)
@@ -1,5 +1,9 @@
 2014-12-15  Richard Biener  <rguenther@suse.de>
 
+       * vec.h (vec::safe_grow): Guard against a grow to zero size.
+
+2014-12-15  Richard Biener  <rguenther@suse.de>
+
        PR middle-end/64295
        * match.pd (X / CST -> X * (1 / CST): Use const_binop instead of
        fold_binary to compute the constant to multiply with.
index 2e5313d..ca568ac 100644 (file)
--- a/gcc/vec.h
+++ b/gcc/vec.h
@@ -1574,7 +1574,10 @@ vec<T, va_heap, vl_ptr>::safe_grow (unsigned len MEM_STAT_DECL)
   unsigned oldlen = length ();
   gcc_checking_assert (oldlen <= len);
   reserve_exact (len - oldlen PASS_MEM_STAT);
-  m_vec->quick_grow (len);
+  if (m_vec)
+    m_vec->quick_grow (len);
+  else
+    gcc_checking_assert (len == 0);
 }