Author: jranieri Date: Tue Aug 27 06:49:45 2019 New Revision: 370060 URL: http://llvm.org/viewvc/llvm-project?rev=370060&view=rev Log: Fix text range end columns in SARIF to be exclusive
According to the SARIF specification, "a text region does not include the character specified by endColumn". Differential Revision: https://reviews.llvm.org/D65206 Modified: cfe/trunk/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif Modified: cfe/trunk/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp?rev=370060&r1=370059&r2=370060&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp Tue Aug 27 06:49:45 2019 @@ -143,11 +143,17 @@ static json::Object createFileLocation(c } static json::Object createTextRegion(SourceRange R, const SourceManager &SM) { - return json::Object{ + json::Object Region{ {"startLine", SM.getExpansionLineNumber(R.getBegin())}, - {"endLine", SM.getExpansionLineNumber(R.getEnd())}, {"startColumn", SM.getExpansionColumnNumber(R.getBegin())}, - {"endColumn", SM.getExpansionColumnNumber(R.getEnd())}}; + }; + if (R.getBegin() == R.getEnd()) { + Region["endColumn"] = SM.getExpansionColumnNumber(R.getBegin()); + } else { + Region["endLine"] = SM.getExpansionLineNumber(R.getEnd()); + Region["endColumn"] = SM.getExpansionColumnNumber(R.getEnd()) + 1; + } + return Region; } static json::Object createPhysicalLocation(SourceRange R, const FileEntry &FE, Modified: cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif?rev=370060&r1=370059&r2=370060&view=diff ============================================================================== --- cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif (original) +++ cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-diagnostics-taint-test.c.sarif Tue Aug 27 06:49:45 2019 @@ -44,7 +44,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 5, + "endColumn": 6, "endLine": 13, "startColumn": 3, "startLine": 13 @@ -63,7 +63,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 17, + "endColumn": 18, "endLine": 9, "startColumn": 11, "startLine": 9 @@ -83,7 +83,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 17, + "endColumn": 18, "endLine": 9, "startColumn": 11, "startLine": 9 Modified: cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif?rev=370060&r1=370059&r2=370060&view=diff ============================================================================== --- cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif (original) +++ cfe/trunk/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif Tue Aug 27 06:49:45 2019 @@ -64,7 +64,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 5, + "endColumn": 6, "endLine": 24, "startColumn": 3, "startLine": 24 @@ -83,7 +83,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 17, + "endColumn": 18, "endLine": 9, "startColumn": 11, "startLine": 9 @@ -103,7 +103,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 17, + "endColumn": 18, "endLine": 9, "startColumn": 11, "startLine": 9 @@ -134,7 +134,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 5, + "endColumn": 6, "endLine": 25, "startColumn": 3, "startLine": 25 @@ -153,7 +153,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 10, + "endColumn": 11, "endLine": 13, "startColumn": 3, "startLine": 13 @@ -172,7 +172,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 8, + "endColumn": 9, "endLine": 14, "startColumn": 3, "startLine": 14 @@ -192,7 +192,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 8, + "endColumn": 9, "endLine": 14, "startColumn": 3, "startLine": 14 @@ -223,7 +223,7 @@ "fileIndex": 0, }, "region": { - "endColumn": 12, + "endColumn": 13, "endLine": 18, "startColumn": 7, "startLine": 18 @@ -243,7 +243,6 @@ }, "region": { "endColumn": 3, - "endLine": 18, "startColumn": 3, "startLine": 18 } @@ -262,7 +261,6 @@ }, "region": { "endColumn": 14, - "endLine": 19, "startColumn": 14, "startLine": 19 } @@ -282,7 +280,6 @@ }, "region": { "endColumn": 14, - "endLine": 19, "startColumn": 14, "startLine": 19 } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits