This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. jansvoboda11 marked an inline comment as done. Closed by commit rGf43ce5199df3: [clang][lex] NFCI: Use DirectoryEntryRef in FrameworkCacheEntry (authored by jansvoboda11).
Changed prior to commit: https://reviews.llvm.org/D123854?vs=423103&id=423947#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D123854/new/ https://reviews.llvm.org/D123854 Files: clang/include/clang/Lex/HeaderSearch.h clang/lib/Lex/HeaderSearch.cpp Index: clang/lib/Lex/HeaderSearch.cpp =================================================================== --- clang/lib/Lex/HeaderSearch.cpp +++ clang/lib/Lex/HeaderSearch.cpp @@ -582,7 +582,7 @@ HS.LookupFrameworkCache(Filename.substr(0, SlashPos)); // If it is known and in some other directory, fail. - if (CacheEntry.Directory && CacheEntry.Directory != getFrameworkDir()) + if (CacheEntry.Directory && CacheEntry.Directory != getFrameworkDirRef()) return None; // Otherwise, construct the path to this framework dir. @@ -611,7 +611,7 @@ // Otherwise, if it does, remember that this is the right direntry for this // framework. - CacheEntry.Directory = getFrameworkDir(); + CacheEntry.Directory = getFrameworkDirRef(); // If this is a user search directory, check if the framework has been // user-specified as a system framework. @@ -626,7 +626,7 @@ // Set out flags. InUserSpecifiedSystemFramework = CacheEntry.IsUserSpecifiedSystemFramework; - IsFrameworkFound = CacheEntry.Directory; + IsFrameworkFound = CacheEntry.Directory.hasValue(); if (RelativePath) { RelativePath->clear(); @@ -1184,13 +1184,13 @@ ++NumSubFrameworkLookups; // If the framework dir doesn't exist, we fail. - auto Dir = FileMgr.getDirectory(FrameworkName); + auto Dir = FileMgr.getOptionalDirectoryRef(FrameworkName); if (!Dir) return None; // Otherwise, if it does, remember that this is the right direntry for this // framework. - CacheLookup.second.Directory = *Dir; + CacheLookup.second.Directory = Dir; } Index: clang/include/clang/Lex/HeaderSearch.h =================================================================== --- clang/include/clang/Lex/HeaderSearch.h +++ clang/include/clang/Lex/HeaderSearch.h @@ -155,7 +155,7 @@ /// This structure is used to record entries in our framework cache. struct FrameworkCacheEntry { /// The directory entry which should be used for the cached framework. - const DirectoryEntry *Directory; + Optional<DirectoryEntryRef> Directory; /// Whether this framework has been "user-specified" to be treated as if it /// were a system framework (even if it was found outside a system framework
Index: clang/lib/Lex/HeaderSearch.cpp =================================================================== --- clang/lib/Lex/HeaderSearch.cpp +++ clang/lib/Lex/HeaderSearch.cpp @@ -582,7 +582,7 @@ HS.LookupFrameworkCache(Filename.substr(0, SlashPos)); // If it is known and in some other directory, fail. - if (CacheEntry.Directory && CacheEntry.Directory != getFrameworkDir()) + if (CacheEntry.Directory && CacheEntry.Directory != getFrameworkDirRef()) return None; // Otherwise, construct the path to this framework dir. @@ -611,7 +611,7 @@ // Otherwise, if it does, remember that this is the right direntry for this // framework. - CacheEntry.Directory = getFrameworkDir(); + CacheEntry.Directory = getFrameworkDirRef(); // If this is a user search directory, check if the framework has been // user-specified as a system framework. @@ -626,7 +626,7 @@ // Set out flags. InUserSpecifiedSystemFramework = CacheEntry.IsUserSpecifiedSystemFramework; - IsFrameworkFound = CacheEntry.Directory; + IsFrameworkFound = CacheEntry.Directory.hasValue(); if (RelativePath) { RelativePath->clear(); @@ -1184,13 +1184,13 @@ ++NumSubFrameworkLookups; // If the framework dir doesn't exist, we fail. - auto Dir = FileMgr.getDirectory(FrameworkName); + auto Dir = FileMgr.getOptionalDirectoryRef(FrameworkName); if (!Dir) return None; // Otherwise, if it does, remember that this is the right direntry for this // framework. - CacheLookup.second.Directory = *Dir; + CacheLookup.second.Directory = Dir; } Index: clang/include/clang/Lex/HeaderSearch.h =================================================================== --- clang/include/clang/Lex/HeaderSearch.h +++ clang/include/clang/Lex/HeaderSearch.h @@ -155,7 +155,7 @@ /// This structure is used to record entries in our framework cache. struct FrameworkCacheEntry { /// The directory entry which should be used for the cached framework. - const DirectoryEntry *Directory; + Optional<DirectoryEntryRef> Directory; /// Whether this framework has been "user-specified" to be treated as if it /// were a system framework (even if it was found outside a system framework
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits