Gabe Black has uploaded this change for review. (
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
---
M src/systemc/channel/sc_semaphore.cc
1 file changed, 13 insertions(+), 5 deletions(-)
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: 1
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev