diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2019-09-12 18:03:24 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2019-09-12 18:03:24 +0000 |
| commit | 57a014d31fb2e731867623d355e98801596814f8 (patch) | |
| tree | 14c9e7ce5d7e487450677238f5505522c74da322 /clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp | |
| parent | 458c2759b184dcfc60c1c217061d926c3f7ba305 (diff) | |
| download | bcm5719-llvm-57a014d31fb2e731867623d355e98801596814f8.tar.gz bcm5719-llvm-57a014d31fb2e731867623d355e98801596814f8.zip | |
[clang-scan-deps] remove dots and dots dots from the reported file dependency paths
This resolves differences observed on LLVM + Clang when running the comparison between canonical
dependencies (full preprocessing, no file manager reused), and dependencies obtained
when the file manager was reused between the full preprocessing invocations.
llvm-svn: 371751
Diffstat (limited to 'clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp')
| -rw-r--r-- | clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp index f6096078d15..f382c202f8c 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -30,8 +30,12 @@ public: : DependencyFileGenerator(*Opts), Opts(std::move(Opts)), C(C) {} void finishedMainFile(DiagnosticsEngine &Diags) override { - for (const auto &File : getDependencies()) - C.handleFileDependency(*Opts, File); + llvm::SmallString<256> CanonPath; + for (const auto &File : getDependencies()) { + CanonPath = File; + llvm::sys::path::remove_dots(CanonPath, /*remove_dot_dot=*/true); + C.handleFileDependency(*Opts, CanonPath); + } } private: |

