summaryrefslogtreecommitdiff
path: root/src/systemc/utils/sc_report_handler.cc
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-11-06 17:48:58 -0800
committerGabe Black <gabeblack@google.com>2018-11-09 01:25:15 +0000
commit1c110fafffdf82034e34146f90729ad92865238d (patch)
tree111b229ec0ee422f73b3a1495648c1506e8ec348 /src/systemc/utils/sc_report_handler.cc
parent121160d97f3d41220a26d3371a277434c3defea3 (diff)
downloadgem5-1c110fafffdf82034e34146f90729ad92865238d.tar.xz
systemc: Wrap some report maps in functions.
By declaring the map as a static variable in that function and then returning it, we can guarantee that it's initialized relative to other static initializers so that we don't try to use a data structure that isn't constructed yet. This will let us get rid of the dependence on python for setting up that mapping. Change-Id: I031ce2039de8f5f79fbb9d76cf1363f15207b64b Reviewed-on: https://gem5-review.googlesource.com/c/13975 Maintainer: Gabe Black <gabeblack@google.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/systemc/utils/sc_report_handler.cc')
-rw-r--r--src/systemc/utils/sc_report_handler.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/systemc/utils/sc_report_handler.cc b/src/systemc/utils/sc_report_handler.cc
index ad0d3b84e..151c3c9c3 100644
--- a/src/systemc/utils/sc_report_handler.cc
+++ b/src/systemc/utils/sc_report_handler.cc
@@ -70,7 +70,7 @@ sc_report_handler::report(sc_severity severity, const char *msg_type,
return;
sc_gem5::ReportSevInfo &sevInfo = sc_gem5::reportSevInfos[severity];
- sc_gem5::ReportMsgInfo &msgInfo = sc_gem5::reportMsgInfoMap[msg_type];
+ sc_gem5::ReportMsgInfo &msgInfo = sc_gem5::reportMsgInfoMap()[msg_type];
sevInfo.count++;
msgInfo.count++;
@@ -111,7 +111,7 @@ void
sc_report_handler::report(sc_severity severity, int id, const char *msg,
const char *file, int line)
{
- std::string &msg_type = sc_gem5::reportIdToMsgMap[id];
+ std::string &msg_type = sc_gem5::reportIdToMsgMap()[id];
if (sc_gem5::reportWarningsAsErrors && severity == SC_WARNING)
severity = SC_ERROR;
@@ -134,7 +134,7 @@ sc_report_handler::set_actions(const char *msg_type, sc_actions actions)
if (!msg_type)
msg_type = SC_ID_UNKNOWN_ERROR_;
- sc_gem5::ReportMsgInfo &info = sc_gem5::reportMsgInfoMap[msg_type];
+ sc_gem5::ReportMsgInfo &info = sc_gem5::reportMsgInfoMap()[msg_type];
sc_actions previous = info.actions;
info.actions = actions;
return previous;
@@ -147,7 +147,7 @@ sc_report_handler::set_actions(
if (!msg_type)
msg_type = SC_ID_UNKNOWN_ERROR_;
- sc_gem5::ReportMsgInfo &info = sc_gem5::reportMsgInfoMap[msg_type];
+ sc_gem5::ReportMsgInfo &info = sc_gem5::reportMsgInfoMap()[msg_type];
sc_actions previous = info.sevActions[severity];
info.sevActions[severity] = actions;
return previous;
@@ -168,7 +168,7 @@ sc_report_handler::stop_after(const char *msg_type, int limit)
if (!msg_type)
msg_type = SC_ID_UNKNOWN_ERROR_;
- sc_gem5::ReportMsgInfo &info = sc_gem5::reportMsgInfoMap[msg_type];
+ sc_gem5::ReportMsgInfo &info = sc_gem5::reportMsgInfoMap()[msg_type];
int previous = info.limit;
info.limit = limit;
return previous;
@@ -181,7 +181,7 @@ sc_report_handler::stop_after(
if (!msg_type)
msg_type = SC_ID_UNKNOWN_ERROR_;
- sc_gem5::ReportMsgInfo &info = sc_gem5::reportMsgInfoMap[msg_type];
+ sc_gem5::ReportMsgInfo &info = sc_gem5::reportMsgInfoMap()[msg_type];
int previous = info.sevLimits[severity];
info.sevLimits[severity] = limit;
return previous;
@@ -199,7 +199,7 @@ sc_report_handler::get_count(const char *msg_type)
if (!msg_type)
msg_type = SC_ID_UNKNOWN_ERROR_;
- return sc_gem5::reportMsgInfoMap[msg_type].count;
+ return sc_gem5::reportMsgInfoMap()[msg_type].count;
}
int
@@ -208,7 +208,7 @@ sc_report_handler::get_count(const char *msg_type, sc_severity severity)
if (!msg_type)
msg_type = SC_ID_UNKNOWN_ERROR_;
- return sc_gem5::reportMsgInfoMap[msg_type].sevCounts[severity];
+ return sc_gem5::reportMsgInfoMap()[msg_type].sevCounts[severity];
}
int