From d1c7d7b872a07a6c5a12e379205df21d298f044f Mon Sep 17 00:00:00 2001 From: Nikos Nikoleris Date: Tue, 15 May 2018 08:30:40 +0100 Subject: 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 Reviewed-by: Anthony Gutierrez Maintainer: Jason Lowe-Power Maintainer: Anthony Gutierrez --- src/base/compiler.hh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3