[PATCH] D112175: [NFC] Add llvm::StaticVector ADT
James Player via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 27 12:02:50 PDT 2021
jplayer-nv added a comment.
Here's another example of a possible StaticVector conversion:
llvm/lib/MC/WinCOFFObjectWriter.cpp
void WinCOFFObjectWriter::SetSectionName(COFFSection &S) {
...
uint64_t StringTableEntry = Strings.getOffset(S.Name);
if (StringTableEntry <= Max7DecimalOffset) {
SmallVector<char, COFF::NameSize> Buffer;
Twine('/').concat(Twine(StringTableEntry)).toVector(Buffer);
assert(Buffer.size() <= COFF::NameSize && Buffer.size() >= 2);
std::memcpy(S.Header.Name, Buffer.data(), Buffer.size());
return;
}
...
}
It's not as simple as a container type substitution since I haven't defined a `raw_pwrite_stream` for `StaticVector`. Assuming that's done, this shouldn't be a problem.
One nice benefit is that the container implicitly enforces:
assert(Buffer.size() <= COFF::NameSize);
Will keep searching.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D112175/new/
https://reviews.llvm.org/D112175
More information about the llvm-commits
mailing list