Lines Matching defs:Path
37 /// VirtualBase - If the path from the derived class to the base class
39 /// virtual base in this path (i.e. closest to the base class).
44 /// path from the derived class to the base class involves a virtual base
221 const CXXBasePath &Path) {
228 for (int I = Path.size(), E = 0; I != E; --I) {
229 const CXXBasePathElement &Element = Path[I - 1];
240 for (unsigned I = NonVirtualStart, E = Path.size(); I != E; ++I) {
241 const CXXBasePathElement &Element = Path[I];
476 // Fast-path matches in the canonical types.
1258 // Check if this path gives us the right base subobject.
2642 CXXBasePath &Path, void *BasesSet) {
2672 const CXXBasePath &Path = (*I);
2676 // For each path from the overrider to the parents of the overridden methods,
2677 // traverse the path, calculating the this offset in the most derived class.
2678 for (int J = 0, F = Path.size(); J != F; ++J) {
2679 const CXXBasePathElement &Element = Path[J];
2828 // the one defined by the vfptr base path or the primary base of the current class.
2963 static void PrintBasePath(const VPtrInfo::BasePath &Path, raw_ostream &Out) {
2964 for (VPtrInfo::BasePath::const_reverse_iterator I = Path.rbegin(),
2965 E = Path.rend(); I != E; ++I) {
3153 /// record with a vbptr creates an initially empty path.
3159 /// node produced an ambiguous path, its path is extended with the current class.
3161 /// ambiguous path which wasn't already extended. Because each node yields an
3162 /// unambiguous set of paths, MSVC doesn't need to extend any path more than once
3191 // Don't include the path if it goes through a virtual base that we've
3196 // Copy the path and adjust it as necessary.
3199 // We mangle Base into the path if the path would've been ambiguous and it
3204 // Keep track of the full path.
3250 P->NextBaseToMangle = nullptr;// Prevent the path from being extended twice.
3258 // Any bucket with more than one path in it gets extended by NextBase, which