[flang] Add a placeholder argument for a format descriptor on IO calls
authorPeter Klausler <pklausler@nvidia.com>
Fri, 19 Aug 2022 20:33:50 +0000 (13:33 -0700)
committerPeter Klausler <pklausler@nvidia.com>
Fri, 19 Aug 2022 20:39:17 +0000 (13:39 -0700)
Author: vdonaldson

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

flang/lib/Lower/IO.cpp

index 6545d20..b7fc7c4 100644 (file)
@@ -1894,11 +1894,15 @@ void genBeginDataTransferCallArgs(
         loc, builder.getIntegerAttr(ioFuncTy.getInput(ioArgs.size()),
                                     Fortran::runtime::io::DefaultUnit)));
   }
-  // File name and line number are always the last two arguments.
+  // File name and line number.
   ioArgs.push_back(
       locToFilename(converter, loc, ioFuncTy.getInput(ioArgs.size())));
   ioArgs.push_back(
       locToLineNo(converter, loc, ioFuncTy.getInput(ioArgs.size())));
+  // Placeholder for format passed as a descriptor.
+  if (isFormatted && !isListOrNml)
+    ioArgs.push_back(
+        builder.createNullConstant(loc, ioFuncTy.getInput(ioArgs.size())));
 }
 
 template <bool isInput, bool hasIOCtrl = true, typename A>