GCC Middle and Back End API Reference
tree-eh.h File Reference

Go to the source code of this file.


void using_eh_for_cleanups (void)
void add_stmt_to_eh_lp (gimple, int)
bool remove_stmt_from_eh_lp_fn (struct function *, gimple)
bool remove_stmt_from_eh_lp (gimple)
int lookup_stmt_eh_lp_fn (struct function *, gimple)
int lookup_stmt_eh_lp (gimple)
bool make_eh_dispatch_edges (gimple)
void make_eh_edges (gimple)
edge redirect_eh_edge (edge, basic_block)
void redirect_eh_dispatch_edge (gimple, edge, basic_block)
bool operation_could_trap_helper_p (enum tree_code, bool, bool, bool, bool, tree, bool *)
bool operation_could_trap_p (enum tree_code, bool, bool, tree)
bool tree_could_trap_p (tree)
bool stmt_could_throw_p (gimple)
bool tree_could_throw_p (tree)
bool stmt_can_throw_external (gimple)
bool stmt_can_throw_internal (gimple)
bool maybe_clean_eh_stmt_fn (struct function *, gimple)
bool maybe_clean_eh_stmt (gimple)
bool maybe_clean_or_replace_eh_stmt (gimple, gimple)
bool maybe_duplicate_eh_stmt_fn (struct function *, gimple, struct function *, gimple, struct pointer_map_t *, int)
bool maybe_duplicate_eh_stmt (gimple, gimple)
void maybe_remove_unreachable_handlers (void)
bool verify_eh_edges (gimple)
bool verify_eh_dispatch_edge (gimple)

Function Documentation

void add_stmt_to_eh_lp ( gimple  ,
int lookup_stmt_eh_lp ( gimple  )
int lookup_stmt_eh_lp_fn ( struct function ,
bool make_eh_dispatch_edges ( gimple  )
void make_eh_edges ( gimple  )
bool maybe_clean_eh_stmt ( gimple  )
bool maybe_clean_eh_stmt_fn ( struct function ,
bool maybe_clean_or_replace_eh_stmt ( gimple  ,
bool maybe_duplicate_eh_stmt ( gimple  ,
bool maybe_duplicate_eh_stmt_fn ( struct function new_fun,
gimple  new_stmt,
struct function old_fun,
gimple  old_stmt,
struct pointer_map_t map,
int  default_lp_nr 
   Given a statement OLD_STMT in OLD_FUN and a duplicate statement NEW_STMT
   in NEW_FUN, copy the EH table data from OLD_STMT to NEW_STMT.  The MAP
   operand is the return value of duplicate_eh_regions.  
void maybe_remove_unreachable_handlers ( void  )
   Remove unreachable handlers if any landing pads have been removed after
   last ehcleanup pass (due to gimple_purge_dead_eh_edges).  
bool operation_could_trap_helper_p ( enum tree_code  op,
bool  fp_operation,
bool  honor_trapv,
bool  honor_nans,
bool  honor_snans,
tree  divisor,
bool *  handled 
   Helper function for operation_could_trap_p and stmt_could_throw_p.  
         Some floating point comparisons may trap.  
         Conversion of floating point might trap.  
         These operations don't trap with floating point.  
         Any floating arithmetic may trap.  
         Constructing an object cannot trap.  
         Any floating arithmetic may trap.  
bool operation_could_trap_p ( enum tree_code  op,
bool  fp_operation,
bool  honor_trapv,
tree  divisor 
   Return true if operation OP may trap.  FP_OPERATION is true if OP is applied
   on floating-point values.  HONOR_TRAPV is true if OP is applied on integer
   type operands that may trap.  If OP is a division operator, DIVISOR contains
   the value of the divisor.  
void redirect_eh_dispatch_edge ( gimple  ,
edge  ,
edge redirect_eh_edge ( edge  ,
bool remove_stmt_from_eh_lp ( gimple  )
bool remove_stmt_from_eh_lp_fn ( struct function ,
bool stmt_can_throw_external ( gimple  )
bool stmt_can_throw_internal ( gimple  )
bool stmt_could_throw_p ( gimple  )
bool tree_could_throw_p ( tree  )
bool tree_could_trap_p ( tree  )
void using_eh_for_cleanups ( )
   This routine is called from front ends to indicate eh should be used for
bool verify_eh_dispatch_edge ( gimple  )
bool verify_eh_edges ( gimple  )