summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2019-09-12 18:03:24 +0000
committerAlex Lorenz <arphaman@gmail.com>2019-09-12 18:03:24 +0000
commit57a014d31fb2e731867623d355e98801596814f8 (patch)
tree14c9e7ce5d7e487450677238f5505522c74da322 /clang
parent458c2759b184dcfc60c1c217061d926c3f7ba305 (diff)
downloadbcm5719-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')
-rw-r--r--clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp8
-rw-r--r--clang/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json2
2 files changed, 7 insertions, 3 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:
diff --git a/clang/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json b/clang/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json
index e458b5ca789..82c6b7c1cb5 100644
--- a/clang/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json
+++ b/clang/test/ClangScanDeps/Inputs/subframework_header_dir_symlink_cdb.json
@@ -6,7 +6,7 @@
},
{
"directory": "DIR",
- "command": "clang -E DIR/subframework_header_dir_symlink_input2.m -FInputs/frameworks -iframework Inputs/frameworks_symlink",
+ "command": "clang -E DIR/subframework_header_dir_symlink_input2.m -FInputs/frameworks -iframework Inputs/frameworks_symlink/../frameworks_symlink",
"file": "DIR/subframework_header_dir_symlink_input2.m"
}
]
OpenPOWER on IntegriCloud