summaryrefslogtreecommitdiff
path: root/src/dev
diff options
context:
space:
mode:
authorMaurice Becker <madnaurice@googlemail.com>2018-09-18 10:14:24 +0200
committerMaurice Becker <madnaurice@googlemail.com>2018-09-18 16:57:56 +0000
commitb3ef93166f76b3f76fe5254322d3fcb0f5e4b559 (patch)
tree6a8caf6d82555729132f2cc8e22cb1e7c6f5b707 /src/dev
parent95143897fc9894241c663982496578b67a238be7 (diff)
downloadgem5-b3ef93166f76b3f76fe5254322d3fcb0f5e4b559.tar.xz
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 <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>
Diffstat (limited to 'src/dev')
-rw-r--r--src/dev/arm/ufs_device.cc2
-rw-r--r--src/dev/arm/ufs_device.hh4
2 files changed, 5 insertions, 1 deletions
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<void*>(this), 0, sizeof(*this));
+ }
+
uint8_t status;
uint32_t msgSize;
uint8_t LUN;