diff --git a/flang/runtime/assign.cpp b/flang/runtime/assign.cpp --- a/flang/runtime/assign.cpp +++ b/flang/runtime/assign.cpp @@ -129,9 +129,9 @@ if (extent > 0) { auto sm{dim.ByteStride()}; if (sm < 0) { - least += extent * sm; + least += (extent - 1) * sm; } else { - most += extent * sm; + most += (extent - 1) * sm; } } }