21#ifndef GCC_ANALYZER_ACCESS_DIAGRAM_H
22#define GCC_ANALYZER_ACCESS_DIAGRAM_H
24#include "text-art/canvas.h"
25#include "text-art/theme.h"
26#include "text-art/widget.h"
37 std::unique_ptr<text_art::styled_string>
40 const char *concrete_single_bit_fmt,
41 const char *concrete_plural_bits_fmt,
42 const char *concrete_single_byte_fmt,
43 const char *concrete_plural_bytes_fmt,
44 const char *symbolic_bits_fmt,
45 const char *symbolic_bytes_fmt)
const;
156 text_art::style_manager &sm,
157 const text_art::theme &theme,
161 return "access_diagram";
Definition access-diagram.h:152
const char * get_desc() const override
Definition access-diagram.h:159
access_diagram(const access_operation &op, diagnostic_event_id_t region_creation_event_id, text_art::style_manager &sm, const text_art::theme &theme, logger *logger)
Definition access-diagram.h:33
const svalue * maybe_get_as_bytes(region_model_manager &mgr) const
bool maybe_print_for_user(pretty_printer *pp, const region_model &model) const
std::unique_ptr< text_art::styled_string > maybe_get_formatted_str(text_art::style_manager &sm, const region_model &model, const char *concrete_single_bit_fmt, const char *concrete_plural_bits_fmt, const char *concrete_single_byte_fmt, const char *concrete_plural_bytes_fmt, const char *symbolic_bits_fmt, const char *symbolic_bytes_fmt) const
const svalue & m_num_bits
Definition access-diagram.h:52
bit_size_expr(const svalue &num_bits)
Definition access-diagram.h:35
Definition analyzer-logging.h:34
Definition region-model-manager.h:32
Definition region-model.h:263
region_model_manager * get_manager() const
Definition region-model.h:471
Definition analyzer.h:192
bit_offset_t get_bit_offset() const
Definition analyzer.h:217
bool concrete_p() const
Definition analyzer.h:214
Definition diagnostic-event-id.h:37
Definition pretty-print.h:241
Definition access-diagram.h:30
access_direction
Definition analyzer.h:354
const svalue * strip_types(const svalue *sval, region_model_manager &mgr)
offset_int bit_size_t
Definition analyzer.h:180
Definition access-diagram.h:118
access_range get_valid_bits() const
const region_model & m_model
Definition access-diagram.h:144
region_model_manager * get_manager() const
Definition access-diagram.h:130
bool maybe_get_invalid_before_bits(access_range *out) const
access_range get_actual_bits() const
enum access_direction m_dir
Definition access-diagram.h:145
access_operation(const region_model &model, enum access_direction dir, const region ®, const svalue *sval_hint)
Definition access-diagram.h:119
bool maybe_get_invalid_after_bits(access_range *out) const
const region * m_base_region
Definition access-diagram.h:148
const region & m_reg
Definition access-diagram.h:146
const svalue * m_sval_hint
Definition access-diagram.h:147
Definition access-diagram.h:59
access_range(const region *base_region, const bit_range &bits)
access_range(const region *base_region, const byte_range &bytes)
void dump_to_pp(pretty_printer *pp, bool) const
bool as_concrete_byte_range(byte_range *out) const
Definition access-diagram.h:99
bool get_size_in_bits(bit_size_t *out) const
Definition access-diagram.h:81
void log(const char *title, logger &) const
bit_size_expr get_size(region_model_manager *mgr) const
bool contains_p(const access_range &other) const
bool as_concrete_bit_range(bit_range *out) const
Definition access-diagram.h:91
region_offset m_next
Definition access-diagram.h:114
access_range(const region ®, region_model_manager *)
access_range()
Definition access-diagram.h:60
region_offset m_start
Definition access-diagram.h:113
bool concrete_p() const
Definition access-diagram.h:72
access_range(region_offset start, region_offset next, region_model_manager &mgr)
Definition access-diagram.h:64
bool as_byte_range(byte_range *out) const