[Lldb-commits] [lldb] [lldb][TypeSystemClang][NFC] Use GetNumBaseClasses in TypeSystemClang::GetNumChildren (PR #139552)
via lldb-commits
lldb-commits at lists.llvm.org
Mon May 12 07:05:25 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Michael Buch (Michael137)
<details>
<summary>Changes</summary>
`TypeSystemClang::GetNumBaseClasses` does exactly the same base-class accounting that we were doing in GetNumChildren. So re-use it.
---
Full diff: https://github.com/llvm/llvm-project/pull/139552.diff
1 Files Affected:
- (modified) lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp (+2-26)
``````````diff
diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
index 45f044733c0ff..b8ea2c17244c4 100644
--- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
@@ -5355,33 +5355,9 @@ TypeSystemClang::GetNumChildren(lldb::opaque_compiler_type_t type,
assert(record_decl);
const clang::CXXRecordDecl *cxx_record_decl =
llvm::dyn_cast<clang::CXXRecordDecl>(record_decl);
- if (cxx_record_decl) {
- if (omit_empty_base_classes) {
- // Check each base classes to see if it or any of its base classes
- // contain any fields. This can help limit the noise in variable
- // views by not having to show base classes that contain no members.
- clang::CXXRecordDecl::base_class_const_iterator base_class,
- base_class_end;
- for (base_class = cxx_record_decl->bases_begin(),
- base_class_end = cxx_record_decl->bases_end();
- base_class != base_class_end; ++base_class) {
- const clang::CXXRecordDecl *base_class_decl =
- llvm::cast<clang::CXXRecordDecl>(
- base_class->getType()
- ->getAs<clang::RecordType>()
- ->getDecl());
-
- // Skip empty base classes
- if (!TypeSystemClang::RecordHasFields(base_class_decl))
- continue;
- num_children++;
- }
- } else {
- // Include all base classes
- num_children += cxx_record_decl->getNumBases();
- }
- }
+ num_children +=
+ GetNumBaseClasses(cxx_record_decl, omit_empty_base_classes);
num_children += std::distance(record_decl->field_begin(),
record_decl->field_end());
} else
``````````
</details>
https://github.com/llvm/llvm-project/pull/139552
More information about the lldb-commits
mailing list