summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Nikoleris <nikos.nikoleris@arm.com>2018-05-15 08:30:40 +0100
committerNikos Nikoleris <nikos.nikoleris@arm.com>2018-05-17 14:16:24 +0000
commitd1c7d7b872a07a6c5a12e379205df21d298f044f (patch)
tree91cf76e3bd456b25fc38ac99d71cefc5d78c8f08
parent403c0158f57090dbbd4b21166887eb53b13a7fc6 (diff)
downloadgem5-d1c7d7b872a07a6c5a12e379205df21d298f044f.tar.xz
base: Add M5 flag for [[nodiscard]] attribute
This change adds the M5_NODISCARD keyword to allow use of the [[nodiscard]] attribute with compilers that support C++17. Currently, C++17 is not a requirement and therefore the M5_NODISCARD has not effect and does not break compilation for older compilers. Change-Id: Ifc5c8f34764da3c7291066dcb2ff908c97738c3d Reviewed-on: https://gem5-review.googlesource.com/10441 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Maintainer: Jason Lowe-Power <jason@lowepower.com> Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
-rw-r--r--src/base/compiler.hh10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/base/compiler.hh b/src/base/compiler.hh
index 6b0091410..4765adc36 100644
--- a/src/base/compiler.hh
+++ b/src/base/compiler.hh
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012,2017 ARM Limited
+ * Copyright (c) 2012,2017-2018 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
@@ -73,9 +73,17 @@
#else
#define M5_FALLTHROUGH
#endif
+
+ #if __has_cpp_attribute(nodiscard)
+ #define M5_NODISCARD [[nodiscard]]
+ #else
+ #define M5_NODISCARD
+ #endif
#else
// Unsupported (and no warning) on GCC < 7.
#define M5_FALLTHROUGH
+
+ #define M5_NODISCARD
#endif
// std::make_unique redefined for C++11 compilers