llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Cyndy Ishida (cyndyishida)

<details>
<summary>Changes</summary>

`DirectoryLookup`'s flag is only set once the module maps in all of a search 
directory's immediate subdirectories are parsed and loaded, and callers rely on 
it to skip loading them again. Name it for that.

---
Full diff: https://github.com/llvm/llvm-project/pull/237053.diff


2 Files Affected:

- (modified) clang/include/clang/Lex/DirectoryLookup.h (+11-13) 
- (modified) clang/lib/Lex/HeaderSearch.cpp (+3-3) 


``````````diff
diff --git a/clang/include/clang/Lex/DirectoryLookup.h 
b/clang/include/clang/Lex/DirectoryLookup.h
index bb703dfad2b28f..6b07c999232ab3 100644
--- a/clang/include/clang/Lex/DirectoryLookup.h
+++ b/clang/include/clang/Lex/DirectoryLookup.h
@@ -58,10 +58,10 @@ class DirectoryLookup {
   LLVM_PREFERRED_TYPE(LookupType_t)
   unsigned LookupType : 2;
 
-  /// Whether we've performed an exhaustive search for module maps
-  /// within the subdirectories of this directory.
+  /// Whether we've performed an exhaustive search and loaded all of the module
+  /// maps within the subdirectories of this directory.
   LLVM_PREFERRED_TYPE(bool)
-  unsigned SearchedAllModuleMaps : 1;
+  unsigned LoadedAllModuleMaps : 1;
 
 public:
   /// This ctor *does not take ownership* of 'Dir'.
@@ -69,12 +69,12 @@ class DirectoryLookup {
                   bool isFramework)
       : u(Dir), DirCharacteristic(DT),
         LookupType(isFramework ? LT_Framework : LT_NormalDir),
-        SearchedAllModuleMaps(false) {}
+        LoadedAllModuleMaps(false) {}
 
   /// This ctor *does not take ownership* of 'Map'.
   DirectoryLookup(const HeaderMap *Map, SrcMgr::CharacteristicKind DT)
       : u(Map), DirCharacteristic(DT), LookupType(LT_HeaderMap),
-        SearchedAllModuleMaps(false) {}
+        LoadedAllModuleMaps(false) {}
 
   /// getLookupType - Return the kind of directory lookup that this is: either 
a
   /// normal directory, a framework path, or a HeaderMap.
@@ -120,15 +120,13 @@ class DirectoryLookup {
   /// isHeaderMap - Return true if this is a header map, not a normal 
directory.
   bool isHeaderMap() const { return getLookupType() == LT_HeaderMap; }
 
-  /// Determine whether we have already searched this entire
-  /// directory for module maps.
-  bool haveSearchedAllModuleMaps() const { return SearchedAllModuleMaps; }
+  /// Determine whether we have already searched and loaded all of the module
+  /// maps within this entire directory.
+  bool haveLoadedAllModuleMaps() const { return LoadedAllModuleMaps; }
 
-  /// Specify whether we have already searched all of the subdirectories
-  /// for module maps.
-  void setSearchedAllModuleMaps(bool SAMM) {
-    SearchedAllModuleMaps = SAMM;
-  }
+  /// Specify whether we have already loaded all of the module maps within the
+  /// subdirectories of this directory.
+  void setLoadedAllModuleMaps(bool LAMM) { LoadedAllModuleMaps = LAMM; }
 
   /// DirCharacteristic - The type of directory this is, one of the DirType 
enum
   /// values.
diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp
index 906ce07b96a797..6c47765cbad0df 100644
--- a/clang/lib/Lex/HeaderSearch.cpp
+++ b/clang/lib/Lex/HeaderSearch.cpp
@@ -388,7 +388,7 @@ Module *HeaderSearch::lookupModule(StringRef ModuleName, 
StringRef SearchName,
     if (HSOpts.AllowModuleMapSubdirectorySearch) {
       // If we've already performed the exhaustive search for module maps in
       // this search directory, don't do it again.
-      if (Dir.haveSearchedAllModuleMaps())
+      if (Dir.haveLoadedAllModuleMaps())
         continue;
 
       // Load all module maps in the immediate subdirectories of this search
@@ -2407,7 +2407,7 @@ void 
HeaderSearch::loadSubdirectoryModuleMaps(DirectoryLookup &SearchDir) {
   assert(HSOpts.ImplicitModuleMaps &&
          "Should not be loading subdirectory module maps");
 
-  if (SearchDir.haveSearchedAllModuleMaps())
+  if (SearchDir.haveLoadedAllModuleMaps())
     return;
 
   std::error_code EC;
@@ -2427,7 +2427,7 @@ void 
HeaderSearch::loadSubdirectoryModuleMaps(DirectoryLookup &SearchDir) {
           /*ImplicitlyDiscovered=*/true, SearchDir.isFramework());
   }
 
-  SearchDir.setSearchedAllModuleMaps(true);
+  SearchDir.setLoadedAllModuleMaps(true);
 }
 
 std::string HeaderSearch::suggestPathToFileForDiagnostics(

``````````

</details>


https://github.com/llvm/llvm-project/pull/237053
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to