Bobby R. Bruce has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/45539 )

Change subject: base: Add GEM5_DEPRECATED_ENUM_VAL
......................................................................

base: Add GEM5_DEPRECATED_ENUM_VAL

This deperecation enum works exactly the same way as GEM5_DEPRECATED
but will not expand if using GCC <6, as enum value deprecation was only
introduced in GCC 6.

Change-Id: I64fcaca0d79a353da805642e021ec1cb101cfa0e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/45539
Reviewed-by: Jason Lowe-Power <[email protected]>
Reviewed-by: Daniel Carvalho <[email protected]>
Maintainer: Jason Lowe-Power <[email protected]>
Tested-by: kokoro <[email protected]>
---
M src/base/compiler.hh
M src/sim/aux_vector.hh
2 files changed, 13 insertions(+), 3 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  Daniel Carvalho: Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/base/compiler.hh b/src/base/compiler.hh
index 4ea0dbb..ba2a4bc 100644
--- a/src/base/compiler.hh
+++ b/src/base/compiler.hh
@@ -116,6 +116,16 @@
// Mark a c++ declaration as deprecated, with a message explaining what to do
 // to update to a non-deprecated alternative.
 #  define GEM5_DEPRECATED(message) [[gnu::deprecated(message)]]
+// Mark a C++ emum value as deprecated, with a message explaining what to do +// to update to a non-deprecated alternative. This wraps GEM5_DEPRECATED but
+// is guarded by a preprocessor if directive to ensure it is not included
+// when compiled in GCC < 6, as deprecation of enum values was introduced in
+// GCC 6. All supported clang compilers allow enum value deprecation.
+#  if defined(__clang__) || __GNUC__ >= 6
+#    define GEM5_DEPRECATED_ENUM_VAL(message) GEM5_DEPRECATED(message)
+#  else
+#    define GEM5_DEPRECATED_ENUM_VAL(message)
+#  endif
 // Mark an expression-like macro as deprecated by wrapping it in some code
 // which declares and uses a deprecated variable with the same name as the
// macro. The wrapping macro evaluates to the same thing as the original macro.
diff --git a/src/sim/aux_vector.hh b/src/sim/aux_vector.hh
index 55a4a05..30b7777 100644
--- a/src/sim/aux_vector.hh
+++ b/src/sim/aux_vector.hh
@@ -98,8 +98,8 @@
 } // namespace gem5

 #define GEM5_DEPRECATE_AT(NAME, name) M5_AT_##NAME \
-    GEM5_DEPRECATED("Replace M5_AT_" #NAME " with gem5::auxv::" #name) = \
-    gem5::auxv::name
+    GEM5_DEPRECATED_ENUM_VAL(\
+ "Replace M5_AT_" #NAME " with gem5::auxv::" #name) = gem5::auxv::name

 enum AuxiliaryVectorType
 {
@@ -122,7 +122,7 @@
     GEM5_DEPRECATE_AT(HWCAP, Hwcap),
     GEM5_DEPRECATE_AT(CLKTCK, Clktck),
     GEM5_DEPRECATE_AT(SECURE, Secure),
-    M5_BASE_PLATFORM GEM5_DEPRECATED(
+    M5_BASE_PLATFORM GEM5_DEPRECATED_ENUM_VAL(
             "Replace M5_BASE_PLATFORM with gem5::auxv::BasePlatform") =
         gem5::auxv::BasePlatform,
     GEM5_DEPRECATE_AT(RANDOM, Random),

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/45539
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I64fcaca0d79a353da805642e021ec1cb101cfa0e
Gerrit-Change-Number: 45539
Gerrit-PatchSet: 3
Gerrit-Owner: Bobby R. Bruce <[email protected]>
Gerrit-Reviewer: Bobby R. Bruce <[email protected]>
Gerrit-Reviewer: Daniel Carvalho <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-CC: Gabe Black <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to