diff options
author | peter klausler <pklausler@nvidia.com> | 2021-03-23 13:57:00 -0700 |
---|---|---|
committer | peter klausler <pklausler@nvidia.com> | 2021-03-24 11:39:18 -0700 |
commit | 5da55bfc18f64b7171be150913e2f5eac6e0f184 (patch) | |
tree | 47941fe12baa8cb85de9df3da5360ee03f70217e /llvm/lib/FileCheck/FileCheck.cpp | |
parent | 3cb2346982399892eae36e660ffa7e77a27ee067 (diff) | |
download | llvm-5da55bfc18f64b7171be150913e2f5eac6e0f184.zip llvm-5da55bfc18f64b7171be150913e2f5eac6e0f184.tar.gz llvm-5da55bfc18f64b7171be150913e2f5eac6e0f184.tar.bz2 |
[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
Diffstat (limited to 'llvm/lib/FileCheck/FileCheck.cpp')
0 files changed, 0 insertions, 0 deletions