[all-commits] [llvm/llvm-project] 5da55b: [flang] Fix output buffering bug (positionability ...
Peter Klausler via All-commits
all-commits at lists.llvm.org
Wed Mar 24 11:39:42 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 5da55bfc18f64b7171be150913e2f5eac6e0f184
https://github.com/llvm/llvm-project/commit/5da55bfc18f64b7171be150913e2f5eac6e0f184
Author: peter klausler <pklausler at nvidia.com>
Date: 2021-03-24 (Wed, 24 Mar 2021)
Changed paths:
M flang/runtime/buffer.h
M flang/unittests/Runtime/CMakeLists.txt
A flang/unittests/Runtime/buffer.cpp
Log Message:
-----------
[flang] Fix output buffering bug (positionability assumption)
The I/O runtime library code was failing to retain data in a buffer
from the current output record when flushing the buffer; this is
fatally wrong when the corresponding file cannot be repositioned,
as in the case of standard output to the console. So refine the
Flush() member function to retain a specified number of bytes,
rearrange the data as necessary (using existing code for read frame
management after moving it into a new member function), and add
a big comment to the head of the file to clarify the roles of the
various data members in the management of contiguous frames in
circular buffers.
Update: added a unit test.
Differential Revision: https://reviews.llvm.org/D99198
More information about the All-commits
mailing list