llvm-project/flang/lib/Semantics
Peter Steinfeld 8b550af7a9 [flang] Handle structure constructors with forward references to PDTs
We were not correctly handling structure constructors that had forward
references to parameterized derived types.  I harvested the code that checks
for forward references that was used during analysis of function call
expressions and called it from there and also called it during the
analysis of structure constructors.

I also added a test that will produce an internal error without this change.

Differential Revision: https://reviews.llvm.org/D101330
2021-04-27 12:46:05 -07:00
..
CMakeLists.txt [flang] Save binding labels as strings 2021-03-24 11:25:23 -07:00
assignment.cpp [flang][nfc] Fix comments, remove needless API, tweak script 2021-01-22 10:55:53 -08: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-acc.cpp [flang][openacc] Add missing loop construct restriction and validity tests 2020-12-08 14:12:12 -05:00
canonicalize-acc.h [flang][openacc] Semantic checks for OpenACC 3.0 clauses validity 2020-07-14 20:44:35 -04:00
canonicalize-do.cpp [flang][NFC] Get formatting in sync with latest clang-format 2020-07-01 16:51:46 -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-acc-structure.cpp [flang][directive] Enforce basic semantic check for all clauses 2021-02-01 13:33:30 -05:00
check-acc-structure.h [flang][directive] Enforce basic semantic check for all clauses 2021-02-01 13:33:30 -05: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] Ensure pointer function results are acceptable variables 2021-03-12 16:04:36 -08:00
check-call.h [flang] Document and use intrinsic subroutine argument intents 2020-10-20 14:09:46 +02:00
check-case.cpp [flang] Fix integer CASE constant typing 2020-09-01 10:59:35 -07:00
check-case.h [flang] Semantics for SELECT CASE 2020-03-27 12:02:11 -07:00
check-coarray.cpp [flang] Support for image selectors 2020-07-08 07:31:54 -07:00
check-coarray.h [flang] Support for image selectors 2020-07-08 07:31:54 -07:00
check-data.cpp [flang] Refine checks for pointer initialization targets 2021-03-31 11:32:12 -07:00
check-data.h [flang] Handle DATA initialization of EQUIVALENCE'd objects 2020-08-07 16:39:23 -07:00
check-deallocate.cpp [flang] Save AllocateObject and PointerObject analyzed expression 2021-03-16 10:27:45 +01: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] Check for attributes specific to dummy arguments 2021-04-26 09:27:55 -07:00
check-declarations.h [flang] Improve initializer semantics, esp. for component default values 2020-12-07 14:40:41 -08:00
check-directive-structure.h [flang][OpenMP] Add support for getting parent context and clauses and modify the relevant sema checks to use the new functions. 2021-03-13 17:50:50 -05:00
check-do-forall.cpp [flang] Refine symbol sorting 2021-03-18 11:18:14 -07:00
check-do-forall.h [flang] Fix crash on erroneous expressions 2020-06-05 08:46:43 -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] Order Symbols by source provenance 2021-03-16 15:25:15 -07:00
check-io.h [flang] Check that various variables referenced in I/O statements may be defined 2020-08-25 12:06:18 -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] Save AllocateObject and PointerObject analyzed expression 2021-03-16 10:27:45 +01: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][openmp] Add General Semantic Checks for Allocate Directive 2021-04-22 16:15:06 +00:00
check-omp-structure.h [flang][openmp] Add General Semantic Checks for Allocate Directive 2021-04-22 16:15:06 +00: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][NFC] Add GetTopLevelUnitContaining functions 2020-12-02 10:28:49 -08: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-select-type.cpp [FLANG] Fix issues in SELECT TYPE construct when intrinsic type specification is specified in TYPE GUARD statement. 2020-08-03 09:24:42 +05:30
check-select-type.h [flang] Semantics for SELECT TYPE 2020-06-12 00:12:24 +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] Refine symbol sorting 2021-03-18 11:18:14 -07:00
compute-offsets.h [flang] Implement STORAGE_SIZE(), SIZEOF(), C_SIZEOF() 2020-12-15 17:26:20 -08:00
data-to-inits.cpp [flang] Implement STORAGE_SIZE(), SIZEOF(), C_SIZEOF() 2020-12-15 17:26:20 -08:00
data-to-inits.h [flang] Handle DATA initialization of EQUIVALENCE'd objects 2020-08-07 16:39:23 -07:00
expression.cpp [flang] Handle structure constructors with forward references to PDTs 2021-04-27 12:46:05 -07:00
mod-file.cpp [flang] Accept & fold IEEE_SELECTED_REAL_KIND 2021-04-10 10:01:14 -07:00
mod-file.h [flang] Semantic analysis for FINAL subroutines 2020-09-30 15:46:15 -07:00
pointer-assignment.cpp [flang] Fix false error message for "ptr => func()" array conformance 2020-12-15 16:26:18 -08:00
pointer-assignment.h [flang] DATA stmt processing (part 3/4): Remaining prep work 2020-06-19 09:09:05 -07:00
program-tree.cpp [flang] Parse global compiler directives 2020-08-25 11:41:11 -07:00
program-tree.h [flang] Parse global compiler directives 2020-08-25 11:41:11 -07:00
resolve-directives.cpp [flang][openmp] Add General Semantic Checks for Allocate Directive 2021-04-22 16:15:06 +00:00
resolve-directives.h [flang][NFC] Extract name resolution for OpenACC & OpenMP into new file 2020-07-28 16:38:36 -07:00
resolve-labels.cpp [flang] Allow labels on END statements. 2020-11-11 13:06:19 -08: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] Fix creation of deferred shape arrays by POINTER statement 2021-01-20 13:08:11 -08:00
resolve-names-utils.h [flang] Fix creation of deferred shape arrays by POINTER statement 2021-01-20 13:08:11 -08:00
resolve-names.cpp [flang] Correct the interpretation of BIND(C,NAME='') 2021-04-14 11:33:31 -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] Clean up TODO comments and fix one (DATA constant ambiguity) 2020-12-15 13:36:07 -08:00
rewrite-parse-tree.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
runtime-type-info.cpp [flang] Fix spurious errors from runtime derived type table construction 2021-04-22 09:43:51 -07:00
scope.cpp [flang] Enforce a limit on recursive PDT instantiations 2021-04-09 16:38:32 -07:00
semantics.cpp [flang] Order Symbols by source provenance 2021-03-16 15:25:15 -07:00
symbol.cpp [flang] Save binding labels as strings 2021-03-24 11:25:23 -07:00
tools.cpp [flang] Fix assignment of parameterized derived types 2021-04-20 12:41:52 -07:00
type.cpp [flang] Fix spurious errors from runtime derived type table construction 2021-04-22 09:43:51 -07:00
unparse-with-symbols.cpp [flang][openacc] Basic name resolution infrastructure for OpenACC construct 2020-07-26 20:01:35 -04:00