GCC Middle and Back End API Reference
diagnostic-format-sarif.h
Go to the documentation of this file.
1/* SARIF output for diagnostics.
2 Copyright (C) 2023-2025 Free Software Foundation, Inc.
3 Contributed by David Malcolm <dmalcolm@redhat.com>.
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 3, or (at your option) any later
10version.
11
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
20
21#ifndef GCC_DIAGNOSTIC_FORMAT_SARIF_H
22#define GCC_DIAGNOSTIC_FORMAT_SARIF_H
23
24#include "json.h"
25#include "diagnostic-format.h"
27
29
37
40 line_maps *line_maps,
41 const char *base_file_name);
42
43extern void
45 const line_maps *line_maps,
46 const char *main_input_filename_,
47 bool formatted,
48 enum sarif_version version);
49extern void
51 line_maps *line_maps,
52 const char *main_input_filename_,
53 bool formatted,
54 enum sarif_version version,
55 const char *base_file_name);
56extern void
58 const line_maps *line_maps,
59 const char *main_input_filename_,
60 bool formatted,
61 enum sarif_version version,
62 FILE *stream);
63extern std::unique_ptr<diagnostic_output_format>
65 const line_maps &line_maps,
66 const char *main_input_filename_,
67 enum sarif_version version,
69
70/* Concrete subclass of json::object for SARIF property bags
71 (SARIF v2.1.0 section 3.8). */
72
74{
75};
76
77/* Concrete subclass of json::object for SARIF objects that can
78 contain property bags (as per SARIF v2.1.0 section 3.8.1, which has:
79 "In addition to those properties that are explicitly documented, every
80 object defined in this document MAY contain a property named properties
81 whose value is a property bag.") */
82
84{
85public:
87};
88
89/* Subclass of sarif_object for SARIF "logicalLocation" objects
90 (SARIF v2.1.0 section 3.33). */
91
93{
94};
95
96extern std::unique_ptr<sarif_logical_location>
98
99#endif /* ! GCC_DIAGNOSTIC_FORMAT_SARIF_H */
Definition diagnostic.h:506
Definition diagnostic-output-file.h:28
Definition json.h:96
Definition logical-location.h:55
Definition diagnostic-format-sarif.h:93
Definition diagnostic-format-sarif.h:84
sarif_property_bag & get_or_create_properties()
Definition diagnostic-format-sarif.cc:902
Definition diagnostic-format-sarif.h:74
static const char * output_file
Definition collect2.cc:215
void diagnostic_output_format_init_sarif_file(diagnostic_context &context, line_maps *line_maps, const char *main_input_filename_, bool formatted, enum sarif_version version, const char *base_file_name)
Definition diagnostic-format-sarif.cc:3760
sarif_version
Definition diagnostic-format-sarif.h:31
@ v2_2_prerelease_2024_08_08
std::unique_ptr< diagnostic_output_format > make_sarif_sink(diagnostic_context &context, const line_maps &line_maps, const char *main_input_filename_, enum sarif_version version, diagnostic_output_file output_file)
Definition diagnostic-format-sarif.cc:3806
void diagnostic_output_format_init_sarif_stderr(diagnostic_context &context, const line_maps *line_maps, const char *main_input_filename_, bool formatted, enum sarif_version version)
Definition diagnostic-format-sarif.cc:3704
void diagnostic_output_format_init_sarif_stream(diagnostic_context &context, const line_maps *line_maps, const char *main_input_filename_, bool formatted, enum sarif_version version, FILE *stream)
Definition diagnostic-format-sarif.cc:3787
std::unique_ptr< sarif_logical_location > make_sarif_logical_location_object(const logical_location &logical_loc)
Definition diagnostic-format-sarif.cc:2663
diagnostic_output_file diagnostic_output_format_open_sarif_file(diagnostic_context &context, line_maps *line_maps, const char *base_file_name)
Definition diagnostic-format-sarif.cc:3727
static const char * base_file_name(const char *file_name)
Definition genautomata.cc:9225