]> granicus.if.org Git - clang/commitdiff
Add getCGRecordLayout helper function. No functionality change.
authorAnders Carlsson <andersca@mac.com>
Sun, 21 Nov 2010 23:56:06 +0000 (23:56 +0000)
committerAnders Carlsson <andersca@mac.com>
Sun, 21 Nov 2010 23:56:06 +0000 (23:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119955 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGRecordLayoutBuilder.cpp

index 8ffa0dd7f1975c6794d09888250d7a34079817e5..001c344510232958c79afa4ab00633c44a9d6101 100644 (file)
@@ -140,6 +140,9 @@ private:
 
   unsigned getTypeAlignment(const llvm::Type *Ty) const;
 
+  /// getCGRecordLayout - Return the CGRecordLayout for the given record.
+  const CGRecordLayout &getCGRecordLayout(const CXXRecordDecl *RD);
+
   /// CheckZeroInitializable - Check if the given type contains a pointer
   /// to data member.
   void CheckZeroInitializable(QualType T);
@@ -687,6 +690,15 @@ unsigned CGRecordLayoutBuilder::getTypeAlignment(const llvm::Type *Ty) const {
   return Types.getTargetData().getABITypeAlignment(Ty);
 }
 
+const CGRecordLayout &
+CGRecordLayoutBuilder::getCGRecordLayout(const CXXRecordDecl *RD) {
+  // FIXME: It would be better if there was a way to explicitly compute the
+  // record layout instead of converting to a type.
+  Types.ConvertTagDeclType(RD);
+
+  return Types.getCGRecordLayout(RD);
+}
+
 void CGRecordLayoutBuilder::CheckZeroInitializable(QualType T) {
   // This record already contains a member pointer.
   if (!IsZeroInitializable)
@@ -712,12 +724,7 @@ void CGRecordLayoutBuilder::CheckZeroInitializable(const CXXRecordDecl *RD) {
   if (!IsZeroInitializable)
     return;
 
-  // FIXME: It would be better if there was a way to explicitly compute the
-  // record layout instead of converting to a type.
-  Types.ConvertTagDeclType(RD);
-  
-  const CGRecordLayout &Layout = Types.getCGRecordLayout(RD);
-  
+  const CGRecordLayout &Layout = getCGRecordLayout(RD);
   if (!Layout.isZeroInitializable())
     IsZeroInitializable = false;
 }