aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Klausler <pklausler@nvidia.com>2023-01-27 15:51:20 -0800
committerPeter Klausler <pklausler@nvidia.com>2023-01-27 15:52:33 -0800
commitf0c5a4d8546fd49f71c83b8aea0121bb2e639da5 (patch)
tree7228139d40acca455ee7b130d15738ead46f0e3e
parent864133c5f95070e273cc6515e52c7a752fbfea30 (diff)
downloadllvm-f0c5a4d8546fd49f71c83b8aea0121bb2e639da5.zip
llvm-f0c5a4d8546fd49f71c83b8aea0121bb2e639da5.tar.gz
llvm-f0c5a4d8546fd49f71c83b8aea0121bb2e639da5.tar.bz2
[flang] Fix shared library build
A recent patch introduced a dependency upon Semantics from Evaluate; fixing immediately.
-rw-r--r--flang/lib/Evaluate/type.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/flang/lib/Evaluate/type.cpp b/flang/lib/Evaluate/type.cpp
index fa57755..8d49f62 100644
--- a/flang/lib/Evaluate/type.cpp
+++ b/flang/lib/Evaluate/type.cpp
@@ -215,7 +215,15 @@ static const semantics::Symbol *FindParentComponent(
}
if (scope) {
const auto &dtDetails{typeSymbol.get<semantics::DerivedTypeDetails>()};
- return dtDetails.GetParentComponent(*scope);
+ // TODO: Combine with semantics::DerivedTypeDetails::GetParentComponent
+ if (auto extends{dtDetails.GetParentComponentName()}) {
+ if (auto iter{scope->find(*extends)}; iter != scope->cend()) {
+ if (const semantics::Symbol & symbol{*iter->second};
+ symbol.test(semantics::Symbol::Flag::ParentComp)) {
+ return &symbol;
+ }
+ }
+ }
}
return nullptr;
}