diff options
author | Sam McCall <sam.mccall@gmail.com> | 2018-01-19 15:03:49 +0000 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2018-01-19 15:03:49 +0000 |
commit | eb74ab8633d63fefceb9c1ab5b7fbf2b8d9779de (patch) | |
tree | 7de69024a70fcaa3679ff83b79a53d011d22388c | |
parent | 586b31b8707386f0f6d7cf02ef4a774dd4419110 (diff) | |
download | bcm5719-llvm-eb74ab8633d63fefceb9c1ab5b7fbf2b8d9779de.tar.gz bcm5719-llvm-eb74ab8633d63fefceb9c1ab5b7fbf2b8d9779de.zip |
[clangd] Fix memcpy(?, null, 0) UB by switching to std::copy
llvm-svn: 322949
-rw-r--r-- | clang-tools-extra/clangd/FuzzyMatch.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang-tools-extra/clangd/FuzzyMatch.cpp b/clang-tools-extra/clangd/FuzzyMatch.cpp index c4716cb3ae3..68ba695fe64 100644 --- a/clang-tools-extra/clangd/FuzzyMatch.cpp +++ b/clang-tools-extra/clangd/FuzzyMatch.cpp @@ -76,7 +76,7 @@ static constexpr int PerfectBonus = 3; // Perfect per-pattern-char score. FuzzyMatcher::FuzzyMatcher(StringRef Pattern) : PatN(std::min<int>(MaxPat, Pattern.size())), CaseSensitive(false), ScoreScale(PatN ? float{1} / (PerfectBonus * PatN) : 0), WordN(0) { - memcpy(Pat, Pattern.data(), PatN); + std::copy(Pattern.begin(), Pattern.begin() + PatN, Pat); for (int I = 0; I < PatN; ++I) { LowPat[I] = lower(Pat[I]); CaseSensitive |= LowPat[I] != Pat[I]; @@ -200,7 +200,7 @@ bool FuzzyMatcher::init(StringRef NewWord) { WordN = std::min<int>(MaxWord, NewWord.size()); if (PatN > WordN) return false; - memcpy(Word, NewWord.data(), WordN); + std::copy(NewWord.begin(), NewWord.begin() + WordN, Word); if (PatN == 0) return true; for (int I = 0; I < WordN; ++I) |