diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2019-09-13 22:12:02 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2019-09-13 22:12:02 +0000 |
| commit | ee30b0ecc245a5c50e47de19fa21491b50427ae2 (patch) | |
| tree | 544eb35443e90cf8326accf44ee9fe7c9f00788d /clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp | |
| parent | 573863ea180b7ce73dda4e019ad94fddf2222363 (diff) | |
| download | bcm5719-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.cpp | 3 |
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(); |

