base: Fix unitialized storage
The bitunion is not being initialized on constructor to avoid performance overhead, and that generated a maybe-unitialized error when a sub-class was being copied before assigned in serialize's parseParam() in some compilers. This patch adds zero-initialization to the problematic variable to appease the compiler. Change-Id: I90fa6aa356b3e14ec25e3294b17ed10f429a9a38 Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/15635 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
committed by
Daniel Carvalho
parent
5dda7fb959
commit
2c9f7ebca5
@@ -289,7 +289,8 @@ template <class T>
|
||||
bool
|
||||
parseParam(const std::string &s, BitUnionType<T> &value)
|
||||
{
|
||||
auto storage = static_cast<BitUnionBaseType<T>>(value);
|
||||
// Zero initialize storage to avoid leaking an uninitialized value
|
||||
BitUnionBaseType<T> storage = BitUnionBaseType<T>();
|
||||
auto res = to_number(s, storage);
|
||||
value = storage;
|
||||
return res;
|
||||
|
||||
Reference in New Issue
Block a user