diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2009-07-29 18:50:06 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-07-29 18:50:06 +0000 |
| commit | 7be1ad814b851964dbb0cf29a5a0ce9d16622921 (patch) | |
| tree | a773c2e24117095faee5c39e84876a19220fc441 /clang/lib | |
| parent | bb67b827d94b26a1cd42a02a81798c5a9c83040c (diff) | |
| download | bcm5719-llvm-7be1ad814b851964dbb0cf29a5a0ce9d16622921.tar.gz bcm5719-llvm-7be1ad814b851964dbb0cf29a5a0ce9d16622921.zip | |
No longer need to keep base class offsets in the offset
table as it has its own place now.
llvm-svn: 77491
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/RecordLayoutBuilder.cpp | 3 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGRecordLayoutBuilder.cpp | 3 | ||||
| -rw-r--r-- | clang/lib/CodeGen/TargetABIInfo.cpp | 4 |
3 files changed, 0 insertions, 10 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp index e6479bf0f53..b09901d10dd 100644 --- a/clang/lib/AST/RecordLayoutBuilder.cpp +++ b/clang/lib/AST/RecordLayoutBuilder.cpp @@ -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; diff --git a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp index 11e1ee36fc9..bd3cabd5bfb 100644 --- a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp +++ b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp @@ -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) { diff --git a/clang/lib/CodeGen/TargetABIInfo.cpp b/clang/lib/CodeGen/TargetABIInfo.cpp index 76d75715bd0..5c8d5dd230b 100644 --- a/clang/lib/CodeGen/TargetABIInfo.cpp +++ b/clang/lib/CodeGen/TargetABIInfo.cpp @@ -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); |

