================ @@ -779,23 +795,16 @@ static StringRef makeAbsoluteAndPreferred(CompilerInstance &CI, StringRef Path, void ModuleDepCollector::addFileDep(StringRef Path) { if (IsStdModuleP1689Format) { // Within P1689 format, we don't want all the paths to be absolute path - // since it may violate the tranditional make style dependencies info. - FileDeps.push_back(std::string(Path)); + // since it may violate the traditional make style dependencies info. + FileDeps.emplace_back(Path); return; } llvm::SmallString<256> Storage; Path = makeAbsoluteAndPreferred(ScanInstance, Path, Storage); - FileDeps.push_back(std::string(Path)); + FileDeps.emplace_back(Path); } void ModuleDepCollector::addFileDep(ModuleDeps &MD, StringRef Path) { - if (IsStdModuleP1689Format) { - MD.FileDeps.insert(Path); - return; - } - - llvm::SmallString<256> Storage; - Path = makeAbsoluteAndPreferred(ScanInstance, Path, Storage); ---------------- jansvoboda11 wrote:
Looking at the `ASTWriter`/`ASTReader` code, I'm pretty sure Clang modules always have an absolute base directory. (Unless the `-fmodule-file-home-is-cwd` or `-fmodule-map-file-home-is-cwd` flags have been specified, in which case reporting relative paths is expected IMO.) Standard C++ modules will use the `-isysroot` argument as-is as the base directory. So I think overall the call to `makeAbsoluteAndPreferred()` is okay to remove. For context, making paths absolute was introduced by @benlangmuir in [D130934](https://reviews.llvm.org/D130934). https://github.com/llvm/llvm-project/pull/114457 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits