[clang-tools-extra] [clangd] [Modules] Fixes to correctly handle module dependencies (PR #142090)

via cfe-commits cfe-commits at lists.llvm.org
Fri May 30 07:47:51 PDT 2025


================
@@ -430,21 +429,21 @@ class CachingProjectModules : public ProjectModules {
 /// Collect the directly and indirectly required module names for \param
 /// ModuleName in topological order. The \param ModuleName is guaranteed to
 /// be the last element in \param ModuleNames.
-llvm::SmallVector<StringRef> getAllRequiredModules(PathRef RequiredSource,
-                                                   CachingProjectModules &MDB,
-                                                   StringRef ModuleName) {
-  llvm::SmallVector<llvm::StringRef> ModuleNames;
+llvm::SmallVector<std::string> getAllRequiredModules(PathRef RequiredSource,
+                                                     CachingProjectModules &MDB,
+                                                     StringRef ModuleName) {
+  llvm::SmallVector<std::string> ModuleNames;
   llvm::StringSet<> ModuleNamesSet;
 
   auto VisitDeps = [&](StringRef ModuleName, auto Visitor) -> void {
     ModuleNamesSet.insert(ModuleName);
 
-    for (StringRef RequiredModuleName : MDB.getRequiredModules(
+    for (const std::string &RequiredModuleName : MDB.getRequiredModules(
----------------
fleeting-xx wrote:

I'll change this back to a `StringRef` when I resubmit this after the arm64 build issues are resolved.

https://github.com/llvm/llvm-project/pull/142090


More information about the cfe-commits mailing list