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
This commit is contained in:
Richard Biener 2016-12-01 18:18:30 +00:00 committed by Prathamesh Kulkarni
parent 3c70899469
commit 1281fc9911
2 changed files with 13 additions and 2 deletions

View file

@ -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.

View file

@ -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);
}