Skip to content

Commit 8a603da

Browse files
author
Luc Forget
committed
[MLIR][WASM] Fix endianness issue in Wasm importer
1 parent d4069cd commit 8a603da

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

mlir/lib/Target/Wasm/TranslateFromWasm.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "mlir/Target/Wasm/WasmImporter.h"
2222
#include "llvm/Support/Debug.h"
2323
#include "llvm/Support/DebugLog.h"
24+
#include "llvm/Support/Endian.h"
2425
#include "llvm/Support/FormatVariadic.h"
2526
#include "llvm/Support/LEB128.h"
2627
#include "llvm/Support/LogicalResult.h"
@@ -613,19 +614,17 @@ FailureOr<float> ParserHead::parseLiteral<float>() {
613614
FailureOr<StringRef> bytes = consumeNBytes(4);
614615
if (failed(bytes))
615616
return failure();
616-
float result;
617-
std::memcpy(&result, bytes->bytes_begin(), 4);
618-
return result;
617+
return llvm::support::endian::read<float>(bytes->bytes_begin(),
618+
llvm::endianness::little);
619619
}
620620

621621
template <>
622622
FailureOr<double> ParserHead::parseLiteral<double>() {
623623
FailureOr<StringRef> bytes = consumeNBytes(8);
624624
if (failed(bytes))
625625
return failure();
626-
double result;
627-
std::memcpy(&result, bytes->bytes_begin(), 8);
628-
return result;
626+
return llvm::support::endian::read<double>(bytes->bytes_begin(),
627+
llvm::endianness::little);
629628
}
630629

631630
template <>

0 commit comments

Comments
 (0)