diff options
Diffstat (limited to 'tools/clang-check/ClangCheck.cpp')
-rw-r--r-- | tools/clang-check/ClangCheck.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/tools/clang-check/ClangCheck.cpp b/tools/clang-check/ClangCheck.cpp index d68e282949..ef4a3ace0c 100644 --- a/tools/clang-check/ClangCheck.cpp +++ b/tools/clang-check/ClangCheck.cpp @@ -42,8 +42,9 @@ using namespace clang::tooling; using namespace llvm; cl::opt<std::string> BuildPath( - cl::Positional, - cl::desc("<build-path>")); + "p", + cl::desc("<build-path>"), + cl::Optional); cl::list<std::string> SourcePaths( cl::Positional, @@ -56,8 +57,13 @@ int main(int argc, const char **argv) { cl::ParseCommandLineOptions(argc, argv); if (!Compilations) { std::string ErrorMessage; - Compilations.reset(CompilationDatabase::loadFromDirectory(BuildPath, - ErrorMessage)); + if (!BuildPath.empty()) { + Compilations.reset(CompilationDatabase::loadFromDirectory(BuildPath, + ErrorMessage)); + } else { + Compilations.reset(CompilationDatabase::autoDetectFromSource( + SourcePaths[0], ErrorMessage)); + } if (!Compilations) llvm::report_fatal_error(ErrorMessage); } |