20#ifndef LIBGDIAGNOSTICSPP_H
21#define LIBGDIAGNOSTICSPP_H
126 return m_inner == other.m_inner;
131 return m_inner != other.m_inner;
160 other.m_inner =
nullptr;
161 other.m_owned =
false;
168 other.m_inner =
nullptr;
169 other.m_owned =
false;
182 unsigned stack_depth,
183 const char *fmt, ...)
189 unsigned stack_depth,
218 set_cwe (
unsigned cwe_id);
221 add_rule (
const char *title,
const char *url);
238 const char *addition);
241 const char *addition);
255 finish (
const char *fmt, ...)
260 finish_va (const
char *fmt, va_list *args)
293 other.m_inner =
nullptr;
330 file main_input_file,
358 new_file (
const char *name,
359 const char *sarif_source_language)
387 const
char *short_name,
388 const
char *fully_qualified_name,
389 const
char *decorated_name);
432 other.m_inner =
nullptr;
433 other.m_owned =
false;
440 other.m_inner =
nullptr;
441 other.m_owned =
false;
452 set_description (
const char *);
455 get_node_by_id (
const char *
id)
const;
458 get_edge_by_id (
const char *
id)
const;
476 set_label (
const char *);
518logical_location::get_kind ()
const
518logical_location::get_kind ()
const {
…}
525logical_location::get_parent ()
const
525logical_location::get_parent ()
const {
…}
534logical_location::get_short_name ()
const
534logical_location::get_short_name ()
const {
…}
543logical_location::get_fully_qualified_name ()
const
543logical_location::get_fully_qualified_name ()
const {
…}
552logical_location::get_decorated_name ()
const
552logical_location::get_decorated_name ()
const {
…}
565 unsigned stack_depth,
566 const char *fmt, ...)
569 va_start (args, fmt);
582 unsigned stack_depth,
650 const char *addition)
659 const char *addition)
687 path.m_owned =
false;
699diagnostic::finish (
const char *fmt, ...)
699diagnostic::finish (
const char *fmt, ...) {
…}
708diagnostic::finish_va (
const char *fmt, va_list *args)
708diagnostic::finish_va (
const char *fmt, va_list *args) {
…}
717 const char *sarif_source_language)
768 const char *short_name,
769 const char *fully_qualified_name,
770 const char *decorated_name)
777 fully_qualified_name,
Definition genoutput.cc:150
Definition libgdiagnostics++.h:213
diagnostic(::diagnostic *d)
Definition libgdiagnostics++.h:215
void void ::diagnostic *const m_inner
Definition libgdiagnostics++.h:264
Definition libgdiagnostics++.h:490
diagnostic_edge * m_inner
Definition libgdiagnostics++.h:494
edge(diagnostic_edge *edge_)
Definition libgdiagnostics++.h:492
Definition libgdiagnostics++.h:140
execution_path(const diagnostic_execution_path *path)
Definition libgdiagnostics++.h:148
execution_path()
Definition libgdiagnostics++.h:142
diagnostic_event_id diagnostic_event_id add_event_va(physical_location physical_loc, logical_location logical_loc, unsigned stack_depth, const char *fmt, va_list *args) LIBGDIAGNOSTICS_PARAM_GCC_FORMAT_STRING(5
Definition libgdiagnostics++.h:580
execution_path(const execution_path &other)=delete
diagnostic_event_id diagnostic_event_id diagnostic_execution_path * m_inner
Definition libgdiagnostics++.h:194
execution_path(execution_path &&other)
Definition libgdiagnostics++.h:156
execution_path & operator=(const execution_path &other)=delete
bool m_owned
Definition libgdiagnostics++.h:195
diagnostic_event_id add_event(physical_location physical_loc, logical_location logical_loc, unsigned stack_depth, const char *fmt,...) LIBGDIAGNOSTICS_PARAM_GCC_FORMAT_STRING(5
Definition libgdiagnostics++.h:563
~execution_path()
Definition libgdiagnostics++.h:173
execution_path(diagnostic_execution_path *path)
Definition libgdiagnostics++.h:144
Definition libgdiagnostics++.h:76
file(diagnostic_file *file)
Definition libgdiagnostics++.h:79
file(const file &other)
Definition libgdiagnostics++.h:80
file & operator=(const file &other)
Definition libgdiagnostics++.h:81
void set_buffered_content(const char *data, size_t sz)
Definition libgdiagnostics++.h:502
diagnostic_file * m_inner
Definition libgdiagnostics++.h:85
file()
Definition libgdiagnostics++.h:78
Definition libgdiagnostics++.h:412
diagnostic_graph * m_inner
Definition libgdiagnostics++.h:463
node get_node_by_id(const char *id) const
Definition libgdiagnostics++.h:825
edge add_edge(const char *id, node src_node, node dst_node, const char *label)
Definition libgdiagnostics++.h:837
graph(const graph &other)=delete
graph(diagnostic_graph *graph)
Definition libgdiagnostics++.h:416
void set_description(const char *)
Definition libgdiagnostics++.h:819
edge get_edge_by_id(const char *id) const
Definition libgdiagnostics++.h:831
graph(graph &&other)
Definition libgdiagnostics++.h:428
bool m_owned
Definition libgdiagnostics++.h:464
graph(const diagnostic_graph *graph)
Definition libgdiagnostics++.h:420
graph()
Definition libgdiagnostics++.h:414
~graph()
Definition libgdiagnostics++.h:445
Definition libgdiagnostics++.h:201
manager & m_mgr
Definition libgdiagnostics++.h:207
group(manager &mgr)
Definition libgdiagnostics++.h:597
~group()
Definition libgdiagnostics++.h:604
Definition libgdiagnostics++.h:107
const char * get_decorated_name() const
Definition libgdiagnostics++.h:552
const diagnostic_logical_location * m_inner
Definition libgdiagnostics++.h:134
logical_location(const diagnostic_logical_location *logical_loc)
Definition libgdiagnostics++.h:111
bool operator==(const logical_location &other) const
Definition libgdiagnostics++.h:124
const char * get_short_name() const
Definition libgdiagnostics++.h:534
enum diagnostic_logical_location_kind_t get_kind() const
Definition libgdiagnostics++.h:518
const char * get_fully_qualified_name() const
Definition libgdiagnostics++.h:543
bool operator!=(const logical_location &other) const
Definition libgdiagnostics++.h:129
logical_location get_parent() const
Definition libgdiagnostics++.h:525
logical_location()
Definition libgdiagnostics++.h:109
Definition libgdiagnostics++.h:270
manager(diagnostic_manager *inner, bool owned)
Definition libgdiagnostics++.h:277
execution_path new_execution_path()
Definition libgdiagnostics++.h:791
void take_global_graph(graph g)
Definition libgdiagnostics++.h:809
~manager()
Definition libgdiagnostics++.h:282
manager(manager &&other)
Definition libgdiagnostics++.h:289
physical_location new_location_from_file_and_line(file f, diagnostic_line_num_t line_num)
Definition libgdiagnostics++.h:724
diagnostic_manager * m_inner
Definition libgdiagnostics++.h:407
manager()
Definition libgdiagnostics++.h:272
void set_tool_name(const char *value)
Definition libgdiagnostics++.h:297
physical_location new_location_from_file_line_column(file f, line_num_t line_num, column_num_t column_num)
Definition libgdiagnostics++.h:734
void debug_dump(file f, FILE *out)
diagnostic begin_diagnostic(enum diagnostic_level level)
Definition libgdiagnostics++.h:797
file new_file(const char *name, const char *sarif_source_language) LIBGDIAGNOSTICS_PARAM_CAN_BE_NULL(3)
Definition libgdiagnostics++.h:716
manager(const manager &other)=delete
physical_location new_location_from_range(physical_location loc_caret, physical_location loc_start, physical_location loc_end)
Definition libgdiagnostics++.h:746
void set_version_string(const char *value)
Definition libgdiagnostics++.h:309
void write_patch(FILE *dst_stream)
Definition libgdiagnostics++.h:350
void set_analysis_target(file f)
Definition libgdiagnostics++.h:803
bool add_sink_from_spec(const char *option_name, const char *spec, manager control_mgr)
Definition libgdiagnostics++.h:339
logical_location new_logical_location(enum diagnostic_logical_location_kind_t kind, logical_location parent, const char *short_name, const char *fully_qualified_name, const char *decorated_name)
Definition libgdiagnostics++.h:766
text_sink add_text_sink(FILE *dst_stream, enum diagnostic_colorize colorize)
Definition libgdiagnostics++.h:321
void add_sarif_sink(FILE *dst_stream, file main_input_file, enum diagnostic_sarif_version version)
Definition libgdiagnostics++.h:329
bool m_owned
Definition libgdiagnostics++.h:408
void set_version_url(const char *value)
Definition libgdiagnostics++.h:315
void set_full_name(const char *value)
Definition libgdiagnostics++.h:303
Definition libgdiagnostics++.h:470
diagnostic_node * m_inner
Definition libgdiagnostics++.h:484
void set_label(const char *)
Definition libgdiagnostics++.h:851
void set_logical_location(logical_location loc)
Definition libgdiagnostics++.h:863
node()
Definition libgdiagnostics++.h:472
node(diagnostic_node *node_)
Definition libgdiagnostics++.h:473
void set_location(physical_location loc)
Definition libgdiagnostics++.h:857
Definition libgdiagnostics++.h:91
file get_file() const
Definition libgdiagnostics++.h:510
const diagnostic_physical_location * m_inner
Definition libgdiagnostics++.h:101
physical_location()
Definition libgdiagnostics++.h:93
physical_location(const diagnostic_physical_location *location)
Definition libgdiagnostics++.h:95
Definition libgdiagnostics++.h:44
void set_labelled_source_colorization_enabled(int value)
Definition libgdiagnostics++.h:64
void set_source_printing_enabled(int value)
Definition libgdiagnostics++.h:52
void set_colorize(enum diagnostic_colorize colorize)
Definition libgdiagnostics++.h:58
diagnostic_text_sink * m_inner
Definition libgdiagnostics++.h:70
text_sink(diagnostic_text_sink *inner)
Definition libgdiagnostics++.h:46
static struct path_prefix cpath path
Definition collect2.cc:514
gcc::context * g
Definition context.cc:29
class edge_def * edge
Definition coretypes.h:352
struct graph_edge * add_edge(struct graph *g, int f, int t)
Definition graphds.cc:65
void diagnostic_graph_set_description(diagnostic_graph *graph, const char *desc)
Definition libgdiagnostics.cc:2242
void diagnostic_manager_release(diagnostic_manager *diag_mgr)
Definition libgdiagnostics.cc:1390
void diagnostic_graph_release(diagnostic_graph *graph)
Definition libgdiagnostics.cc:2234
diagnostic_edge * diagnostic_graph_get_edge_by_id(diagnostic_graph *graph, const char *id)
Definition libgdiagnostics.cc:2292
const char * diagnostic_logical_location_get_short_name(const diagnostic_logical_location *loc)
Definition libgdiagnostics.cc:2081
void diagnostic_manager_set_full_name(diagnostic_manager *diag_mgr, const char *value)
Definition libgdiagnostics.cc:1410
diagnostic_text_sink * diagnostic_manager_add_text_sink(diagnostic_manager *diag_mgr, FILE *dst_stream, enum diagnostic_colorize colorize)
Definition libgdiagnostics.cc:1446
const diagnostic_logical_location * diagnostic_manager_new_logical_location(diagnostic_manager *diag_mgr, enum diagnostic_logical_location_kind_t kind, const diagnostic_logical_location *parent, const char *short_name, const char *fully_qualified_name, const char *decorated_name)
Definition libgdiagnostics.cc:1663
void diagnostic_add_location(diagnostic *diag, const diagnostic_physical_location *loc)
Definition libgdiagnostics.cc:1841
void diagnostic_add_fix_it_hint_delete(diagnostic *diag, const diagnostic_physical_location *loc)
Definition libgdiagnostics.cc:1926
void diagnostic_manager_write_patch(diagnostic_manager *diag_mgr, FILE *dst_stream)
Definition libgdiagnostics.cc:1529
void diagnostic_take_graph(diagnostic *diag, diagnostic_graph *graph)
Definition libgdiagnostics.cc:2222
diagnostic_node * diagnostic_graph_get_node_by_id(diagnostic_graph *graph, const char *id)
Definition libgdiagnostics.cc:2280
enum diagnostic_logical_location_kind_t diagnostic_logical_location_get_kind(const diagnostic_logical_location *loc)
Definition libgdiagnostics.cc:2065
void diagnostic_manager_set_analysis_target(diagnostic_manager *mgr, const diagnostic_file *file)
Definition libgdiagnostics.cc:2159
void diagnostic_manager_add_sarif_sink(diagnostic_manager *diag_mgr, FILE *dst_stream, const diagnostic_file *main_input_file, enum diagnostic_sarif_version version)
Definition libgdiagnostics.cc:1496
diagnostic_edge * diagnostic_graph_add_edge(diagnostic_graph *graph, const char *id, diagnostic_node *src_node, diagnostic_node *dst_node, const char *label)
Definition libgdiagnostics.cc:2264
void diagnostic_text_sink_set_labelled_source_colorization_enabled(diagnostic_text_sink *text_sink, int value)
Definition libgdiagnostics.cc:1484
const diagnostic_logical_location * diagnostic_logical_location_get_parent(const diagnostic_logical_location *loc)
Definition libgdiagnostics.cc:2073
void diagnostic_manager_end_group(diagnostic_manager *diag_mgr)
Definition libgdiagnostics.cc:1786
const diagnostic_physical_location * diagnostic_manager_new_location_from_range(diagnostic_manager *diag_mgr, const diagnostic_physical_location *loc_caret, const diagnostic_physical_location *loc_start, const diagnostic_physical_location *loc_end)
Definition libgdiagnostics.cc:1618
void diagnostic_add_rule(diagnostic *diag, const char *title, const char *url)
Definition libgdiagnostics.cc:1817
int diagnostic_manager_add_sink_from_spec(diagnostic_manager *affected_mgr, const char *option_name, const char *spec, diagnostic_manager *control_mgr)
Definition libgdiagnostics.cc:2138
void diagnostic_node_set_label(diagnostic_node *node, const char *label)
Definition libgdiagnostics.cc:2315
diagnostic * diagnostic_begin(diagnostic_manager *diag_mgr, enum diagnostic_level level)
Definition libgdiagnostics.cc:1795
void diagnostic_text_sink_set_colorize(diagnostic_text_sink *text_sink, enum diagnostic_colorize colorize)
Definition libgdiagnostics.cc:1473
void diagnostic_node_set_location(diagnostic_node *node, const diagnostic_physical_location *loc)
Definition libgdiagnostics.cc:2304
diagnostic_manager * diagnostic_manager_new(void)
Definition libgdiagnostics.cc:1382
void diagnostic_set_location(diagnostic *diag, const diagnostic_physical_location *loc)
Definition libgdiagnostics.cc:1829
void diagnostic_add_fix_it_hint_insert_before(diagnostic *diag, const diagnostic_physical_location *loc, const char *addition)
Definition libgdiagnostics.cc:1878
void diagnostic_manager_debug_dump_logical_location(const diagnostic_manager *diag_mgr, const diagnostic_logical_location *loc, FILE *out)
Definition libgdiagnostics.cc:1680
diagnostic_event_id diagnostic_execution_path_add_event_va(diagnostic_execution_path *path, const diagnostic_physical_location *physical_loc, const diagnostic_logical_location *logical_loc, unsigned stack_depth, const char *gmsgid, va_list *args)
Definition libgdiagnostics.cc:2003
const char * diagnostic_logical_location_get_fully_qualified_name(const diagnostic_logical_location *loc)
Definition libgdiagnostics.cc:2089
diagnostic_file * diagnostic_physical_location_get_file(const diagnostic_physical_location *physical_loc)
Definition libgdiagnostics.cc:2054
const diagnostic_physical_location * diagnostic_manager_new_location_from_file_line_column(diagnostic_manager *diag_mgr, const diagnostic_file *file, diagnostic_line_num_t line_num, diagnostic_column_num_t column_num)
Definition libgdiagnostics.cc:1602
void diagnostic_manager_set_version_url(diagnostic_manager *diag_mgr, const char *value)
Definition libgdiagnostics.cc:1434
void diagnostic_file_set_buffered_content(diagnostic_file *file, const char *buf, size_t sz)
Definition libgdiagnostics.cc:1554
void diagnostic_set_logical_location(diagnostic *diag, const diagnostic_logical_location *logical_loc)
Definition libgdiagnostics.cc:1867
void diagnostic_add_fix_it_hint_replace(diagnostic *diag, const diagnostic_physical_location *loc, const char *replacement)
Definition libgdiagnostics.cc:1910
void diagnostic_manager_debug_dump_location(const diagnostic_manager *diag_mgr, const diagnostic_physical_location *loc, FILE *out)
Definition libgdiagnostics.cc:1633
void diagnostic_manager_set_version_string(diagnostic_manager *diag_mgr, const char *value)
Definition libgdiagnostics.cc:1422
void diagnostic_add_location_with_label(diagnostic *diag, const diagnostic_physical_location *loc, const char *text)
Definition libgdiagnostics.cc:1853
diagnostic_file * diagnostic_manager_new_file(diagnostic_manager *diag_mgr, const char *name, const char *sarif_source_language)
Definition libgdiagnostics.cc:1541
void diagnostic_manager_begin_group(diagnostic_manager *diag_mgr)
Definition libgdiagnostics.cc:1777
void diagnostic_manager_set_tool_name(diagnostic_manager *diag_mgr, const char *value)
Definition libgdiagnostics.cc:1398
void diagnostic_set_cwe(diagnostic *diag, unsigned cwe_id)
Definition libgdiagnostics.cc:1806
void diagnostic_manager_take_global_graph(diagnostic_manager *manager, diagnostic_graph *graph)
Definition libgdiagnostics.cc:2212
void diagnostic_finish_va(diagnostic *diag, const char *gmsgid, va_list *args)
Definition libgdiagnostics.cc:2037
const char * diagnostic_logical_location_get_decorated_name(const diagnostic_logical_location *loc)
Definition libgdiagnostics.cc:2097
void diagnostic_execution_path_release(diagnostic_execution_path *path)
Definition libgdiagnostics.cc:1971
void diagnostic_add_fix_it_hint_insert_after(diagnostic *diag, const diagnostic_physical_location *loc, const char *addition)
Definition libgdiagnostics.cc:1894
void diagnostic_node_set_logical_location(diagnostic_node *node, const diagnostic_logical_location *logical_loc)
Definition libgdiagnostics.cc:2324
void diagnostic_text_sink_set_source_printing_enabled(diagnostic_text_sink *text_sink, int value)
Definition libgdiagnostics.cc:1462
const diagnostic_physical_location * diagnostic_manager_new_location_from_file_and_line(diagnostic_manager *diag_mgr, const diagnostic_file *file, diagnostic_line_num_t linenum)
Definition libgdiagnostics.cc:1589
diagnostic_execution_path * diagnostic_manager_new_execution_path(diagnostic_manager *manager)
Definition libgdiagnostics.cc:1949
void diagnostic_take_execution_path(diagnostic *diag, diagnostic_execution_path *path)
Definition libgdiagnostics.cc:1959
#define LIBGDIAGNOSTICS_PARAM_CAN_BE_NULL(ARG_NUM)
Definition libgdiagnostics.h:50
int diagnostic_event_id
Definition libgdiagnostics.h:231
#define LIBGDIAGNOSTICS_PARAM_GCC_FORMAT_STRING(FMT_ARG_NUM, ARGS_ARG_NUM)
Definition libgdiagnostics.h:53
#define LIBGDIAGNOSTICS_PARAM_MUST_BE_NON_NULL(ARG_NUM)
Definition libgdiagnostics.h:47
diagnostic_logical_location_kind_t
Definition libgdiagnostics.h:163
unsigned int diagnostic_line_num_t
Definition libgdiagnostics.h:148
diagnostic_sarif_version
Definition libgdiagnostics.h:90
diagnostic_colorize
Definition libgdiagnostics.h:81
unsigned int diagnostic_column_num_t
Definition libgdiagnostics.h:149
diagnostic_level
Definition libgdiagnostics.h:219
struct diagnostic diagnostic
Definition libgdiagnostics.h:216
logical_location_manager::key logical_location
Definition logical-location.h:173
@ text
Definition logical-location.h:49
@ value
Definition logical-location.h:59
Definition libgdiagnostics++.h:25
diagnostic_line_num_t line_num_t
Definition libgdiagnostics++.h:27
diagnostic_column_num_t column_num_t
Definition libgdiagnostics++.h:28
static void const char va_list ap
Definition read-md.cc:205
Definition libgdiagnostics.cc:777
Definition libgdiagnostics.cc:900
Definition libgdiagnostics.cc:114
Definition libgdiagnostics.cc:754
Definition libgdiagnostics.cc:171
Definition libgdiagnostics.cc:435
Definition libgdiagnostics.cc:768
Definition libgdiagnostics.cc:147
Definition libgdiagnostics.cc:226
void add_location_with_label(const diagnostic_physical_location *loc, const char *text)
Definition libgdiagnostics.cc:1033
void set_cwe(unsigned cwe_id)
Definition libgdiagnostics.cc:1007
void set_location(const diagnostic_physical_location *loc)
Definition libgdiagnostics.cc:1020
void take_graph(std::unique_ptr< diagnostic_graph > graph)
Definition libgdiagnostics.cc:1072
void take_execution_path(diagnostic_execution_path *path)
Definition libgdiagnostics.cc:1065
void add_location(const diagnostic_physical_location *loc)
Definition libgdiagnostics.cc:1026
void add_rule(const char *title, const char *url)
Definition libgdiagnostics.cc:1012
void set_logical_location(const diagnostic_logical_location *logical_loc)
Definition libgdiagnostics.cc:1045
#define true
Definition system.h:887
#define false
Definition system.h:888
#define bool
Definition system.h:886