diff options
author | Richard Biener <rguenther@suse.de> | 2016-12-01 18:18:30 +0000 |
---|---|---|
committer | Prathamesh Kulkarni <prathamesh3492@gcc.gnu.org> | 2016-12-01 18:18:30 +0000 |
commit | 1281fc99115392eb3f19f5e0a5c9b604fc72b27a (patch) | |
tree | b529cabd7b70f4f846b3baebc55b5aa08d7b5bef /gcc/vec.h | |
parent | 3c7089946936a3e420f0e5db83212f15e0a7027a (diff) | |
download | gcc-1281fc99115392eb3f19f5e0a5c9b604fc72b27a.zip gcc-1281fc99115392eb3f19f5e0a5c9b604fc72b27a.tar.gz gcc-1281fc99115392eb3f19f5e0a5c9b604fc72b27a.tar.bz2 |
vec.h (vec<T, [...]): Guard call to memset if len-oldlen != 0.
2016-12-01 Richard Biener <rguenther@suse.de>
Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
* vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to
memset if len-oldlen != 0.
(vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise.
Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
From-SVN: r243125
Diffstat (limited to 'gcc/vec.h')
-rw-r--r-- | gcc/vec.h | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -1092,8 +1092,10 @@ inline void vec<T, A, vl_embed>::quick_grow_cleared (unsigned len) { unsigned oldlen = length (); + size_t sz = sizeof (T) * (len - oldlen); quick_grow (len); - memset (&(address ()[oldlen]), 0, sizeof (T) * (len - oldlen)); + if (sz != 0) + memset (&(address ()[oldlen]), 0, sz); } @@ -1605,8 +1607,10 @@ 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); - memset (&(address ()[oldlen]), 0, sizeof (T) * (len - oldlen)); + if (sz != 0) + memset (&(address ()[oldlen]), 0, sz); } |