summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/RecordLayoutBuilder.h
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-05-08 23:06:26 +0000
committerAnders Carlsson <andersca@mac.com>2010-05-08 23:06:26 +0000
commit15837f8f639cb41e8b8412e3fa9cd3920fbdb849 (patch)
treef812158e65866a7aac9603c00c4a24da0364c1fd /clang/lib/AST/RecordLayoutBuilder.h
parent14f232ea2062aa9ec9c3279c092dee4649be81cb (diff)
downloadbcm5719-llvm-15837f8f639cb41e8b8412e3fa9cd3920fbdb849.tar.gz
bcm5719-llvm-15837f8f639cb41e8b8412e3fa9cd3920fbdb849.zip
Actually compute the empty subobject sizes. No functionality change yet.
llvm-svn: 103363
Diffstat (limited to 'clang/lib/AST/RecordLayoutBuilder.h')
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.h b/clang/lib/AST/RecordLayoutBuilder.h
index acbee9e1dc6..f3da315ead8 100644
--- a/clang/lib/AST/RecordLayoutBuilder.h
+++ b/clang/lib/AST/RecordLayoutBuilder.h
@@ -77,7 +77,7 @@ class ASTRecordLayoutBuilder {
/// VisitedVirtualBases - A set of all the visited virtual bases, used to
/// avoid visiting virtual bases more than once.
llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBases;
-
+
/// SizeOfLargestEmptySubobject - When laying out C++ classes, this holds the
/// size of the largest empty subobject (either a base or a member).
/// Will be zero if the record being built doesn't contain any empty classes.
@@ -99,6 +99,10 @@ class ASTRecordLayoutBuilder {
void LayoutWideBitField(uint64_t FieldSize, uint64_t TypeSize);
void LayoutBitField(const FieldDecl *D);
+ /// ComputeEmptySubobjectSizes - Compute the size of the largest base or
+ /// member subobject that is empty.
+ void ComputeEmptySubobjectSizes(const CXXRecordDecl *RD);
+
/// DeterminePrimaryBase - Determine the primary base of the given class.
void DeterminePrimaryBase(const CXXRecordDecl *RD);
OpenPOWER on IntegriCloud