llvm-project/flang/lib/Parser
Pete Steinfeld 15fa287b64 [flang] Support for image selectors
Summary:
This change implements support for image selectors and image selector
specifications as described in section 9.6.

In check-coarray[.h,cpp] I changed the `Leave()` function for
`parser::ImageSelectorSpec` to take a `parser::ImageSelector`, which
contains a list of image selector specifications.  This allows us to
detect when the same specification is used more than once.  I also added
code to analyze the expressions for the image selector specifications to
expression.cpp and a test for all of the conditions to check at
compile-time.

Note that we do not check at compile-time to see if the value of the
cosubscripts are within the specified cobounds.  We also do not check anything
related to selecting a valid team.  We also do not check that the denotation of
the `stat-variable` is not dependent on the evaluation of an entity in the
same statement.

Reviewers: klausler, tskeith, DavidTruby

Subscribers: llvm-commits

Tags: #llvm, #flang

Differential Revision: https://reviews.llvm.org/D83336
2020-07-08 07:31:54 -07:00
..
CMakeLists.txt [flang][openmp] Use common Directive and Clause enum from llvm/Frontend 2020-07-01 20:58:11 -04:00
Fortran-parsers.cpp [flang] DATA stmt processing (part 4/4): Check & convert DATA 2020-06-19 13:26:20 -07:00
basic-parsers.h [flang] Dodge bogus uninitialized data warning from gcc 10.1 via code cleanup 2020-06-12 10:05:05 -07:00
char-block.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
char-buffer.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
char-set.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
characters.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
debug-parser.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
debug-parser.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
executable-parsers.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
expr-parsers.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
expr-parsers.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
instrumented-parser.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
io-parsers.cpp [flang] Process names in ASSIGN and assigned GOTO 2020-04-03 14:58:07 -07:00
message.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
misc-parsers.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
openmp-parsers.cpp [flang][OpenMP] Enhance parser support for flush construct to OpenMP 5.0 2020-07-07 14:27:13 +05:30
parse-tree.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
parsing.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
preprocessor.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
preprocessor.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
prescan.cpp [flang] Fix line continuation after bare labels (fm200.f) 2020-06-26 17:07:38 -07:00
prescan.h [flang] Fix line continuation after bare labels (fm200.f) 2020-06-26 17:07:38 -07:00
program-parsers.cpp [flang] Dodge bogus uninitialized data warning from gcc 10.1 via code cleanup 2020-06-12 10:05:05 -07:00
provenance.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
source.cpp [flang] Fix handling of files without terminating newlines. 2020-04-27 12:40:22 +01:00
stmt-parser.h [flang] Dodge bogus uninitialized data warning from gcc 10.1 via code cleanup 2020-06-12 10:05:05 -07:00
token-parsers.h [flang] Dodge bogus uninitialized data warning from gcc 10.1 via code cleanup 2020-06-12 10:05:05 -07:00
token-sequence.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
token-sequence.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
tools.cpp [flang] Support for image selectors 2020-07-08 07:31:54 -07:00
type-parser-implementation.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
type-parsers.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
unparse.cpp [flang][OpenMP] Enhance parser support for flush construct to OpenMP 5.0 2020-07-07 14:27:13 +05:30
user-state.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00