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.

llvm-svn: 345823
This commit is contained in:
Aaron Ballman 2018-11-01 11:52:07 +00:00
parent bb84407f3d
commit fa28f335b8
3 changed files with 13 additions and 16 deletions

View File

@ -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)));
}

View File

@ -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"
}

View File

@ -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);