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>
This commit is contained in:
Nikos Nikoleris
2018-05-15 08:30:40 +01:00
parent 403c0158f5
commit d1c7d7b872

View File

@@ -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