[PATCH] D144872: [AIX] Align the content of an xcoff object file which has auxiliary header in big archive.
James Henderson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 15 01:57:56 PDT 2023
jhenderson added inline comments.
================
Comment at: llvm/lib/Object/ArchiveWriter.cpp:1173
for (const MemberData &M : Data) {
+ for (uint64_t i = 0; i < M.PreHeadPadSize; i++)
+ Out << '\0';
----------------
DiggerLin wrote:
> jhenderson wrote:
> > It may be slightly more efficient to do something like:
> > ```
> > OS << std::string(M.PreHeadPadSize, '\0');
> > ```
> > It's certainly a little more elegant. Alternatively, you could use `std::fill_n`. There are good explanations of both these at https://stackoverflow.com/a/11421689.
> we write M.PreHeadPadSize of '\0' , using std::string(M.PreHeadPadSize, '\0') , the string is a empty string , the `OS << std::string(M.PreHeadPadSize, '\0') ` do not output M.PreHeadPadSize of '\0'
Did you actually try my suggestion? Your statement is wrong. I've tried it with some simple code and it works fine - `OS << std::string(10, '\0')` writes 10 null bytes to the output.
`std::string(M.PreHeadPadSize, '\0')` constructs a `std::string` that contains `M.PreHeadPadSize` null bytes. It is NOT an empty string (although using `.c_str()` will make it look like it is).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D144872/new/
https://reviews.llvm.org/D144872
More information about the llvm-commits
mailing list