[flang] Insert leading blanks in LOGICAL formatted output fields
authorpeter klausler <pklausler@nvidia.com>
Fri, 17 Jul 2020 18:14:28 +0000 (11:14 -0700)
committerpeter klausler <pklausler@nvidia.com>
Sat, 18 Jul 2020 17:44:16 +0000 (10:44 -0700)
Summary: For Lw output editing, emit (w-1) blanks before the T or the F.

Reviewed By: sscalpone, PeteSteinfeld

Differential Revision: https://reviews.llvm.org/D84059

flang/runtime/edit-output.cpp

index 941c5cc..4680c81 100644 (file)
@@ -424,7 +424,8 @@ bool EditLogicalOutput(IoStatementState &io, const DataEdit &edit, bool truth) {
   switch (edit.descriptor) {
   case 'L':
   case 'G':
-    return io.Emit(truth ? "T" : "F", 1);
+    return io.EmitRepeated(' ', std::max(0, edit.width.value_or(1) - 1)) &&
+        io.Emit(truth ? "T" : "F", 1);
   default:
     io.GetIoErrorHandler().SignalError(IostatErrorInFormat,
         "Data edit descriptor '%c' may not be used with a LOGICAL data item",