aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/OptTable.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-11-19 04:25:06 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-11-19 04:25:06 +0000
commita0289fda5b5d67ad49596a5e1f62e1f9db497d06 (patch)
tree2784074602724508757b7b0507d6f1ca0ddd1271 /lib/Driver/OptTable.cpp
parent9e1f98260a1842df4bb8e6de0b592a1622dcfdc0 (diff)
Driver: Take option ID for {Input,Unknown}Option, to drop dependency on actual options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89312 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/OptTable.cpp')
-rw-r--r--lib/Driver/OptTable.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/Driver/OptTable.cpp b/lib/Driver/OptTable.cpp
index fae7f75f37..890907b2a7 100644
--- a/lib/Driver/OptTable.cpp
+++ b/lib/Driver/OptTable.cpp
@@ -136,9 +136,9 @@ Option *OptTable::CreateOption(unsigned id) const {
Option *Opt = 0;
switch (info.Kind) {
case Option::InputClass:
- Opt = new InputOption(); break;
+ Opt = new InputOption(id); break;
case Option::UnknownClass:
- Opt = new UnknownOption(); break;
+ Opt = new UnknownOption(id); break;
case Option::GroupClass:
Opt = new OptionGroup(id, info.Name, Group); break;
case Option::FlagClass:
@@ -188,7 +188,7 @@ Arg *OptTable::ParseOneArg(const InputArgList &Args, unsigned &Index) const {
return new PositionalArg(TheInputOption, Index++);
const Info *Start = OptionInfos + FirstSearchableIndex;
- const Info *End = OptionInfos + LastOption - 1;
+ const Info *End = OptionInfos + getNumOptions();
// Search for the first next option which could be a prefix.
Start = std::lower_bound(Start, End, Str);
@@ -210,8 +210,7 @@ Arg *OptTable::ParseOneArg(const InputArgList &Args, unsigned &Index) const {
break;
// See if this option matches.
- options::ID id = (options::ID) (Start - OptionInfos + 1);
- if (Arg *A = getOption(id)->accept(Args, Index))
+ if (Arg *A = getOption(Start - OptionInfos + 1)->accept(Args, Index))
return A;
// Otherwise, see if this argument was missing values.