avogelsgesang added a subscriber: alexfh. avogelsgesang added a comment. >> Those relative paths are meant to be resolved relative to the corresponding >> build directory. > > Is this behavior documented somewhere?
I couldn't find this documented anywhere. My assumption is based on behavior which I observed from clang-tidy. Without this patch, `clang-apply-fixes` failed to apply the changes exported by `clang-tidy --export-fixes` due to its inability to find some source files referred to through relative paths It seems the `clang::tooling::Diagnostic::BuildDirectory` was introduced in https://reviews.llvm.org/D26137. Maybe @alexfh who reviewed that patch can provide some more context here? ================ Comment at: clang-tools-extra/clang-apply-replacements/lib/Tooling/ApplyReplacements.cpp:159 // automatically canonicalized. + auto &WorkingDir = SM.getFileManager().getFileSystemOpts().WorkingDir; + auto PrevWorkingDir = WorkingDir; ---------------- ymandel wrote: > Why are you capturing this as a reference? This is a subtle and IMO error > prone pattern, since it's not obvious in the code below that you're mutating > a deeply nested element of the filesystem. Can you instead use a local > variable and just set this right before you need it? > Why are you capturing this as a reference? Mostly to keep the code shorter. Otherwise, I would have to write ``` auto PrevWorkingDir = SM.getFileManager().getFileSystemOpts().WorkingDir; if (buildDir) SM.getFileManager().getFileSystemOpts().WorkingDir = *buildDir; // [...] WorkingDir = SM.getFileManager().getFileSystemOpts().WorkingDir; ``` which isn't really DRY. > Can you instead use a local variable and just set this right before you need > it? I think I don't understand the alternative you are proposing here. Can you provide an example? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D112647/new/ https://reviews.llvm.org/D112647 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits