llvm-project/flang/test/Driver
Andrzej Warzynski 6f8ef1d6e8 [flang][driver] Add actions that execute despite semantic errors
This patch adds a new abstract class for frontend actions:
`PrescanAndSemaDebugAction`. It's almost identical to
`PrescanAndSemaAction`, but in the presence of semantic errors it does
not skip the corresponding `ExecuteAction` specialisation. Instead, it
runs it as if there were no semantic errors. This class is for developer
actions only (i.e.  front-end driver options).

The new behaviour does not affect the return code from `flang-new -fc1`
when the input file is semantically incorrect. The return code is
inferred from the number of driver diagnostics generated in
`CompilerInstance::ExecuteAction` and this patch does not change that.
More specifically, the semantic errors are still reported and hence the
driver is able to correctly report that the compilation has failed (with
a non-zero return code).

This new base class is meant for debug actions only and
`DebugDumpAllAction` is updated to demonstrate the new behaviour. With
this change, `flang-new -fc1 -fdebug-dump-all` dumps the parse tree and
symbols for all input files, regardless of whether any semantic errors
were found.

This patch addresses https://bugs.llvm.org/show_bug.cgi?id=52097.

Differential Revision: https://reviews.llvm.org/D111308
2021-10-11 11:52:05 +00: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 [OptTable] Refine how `printHelp` treats empty help texts 2021-08-19 09:30:15 +00:00
driver-help.f90 [OptTable] Refine how `printHelp` treats empty help texts 2021-08-19 09:30:15 +00: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