forked from OSchip/llvm-project
[DebugInfo][test] Attempt to fix big endian build bots
Commit 9782c922c
broke them since it prints raw bytes, whose order will
be different dependent on the endianness of the host.
This commit is contained in:
parent
36bab8484d
commit
01fee8dce5
|
@ -1443,6 +1443,21 @@ struct TruncatedExtendedOpcodeFixture
|
|||
void SetUp() {
|
||||
std::tie(BodyLength, OpcodeLength, Opcode, Operands, ExpectedOutput,
|
||||
ExpectedErr) = GetParam();
|
||||
// Swap the byte order of the operands on big endian hosts, so that the raw
|
||||
// bytes are always in the same order. ValLen.Value is a uint64_t, so make
|
||||
// sure to shift the value back to the actually used bits for the
|
||||
// appropriate type.
|
||||
if (sys::IsBigEndianHost)
|
||||
for (LineTable::ValueAndLength &ValLen : Operands)
|
||||
if (ValLen.Length != LineTable::SLEB &&
|
||||
ValLen.Length != LineTable::ULEB &&
|
||||
ValLen.Length != LineTable::Byte) {
|
||||
sys::swapByteOrder(ValLen.Value);
|
||||
if (ValLen.Length == LineTable::Long)
|
||||
ValLen.Value >>= 32;
|
||||
if (ValLen.Length == LineTable::Half)
|
||||
ValLen.Value >>= 48;
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t OpcodeLength;
|
||||
|
|
Loading…
Reference in New Issue