Lines Matching defs:CXXMethodDecl
67 const CXXMethodDecl *Method;
102 typedef std::pair<const CXXMethodDecl *, CharUnits> MethodBaseOffsetPairTy;
141 OverriderInfo getOverrider(const CXXMethodDecl *MD,
181 const CXXMethodDecl *MD = Overrider.first;
272 const CXXMethodDecl *DerivedMD,
273 const CXXMethodDecl *BaseMD) {
445 typedef std::pair<const CXXMethodDecl *, CharUnits> MethodAndOffsetPairTy;
453 static bool MethodsCanShareVCallOffset(const CXXMethodDecl *LHS,
454 const CXXMethodDecl *RHS);
460 bool AddVCallOffset(const CXXMethodDecl *MD, CharUnits OffsetOffset);
464 CharUnits getVCallOffsetOffset(const CXXMethodDecl *MD);
470 static bool HasSameVirtualSignature(const CXXMethodDecl *LHS,
471 const CXXMethodDecl *RHS) {
488 bool VCallOffsetMap::MethodsCanShareVCallOffset(const CXXMethodDecl *LHS,
489 const CXXMethodDecl *RHS) {
509 bool VCallOffsetMap::AddVCallOffset(const CXXMethodDecl *MD,
522 CharUnits VCallOffsetMap::getVCallOffsetOffset(const CXXMethodDecl *MD) {
867 typedef llvm::DenseMap<const CXXMethodDecl *, MethodInfo> MethodInfoMapTy;
884 typedef llvm::DenseMap<const CXXMethodDecl *, ThunkInfoVectorTy> ThunksMapTy;
891 void AddThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk);
916 ComputeThisAdjustment(const CXXMethodDecl *MD,
922 void AddMethod(const CXXMethodDecl *MD, ReturnAdjustment ReturnAdjustment);
943 bool IsOverriderUsed(const CXXMethodDecl *Overrider,
1071 void ItaniumVTableBuilder::AddThunk(const CXXMethodDecl *MD,
1085 typedef llvm::SmallPtrSet<const CXXMethodDecl *, 8> OverriddenMethodsSetTy;
1093 visitAllOverriddenMethods(const CXXMethodDecl *MD, VisitorTy &Visitor) {
1096 for (const CXXMethodDecl *OverriddenMD : MD->overridden_methods()) {
1106 ComputeAllOverriddenMethods(const CXXMethodDecl *MD,
1108 auto OverriddenMethodsCollector = [&](const CXXMethodDecl *MD) {
1119 const CXXMethodDecl *MD = MI.first;
1173 const CXXMethodDecl *Method = VTables.findOriginalMethodInMap(MD);
1199 const CXXMethodDecl *MD;
1291 const CXXMethodDecl *MD, CharUnits BaseOffsetInLayoutClass,
1339 void ItaniumVTableBuilder::AddMethod(const CXXMethodDecl *MD,
1370 const CXXMethodDecl *MD,
1375 for (const CXXMethodDecl *OverriddenMD : MD->overridden_methods()) {
1385 const CXXMethodDecl *Overrider, CharUnits BaseOffsetInLayoutClass,
1451 static const CXXMethodDecl *
1452 FindNearestOverriddenMethod(const CXXMethodDecl *MD,
1459 for (const CXXMethodDecl *OverriddenMD : OverriddenMethods) {
1520 typedef llvm::SmallVector<const CXXMethodDecl *, 8> NewVirtualFunctionsTy;
1523 llvm::SmallVector<const CXXMethodDecl*, 4> NewImplicitVirtualFunctions;
1538 if (const CXXMethodDecl *OverriddenMD =
1599 [](const CXXMethodDecl *A, const CXXMethodDecl *B) {
1618 for (const CXXMethodDecl *MD : NewVirtualFunctions) {
1632 const CXXMethodDecl *OverriderMD = Overrider.Method;
1733 const CXXMethodDecl *MD = I.first;
2019 const CXXMethodDecl *MD = Component.getFunctionDecl();
2101 const CXXMethodDecl *MD = Component.getUnusedFunctionDecl();
2177 std::map<std::string, const CXXMethodDecl *> MethodNamesAndDecls;
2180 const CXXMethodDecl *MD = I.first;
2189 const CXXMethodDecl *MD = I.second;
2328 bool VTableContextBase::hasVtableSlot(const CXXMethodDecl *MD) {
2344 const CXXRecordDecl *RD = cast<CXXMethodDecl>(GD.getDecl())->getParent();
2382 const auto *MD = cast<CXXMethodDecl>(GD.getDecl());
2384 const CXXMethodDecl *OriginalMD = findOriginalMethodInMap(MD);
2391 const CXXMethodDecl *
2392 ItaniumVTableContext::findOriginalMethodInMap(const CXXMethodDecl *MD) const {
2574 typedef llvm::DenseMap<const CXXMethodDecl *, MethodInfo> MethodInfoMapTy;
2587 typedef llvm::DenseMap<const CXXMethodDecl *, ThunkInfoVectorTy> ThunksMapTy;
2594 void AddThunk(const CXXMethodDecl *MD, const ThunkInfo &Thunk) {
2613 void AddMethod(const CXXMethodDecl *MD, ThunkInfo TI) {
2647 const CXXMethodDecl *MD = I.first;
2776 const CXXMethodDecl *OverriddenMD) {
3000 SmallVector<const CXXMethodDecl *, 10> &VirtualMethods) {
3007 typedef SmallVector<const CXXMethodDecl *, 1> MethodGroup;
3021 if (const auto *MD = dyn_cast<CXXMethodDecl>(ND))
3075 SmallVector<const CXXMethodDecl*, 10> VirtualMethods;
3087 for (const CXXMethodDecl *MD : VirtualMethods) {
3090 const CXXMethodDecl *FinalOverriderMD = FinalOverrider.Method;
3091 const CXXMethodDecl *OverriddenMD =
3264 const CXXMethodDecl *MD = Component.getFunctionDecl();
3319 std::map<std::string, const CXXMethodDecl *> MethodNamesAndDecls;
3322 const CXXMethodDecl *MD = I.first;
3331 const CXXMethodDecl *MD = MethodNameAndDecl.second;
3602 typedef std::set<const CXXMethodDecl *> OverriderSetTy;
3613 for (const CXXMethodDecl *MD : Info.IntroducingObject->methods()) {
3618 const CXXMethodDecl *OverridingMethod = OI.Method;
3646 const CXXMethodDecl *CovariantMD = *NewOverrides.begin();
3647 const CXXMethodDecl *ConflictMD = *MissingOverrides.begin();
3752 const CXXMethodDecl *MD = cast<const CXXMethodDecl>(I.first.getDecl());
3873 assert(hasVtableSlot(cast<CXXMethodDecl>(GD.getDecl())) &&
3884 const CXXRecordDecl *RD = cast<CXXMethodDecl>(GD.getDecl())->getParent();