From: Daniel Jasper Date: Mon, 15 Oct 2012 13:12:24 +0000 (+0000) Subject: Only report first error when no compilation database is found. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3d21078935d0376c1fc93af662a93e79d82e6f4b;p=clang Only report first error when no compilation database is found. Review: http://llvm-reviews.chandlerc.com/D62 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165933 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Tooling/CompilationDatabase.cpp b/lib/Tooling/CompilationDatabase.cpp index 6e941802dc..4149cda378 100644 --- a/lib/Tooling/CompilationDatabase.cpp +++ b/lib/Tooling/CompilationDatabase.cpp @@ -49,14 +49,19 @@ static CompilationDatabase * findCompilationDatabaseFromDirectory(StringRef Directory, std::string &ErrorMessage) { std::stringstream ErrorStream; + bool HasErrorMessage = false; while (!Directory.empty()) { std::string LoadErrorMessage; if (CompilationDatabase *DB = CompilationDatabase::loadFromDirectory(Directory, LoadErrorMessage)) return DB; - ErrorStream << "No compilation database found in " << Directory.str() - << "\n" << LoadErrorMessage; + + if (!HasErrorMessage) { + ErrorStream << "No compilation database found in " << Directory.str() + << " or any parent directory\n" << LoadErrorMessage; + HasErrorMessage = true; + } Directory = llvm::sys::path::parent_path(Directory); }