]> granicus.if.org Git - clang/commitdiff
No longer need to keep base class offsets in the offset
authorFariborz Jahanian <fjahanian@apple.com>
Wed, 29 Jul 2009 18:50:06 +0000 (18:50 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Wed, 29 Jul 2009 18:50:06 +0000 (18:50 +0000)
table as it has its own place now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77491 91177308-0d34-0410-b5e6-96231b3b80d8

clang.xcodeproj/project.pbxproj
lib/AST/RecordLayoutBuilder.cpp
lib/CodeGen/CGRecordLayoutBuilder.cpp
lib/CodeGen/TargetABIInfo.cpp

index 137f5e442348092f699afbd394795af76a7e59d1..188d3b3dff2420ba20c6ef76af0fca1f4552ef4d 100644 (file)
                                35EF676F0DAD1D2C00B19414 /* SemaDeclCXX.cpp */,
                                DE704B250D0FBEBE009C7762 /* SemaDeclObjC.cpp */,
                                DE67E7100C020ED400F66BC5 /* SemaExpr.cpp */,
-                               DE67E70E0C020ECF00F66BC5 /* SemaExprCXX.cpp */,
                                DE47999B0D2EBE1A00706D2D /* SemaExprObjC.cpp */,
                                3557D1EF0EB13BB700C59739 /* SemaInherit.cpp */,
                                DE3B921C0EB1A81400D01046 /* SemaInherit.h */,
+                               DE67E70E0C020ECF00F66BC5 /* SemaExprCXX.cpp */,
                                3599299A0DE2425300A8A33E /* SemaInit.cpp */,
                                357EA27C0F2526F300439B60 /* SemaLookup.cpp */,
                                35E194680ECB82FB00F21733 /* SemaNamedCast.cpp */,
index e6479bf0f5346a6dbd5f0994cef6bc3bb7a441f7..b09901d10dd7511fdff1d62bb4651528c5b201f9 100644 (file)
@@ -54,9 +54,6 @@ void ASTRecordLayoutBuilder::LayoutNonVirtualBase(const CXXRecordDecl *RD) {
   Bases.push_back(RD);
   BaseOffsets.push_back(Size);
 
-  // Non-virtual base class has offset too.
-  FieldOffsets.push_back(Size);
-
   // Reserve space for this base.
   Size += BaseSize;
   
index 11e1ee36fc97857ce0526e1da5f2e951b60c91b6..bd3cabd5bfb31797b1eb37928c92b02efa56d082 100644 (file)
@@ -199,9 +199,6 @@ bool CGRecordLayoutBuilder::LayoutFields(const RecordDecl *D) {
   const ASTRecordLayout &Layout = Types.getContext().getASTRecordLayout(D);
   
   unsigned FieldNo = 0;
-  // FIXME. This will probably change when virtual bases are supported.
-  if (const CXXRecordDecl *CXXRD = dyn_cast<CXXRecordDecl>(D))
-    FieldNo += CXXRD->getNumBases();
 
   for (RecordDecl::field_iterator Field = D->field_begin(), 
        FieldEnd = D->field_end(); Field != FieldEnd; ++Field, ++FieldNo) {
index 76d75715bd0e7a5118aeeb08e109092494d32806..5c8d5dd230b975210aa5619da786031d6e70cc4b 100644 (file)
@@ -723,10 +723,6 @@ void X86_64ABIInfo::classify(QualType Ty,
     // Reset Lo class, this will be recomputed.
     Current = NoClass;
     unsigned idx = 0;
-    // FIXME. This will probably change when virtual bases are supported.
-    if (const CXXRecordDecl *CXXRD = dyn_cast<CXXRecordDecl>(RD))
-      idx += CXXRD->getNumBases();
-
     for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end();
            i != e; ++i, ++idx) {
       uint64_t Offset = OffsetBase + Layout.getFieldOffset(idx);