summaryrefslogtreecommitdiff
path: root/src/systemc
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-10-06 04:10:39 -0700
committerGabe Black <gabeblack@google.com>2018-10-16 01:02:55 +0000
commit226207d43a0897d07448945fab06554b8dfbc684 (patch)
tree18d05f40ab3df6eeb3291b7f45a85356fd90807f /src/systemc
parenta7d99be947c80de4647d07fd4f73c19cc4050a77 (diff)
downloadgem5-226207d43a0897d07448945fab06554b8dfbc684.tar.xz
systemc: Ignore attempts to throw a signal to a method.
Change-Id: I8c2b20525aa46955f4f2df34436b7424e706e410 Reviewed-on: https://gem5-review.googlesource.com/c/13313 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc')
-rw-r--r--src/systemc/core/process.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/systemc/core/process.cc b/src/systemc/core/process.cc
index 93542fc00..7d21960bd 100644
--- a/src/systemc/core/process.cc
+++ b/src/systemc/core/process.cc
@@ -206,8 +206,12 @@ Process::throw_it(ExceptionWrapperBase &exc, bool inc_kids)
if (inc_kids)
forEachKid([&exc](Process *p) { p->throw_it(exc, true); });
- if (_needsStart || _terminated)
+ if (_needsStart || _terminated ||
+ procKind() == ::sc_core::SC_METHOD_PROC_) {
+ SC_REPORT_WARNING("(W556) throw_it on method/non-running process "
+ "is being ignored ", name());
return;
+ }
injectException(exc);
}