systemc: Turn some macros into enums to fix regression test building.
authorGabe Black <gabeblack@google.com>
Thu, 14 Jun 2018 01:25:04 +0000 (18:25 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 15 Aug 2018 01:35:25 +0000 (01:35 +0000)
The spec defines these constants to be macros, but the regression test
refers to them using the sc_core namespace. That breaks things because
the macros don't expand to an identifier, they expand to an expression.

This change converts the macros into enums like in the Accellera
implementation to get the regression tests to build.

Change-Id: I3db7dc87a7a597907df658624a7343bc6ca1734e
Reviewed-on: https://gem5-review.googlesource.com/11180
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/ext/utils/sc_report_handler.hh

index 7347e5f4ae1eef387d6e657b4dde2202e0ad3101..d0eea77df8d07a922eda2e0074a4ebb452b1a239 100644 (file)
@@ -47,19 +47,17 @@ enum
     SC_CACHE_REPORT = 0x0010,
     SC_INTERRUPT = 0x0020,
     SC_STOP = 0x0040,
-    SC_ABORT = 0x0080
+    SC_ABORT = 0x0080,
+
+    // The spec says these should be macros, but that breaks the build for the
+    // regression tests since they refer to, for instance,
+    // sc_core::SC_DEFAULT_INFO_ACTIONS.
+    SC_DEFAULT_INFO_ACTIONS = SC_LOG | SC_DISPLAY,
+    SC_DEFAULT_WARNING_ACTIONS = SC_LOG | SC_DISPLAY,
+    SC_DEFAULT_ERROR_ACTIONS = SC_LOG | SC_CACHE_REPORT | SC_THROW,
+    SC_DEFAULT_FATAL_ACTIONS = SC_LOG | SC_DISPLAY | SC_CACHE_REPORT | SC_ABORT
 };
 
-#define SC_DEFAULT_INFO_ACTIONS \
-        (::sc_core::SC_LOG | ::sc_core::SC_DISPLAY)
-#define SC_DEFAULT_WARNING_ACTIONS \
-        (::sc_core::SC_LOG | ::sc_core::SC_DISPLAY)
-#define SC_DEFAULT_ERROR_ACTIONS \
-        (::sc_core::SC_LOG | ::sc_core::SC_CACHE_REPORT | ::sc_core::SC_THROW)
-#define SC_DEFAULT_FATAL_ACTIONS \
-        (::sc_core::SC_LOG | ::sc_core::SC_DISPLAY | \
-         ::sc_core::SC_CACHE_REPORT | ::sc_core::SC_ABORT)
-
 typedef void (*sc_report_handler_proc)(const sc_report &, const sc_actions &);
 
 class sc_report_handler