21#ifndef GCC_ANALYZER_EXPLODED_GRAPH_H
22#define GCC_ANALYZER_EXPLODED_GRAPH_H
51 const gimple *stmt =
nullptr,
52 bool *out_could_have_done_work =
nullptr);
60 warn_at (std::unique_ptr<pending_diagnostic> d,
62 void add_note (std::unique_ptr<pending_note> pn)
final override;
63 void add_event (std::unique_ptr<checker_event> event)
final override;
78 const svalue *rhs)
final override;
108 unsigned *out_sm_idx,
109 std::unique_ptr<sm_context> *out_sm_context)
override;
255 const final override;
350 const superedge *sedge,
bool could_do_work,
351 std::unique_ptr<custom_edge_info> custom_info);
353 const final override;
356 std::unique_ptr<json::object>
to_json ()
const;
405 const char *&out_color)
const final override;
443 const char *&out_color)
const final override;
472 const gcall &longjmp_call)
568 template <
typename T>
573 template <
typename T>
576 entry.m_key =
reinterpret_cast<key_type> (1);
578 template <
typename T>
581 entry.m_key =
nullptr;
583 template <
typename T>
586 return entry.m_key ==
reinterpret_cast<key_type> (1);
588 template <
typename T>
591 return entry.m_key ==
nullptr;
638 template <
typename T>
643 template <
typename T>
646 entry.m_key =
reinterpret_cast<key_type> (1);
648 template <
typename T>
651 entry.m_key =
nullptr;
653 template <
typename T>
656 return entry.m_key ==
reinterpret_cast<key_type> (1);
658 template <
typename T>
661 return entry.m_key ==
nullptr;
706 std::unique_ptr<json::array>
to_json ()
const;
750 std::unique_ptr<json::object>
to_json ()
const;
762 return cmp (*
this, other) < 0;
767 return cmp (*
this, other) == 0;
772 return !(*
this == other || *
this < other);
781 if (snode ==
nullptr)
838 bool add_to_worklist =
true);
840 const superedge *sedge,
bool could_do_work,
841 std::unique_ptr<custom_edge_info> custom =
nullptr);
876 std::unique_ptr<json::object>
to_json ()
const;
959 std::unique_ptr<rejected_constraint> rc)
968 std::unique_ptr<rejected_constraint>
m_rc;
988 std::unique_ptr<rejected_constraint> *out_rc);
Definition analysis-plan.h:35
Definition call-string.h:41
Definition checker-path.h:32
Definition diagnostic-manager.h:161
Definition region-model.h:1320
Definition exploded-graph.h:347
std::unique_ptr< json::object > to_json() const
const operation * maybe_get_op() const
void dump_dot_label(pretty_printer *pp) const
bool m_could_do_work_p
Definition exploded-graph.h:387
exploded_edge(exploded_node *src, exploded_node *dest, const superedge *sedge, bool could_do_work, std::unique_ptr< custom_edge_info > custom_info)
std::unique_ptr< custom_edge_info > m_custom_info
Definition exploded-graph.h:364
void dump_dot(graphviz_out *gv, const dump_args_t &args) const final override
bool could_do_work_p() const
Definition exploded-graph.h:366
DISABLE_COPY_AND_ASSIGN(exploded_edge)
const gimple * maybe_get_stmt() const
const superedge *const m_sedge
Definition exploded-graph.h:359
Definition exploded-graph.h:806
hash_map< const point_and_state *, exploded_node *, eg_hash_map_traits > map_t
Definition exploded-graph.h:916
stats * get_global_stats()
Definition exploded-graph.h:870
const call_string_data_map_t * get_per_call_string_data() const
Definition exploded-graph.h:880
const state_purge_map * get_purge_map() const
Definition exploded-graph.h:823
const extrinsic_state & m_ext_state
Definition exploded-graph.h:928
void detect_infinite_recursion(exploded_node *enode)
Definition infinite-recursion.cc:585
call_string_data_map_t m_per_call_string_data
Definition exploded-graph.h:945
stats m_functionless_stats
Definition exploded-graph.h:943
exploded_node * find_previous_entry_to(function *top_of_stack_fun, exploded_node *enode) const
Definition infinite-recursion.cc:328
function_stat_map_t m_per_function_stats
Definition exploded-graph.h:942
exploded_edge * add_edge(exploded_node *src, exploded_node *dest, const superedge *sedge, bool could_do_work, std::unique_ptr< custom_edge_info > custom=nullptr)
void detect_infinite_loops()
Definition infinite-loop.cc:555
void process_node(exploded_node *node)
engine * get_engine() const
Definition exploded-graph.h:822
point_map_t m_per_point_data
Definition exploded-graph.h:922
diagnostic_manager & get_diagnostic_manager()
Definition exploded-graph.h:861
exploded_node * add_function_entry(const function &fun)
per_function_data * get_per_function_data(function *) const
log_user m_logger
Definition exploded-graph.h:909
bool maybe_process_run_of_enodes(exploded_node *node)
const supergraph & get_supergraph() const
Definition exploded-graph.h:820
const analysis_plan & get_analysis_plan() const
Definition exploded-graph.h:824
map_t m_point_and_state_to_node
Definition exploded-graph.h:917
const supergraph & m_sg
Definition exploded-graph.h:907
exploded_graph(const supergraph &sg, logger *logger, const extrinsic_state &ext_state, const state_purge_map *purge_map, const analysis_plan &plan, int verbosity)
diagnostic_manager m_diagnostic_manager
Definition exploded-graph.h:937
hash_map< function *, per_function_data * > per_function_data_t
Definition exploded-graph.h:934
void build_initial_worklist()
per_call_string_data * get_or_create_per_call_string_data(const call_string &)
const diagnostic_manager & get_diagnostic_manager() const
Definition exploded-graph.h:865
per_program_point_data * get_per_program_point_data(const program_point &) const
logger * get_logger() const
Definition exploded-graph.h:818
exploded_node * m_origin
Definition exploded-graph.h:926
per_function_data * get_or_create_per_function_data(function *)
void on_escaped_function(tree fndecl)
void dump_exploded_nodes() const
hash_map< const call_string *, per_call_string_data * > call_string_data_map_t
Definition exploded-graph.h:809
hash_set< function * > m_functions_with_enodes
Definition exploded-graph.h:949
stats * get_or_create_function_stats(function *fn)
void print_bar_charts(pretty_printer *pp) const
stats m_global_stats
Definition exploded-graph.h:940
ordered_hash_map< function *, stats * > function_stat_map_t
Definition exploded-graph.h:941
const extrinsic_state & get_ext_state() const
Definition exploded-graph.h:821
worklist m_worklist
Definition exploded-graph.h:924
void dump_stats(FILE *) const
int get_scc_id(const supernode &node) const
Definition exploded-graph.h:883
hash_map< const program_point *, per_program_point_data *, eg_point_hash_map_traits > point_map_t
Definition exploded-graph.h:921
std::unique_ptr< json::object > to_json() const
void save_diagnostic(const state_machine &sm, const exploded_node *enode, const supernode *node, const gimple *stmt, tree var, state_machine::state_t state, pending_diagnostic *d)
const state_purge_map *const m_purge_map
Definition exploded-graph.h:930
const analysis_plan & m_plan
Definition exploded-graph.h:932
void unwind_from_exception(exploded_node &enode, const gimple *stmt, region_model_context *ctxt)
exploded_node * get_or_create_node(const program_point &point, const program_state &state, exploded_node *enode_for_diag, bool add_to_worklist=true)
per_program_point_data * get_or_create_per_program_point_data(const program_point &)
per_function_data_t m_per_function_data
Definition exploded-graph.h:935
exploded_node * get_origin() const
Definition exploded-graph.h:826
exploded_node * get_node_by_index(int idx) const
DISABLE_COPY_AND_ASSIGN(exploded_graph)
Definition exploded-graph.h:221
DISABLE_COPY_AND_ASSIGN(exploded_node)
const point_and_state * get_ps_key() const
Definition exploded-graph.h:300
void dump(const extrinsic_state &ext_state) const
status
Definition exploded-graph.h:228
@ worklist
Definition exploded-graph.h:230
function * get_function() const
Definition exploded-graph.h:289
void dump_to_pp(pretty_printer *pp, const extrinsic_state &ext_state) const
location_t get_location() const
Definition exploded-graph.h:285
unsigned get_num_diagnostics() const
Definition exploded-graph.h:316
void dump_saved_diagnostics(pretty_printer *pp) const
void dump_dot(graphviz_out *gv, const dump_args_t &args) const final override
void on_throw(exploded_graph &eg, const gcall &call, const program_point &after_throw_point, program_state *new_state, bool is_rethrow, region_model_context *ctxt)
std::unique_ptr< json::object > to_json(const extrinsic_state &ext_state) const
void add_diagnostic(const saved_diagnostic *sd)
Definition exploded-graph.h:312
void dump_processed_stmts(pretty_printer *pp) const
const point_and_state m_ps
Definition exploded-graph.h:330
const char * get_dot_fillcolor() const
void dump_dot_id(pretty_printer *pp) const
const program_state & get_state() const
Definition exploded-graph.h:298
static const char * status_to_str(enum status s)
void dump_succs_and_preds(FILE *outf) const
const int m_index
Definition exploded-graph.h:340
const program_point * get_point_key() const
Definition exploded-graph.h:301
enum status get_status() const
Definition exploded-graph.h:305
void set_status(enum status s)
Definition exploded-graph.h:306
int get_stack_depth() const
Definition exploded-graph.h:293
void on_longjmp(exploded_graph &eg, const gcall &call, program_state *new_state, region_model_context *ctxt)
exploded_node(const point_and_state &ps, int index)
const program_point & get_point() const
Definition exploded-graph.h:280
void dump(FILE *fp, const extrinsic_state &ext_state) const
exploded_node(point_and_state &&ps, int index)
auto_vec< const saved_diagnostic * > m_saved_diagnostics
Definition exploded-graph.h:336
const supernode * get_supernode() const
Definition exploded-graph.h:281
void detect_leaks(exploded_graph &eg)
hashval_t hash() const
Definition exploded-graph.h:251
enum status m_status
Definition exploded-graph.h:332
const saved_diagnostic * get_saved_diagnostic(unsigned idx) const
Definition exploded-graph.h:320
Definition program-state.h:34
engine * get_engine() const
Definition program-state.h:75
feasibility_problem(unsigned eedge_idx, const exploded_edge &eedge, std::unique_ptr< rejected_constraint > rc)
Definition exploded-graph.h:957
const exploded_edge & m_eedge
Definition exploded-graph.h:967
void dump_to_pp(pretty_printer *pp) const
unsigned m_eedge_idx
Definition exploded-graph.h:966
std::unique_ptr< rejected_constraint > m_rc
Definition exploded-graph.h:968
bool maybe_update_for_edge(logger *logger, const exploded_edge *eedge, region_model_context *ctxt, std::unique_ptr< rejected_constraint > *out_rc)
auto_sbitmap & get_snodes_visited()
Definition exploded-graph.h:992
feasibility_state(const region_model &model, const supergraph &sg)
auto_sbitmap m_snodes_visited
Definition exploded-graph.h:999
feasibility_state(region_model_manager *manager, const supergraph &sg)
void dump_to_pp(pretty_printer *pp, bool simple, bool multiline) const
region_model & get_model()
Definition exploded-graph.h:990
feasibility_state(const feasibility_state &other)
region_model m_model
Definition exploded-graph.h:998
const region_model & get_model() const
Definition exploded-graph.h:991
feasibility_state & operator=(const feasibility_state &other)
const auto_sbitmap & get_snodes_visited() const
Definition exploded-graph.h:993
void on_condition(const svalue *lhs, enum tree_code op, const svalue *rhs) final override
void on_unknown_change(const svalue *sval, bool is_mutable) final override
void terminate_path() final override
impl_region_model_context(exploded_graph &eg, exploded_node *enode_for_diag, const program_state *old_state, program_state *new_state, uncertainty_t *uncertainty, path_context *path_ctxt, const gimple *stmt=nullptr, bool *out_could_have_done_work=nullptr)
exploded_graph * m_eg
Definition exploded-graph.h:123
const extrinsic_state & m_ext_state
Definition exploded-graph.h:129
logger * get_logger() final override
Definition exploded-graph.h:67
void on_svalue_leak(const svalue *) override
void on_pop_frame(const frame_region *frame_reg) final override
void on_liveness_change(const svalue_set &live_svalues, const region_model *model) final override
void add_note(std::unique_ptr< pending_note > pn) final override
bool * m_out_could_have_done_work
Definition exploded-graph.h:132
bool warn_at(std::unique_ptr< pending_diagnostic > d, pending_location &&ploc) final override
void on_state_leak(const state_machine &sm, const svalue *sval, state_machine::state_t state)
void maybe_did_work() override
impl_region_model_context(program_state *state, const extrinsic_state &ext_state, uncertainty_t *uncertainty, logger *logger=nullptr)
void add_event(std::unique_ptr< checker_event > event) final override
pending_location get_pending_location_for_diag() const override
program_state * m_new_state
Definition exploded-graph.h:127
log_user m_logger
Definition exploded-graph.h:124
const program_state * m_old_state
Definition exploded-graph.h:126
void on_unusable_in_infinite_loop() override
Definition exploded-graph.h:118
const program_state * get_state() const override
Definition exploded-graph.h:114
void on_phi(const gphi *phi, tree rhs) final override
void on_unexpected_tree_code(tree t, const dump_location_t &loc) final override
void on_escaped_function(tree fndecl) final override
void bifurcate(std::unique_ptr< custom_edge_info > info) final override
path_context * m_path_ctxt
Definition exploded-graph.h:131
void purge_state_involving(const svalue *sval) final override
void on_bounded_ranges(const svalue &sval, const bounded_ranges &ranges) final override
uncertainty_t * get_uncertainty() final override
const gimple * m_stmt
Definition exploded-graph.h:128
uncertainty_t * m_uncertainty
Definition exploded-graph.h:130
const gimple * get_stmt() const override
Definition exploded-graph.h:111
bool get_state_map_by_name(const char *name, sm_state_map **out_smap, const state_machine **out_sm, unsigned *out_sm_idx, std::unique_ptr< sm_context > *out_sm_context) override
bool checking_for_infinite_loop_p() const override
Definition exploded-graph.h:117
const extrinsic_state * get_ext_state() const final override
Definition exploded-graph.h:100
const exploded_graph * get_eg() const override
Definition exploded-graph.h:112
exploded_node * m_enode_for_diag
Definition exploded-graph.h:125
interprocedural_call(const call_and_return_op &op, function &callee_fun)
Definition exploded-graph.h:396
void get_dot_attrs(const char *&out_style, const char *&out_color) const final override
bool update_model(region_model *model, const exploded_edge *eedge, region_model_context *ctxt) const final override
const gcall & get_gcall() const
void add_events_to_path(checker_path *emission_path, const exploded_edge &eedge, pending_diagnostic &pd, const state_transition *state_trans) const final override
const call_and_return_op & m_op
Definition exploded-graph.h:426
bool update_state(program_state *state, const exploded_edge *eedge, region_model_context *ctxt) const final override
bool try_to_rewind_data_flow(rewind_context &) const final override
function & m_callee_fun
Definition exploded-graph.h:427
void print(pretty_printer *pp) const final override
const gcall & m_call_stmt
Definition exploded-graph.h:462
void print(pretty_printer *pp) const final override
bool try_to_rewind_data_flow(rewind_context &) const final override
interprocedural_return(const gcall &call_stmt)
Definition exploded-graph.h:436
bool update_model(region_model *model, const exploded_edge *eedge, region_model_context *ctxt) const final override
bool update_state(program_state *state, const exploded_edge *eedge, region_model_context *ctxt) const final override
void get_dot_attrs(const char *&out_style, const char *&out_color) const final override
void add_events_to_path(checker_path *emission_path, const exploded_edge &eedge, pending_diagnostic &pd, const state_transition *state_trans) const final override
Definition analyzer-logging.h:193
logger * get_logger() const
Definition analyzer-logging.h:198
Definition analyzer-logging.h:36
Definition pending-diagnostic.h:258
Definition exploded-graph.h:140
hashval_t m_hash
Definition exploded-graph.h:191
bool operator==(const point_and_state &other) const
Definition exploded-graph.h:166
void validate(const extrinsic_state &ext_state) const
const program_state & get_state() const
Definition exploded-graph.h:172
void set_state(program_state &&state)
Definition exploded-graph.h:180
program_state m_state
Definition exploded-graph.h:190
program_point m_point
Definition exploded-graph.h:189
point_and_state(const program_point &point, const program_state &state)
Definition exploded-graph.h:142
point_and_state(point_and_state &&other)
Definition exploded-graph.h:155
const program_point & get_point() const
Definition exploded-graph.h:171
hashval_t hash() const
Definition exploded-graph.h:162
void set_state(const program_state &state)
Definition exploded-graph.h:174
point_and_state(const point_and_state &other)=default
Definition program-point.h:54
location_t get_location() const
Definition program-point.h:98
function * get_function() const
Definition program-point.h:88
program_point(const supernode *snode, const call_string &call_string)
Definition program-point.h:56
const supernode * get_supernode() const
Definition program-point.h:82
int get_stack_depth() const
Definition program-point.h:107
const call_string & get_call_string() const
Definition program-point.h:86
Definition program-state.h:224
Definition region-model.h:754
Definition region-model-manager.h:32
Definition region-model.h:294
setjmp_record m_setjmp_record
Definition exploded-graph.h:521
program_point get_point_before_setjmp() const
Definition exploded-graph.h:492
bool update_model(region_model *model, const exploded_edge *eedge, region_model_context *ctxt) const final override
void add_events_to_path(checker_path *emission_path, const exploded_edge &eedge, pending_diagnostic &pd, const state_transition *state_trans) const final override
const gcall & get_setjmp_call() const
Definition exploded-graph.h:505
void print(pretty_printer *pp) const final override
Definition exploded-graph.h:477
const exploded_node * get_enode_origin() const
Definition exploded-graph.h:515
const gcall & m_longjmp_call
Definition exploded-graph.h:522
program_point get_point_after_setjmp() const
Definition exploded-graph.h:498
rewind_info_t(const setjmp_record &setjmp_record, const gcall &longjmp_call)
Definition exploded-graph.h:471
const gcall & get_longjmp_call() const
Definition exploded-graph.h:510
Definition diagnostic-manager.h:79
Definition program-state.h:92
const state_machine::state * state_t
Definition sm.h:63
Definition state-purge.h:31
Definition state-transition.h:31
Definition exploded-graph.h:695
void strong_connect(unsigned index, logger *logger)
int get_scc_id(int node_index) const
Definition exploded-graph.h:699
auto_vec< per_node_data > m_per_node
Definition exploded-graph.h:724
const supergraph & m_sg
Definition exploded-graph.h:722
strongly_connected_components(const supergraph &sg, logger *logger)
auto_vec< unsigned > m_stack
Definition exploded-graph.h:723
std::unique_ptr< json::array > to_json() const
Definition supergraph.h:281
Definition supergraph.h:105
Definition supergraph.h:224
int m_id
Definition supergraph.h:268
bool operator<(const key_t &other) const
Definition exploded-graph.h:760
const worklist & m_worklist
Definition exploded-graph.h:786
bool operator==(const key_t &other) const
Definition exploded-graph.h:765
exploded_node * m_enode
Definition exploded-graph.h:787
bool operator>(const key_t &other) const
Definition exploded-graph.h:770
static int cmp(const key_t &ka, const key_t &kb)
int get_scc_id(const exploded_node *enode) const
Definition exploded-graph.h:778
key_t(const worklist &w, exploded_node *enode)
Definition exploded-graph.h:756
Definition exploded-graph.h:738
std::unique_ptr< json::object > to_json() const
void add_node(exploded_node *enode)
strongly_connected_components m_scc
Definition exploded-graph.h:793
worklist(const exploded_graph &eg, const analysis_plan &plan)
queue_t m_queue
Definition exploded-graph.h:798
exploded_node * take_next()
fibonacci_heap< key_t, exploded_node > queue_t
Definition exploded-graph.h:797
exploded_node * peek_next()
const analysis_plan & m_plan
Definition exploded-graph.h:794
int get_scc_id(const supernode &snode) const
Definition exploded-graph.h:745
node_t * m_dest
Definition digraph.h:112
dedge(node_t *src, node_t *dest)
Definition digraph.h:93
eg_traits::dump_args_t dump_args_t
Definition digraph.h:91
digraph()
Definition digraph.h:128
eg_traits::dump_args_t dump_args_t
Definition digraph.h:46
Definition dumpfile.h:446
Definition fibonacci_heap.h:143
Definition graphviz.h:388
Definition ordered-hash-map.h:35
Definition pretty-print.h:241
union tree_node * tree
Definition coretypes.h:97
void final(rtx_insn *first, FILE *file, int optimize_p)
Definition final.cc:2001
tree_code
Definition genmatch.cc:1011
Definition access-diagram.h:30
hash_set< const svalue * > svalue_set
Definition common.h:76
Definition custom-sarif-properties/state-graphs.h:33
void pp_string(pretty_printer *pp, const char *str)
Definition pretty-print.cc:2764
Definition constraint-manager.h:123
Definition exploded-graph.h:545
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition exploded-graph.h:556
static void mark_empty(T &entry)
Definition exploded-graph.h:579
static void mark_deleted(T &entry)
Definition exploded-graph.h:574
static bool is_deleted(const T &entry)
Definition exploded-graph.h:584
static const bool empty_zero_p
Definition exploded-graph.h:593
exploded_node * compare_type
Definition exploded-graph.h:548
const point_and_state * key_type
Definition exploded-graph.h:546
exploded_node * value_type
Definition exploded-graph.h:547
static void remove(T &)
Definition exploded-graph.h:569
static hashval_t hash(const key_type &k)
Definition exploded-graph.h:550
static bool is_empty(const T &entry)
Definition exploded-graph.h:589
Definition exploded-graph.h:615
static bool is_deleted(const T &entry)
Definition exploded-graph.h:654
static const bool empty_zero_p
Definition exploded-graph.h:663
static void mark_empty(T &entry)
Definition exploded-graph.h:649
static hashval_t hash(const key_type &k)
Definition exploded-graph.h:620
const program_point * key_type
Definition exploded-graph.h:616
per_program_point_data * value_type
Definition exploded-graph.h:617
per_program_point_data * compare_type
Definition exploded-graph.h:618
static void mark_deleted(T &entry)
Definition exploded-graph.h:644
static bool is_empty(const T &entry)
Definition exploded-graph.h:659
static bool equal_keys(const key_type &k1, const key_type &k2)
Definition exploded-graph.h:626
static void remove(T &)
Definition exploded-graph.h:639
bool show_enode_details_p(const exploded_node &enode) const
const exploded_graph & m_eg
Definition exploded-graph.h:210
virtual void dump_extra_info(const exploded_node *, pretty_printer *) const
Definition exploded-graph.h:208
dump_args_t(const exploded_graph &eg)
Definition exploded-graph.h:203
Definition exploded-graph.h:197
exploded_graph graph_t
Definition exploded-graph.h:200
exploded_edge edge_t
Definition exploded-graph.h:199
exploded_node node_t
Definition exploded-graph.h:198
exploded_cluster cluster_t
Definition exploded-graph.h:212
Definition diagnostic-manager.h:35
Definition exploded-graph.h:669
stats m_stats
Definition exploded-graph.h:675
const call_string & m_key
Definition exploded-graph.h:674
per_call_string_data(const call_string &key, int num_supernodes)
Definition exploded-graph.h:670
Definition exploded-graph.h:681
per_function_data()
Definition exploded-graph.h:682
auto_vec< call_summary * > m_summaries
Definition exploded-graph.h:687
void add_call_summary(exploded_node *node)
Definition exploded-graph.h:599
const program_point m_key
Definition exploded-graph.h:604
int m_excess_enodes
Definition exploded-graph.h:608
per_program_point_data(const program_point &key)
Definition exploded-graph.h:600
auto_vec< exploded_node * > m_enodes
Definition exploded-graph.h:605
const exploded_node * m_enode
Definition svalue.h:575
const gcall * m_setjmp_call
Definition svalue.h:577
const superedge * m_sedge
Definition svalue.h:576
Definition exploded-graph.h:528
void log(logger *logger) const
void dump(FILE *out) const
int m_num_nodes
Definition exploded-graph.h:535
int m_num_supernodes
Definition exploded-graph.h:538
int m_node_reuse_after_merge_count
Definition exploded-graph.h:537
stats(int num_supernodes)
int get_total_enodes() const
int m_node_reuse_count
Definition exploded-graph.h:536
per_node_data()
Definition exploded-graph.h:711
bool m_on_stack
Definition exploded-graph.h:717
int m_id
Definition exploded-graph.h:715
int m_lowlink
Definition exploded-graph.h:716
Definition function.h:249
Definition ira-emit.cc:158
Definition gengtype.h:377
Definition genautomata.cc:669
#define gcc_assert(EXPR)
Definition system.h:772
#define false
Definition system.h:846