[AST] Hide errors from the attempt to introspect nodes
authorStephen Kelly <steveire@gmail.com>
Tue, 16 Mar 2021 23:44:45 +0000 (23:44 +0000)
committerStephen Kelly <steveire@gmail.com>
Tue, 16 Mar 2021 23:46:31 +0000 (23:46 +0000)
clang/lib/Tooling/DumpTool/ClangSrcLocDump.cpp

index 6615f86..74ba70e 100644 (file)
@@ -92,7 +92,13 @@ int main(int argc, const char **argv) {
   auto ParsedArgs = Opts.ParseArgs(llvm::makeArrayRef(Argv).slice(1),\r
                                    MissingArgIndex, MissingArgCount);\r
   ParseDiagnosticArgs(*DiagOpts, ParsedArgs);\r
-  TextDiagnosticPrinter DiagnosticPrinter(llvm::errs(), &*DiagOpts);\r
+\r
+  // Don't output diagnostics, because common scenarios such as\r
+  // cross-compiling fail with diagnostics.  This is not fatal, but\r
+  // just causes attempts to use the introspection API to return no data.\r
+  std::string Str;\r
+  llvm::raw_string_ostream OS(Str);\r
+  TextDiagnosticPrinter DiagnosticPrinter(OS, &*DiagOpts);\r
   DiagnosticsEngine Diagnostics(\r
       IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), &*DiagOpts,\r
       &DiagnosticPrinter, false);\r