summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2019-09-13 22:12:02 +0000
committerAlex Lorenz <arphaman@gmail.com>2019-09-13 22:12:02 +0000
commitee30b0ecc245a5c50e47de19fa21491b50427ae2 (patch)
tree544eb35443e90cf8326accf44ee9fe7c9f00788d /clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
parent573863ea180b7ce73dda4e019ad94fddf2222363 (diff)
downloadbcm5719-llvm-ee30b0ecc245a5c50e47de19fa21491b50427ae2.tar.gz
bcm5719-llvm-ee30b0ecc245a5c50e47de19fa21491b50427ae2.zip
[clang-scan-deps] Fix for headers having the same name as a directory
Scan deps tool crashes when called on a C++ file, containing an include that has the same name as a directory. The tool crashes since it finds foo/dir and tries to read that as a file and fails. Patch by: kousikk (Kousik Kumar) Differential Revision: https://reviews.llvm.org/D67091 llvm-svn: 371903
Diffstat (limited to 'clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp')
-rw-r--r--clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
index 7a3d189adac..35ecbd4a7fb 100644
--- a/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
+++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
@@ -193,6 +193,9 @@ private:
llvm::ErrorOr<std::unique_ptr<llvm::vfs::File>>
createFile(const CachedFileSystemEntry *Entry,
ExcludedPreprocessorDirectiveSkipMapping *PPSkipMappings) {
+ if (Entry->isDirectory())
+ return llvm::ErrorOr<std::unique_ptr<llvm::vfs::File>>(
+ std::make_error_code(std::errc::is_a_directory));
llvm::ErrorOr<StringRef> Contents = Entry->getContents();
if (!Contents)
return Contents.getError();
OpenPOWER on IntegriCloud