systemc: Add an error check to sc_gen_unique_name.
authorGabe Black <gabeblack@google.com>
Fri, 5 Oct 2018 22:38:23 +0000 (15:38 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 16 Oct 2018 00:57:04 +0000 (00:57 +0000)
Accellera checks for a null pointer, and a test tries using that input.

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

src/systemc/core/sc_module.cc

index 175b9db633fb06051018d42c5c16426f369c6107..0b58f32320259ac09c9b4a559b674d2e0a0109f3 100644 (file)
@@ -822,12 +822,20 @@ at_negedge(const sc_signal_in_if<sc_dt::sc_logic> &s)
 const char *
 sc_gen_unique_name(const char *seed)
 {
+    if (!seed || seed[0] == '\0') {
+        SC_REPORT_ERROR(
+                "(E532) cannot generate unique name from null string", "");
+        seed = "unnamed";
+    }
+
     auto mod = sc_gem5::pickParentModule();
     if (mod)
         return mod->uniqueName(seed);
+
     sc_gem5::Process *p = sc_gem5::scheduler.current();
     if (p)
         return p->uniqueName(seed);
+
     return ::sc_gem5::nameGen.gen(seed);
 }