[clang] 89525cb - [Clang] Add helper method to determine if a nonvirtual base has an entry in the LLVM struct
William S. Moses via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 25 13:32:17 PDT 2022
Author: William S. Moses
Date: 2022-03-25T16:32:12-04:00
New Revision: 89525cbf283f1ffeca1e007a06b29917a9eadc53
URL: https://github.com/llvm/llvm-project/commit/89525cbf283f1ffeca1e007a06b29917a9eadc53
DIFF: https://github.com/llvm/llvm-project/commit/89525cbf283f1ffeca1e007a06b29917a9eadc53.diff
LOG: [Clang] Add helper method to determine if a nonvirtual base has an entry in the LLVM struct
This patch adds a helper method to determine if a nonvirtual base has an entry in the LLVM struct. Such a base may not have an entry
if the base does not have any fields/bases itself that would change the size of the struct. This utility method is useful for other frontends (Polygeist) that use Clang as an API to generate code.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D122502
Added:
Modified:
clang/lib/CodeGen/CGRecordLayout.h
Removed:
################################################################################
diff --git a/clang/lib/CodeGen/CGRecordLayout.h b/clang/lib/CodeGen/CGRecordLayout.h
index 5a3bcdf72f7b6..d5ea74922603b 100644
--- a/clang/lib/CodeGen/CGRecordLayout.h
+++ b/clang/lib/CodeGen/CGRecordLayout.h
@@ -200,6 +200,12 @@ class CGRecordLayout {
return FieldInfo.lookup(FD);
}
+ // Return whether the following non virtual base has a corresponding
+ // entry in the LLVM struct.
+ bool hasNonVirtualBaseLLVMField(const CXXRecordDecl *RD) const {
+ return NonVirtualBases.count(RD);
+ }
+
unsigned getNonVirtualBaseLLVMFieldNo(const CXXRecordDecl *RD) const {
assert(NonVirtualBases.count(RD) && "Invalid non-virtual base!");
return NonVirtualBases.lookup(RD);
More information about the cfe-commits
mailing list