Message ID | 20240815181156.1815075-1-dmalcolm@redhat.com |
---|---|
Headers | show |
Series | v3 of libdiagnostics | expand |
On Thu, Aug 15, 2024 at 8:13 PM David Malcolm <dmalcolm@redhat.com> wrote: > > Here's v3 of my patch kit for "libdiagnostics", which makes GCC's > diagnostics subsystem available as a shared library; see: > https://gcc.gnu.org/wiki/libdiagnostics So this is to make use of this from gas? Is the plan to move sources (and dependences) to the toplevel then, possibly building a static convenience lib for GCCs use? Note I'm missing documentation (which is probably there in the libdiagnostics.h header); an addition to sourcebuild.texi might be nice at least and documenting --enable-libdiagnostics in install.texi. > New in v3: > * it bootstraps and pass regression tests > * I added an opt-in configure flag: --enable-libdiagnostics, which > must be enabled to build it (along with --enable-host-shared) > * a new "sarif-replay" command-line tool that takes .sarif files > and replays the diagnostics within them as if they were GCC > diagnostics, in GCC's textual format (i.e. GCC as a SARIF *consumer*, > as well as producer). This is implemented on top of libdiagnostics > hence I've been "eating my own dogfood" > * support for execution paths in libdiagnostics API > * lots of fixes > > Patch 1 has libdiagnostic.h, the public header file > Patch 2 has the implementation > Patch 3 has the C++ wrapper API I added in v2 > Patch 4 has a refactoring of gcc-dg.exp I needed for patch 5. > Patch 5 has the testsuite for libdiagnostics itself > Patch 6 implements JSON parsing support > Patch 7 implements the sarif-replay command-line tool, and its > testsuite, exercising various valid, invalid, and malformed > input files. > > Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu, > both with and without --enable-libdiagnostics. > With --enable-libdiagnostics the patch kit has this effect: > > # of .sum files: 20->22 (+2) > FAIL: 110 > PASS: 617481->617679 (+198) 100.03% > XFAIL: 4512 > XPASS: 13 > UNTESTED: 136 > UNSUPPORTED: 8058 > > where the two new .sum files are: > > BUILD/gcc/testsuite/libdiagnostics/libdiagnostics.sum: > PASS: 132 tests > > BUILD/gcc/testsuite/sarif-replay/sarif-replay.sum: > PASS: 66 tests > > OK for trunk? > > David Malcolm (7): > libdiagnostics v3: header > libdiagnostics v3: implementation > libdiagnostics v3: add C++ wrapper API > testsuite: move dg-test cleanup code from gcc-dg.exp to its own file > libdiagnostics v3: test suite > json: add json parsing support > libdiagnostics: add a "sarif-replay" command-line tool [PR96032] > > configure | 42 + > configure.ac | 35 + > contrib/regenerate-sarif-spec-index.py | 60 + > gcc/Makefile.in | 191 +- > gcc/configure | 26 +- > gcc/configure.ac | 16 + > gcc/diagnostic-event-id.h | 6 + > gcc/doc/install.texi | 13 + > gcc/json-parsing.cc | 2394 +++++++++++++++++ > gcc/json-parsing.h | 113 + > gcc/json.cc | 2 +- > gcc/json.h | 122 +- > gcc/libdiagnostics++.h | 595 ++++ > gcc/libdiagnostics.cc | 1652 ++++++++++++ > gcc/libdiagnostics.h | 691 +++++ > gcc/libdiagnostics.map | 72 + > gcc/libsarifreplay.cc | 1747 ++++++++++++ > gcc/libsarifreplay.h | 59 + > gcc/sarif-replay.cc | 239 ++ > gcc/sarif-spec-urls.def | 496 ++++ > gcc/selftest-run-tests.cc | 1 + > gcc/selftest.h | 1 + > gcc/testsuite/lib/dg-test-cleanup.exp | 116 + > gcc/testsuite/lib/gcc-dg.exp | 106 +- > gcc/testsuite/lib/sarif-replay-dg.exp | 90 + > gcc/testsuite/lib/sarif-replay.exp | 204 ++ > .../libdiagnostics.dg/libdiagnostics.exp | 296 ++ > gcc/testsuite/libdiagnostics.dg/sarif.py | 23 + > gcc/testsuite/libdiagnostics.dg/test-dump.c | 69 + > .../libdiagnostics.dg/test-error-c.py | 54 + > .../test-error-with-note-c.py | 50 + > .../libdiagnostics.dg/test-error-with-note.c | 74 + > .../libdiagnostics.dg/test-error-with-note.cc | 55 + > gcc/testsuite/libdiagnostics.dg/test-error.c | 59 + > gcc/testsuite/libdiagnostics.dg/test-error.cc | 47 + > .../libdiagnostics.dg/test-fix-it-hint-c.py | 46 + > .../libdiagnostics.dg/test-fix-it-hint.c | 81 + > .../libdiagnostics.dg/test-fix-it-hint.cc | 74 + > .../libdiagnostics.dg/test-helpers++.h | 28 + > .../libdiagnostics.dg/test-helpers.h | 72 + > .../libdiagnostics.dg/test-labelled-ranges.c | 69 + > .../libdiagnostics.dg/test-labelled-ranges.cc | 64 + > .../libdiagnostics.dg/test-labelled-ranges.py | 48 + > .../test-logical-location-c.py | 37 + > .../libdiagnostics.dg/test-logical-location.c | 79 + > .../libdiagnostics.dg/test-metadata-c.py | 45 + > .../libdiagnostics.dg/test-metadata.c | 61 + > .../test-multiple-lines-c.py | 83 + > .../libdiagnostics.dg/test-multiple-lines.c | 76 + > .../libdiagnostics.dg/test-no-column-c.py | 35 + > .../libdiagnostics.dg/test-no-column.c | 52 + > .../test-no-diagnostics-c.py | 42 + > .../libdiagnostics.dg/test-no-diagnostics.c | 25 + > .../test-note-with-fix-it-hint-c.py | 54 + > .../test-note-with-fix-it-hint.c | 69 + > .../test-text-sink-options.c | 59 + > .../libdiagnostics.dg/test-warning-c.py | 54 + > .../test-warning-with-path-c.py | 108 + > .../test-warning-with-path.c | 125 + > .../libdiagnostics.dg/test-warning.c | 65 + > .../test-write-sarif-to-file-c.py | 55 + > .../test-write-sarif-to-file.c | 55 + > .../test-write-text-to-file.c | 47 + > .../2.1.0-invalid/3.1-not-an-object.sarif | 6 + > .../3.11.11-malformed-placeholder.sarif | 15 + > ...1-missing-arguments-for-placeholders.sarif | 14 + > ...ot-enough-arguments-for-placeholders.sarif | 14 + > .../2.1.0-invalid/3.13.2-no-version.sarif | 6 + > .../3.13.2-version-not-a-string.sarif | 6 + > .../2.1.0-invalid/3.13.4-bad-runs.sarif | 7 + > .../2.1.0-invalid/3.13.4-no-runs.sarif | 6 + > .../3.13.4-non-object-in-runs.sarif | 7 + > .../2.1.0-invalid/3.27.10-bad-level.sarif | 25 + > .../2.1.0-unhandled/3.27.10-none-level.sarif | 25 + > .../2.1.0-valid/error-with-note.sarif | 34 + > .../2.1.0-valid/escaped-braces.sarif | 17 + > .../2.1.0-valid/null-runs.sarif | 2 + > .../2.1.0-valid/signal-1.c.sarif | 193 ++ > .../2.1.0-valid/spec-example-1.sarif | 15 + > .../2.1.0-valid/spec-example-2.sarif | 73 + > .../2.1.0-valid/spec-example-3.sarif | 65 + > .../2.1.0-valid/spec-example-4.sarif | 766 ++++++ > .../2.1.0-valid/tutorial-example.sarif | 117 + > gcc/testsuite/sarif-replay.dg/dg.exp | 46 + > .../malformed-json/array-missing-comma.sarif | 6 + > .../array-with-trailing-comma.sarif | 6 + > .../malformed-json/bad-token.sarif | 6 + > .../malformed-json/object-missing-comma.sarif | 7 + > .../object-with-trailing-comma.sarif | 6 + > libatomic/testsuite/lib/libatomic.exp | 1 + > libgomp/testsuite/lib/libgomp.exp | 1 + > libitm/testsuite/lib/libitm.exp | 1 + > libphobos/testsuite/lib/libphobos-dg.exp | 1 + > libstdc++-v3/testsuite/lib/libstdc++.exp | 1 + > libvtv/testsuite/lib/libvtv.exp | 1 + > 95 files changed, 12912 insertions(+), 108 deletions(-) > create mode 100644 contrib/regenerate-sarif-spec-index.py > create mode 100644 gcc/json-parsing.cc > create mode 100644 gcc/json-parsing.h > create mode 100644 gcc/libdiagnostics++.h > create mode 100644 gcc/libdiagnostics.cc > create mode 100644 gcc/libdiagnostics.h > create mode 100644 gcc/libdiagnostics.map > create mode 100644 gcc/libsarifreplay.cc > create mode 100644 gcc/libsarifreplay.h > create mode 100644 gcc/sarif-replay.cc > create mode 100644 gcc/sarif-spec-urls.def > create mode 100644 gcc/testsuite/lib/dg-test-cleanup.exp > create mode 100644 gcc/testsuite/lib/sarif-replay-dg.exp > create mode 100644 gcc/testsuite/lib/sarif-replay.exp > create mode 100644 gcc/testsuite/libdiagnostics.dg/libdiagnostics.exp > create mode 100644 gcc/testsuite/libdiagnostics.dg/sarif.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-dump.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error-with-note-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error-with-note.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error-with-note.cc > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error.cc > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it-hint-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it-hint.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it-hint.cc > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-helpers++.h > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-helpers.h > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled-ranges.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled-ranges.cc > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled-ranges.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-logical-location-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-logical-location.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-metadata-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-metadata.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-multiple-lines-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-multiple-lines.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no-column-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no-column.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no-diagnostics-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no-diagnostics.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-note-with-fix-it-hint-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-note-with-fix-it-hint.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-text-sink-options.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning-with-path-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning-with-path.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write-sarif-to-file-c.py > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write-sarif-to-file.c > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write-text-to-file.c > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.1-not-an-object.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-malformed-placeholder.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-missing-arguments-for-placeholders.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-not-enough-arguments-for-placeholders.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.2-no-version.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.2-version-not-a-string.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-bad-runs.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-no-runs.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-non-object-in-runs.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.27.10-bad-level.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-unhandled/3.27.10-none-level.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/error-with-note.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/escaped-braces.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/null-runs.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/signal-1.c.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-1.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-2.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-3.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-4.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/tutorial-example.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/dg.exp > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed-json/array-missing-comma.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed-json/array-with-trailing-comma.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed-json/bad-token.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed-json/object-missing-comma.sarif > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed-json/object-with-trailing-comma.sarif > > -- > 2.26.3 >
On Tue, 2024-08-20 at 11:49 +0200, Richard Biener wrote: > On Thu, Aug 15, 2024 at 8:13 PM David Malcolm <dmalcolm@redhat.com> > wrote: > > > > Here's v3 of my patch kit for "libdiagnostics", which makes GCC's > > diagnostics subsystem available as a shared library; see: > > https://gcc.gnu.org/wiki/libdiagnostics > > So this is to make use of this from gas? One of the clients of the library would be gas, yes (although optionally, to avoid complicating bootstrap of binutils). However other clients would be possible, including those that are not under the "GNU toolchain" umbrella (provided that they can be linked against GPLv3 code). For example, I've been experimenting with Python bindings, which would allow Python scripts to reuse GCC's diagnostics code (e.g. for SARIF, fix-it hints, etc). I've also been experimenting with IDE integration (see PR 115970), and it would be nice if users of libdiagnostics got that "for free". Another example of client code is the sarif-replay tool in patch 7, as a sarif consumer (if nothing else, writing this has exposed various bugs in our existing SARIF-writing code). The analyzer's integration test suite generates 10s of thousands of .sarif files, so having tooling to work with them is "scratching my own itch". > Is the plan to move > sources (and dependences) to the toplevel then, possibly > building a static convenience lib for GCCs use? The problem with moving things from "gcc" to, say, a new subdirectory of the top level source directory is that our "gcc" subdirectory has a lot of support code that would also need refactoring/moving. Off the top of my head: - selftest framework - DejaGnu .exp stuff below gcc/testsuite/lib - C++11 support, such as our "make-unique.h" - libcpp: the big one: diagnostics uses libcpp - probably some configure/Makefile.in entanglements Fixing the above would be a major task. So the patch kit punts on this by adding/moving stuff within "gcc" (and requiring an opt-in via --enable-libdiagnostics). > > Note I'm missing documentation (which is probably there > in the libdiagnostics.h header); an addition to sourcebuild.texi > might be nice at least and documenting --enable-libdiagnostics > in install.texi. The libdiagnostics.h header has comments, but, yes, I should probably add docs similar to that of libgccjit.h (tutorial and API reference). I'll do that for the next iteration of the patch. Patch 2 of the kit documents --enable-libdiagnostics in install.texi. I'll add notes to sourcebuild.texi in the next iteration of the patch. Thanks; hope the above makes sense. Dave > > > New in v3: > > * it bootstraps and pass regression tests > > * I added an opt-in configure flag: --enable-libdiagnostics, which > > must be enabled to build it (along with --enable-host-shared) > > * a new "sarif-replay" command-line tool that takes .sarif files > > and replays the diagnostics within them as if they were GCC > > diagnostics, in GCC's textual format (i.e. GCC as a SARIF > > *consumer*, > > as well as producer). This is implemented on top of > > libdiagnostics > > hence I've been "eating my own dogfood" > > * support for execution paths in libdiagnostics API > > * lots of fixes > > > > Patch 1 has libdiagnostic.h, the public header file > > Patch 2 has the implementation > > Patch 3 has the C++ wrapper API I added in v2 > > Patch 4 has a refactoring of gcc-dg.exp I needed for patch 5. > > Patch 5 has the testsuite for libdiagnostics itself > > Patch 6 implements JSON parsing support > > Patch 7 implements the sarif-replay command-line tool, and its > > testsuite, exercising various valid, invalid, and malformed > > input files. > > > > Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu, > > both with and without --enable-libdiagnostics. > > With --enable-libdiagnostics the patch kit has this effect: > > > > # of .sum files: 20->22 (+2) > > FAIL: 110 > > PASS: 617481->617679 (+198) 100.03% > > XFAIL: 4512 > > XPASS: 13 > > UNTESTED: 136 > > UNSUPPORTED: 8058 > > > > where the two new .sum files are: > > > > BUILD/gcc/testsuite/libdiagnostics/libdiagnostics.sum: > > PASS: 132 tests > > > > BUILD/gcc/testsuite/sarif-replay/sarif-replay.sum: > > PASS: 66 tests > > > > OK for trunk? > > > > David Malcolm (7): > > libdiagnostics v3: header > > libdiagnostics v3: implementation > > libdiagnostics v3: add C++ wrapper API > > testsuite: move dg-test cleanup code from gcc-dg.exp to its own > > file > > libdiagnostics v3: test suite > > json: add json parsing support > > libdiagnostics: add a "sarif-replay" command-line tool [PR96032] > > > > configure | 42 + > > configure.ac | 35 + > > contrib/regenerate-sarif-spec-index.py | 60 + > > gcc/Makefile.in | 191 +- > > gcc/configure | 26 +- > > gcc/configure.ac | 16 + > > gcc/diagnostic-event-id.h | 6 + > > gcc/doc/install.texi | 13 + > > gcc/json-parsing.cc | 2394 > > +++++++++++++++++ > > gcc/json-parsing.h | 113 + > > gcc/json.cc | 2 +- > > gcc/json.h | 122 +- > > gcc/libdiagnostics++.h | 595 ++++ > > gcc/libdiagnostics.cc | 1652 ++++++++++++ > > gcc/libdiagnostics.h | 691 +++++ > > gcc/libdiagnostics.map | 72 + > > gcc/libsarifreplay.cc | 1747 ++++++++++++ > > gcc/libsarifreplay.h | 59 + > > gcc/sarif-replay.cc | 239 ++ > > gcc/sarif-spec-urls.def | 496 ++++ > > gcc/selftest-run-tests.cc | 1 + > > gcc/selftest.h | 1 + > > gcc/testsuite/lib/dg-test-cleanup.exp | 116 + > > gcc/testsuite/lib/gcc-dg.exp | 106 +- > > gcc/testsuite/lib/sarif-replay-dg.exp | 90 + > > gcc/testsuite/lib/sarif-replay.exp | 204 ++ > > .../libdiagnostics.dg/libdiagnostics.exp | 296 ++ > > gcc/testsuite/libdiagnostics.dg/sarif.py | 23 + > > gcc/testsuite/libdiagnostics.dg/test-dump.c | 69 + > > .../libdiagnostics.dg/test-error-c.py | 54 + > > .../test-error-with-note-c.py | 50 + > > .../libdiagnostics.dg/test-error-with-note.c | 74 + > > .../libdiagnostics.dg/test-error-with-note.cc | 55 + > > gcc/testsuite/libdiagnostics.dg/test-error.c | 59 + > > gcc/testsuite/libdiagnostics.dg/test-error.cc | 47 + > > .../libdiagnostics.dg/test-fix-it-hint-c.py | 46 + > > .../libdiagnostics.dg/test-fix-it-hint.c | 81 + > > .../libdiagnostics.dg/test-fix-it-hint.cc | 74 + > > .../libdiagnostics.dg/test-helpers++.h | 28 + > > .../libdiagnostics.dg/test-helpers.h | 72 + > > .../libdiagnostics.dg/test-labelled-ranges.c | 69 + > > .../libdiagnostics.dg/test-labelled-ranges.cc | 64 + > > .../libdiagnostics.dg/test-labelled-ranges.py | 48 + > > .../test-logical-location-c.py | 37 + > > .../libdiagnostics.dg/test-logical-location.c | 79 + > > .../libdiagnostics.dg/test-metadata-c.py | 45 + > > .../libdiagnostics.dg/test-metadata.c | 61 + > > .../test-multiple-lines-c.py | 83 + > > .../libdiagnostics.dg/test-multiple-lines.c | 76 + > > .../libdiagnostics.dg/test-no-column-c.py | 35 + > > .../libdiagnostics.dg/test-no-column.c | 52 + > > .../test-no-diagnostics-c.py | 42 + > > .../libdiagnostics.dg/test-no-diagnostics.c | 25 + > > .../test-note-with-fix-it-hint-c.py | 54 + > > .../test-note-with-fix-it-hint.c | 69 + > > .../test-text-sink-options.c | 59 + > > .../libdiagnostics.dg/test-warning-c.py | 54 + > > .../test-warning-with-path-c.py | 108 + > > .../test-warning-with-path.c | 125 + > > .../libdiagnostics.dg/test-warning.c | 65 + > > .../test-write-sarif-to-file-c.py | 55 + > > .../test-write-sarif-to-file.c | 55 + > > .../test-write-text-to-file.c | 47 + > > .../2.1.0-invalid/3.1-not-an-object.sarif | 6 + > > .../3.11.11-malformed-placeholder.sarif | 15 + > > ...1-missing-arguments-for-placeholders.sarif | 14 + > > ...ot-enough-arguments-for-placeholders.sarif | 14 + > > .../2.1.0-invalid/3.13.2-no-version.sarif | 6 + > > .../3.13.2-version-not-a-string.sarif | 6 + > > .../2.1.0-invalid/3.13.4-bad-runs.sarif | 7 + > > .../2.1.0-invalid/3.13.4-no-runs.sarif | 6 + > > .../3.13.4-non-object-in-runs.sarif | 7 + > > .../2.1.0-invalid/3.27.10-bad-level.sarif | 25 + > > .../2.1.0-unhandled/3.27.10-none-level.sarif | 25 + > > .../2.1.0-valid/error-with-note.sarif | 34 + > > .../2.1.0-valid/escaped-braces.sarif | 17 + > > .../2.1.0-valid/null-runs.sarif | 2 + > > .../2.1.0-valid/signal-1.c.sarif | 193 ++ > > .../2.1.0-valid/spec-example-1.sarif | 15 + > > .../2.1.0-valid/spec-example-2.sarif | 73 + > > .../2.1.0-valid/spec-example-3.sarif | 65 + > > .../2.1.0-valid/spec-example-4.sarif | 766 ++++++ > > .../2.1.0-valid/tutorial-example.sarif | 117 + > > gcc/testsuite/sarif-replay.dg/dg.exp | 46 + > > .../malformed-json/array-missing-comma.sarif | 6 + > > .../array-with-trailing-comma.sarif | 6 + > > .../malformed-json/bad-token.sarif | 6 + > > .../malformed-json/object-missing-comma.sarif | 7 + > > .../object-with-trailing-comma.sarif | 6 + > > libatomic/testsuite/lib/libatomic.exp | 1 + > > libgomp/testsuite/lib/libgomp.exp | 1 + > > libitm/testsuite/lib/libitm.exp | 1 + > > libphobos/testsuite/lib/libphobos-dg.exp | 1 + > > libstdc++-v3/testsuite/lib/libstdc++.exp | 1 + > > libvtv/testsuite/lib/libvtv.exp | 1 + > > 95 files changed, 12912 insertions(+), 108 deletions(-) > > create mode 100644 contrib/regenerate-sarif-spec-index.py > > create mode 100644 gcc/json-parsing.cc > > create mode 100644 gcc/json-parsing.h > > create mode 100644 gcc/libdiagnostics++.h > > create mode 100644 gcc/libdiagnostics.cc > > create mode 100644 gcc/libdiagnostics.h > > create mode 100644 gcc/libdiagnostics.map > > create mode 100644 gcc/libsarifreplay.cc > > create mode 100644 gcc/libsarifreplay.h > > create mode 100644 gcc/sarif-replay.cc > > create mode 100644 gcc/sarif-spec-urls.def > > create mode 100644 gcc/testsuite/lib/dg-test-cleanup.exp > > create mode 100644 gcc/testsuite/lib/sarif-replay-dg.exp > > create mode 100644 gcc/testsuite/lib/sarif-replay.exp > > create mode 100644 > > gcc/testsuite/libdiagnostics.dg/libdiagnostics.exp > > create mode 100644 gcc/testsuite/libdiagnostics.dg/sarif.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-dump.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error- > > with-note-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error- > > with-note.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error- > > with-note.cc > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error.cc > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it- > > hint-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it- > > hint.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it- > > hint.cc > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test- > > helpers++.h > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-helpers.h > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled- > > ranges.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled- > > ranges.cc > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled- > > ranges.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-logical- > > location-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-logical- > > location.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-metadata- > > c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-metadata.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-multiple- > > lines-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-multiple- > > lines.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no-column- > > c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no- > > column.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no- > > diagnostics-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no- > > diagnostics.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-note-with- > > fix-it-hint-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-note-with- > > fix-it-hint.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-text-sink- > > options.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning- > > c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning- > > with-path-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning- > > with-path.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write- > > sarif-to-file-c.py > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write- > > sarif-to-file.c > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write- > > text-to-file.c > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.1-not-an-object.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.11.11-malformed-placeholder.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.11.11-missing-arguments-for-placeholders.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.11.11-not-enough-arguments-for-placeholders.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.13.2-no-version.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.13.2-version-not-a-string.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.13.4-bad-runs.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.13.4-no-runs.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.13.4-non-object-in-runs.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > invalid/3.27.10-bad-level.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > unhandled/3.27.10-none-level.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > valid/error-with-note.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > valid/escaped-braces.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/null- > > runs.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > valid/signal-1.c.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec- > > example-1.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec- > > example-2.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec- > > example-3.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec- > > example-4.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > valid/tutorial-example.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/dg.exp > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > json/array-missing-comma.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > json/array-with-trailing-comma.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > json/bad-token.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > json/object-missing-comma.sarif > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > json/object-with-trailing-comma.sarif > > > > -- > > 2.26.3 > > >
On Wed, Aug 21, 2024 at 2:01 AM David Malcolm <dmalcolm@redhat.com> wrote: > > On Tue, 2024-08-20 at 11:49 +0200, Richard Biener wrote: > > On Thu, Aug 15, 2024 at 8:13 PM David Malcolm <dmalcolm@redhat.com> > > wrote: > > > > > > Here's v3 of my patch kit for "libdiagnostics", which makes GCC's > > > diagnostics subsystem available as a shared library; see: > > > https://gcc.gnu.org/wiki/libdiagnostics > > > > So this is to make use of this from gas? > > One of the clients of the library would be gas, yes (although > optionally, to avoid complicating bootstrap of binutils). > > However other clients would be possible, including those that are not > under the "GNU toolchain" umbrella (provided that they can be linked > against GPLv3 code). > > For example, I've been experimenting with Python bindings, which would > allow Python scripts to reuse GCC's diagnostics code (e.g. for SARIF, > fix-it hints, etc). I've also been experimenting with IDE integration > (see PR 115970), and it would be nice if users of libdiagnostics got > that "for free". > > Another example of client code is the sarif-replay tool in patch 7, as > a sarif consumer (if nothing else, writing this has exposed various > bugs in our existing SARIF-writing code). The analyzer's integration > test suite generates 10s of thousands of .sarif files, so having > tooling to work with them is "scratching my own itch". > > > Is the plan to move > > sources (and dependences) to the toplevel then, possibly > > building a static convenience lib for GCCs use? > > The problem with moving things from "gcc" to, say, a new subdirectory > of the top level source directory is that our "gcc" subdirectory has a > lot of support code that would also need refactoring/moving. Off the > top of my head: > - selftest framework > - DejaGnu .exp stuff below gcc/testsuite/lib > - C++11 support, such as our "make-unique.h" > - libcpp: the big one: diagnostics uses libcpp > - probably some configure/Makefile.in entanglements > > Fixing the above would be a major task. Yeah - I was wondering about dependences ... > So the patch kit punts on this by adding/moving stuff within "gcc" (and > requiring an opt-in via --enable-libdiagnostics). OK, fair. > > > > Note I'm missing documentation (which is probably there > > in the libdiagnostics.h header); an addition to sourcebuild.texi > > might be nice at least and documenting --enable-libdiagnostics > > in install.texi. > > The libdiagnostics.h header has comments, but, yes, I should probably > add docs similar to that of libgccjit.h (tutorial and API reference). > I'll do that for the next iteration of the patch. > > Patch 2 of the kit documents --enable-libdiagnostics in install.texi. > I'll add notes to sourcebuild.texi in the next iteration of the patch. > > > Thanks; hope the above makes sense. Sure. Note I'm not super-happy with adding maintainance burden on the GCC side for external users when the component is so deeply interwinded with GCC internals. But I won't object ;) Richard. > Dave > > > > > > New in v3: > > > * it bootstraps and pass regression tests > > > * I added an opt-in configure flag: --enable-libdiagnostics, which > > > must be enabled to build it (along with --enable-host-shared) > > > * a new "sarif-replay" command-line tool that takes .sarif files > > > and replays the diagnostics within them as if they were GCC > > > diagnostics, in GCC's textual format (i.e. GCC as a SARIF > > > *consumer*, > > > as well as producer). This is implemented on top of > > > libdiagnostics > > > hence I've been "eating my own dogfood" > > > * support for execution paths in libdiagnostics API > > > * lots of fixes > > > > > > Patch 1 has libdiagnostic.h, the public header file > > > Patch 2 has the implementation > > > Patch 3 has the C++ wrapper API I added in v2 > > > Patch 4 has a refactoring of gcc-dg.exp I needed for patch 5. > > > Patch 5 has the testsuite for libdiagnostics itself > > > Patch 6 implements JSON parsing support > > > Patch 7 implements the sarif-replay command-line tool, and its > > > testsuite, exercising various valid, invalid, and malformed > > > input files. > > > > > > Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu, > > > both with and without --enable-libdiagnostics. > > > With --enable-libdiagnostics the patch kit has this effect: > > > > > > # of .sum files: 20->22 (+2) > > > FAIL: 110 > > > PASS: 617481->617679 (+198) 100.03% > > > XFAIL: 4512 > > > XPASS: 13 > > > UNTESTED: 136 > > > UNSUPPORTED: 8058 > > > > > > where the two new .sum files are: > > > > > > BUILD/gcc/testsuite/libdiagnostics/libdiagnostics.sum: > > > PASS: 132 tests > > > > > > BUILD/gcc/testsuite/sarif-replay/sarif-replay.sum: > > > PASS: 66 tests > > > > > > OK for trunk? > > > > > > David Malcolm (7): > > > libdiagnostics v3: header > > > libdiagnostics v3: implementation > > > libdiagnostics v3: add C++ wrapper API > > > testsuite: move dg-test cleanup code from gcc-dg.exp to its own > > > file > > > libdiagnostics v3: test suite > > > json: add json parsing support > > > libdiagnostics: add a "sarif-replay" command-line tool [PR96032] > > > > > > configure | 42 + > > > configure.ac | 35 + > > > contrib/regenerate-sarif-spec-index.py | 60 + > > > gcc/Makefile.in | 191 +- > > > gcc/configure | 26 +- > > > gcc/configure.ac | 16 + > > > gcc/diagnostic-event-id.h | 6 + > > > gcc/doc/install.texi | 13 + > > > gcc/json-parsing.cc | 2394 > > > +++++++++++++++++ > > > gcc/json-parsing.h | 113 + > > > gcc/json.cc | 2 +- > > > gcc/json.h | 122 +- > > > gcc/libdiagnostics++.h | 595 ++++ > > > gcc/libdiagnostics.cc | 1652 ++++++++++++ > > > gcc/libdiagnostics.h | 691 +++++ > > > gcc/libdiagnostics.map | 72 + > > > gcc/libsarifreplay.cc | 1747 ++++++++++++ > > > gcc/libsarifreplay.h | 59 + > > > gcc/sarif-replay.cc | 239 ++ > > > gcc/sarif-spec-urls.def | 496 ++++ > > > gcc/selftest-run-tests.cc | 1 + > > > gcc/selftest.h | 1 + > > > gcc/testsuite/lib/dg-test-cleanup.exp | 116 + > > > gcc/testsuite/lib/gcc-dg.exp | 106 +- > > > gcc/testsuite/lib/sarif-replay-dg.exp | 90 + > > > gcc/testsuite/lib/sarif-replay.exp | 204 ++ > > > .../libdiagnostics.dg/libdiagnostics.exp | 296 ++ > > > gcc/testsuite/libdiagnostics.dg/sarif.py | 23 + > > > gcc/testsuite/libdiagnostics.dg/test-dump.c | 69 + > > > .../libdiagnostics.dg/test-error-c.py | 54 + > > > .../test-error-with-note-c.py | 50 + > > > .../libdiagnostics.dg/test-error-with-note.c | 74 + > > > .../libdiagnostics.dg/test-error-with-note.cc | 55 + > > > gcc/testsuite/libdiagnostics.dg/test-error.c | 59 + > > > gcc/testsuite/libdiagnostics.dg/test-error.cc | 47 + > > > .../libdiagnostics.dg/test-fix-it-hint-c.py | 46 + > > > .../libdiagnostics.dg/test-fix-it-hint.c | 81 + > > > .../libdiagnostics.dg/test-fix-it-hint.cc | 74 + > > > .../libdiagnostics.dg/test-helpers++.h | 28 + > > > .../libdiagnostics.dg/test-helpers.h | 72 + > > > .../libdiagnostics.dg/test-labelled-ranges.c | 69 + > > > .../libdiagnostics.dg/test-labelled-ranges.cc | 64 + > > > .../libdiagnostics.dg/test-labelled-ranges.py | 48 + > > > .../test-logical-location-c.py | 37 + > > > .../libdiagnostics.dg/test-logical-location.c | 79 + > > > .../libdiagnostics.dg/test-metadata-c.py | 45 + > > > .../libdiagnostics.dg/test-metadata.c | 61 + > > > .../test-multiple-lines-c.py | 83 + > > > .../libdiagnostics.dg/test-multiple-lines.c | 76 + > > > .../libdiagnostics.dg/test-no-column-c.py | 35 + > > > .../libdiagnostics.dg/test-no-column.c | 52 + > > > .../test-no-diagnostics-c.py | 42 + > > > .../libdiagnostics.dg/test-no-diagnostics.c | 25 + > > > .../test-note-with-fix-it-hint-c.py | 54 + > > > .../test-note-with-fix-it-hint.c | 69 + > > > .../test-text-sink-options.c | 59 + > > > .../libdiagnostics.dg/test-warning-c.py | 54 + > > > .../test-warning-with-path-c.py | 108 + > > > .../test-warning-with-path.c | 125 + > > > .../libdiagnostics.dg/test-warning.c | 65 + > > > .../test-write-sarif-to-file-c.py | 55 + > > > .../test-write-sarif-to-file.c | 55 + > > > .../test-write-text-to-file.c | 47 + > > > .../2.1.0-invalid/3.1-not-an-object.sarif | 6 + > > > .../3.11.11-malformed-placeholder.sarif | 15 + > > > ...1-missing-arguments-for-placeholders.sarif | 14 + > > > ...ot-enough-arguments-for-placeholders.sarif | 14 + > > > .../2.1.0-invalid/3.13.2-no-version.sarif | 6 + > > > .../3.13.2-version-not-a-string.sarif | 6 + > > > .../2.1.0-invalid/3.13.4-bad-runs.sarif | 7 + > > > .../2.1.0-invalid/3.13.4-no-runs.sarif | 6 + > > > .../3.13.4-non-object-in-runs.sarif | 7 + > > > .../2.1.0-invalid/3.27.10-bad-level.sarif | 25 + > > > .../2.1.0-unhandled/3.27.10-none-level.sarif | 25 + > > > .../2.1.0-valid/error-with-note.sarif | 34 + > > > .../2.1.0-valid/escaped-braces.sarif | 17 + > > > .../2.1.0-valid/null-runs.sarif | 2 + > > > .../2.1.0-valid/signal-1.c.sarif | 193 ++ > > > .../2.1.0-valid/spec-example-1.sarif | 15 + > > > .../2.1.0-valid/spec-example-2.sarif | 73 + > > > .../2.1.0-valid/spec-example-3.sarif | 65 + > > > .../2.1.0-valid/spec-example-4.sarif | 766 ++++++ > > > .../2.1.0-valid/tutorial-example.sarif | 117 + > > > gcc/testsuite/sarif-replay.dg/dg.exp | 46 + > > > .../malformed-json/array-missing-comma.sarif | 6 + > > > .../array-with-trailing-comma.sarif | 6 + > > > .../malformed-json/bad-token.sarif | 6 + > > > .../malformed-json/object-missing-comma.sarif | 7 + > > > .../object-with-trailing-comma.sarif | 6 + > > > libatomic/testsuite/lib/libatomic.exp | 1 + > > > libgomp/testsuite/lib/libgomp.exp | 1 + > > > libitm/testsuite/lib/libitm.exp | 1 + > > > libphobos/testsuite/lib/libphobos-dg.exp | 1 + > > > libstdc++-v3/testsuite/lib/libstdc++.exp | 1 + > > > libvtv/testsuite/lib/libvtv.exp | 1 + > > > 95 files changed, 12912 insertions(+), 108 deletions(-) > > > create mode 100644 contrib/regenerate-sarif-spec-index.py > > > create mode 100644 gcc/json-parsing.cc > > > create mode 100644 gcc/json-parsing.h > > > create mode 100644 gcc/libdiagnostics++.h > > > create mode 100644 gcc/libdiagnostics.cc > > > create mode 100644 gcc/libdiagnostics.h > > > create mode 100644 gcc/libdiagnostics.map > > > create mode 100644 gcc/libsarifreplay.cc > > > create mode 100644 gcc/libsarifreplay.h > > > create mode 100644 gcc/sarif-replay.cc > > > create mode 100644 gcc/sarif-spec-urls.def > > > create mode 100644 gcc/testsuite/lib/dg-test-cleanup.exp > > > create mode 100644 gcc/testsuite/lib/sarif-replay-dg.exp > > > create mode 100644 gcc/testsuite/lib/sarif-replay.exp > > > create mode 100644 > > > gcc/testsuite/libdiagnostics.dg/libdiagnostics.exp > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/sarif.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-dump.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error- > > > with-note-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error- > > > with-note.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error- > > > with-note.cc > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-error.cc > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it- > > > hint-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it- > > > hint.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-fix-it- > > > hint.cc > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test- > > > helpers++.h > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-helpers.h > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled- > > > ranges.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled- > > > ranges.cc > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-labelled- > > > ranges.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-logical- > > > location-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-logical- > > > location.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-metadata- > > > c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-metadata.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-multiple- > > > lines-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-multiple- > > > lines.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no-column- > > > c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no- > > > column.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no- > > > diagnostics-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-no- > > > diagnostics.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-note-with- > > > fix-it-hint-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-note-with- > > > fix-it-hint.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-text-sink- > > > options.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning- > > > c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning- > > > with-path-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning- > > > with-path.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-warning.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write- > > > sarif-to-file-c.py > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write- > > > sarif-to-file.c > > > create mode 100644 gcc/testsuite/libdiagnostics.dg/test-write- > > > text-to-file.c > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.1-not-an-object.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.11.11-malformed-placeholder.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.11.11-missing-arguments-for-placeholders.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.11.11-not-enough-arguments-for-placeholders.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.13.2-no-version.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.13.2-version-not-a-string.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.13.4-bad-runs.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.13.4-no-runs.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.13.4-non-object-in-runs.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > invalid/3.27.10-bad-level.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > unhandled/3.27.10-none-level.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > valid/error-with-note.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > valid/escaped-braces.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/null- > > > runs.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > valid/signal-1.c.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec- > > > example-1.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec- > > > example-2.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec- > > > example-3.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec- > > > example-4.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/2.1.0- > > > valid/tutorial-example.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/dg.exp > > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > > json/array-missing-comma.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > > json/array-with-trailing-comma.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > > json/bad-token.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > > json/object-missing-comma.sarif > > > create mode 100644 gcc/testsuite/sarif-replay.dg/malformed- > > > json/object-with-trailing-comma.sarif > > > > > > -- > > > 2.26.3 > > > > > >