aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-12-15 14:24:06 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-12-15 14:24:06 +0000
commit27a7de71c70787a522bd0706dbcbe95311bde552 (patch)
tree372fd7198a3addca864a82b66c96926244e5e089
parent249700b5f180c66cab7ea3914db89ac77c6e1e25 (diff)
downloadgcc-27a7de71c70787a522bd0706dbcbe95311bde552.zip
gcc-27a7de71c70787a522bd0706dbcbe95311bde552.tar.gz
gcc-27a7de71c70787a522bd0706dbcbe95311bde552.tar.bz2
vec.h (vec::safe_grow): Guard against a grow to zero size.
2014-12-15 Richard Biener <rguenther@suse.de> * vec.h (vec::safe_grow): Guard against a grow to zero size. From-SVN: r218749
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/vec.h5
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3e3eda6..9007563 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/vec.h b/gcc/vec.h
index 2e5313dd1..ca568ac 100644
--- 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);
}