diff --git a/flang-rt/lib/runtime/edit-input.cpp b/flang-rt/lib/runtime/edit-input.cpp index 0a7b09f836c7..4aa8c70f776c 100644 --- a/flang-rt/lib/runtime/edit-input.cpp +++ b/flang-rt/lib/runtime/edit-input.cpp @@ -293,8 +293,8 @@ RT_API_ATTRS bool EditIntegerInput(IoStatementState &io, const DataEdit &edit, #if USING_NATIVE_INT128_T auto shft{static_cast(sizeof value - kind)}; if (!isHostLittleEndian && shft >= 0) { - auto l{value << shft}; - std::memcpy(n, &l, kind); + auto shifted{value << (8 * shft)}; + std::memcpy(n, &shifted, kind); } else { std::memcpy(n, &value, kind); // a blank field means zero }