aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInstance.cpp
diff options
context:
space:
mode:
authorAbraham Corea Diaz <abrahamcd@google.com>2022-08-26 18:31:38 +0000
committerChristopher Di Bella <cjdb@google.com>2022-08-26 18:49:29 +0000
commit82e893c47c77430ca59f92d7a814a336e3873a35 (patch)
tree7cbf70b06ba58685ddb67947eb0c5e7e990d69a1 /clang/lib/Frontend/CompilerInstance.cpp
parent47166968db5c5c677bda996e0c5e40e94d8ef09f (diff)
downloadllvm-82e893c47c77430ca59f92d7a814a336e3873a35.zip
llvm-82e893c47c77430ca59f92d7a814a336e3873a35.tar.gz
llvm-82e893c47c77430ca59f92d7a814a336e3873a35.tar.bz2
[clang] Enable output of SARIF diagnostics
Enables Clang to emit diagnostics in SARIF format when `-fdiagnostics-format=sarif`. Adds a new DiagnosticConsumer named SARIFDiagnosticPrinter and a new DiagnosticRenderer named SARIFDiagnostic to constuct and emit a SARIF object containing the run's basic diagnostic info. Reviewed By: cjdb, denik, aaron.ballman Differential Revision: https://reviews.llvm.org/D131632
Diffstat (limited to 'clang/lib/Frontend/CompilerInstance.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInstance.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp
index c44ee00..b187bdc 100644
--- a/clang/lib/Frontend/CompilerInstance.cpp
+++ b/clang/lib/Frontend/CompilerInstance.cpp
@@ -12,6 +12,7 @@
#include "clang/AST/Decl.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/Diagnostic.h"
+#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/LangStandard.h"
#include "clang/Basic/SourceManager.h"
@@ -25,6 +26,7 @@
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/FrontendPluginRegistry.h"
#include "clang/Frontend/LogDiagnosticPrinter.h"
+#include "clang/Frontend/SARIFDiagnosticPrinter.h"
#include "clang/Frontend/SerializedDiagnosticPrinter.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
@@ -346,6 +348,8 @@ CompilerInstance::createDiagnostics(DiagnosticOptions *Opts,
// implementing -verify.
if (Client) {
Diags->setClient(Client, ShouldOwnClient);
+ } else if (Opts->getFormat() == DiagnosticOptions::SARIF) {
+ Diags->setClient(new SARIFDiagnosticPrinter(llvm::errs(), Opts));
} else
Diags->setClient(new TextDiagnosticPrinter(llvm::errs(), Opts));