|
GCC Middle and Back End API Reference
|
#include <ops.h>


Public Types | |
| enum | kind { asm_stmt , assignment , predict_stmt , return_stmt , resx , cond_edge , goto_edge , switch_edge , eh_dispatch_try_edge , eh_dispatch_allowed_edge , phis , call_and_return } |
Protected Member Functions | |
| control_flow_op (enum kind kind_, ::edge cfg_edge, const gimple &ctrlflow_stmt) | |
Static Protected Member Functions | |
| static void | handle_on_stmt_for_state_machines (operation_context &op_ctxt, program_state &dst_state, path_context *path_ctxt, bool &unknown_side_effects, const gimple &stmt) |
Private Member Functions | |
| virtual bool | apply_constraints (const superedge *sedge, region_model &model, region_model_context *ctxt, std::unique_ptr< rejected_constraint > *out) const =0 |
Private Attributes | |
| ::edge | m_cfg_edge |
| const gimple & | m_ctrlflow_stmt |
| enum kind | m_kind |
An abstract subclass of operation representing the filtering effect on state of a gimple control-flow statement at the end of a BB, for a specific CFG out-edge from that BB.
|
inherited |
|
inlineprotected |
References m_cfg_edge, m_ctrlflow_stmt, and ana::operation::operation().
Referenced by execute_for_feasibility().
|
overridevirtual |
Implements ana::operation.
Reimplemented in ana::eh_dispatch_try_edge_op.
|
privatepure virtual |
Implemented in ana::eh_dispatch_edge_op, ana::gcond_edge_op, ana::ggoto_edge_op, and ana::switch_case_op.
|
inline |
References get_flags().
|
pure virtualinherited |
Implemented in ana::call_and_return_op, ana::cxa_throw_op, ana::dump_op, ana::eh_dispatch_allowed_edge_op, ana::eh_dispatch_try_edge_op, ana::gasm_op, ana::gassign_op, ana::gcond_edge_op, ana::ggoto_edge_op, ana::greturn_op, ana::longjmp_op, ana::phis_for_edge_op, ana::predict_op, ana::resx_op, ana::setjmp_op, and ana::switch_case_op.
|
inlinefinaloverridevirtual |
Implements ana::operation.
|
inherited |
|
inlinevirtualinherited |
Reimplemented in ana::call_and_return_op.
|
inlinevirtual |
Reimplemented from ana::operation.
Referenced by infinite_loop_diagnostic::add_final_event(), and infinite_recursion_diagnostic::fedge_uses_conjured_svalue_p().
|
inlinevirtualinherited |
Reimplemented in ana::phis_for_edge_op.
|
finaloverridevirtual |
Implements ana::operation.
|
override |
References control_flow_op().
|
inlinevirtualinherited |
|
inline |
References m_cfg_edge.
Referenced by ana::gcond_edge_op::clone(), and ana::ggoto_edge_op::clone().
|
inline |
|
inline |
References m_cfg_edge.
Referenced by back_edge_p().
|
inlineinherited |
References m_kind.
Referenced by infinite_loop_diagnostic::add_final_event().
|
staticprotectedinherited |
|
virtual |
Reimplemented in ana::gcond_edge_op, and ana::ggoto_edge_op.
|
inlinefinaloverridevirtual |
Reimplemented from ana::operation.
References final(), and m_ctrlflow_stmt.
|
pure virtualinherited |
|
inlinefinaloverridevirtual |
Implements ana::operation.
References final().
|
inlinevirtualinherited |
Reimplemented in ana::phis_for_edge_op.
References gcc_unreachable.
|
finaloverridevirtual |
Implements ana::operation.
|
private |
Referenced by control_flow_op(), get_cfg_edge(), and get_flags().
|
private |
Referenced by control_flow_op(), get_ctrlflow_stmt(), and maybe_get_stmt().
|
privateinherited |
Referenced by get_kind(), and operation().