diff --git a/clang/test/ClangScanDeps/empty.cpp b/clang/test/ClangScanDeps/empty.cpp new file mode 100644 index 0000000000000..807bb5c3fee4b --- /dev/null +++ b/clang/test/ClangScanDeps/empty.cpp @@ -0,0 +1,4 @@ +// RUN: rm -rf %t +// RUN: not clang-scan-deps --format=p1689 -- %clang this-file-does-not-exist.cpp 2>&1 | FileCheck %s --check-prefix=CHECK +// CHECK: error: no such file or directory: 'this-file-does-not-exist.cpp' +// CHECK: error: no input files diff --git a/clang/tools/clang-scan-deps/ClangScanDeps.cpp b/clang/tools/clang-scan-deps/ClangScanDeps.cpp index 75aa4ae97c618..3cd00b4e0fa5a 100644 --- a/clang/tools/clang-scan-deps/ClangScanDeps.cpp +++ b/clang/tools/clang-scan-deps/ClangScanDeps.cpp @@ -728,7 +728,7 @@ getCompilationDataBase(int argc, char **argv, std::string &ErrorMessage) { *Diags); std::unique_ptr C( TheDriver.BuildCompilation(CommandLine)); - if (!C) + if (!C || C->getJobs().empty()) return nullptr; auto Cmd = C->getJobs().begin();