diff options
author | Martin Sebor <msebor@redhat.com> | 2016-12-16 02:57:22 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2016-12-15 19:57:22 -0700 |
commit | 7bd1e2edf9a0456062dfd7cbc47b46d93239e997 (patch) | |
tree | b3a49e7547516ee5a15da0050d9f6df9b939377b /gcc/vec.h | |
parent | 2ae30b147b8e3c11058d124616301b3a3e27fdd2 (diff) | |
download | gcc-7bd1e2edf9a0456062dfd7cbc47b46d93239e997.zip gcc-7bd1e2edf9a0456062dfd7cbc47b46d93239e997.tar.gz gcc-7bd1e2edf9a0456062dfd7cbc47b46d93239e997.tar.bz2 |
PR bootstrap/78817 - stage2 bootstrap failure in vec.h:1613:5: error: argument 1 null where non-null expected after r243661
gcc/ChangeLog:
* vec.h (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Assert
a pointer is non-null.
From-SVN: r243736
Diffstat (limited to 'gcc/vec.h')
-rw-r--r-- | gcc/vec.h | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -1607,10 +1607,16 @@ inline void vec<T, va_heap, vl_ptr>::safe_grow_cleared (unsigned len MEM_STAT_DECL) { unsigned oldlen = length (); - size_t sz = sizeof (T) * (len - oldlen); - safe_grow (len PASS_MEM_STAT); - if (sz != 0) - memset (&(address ()[oldlen]), 0, sz); + gcc_checking_assert (oldlen <= len); + + if (size_t sz = sizeof (T) * (len - oldlen)) + { + safe_grow (len PASS_MEM_STAT); + + T *p = address (); + gcc_assert (p != NULL); + memset (p + oldlen, 0, sz); + } } |