21#ifndef GCC_DIAGNOSTICS_SELFTEST_PATHS_H
22#define GCC_DIAGNOSTICS_SELFTEST_PATHS_H
43class test_event :
public event
46 using logical_location = logical_locations::key;
49 test_event (location_t loc,
50 logical_location logical_loc,
53 thread_id_t thread_id = 0);
57 int get_stack_depth () const
final override {
return m_depth; }
58 void print_desc (pretty_printer &pp)
const final override
62 logical_location get_logical_location () const
final override
66 meaning get_meaning () const
final override
70 bool connect_to_next_event_p () const
final override
72 return m_connected_to_next_event;
79 void connect_to_next_event ()
81 m_connected_to_next_event =
true;
86 logical_location m_logical_loc;
89 bool m_connected_to_next_event;
95class test_thread :
public thread
98 test_thread (
const char *name) : m_name (name) {}
99 label_text
get_name (
bool)
const final override
101 return label_text::borrow (m_name);
114class test_path :
public path
117 test_path (logical_locations::selftest::test_manager &logical_loc_mgr,
118 pretty_printer *event_pp);
120 unsigned num_events () const
final override;
121 const event & get_event (
int idx) const
final override;
122 unsigned num_threads () const
final override;
124 get_thread (thread_id_t) const
final override;
126 same_function_p (
int event_idx_a,
127 int event_idx_b) const
final override;
129 thread_id_t add_thread (const
char *name);
131 event_id_t add_event (location_t loc, const
char *funcname,
int depth,
132 const
char *fmt, ...)
135 add_thread_event (thread_id_t thread_id,
136 location_t loc, const
char *funcname,
int depth,
137 const
char *fmt, ...)
140 void connect_to_next_event ();
142 void add_entry (const
char *callee_name,
int stack_depth,
143 thread_id_t thread_id = 0);
144 void add_return (const
char *caller_name,
int stack_depth,
145 thread_id_t thread_id = 0);
146 void add_call (const
char *caller_name,
147 int caller_stack_depth,
148 const
char *callee_name,
149 thread_id_t thread_id = 0);
152 logical_locations::key
153 logical_location_from_funcname (const
char *funcname);
155 logical_locations::selftest::test_manager &m_test_logical_loc_mgr;
156 auto_delete_vec<test_thread> m_threads;
157 auto_delete_vec<test_event> m_events;
160 pretty_printer *m_event_pp;
static struct path_prefix cpath path
Definition collect2.cc:514
#define ATTRIBUTE_GCC_DIAG(m, n)
Definition diagnostic-core.h:71
void final(rtx_insn *first, FILE *file, int optimize_p)
Definition final.cc:2009
static location_t get_location(const gimple *stmt)
Definition gimple-ssa-warn-access.cc:79
int thread_id_t
Definition event-id.h:71
Definition coretypes.h:167
void pp_string(pretty_printer *pp, const char *str)
Definition pretty-print.cc:2638
const char * get_name(tree t)
Definition tree.cc:11982