summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.h
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-04-20 16:22:16 +0000
committerAnders Carlsson <andersca@mac.com>2010-04-20 16:22:16 +0000
commit6a0227df49ca6dacb6b4899d882a9462b7231f48 (patch)
tree426f6417ccfffdde62eafd4f939e8f0dbdf4f6c7 /clang/lib/CodeGen/CodeGenFunction.h
parent53cebd1ea62eee750ce825b1587058fe47136b9c (diff)
downloadbcm5719-llvm-6a0227df49ca6dacb6b4899d882a9462b7231f48.tar.gz
bcm5719-llvm-6a0227df49ca6dacb6b4899d882a9462b7231f48.zip
Fix a bug which triggered the assertion I added yesterday. Basically, when we initialize the vtable pointer for a virtual base, and there was another path from the most derived class to another base with the same class type, we would use the wrong base.
llvm-svn: 101911
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r--clang/lib/CodeGen/CodeGenFunction.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h
index c43e0006e69..12e37e42d72 100644
--- a/clang/lib/CodeGen/CodeGenFunction.h
+++ b/clang/lib/CodeGen/CodeGenFunction.h
@@ -536,12 +536,14 @@ public:
///
void InitializeVTablePointer(BaseSubobject Base,
const CXXRecordDecl *NearestVBase,
+ uint64_t BaseOffsetFromNearestVBase,
llvm::Constant *VTable,
const CXXRecordDecl *VTableClass);
typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> VisitedVirtualBasesSetTy;
void InitializeVTablePointers(BaseSubobject Base,
const CXXRecordDecl *NearestVBase,
+ uint64_t BaseOffsetFromNearestVBase,
bool BaseIsNonVirtualPrimaryBase,
llvm::Constant *VTable,
const CXXRecordDecl *VTableClass,
OpenPOWER on IntegriCloud