aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/Archive.cpp
diff options
context:
space:
mode:
authorJordan Rupprecht <rupprecht@google.com>2021-05-27 16:48:40 -0700
committerJordan Rupprecht <rupprecht@google.com>2021-05-27 16:48:40 -0700
commite41aaea26238d0a5cb19163863819786e24f0e02 (patch)
tree9d94bcc9358ab7ee540ad8a02d64ebbcec99386f /llvm/lib/Object/Archive.cpp
parent57646d38d54c6a52a4fac4b0ac1047b0dbaec94a (diff)
downloadllvm-e41aaea26238d0a5cb19163863819786e24f0e02.zip
llvm-e41aaea26238d0a5cb19163863819786e24f0e02.tar.gz
llvm-e41aaea26238d0a5cb19163863819786e24f0e02.tar.bz2
[NFC][libObject] clang-format Archive{.h,.cpp}
In preparation for D100651
Diffstat (limited to 'llvm/lib/Object/Archive.cpp')
-rw-r--r--llvm/lib/Object/Archive.cpp147
1 files changed, 79 insertions, 68 deletions
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index 11c9de4..6ff896c 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/lib/Object/Archive.cpp
@@ -43,8 +43,7 @@ const char ThinMagic[] = "!<thin>\n";
void Archive::anchor() {}
-static Error
-malformedError(Twine Msg) {
+static Error malformedError(Twine Msg) {
std::string StringMsg = "truncated or malformed archive (" + Msg.str() + ")";
return make_error<GenericBinaryError>(std::move(StringMsg),
object_error::parse_failed);
@@ -77,8 +76,8 @@ ArchiveMemberHeader::ArchiveMemberHeader(const Archive *Parent,
if (Err) {
std::string Buf;
raw_string_ostream OS(Buf);
- OS.write_escaped(StringRef(ArMemHdr->Terminator,
- sizeof(ArMemHdr->Terminator)));
+ OS.write_escaped(
+ StringRef(ArMemHdr->Terminator, sizeof(ArMemHdr->Terminator)));
OS.flush();
std::string Msg("terminator characters in archive member \"" + Buf +
"\" not the correct \"`\\n\" values for the archive "
@@ -102,14 +101,14 @@ Expected<StringRef> ArchiveMemberHeader::getRawName() const {
auto Kind = Parent->kind();
if (Kind == Archive::K_BSD || Kind == Archive::K_DARWIN64) {
if (ArMemHdr->Name[0] == ' ') {
- uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t Offset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("name contains a leading space for archive member "
- "header at offset " + Twine(Offset));
+ "header at offset " +
+ Twine(Offset));
}
EndCond = ' ';
- }
- else if (ArMemHdr->Name[0] == '/' || ArMemHdr->Name[0] == '#')
+ } else if (ArMemHdr->Name[0] == '/' || ArMemHdr->Name[0] == '#')
EndCond = ' ';
else
EndCond = '/';
@@ -131,8 +130,8 @@ Expected<StringRef> ArchiveMemberHeader::getName(uint64_t Size) const {
// archive header is truncated to produce an error message with the name.
// Make sure the name field is not truncated.
if (Size < offsetof(ArMemHdrType, Name) + sizeof(ArMemHdr->Name)) {
- uint64_t ArchiveOffset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t ArchiveOffset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("archive header truncated before the name field "
"for archive member header at offset " +
Twine(ArchiveOffset));
@@ -158,21 +157,22 @@ Expected<StringRef> ArchiveMemberHeader::getName(uint64_t Size) const {
raw_string_ostream OS(Buf);
OS.write_escaped(Name.substr(1).rtrim(' '));
OS.flush();
- uint64_t ArchiveOffset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t ArchiveOffset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("long name offset characters after the '/' are "
- "not all decimal numbers: '" + Buf + "' for "
- "archive member header at offset " +
+ "not all decimal numbers: '" +
+ Buf + "' for archive member header at offset " +
Twine(ArchiveOffset));
}
// Verify it.
if (StringOffset >= Parent->getStringTable().size()) {
- uint64_t ArchiveOffset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
- return malformedError("long name offset " + Twine(StringOffset) + " past "
- "the end of the string table for archive member "
- "header at offset " + Twine(ArchiveOffset));
+ uint64_t ArchiveOffset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
+ return malformedError("long name offset " + Twine(StringOffset) +
+ " past the end of the string table for archive "
+ "member header at offset " +
+ Twine(ArchiveOffset));
}
// GNU long file names end with a "/\n".
@@ -196,23 +196,24 @@ Expected<StringRef> ArchiveMemberHeader::getName(uint64_t Size) const {
raw_string_ostream OS(Buf);
OS.write_escaped(Name.substr(3).rtrim(' '));
OS.flush();
- uint64_t ArchiveOffset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t ArchiveOffset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("long name length characters after the #1/ are "
- "not all decimal numbers: '" + Buf + "' for "
- "archive member header at offset " +
+ "not all decimal numbers: '" +
+ Buf + "' for archive member header at offset " +
Twine(ArchiveOffset));
}
if (getSizeOf() + NameLength > Size) {
- uint64_t ArchiveOffset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t ArchiveOffset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("long name length: " + Twine(NameLength) +
" extends past the end of the member or archive "
"for archive member header at offset " +
Twine(ArchiveOffset));
}
return StringRef(reinterpret_cast<const char *>(ArMemHdr) + getSizeOf(),
- NameLength).rtrim('\0');
+ NameLength)
+ .rtrim('\0');
}
// It is not a long name so trim the blanks at the end of the name.
@@ -225,36 +226,43 @@ Expected<StringRef> ArchiveMemberHeader::getName(uint64_t Size) const {
Expected<uint64_t> ArchiveMemberHeader::getSize() const {
uint64_t Ret;
- if (StringRef(ArMemHdr->Size,
- sizeof(ArMemHdr->Size)).rtrim(" ").getAsInteger(10, Ret)) {
+ if (StringRef(ArMemHdr->Size, sizeof(ArMemHdr->Size))
+ .rtrim(" ")
+ .getAsInteger(10, Ret)) {
std::string Buf;
raw_string_ostream OS(Buf);
- OS.write_escaped(StringRef(ArMemHdr->Size,
- sizeof(ArMemHdr->Size)).rtrim(" "));
+ OS.write_escaped(
+ StringRef(ArMemHdr->Size, sizeof(ArMemHdr->Size)).rtrim(" "));
OS.flush();
- uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t Offset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("characters in size field in archive header are not "
- "all decimal numbers: '" + Buf + "' for archive "
- "member header at offset " + Twine(Offset));
+ "all decimal numbers: '" +
+ Buf +
+ "' for archive "
+ "member header at offset " +
+ Twine(Offset));
}
return Ret;
}
Expected<sys::fs::perms> ArchiveMemberHeader::getAccessMode() const {
unsigned Ret;
- if (StringRef(ArMemHdr->AccessMode,
- sizeof(ArMemHdr->AccessMode)).rtrim(' ').getAsInteger(8, Ret)) {
+ if (StringRef(ArMemHdr->AccessMode, sizeof(ArMemHdr->AccessMode))
+ .rtrim(' ')
+ .getAsInteger(8, Ret)) {
std::string Buf;
raw_string_ostream OS(Buf);
- OS.write_escaped(StringRef(ArMemHdr->AccessMode,
- sizeof(ArMemHdr->AccessMode)).rtrim(" "));
+ OS.write_escaped(
+ StringRef(ArMemHdr->AccessMode, sizeof(ArMemHdr->AccessMode))
+ .rtrim(" "));
OS.flush();
- uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t Offset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("characters in AccessMode field in archive header "
- "are not all decimal numbers: '" + Buf + "' for the "
- "archive member header at offset " + Twine(Offset));
+ "are not all decimal numbers: '" +
+ Buf + "' for the archive member header at offset " +
+ Twine(Offset));
}
return static_cast<sys::fs::perms>(Ret);
}
@@ -262,19 +270,21 @@ Expected<sys::fs::perms> ArchiveMemberHeader::getAccessMode() const {
Expected<sys::TimePoint<std::chrono::seconds>>
ArchiveMemberHeader::getLastModified() const {
unsigned Seconds;
- if (StringRef(ArMemHdr->LastModified,
- sizeof(ArMemHdr->LastModified)).rtrim(' ')
+ if (StringRef(ArMemHdr->LastModified, sizeof(ArMemHdr->LastModified))
+ .rtrim(' ')
.getAsInteger(10, Seconds)) {
std::string Buf;
raw_string_ostream OS(Buf);
- OS.write_escaped(StringRef(ArMemHdr->LastModified,
- sizeof(ArMemHdr->LastModified)).rtrim(" "));
+ OS.write_escaped(
+ StringRef(ArMemHdr->LastModified, sizeof(ArMemHdr->LastModified))
+ .rtrim(" "));
OS.flush();
- uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t Offset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("characters in LastModified field in archive header "
- "are not all decimal numbers: '" + Buf + "' for the "
- "archive member header at offset " + Twine(Offset));
+ "are not all decimal numbers: '" +
+ Buf + "' for the archive member header at offset " +
+ Twine(Offset));
}
return sys::toTimePoint(Seconds);
@@ -290,11 +300,12 @@ Expected<unsigned> ArchiveMemberHeader::getUID() const {
raw_string_ostream OS(Buf);
OS.write_escaped(User);
OS.flush();
- uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t Offset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("characters in UID field in archive header "
- "are not all decimal numbers: '" + Buf + "' for the "
- "archive member header at offset " + Twine(Offset));
+ "are not all decimal numbers: '" +
+ Buf + "' for the archive member header at offset " +
+ Twine(Offset));
}
return Ret;
}
@@ -309,11 +320,12 @@ Expected<unsigned> ArchiveMemberHeader::getGID() const {
raw_string_ostream OS(Buf);
OS.write_escaped(Group);
OS.flush();
- uint64_t Offset = reinterpret_cast<const char *>(ArMemHdr) -
- Parent->getData().data();
+ uint64_t Offset =
+ reinterpret_cast<const char *>(ArMemHdr) - Parent->getData().data();
return malformedError("characters in GID field in archive header "
- "are not all decimal numbers: '" + Buf + "' for the "
- "archive member header at offset " + Twine(Offset));
+ "are not all decimal numbers: '" +
+ Buf + "' for the archive member header at offset " +
+ Twine(Offset));
}
return Ret;
}
@@ -321,15 +333,15 @@ Expected<unsigned> ArchiveMemberHeader::getGID() const {
Archive::Child::Child(const Archive *Parent, StringRef Data,
uint16_t StartOfFile)
: Parent(Parent), Header(Parent, Data.data(), Data.size(), nullptr),
- Data(Data), StartOfFile(StartOfFile) {
-}
+ Data(Data), StartOfFile(StartOfFile) {}
Archive::Child::Child(const Archive *Parent, const char *Start, Error *Err)
: Parent(Parent),
Header(Parent, Start,
Parent
- ? Parent->getData().size() - (Start - Parent->getData().data())
- : 0, Err) {
+ ? Parent->getData().size() - (Start - Parent->getData().data())
+ : 0,
+ Err) {
if (!Start)
return;
@@ -368,7 +380,7 @@ Archive::Child::Child(const Archive *Parent, const char *Start, Error *Err)
StartOfFile = Header.getSizeOf();
// Don't include attached name.
Expected<StringRef> NameOrErr = getRawName();
- if (!NameOrErr){
+ if (!NameOrErr) {
*Err = NameOrErr.takeError();
return;
}
@@ -382,8 +394,8 @@ Archive::Child::Child(const Archive *Parent, const char *Start, Error *Err)
OS.flush();
uint64_t Offset = Start - Parent->getData().data();
*Err = malformedError("long name length characters after the #1/ are "
- "not all decimal numbers: '" + Buf + "' for "
- "archive member header at offset " +
+ "not all decimal numbers: '" +
+ Buf + "' for archive member header at offset " +
Twine(Offset));
return;
}
@@ -646,8 +658,7 @@ Archive::Archive(MemoryBufferRef Source, Error &Err)
SymbolTable = BufOrErr.get();
if (Increment())
return;
- }
- else if (Name == "__.SYMDEF_64 SORTED" || Name == "__.SYMDEF_64") {
+ } else if (Name == "__.SYMDEF_64 SORTED" || Name == "__.SYMDEF_64") {
Format = K_DARWIN64;
// We know that the symbol table is not an external file, but we still
// must check any Expected<> return value.