systemc: Change the default naming scheme to use sc_gen_unique_name.
authorGabe Black <gabeblack@google.com>
Wed, 5 Sep 2018 07:40:04 +0000 (00:40 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 3 Oct 2018 00:55:45 +0000 (00:55 +0000)
The spec says the default name should just be "object", but the
Accellera implementation calls sc_gen_unique_name, and the tests
expects that.

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

src/systemc/core/object.cc

index 0fc046ecc91f4ff20da9e7edcbeea520bbeb6e45..4e4a996db79ba25aa7158d38bafcd734e56b0d14 100644 (file)
@@ -35,6 +35,7 @@
 #include "systemc/core/event.hh"
 #include "systemc/core/module.hh"
 #include "systemc/core/scheduler.hh"
+#include "systemc/ext/core/sc_module.hh"
 
 namespace sc_gem5
 {
@@ -82,13 +83,13 @@ nameIsUnique(Objects *objects, Events *events, const std::string &name)
 
 } // anonymous namespace
 
-Object::Object(sc_core::sc_object *_sc_obj) : Object(_sc_obj, "object") {}
+Object::Object(sc_core::sc_object *_sc_obj) : Object(_sc_obj, nullptr) {}
 
 Object::Object(sc_core::sc_object *_sc_obj, const char *obj_name) :
     _sc_obj(_sc_obj), _basename(obj_name ? obj_name : ""), parent(nullptr)
 {
     if (_basename == "")
-        _basename = "object";
+        _basename = ::sc_core::sc_gen_unique_name("object");
 
     Module *p = currentModule();
     if (!p)