From b3ef93166f76b3f76fe5254322d3fcb0f5e4b559 Mon Sep 17 00:00:00 2001 From: Maurice Becker Date: Tue, 18 Sep 2018 10:14:24 +0200 Subject: [PATCH] dev, arm: fix error class-memaccess with GCC >= 8.1 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 Change-Id: I3ed3fd9714be5d253aba01ca00b1863e1ae5cb68 Reviewed-on: https://gem5-review.googlesource.com/12685 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power --- src/dev/arm/ufs_device.cc | 2 +- src/dev/arm/ufs_device.hh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dev/arm/ufs_device.cc b/src/dev/arm/ufs_device.cc index cd1bbcafb..137ad8c27 100644 --- a/src/dev/arm/ufs_device.cc +++ b/src/dev/arm/ufs_device.cc @@ -161,7 +161,7 @@ struct UFSHostDevice::SCSIReply 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 diff --git a/src/dev/arm/ufs_device.hh b/src/dev/arm/ufs_device.hh index 69abc2741..97b9693ce 100644 --- a/src/dev/arm/ufs_device.hh +++ b/src/dev/arm/ufs_device.hh @@ -373,6 +373,10 @@ class UFSHostDevice : public DmaDevice * build a SCSI reply. */ struct SCSIReply { + void reset() { + memset(static_cast(this), 0, sizeof(*this)); + } + uint8_t status; uint32_t msgSize; uint8_t LUN; -- 2.30.2