Lines Matching refs:Overrider
57 /// FinalOverriders - Contains the final overrider member functions for all
61 /// OverriderInfo - Information about a final overrider.
63 /// Method - The method decl of the overrider.
66 /// Offset - the base offset of the overrider's parent in the layout class.
131 /// getOverrider - Get the final overrider for the given method declaration in
136 "Did not find overrider!");
187 assert(I->second.size() == 1 && "Final overrider is not unique!");
198 OverriderInfo& Overrider = OverridersMap[std::make_pair(MD, BaseOffset)];
199 assert(!Overrider.Method && "Overrider should not exist yet!");
201 Overrider.Offset = OverriderOffset;
202 Overrider.Method = Method.Method;
411 OverriderInfo Overrider = getOverrider(MD, Base.getBaseOffset());
414 Out << Overrider.Method->getQualifiedNameAsString();
415 Out << ", " << Overrider.Offset.getQuantity() << ')';
418 if (!Overrider.Method->isPure())
419 Offset = ComputeReturnAdjustmentBaseOffset(Context, Overrider.Method, MD);
704 // Get the final overrider.
705 FinalOverriders::OverriderInfo Overrider =
710 Offset = Overrider.Offset - VBaseOffset;
901 /// final overrider.
905 FinalOverriders::OverriderInfo Overrider);
911 /// IsOverriderUsed - Returns whether the overrider will ever be used in this
930 bool IsOverriderUsed(const CXXMethodDecl *Overrider,
1136 // Get the final overrider for this method.
1137 FinalOverriders::OverriderInfo Overrider =
1141 if (MethodInfo.BaseOffsetInLayoutClass == Overrider.Offset) {
1152 ComputeThisAdjustment(MD, MethodInfo.BaseOffsetInLayoutClass, Overrider);
1275 FinalOverriders::OverriderInfo Overrider) {
1277 if (Overrider.Method->isPure())
1283 BaseSubobject OverriderBaseSubobject(Overrider.Method->getParent(),
1284 Overrider.Offset);
1378 VTableBuilder::IsOverriderUsed(const CXXMethodDecl *Overrider,
1383 // offsets, then this overrider will be used.
1391 // If the overrider is the first base in the primary base chain, we know
1392 // that the overrider will be used.
1393 if (Overrider->getParent() == FirstBaseInPrimaryBaseChain)
1435 // If the final overrider is an override of one of the primary bases,
1437 return OverridesIndirectMethodInBases(Overrider, PrimaryBases);
1532 // Get the final overrider.
1533 FinalOverriders::OverriderInfo Overrider =
1566 Overrider);
1569 Overrider.Method->getParent() == MostDerivedClass) {
1573 // the final overrider.
1575 ComputeReturnAdjustmentBaseOffset(Context, Overrider.Method, MD);
1580 AddThunk(Overrider.Method,
1612 // Get the final overrider.
1613 FinalOverriders::OverriderInfo Overrider =
1624 // Check if this overrider is going to be used.
1625 const CXXMethodDecl *OverriderMD = Overrider.Method;
1633 // Check if this overrider needs a return adjustment.
1644 AddMethod(Overrider.Method, ReturnAdjustment);
2544 FinalOverriders::OverriderInfo Overrider);
2675 FinalOverriders::OverriderInfo Overrider) {
2699 // For each path from the overrider to the parents of the overridden methods,
2709 if (Overrider.Method->getParent() == PrevRD) {
2710 // This one's interesting. If the final overrider is in a vbase B of the
2809 FinalOverriders::OverriderInfo Overrider =
2827 CharUnits TI = ComputeThisOffset(MD, Base, Overrider);
2850 // the overrider and put a return-adjusting thunk where the overridden
2891 const CXXMethodDecl *OverriderMD = Overrider.Method;
2893 // Check if this overrider needs a return adjustment.
2913 AddMethod(Overrider.Method, ThisAdjustmentOffset, ReturnAdjustment);