llvm-project/flang/runtime
Jean Perier c5729f2e63 [flang] Set default form if unspecified at end of OPEN statement
The standard specifies that the form must be set to a default at the
end of an open statement (C.7.4 point 2) where it was not specified.
Only in the case of a pre-connected unit can the form be deferred
until the first data transfer statement.

Set back the default form setting in OpenStatementState::EndIoStatement
that had been removed when deferring the pre-connected unit from setting
in 199a623ebf.

Also return "UNDEFINED" instead of "UNKNOWN" to the FORM inquiry when the
form was not yet specified as defined in 12.10.2.12.

Related test: syntax 215a216.

Differential Revision: https://reviews.llvm.org/D108990
2021-09-01 08:40:43 +02:00
..
CMakeLists.txt [flang] Implement runtime Assign() 2021-08-09 09:31:32 -07:00
ISO_Fortran_binding.cpp [flang] Add clang-tidy check for braces around if 2021-06-16 09:13:53 +00:00
allocatable.cpp [flang] Implement runtime Assign() 2021-08-09 09:31:32 -07:00
allocatable.h [flang] Implement runtime Assign() 2021-08-09 09:31:32 -07:00
assign.cpp [flang] Implement runtime Assign() 2021-08-09 09:31:32 -07:00
assign.h [flang] Implement runtime Assign() 2021-08-09 09:31:32 -07:00
buffer.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
buffer.h [flang] Fix Boolean flag arguments 2021-04-14 10:19:44 -07:00
c-or-cpp.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
character.cpp [flang] Correct the subscripts used for arguments to character intrinsics 2021-06-16 10:26:25 -07:00
character.h [flang] Remove interfaces for Character[Min|Max][Val|Loc]. NFC 2021-04-28 07:58:06 +00:00
command.h [flang] Add runtime interface for GET_COMMAND_ARGUMENT 2021-08-30 07:31:13 +00:00
complex-reduction.c [flang] Implement DOT_PRODUCT in the runtime 2021-05-13 10:40:07 -07:00
complex-reduction.h [flang] Implement DOT_PRODUCT in the runtime 2021-05-13 10:40:07 -07:00
config.h.cmake [flang] Support platforms without strerror_r 2020-03-28 16:46:43 -05:00
connection.cpp [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
connection.h [flang] Fix regression from recent runtime input fix 2021-08-17 10:12:56 -07:00
copy.cpp [flang] Runtime implementation for default derived type formatted I/O 2021-06-18 10:30:28 -07:00
copy.h [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
cpp-type.h [flang] Implement reductions in the runtime 2021-04-01 11:23:50 -07:00
derived-api.cpp [flang] Run-time derived type initialization and destruction 2021-07-20 15:24:16 -07:00
derived-api.h [flang] Run-time derived type initialization and destruction 2021-07-20 15:24:16 -07:00
derived.cpp [flang] Implement runtime Assign() 2021-08-09 09:31:32 -07:00
derived.h [flang] Implement runtime Assign() 2021-08-09 09:31:32 -07:00
descriptor-io.cpp [flang] Fix legitimate warning from latest GCC 2021-07-20 11:40:34 -07:00
descriptor-io.h [flang] Run-time derived type initialization and destruction 2021-07-20 15:24:16 -07:00
descriptor.cpp [flang] Run-time derived type initialization and destruction 2021-07-20 15:24:16 -07:00
descriptor.h [flang] Remove now-unused private data member, silence warning 2021-07-20 17:24:39 -07:00
dot-product.cpp [flang] Implement MATMUL in the runtime 2021-05-18 10:59:52 -07:00
edit-input.cpp [flang] runtime: fix problems with I/O around EOF & delimited characters 2021-07-23 18:23:26 -07:00
edit-input.h [flang][msvc] Avoid dependence on long double 2020-10-07 15:12:08 -07:00
edit-output.cpp [flang] runtime: For Fw.d formatting, don't oscillate forever 2021-08-04 12:19:23 -07:00
edit-output.h [flang][msvc] Avoid dependence on long double 2020-10-07 15:12:08 -07:00
entry-names.h [flang] Implement reductions in the runtime 2021-04-01 11:23:50 -07:00
environment.cpp [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
environment.h [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
extrema.cpp [flang] Implement NORM2 in the runtime 2021-05-07 13:23:21 -07:00
file.cpp [flang][msvc] Fix external-io unittest. 2021-07-26 15:34:35 -05:00
file.h [flang] Acquire file accessibility, size, positioning 2020-08-03 16:42:48 -07:00
findloc.cpp [flang] (NFC) Break up flang/runtime/reduction.cpp 2021-04-22 15:24:10 -07:00
format-implementation.h [flang] Fix "non-advancing" I/O, support $ in FORMAT 2021-06-28 12:18:25 -07:00
format.cpp [flang] Implement user-defined derived type runtime I/O 2021-06-28 11:36:19 -07:00
format.h [flang] Fix "non-advancing" I/O, support $ in FORMAT 2021-06-28 12:18:25 -07:00
internal-unit.cpp [flang] External I/O runtime work, repackaged (part 1) 2020-07-02 15:17:26 -07:00
internal-unit.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
io-api.cpp [flang] Fix "non-advancing" I/O, support $ in FORMAT 2021-06-28 12:18:25 -07:00
io-api.h [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
io-error.cpp [flang] Implement user-defined derived type runtime I/O 2021-06-28 11:36:19 -07:00
io-error.h [flang] Implement user-defined derived type runtime I/O 2021-06-28 11:36:19 -07:00
io-stmt.cpp [flang] Set default form if unspecified at end of OPEN statement 2021-09-01 08:40:43 +02:00
io-stmt.h [flang] Fix regression from recent runtime input fix 2021-08-17 10:12:56 -07:00
iostat.cpp [flang] Define new runtime error IOSTAT values (I/O runtime work part 4) 2020-07-03 12:41:33 -07:00
iostat.h [flang] Define new runtime error IOSTAT values (I/O runtime work part 4) 2020-07-03 12:41:33 -07:00
lock.h [flang] More Fortran runtime support for CHARACTER operations 2020-06-17 15:51:48 -07:00
magic-numbers.h [flang] Implement runtime support for basic ALLOCATE/DEALLOCATE 2020-11-12 10:21:40 -08:00
main.cpp [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
main.h [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
matmul.cpp [flang] Implement MATMUL in the runtime 2021-05-18 10:59:52 -07:00
matmul.h [flang] Implement MATMUL in the runtime 2021-05-18 10:59:52 -07:00
memory.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
memory.h [flang] Implement runtime support for INQUIRE statements 2020-08-03 17:15:08 -07:00
misc-intrinsic.cpp [flang] Runtime API for data pointers 2021-07-19 08:23:06 -07:00
misc-intrinsic.h [flang] TRANSFER() intrinsic function 2021-04-02 10:41:37 -07:00
namelist.cpp [flang] Add missing call to BeginReadingRecord() 2021-08-17 11:10:25 -07:00
namelist.h [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
numeric.cpp [flang] Correct off-by-one error in SET_EXPONENT 2021-08-12 12:50:16 -07:00
numeric.h [flang] Define missing & needed IEEE_ARITHMETIC symbols 2021-04-19 11:44:43 -07:00
pgmath.h.inc [flang] Rework host runtime folding and enable REAL(2) folding with it. 2020-10-14 16:40:44 +02:00
pointer.cpp [flang] Run-time derived type initialization and destruction 2021-07-20 15:24:16 -07:00
pointer.h [flang] Runtime API for data pointers 2021-07-19 08:23:06 -07:00
product.cpp [flang] (NFC) Break up flang/runtime/reduction.cpp 2021-04-22 15:24:10 -07:00
random.cpp [flang] Fixed simple typo in runtime code 2021-06-10 11:14:25 -06:00
random.h [flang] RANDOM_NUMBER, RANDOM_SEED, RANDOM_INIT in runtime 2021-04-09 17:03:11 -07:00
reduction-templates.h Fix runtime internal error with certain intrinsics that can take a scalar 2021-07-29 13:08:41 -07:00
reduction.cpp Fix runtime internal error with certain intrinsics that can take a scalar 2021-07-29 13:08:41 -07:00
reduction.h [flang] Fix two typos in API names 2021-08-11 12:43:37 -07:00
stat.cpp [flang] Update DE/ALLOCATE statement runtime message processing 2021-03-12 15:42:06 -08:00
stat.h [flang] Update DE/ALLOCATE statement runtime message processing 2021-03-12 15:42:06 -08:00
stop.cpp [flang] Extend runtime API for PAUSE to allow a stop code 2020-10-01 17:20:11 -07:00
stop.h [flang] Extend runtime API for PAUSE to allow a stop code 2020-10-01 17:20:11 -07:00
sum.cpp [flang] Use a "double-double" accumulator in SUM 2021-06-16 14:29:39 -07:00
terminator.cpp [flang] Fix race condition in runtime 2021-05-06 11:09:30 -07:00
terminator.h [flang] Implement IPARITY, PARITY, and FINDLOC reductions 2021-04-20 12:25:42 -07:00
time-intrinsic.cpp [flang] Implement Posix version of DATE_AND_TIME runtime 2021-08-25 11:16:52 +02:00
time-intrinsic.h [flang] Implement Posix version of DATE_AND_TIME runtime 2021-08-25 11:16:52 +02:00
tools.cpp [flang] Implement user-defined derived type runtime I/O 2021-06-28 11:36:19 -07:00
tools.h [flang] Runtime implementation for default derived type formatted I/O 2021-06-18 10:30:28 -07:00
transformational.cpp [flang] Fix the vector version of EOSHIFT with a BOUNDARY argument 2021-08-17 15:20:15 -07:00
transformational.h Change the flang reshape runtime routine interface to use a result 2021-06-24 17:05:12 -07:00
type-code.cpp [flang] Implement reductions in the runtime 2021-04-01 11:23:50 -07:00
type-code.h [flang] Correct TypeCode::IsLogical() 2021-04-12 12:57:22 -07:00
type-info.cpp [flang] Implement runtime Assign() 2021-08-09 09:31:32 -07:00
type-info.h [flang] Silence new build warning 2021-08-09 11:57:45 -07:00
unit-map.cpp [flang] Fix "non-advancing" I/O, support $ in FORMAT 2021-06-28 12:18:25 -07:00
unit-map.h [flang] Implement runtime support for INQUIRE statements 2020-08-03 17:15:08 -07:00
unit.cpp [flang] runtime: fix WRITE after BACKSPACE on variable-length file 2021-08-24 09:34:52 -07:00
unit.h [flang] Fix "non-advancing" I/O, support $ in FORMAT 2021-06-28 12:18:25 -07:00