llvm-project/flang/test/Driver
Peter Klausler 996ef895cd [flang] Add -fno-automatic, refine IsSaved()
This legacy option (available in other Fortran compilers with various
spellings) implies the SAVE attribute for local variables on subprograms
that are not explicitly RECURSIVE.  The SAVE attribute essentially implies
static rather than stack storage.  This was the default setting in Fortran
until surprisingly recently, so explicit SAVE statements & attributes
could be and often were omitted from older codes.  Note that initialized
objects already have an implied SAVE attribute, and objects in COMMON
effectively do too, as data overlays are extinct; and since objects that are
expected to survive from one invocation of a procedure to the next in static
storage should probably be explicit initialized in the first place, so the
use cases for this option are somewhat rare, and all of them could be
handled with explicit SAVE statements or attributes.

This implicit SAVE attribute must not apply to automatic (in the Fortran sense)
local objects, whose sizes cannot be known at compilation time.  To get the
semantics of IsSaved() right, the IsAutomatic() predicate was moved into
Evaluate/tools.cpp to allow for dynamic linking of the compiler.  The
redundant predicate IsAutomatic() was noticed, removed, and its uses replaced.

GNU Fortran's spelling of the option (-fno-automatic) was added to
the clang-based driver and used for basic sanity testing.

Differential Revision: https://reviews.llvm.org/D114209
2021-11-22 10:06:38 -08:00
..
Inputs [flang][driver] Add -fintrinsic-modules-path option 2021-03-23 12:28:19 -04:00
code-gen.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
cpp-nocpp-command-line-macro.f90 [flang] Produce proper "preprocessor output" for -E option 2021-07-30 15:13:56 -07:00
cpp-nocpp-predefined-macro.F90 [flang][driver] Add support for `-cpp/-nocpp` 2021-04-07 13:01:52 +00:00
debug-measure-parse-tree.f90 [flang][driver] Remove `%flang-new` from the LIT configuration 2021-04-13 10:55:01 +00:00
debug-parsing-log.f90 [flang][windows] Run regression tests under Windows. NFCI. 2021-06-10 05:13:44 -05:00
debug-provenance.f90 [flang][windows] Run regression tests under Windows. NFCI. 2021-06-10 05:13:44 -05:00
driver-error-cc1.c [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
driver-error-cc1.cpp [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
driver-help-hidden.f90 [flang] Add -fno-automatic, refine IsSaved() 2021-11-22 10:06:38 -08:00
driver-help.f90 [flang] Add -fno-automatic, refine IsSaved() 2021-11-22 10:06:38 -08:00
driver-version.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
dump-all-bad.f90 [flang][driver] Add actions that execute despite semantic errors 2021-10-11 11:52:05 +00:00
dump-all.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
dump-parse-tree-no-sema.f90 [flang][driver] Add debug options not requiring semantic checks 2021-04-08 09:44:19 +00:00
escaped-backslash.f90 [flang] Produce proper "preprocessor output" for -E option 2021-07-30 15:13:56 -07:00
fdefault.f90 [flang][driver] Merge test/Driver and test/Flang-Driver directories 2021-03-10 11:38:13 +00:00
fixed-free-detection.f90 [flang] Produce proper "preprocessor output" for -E option 2021-07-30 15:13:56 -07:00
fixed-free-flag.f90 [flang][driver] Remove `%flang-new` from the LIT configuration 2021-04-13 10:55:01 +00:00
fixed-line-length.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
flarge-sizes.f90 [flang][nfc] Rename some test files 2021-04-08 10:09:00 +00:00
frontend-forwarding.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
get-definition.f90 [flang][driver] Add support for `-fget-definition` 2021-04-21 09:31:36 +00:00
implicit-none.f90 [flang][driver] Remove `%flang-new` from the LIT configuration 2021-04-13 10:55:01 +00:00
include-header.f90 [flang] Produce proper "preprocessor output" for -E option 2021-07-30 15:13:56 -07:00
init-only.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
input-from-stdin.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
intrinsic-module-path.f90 [flang][nfc] Rename some test files 2021-04-08 10:09:00 +00:00
macro-def-undef.F90 [flang] Produce proper "preprocessor output" for -E option 2021-07-30 15:13:56 -07:00
macro-multiline.F90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
missing-arg.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
missing-input.f90 [clang] Make the driver not diagnose errors on nonexistent linker inputs 2021-09-13 08:57:38 -04:00
module-suffix.f90 [flang][driver] Add support for `-module-suffix` 2021-06-04 13:58:04 +01:00
output-paths.f90 [flang] Refine output file generation 2021-08-21 15:18:48 +00:00
parse-error.f95 [flang] Lift -Werror checks into local functions 2021-08-06 12:43:19 -06:00
phases.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
plugin-invalid-name.f90 [flang][driver] Add print function name Plugin example 2021-08-19 08:25:34 +00:00
predefined-macros-compiler-version.F90 [flang][driver] Add support for `-cpp/-nocpp` 2021-04-07 13:01:52 +00:00
scanning-error.f95 [flang][driver] Remove `%flang-new` from the LIT configuration 2021-04-13 10:55:01 +00:00
std2018-wrong.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
std2018.f90 [flang][driver] Add options for -std=f2018 2021-03-25 13:03:16 -04:00
syntax-only.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
unparse-use-analyzed.f95 [flang][driver] Add `-fno-analyzed-objects-for-unparse` 2021-06-25 13:28:12 +01:00
use-module-error.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
use-module.f90 [flang][driver] Merge test/Driver and test/Flang-Driver directories 2021-03-10 11:38:13 +00:00
werror-parse.f [flang][nfc] Rename some test files 2021-04-08 10:09:00 +00:00
werror-scan.f [flang][nfc] Rename some test files 2021-04-08 10:09:00 +00:00
werror-sema.f90 [flang][nfc] Rename some test files 2021-04-08 10:09:00 +00:00
werror-wrong.f90 [flang][nfc] Remove `flang-new-driver` from LIT 2021-08-13 08:17:40 +00:00
write-module.f90 [flang][driver] Merge test/Driver and test/Flang-Driver directories 2021-03-10 11:38:13 +00:00