llvm/flang/lib/semantics
Tim Keith fe899298d0 [flang] Check constraints on passed-object dummy argument
The passed-object dummy argument cannot be checked until the
interfaces of contained subprograms are known. To accomplish this,
add `FinishSpecificationPart` pass to run after all specification
parts have been analyzed but before any of the execution parts.
This visits all derived types defined in each scope and performs
the checks on each procedure component and procedure binding.

Add a flag to `ParamValue` to distinguish kind from len parameters.

Fix some tests that had errors we now detect.

Original-commit: flang-compiler/f18@4789643c5b
Reviewed-on: https://github.com/flang-compiler/f18/pull/521
2019-06-23 10:59:32 -07:00
..
assignment.cc [flang] Resolve and check names in equivalence sets 2019-06-11 18:26:48 -07:00
assignment.h [flang] Remove OwningPointer and ForwardReference 2019-05-06 07:51:07 -07:00
attr.cc [flang] Changed .clang-format so that it will not add a comment after the closing brace of each namespace. Removed all such previous comments from all .cc and .h files 2018-10-25 05:55:23 -07:00
attr.h [flang] Changed .clang-format so that it will not add a comment after the closing brace of each namespace. Removed all such previous comments from all .cc and .h files 2018-10-25 05:55:23 -07:00
canonicalize-do.cc [flang] Simplify Semantics::Perform 2019-03-06 17:07:25 -08:00
canonicalize-do.h [flang] Simplify Semantics::Perform 2019-03-06 17:07:25 -08:00
check-allocate.cc [flang] Add IsIsoCType() 2019-06-21 17:32:11 -07:00
check-allocate.h [flang] First batch of semantics checks for allocate 2019-04-23 03:05:56 -07:00
check-arithmeticif.cc [flang] work in progress 2019-05-20 13:37:28 -07:00
check-arithmeticif.h [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-coarray.cc [flang] work in progress 2019-05-20 13:37:28 -07:00
check-coarray.h [flang] Save and fetch analyzed Expr in Variable 2019-04-18 17:48:55 -07:00
check-deallocate.cc [flang] Move HasError, SetError to SemanticsContext 2019-04-25 14:47:39 -07:00
check-deallocate.h [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-do.cc [flang] Downgrading the semantics check for C1127 to a warning. 2019-06-24 13:09:21 -07:00
check-do.h [flang] Renamed check.*do.*stmt to check.*do to better conform with the grammar. 2019-06-10 14:03:24 -07:00
check-if-stmt.cc [flang] Reactivate tree-driven constraint checking on expressions. 2019-04-15 09:41:41 -07:00
check-if-stmt.h [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-io.cc [flang] Resolve and check names in equivalence sets 2019-06-11 18:26:48 -07:00
check-io.h [flang] work in progress 2019-05-20 13:37:28 -07:00
check-nullify.cc [flang] Move HasError, SetError to SemanticsContext 2019-04-25 14:47:39 -07:00
check-nullify.h [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-return.cc [flang] FindContainingSubprogram returns a pointer, not a reference. 2019-04-15 10:59:12 -07:00
check-return.h [flang] Implement semantic checks for return and alt-return. 2019-04-15 10:59:12 -07:00
check-stop.cc [flang] Use SomeExpr rather than GenericExprWrapper in checkers 2019-04-19 08:22:28 -07:00
check-stop.h [flang] Semantics checker for STOP and ERROR STOP statements - post review changes 2019-04-17 14:13:23 -07:00
CMakeLists.txt [flang] Renamed check.*do.*stmt to check.*do to better conform with the grammar. 2019-06-10 14:03:24 -07:00
expression.cc [flang] Fix source provenance of .NOT., add ALLOCATED intrinsic 2019-06-19 11:50:07 -07:00
expression.h [flang] Fix source provenance of .NOT., add ALLOCATED intrinsic 2019-06-19 11:50:07 -07:00
mod-file.cc [flang] Add passArg to ProcEntityDetails and ProcBindingDetails 2019-06-22 18:53:16 -07:00
mod-file.h [flang] Simplify Semantics::Perform 2019-03-06 17:07:25 -08:00
program-tree.cc [flang] Move ProgramTree to its own file 2019-05-06 10:12:27 -07:00
program-tree.h [flang] Move ProgramTree to its own file 2019-05-06 10:12:27 -07:00
resolve-labels.cc [flang] Replace formatting of CharBlock & string 2019-05-07 09:24:32 -07:00
resolve-labels.h [flang] Changed .clang-format so that it will not add a comment after the closing brace of each namespace. Removed all such previous comments from all .cc and .h files 2018-10-25 05:55:23 -07:00
resolve-names-utils.cc [flang] EQUIVALENCE numeric/character as extension with warning 2019-06-19 16:34:50 -07:00
resolve-names-utils.h [flang] Handle substring of array element in EQUIVALENCE 2019-06-12 12:38:04 -07:00
resolve-names.cc [flang] Check constraints on passed-object dummy argument 2019-06-23 10:59:32 -07:00
resolve-names.h [flang] Simplify Semantics::Perform 2019-03-06 17:07:25 -08:00
rewrite-parse-tree.cc [flang] Remove support for Names in messages for now. 2019-05-07 10:04:21 -07:00
rewrite-parse-tree.h [flang] Simplify Semantics::Perform 2019-03-06 17:07:25 -08:00
scope.cc [flang] Handle substring of array element in EQUIVALENCE 2019-06-12 12:38:04 -07:00
scope.h [flang] Handle substring of array element in EQUIVALENCE 2019-06-12 12:38:04 -07:00
semantics.cc [flang] Resolve and check names in equivalence sets 2019-06-11 18:26:48 -07:00
semantics.h [flang] Handle substring of array element in EQUIVALENCE 2019-06-12 12:38:04 -07:00
symbol.cc [flang] Add passArg to ProcEntityDetails and ProcBindingDetails 2019-06-22 18:53:16 -07:00
symbol.h [flang] Check constraints on passed-object dummy argument 2019-06-23 10:59:32 -07:00
tools.cc [flang] Check constraints on passed-object dummy argument 2019-06-23 10:59:32 -07:00
tools.h [flang] Check constraints on passed-object dummy argument 2019-06-23 10:59:32 -07:00
type.cc [flang] Check constraints on passed-object dummy argument 2019-06-23 10:59:32 -07:00
type.h [flang] Check constraints on passed-object dummy argument 2019-06-23 10:59:32 -07:00
unparse-with-symbols.cc [flang] Change when symbol is set in parser::Name 2018-12-06 07:16:52 -08:00
unparse-with-symbols.h [flang] Tests pass 2019-06-17 16:13:07 -07:00