diff options
Diffstat (limited to 'flang/lib/Semantics/resolve-names.cpp')
-rw-r--r-- | flang/lib/Semantics/resolve-names.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp index 122c0a2..724f1b2 100644 --- a/flang/lib/Semantics/resolve-names.cpp +++ b/flang/lib/Semantics/resolve-names.cpp @@ -3162,6 +3162,10 @@ ModuleVisitor::SymbolRename ModuleVisitor::AddUse( // Convert it to a UseError with this additional location. static bool ConvertToUseError( Symbol &symbol, const SourceName &location, const Scope &module) { + if (auto *ued{symbol.detailsIf<UseErrorDetails>()}) { + ued->add_occurrence(location, module); + return true; + } const auto *useDetails{symbol.detailsIf<UseDetails>()}; if (!useDetails) { if (auto *genericDetails{symbol.detailsIf<GenericDetails>()}) { @@ -3319,6 +3323,8 @@ void ModuleVisitor::DoAddUse(SourceName location, SourceName localName, combinedDerivedType = CreateLocalUseError(); } else { ConvertToUseError(*localSymbol, location, *useModuleScope_); + localDerivedType = nullptr; + localGeneric = nullptr; combinedDerivedType = localSymbol; } } |