GCC Middle and Back End API Reference
|
#include <json.h>
Public Member Functions | |
~object () | |
enum kind | get_kind () const final override |
void | print (pretty_printer *pp, bool formatted) const final override |
void | set (const char *key, value *v) |
value * | get (const char *key) const |
void | set_string (const char *key, const char *utf8_value) |
void | set_integer (const char *key, long v) |
void | set_float (const char *key, double v) |
void | set_bool (const char *key, bool v) |
void | dump (FILE *, bool formatted) const |
Private Types | |
typedef hash_map< char *, value *, simple_hashmap_traits< nofree_string_hash, value * > > | map_t |
Private Attributes | |
map_t | m_map |
auto_vec< const char * > | m_keys |
Subclass of value for objects: a collection of key/value pairs preserving the ordering in which keys were inserted. Preserving the order eliminates non-determinism in the output, making it easier for the user to compare repeated invocations.
|
private |
object::~object | ( | ) |
class json::object, a subclass of json::value, representing an ordered collection of key/value pairs.
json:object's dtor.
References hash_map< KeyId, Value, Traits >::begin(), hash_map< KeyId, Value, Traits >::end(), free(), ggc_alloc(), and m_map.
class json::value.
Dump this json::value tree to OUTF. The key/value pairs of json::objects are printed in the order in which the keys were originally inserted.
References ggc_alloc(), pp_buffer, pp_flush(), and json::value::print().
Referenced by json_output_format::flush_to_file(), and generate_results().
Get the json::value * for KEY. The object retains ownership of the value.
References gcc_assert, get(), m_map, and NULL.
Referenced by get(), and sarif_object::get_or_create_properties().
Implements json::value.
References json::JSON_OBJECT.
|
finaloverridevirtual |
Implementation of json::value::print for json::object.
Implements json::value.
References FOR_EACH_VEC_ELT, ggc_alloc(), i, m_keys, m_map, pp_character(), pp_indent(), pp_indentation, pp_newline(), pp_space, pp_string(), json::value::print(), and print_escaped_json_string().
Referenced by generate_results().
Set the json::value * for KEY, taking ownership of V (and taking a copy of KEY if necessary).
References gcc_assert, hash_map< KeyId, Value, Traits >::get(), ggc_alloc(), m_keys, m_map, and hash_map< KeyId, Value, Traits >::put().
Referenced by optrecord_json_writer::add_record(), sarif_result::add_related_location(), generate_results(), sarif_object::get_or_create_properties(), optrecord_json_writer::inlining_chain_to_json(), json_from_location_range(), optrecord_json_writer::optinfo_to_json(), optrecord_json_writer::optrecord_json_writer(), output_intermediate_json_line(), output_json_intermediate_file(), optrecord_json_writer::pass_to_json(), sarif_invocation::prepare_to_flush(), sarif_ice_notification::sarif_ice_notification(), sarif_thread_flow::sarif_thread_flow(), set_bool(), set_float(), set_integer(), and set_string().
Set value of KEY within this object to the JSON literal true or false, based on V.
References set().
Referenced by sarif_invocation::prepare_to_flush().
Set value of KEY within this object to a JSON floating point value based on V.
References set().
Referenced by make_json_for_timevar_time_def().
Set value of KEY within this object to a JSON integer value based on V.
References set().
Referenced by optrecord_json_writer::impl_location_to_json(), json_from_expanded_location(), optrecord_json_writer::location_to_json(), make_json_for_timevar_time_def(), output_intermediate_json_line(), optrecord_json_writer::pass_to_json(), and optrecord_json_writer::profile_count_to_json().
Set value of KEY within this object to a JSON string value based on UTF8_VALUE.
References ggc_alloc(), and set().
Referenced by generate_results(), optrecord_json_writer::impl_location_to_json(), optrecord_json_writer::inlining_chain_to_json(), json_from_expanded_location(), json_from_location_range(), optrecord_json_writer::location_to_json(), optrecord_json_writer::optinfo_to_json(), optrecord_json_writer::optrecord_json_writer(), output_json_intermediate_file(), optrecord_json_writer::pass_to_json(), optrecord_json_writer::profile_count_to_json(), sarif_ice_notification::sarif_ice_notification(), and sarif_thread_flow::sarif_thread_flow().