diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-11-19 04:25:06 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-11-19 04:25:06 +0000 |
commit | b323fd72abf99a3ee2b3212b6a136dc08895e2f5 (patch) | |
tree | 6e8be4708a69ad74720d47bd9175c0027f147bae /clang/lib/Driver/OptTable.cpp | |
parent | 6912be4ad628e4d1cdf9747e8f6ae46259536cf7 (diff) | |
download | llvm-b323fd72abf99a3ee2b3212b6a136dc08895e2f5.zip llvm-b323fd72abf99a3ee2b3212b6a136dc08895e2f5.tar.gz llvm-b323fd72abf99a3ee2b3212b6a136dc08895e2f5.tar.bz2 |
Driver: Take option ID for {Input,Unknown}Option, to drop dependency on actual options.
llvm-svn: 89312
Diffstat (limited to 'clang/lib/Driver/OptTable.cpp')
-rw-r--r-- | clang/lib/Driver/OptTable.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/clang/lib/Driver/OptTable.cpp b/clang/lib/Driver/OptTable.cpp index fae7f75..890907b 100644 --- a/clang/lib/Driver/OptTable.cpp +++ b/clang/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. |