https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118792
Bug ID: 118792 Summary: Off-by-one in underlined ranges in sarif-replay Product: gcc Version: unknown Status: UNCONFIRMED Keywords: SARIF Severity: normal Priority: P3 Component: sarif-replay Assignee: dmalcolm at gcc dot gnu.org Reporter: dmalcolm at gcc dot gnu.org Target Milestone: --- Compare diagnostics emitted directly: $ ./xgcc -B. -S ../../src/gcc/testsuite/gcc.dg/bad-dereference.c ../../src/gcc/testsuite/gcc.dg/bad-dereference.c: In function ‘test_1’: ../../src/gcc/testsuite/gcc.dg/bad-dereference.c:10:10: error: invalid type argument of unary ‘*’ (have ‘int’) 10 | return *some_f.x; /* { dg-error "invalid type argument of unary ... .have .int.." } */ | ^~~~~~~~~ ../../src/gcc/testsuite/gcc.dg/bad-dereference.c: In function ‘test_2’: ../../src/gcc/testsuite/gcc.dg/bad-dereference.c:19:10: error: invalid type argument of unary ‘*’ (have ‘struct foo’) 19 | return *some_f; /* { dg-error "invalid type argument of unary ... .have .struct foo.." } */ | ^~~~~~~ ...vs diagnostics saved in .sarif and then replayed via sarif-replay: $ ./xgcc -B. -S ../../src/gcc/testsuite/gcc.dg/bad-dereference.c -fdiagnostics-format=sarif-file $ ls -al bad-dereference.c.sarif -rw-rw-r--. 1 david david 5754 Feb 7 19:00 bad-dereference.c.sarif $ LD_LIBRARY_PATH=. ./sarif-replay bad-dereference.c.sarif In function 'test_1': ../../src/gcc/testsuite/gcc.dg/bad-dereference.c:10:10: error: invalid type argument of unary ‘*’ (have ‘int’) [error] 10 | return *some_f.x; /* { dg-error "invalid type argument of unary ... .have .int.." } */ | ^~~~~~~~~~ In function 'test_2': ../../src/gcc/testsuite/gcc.dg/bad-dereference.c:19:10: error: invalid type argument of unary ‘*’ (have ‘struct foo’) [error] 19 | return *some_f; /* { dg-error "invalid type argument of unary ... .have .struct foo.." } */ | ^~~~~~~~ Note that sarif-replay is erroneously underlining one extra column, e.g the original has: 10 | return *some_f.x; | ^~~~~~~~~ (stopping at the "x") whereas the replay has: 10 | return *some_f.x; | ^~~~~~~~~~ (erroneously also underlining the semicolon)