Lines Matching refs:Path
87 /// Get an LValue path entry, which is known to not be an array index, as a
96 /// Get an LValue path entry, which is known to not be an array index, as a
101 /// Get an LValue path entry, which is known to not be an array index, as a
106 /// Determine whether this LValue path entry for a base class names a virtual
112 /// Find the path length and type of the most-derived subobject in the given
113 /// path, and find the size of the containing array, if any.
116 ArrayRef<APValue::LValuePathEntry> Path,
120 for (unsigned I = 0, N = Path.size(); I != N; ++I) {
132 } else if (const FieldDecl *FD = getAsField(Path[I])) {
137 // Path[I] describes a base class.
150 /// A path from a glvalue to a subobject of that glvalue.
160 /// The length of the path to the most-derived object of which this is a
173 /// The entries on the path from the glvalue to the designated subobject.
999 DeclAndIsDerivedMember(Decl, false), Path() {}
1017 V = APValue(getDecl(), isDerivedMember(), Path);
1023 Path.clear();
1025 Path.insert(Path.end(), P.begin(), P.end());
1032 /// Path - The path of base/derived classes from the member declaration's
1034 SmallVector<const CXXRecordDecl*, 4> Path;
1039 assert(!Path.empty());
1041 if (Path.size() >= 2)
1042 Expected = Path[Path.size() - 2];
1054 Path.pop_back();
1062 Path.push_back(Derived);
1067 if (Path.empty())
1075 if (Path.empty())
1078 Path.push_back(Base);
1091 return LHS.Path == RHS.Path;
1752 /// truncating the lvalue's path to the given length.
1766 // Truncate the path to the subobject, and remove any derived-to-base offsets.
2123 // Walk the designator's path to find the subobject.
2237 // FIXME: Include a description of the path to the volatile subobject.
2413 // of length 1' case, and the entire path must match.
2993 // The end of the derived-to-base path for the base object must match the
2994 // derived-to-base path for the member pointer.
2995 if (LV.Designator.MostDerivedPathLength + MemPtr.Path.size() >
3001 LV.Designator.Entries.size() - MemPtr.Path.size();
3002 for (unsigned I = 0, N = MemPtr.Path.size(); I != N; ++I) {
3005 const CXXRecordDecl *MPDecl = MemPtr.Path[I];
3016 } else if (!MemPtr.Path.empty()) {
3017 // Extend the LValue path with the member pointer's path.
3019 MemPtr.Path.size() + IncludeMember);
3026 // The first class in the path is that of the lvalue.
3027 for (unsigned I = 1, N = MemPtr.Path.size(); I != N; ++I) {
3028 const CXXRecordDecl *Base = MemPtr.Path[N - I - 1];
3086 // Check this cast lands within the final derived-to-base subobject path.
3093 path,
3094 // since a cast can only be formed if the path is unique.
4880 // Base-to-derived member pointer casts store the path in derived-to-base
4882 // the wrong end of the derived->base arc, so stagger the path by one class.
6182 // Fast path: if it's a string literal, search the string value.
6200 // Fall through to slow path to issue appropriate diagnostic.
6203 // Slow path: scan the bytes of the string looking for the terminating 0.
8088 // Fast-path evaluations of integer literals, since we sometimes see files