diff --git a/regression/goto-instrument/fp-reachability-slice3/test.desc b/regression/goto-instrument/fp-reachability-slice3/test.desc index 6d39cf164d8..da95e9e254d 100644 --- a/regression/goto-instrument/fp-reachability-slice3/test.desc +++ b/regression/goto-instrument/fp-reachability-slice3/test.desc @@ -1,6 +1,6 @@ CORE main.c ---fp-reachability-slice b,c +--fp-reachability-slice b --fp-reachability-slice c ^EXIT=0$ ^SIGNAL=0$ 1 file main.c line 34 diff --git a/src/util/cmdline.cpp b/src/util/cmdline.cpp index c73939ede89..84530430ae1 100644 --- a/src/util/cmdline.cpp +++ b/src/util/cmdline.cpp @@ -11,6 +11,7 @@ Author: Daniel Kroening, kroening@kroening.com #include #include #include +#include cmdlinet::cmdlinet() { @@ -120,16 +121,14 @@ std::list cmdlinet::get_comma_separated_values(const char *option) const { std::list separated_values; - auto i = getoptnr(option); - if(i.has_value() && !options[*i].values.empty()) + + for(const auto &csv : get_values(option)) { - std::istringstream values_stream(options[*i].values.front()); - std::string single_value; - while(std::getline(values_stream, single_value, ',')) - { - separated_values.push_back(single_value); - } + const auto values = split_string(csv, ','); + separated_values.insert( + separated_values.end(), values.begin(), values.end()); } + return separated_values; } diff --git a/src/util/cmdline.h b/src/util/cmdline.h index e826e5c6bc1..1d11496fd54 100644 --- a/src/util/cmdline.h +++ b/src/util/cmdline.h @@ -80,6 +80,8 @@ class cmdlinet const std::list &get_values(const std::string &option) const; const std::list &get_values(char option) const; + /// Collect all occurrences of option \p option and split their values on each + /// comma, merging them into a single list of values. std::list get_comma_separated_values(const char *option) const; virtual bool isset(char option) const;