llvm/flang/lib/semantics
Tim Keith 5094c3c584 [flang] Save and fetch analyzed Expr in Variable
Add typedExpr data member to Variable like that in Expr.
When expression analysis analyzed a Variable it stores the
resulting evaluate::Expr there.

Add GetExpr overloads in semantics/tools.h for using in statement
semantics. It gets an evaluate::Expr from an Expr, Variable, or
wrapper around one of those. It returns a const pointer so that
clients cannot modify the cached expression (and copies do not
have to be made).

Change CoarrayChecker to make use of GetExpr. It will eventually
replace all references to typedExpr in statement semantics.

Original-commit: flang-compiler/f18@b02a41efe1
Reviewed-on: https://github.com/flang-compiler/f18/pull/422
Tree-same-pre-rewrite: false
2019-04-18 17:48:55 -07:00
..
assignment.cc [flang] Lots of debugging and refinement 2019-04-08 16:16:55 -07:00
assignment.h [flang] Remove OwningPointer, use unique_ptr better instead. 2019-03-20 11:38:45 -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-arithmeticif.cc [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-arithmeticif.h [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-coarray.cc [flang] Save and fetch analyzed Expr in Variable 2019-04-18 17:48:55 -07:00
check-coarray.h [flang] Save and fetch analyzed Expr in Variable 2019-04-18 17:48:55 -07:00
check-computed-goto.cc [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-computed-goto.h [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-deallocate.cc [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-deallocate.h [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -07:00
check-do-concurrent.cc [flang] pass all tests 2019-04-15 09:41:50 -07:00
check-do-concurrent.h [flang] Remove the IF specific context classes; in these cases they 2019-03-26 18:03:33 -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-nullify.cc [flang] Cleanup -- Remove unnecessary inline keyword, 2019-04-11 15:20:14 -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] Semantics checker for STOP and ERROR STOP statements - trust in implied check 2019-04-17 14:13:23 -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] Semantics checker for STOP and ERROR STOP statements. 2019-04-17 14:13:23 -07:00
expression.cc [flang] Save and fetch analyzed Expr in Variable 2019-04-18 17:48:55 -07:00
expression.h [flang] Capture source locations for Designators and Calls 2019-04-15 15:18:07 -07:00
mod-file.cc [flang] Simplify expression visitor usage 2019-04-05 12:56:09 -07:00
mod-file.h [flang] Simplify Semantics::Perform 2019-03-06 17:07:25 -08:00
resolve-labels.cc [flang] Hopefully the last fixup of messages that appear for bad termination 2019-04-11 15:35:44 -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] Address review comments. 2019-04-04 16:32:37 -07:00
resolve-names-utils.h [flang] Address review comments. 2019-04-04 16:32:37 -07:00
resolve-names.cc [flang] Generalize tools, clean up common/unwrap.h with new-found knowledge 2019-04-16 15:59:04 -07:00
resolve-names.h [flang] Simplify Semantics::Perform 2019-03-06 17:07:25 -08:00
rewrite-parse-tree.cc [flang] Generalize tools, clean up common/unwrap.h with new-found knowledge 2019-04-16 15:59:04 -07:00
rewrite-parse-tree.h [flang] Simplify Semantics::Perform 2019-03-06 17:07:25 -08:00
scope.cc [flang] Address comments, clean up warnings 2019-04-02 11:56:19 -07:00
scope.h [flang] Delete the default copy constructor for Scope. 2019-04-15 10:30:40 -07:00
semantics.cc [flang] Semantics checker for STOP and ERROR STOP statements. 2019-04-17 14:13:23 -07:00
semantics.h [flang] Save and fetch analyzed Expr in Variable 2019-04-18 17:48:55 -07:00
symbol.cc [flang] Support coarrays in name resolution 2019-04-04 14:47:59 -07:00
symbol.h [flang] Fix bug resolving internal and module functions 2019-04-17 07:42:16 -07:00
tools.cc [flang] Semantics checker for STOP and ERROR STOP statements - one more batch of post-review tweaks 2019-04-17 14:13:23 -07:00
tools.h [flang] Save and fetch analyzed Expr in Variable 2019-04-18 17:48:55 -07:00
type.cc [flang] Move some AsFortran() implementations into new formatting.cc; use precedence for parentheses 2019-04-01 10:58:55 -07:00
type.h [flang] Type checking on values in structure components 2019-03-04 16:30:22 -08: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] 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