X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=main.cc;h=d2d8d4ab835a5d44d35789f1075f8f7d55a09063;hb=f3359dd1b9ba12e5092504e8e53e3615bdb2956a;hp=c8417c027666219b9fdaa6da21d256ad4ebdf42c;hpb=b090a4abc4915a9aa2a29787f76a6add79f838e2;p=model-checker.git diff --git a/main.cc b/main.cc index c8417c0..d2d8d4a 100644 --- a/main.cc +++ b/main.cc @@ -79,6 +79,7 @@ static void print_usage(const char *program_name, struct model_params *params) " uninitialized atomic.\n" " Default: %u\n" "-t, --analysis=NAME Use Trace Analysis.\n" +"-o, --options=NAME Options.\n" " -- Program arguments follow.\n\n", program_name, params->maxreads, @@ -111,7 +112,7 @@ bool install_plugin(char * name) { static void parse_options(struct model_params *params, int argc, char **argv) { - const char *shortopts = "hyYt:m:M:s:S:f:e:b:u:v::"; + const char *shortopts = "hyYt:o:m:M:s:S:f:e:b:u:v::"; const struct option longopts[] = { {"help", no_argument, NULL, 'h'}, {"liveness", required_argument, NULL, 'm'}, @@ -126,6 +127,7 @@ static void parse_options(struct model_params *params, int argc, char **argv) {"verbose", optional_argument, NULL, 'v'}, {"uninitialized", optional_argument, NULL, 'u'}, {"analysis", optional_argument, NULL, 't'}, + {"options", optional_argument, NULL, 'o'}, {0, 0, 0, 0} /* Terminator */ }; int opt, longindex; @@ -169,6 +171,13 @@ static void parse_options(struct model_params *params, int argc, char **argv) if (install_plugin(optarg)) error = true; break; + case 'o': + { + ModelVector * analyses = getInstalledTraceAnalysis(); + if ( analyses->size() == 0 || (*analyses)[analyses->size()-1]->option(optarg)) + error = true; + } + break; case 'Y': params->yieldblock = true; break;