systemc: Fix clang9 linker error
Likely a compiler bug, but if this function is allowed to be inlined,
clang9 throws a linker error. Fix this error by making sure the function
isn't inlined.
Change-Id: I4bfade889796915e7bb4b224eafa6e72d4ec59da
Issue-on: https://gem5.atlassian.net/projects/GEM5/issues/GEM5-597
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/29394
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
diff --git a/src/systemc/core/scheduler.cc b/src/systemc/core/scheduler.cc
index 179bd55..f94c204 100644
--- a/src/systemc/core/scheduler.cc
+++ b/src/systemc/core/scheduler.cc
@@ -480,6 +480,13 @@
}
void
+Scheduler::scheduleTimeAdvancesEvent()
+{
+ if (!traceFiles.empty() && !timeAdvancesEvent.scheduled())
+ schedule(&timeAdvancesEvent);
+}
+
+void
Scheduler::trace(bool delta)
{
for (auto tf: traceFiles)
diff --git a/src/systemc/core/scheduler.hh b/src/systemc/core/scheduler.hh
index c9ca161..e7c7290 100644
--- a/src/systemc/core/scheduler.hh
+++ b/src/systemc/core/scheduler.hh
@@ -459,12 +459,7 @@
void timeAdvances() { trace(false); }
EventWrapper<Scheduler, &Scheduler::timeAdvances> timeAdvancesEvent;
- void
- scheduleTimeAdvancesEvent()
- {
- if (!traceFiles.empty() && !timeAdvancesEvent.scheduled())
- schedule(&timeAdvancesEvent);
- }
+ void scheduleTimeAdvancesEvent();
uint64_t _numCycles;
uint64_t _changeStamp;