aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Option.cpp
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2012-10-10 22:34:46 +0000
committerEric Christopher <echristo@gmail.com>2012-10-10 22:34:46 +0000
commitbc0a925caac5e1a8201af4e8500da0bc4bd4d955 (patch)
tree6ba6d4f23fa33ad660c27edbd9ad7e15ea2b2229 /lib/Driver/Option.cpp
parent0464fd5e4ce2193e786e5adcab6b828f9366dae3 (diff)
Revert "[Options] make Option a value type."
Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Wed Oct 10 21:48:26 2012 +0000 [Options] make Option a value type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165663 91177308-0d34-0410-b5e6-96231b3b80d8 This reverts commit 0464fd5e4ce2193e786e5adcab6b828f9366dae3. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165667 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/Option.cpp')
-rw-r--r--lib/Driver/Option.cpp29
1 files changed, 14 insertions, 15 deletions
diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp
index a250d8740a..117021b880 100644
--- a/lib/Driver/Option.cpp
+++ b/lib/Driver/Option.cpp
@@ -23,8 +23,7 @@ Option::Option(const OptTable::Info *info, const OptTable *owner)
// Multi-level aliases are not supported, and alias options cannot
// have groups. This just simplifies option tracking, it is not an
// inherent limitation.
- assert((!getAlias().isValid() || (!getAlias().getAlias().isValid() &&
- !getGroup().isValid())) &&
+ assert((!getAlias() || (!getAlias()->getAlias() && !getGroup())) &&
"Multi-level aliases and aliases with groups are unsupported.");
}
@@ -50,16 +49,16 @@ void Option::dump() const {
llvm::errs() << " Name:\"" << getName() << '"';
- const Option Group = getGroup();
- if (Group.isValid()) {
+ const Option *Group = getGroup();
+ if (Group) {
llvm::errs() << " Group:";
- Group.dump();
+ Group->dump();
}
- const Option Alias = getAlias();
- if (Alias.isValid()) {
+ const Option *Alias = getAlias();
+ if (Alias) {
llvm::errs() << " Alias:";
- Alias.dump();
+ Alias->dump();
}
if (getKind() == MultiArgClass)
@@ -70,17 +69,17 @@ void Option::dump() const {
bool Option::matches(OptSpecifier Opt) const {
// Aliases are never considered in matching, look through them.
- const Option Alias = getAlias();
- if (Alias.isValid())
- return Alias.matches(Opt);
+ const Option *Alias = getAlias();
+ if (Alias)
+ return Alias->matches(Opt);
// Check exact match.
if (getID() == Opt.getID())
return true;
- const Option Group = getGroup();
- if (Group.isValid())
- return Group.matches(Opt);
+ const Option *Group = getGroup();
+ if (Group)
+ return Group->matches(Opt);
return false;
}
@@ -156,7 +155,7 @@ Arg *Option::accept(const ArgList &Args, unsigned &Index) const {
// FIXME: Avoid strlen.
if (getName().size() != strlen(Args.getArgString(Index))) {
const char *Value = Args.getArgString(Index) + getName().size();
- return new Arg(*this, Index++, Value);
+ return new Arg(this, Index++, Value);
}
// Otherwise it must be separate.