benlangmuir added a comment.

In D134923#3825673 <https://reviews.llvm.org/D134923#3825673>, @jansvoboda11 
wrote:

> IIUC this not only canonicalizes path to the main input file when compiling a 
> PCM, but also `-fmodule-map-file=` arguments for dependencies, correct? Since 
> that behavior is desirable, I think it would make sense to check for that in 
> the test, WDYT?

Yep, makes sense to me!



================
Comment at: clang/lib/Lex/ModuleMap.cpp:1307
+  // Do not canonicalize within the framework; the module map parser expects
+  // Modules/ not Versions/A/Modules.
+  if (llvm::sys::path::filename(Dir) == "Modules") {
----------------
jansvoboda11 wrote:
> Is that because the parser is looking for headers in `../Headers` and 
> `../PrivateHeaders`? If so, would it make sense to make the parser smarter 
> and canonicalize even framework paths here?
The failure I am aware of is that `loadModuleMapFile` will not detect the 
correct module `Directory`.  I'm not sure if there are more failures after 
that.  I didn't want to complicate this logic, because it seems like there are 
several possibilities:

* Modules/module.modulemap
* Versions/A/Modules/module.modulemap
* Versions/Current/Modules/module.modulemap

Also, if we get one of the versioned paths, but `Modules/module.modulemap` does 
not point to that specific file then it would be incorrect to use it.  I'm 
inclined to leave this alone, at least for the current change.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134923/new/

https://reviews.llvm.org/D134923

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to