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 | |
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
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/vec.h | 8 |
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6768c5f..b567324 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +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. + 2016-12-01 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2. @@ -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); } |