clover/llvm: Factor out compiler option tokenization.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
This commit is contained in:
Francisco Jerez 2016-05-17 16:02:38 +02:00
parent c513cfa747
commit c2a167ad73
1 changed files with 13 additions and 12 deletions

View File

@ -96,6 +96,18 @@ namespace {
}
}
inline std::vector<std::string>
tokenize(const std::string &s) {
std::vector<std::string> ss;
std::istringstream iss(s);
std::string t;
while (getline(iss, t, ' '))
ss.push_back(t);
return ss;
}
struct target {
target(const std::string &s) :
cpu(s.begin(), s.begin() + s.find_first_of("-")),
@ -117,18 +129,7 @@ namespace {
std::string log;
llvm::raw_string_ostream s_log(log);
// Parse the compiler options:
std::vector<std::string> opts_array;
std::istringstream ss(opts);
while (!ss.eof()) {
std::string opt;
getline(ss, opt, ' ');
opts_array.push_back(opt);
}
opts_array.push_back(name);
const std::vector<std::string> opts_array = tokenize(opts + " " + name);
std::vector<const char *> opts_carray;
for (unsigned i = 0; i < opts_array.size(); i++) {
opts_carray.push_back(opts_array.at(i).c_str());