[flang-commits] [PATCH] D127431: [flang][runtime] Don't loop in runtime if blank appears in BOZ input
Peter Klausler via Phabricator via flang-commits
flang-commits at lists.llvm.org
Mon Jun 13 16:31:12 PDT 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rG850097d6dca6: [flang][runtime] Don't loop in runtime if blank appears in BOZ input (authored by klausler).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D127431/new/
https://reviews.llvm.org/D127431
Files:
flang/runtime/edit-input.cpp
Index: flang/runtime/edit-input.cpp
===================================================================
--- flang/runtime/edit-input.cpp
+++ flang/runtime/edit-input.cpp
@@ -21,14 +21,16 @@
IoStatementState &io, const DataEdit &edit, void *n, std::size_t bytes) {
std::optional<int> remaining;
std::optional<char32_t> next{io.PrepareInput(edit, remaining)};
- if (*next == '0') {
+ if (next.value_or('?') == '0') {
do {
next = io.NextInField(remaining, edit);
} while (next && *next == '0');
}
// Count significant digits after any leading white space & zeroes
int digits{0};
+ int chars{0};
for (; next; next = io.NextInField(remaining, edit)) {
+ ++chars;
char32_t ch{*next};
if (ch == ' ' || ch == '\t') {
continue;
@@ -52,7 +54,7 @@
return false;
}
// Reset to start of significant digits
- io.HandleRelativePosition(-digits);
+ io.HandleRelativePosition(-chars);
remaining.reset();
// Make a second pass now that the digit count is known
std::memset(n, 0, bytes);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D127431.436602.patch
Type: text/x-patch
Size: 1054 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/flang-commits/attachments/20220613/8cdcc1b8/attachment.bin>
More information about the flang-commits
mailing list