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
diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp
index a250d87..117021b 100644
--- a/lib/Driver/Option.cpp
+++ b/lib/Driver/Option.cpp
@@ -23,8 +23,7 @@
// 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 @@
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 @@
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 @@
// 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.