llvm/flang/lib
Tim Keith bc469ef570 [flang] Resolve names in ProcedureStmt and GenericStmt
We need to save the names of specific procedures that appear in a
ProcedureStmt or GenericStmt to resolve at the end of the specification
section. They may be forward references to interface bodies.

We were saving them in the GenericDetails but that was not the right
place: we need to save the parser::Name so that we can eventually
resolve it to a Symbol, but the symbol table should not contains
references to Name because they go away with the parse tree.

The fix is to save the mapping in a new multimap, specificProcs_ in
InterfaceVisitor. We can reference parser::Names there and resolve them
during ResolveSpecificsInGenerics(). We no longer need to clutter
GenericDetails with data structures for unresolved names.

Also handle the case where a specific procedure is use-associated from
another module.

Original-commit: flang-compiler/f18@c7f7b1e72d
Reviewed-on: https://github.com/flang-compiler/f18/pull/249
Tree-same-pre-rewrite: false
2018-12-18 07:59:40 -08:00
..
common [flang] add Unwrap 2018-12-14 11:33:32 -08:00
evaluate [flang] Handle TypeStar and ClassStar in GetSymbolType() 2018-12-17 17:22:42 -08:00
parser [flang] Change when symbol is set in parser::Name 2018-12-06 07:16:52 -08:00
semantics [flang] Resolve names in ProcedureStmt and GenericStmt 2018-12-18 07:59:40 -08:00
CMakeLists.txt [flang] Rearrange some facilities into a new lib/common. 2018-06-18 11:05:17 -07:00