[clang] [ASTWriter] Detect more non-affecting FileIDs to reduce source location duplication (PR #112015)

Ilya Biryukov via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 14 03:00:28 PDT 2024


================
@@ -192,13 +201,13 @@ GetAffectingModuleMaps(const Preprocessor &PP, Module *RootModule) {
 
       // The containing module map is affecting, because it's being pointed
       // into by Module::DefinitionLoc.
-      if (auto FE = MM.getContainingModuleMapFile(Mod))
-        ModuleMaps.insert(*FE);
+      if (auto F = MM.getContainingModuleMapFileID(Mod); F.isValid())
+        ModuleMaps.insert(F);
       // For inferred modules, the module map that allowed inferring is not
       // related to the virtual containing module map file. It did affect the
       // compilation, though.
-      if (auto FE = MM.getModuleMapFileForUniquing(Mod))
-        ModuleMaps.insert(*FE);
+      if (auto F = MM.getModuleMapFileIDForUniquing(Mod); F.isValid())
----------------
ilya-biryukov wrote:

I am not sure I got the comment right, so wanted to ask again.

Do you mean the use of `F` for both `ifs`? The potential fix would be to use two different names (e.g. `F` and `UniquingF`).
Or is it this about something else (e.g. the logic here or shadowing of some names that aren't obvious to me).

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


More information about the cfe-commits mailing list