[PATCH] D84066: [flang] Add entry points for internal scalar list-directed I/O
Peter Klausler via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 17 11:31:09 PDT 2020
klausler created this revision.
klausler added reviewers: sscalpone, schweitz, PeteSteinfeld.
klausler added a project: Flang.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: DavidTruby.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
BeginInternalListInput and BeginInternalListOutput were missing
from the I/O API implementation; add them.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D84066
Files:
flang/runtime/io-api.cpp
Index: flang/runtime/io-api.cpp
===================================================================
--- flang/runtime/io-api.cpp
+++ flang/runtime/io-api.cpp
@@ -74,6 +74,32 @@
}
template <Direction DIR>
+Cookie BeginInternalListIO(
+ std::conditional_t<DIR == Direction::Input, const char, char> *internal,
+ std::size_t internalLength, void ** /*scratchArea*/,
+ std::size_t /*scratchBytes*/, const char *sourceFile, int sourceLine) {
+ Terminator oom{sourceFile, sourceLine};
+ return &New<InternalListIoStatementState<DIR>>{oom}(
+ internal, internalLength, sourceFile, sourceLine)
+ .release()
+ ->ioStatementState();
+}
+
+Cookie IONAME(BeginInternalListOutput)(char *internal,
+ std::size_t internalLength, void **scratchArea, std::size_t scratchBytes,
+ const char *sourceFile, int sourceLine) {
+ return BeginInternalListIO<Direction::Output>(internal, internalLength,
+ scratchArea, scratchBytes, sourceFile, sourceLine);
+}
+
+Cookie IONAME(BeginInternalListInput)(const char *internal,
+ std::size_t internalLength, void **scratchArea, std::size_t scratchBytes,
+ const char *sourceFile, int sourceLine) {
+ return BeginInternalListIO<Direction::Input>(internal, internalLength,
+ scratchArea, scratchBytes, sourceFile, sourceLine);
+}
+
+template <Direction DIR>
Cookie BeginInternalFormattedIO(
std::conditional_t<DIR == Direction::Input, const char, char> *internal,
std::size_t internalLength, const char *format, std::size_t formatLength,
@@ -90,7 +116,6 @@
std::size_t internalLength, const char *format, std::size_t formatLength,
void **scratchArea, std::size_t scratchBytes, const char *sourceFile,
int sourceLine) {
- Terminator oom{sourceFile, sourceLine};
return BeginInternalFormattedIO<Direction::Output>(internal, internalLength,
format, formatLength, scratchArea, scratchBytes, sourceFile, sourceLine);
}
@@ -99,7 +124,6 @@
std::size_t internalLength, const char *format, std::size_t formatLength,
void **scratchArea, std::size_t scratchBytes, const char *sourceFile,
int sourceLine) {
- Terminator oom{sourceFile, sourceLine};
return BeginInternalFormattedIO<Direction::Input>(internal, internalLength,
format, formatLength, scratchArea, scratchBytes, sourceFile, sourceLine);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D84066.278867.patch
Type: text/x-patch
Size: 2342 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200717/c3cc1490/attachment.bin>
More information about the llvm-commits
mailing list