GCC Middle and Back End API Reference
diagnostic-format-sarif.h File Reference
#include "json.h"
#include "diagnostic-format.h"
#include "diagnostic-output-file.h"
#include "logical-location.h"
Include dependency graph for diagnostic-format-sarif.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  sarif_serialization_format
class  sarif_serialization_format_json
struct  sarif_generation_options
class  sarif_property_bag
class  sarif_object

Enumerations

enum class  sarif_serialization_kind { json , num_values }
enum class  sarif_version { v2_1_0 , v2_2_prerelease_2024_08_08 , num_versions }

Functions

diagnostic_output_file diagnostic_output_format_open_sarif_file (diagnostic_context &context, line_maps *line_maps, const char *base_file_name, enum sarif_serialization_kind serialization_kind)
diagnostic_output_formatdiagnostic_output_format_init_sarif_stderr (diagnostic_context &context, const line_maps *line_maps, bool formatted)
diagnostic_output_formatdiagnostic_output_format_init_sarif_file (diagnostic_context &context, line_maps *line_maps, bool formatted, const char *base_file_name)
diagnostic_output_formatdiagnostic_output_format_init_sarif_stream (diagnostic_context &context, const line_maps *line_maps, bool formatted, FILE *stream)
std::unique_ptr< diagnostic_output_formatmake_sarif_sink (diagnostic_context &context, const line_maps &line_maps, std::unique_ptr< sarif_serialization_format > serialization_format, const sarif_generation_options &sarif_gen_opts, diagnostic_output_file output_file)

Enumeration Type Documentation

◆ sarif_serialization_kind

enum class sarif_serialization_kind
strong
SARIF output for diagnostics. Copyright (C) 2023-2025 Free Software Foundation, Inc. Contributed by David Malcolm <dmalcolm@redhat.com>. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
Enum for choosing what format to serializing the generated SARIF into.
Enumerator
json 
num_values 

◆ sarif_version

enum class sarif_version
strong
Control of SARIF generation.
Enumerator
v2_1_0 
v2_2_prerelease_2024_08_08 
num_versions 

Function Documentation

◆ diagnostic_output_format_init_sarif_file()

diagnostic_output_format & diagnostic_output_format_init_sarif_file ( diagnostic_context & context,
line_maps * line_maps,
bool formatted,
const char * base_file_name )
extern
Populate CONTEXT in preparation for SARIF output to a file named BASE_FILE_NAME.sarif. Return a reference to the new sink.

References base_file_name(), diagnostic_output_format_init_sarif(), diagnostic_output_format_open_sarif_file(), gcc_assert, json, and output_file.

Referenced by diagnostic_output_format_init().

◆ diagnostic_output_format_init_sarif_stderr()

diagnostic_output_format & diagnostic_output_format_init_sarif_stderr ( diagnostic_context & context,
const line_maps * line_maps,
bool formatted )
extern
Populate CONTEXT in preparation for SARIF output to stderr. Return a reference to the new sink.

References diagnostic_output_format_init_sarif(), and gcc_assert.

Referenced by diagnostic_output_format_init().

◆ diagnostic_output_format_init_sarif_stream()

diagnostic_output_format & diagnostic_output_format_init_sarif_stream ( diagnostic_context & context,
const line_maps * line_maps,
bool formatted,
FILE * stream )
extern
Populate CONTEXT in preparation for SARIF output to STREAM. Return a reference to the new sink.

References diagnostic_output_format_init_sarif(), and gcc_assert.

◆ diagnostic_output_format_open_sarif_file()

diagnostic_output_file diagnostic_output_format_open_sarif_file ( diagnostic_context & context,
line_maps * line_maps,
const char * base_file_name,
enum sarif_serialization_kind serialization_kind )
extern
Attempt to open BASE_FILE_NAME.sarif for writing JSON. Return a non-null diagnostic_output_file, or return a null diagnostic_output_file and complain to CONTEXT using LINE_MAPS.

References base_file_name(), gcc_unreachable, json, and diagnostic_output_file::try_to_open().

Referenced by diagnostic_output_format_init_sarif_file(), and gcc::diagnostics_output_spec::sarif_scheme_handler::make_sink().

◆ make_sarif_sink()

std::unique_ptr< diagnostic_output_format > make_sarif_sink ( diagnostic_context & context,
const line_maps & line_maps,
std::unique_ptr< sarif_serialization_format > serialization_format,
const sarif_generation_options & sarif_gen_opts,
diagnostic_output_file output_file )
extern