Skip to content

Commit e573375

Browse files
Added 32-bit XCOFF File support
1 parent 75f65c0 commit e573375

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

lldb/source/Plugins/ObjectFile/XCOFF/ObjectFileXCOFF.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ bool ObjectFileXCOFF::MagicBytesMatch(DataBufferSP &data_sp,
171171
bool ObjectFileXCOFF::ParseHeader() {
172172
if (m_binary->is64Bit())
173173
return m_binary->fileHeader64()->Magic == XCOFF::XCOFF64;
174-
return m_binary->fileHeader64()->Magic == XCOFF::XCOFF32;
174+
return m_binary->fileHeader32()->Magic == XCOFF::XCOFF32;
175175
}
176176

177177
ByteOrder ObjectFileXCOFF::GetByteOrder() const { return eByteOrderBig; }
@@ -271,11 +271,13 @@ UUID ObjectFileXCOFF::GetUUID() { return UUID(); }
271271
uint32_t ObjectFileXCOFF::GetDependentModules(FileSpecList &files) { return 0; }
272272

273273
ObjectFile::Type ObjectFileXCOFF::CalculateType() {
274-
if (m_binary->fileHeader64()->Flags & XCOFF::F_EXEC ||
275-
m_binary->fileHeader32()->Flags & XCOFF::F_EXEC)
274+
275+
const auto flags = m_binary->is64Bit() ? m_binary->fileHeader64()->Flags
276+
: m_binary->fileHeader32()->Flags;
277+
278+
if (flags & XCOFF::F_EXEC)
276279
return eTypeExecutable;
277-
else if (m_binary->fileHeader64()->Flags & XCOFF::F_SHROBJ ||
278-
m_binary->fileHeader32()->Flags & XCOFF::F_SHROBJ)
280+
else if (flags & XCOFF::F_SHROBJ)
279281
return eTypeSharedLibrary;
280282
return eTypeUnknown;
281283
}

0 commit comments

Comments
 (0)