summaryrefslogtreecommitdiff
path: root/include/llvm/Support/CommandLine.h
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-08-06 23:03:52 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-08-06 23:03:52 +0000
commit565aafc997ee08803e2a6f7544f183b9e796ba94 (patch)
tree8ea8927c61eb691bb9f431f869957300391b94ff /include/llvm/Support/CommandLine.h
parent5eb308b9448ee5b14fac26c0533eac481bc28471 (diff)
downloadllvm-565aafc997ee08803e2a6f7544f183b9e796ba94.tar.gz
llvm-565aafc997ee08803e2a6f7544f183b9e796ba94.tar.bz2
llvm-565aafc997ee08803e2a6f7544f183b9e796ba94.tar.xz
Some cleanup. Use a class (OptionInfo) instead of a pair of a pair and remove
some default values that are not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110485 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/CommandLine.h')
-rw-r--r--include/llvm/Support/CommandLine.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/include/llvm/Support/CommandLine.h b/include/llvm/Support/CommandLine.h
index 61c3256d38..35ec9c73ae 100644
--- a/include/llvm/Support/CommandLine.h
+++ b/include/llvm/Support/CommandLine.h
@@ -443,16 +443,23 @@ protected:
template <class DataType>
class parser : public generic_parser_base {
protected:
- SmallVector<std::pair<const char *,
- std::pair<DataType, const char *> >, 8> Values;
+ class OptionInfo {
+ public:
+ OptionInfo(const char *name, DataType v, const char *helpStr) :
+ Name(name), V(v), HelpStr(helpStr) {}
+ const char *Name;
+ DataType V;
+ const char *HelpStr;
+ };
+ SmallVector<OptionInfo, 8> Values;
public:
typedef DataType parser_data_type;
// Implement virtual functions needed by generic_parser_base
unsigned getNumOptions() const { return unsigned(Values.size()); }
- const char *getOption(unsigned N) const { return Values[N].first; }
+ const char *getOption(unsigned N) const { return Values[N].Name; }
const char *getDescription(unsigned N) const {
- return Values[N].second.second;
+ return Values[N].HelpStr;
}
// parse - Return true on error.
@@ -465,8 +472,8 @@ public:
for (unsigned i = 0, e = static_cast<unsigned>(Values.size());
i != e; ++i)
- if (Values[i].first == ArgVal) {
- V = Values[i].second.first;
+ if (Values[i].Name == ArgVal) {
+ V = Values[i].V;
return false;
}
@@ -478,8 +485,8 @@ public:
template <class DT>
void addLiteralOption(const char *Name, const DT &V, const char *HelpStr) {
assert(findOption(Name) == Values.size() && "Option already exists!");
- Values.push_back(std::make_pair(Name,
- std::make_pair(static_cast<DataType>(V),HelpStr)));
+ OptionInfo X(Name, static_cast<DataType>(V), HelpStr);
+ Values.push_back(X);
MarkOptionsChanged();
}