Make Binary::TypeID more granular, to distinguish between ELF 32/64 little/big




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152435 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Meyer
2012-03-09 20:41:57 +00:00
parent a8eb6bb408
commit 6f9489a86f
9 changed files with 48 additions and 17 deletions

View File

@@ -484,7 +484,8 @@ public:
// Methods for type inquiry through isa, cast, and dyn_cast
bool isDyldType() const { return isDyldELFObject; }
static inline bool classof(const Binary *v) {
return v->getType() == Binary::isELF;
return v->getType() == getELFType(target_endianness == support::little,
is64Bits);
}
static inline bool classof(const ELFObjectFile *v) { return true; }
};
@@ -1257,7 +1258,8 @@ void ELFObjectFile<target_endianness, is64Bits>
template<support::endianness target_endianness, bool is64Bits>
ELFObjectFile<target_endianness, is64Bits>::ELFObjectFile(MemoryBuffer *Object
, error_code &ec)
: ObjectFile(Binary::isELF, Object, ec)
: ObjectFile(getELFType(target_endianness == support::little, is64Bits),
Object, ec)
, isDyldELFObject(false)
, SectionHeaderTable(0)
, dot_shstrtab_sec(0)