systemc: Warn if sc_stop is called more than once.

Change-Id: Ief88b9af0119ba4b007f79905db2522b5f95b820
Reviewed-on: https://gem5-review.googlesource.com/c/12811
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
diff --git a/src/systemc/core/sc_main.cc b/src/systemc/core/sc_main.cc
index 5e1cd4f..735fb0c 100644
--- a/src/systemc/core/sc_main.cc
+++ b/src/systemc/core/sc_main.cc
@@ -226,6 +226,16 @@
 void
 sc_stop()
 {
+    static bool stop_called = false;
+    if (stop_called) {
+        static bool stop_warned = false;
+        if (!stop_warned)
+            SC_REPORT_WARNING("(W545) sc_stop has already been called", "");
+        stop_warned = true;
+        return;
+    }
+    stop_called = true;
+
     if (::sc_gem5::Kernel::status() == SC_STOPPED)
         return;