summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-12-05 20:58:49 +0000
committerAnders Carlsson <andersca@mac.com>2009-12-05 20:58:49 +0000
commitb78d093fccddd8eb275c3ee763a92340bbd736a0 (patch)
tree2830f4c4060cff2a3675b7f23590fe2be87abd15 /clang/lib
parent78c2898e0261b27d4ba8da65c4bd1174fb12911b (diff)
downloadbcm5719-llvm-b78d093fccddd8eb275c3ee763a92340bbd736a0.tar.gz
bcm5719-llvm-b78d093fccddd8eb275c3ee763a92340bbd736a0.zip
Let the VTT builder pretend that getVtable returns a pointer to the vtable and not to the vtable address point.
llvm-svn: 90672
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/CGVtable.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGVtable.cpp b/clang/lib/CodeGen/CGVtable.cpp
index 6408853df3f..e7f170f5596 100644
--- a/clang/lib/CodeGen/CGVtable.cpp
+++ b/clang/lib/CodeGen/CGVtable.cpp
@@ -1264,7 +1264,7 @@ class VTTBuilder {
VtblClass = RD;
}
- llvm::Constant *vtbl = dyn_cast<llvm::Constant>(init->getOperand(0));
+ llvm::Constant *vtbl = cast<llvm::Constant>(init->getOperand(0));
Inits.push_back(init);
// then the secondary VTTs....
@@ -1316,9 +1316,9 @@ public:
VMContext(cgm.getModule().getContext()) {
// First comes the primary virtual table pointer for the complete class...
- ClassVtbl = CGM.getVtableInfo().getVtable(Class);
- Inits.push_back(ClassVtbl);
- ClassVtbl = dyn_cast<llvm::Constant>(ClassVtbl->getOperand(0));
+ ClassVtbl = cast<llvm::Constant>(CGM.getVtableInfo().getVtable(Class)
+ ->getOperand(0));
+ Inits.push_back(BuildVtablePtr(ClassVtbl, Class, Class, 0));
// then the secondary VTTs...
SecondaryVTTs(Class);
OpenPOWER on IntegriCloud