llvm-project/flang/lib/Semantics
Pete Steinfeld 38095549c6 [flang] Constraint checks C751 to C760
Summary:
Many of these were already implemented, and I just annotated the tests and/or
the code.

C752 was a simple check to verify that CONTIGUOUS components are arrays with

C754 proved to be virtually identical to C750 that I implemented previously.
This caused me to remove the distinction between specification expressions for
type parameters and bounds expressions that I'd previously created.
the POINTER attribute.

I also changed the error messages to specify that errors in specification
expressions could arise from either bad derived type components or type
parameters.

In cases where we detect a type param that was not declared, I created a symbol
marked as erroneous.  That avoids subsequent semantic process for expressions
containing the symbol.  This change caused me to adjust tests resolve33.f90 and
resolve34.f90.  Also, I avoided putting out error messages for erroneous type
param symbols in `OkToAddComponent()` in resolve-names.cpp and in
`EvaluateParameters()`, type.cpp.

C756 checks that procedure components have the POINTER attribute.

Reviewers: tskeith, klausler, DavidTruby

Subscribers: llvm-commits

Tags: #llvm, #flang

Differential Revision: https://reviews.llvm.org/D79798
2020-05-15 18:50:14 -07:00
..
CMakeLists.txt [flang]Semantics for SELECT RANK. 2020-05-08 08:52:31 +05:30
assignment.cpp [flang] Add message formatting for std::int64_t 2020-04-03 17:28:23 -07:00
assignment.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
attr.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
canonicalize-do.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
canonicalize-do.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
canonicalize-omp.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
canonicalize-omp.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-allocate.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-allocate.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-arithmeticif.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-arithmeticif.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-call.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-call.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-case.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-case.h [flang] Semantics for SELECT CASE 2020-03-27 12:02:11 -07:00
check-coarray.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-coarray.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-data.cpp Rework DATA statement semantics to use typed expressions 2020-04-25 10:29:34 -07:00
check-data.h Rework DATA statement semantics to use typed expressions 2020-04-25 10:29:34 -07:00
check-deallocate.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-deallocate.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-declarations.cpp [flang] Constraint checks C751 to C760 2020-05-15 18:50:14 -07:00
check-declarations.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-do-forall.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-do-forall.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-if-stmt.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-if-stmt.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-io.cpp [flang] Add missing check for unresolved name 2020-04-23 07:00:38 -07:00
check-io.h [flang] Process names in ASSIGN and assigned GOTO 2020-04-03 14:58:07 -07:00
check-namelist.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-namelist.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-nullify.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-nullify.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-omp-structure.cpp [flang][NFC] Fix gcc 9 warning in omp combined construct checks. 2020-04-27 17:59:06 +01:00
check-omp-structure.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-purity.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-purity.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-return.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-return.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-select-rank.cpp [flang]Semantics for SELECT RANK. 2020-05-08 08:52:31 +05:30
check-select-rank.h [flang]Semantics for SELECT RANK. 2020-05-08 08:52:31 +05:30
check-stop.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
check-stop.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
compute-offsets.cpp [flang][NFC] Replace "align" with "alignment" 2020-05-06 15:03:30 -07:00
compute-offsets.h [flang] Compute sizes and offsets for symbols 2020-04-23 14:54:34 -07:00
expression.cpp [flang] Make implicit conversion explicit in assignment 2020-05-09 09:11:00 -07:00
mod-file.cpp [flang] Fix bug with IMPORT of USE of USE 2020-05-11 13:28:07 -07:00
mod-file.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
pointer-assignment.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
pointer-assignment.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
program-tree.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
program-tree.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
resolve-labels.cpp [flang] Process names in ASSIGN and assigned GOTO 2020-04-03 14:58:07 -07:00
resolve-labels.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
resolve-names-utils.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
resolve-names-utils.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
resolve-names.cpp [flang] Constraint checks C751 to C760 2020-05-15 18:50:14 -07:00
resolve-names.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
rewrite-parse-tree.cpp [flang] Process names in ASSIGN and assigned GOTO 2020-04-03 14:58:07 -07:00
rewrite-parse-tree.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
scope.cpp [flang][NFC] Add accessors to equivalence and common blocks 2020-05-06 12:22:28 -07:00
semantics.cpp [flang]Semantics for SELECT RANK. 2020-05-08 08:52:31 +05:30
symbol.cpp [flang]Semantics for SELECT RANK. 2020-05-08 08:52:31 +05:30
tools.cpp [flang] New implementation for checks for constraints C741 through C750 2020-05-05 09:37:39 -07:00
type.cpp [flang] Constraint checks C751 to C760 2020-05-15 18:50:14 -07:00
unparse-with-symbols.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00