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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits