[PATCH] D91214: [flang] Use IMPLICIT from scope of external function reference
Peter Klausler via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 11 12:12:48 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG2d5b85075178: [flang] Use IMPLICIT from scope of external function reference (authored by klausler).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91214/new/
https://reviews.llvm.org/D91214
Files:
flang/lib/Semantics/resolve-names.cpp
Index: flang/lib/Semantics/resolve-names.cpp
===================================================================
--- flang/lib/Semantics/resolve-names.cpp
+++ flang/lib/Semantics/resolve-names.cpp
@@ -594,7 +594,7 @@
protected:
// Apply the implicit type rules to this symbol.
void ApplyImplicitRules(Symbol &);
- const DeclTypeSpec *GetImplicitType(Symbol &);
+ const DeclTypeSpec *GetImplicitType(Symbol &, const Scope &);
bool ConvertToObjectEntity(Symbol &);
bool ConvertToProcEntity(Symbol &);
@@ -2111,7 +2111,12 @@
void ScopeHandler::ApplyImplicitRules(Symbol &symbol) {
if (NeedsType(symbol)) {
- if (const DeclTypeSpec * type{GetImplicitType(symbol)}) {
+ const Scope *scope{&symbol.owner()};
+ if (scope->IsGlobal()) {
+ scope = &currScope();
+ }
+ if (const DeclTypeSpec *
+ type{GetImplicitType(symbol, GetInclusiveScope(*scope))}) {
symbol.set(Symbol::Flag::Implicit);
symbol.SetType(*type);
return;
@@ -2137,9 +2142,9 @@
}
}
-const DeclTypeSpec *ScopeHandler::GetImplicitType(Symbol &symbol) {
- const auto *type{implicitRulesMap_->at(&GetInclusiveScope(symbol.owner()))
- .GetType(symbol.name())};
+const DeclTypeSpec *ScopeHandler::GetImplicitType(
+ Symbol &symbol, const Scope &scope) {
+ const auto *type{implicitRulesMap_->at(&scope).GetType(symbol.name())};
if (type) {
if (const DerivedTypeSpec * derived{type->AsDerived()}) {
// Resolve any forward-referenced derived type; a quick no-op else.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D91214.304618.patch
Type: text/x-patch
Size: 1536 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201111/6c560765/attachment.bin>
More information about the llvm-commits
mailing list