Lines Matching refs:Bases
345 // Traverse our bases.
346 for (const auto &B : RD->bases()) {
382 for (const auto &B : RD->bases()) {
385 // Ignore bases that don't have any virtual member functions.
556 /// VisitedVirtualBases - Visited virtual bases.
657 // We only want to add vcall offsets for virtual bases.
727 // And iterate over all non-virtual bases (ignoring the primary base).
728 for (const auto &B : RD->bases()) {
752 for (const auto &B : RD->bases()) {
781 /// primary bases.
820 /// bases in this vtable.
893 /// PrimaryVirtualBases - All known virtual bases who are a primary base of
944 /// primary bases to the vtable components vector.
951 // secondary vtables and any vtables for virtual bases.
975 /// DeterminePrimaryVirtualBases - Determine the primary virtual bases in this
981 /// LayoutVTablesForVirtualBases - Layout vtables for all virtual bases of the
982 /// given base (excluding any primary bases).
1323 /// overrides any methods in the set of given bases.
1332 /// and { A } as the set of bases.
1335 ItaniumVTableBuilder::PrimaryBasesSetVectorTy &Bases) {
1336 if (Bases.count(MD->getParent()))
1341 if (OverridesIndirectMethodInBases(OverriddenMD, Bases))
1405 // If the final overrider is an override of one of the primary bases,
1414 /// The Bases are expected to be sorted in a base-to-derived order.
1417 BasesSetVectorTy &Bases) {
1422 llvm::make_range(Bases.rbegin(), Bases.rend())) {
1624 // Determine the primary virtual bases.
1721 // We don't want to add this class (or any of its primary bases).
1746 for (const auto &B : RD->bases()) {
1747 // Ignore virtual bases, we'll emit them later.
1753 // Ignore bases that don't have a vtable.
1775 // to emit secondary vtables for other bases of this base.
1823 // Traverse bases, looking for more primary virtual bases.
1824 for (const auto &B : RD->bases()) {
1851 // order, and again excluding primary bases (which share virtual tables with
1853 for (const auto &B : RD->bases()) {
1879 // has virtual bases.
2397 // virtual base and these bases have a reverse order in the complete
2673 BasesSetVectorTy Bases;
2676 // Find the set of least derived bases that define the given method.
2681 Bases.insert(OverriddenMD->getParent());
2691 if (Bases.size() == 0)
2696 [&Bases](const CXXBaseSpecifier *Specifier, CXXBasePath &) {
2697 return Bases.count(Specifier->getType()->getAsCXXRecordDecl());
2934 for (const auto &B : RD->bases()) {
2966 "No primary virtual bases in this ABI");
2987 // sub-bases;
2989 // We keep track of the methods visited in the sub-bases in MethodInfoMap.
3056 // e.g. each method that wasn't seen in any of the visited sub-bases
3057 // but overrides multiple methods of other sub-bases.
3061 // If we got here, MD is a method not seen in any of the sub-bases or
3306 // Recursive case: get all the vbtables from our bases and remove anything
3309 for (const auto &B : RD->bases()) {
3335 // new methods or bases. We append to either the vftable of our primary
3361 // morally virtual bases.
3438 for (const CXXBaseSpecifier &BS : RD->bases()) {
3729 // virtual bases come first so that the layout is the same.