|
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 } |
Static Public Member Functions | |
| static std::unique_ptr< eh_dispatch_edge_op > | make (supernode *src, supernode *dest, ::edge cfg_edge, const geh_dispatch &geh_dispatch_stmt) |
Protected Member Functions | |
| supernode * | get_src_snode () const |
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 | |
| bool | apply_eh_constraints (const superedge *sedge, region_model &model, region_model_context *ctxt, tree exception_type, std::unique_ptr< rejected_constraint > *out) const final override |
| bool | apply_constraints (const superedge *sedge, region_model &model, region_model_context *ctxt, std::unique_ptr< rejected_constraint > *out) const final override |
Private Attributes | |
| eh_catch | m_eh_catch |
| supernode * | m_src_snode |
| supernode * | m_dst_snode |
| eh_region | m_eh_region |
| ::edge | m_cfg_edge |
| const gimple & | m_ctrlflow_stmt |
| enum kind | m_kind |
Concrete operation for edges from an eh_dispatch statement for ERT_TRY regions.
|
inherited |
| ana::eh_dispatch_try_edge_op::eh_dispatch_try_edge_op | ( | supernode * | src_snode, |
| supernode * | dst_snode, | ||
| ::edge | cfg_edge, | ||
| const geh_dispatch & | geh_dispatch_stmt, | ||
| eh_region | eh_reg, | ||
| eh_catch | ehc ) |
|
finaloverridevirtual |
Reimplemented from ana::control_flow_op.
|
finaloverrideprivatevirtualinherited |
Implements ana::control_flow_op.
|
finaloverrideprivatevirtual |
Implements ana::eh_dispatch_edge_op.
|
inlineinherited |
References get_flags().
|
inlinefinaloverridevirtual |
Implements ana::operation.
References final().
|
inlinefinaloverridevirtualinherited |
Implements ana::operation.
|
inherited |
|
inlinevirtualinherited |
Reimplemented in ana::call_and_return_op.
|
inlinevirtualinherited |
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.
|
finaloverridevirtualinherited |
Implements ana::operation.
|
overrideinherited |
References control_flow_op().
|
inlinevirtualinherited |
|
inlineinherited |
References m_cfg_edge.
Referenced by ana::gcond_edge_op::clone(), and ana::ggoto_edge_op::clone().
|
inlineinherited |
|
inlineinherited |
References m_eh_region.
|
inlineinherited |
References m_cfg_edge.
Referenced by back_edge_p().
|
inlineinherited |
References as_a(), and ana::control_flow_op::get_ctrlflow_stmt().
|
inlineinherited |
References m_kind.
Referenced by infinite_loop_diagnostic::add_final_event().
|
inlineprotectedinherited |
References m_src_snode.
|
staticprotectedinherited |
|
staticinherited |
|
virtualinherited |
Reimplemented in ana::gcond_edge_op, and ana::ggoto_edge_op.
|
inlinefinaloverridevirtualinherited |
Reimplemented from ana::operation.
References final(), and m_ctrlflow_stmt.
|
finaloverridevirtual |
Implements ana::operation.
|
inlinefinaloverridevirtualinherited |
Implements ana::operation.
References final().
|
inlinevirtualinherited |
Reimplemented in ana::phis_for_edge_op.
References gcc_unreachable.
|
finaloverridevirtualinherited |
Implements ana::operation.
|
privateinherited |
Referenced by control_flow_op(), get_cfg_edge(), and get_flags().
|
privateinherited |
Referenced by control_flow_op(), get_ctrlflow_stmt(), and maybe_get_stmt().
|
privateinherited |
|
private |
|
privateinherited |
Referenced by get_eh_region().
|
privateinherited |
Referenced by get_kind(), and operation().
|
privateinherited |
Referenced by get_src_snode().