summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Option/OptTable.cpp
diff options
context:
space:
mode:
authorBrian Gesiak <modocache@gmail.com>2018-01-09 19:38:04 +0000
committerBrian Gesiak <modocache@gmail.com>2018-01-09 19:38:04 +0000
commitd481df53104d0da83924075b9a0f15024d6232ef (patch)
tree983394fcb4688395ff4097768baabea0874f2aec /llvm/lib/Option/OptTable.cpp
parent8fcd07d53cb678fc6f1c203e61dc302774bb9761 (diff)
downloadbcm5719-llvm-d481df53104d0da83924075b9a0f15024d6232ef.tar.gz
bcm5719-llvm-d481df53104d0da83924075b9a0f15024d6232ef.zip
[Option] For typo '-foo', suggest '--foo'
Summary: https://reviews.llvm.org/rL321877 introduced the `OptTable::findNearest` method, to find the closest edit distance option for a given string. However, the implementation contained a bug: for a typo `-foo` with an edit distance of 1 away from a valid option `--foo`, `findNearest` would suggest a nearby option of `foo`. That is, the result would not include the `--` prefix, and so was not a valid option. Fix the bug by ensuring that the prefix string is initialized to one of the valid prefixes for the option. Test Plan: `check-llvm-unit` Reviewers: v.g.vassilev, teemperor, ruiu, jroelofs, yamaguchi Reviewed By: jroelofs Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D41873 llvm-svn: 322109
Diffstat (limited to 'llvm/lib/Option/OptTable.cpp')
-rw-r--r--llvm/lib/Option/OptTable.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Option/OptTable.cpp b/llvm/lib/Option/OptTable.cpp
index f85b9043091..dcd1cc46d96 100644
--- a/llvm/lib/Option/OptTable.cpp
+++ b/llvm/lib/Option/OptTable.cpp
@@ -277,8 +277,8 @@ unsigned OptTable::findNearest(StringRef Option, std::string &NearestString,
continue;
// Find the most appropriate prefix. For example, if a user asks for
// "--helm", suggest "--help" over "-help".
- StringRef Prefix;
- for (int P = 0; CandidateInfo.Prefixes[P]; P++) {
+ StringRef Prefix = CandidateInfo.Prefixes[0];
+ for (int P = 1; CandidateInfo.Prefixes[P]; P++) {
if (Option.startswith(CandidateInfo.Prefixes[P]))
Prefix = CandidateInfo.Prefixes[P];
}
OpenPOWER on IntegriCloud