Gabe Black has submitted this change and it was merged. ( https://gem5-review.googlesource.com/c/public/gem5/+/13304 )

Change subject: systemc: Add a range check to the intial value of sc_semaphore.
......................................................................

systemc: Add a range check to the intial value of sc_semaphore.

Change-Id: I4e1ef90b14074e5a2794a4386e411397213b2789
Reviewed-on: https://gem5-review.googlesource.com/c/13304
Reviewed-by: Gabe Black <[email protected]>
Maintainer: Gabe Black <[email protected]>
---
M src/systemc/channel/sc_semaphore.cc
1 file changed, 13 insertions(+), 5 deletions(-)

Approvals:
  Gabe Black: Looks good to me, approved; Looks good to me, approved



diff --git a/src/systemc/channel/sc_semaphore.cc b/src/systemc/channel/sc_semaphore.cc
index ba52c19..59191be 100644
--- a/src/systemc/channel/sc_semaphore.cc
+++ b/src/systemc/channel/sc_semaphore.cc
@@ -27,21 +27,29 @@
  * Authors: Gabe Black
  */

+#include <string>
+
 #include "base/logging.hh"
 #include "systemc/ext/channel/sc_semaphore.hh"
 #include "systemc/ext/core/sc_module.hh" // for sc_gen_unique_name
+#include "systemc/ext/utils/sc_report_handler.hh"

 namespace sc_core
 {

 sc_semaphore::sc_semaphore(int value) :
-        sc_interface(), sc_semaphore_if(),
-        sc_object(sc_gen_unique_name("semaphore")), _value(value)
+    sc_semaphore(sc_gen_unique_name("semaphore"), value)
 {}

-sc_semaphore::sc_semaphore(const char *name, int value) :
-        sc_interface(), sc_semaphore_if(), sc_object(name), _value(value)
-{}
+sc_semaphore::sc_semaphore(const char *_name, int value) :
+        sc_interface(), sc_semaphore_if(), sc_object(_name), _value(value)
+{
+    if (value < 0) {
+        std::string msg = "semaphore '" + std::string(name()) + "'";
+ SC_REPORT_ERROR("(E119) sc_semaphore requires an initial value >= 0",
+                msg.c_str());
+    }
+}

 int
 sc_semaphore::wait()

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/13304
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I4e1ef90b14074e5a2794a4386e411397213b2789
Gerrit-Change-Number: 13304
Gerrit-PatchSet: 3
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-Reviewer: Andreas Sandberg <[email protected]>
Gerrit-Reviewer: Gabe Black <[email protected]>
Gerrit-Reviewer: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Matthias Jung <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to