From GCC 8.1 on GCC issues a warning when using memset et al on structs and
classes. With the way gem5 builds, this actually prevents successful
builds.
Instead of using a pointer with SCSIReply as type, we cast to a void
pointer to avoid the message. On the way we wrap the memset call into a
method of SCSIReply called reset for better code readability.
Signed-off-by: Maurice Becker <madnaurice@googlemail.com>
Change-Id: I3ed3fd9714be5d253aba01ca00b1863e1ae5cb68
Reviewed-on: https://gem5-review.googlesource.com/12685
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
UFSHostDevice::UFSSCSIDevice::SCSICMDHandle(uint32_t* SCSI_msg)
{
struct SCSIReply scsi_out;
- memset(&scsi_out, 0, sizeof(struct SCSIReply));
+ scsi_out.reset();
/**
* Create the standard SCSI reponse information
* build a SCSI reply.
*/
struct SCSIReply {
+ void reset() {
+ memset(static_cast<void*>(this), 0, sizeof(*this));
+ }
+
uint8_t status;
uint32_t msgSize;
uint8_t LUN;