From bde05423f877315edafd321fe5de7235c58ac898 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Mon, 15 Apr 2013 19:19:16 -0700 Subject: [PATCH] scanalysis: install ModelExecution object in the analysis --- main.cc | 7 ++++--- scanalysis.cc | 5 ++++- scanalysis.h | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/main.cc b/main.cc index 689fe9d..56eb311 100644 --- a/main.cc +++ b/main.cc @@ -133,9 +133,10 @@ static void parse_options(struct model_params *params, int argc, char **argv) int main_argc; char **main_argv; -void install_trace_analyses() { +static void install_trace_analyses(const ModelExecution *execution) +{ if (model->params.sc_trace_analysis) - model->add_trace_analysis(new SCAnalysis()); + model->add_trace_analysis(new SCAnalysis(execution)); } /** The model_main function contains the main model checking loop. */ @@ -153,7 +154,7 @@ static void model_main() snapshot_stack_init(); model = new ModelChecker(params); - install_trace_analyses(); + install_trace_analyses(model->get_execution()); snapshot_record(0); model->run(); diff --git a/scanalysis.cc b/scanalysis.cc index ff7854a..7e0e845 100644 --- a/scanalysis.cc +++ b/scanalysis.cc @@ -2,8 +2,11 @@ #include "action.h" #include "threads-model.h" #include "clockvector.h" +#include "execution.h" -SCAnalysis::SCAnalysis() { +SCAnalysis::SCAnalysis(const ModelExecution *execution) : + execution(execution) +{ cvmap=new HashTable(); cycleset=new HashTable(); threadlists=new SnapVector(1); diff --git a/scanalysis.h b/scanalysis.h index 06fc2ed..7e300e0 100644 --- a/scanalysis.h +++ b/scanalysis.h @@ -5,7 +5,7 @@ class SCAnalysis : public TraceAnalysis { public: - SCAnalysis(); + SCAnalysis(const ModelExecution *execution); ~SCAnalysis(); virtual void analyze(action_list_t *); @@ -23,5 +23,6 @@ class SCAnalysis : public TraceAnalysis { HashTable * cvmap; HashTable * cycleset; SnapVector * threadlists; + const ModelExecution *execution; }; #endif -- 2.34.1