systemc: Report an error if n <= 0 in wait(int n).
authorGabe Black <gabeblack@google.com>
Sat, 1 Sep 2018 23:37:55 +0000 (16:37 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 3 Oct 2018 00:32:17 +0000 (00:32 +0000)
This is in the spec, and tested by one of the regression tests.

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

src/systemc/core/sc_module.cc

index 44e442d005e565eccdaff8c428aae97739862f1a..6be3818dab5fae3746050c65a70cb22d5f49bb74 100644 (file)
@@ -575,6 +575,10 @@ wait()
 void
 wait(int n)
 {
+    if (n <= 0) {
+        std::string msg = csprintf("n = %d", n);
+        SC_REPORT_ERROR("(E525) wait(n) is only valid for n > 0", msg.c_str());
+    }
     for (int i = 0; i < n; i++)
         wait();
 }