diff options
author | Anders Carlsson <andersca@mac.com> | 2009-12-05 20:58:49 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-12-05 20:58:49 +0000 |
commit | b78d093fccddd8eb275c3ee763a92340bbd736a0 (patch) | |
tree | 2830f4c4060cff2a3675b7f23590fe2be87abd15 /clang/lib | |
parent | 78c2898e0261b27d4ba8da65c4bd1174fb12911b (diff) | |
download | bcm5719-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.cpp | 8 |
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); |