aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/TypeSystem
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2020-12-01 19:14:34 -0800
committerFangrui Song <i@maskray.me>2020-12-01 19:14:35 -0800
commitce5e21868c22479df62ebd8884adc1bd7c964433 (patch)
treec989297a0eb17a03d11ceb375fc64a710679a02d /lldb/source/Plugins/TypeSystem
parente181a6aeddc26ef0512b2dba94db6360ba32f2ff (diff)
downloadllvm-ce5e21868c22479df62ebd8884adc1bd7c964433.zip
llvm-ce5e21868c22479df62ebd8884adc1bd7c964433.tar.gz
llvm-ce5e21868c22479df62ebd8884adc1bd7c964433.tar.bz2
[lldb] Fix build after found_decls was removed by 1f40d60a3b7f310ff3f77bb8643a27d979a703cb
Diffstat (limited to 'lldb/source/Plugins/TypeSystem')
-rw-r--r--lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
index bab50a3..ca109ef 100644
--- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
@@ -148,10 +148,11 @@ void addOverridesForMethod(clang::CXXMethodDecl *decl) {
return;
clang::CXXBasePaths paths;
+ llvm::SmallVector<clang::NamedDecl *, 4> decls;
auto find_overridden_methods =
- [decl](const clang::CXXBaseSpecifier *specifier,
- clang::CXXBasePath &path) {
+ [&decls, decl](const clang::CXXBaseSpecifier *specifier,
+ clang::CXXBasePath &path) {
if (auto *base_record = llvm::dyn_cast<clang::CXXRecordDecl>(
specifier->getType()->getAs<clang::RecordType>()->getDecl())) {
@@ -163,6 +164,7 @@ void addOverridesForMethod(clang::CXXMethodDecl *decl) {
if (auto *baseDtorDecl = base_record->getDestructor()) {
if (baseDtorDecl->isVirtual()) {
path.Decls = baseDtorDecl;
+ decls.push_back(baseDtorDecl);
return true;
} else
return false;
@@ -175,6 +177,7 @@ void addOverridesForMethod(clang::CXXMethodDecl *decl) {
llvm::dyn_cast<clang::CXXMethodDecl>(path.Decls.front()))
if (method_decl->isVirtual() && !isOverload(decl, method_decl)) {
path.Decls = method_decl;
+ decls.push_back(method_decl);
return true;
}
}
@@ -184,7 +187,7 @@ void addOverridesForMethod(clang::CXXMethodDecl *decl) {
};
if (decl->getParent()->lookupInBases(find_overridden_methods, paths)) {
- for (auto *overridden_decl : paths.found_decls())
+ for (auto *overridden_decl : decls)
decl->addOverriddenMethod(
llvm::cast<clang::CXXMethodDecl>(overridden_decl));
}