summaryrefslogtreecommitdiff
path: root/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/Bytecode/Writer/BytecodeWriter.cpp')
-rw-r--r--mlir/lib/Bytecode/Writer/BytecodeWriter.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp b/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
index 03c7a53a34e5..936117aa2b8f 100644
--- a/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
+++ b/mlir/lib/Bytecode/Writer/BytecodeWriter.cpp
@@ -21,6 +21,7 @@
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/raw_ostream.h"
+#include "llvm/Support/Endian.h"
#include <cstddef>
#include <cstdint>
#include <cstring>
@@ -538,7 +539,8 @@ void EncodingEmitter::emitMultiByteVarInt(uint64_t value) {
if (LLVM_LIKELY(it >>= 7) == 0) {
uint64_t encodedValue = (value << 1) | 0x1;
encodedValue <<= (numBytes - 1);
- emitBytes({reinterpret_cast<uint8_t *>(&encodedValue), numBytes});
+ llvm::support::ulittle64_t encodedValueLE(encodedValue);
+ emitBytes({reinterpret_cast<uint8_t *>(&encodedValueLE), numBytes});
return;
}
}
@@ -546,7 +548,8 @@ void EncodingEmitter::emitMultiByteVarInt(uint64_t value) {
// If the value is too large to encode in a single byte, emit a special all
// zero marker byte and splat the value directly.
emitByte(0);
- emitBytes({reinterpret_cast<uint8_t *>(&value), sizeof(value)});
+ llvm::support::ulittle64_t valueLE(value);
+ emitBytes({reinterpret_cast<uint8_t *>(&valueLE), sizeof(valueLE)});
}
//===----------------------------------------------------------------------===//