GCC Middle and Back End API Reference
|
Go to the source code of this file.
void add_stmt_to_eh_lp | ( | gimple | , |
int | |||
) |
int lookup_stmt_eh_lp | ( | gimple | ) |
void make_eh_edges | ( | 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 | |||
) |
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.