From: Aaron Ballman Date: Thu, 1 Nov 2018 11:52:07 +0000 (+0000) Subject: Update to the 10-10 SARIF spec. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e95e45bab780580be6313a80702b6a42596cad9e;p=clang Update to the 10-10 SARIF spec. This removes the Step property (which can be calculated by consumers trivially), and updates the schema and version numbers accordingly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@345823 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp b/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp index d86d1ff687..34e948634a 100644 --- a/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp +++ b/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp @@ -154,10 +154,9 @@ static StringRef importanceToStr(Importance I) { llvm_unreachable("Fully covered switch is not so fully covered"); } -static json::Object createThreadFlowLocation(int Step, json::Object &&Location, +static json::Object createThreadFlowLocation(json::Object &&Location, Importance I) { - return json::Object{{"step", Step}, - {"location", std::move(Location)}, + return json::Object{{"location", std::move(Location)}, {"importance", importanceToStr(I)}}; } @@ -192,12 +191,10 @@ static Importance calculateImportance(const PathDiagnosticPiece &Piece) { static json::Object createThreadFlow(const PathPieces &Pieces, json::Object &Files) { const SourceManager &SMgr = Pieces.front()->getLocation().getManager(); - int Step = 1; json::Array Locations; for (const auto &Piece : Pieces) { const PathDiagnosticLocation &P = Piece->getLocation(); Locations.push_back(createThreadFlowLocation( - Step++, createLocation(createPhysicalLocation(P.asRange(), *P.asLocation().getFileEntry(), SMgr, Files), @@ -261,8 +258,10 @@ void SarifDiagnostics::FlushDiagnosticsImpl( llvm::errs() << "warning: could not create file: " << EC.message() << '\n'; return; } - json::Object Sarif{{"$schema", "http://json.schemastore.org/sarif-2.0.0"}, - {"version", "2.0.0-beta.2018-09-26"}, - {"runs", json::Array{createRun(Diags)}}}; + json::Object Sarif{ + {"$schema", + "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2018-10-10"}, + {"version", "2.0.0-csd.2.beta.2018-10-10"}, + {"runs", json::Array{createRun(Diags)}}}; OS << llvm::formatv("{0:2}", json::Value(std::move(Sarif))); } diff --git a/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif b/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif index a6b348258f..7a6068bd8c 100644 --- a/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif +++ b/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif @@ -1,5 +1,5 @@ { - "$schema": "http://json.schemastore.org/sarif-2.0.0", + "$schema": "http://json.schemastore.org/sarif-2.0.0-csd.2.beta.2018-10-10", "runs": [ { "files": { @@ -7,7 +7,7 @@ "fileLocation": { "uri": "file:sarif-diagnostics-taint-test.c" }, - "length": 497, + "length": 510, "mimeType": "text/plain", "roles": [ "resultFile" @@ -38,8 +38,7 @@ "startLine": 13 } } - }, - "step": 1 + } }, { "importance": "essential", @@ -58,8 +57,7 @@ "startLine": 9 } } - }, - "step": 2 + } } ] } @@ -95,5 +93,5 @@ } } ], - "version": "2.0.0-beta.2018-09-26" + "version": "2.0.0-csd.2.beta.2018-10-10" } diff --git a/test/Analysis/diagnostics/sarif-diagnostics-taint-test.c b/test/Analysis/diagnostics/sarif-diagnostics-taint-test.c index 8b87870992..fb025b1b46 100644 --- a/test/Analysis/diagnostics/sarif-diagnostics-taint-test.c +++ b/test/Analysis/diagnostics/sarif-diagnostics-taint-test.c @@ -1,4 +1,4 @@ -// RUN: %clang_analyze_cc1 -analyzer-checker=alpha.security.taint,debug.TaintTest %s -verify -analyzer-output=sarif -o - | diff -U1 -w -I ".*file:.*sarif-diagnostics-taint-test.c" -I '"version":' -I "2\.0\.0\-beta\." - %S/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif +// RUN: %clang_analyze_cc1 -analyzer-checker=alpha.security.taint,debug.TaintTest %s -verify -analyzer-output=sarif -o - | diff -U1 -w -I ".*file:.*sarif-diagnostics-taint-test.c" -I '"version":' -I "2\.0\.0\-csd\.[0-9]*\.beta\." - %S/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif #include "../Inputs/system-header-simulator.h" int atoi(const char *nptr);