GCC Middle and Back End API Reference
tree-eh.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

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   
)
int lookup_stmt_eh_lp ( gimple  )
int lookup_stmt_eh_lp_fn ( struct function ,
gimple   
)
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 ,
gimple   
)
bool maybe_clean_or_replace_eh_stmt ( gimple  ,
gimple   
)
bool maybe_duplicate_eh_stmt ( gimple  ,
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  ,
basic_block   
)
edge redirect_eh_edge ( edge  ,
basic_block   
)
bool remove_stmt_from_eh_lp ( gimple  )
bool remove_stmt_from_eh_lp_fn ( struct function ,
gimple   
)
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 ( )

Header file for exception handling. Copyright (C) 2013 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/.

This routine is called from front ends to indicate eh should be used for cleanups.

bool verify_eh_dispatch_edge ( gimple  )
bool verify_eh_edges ( gimple  )