diff options
author | Gabe Black <gabeblack@google.com> | 2018-08-22 21:37:11 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-09-25 23:59:14 +0000 |
commit | 6184742caf7f80a8b2763bfc31c65789b5dab801 (patch) | |
tree | f7a4ba929413c6462213b22b4dc73718f3699c5c /src/systemc/core | |
parent | fb8ce429b339016188996d624608c91bb0afda68 (diff) | |
download | gem5-6184742caf7f80a8b2763bfc31c65789b5dab801.tar.xz |
systemc: Check for time overflow in sc_start.
A regression tests checks this situation.
Change-Id: I7716bf7c8cf219c372ab9722fc0ad52e7e674b17
Reviewed-on: https://gem5-review.googlesource.com/12256
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/core')
-rw-r--r-- | src/systemc/core/sc_main.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/systemc/core/sc_main.cc b/src/systemc/core/sc_main.cc index 39f6e174b..ea243bf61 100644 --- a/src/systemc/core/sc_main.cc +++ b/src/systemc/core/sc_main.cc @@ -194,6 +194,10 @@ sc_start(const sc_time &time, sc_starvation_policy p) ::sc_gem5::scheduler.oneCycle(); } else { Tick now = ::sc_gem5::scheduler.getCurTick(); + if (MaxTick - now < time.value()) { + SC_REPORT_ERROR("(E544) simulation time value overflow, " + "simulation aborted", ""); + } ::sc_gem5::scheduler.start(now + time.value(), p == SC_RUN_TO_TIME); } } |