Lines Matching defs:Vptr
2365 void CodeGenFunction::EmitVTableAssumptionLoad(const VPtr &Vptr, Address This) {
2367 CGM.getCXXABI().getVTableAddressPoint(Vptr.Base, Vptr.VTableClass);
2372 CharUnits NonVirtualOffset = Vptr.Base.getBaseOffset();
2377 Vptr.VTableClass, Vptr.NearestVBase);
2380 GetVTablePtr(This, VTableGlobal->getType(), Vptr.VTableClass);
2389 for (const VPtr &Vptr : getVTablePointers(ClassDecl))
2390 EmitVTableAssumptionLoad(Vptr, This);
2552 void CodeGenFunction::InitializeVTablePointer(const VPtr &Vptr) {
2556 *this, Vptr.VTableClass, Vptr.Base, Vptr.NearestVBase);
2565 if (CGM.getCXXABI().isVirtualOffsetNeededForVTableField(*this, Vptr)) {
2570 *this, LoadCXXThisAddress(), Vptr.VTableClass, Vptr.NearestVBase);
2571 NonVirtualOffset = Vptr.OffsetFromNearestVBase;
2574 NonVirtualOffset = Vptr.Base.getBaseOffset();
2581 *this, VTableField, NonVirtualOffset, VirtualOffset, Vptr.VTableClass,
2582 Vptr.NearestVBase);
2593 this, Vptr.Base.getBase(), VTableField.emitRawPointer(*this)))
2602 CGM.DecorateInstructionWithInvariantGroup(Store, Vptr.VTableClass);
2628 VPtr Vptr = {Base, NearestVBase, OffsetFromNearestVBase, VTableClass};
2629 Vptrs.push_back(Vptr);
2681 for (const VPtr &Vptr : getVTablePointers(RD))
2682 InitializeVTablePointer(Vptr);