Lines Matching defs:Bases
47 /// Bases - Information about the base subobjects.
48 SmallVector<BaseSubobjectInfo*, 4> Bases;
142 // Check the bases.
192 // We only need to check empty bases.
210 // We only care about empty bases.
238 // Traverse all non-virtual bases.
240 for (unsigned I = 0, E = Info->Bases.size(); I != E; ++I) {
241 BaseSubobjectInfo* Base = Info->Bases[I];
280 // subobject of non-empty bases, are empty bases that can be placed at
289 // Traverse all non-virtual bases.
291 for (unsigned I = 0, E = Info->Bases.size(); I != E; ++I) {
292 BaseSubobjectInfo* Base = Info->Bases[I];
350 // Traverse all non-virtual bases.
365 // This is the most derived class, traverse virtual bases as well.
451 // field subobjects are subobjects of empty bases that can be placed at offset
462 // Traverse all non-virtual bases.
476 // This is the most derived class, traverse virtual bases as well.
524 // field subobjects are subobjects of empty bases that can be placed at
610 /// Bases - base classes and their offsets in the record.
611 BaseOffsetsMapTy Bases;
624 /// VisitedVirtualBases - A set of all the visited virtual bases, used to
625 /// avoid visiting virtual bases more than once.
695 /// VirtualBaseInfo - Map from all the (direct or indirect) virtual bases
699 /// NonVirtualBaseInfo - Map from all the direct non-virtual bases of the
704 /// bases of the given class.
738 /// LayoutVirtualBases - Lays out all the virtual bases.
806 "Cannot layout class with dependent bases.");
838 // Compute all the primary virtual bases for all of our direct and
839 // indirect bases, and record all their primary virtual base classes.
847 // Ignore virtual bases.
862 // The Microsoft ABI doesn't have primary virtual bases.
943 // Now go through all direct bases.
951 Info->Bases.push_back(ComputeBaseSubobjectInfo(BaseDecl, IsVirtual, Info));
955 // Traversing the bases must have created the base info for our primary
985 // Add the base info to the map of non-virtual bases.
1061 // Now lay out the non-virtual bases.
1065 // Ignore virtual bases, but remember that we saw one.
1074 // Remember if this base has virtual bases itself.
1106 // Note that we've only laid out the non-virtual bases, so on the
1128 assert(!Bases.count(Base->Class) && "base offset already exists!");
1129 Bases.insert(std::make_pair(Base->Class, Offset));
1137 // This base isn't interesting, it has no virtual bases.
1157 // Now go through all direct non-virtual bases.
1159 for (unsigned I = 0, E = Info->Bases.size(); I != E; ++I) {
1160 const BaseSubobjectInfo *Base = Info->Bases[I];
1180 // bases),x it still needs a vtable to locate its virtual bases.
1185 // other than those declared by its virtual bases. The AST doesn't
1193 // - Polymorphic classes with no virtual bases must either declare
1250 /// In the Microsoft ABI, decide which of the virtual bases require a
1254 // Bail out if we have no virtual bases.
1257 // Build up the set of virtual bases that we haven't decided yet.
1268 // bases and collect this information.
1274 // Iterate over the set of virtual bases provided by this class.
1294 // Okay, we have virtual bases that we haven't yet decided about. A
1301 // Collect the set of bases directly overridden by any method in this class.
1302 // It's possible that some of these classes won't be virtual bases, or won't be
1303 // provided by virtual bases, or won't be virtual bases in the overridden
1304 // instance but are virtual bases elsewhere. Only the last matters for what
1347 // Walk the undecided v-bases and check whether they (non-virtually)
1348 // provide any of the overridden bases. We don't need to consider
1396 // If it has no virtual bases, then the vfptr must be at a static offset.
1430 "Cannot layout class with dependent bases.");
1441 // Only visit virtual bases once.
1453 // This base isn't interesting since it doesn't have any virtual bases.
1469 // primary bases.
1648 // Lay out the vtable and the non-virtual bases.
1673 // Lay out the virtual bases and add the primary virtual base offsets.
1682 // Check that we have base offsets for all bases.
1691 assert(Bases.count(BaseDecl) && "Did not find base offset!");
1694 // And all virtual bases.
2213 // MSVC doesn't round up to the alignment of the record with virtual bases.
2525 Builder.Bases, Builder.VBases);
2689 // Dump (non-virtual) bases
2693 "Cannot layout class with dependent bases.");
2741 // Dump virtual bases.