GCC Middle and Back End API Reference
json_output_format Class Referenceabstract
Inheritance diagram for json_output_format:
Collaboration diagram for json_output_format:

Public Member Functions

void on_begin_group () final override
 
void on_end_group () final override
 
void on_begin_diagnostic (const diagnostic_info &) final override
 
void on_end_diagnostic (const diagnostic_info &diagnostic, diagnostic_t orig_diag_kind) final override
 
void on_diagram (const diagnostic_diagram &) final override
 
virtual bool machine_readable_stderr_p () const =0
 

Protected Member Functions

 json_output_format (diagnostic_context &context, bool formatted)
 
void flush_to_file (FILE *outf)
 

Protected Attributes

diagnostic_contextm_context
 

Private Attributes

json::arraym_toplevel_array
 
json::objectm_cur_group
 
json::arraym_cur_children_array
 
bool m_formatted
 

Detailed Description

JSON output for diagnostics
   Copyright (C) 2018-2024 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/>.   
Subclass of diagnostic_output_format for JSON output.   

Constructor & Destructor Documentation

◆ json_output_format()

json_output_format::json_output_format ( diagnostic_context & context,
bool formatted )
inlineprotected

Member Function Documentation

◆ flush_to_file()

◆ machine_readable_stderr_p()

virtual bool diagnostic_output_format::machine_readable_stderr_p ( ) const
pure virtualinherited

◆ on_begin_diagnostic()

void json_output_format::on_begin_diagnostic ( const diagnostic_info & )
inlinefinaloverridevirtual

◆ on_begin_group()

void json_output_format::on_begin_group ( )
inlinefinaloverridevirtual

◆ on_diagram()

void json_output_format::on_diagram ( const diagnostic_diagram & )
inlinefinaloverridevirtual

◆ on_end_diagnostic()

◆ on_end_group()

void json_output_format::on_end_group ( )
inlinefinaloverridevirtual

Field Documentation

◆ m_context

diagnostic_context& diagnostic_output_format::m_context
protectedinherited

◆ m_cur_children_array

json::array* json_output_format::m_cur_children_array
private

Referenced by on_end_diagnostic(), and on_end_group().

◆ m_cur_group

json::object* json_output_format::m_cur_group
private

Referenced by on_end_diagnostic(), and on_end_group().

◆ m_formatted

bool json_output_format::m_formatted
private

Referenced by flush_to_file().

◆ m_toplevel_array

json::array* json_output_format::m_toplevel_array
private

Referenced by flush_to_file(), and on_end_diagnostic().


The documentation for this class was generated from the following file: