Lines Matching full:bases

346   // Traverse our bases.
347 for (const auto &B : RD->bases()) {
383 for (const auto &B : RD->bases()) {
386 // Ignore bases that don't have any virtual member functions.
557 /// VisitedVirtualBases - Visited virtual bases.
658 // We only want to add vcall offsets for virtual bases.
733 // And iterate over all non-virtual bases (ignoring the primary base).
734 for (const auto &B : RD->bases()) {
758 for (const auto &B : RD->bases()) {
787 /// primary bases.
826 /// bases in this vtable.
899 /// PrimaryVirtualBases - All known virtual bases who are a primary base of
950 /// primary bases to the vtable components vector.
957 // secondary vtables and any vtables for virtual bases.
981 /// DeterminePrimaryVirtualBases - Determine the primary virtual bases in this
987 /// LayoutVTablesForVirtualBases - Layout vtables for all virtual bases of the
988 /// given base (excluding any primary bases).
1359 /// overrides any methods in the set of given bases.
1368 /// and { A } as the set of bases.
1371 ItaniumVTableBuilder::PrimaryBasesSetVectorTy &Bases) {
1372 if (Bases.count(MD->getParent()))
1377 if (OverridesIndirectMethodInBases(OverriddenMD, Bases))
1441 // If the final overrider is an override of one of the primary bases,
1450 /// The Bases are expected to be sorted in a base-to-derived order.
1453 BasesSetVectorTy &Bases) {
1457 for (const CXXRecordDecl *PrimaryBase : llvm::reverse(Bases)) {
1673 // Determine the primary virtual bases.
1771 // We don't want to add this class (or any of its primary bases).
1796 for (const auto &B : RD->bases()) {
1797 // Ignore virtual bases, we'll emit them later.
1803 // Ignore bases that don't have a vtable.
1825 // to emit secondary vtables for other bases of this base.
1873 // Traverse bases, looking for more primary virtual bases.
1874 for (const auto &B : RD->bases()) {
1901 // order, and again excluding primary bases (which share virtual tables with
1903 for (const auto &B : RD->bases()) {
1929 // has virtual bases.
2494 // virtual base and these bases have a reverse order in the complete
2770 BasesSetVectorTy Bases;
2773 // Find the set of least derived bases that define the given method.
2778 Bases.insert(OverriddenMD->getParent());
2788 if (Bases.size() == 0)
2793 [&Bases](const CXXBaseSpecifier *Specifier, CXXBasePath &) {
2794 return Bases.count(Specifier->getType()->getAsCXXRecordDecl());
3031 for (const auto &B : RD->bases()) {
3063 "No primary virtual bases in this ABI");
3084 // sub-bases;
3086 // We keep track of the methods visited in the sub-bases in MethodInfoMap.
3153 // e.g. each method that wasn't seen in any of the visited sub-bases
3154 // but overrides multiple methods of other sub-bases.
3158 // If we got here, MD is a method not seen in any of the sub-bases or
3401 // Recursive case: get all the vbtables from our bases and remove anything
3404 for (const auto &B : RD->bases()) {
3430 // new methods or bases. We append to either the vftable of our primary
3456 // morally virtual bases.
3531 for (const CXXBaseSpecifier &BS : RD->bases()) {
3822 // virtual bases come first so that the layout is the same.