diff options
author | Rui Ueyama <ruiu@google.com> | 2017-08-23 14:48:58 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2017-08-23 14:48:58 +0000 |
commit | a93f087d3ee4f1a3a5b5acb2a09d4d23fd5d0bd8 (patch) | |
tree | 89e8a9fc5d601caf769a8363563c72882157ca3b /llvm/lib/Option/OptTable.cpp | |
parent | 2f55b958b1ad6f224a8cf65d6b640b8fbff78595 (diff) | |
download | llvm-a93f087d3ee4f1a3a5b5acb2a09d4d23fd5d0bd8.zip llvm-a93f087d3ee4f1a3a5b5acb2a09d4d23fd5d0bd8.tar.gz llvm-a93f087d3ee4f1a3a5b5acb2a09d4d23fd5d0bd8.tar.bz2 |
Revert r311552: [Bash-autocompletion] Add support for static analyzer flags
This reverts commit r311552 because it broke ubsan and asan bots.
llvm-svn: 311557
Diffstat (limited to 'llvm/lib/Option/OptTable.cpp')
-rw-r--r-- | llvm/lib/Option/OptTable.cpp | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/llvm/lib/Option/OptTable.cpp b/llvm/lib/Option/OptTable.cpp index d4486c6..7910bea 100644 --- a/llvm/lib/Option/OptTable.cpp +++ b/llvm/lib/Option/OptTable.cpp @@ -196,7 +196,7 @@ static unsigned matchOption(const OptTable::Info *I, StringRef Str, // Returns true if one of the Prefixes + In.Names matches Option static bool optionMatches(const OptTable::Info &In, StringRef Option) { - if (In.Prefixes) + if (In.Values && In.Prefixes) for (size_t I = 0; In.Prefixes[I]; I++) if (Option == std::string(In.Prefixes[I]) + In.Name) return true; @@ -209,9 +209,8 @@ static bool optionMatches(const OptTable::Info &In, StringRef Option) { std::vector<std::string> OptTable::suggestValueCompletions(StringRef Option, StringRef Arg) const { // Search all options and return possible values. - for (size_t I = FirstSearchableIndex, E = OptionInfos.size(); I < E; I++) { - const Info &In = OptionInfos[I]; - if (!In.Values || !optionMatches(In, Option)) + for (const Info &In : OptionInfos.slice(FirstSearchableIndex)) { + if (!optionMatches(In, Option)) continue; SmallVector<StringRef, 8> Candidates; @@ -229,8 +228,7 @@ OptTable::suggestValueCompletions(StringRef Option, StringRef Arg) const { std::vector<std::string> OptTable::findByPrefix(StringRef Cur, unsigned short DisableFlags) const { std::vector<std::string> Ret; - for (size_t I = FirstSearchableIndex, E = OptionInfos.size(); I < E; I++) { - const Info &In = OptionInfos[I]; + for (const Info &In : OptionInfos.slice(FirstSearchableIndex)) { if (!In.Prefixes || (!In.HelpText && !In.GroupID)) continue; if (In.Flags & DisableFlags) @@ -247,17 +245,6 @@ OptTable::findByPrefix(StringRef Cur, unsigned short DisableFlags) const { return Ret; } -bool OptTable::addValues(const char *Option, const char *Values) { - for (size_t I = FirstSearchableIndex, E = OptionInfos.size(); I < E; I++) { - Info &In = OptionInfos[I]; - if (optionMatches(In, Option)) { - In.Values = Values; - return true; - } - } - return false; -} - Arg *OptTable::ParseOneArg(const ArgList &Args, unsigned &Index, unsigned FlagsToInclude, unsigned FlagsToExclude) const { @@ -269,8 +256,8 @@ Arg *OptTable::ParseOneArg(const ArgList &Args, unsigned &Index, if (isInput(PrefixesUnion, Str)) return new Arg(getOption(TheInputOptionID), Str, Index++, Str); - const Info *Start = OptionInfos.data() + FirstSearchableIndex; - const Info *End = OptionInfos.data() + OptionInfos.size(); + const Info *Start = OptionInfos.begin() + FirstSearchableIndex; + const Info *End = OptionInfos.end(); StringRef Name = StringRef(Str).ltrim(PrefixChars); // Search for the first next option which could be a prefix. |