diff options
author | Fangrui Song <i@maskray.me> | 2020-12-01 19:14:34 -0800 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2020-12-01 19:14:35 -0800 |
commit | ce5e21868c22479df62ebd8884adc1bd7c964433 (patch) | |
tree | c989297a0eb17a03d11ceb375fc64a710679a02d /lldb/source/Plugins/TypeSystem | |
parent | e181a6aeddc26ef0512b2dba94db6360ba32f2ff (diff) | |
download | llvm-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.cpp | 9 |
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)); } |