Only report first error when no compilation database is found.
authorDaniel Jasper <djasper@google.com>
Mon, 15 Oct 2012 13:12:24 +0000 (13:12 +0000)
committerDaniel Jasper <djasper@google.com>
Mon, 15 Oct 2012 13:12:24 +0000 (13:12 +0000)
Review: http://llvm-reviews.chandlerc.com/D62
llvm-svn: 165933

clang/lib/Tooling/CompilationDatabase.cpp

index 6e94180..4149cda 100644 (file)
@@ -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);
   }