|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5 |
|
| #
03c066ab |
| 03-Jun-2022 |
Peter Klausler <[email protected]> |
[flang][runtime] Catch OPEN of connected file
Diagnose OPEN(FILE=f) when f is already connected by the same name to a distinct external I/O unit.
Differential Revision: https://reviews.llvm.org/D12
[flang][runtime] Catch OPEN of connected file
Diagnose OPEN(FILE=f) when f is already connected by the same name to a distinct external I/O unit.
Differential Revision: https://reviews.llvm.org/D127035
show more ...
|
| #
9a163ffe |
| 01-Jun-2022 |
Peter Klausler <[email protected]> |
[flang][runtime] Fix WRITE after OPEN(.., ACCESS="APPEND")
The initial size of the file was not being captured as the file position on which the first output buffer should be framed.
Differential R
[flang][runtime] Fix WRITE after OPEN(.., ACCESS="APPEND")
The initial size of the file was not being captured as the file position on which the first output buffer should be framed.
Differential Revision: https://reviews.llvm.org/D127029
show more ...
|
| #
e5a4f730 |
| 29-May-2022 |
Peter Klausler <[email protected]> |
[flang][runtime] OPEN write-only files
If a file being opened with no ACTION= is write-only then cope with it rather than defaulting prematurely to treating it as read-only.
Differential Revision:
[flang][runtime] OPEN write-only files
If a file being opened with no ACTION= is write-only then cope with it rather than defaulting prematurely to treating it as read-only.
Differential Revision: https://reviews.llvm.org/D127015
show more ...
|
| #
9878facf |
| 29-May-2022 |
Peter Klausler <[email protected]> |
[flang][runtime] INQUIRE(FILE="...",SIZE=nbytes)
Implement inquire-by-file SIZE= specifier.
Differential Revision: https://reviews.llvm.org/D127014
|
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
991696c2 |
| 28-Jan-2022 |
Peter Klausler <[email protected]> |
[flang] Debugging of ACCESS='STREAM' I/O (take 2)
Corrects the runtime implementation of I/O on files with the access mode ACCESS='STREAM'. This is a collection of edge-case tweaks to ensure that t
[flang] Debugging of ACCESS='STREAM' I/O (take 2)
Corrects the runtime implementation of I/O on files with the access mode ACCESS='STREAM'. This is a collection of edge-case tweaks to ensure that the distinctions between stream and direct/sequential files, unformatted or formatted, are respected where appropriate.
Moves NextInField() from io-stmt.h to io-stmt.cpp -- it was getting too big to keep in a header.
This patch exposed a problem with the I/O runtime on Windows and it was reverted. This version also fixes that problem; files are now opened on Windows in binary mode to prevent inadvertent insertions of carriage returns before line feeds, and those line endings (CR+LF) are now explicitly generated.
Differential Revision: https://reviews.llvm.org/D119015
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
5034e173 |
| 06-Dec-2021 |
Peter Klausler <[email protected]> |
[flang] Remove runtime check from OpenFile::Close()
In error cases it is possible to CLOSE a unit that has not been successfully connected, so don't crash when the file descriptor is negative.
Diff
[flang] Remove runtime check from OpenFile::Close()
In error cases it is possible to CLOSE a unit that has not been successfully connected, so don't crash when the file descriptor is negative.
Differential Revision: https://reviews.llvm.org/D115165
show more ...
|
| #
3f6dbf1a |
| 01-Dec-2021 |
Peter Klausler <[email protected]> |
[flang] Don't close stderr in runtime (fixes STOP output)
STOP statement output was sometimes failing to appear because the runtime flushes and shuts down open Fortran units beforehand. But when fil
[flang] Don't close stderr in runtime (fixes STOP output)
STOP statement output was sometimes failing to appear because the runtime flushes and shuts down open Fortran units beforehand. But when file descriptor 2 was closed, the STOP statement output was suppressed. The fix is to not actually close file descriptors 0-2 if they are connected to Fortran units being closed. This was already the policy when an OPEN statement was (re-)opening such a unit, so that logic has been pulled out into a member function and shared with CLOSE processing.
Differential Revision: https://reviews.llvm.org/D114897
show more ...
|
| #
80cdf0db |
| 25-Nov-2021 |
Peter Klausler <[email protected]> |
[flang] Correct INQUIRE(POSITION= & PAD=)
INQUIRE(POSITION=)'s results need to reflect the POSITION= specifier used for the OPEN statement until the unit has been repositioned. Preserve the POSITIO
[flang] Correct INQUIRE(POSITION= & PAD=)
INQUIRE(POSITION=)'s results need to reflect the POSITION= specifier used for the OPEN statement until the unit has been repositioned. Preserve the POSITION= from OPEN and used it for INQUIRE(POSITION=) until is becomes obsolete.
INQUIRE(PAD=) is implemented here in the case of an unconnected unit with Fortran 2018 semantics; i.e., "UNDEFINED", rather than Fortran 90's "YES"/"NO" (see 4.3.6 para 2). Apparent failures with F'90-only tests will persist with INQUIRE(PAD=); these discrepancies don't seem to warrant an option or environment variable.
To make the implementation of INQUIRE more closely match the language in the standard, rename IsOpen() to IsConnected(), and use it explicitly for the various INQUIRE specifiers.
Differential Revision: https://reviews.llvm.org/D114755
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
| #
830c0b90 |
| 01-Sep-2021 |
Peter Klausler <[email protected]> |
[flang] Move runtime API headers to flang/include/flang/Runtime
Move the closure of the subset of flang/runtime/*.h header files that are referenced by source files outside flang/runtime (apart from
[flang] Move runtime API headers to flang/include/flang/Runtime
Move the closure of the subset of flang/runtime/*.h header files that are referenced by source files outside flang/runtime (apart from unit tests) into a new directory (flang/include/flang/Runtime) so that relative include paths into ../runtime need not be used.
flang/runtime/pgmath.h.inc is moved to flang/include/flang/Evaluate; it's not used by the runtime.
Differential Revision: https://reviews.llvm.org/D109107
show more ...
|
| #
651f58bf |
| 02-Sep-2021 |
Diana Picus <[email protected]> |
[flang] Remove *- C++ -* incantation from runtime .cpp files. NFC
We should only need to spell the language out in .h files.
Differential Revision: https://reviews.llvm.org/D109138
|
|
Revision tags: llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init |
|
| #
cbad5761 |
| 26-Jul-2021 |
Michael Kruse <[email protected]> |
[flang][msvc] Fix external-io unittest.
Fix the external-io unittest under Windows.
In particular, fixes the following issues:
1. When creating a temporary file, open it with read+write permissi
[flang][msvc] Fix external-io unittest.
Fix the external-io unittest under Windows.
In particular, fixes the following issues:
1. When creating a temporary file, open it with read+write permissions using the _O_RDWR flag. _S_IREAD and _S_IWRITE are for the file permissions of the created file.
2. _chsize returns 0 on success (just like ftruncate).
3. To set a std::optional, use its assign-operator overload instead of getting a reference to its value and overwrite that. The latter is invalid if the std::optional has no value, and is caught by msvc's debug STL.
The non-GTest unittest is currently not executed under Windows because of the added .exe extension to the output file: external-io.text.exe. llvm-lit skips the file because .exe is not in the lists of test suffixes (.test is). D105315 is going to change that by converting it to a GTest-test.
Reviewed By: awarzynski
Differential Revision: https://reviews.llvm.org/D106726
show more ...
|
| #
b43e083b |
| 20-Jul-2021 |
peter klausler <[email protected]> |
[flang] Don't require newline at EOF in unformatted sequential runtime input
F18 was sigalling an end-of-file error condition when reading an unformatted sequential input file without an ultimate ne
[flang] Don't require newline at EOF in unformatted sequential runtime input
F18 was sigalling an end-of-file error condition when reading an unformatted sequential input file without an ultimate newline (or CR-LF). Other Fortran implementations can handle it, so change the runtime to support it.
Differential Revision: https://reviews.llvm.org/D106321
show more ...
|
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2 |
|
| #
8cfe9c02 |
| 18-Feb-2021 |
Mehdi Chinoune <[email protected]> |
[Flang] Fix compilation on MinGW-w64
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D94707
|
|
Revision tags: llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5 |
|
| #
bcd05599 |
| 29-Sep-2020 |
Michael Kruse <[email protected]> |
[flang][msvc] Define access flags under Windows. NFC.
The flags F_OK, R_OK and W_OK are defined in unistd.h, which does not exist under the Windows platform. Windows still defines the `access` funct
[flang][msvc] Define access flags under Windows. NFC.
The flags F_OK, R_OK and W_OK are defined in unistd.h, which does not exist under the Windows platform. Windows still defines the `access` function. Its access flags are documented at https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/access-waccess. For compatibility, define the flags F_OK, R_OK and W_OK using these constants.
This patch is part of the series to make flang compilable with MS Visual Studio <http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html>.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D88508
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2 |
|
| #
e3d38b7b |
| 12-Aug-2020 |
Michael Kruse <[email protected]> |
[flang][msvc] Tell windows.h to not define min/max macros.
Defining macros for min and max breaks using std::min and std::max. Defining NOMINMAX before including the header stops them from being def
[flang][msvc] Tell windows.h to not define min/max macros.
Defining macros for min and max breaks using std::min and std::max. Defining NOMINMAX before including the header stops them from being defined.
See https://web.archive.org/web/20170911092732/https://support.microsoft.com/en-us/help/143208/prb-using-stl-in-windows-program-can-cause-min-max-conflicts for details.
This patch is part of the series to [[ http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html | make flang compilable with MS Visual Studio ]].
Reviewed By: isuruf
Differential Revision: https://reviews.llvm.org/D85656
show more ...
|
| #
d8334c43 |
| 03-Aug-2020 |
peter klausler <[email protected]> |
[flang] Acquire file accessibility, size, positioning
Extend the raw file wrapper to get accessibility, positioning, and size information. This is needed for INQUIRE (to follow).
Differential Revi
[flang] Acquire file accessibility, size, positioning
Extend the raw file wrapper to get accessibility, positioning, and size information. This is needed for INQUIRE (to follow).
Differential Revision: https://reviews.llvm.org/D85160
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc1 |
|
| #
ea4758a1 |
| 17-Jul-2020 |
peter klausler <[email protected]> |
[flang] Rework read/write permission management for runtime file opening
Anonymous Fortran unit files (e.g., "./fort.7") need to be created O_RDWR so that they can be written, rewound, and read. Ot
[flang] Rework read/write permission management for runtime file opening
Anonymous Fortran unit files (e.g., "./fort.7") need to be created O_RDWR so that they can be written, rewound, and read. Other files opened with no ACTION= specifier need to set read/write permissions based on the file, if it exists.
Reviewed By: sscalpone
Differential Revision: https://reviews.llvm.org/D84063
show more ...
|
|
Revision tags: llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3 |
|
| #
1b183918 |
| 06-Jul-2020 |
Tim Keith <[email protected]> |
[flang] Add missing include for std::min
This was causing the build to fail on macos.
Differential Revision: https://reviews.llvm.org/D83237
|
| #
7926969a |
| 03-Jul-2020 |
peter klausler <[email protected]> |
[flang] Track known file size, add IsATerminal (ext. I/O work part 5)
Add a data member knownSize_ and an accessor to allow the size of an external file to be tracked when known. Also add a wrapper
[flang] Track known file size, add IsATerminal (ext. I/O work part 5)
Add a data member knownSize_ and an accessor to allow the size of an external file to be tracked when known. Also add a wrapper for ::isatty() here in the filesystem encapsulation module. These features are needed for the external I/O rework changes still to come.
Reviewed By: sscalpone
Differential Revision: https://reviews.llvm.org/D83141
show more ...
|
| #
98d576c7 |
| 03-Jul-2020 |
peter klausler <[email protected]> |
[flang] Improve API for runtime allocator (I/O runtime work part 3)
New<A> used to return an A&; now it returns an OwningPtr<A> to force better ownership tracking of allocations. Its API has also b
[flang] Improve API for runtime allocator (I/O runtime work part 3)
New<A> used to return an A&; now it returns an OwningPtr<A> to force better ownership tracking of allocations. Its API has also been split into New<A> and SizedNew<A> to allow allocations with a size override.
Reviewed By: tskeith
Differential Revision: https://reviews.llvm.org/D83108
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1 |
|
| #
1f879005 |
| 29-Mar-2020 |
Tim Keith <[email protected]> |
[flang] Reformat with latest clang-format and .clang-format
Original-commit: flang-compiler/f18@9fe84f45d7fd685051004678d6b5775dcc4c6f8f Reviewed-on: https://github.com/flang-compiler/f18/pull/1094
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4 |
|
| #
ddb68d24 |
| 12-Mar-2020 |
Isuru Fernando <[email protected]> |
[flang] Support windows where mkstemp and ftruncate doesn't exist
Original-commit: flang-compiler/f18@7b7e30845df14886342d0d3b7020d34d52256bd8 Reviewed-on: https://github.com/flang-compiler/f18/pull
[flang] Support windows where mkstemp and ftruncate doesn't exist
Original-commit: flang-compiler/f18@7b7e30845df14886342d0d3b7020d34d52256bd8 Reviewed-on: https://github.com/flang-compiler/f18/pull/1069
show more ...
|
|
Revision tags: llvmorg-10.0.0-rc3 |
|
| #
3b635714 |
| 13-Feb-2020 |
peter klausler <[email protected]> |
[flang] Use hash table for UnitMap, avoid C++ STL binary dependence
Scan FORMAT strings locally to avoid C++ binary runtime dependence when computing deepest parenthesis nesting
Remove a dependency
[flang] Use hash table for UnitMap, avoid C++ STL binary dependence
Scan FORMAT strings locally to avoid C++ binary runtime dependence when computing deepest parenthesis nesting
Remove a dependency on ostream from runtime
Remove remaining direct external references from runtime to C++ library binaries
Remove runtime dependences on lib/common
SetPos() and SetRec()
Instantiate templates for input
Begin input; rearrange locking, deal with CLOSE races
View()
Update error message in test to agree with compiler change
First cut at real input
More robust I/O runtime error handling
Debugging of REAL input
Add iostat.{h,cpp}
Rename runtime/numeric-* to runtime/edit-*
Move templates around, templatize integer output editing
Move LOGICAL and CHARACTER output from io-api.cpp to edit-output.cpp
Change pointer argument to reference
More list-directed input
Complex list-directed input
Use enum class Direction rather than bool for templates
Catch up with changes to master
Undo reformatting of Lower code
Use record number instead of subscripts for internal unit
Unformatted sequential backspace
Testing and debugging
Dodge bogus GCC warning
Add <cstddef> for std::size_t to fix CI build
Address review comments
Original-commit: flang-compiler/f18@50406b349609efdde76e48bf2caa039d031dd1c4 Reviewed-on: https://github.com/flang-compiler/f18/pull/1053
show more ...
|
|
Revision tags: llvmorg-10.0.0-rc2 |
|
| #
95696d56 |
| 05-Feb-2020 |
peter klausler <[email protected]> |
[flang] Progress on Fortran I/O runtime
Use internal units for internal I/O state
Replace use of virtual functions
reference_wrapper
Internal formatted output to array descriptor
Delete dead cod
[flang] Progress on Fortran I/O runtime
Use internal units for internal I/O state
Replace use of virtual functions
reference_wrapper
Internal formatted output to array descriptor
Delete dead code
Begin list-directed internal output
Refactorings and renamings for clarity
List-directed external I/O (character)
COMPLEX list-directed output
Control list items
First cut at unformatted I/O
More OPEN statement work; rename class to ExternalFileUnit
Complete OPEN (exc. for POSITION=), add CLOSE()
OPEN(POSITION=)
Flush buffers on crash and for terminal output; clean up
Documentation
Fix backquote in documentation
Fix typo in comment
Begin implementation of input
Refactor binary floating-point properties to a new header, simplify numeric output editing
Dodge spurious GCC 7.2 build warning
Address review comments
Original-commit: flang-compiler/f18@9c4bba11cf2329575ea9ee446f69e9caa797135c Reviewed-on: https://github.com/flang-compiler/f18/pull/982
show more ...
|
|
Revision tags: llvmorg-10.0.0-rc1 |
|
| #
f7be2518 |
| 24-Jan-2020 |
peter klausler <[email protected]> |
[flang] Initial buffer framing code
Address review comments
Integer output data editing (I,B,O,Z)
Full integer output formatting
Stub out some work in progress
Progress on E output data editing
[flang] Initial buffer framing code
Address review comments
Integer output data editing (I,B,O,Z)
Full integer output formatting
Stub out some work in progress
Progress on E output data editing
E, D, EN, and ES output editing done
Fw.d output editing
Real G output editing
G output editing for reals
Make environment a distinct module
CHARACTER and LOGICAL output editing
Minimal decimal representations for E0, F0, G0 editing
Move real output editing code into its own file
Fix/dodge some GCC build problems
Prep work for external I/O statement state
External HELLO, WORLD
Fix build problem with GCC
Add virtual destructors where needed
Add new test
Original-commit: flang-compiler/f18@c3f1774f8eee903928b7e46636edfb03425eabc0 Reviewed-on: https://github.com/flang-compiler/f18/pull/950
show more ...
|