tahonermann added a comment. >> In D154130#4486898 <https://reviews.llvm.org/D154130#4486898>, @tahonermann >> wrote: >> >>> 95% of the %>t are around clang modulemap files, because that code resolves >>> real paths in C++ by design, so I can't avoid it. >> >> Can you link to evidence that this behavior is by design? It isn't obvious >> to me why modulemap files would demand different behavior; especially since >> that would exacerbate MAX_PATH problems. > > I agree with you. The original rationale seems to be here: > https://github.com/llvm/llvm-project/blob/926f3759ec62a8f170e76a60316cc0bdd9dd2ec9/clang/lib/Lex/HeaderSearch.cpp#L257
Thank you for finding that. I took a look at the code and it looks to me like it would be safe to change ModuleMap::canonicalizeModuleMapPath() <https://github.com/llvm/llvm-project/blob/main/clang/lib/Lex/ModuleMap.cpp#L1310> to use a drive preserving canonicalization. I think the worst case impact would be that a module cache lookup would fail thereby leading to a cache miss and rebuild of the target module. That could impose a significant performance and drive space penalty in the event that substitute drive paths are changed, but I would expect such changes to be rare. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154130/new/ https://reviews.llvm.org/D154130 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits