Home | History | Annotate | Download | only in Sema

Lines Matching refs:Bases

1672   for (const CXXBaseSpecifier &B : RD->bases())
1799 // we don't need to check the members and bases if we already know they all
2257 assert(RD->getNumVBases() == 0 && "constexpr ctor with virtual bases");
2277 // always initialized so do not need to be checked. Dependent bases
2429 /// class, including looking at dependent bases.
2436 for (const auto &I : Current->bases()) {
2494 // bases. For non-dependent bases, the check for completeness below handles
2662 /// Use small set to collect indirect bases. As this is only used
2666 /// Recursively add the bases of Type. Don't add Type itself.
2676 // Iterate over its bases.
2677 for (const auto &BaseSpec : Decl->bases()) {
2690 MutableArrayRef<CXXBaseSpecifier *> Bases) {
2691 if (Bases.empty())
2700 // Used to track indirect bases so we can see if a direct base is
2707 for (unsigned idx = 0; idx < Bases.size(); ++idx) {
2709 = Context.getCanonicalType(Bases[idx]->getType());
2717 Diag(Bases[idx]->getBeginLoc(), diag::err_duplicate_base_class)
2718 << KnownBase->getType() << Bases[idx]->getSourceRange();
2722 Context.Deallocate(Bases[idx]);
2727 KnownBase = Bases[idx];
2728 Bases[NumGoodBases++] = Bases[idx];
2730 // Note this base's direct & indirect bases, if there could be ambiguity.
2731 if (Bases.size() > 1)
2739 // The Microsoft extension __interface does not permit bases that
2753 Class->setBases(Bases.data(), NumGoodBases);
2758 QualType BaseType = Bases[idx]->getType();
2777 Diag(Bases[idx]->getBeginLoc(), diag::warn_inaccessible_base_class)
2779 << Bases[idx]->getSourceRange();
2781 assert(Bases[idx]->isVirtual());
2786 Context.Deallocate(Bases[idx]);
2796 MutableArrayRef<CXXBaseSpecifier *> Bases) {
2797 if (!ClassDecl || Bases.empty())
2801 AttachBaseSpecifiers(cast<CXXRecordDecl>(ClassDecl), Bases);
2865 // Now add all bases.
2913 // user to access such bases.
3178 std::map<CXXRecordDecl*, NamedDecl*> Bases;
3183 if (Bases.find(Base) != Bases.end())
3189 assert(Bases.find(Base) == Bases.end());
3190 Bases[Base] = Field;
3204 auto It = Bases.find(Base);
3205 // Skip duplicated bases
3206 if (It == Bases.end())
3215 Bases.erase(It);
3900 for (auto I : RD->bases())
4046 for (const auto &Base : ClassDecl->bases()) {
4057 // there are no virtual bases.
4513 // If the class has any dependent bases, then it's possible that
5107 // Keep track of the direct virtual bases.
5109 for (auto &I : ClassDecl->bases()) {
5114 // Push virtual bases before others.
5149 // Non-virtual bases.
5150 for (auto &Base : ClassDecl->bases()) {
5287 // Build the list of bases and members in the order that they'll
5294 // 1. Virtual bases.
5298 // 2. Non-virtual bases.
5299 for (const auto &Base : ClassDecl->bases()) {
5593 // Bases.
5594 for (const auto &Base : ClassDecl->bases()) {
5599 // Remember direct virtual bases.
5634 // Virtual bases.
5636 // Bases are always records in a well-formed non-dependent class.
5639 // Ignore already visited direct virtual bases.
6249 // FIXME: MSVC's docs say all bases must be exportable, but this doesn't
6865 // bases.
7170 for (const auto &B : ClassDecl->bases()) {
7572 for (CXXBaseSpecifier &Base : Record->bases())
8765 /// Visit all non-virtual (direct) bases.
8767 /// Visit all direct bases, virtual or not.
8769 /// Visit all non-virtual bases, and all virtual bases if the class
8772 /// Visit all direct or virtual bases.
8776 // Visit the bases and members of the class.
8777 bool visit(BasesToVisit Bases) {
8780 if (Bases == VisitPotentiallyConstructedBases)
8781 Bases = RD->isAbstract() ? VisitNonVirtualBases : VisitAllBases;
8783 for (auto &B : RD->bases())
8784 if ((Bases == VisitDirectBases || !B.isVirtual()) &&
8788 if (Bases == VisitAllBases)
9240 // Per DR1611, do not consider virtual bases of constructors of abstract
9242 // Per DR1658, do not consider virtual bases of destructors of abstract
9245 // consider) direct bases.
9645 for (const auto &BI : RD->bases())
9682 // Check for virtual bases. We already know that the corresponding
9683 // member in all bases is trivial, so vbases must all be direct.
9791 bases.
9885 for (const auto &B : RD.bases()) {
11184 for (const CXXBaseSpecifier &BaseSpec : Info->Record->bases()) {
11797 for (auto &B : Derived->bases())
11902 for (auto &Base : Derived->bases()) {
12536 llvm::SmallPtrSet<const CXXRecordDecl *, 4> Bases;
12537 auto Collect = [&Bases](const CXXRecordDecl *Base) {
12538 Bases.insert(Base);
12542 // Collect all bases. Return false if we find a dependent base.
12548 auto IsNotBase = [&Bases](const CXXRecordDecl *Base) {
12549 return !Bases.count(Base);
12553 // of its bases is present in the base set of the current context.
12554 if (Bases.count(cast<CXXRecordDecl>(NamedContext)) ||
13259 for (CXXBaseSpecifier &B : VBase ? RD->vbases() : RD->bases()) {
13930 // constructor rules. Note that virtual bases are not taken into account
14131 for (auto &Base : ClassDecl->bases()) {
14347 /// with virtual bases. Such a move assignment might move-assign the virtual
14365 for (auto &BI : Class->bases()) {
14394 // multiple distinct direct bases of Class, diagnose it. (If it
14416 // Only walk over bases that have defaulted move assignment operators.
14423 for (auto &BI : Base->bases())
14492 for (auto &Base : ClassDecl->bases()) {
17426 // Only classes that have virtual bases need a VTT.
17430 for (const auto &I : RD->bases()) {