Home | History | Annotate | Download | only in Sema

Lines Matching refs:Paths

839 bool Sema::IsDerivedFrom(QualType Derived, QualType Base, CXXBasePaths &Paths) {
851 return DerivedRD->isDerivedFrom(BaseRD, Paths);
854 void Sema::BuildBasePathArray(const CXXBasePaths &Paths,
857 assert(Paths.isRecordingPaths() && "Must record paths!");
859 const CXXBasePath &Path = Paths.front();
907 // explore multiple paths to determine if there is an ambiguity.
908 CXXBasePaths Paths(/*FindAmbiguities=*/true, /*RecordPaths=*/true,
910 bool DerivationOkay = IsDerivedFrom(Derived, Base, Paths);
915 if (!Paths.isAmbiguous(Context.getCanonicalType(Base).getUnqualifiedType())) {
918 switch (CheckBaseClassAccess(Loc, Base, Derived, Paths.front(),
931 BuildBasePathArray(Paths, *BasePath);
937 // search just one more time to compute all of the possible paths so
941 Paths.clear();
942 Paths.setRecordingPaths(true);
943 bool StillOkay = IsDerivedFrom(Derived, Base, Paths);
947 // Build up a textual representation of the ambiguous paths, e.g.,
949 // conversions in the diagnostic. We only print one of the paths
951 std::string PathDisplayStr = getAmbiguousPathsDisplayString(Paths);
972 /// @brief Builds a string representing ambiguous paths from a
977 /// to show the different paths that one can take through the
984 std::string Sema::getAmbiguousPathsDisplayString(CXXBasePaths &Paths) {
987 for (CXXBasePaths::paths_iterator Path = Paths.begin();
988 Path != Paths.end(); ++Path) {
993 PathDisplayStr += Context.getTypeDeclType(Paths.getOrigin()).getAsString();
1306 CXXBasePaths Paths(/*FindAmbiguities=*/true, /*RecordPaths=*/true,
1309 BaseType, Paths)) {
1310 for (CXXBasePaths::paths_iterator Path = Paths.begin();
1311 Path != Paths.end(); ++Path) {
4018 CXXBasePaths Paths(/*FindAmbiguities=*/true, // true to look in all bases.
4039 if (DC->lookupInBases(&FindHiddenVirtualMethod, &Data, Paths) &&