summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-07-29 18:50:06 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-07-29 18:50:06 +0000
commit7be1ad814b851964dbb0cf29a5a0ce9d16622921 (patch)
treea773c2e24117095faee5c39e84876a19220fc441 /clang
parentbb67b827d94b26a1cd42a02a81798c5a9c83040c (diff)
downloadbcm5719-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')
-rw-r--r--clang/clang.xcodeproj/project.pbxproj2
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.cpp3
-rw-r--r--clang/lib/CodeGen/CGRecordLayoutBuilder.cpp3
-rw-r--r--clang/lib/CodeGen/TargetABIInfo.cpp4
4 files changed, 1 insertions, 11 deletions
diff --git a/clang/clang.xcodeproj/project.pbxproj b/clang/clang.xcodeproj/project.pbxproj
index 137f5e44234..188d3b3dff2 100644
--- a/clang/clang.xcodeproj/project.pbxproj
+++ b/clang/clang.xcodeproj/project.pbxproj
@@ -1056,10 +1056,10 @@
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 */,
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);
OpenPOWER on IntegriCloud