diff options
author | Gabe Black <gabeblack@google.com> | 2018-09-05 18:46:05 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-10-09 21:37:51 +0000 |
commit | dee485ff6779ef81b8d26c68041ded4065fb1402 (patch) | |
tree | 1645e7bb5bae44a6a1750bdfd6e839c31d213bbe /src/systemc/core/event.cc | |
parent | 8a39209514d605d67f486db874423447255a2ab2 (diff) | |
download | gem5-dee485ff6779ef81b8d26c68041ded4065fb1402.tar.xz |
systemc: Report a warning if an event or object needs to be renamed.
Change-Id: I8085ba19fd7acd69d07a1e032f2fd18b6c5fed6f
Reviewed-on: https://gem5-review.googlesource.com/c/12598
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/core/event.cc')
-rw-r--r-- | src/systemc/core/event.cc | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/systemc/core/event.cc b/src/systemc/core/event.cc index 1b43d512d..e91df1528 100644 --- a/src/systemc/core/event.cc +++ b/src/systemc/core/event.cc @@ -61,7 +61,8 @@ Event::Event(sc_core::sc_event *_sc_event, const char *_basename_cstr) : else parent = nullptr; - pickUniqueName(parent, _basename); + std::string original_name = _basename; + _basename = pickUniqueName(parent, _basename); if (parent) { Object *obj = Object::getFromScObject(parent); @@ -70,10 +71,16 @@ Event::Event(sc_core::sc_event *_sc_event, const char *_basename_cstr) : topLevelEvents.emplace(topLevelEvents.end(), _sc_event); } - if (parent) - _name = std::string(parent->name()) + "." + _basename; - else - _name = _basename; + std::string path = parent ? (std::string(parent->name()) + ".") : ""; + + if (original_name != "" && _basename != original_name) { + std::string message = path + original_name + + ". Latter declaration will be renamed to " + + path + _basename; + SC_REPORT_WARNING("(W505) object already exists", message.c_str()); + } + + _name = path + _basename; allEvents.emplace(allEvents.end(), _sc_event); |