Skip to content

Commit 235f950

Browse files
committed
fix column number being 0 issue
1 parent 47cec25 commit 235f950

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

cli/cppcheckexecutor.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -413,11 +413,13 @@ namespace {
413413
artifactLocation["uri"] = picojson::value(location.getfile(false));
414414
physicalLocation["artifactLocation"] = picojson::value(artifactLocation);
415415
picojson::object region;
416-
// Ensure line numbers are always positive (SARIF requires positive line numbers)
416+
// Ensure line numbers are always positive (SARIF requires line numbers >= 1)
417417
const int64_t lineNumber = (location.line > 0) ? location.line : 1;
418418
region["startLine"] = picojson::value(lineNumber);
419419
region["endLine"] = region["startLine"];
420-
region["startColumn"] = picojson::value(static_cast<int64_t>(location.column));
420+
// Ensure column numbers are always positive (SARIF requires column numbers >= 1)
421+
const int64_t columnNumber = (location.column > 0) ? location.column : 1;
422+
region["startColumn"] = picojson::value(columnNumber);
421423
region["endColumn"] = region["startColumn"];
422424
physicalLocation["region"] = picojson::value(region);
423425
picojson::object loc;

test/testsarif.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ int main() {
559559
ASSERT(region.find("startLine") != region.end());
560560
ASSERT(region.find("startColumn") != region.end());
561561

562-
// Line numbers should be positive, columns can be 0 or positive
562+
// Line numbers should be positive, columns should be positive (SARIF requires >= 1)
563563
if (region.at("startLine").is<double>())
564564
{
565565
const int64_t line = static_cast<int64_t>(region.at("startLine").get<double>());
@@ -569,7 +569,7 @@ int main() {
569569
if (region.at("startColumn").is<double>())
570570
{
571571
const int64_t col = static_cast<int64_t>(region.at("startColumn").get<double>());
572-
ASSERT(col >= 0);
572+
ASSERT(col > 0);
573573
}
574574
}
575575
}

0 commit comments

Comments
 (0)