139 }
GTY ((tag (
"ERT_TRY"))) eh_try;
153 }
GTY ((tag (
"ERT_ALLOWED_EXCEPTIONS"))) allowed;
166 }
GTY ((tag (
"ERT_MUST_NOT_THROW"))) must_not_throw;
175 rtx exc_ptr_reg, filter_reg;
179 bool use_cxa_end_cleanup;
310 else if (
r->next_peer &&
r != start)
320 while (
r->next_peer ==
NULL);
326#define FOR_ALL_EH_REGION_AT(R, START) \
327 for ((R) = (START); (R) != NULL; (R) = ehr_next (R, START))
329#define FOR_ALL_EH_REGION_FN(R, FN) \
330 for ((R) = (FN)->eh->region_tree; (R) != NULL; (R) = ehr_next (R, NULL))
332#define FOR_ALL_EH_REGION(R) FOR_ALL_EH_REGION_FN (R, cfun)
unsigned char uchar
Definition coretypes.h:476
#define GTY(x)
Definition coretypes.h:41
union tree_node * tree
Definition coretypes.h:97
rtx expand_builtin_dwarf_sp_column(void)
Definition dwarf2cfi.cc:249
void expand_builtin_init_dwarf_reg_sizes(tree address)
Definition dwarf2cfi.cc:324
eh_region get_eh_region_from_lp_number_fn(struct function *ifun, int i)
Definition except.cc:498
eh_region get_eh_region_from_lp_number(int i)
Definition except.cc:513
rtx expand_builtin_frob_return_addr(tree addr_tree)
Definition except.cc:2228
eh_landing_pad get_eh_landing_pad_from_number_fn(struct function *ifun, int i)
Definition except.cc:486
eh_catch gen_eh_region_catch(eh_region t, tree type_or_list)
Definition except.cc:407
hash_map< void *, void * > * duplicate_eh_regions(struct function *ifun, eh_region copy_region, int outer_lp, duplicate_eh_regions_map map, void *map_data)
Definition except.cc:613
rtx expand_builtin_eh_filter(tree exp)
Definition except.cc:2110
eh_region get_eh_region_from_number(int i)
Definition except.cc:480
bool current_function_has_exception_handlers(void)
Definition except.cc:521
eh_region eh_region_outermost(struct function *ifun, eh_region region_a, eh_region region_b)
Definition except.cc:648
DEBUG_FUNCTION void verify_eh_tree(struct function *fun)
Definition except.cc:3435
eh_region get_eh_region_from_rtx(const_rtx insn)
Definition except.cc:1874
eh_landing_pad get_eh_landing_pad_from_number(int i)
Definition except.cc:492
rtx expand_builtin_extract_return_addr(tree addr_tree)
Definition except.cc:2197
tree lookup_type_for_runtime(tree type)
Definition except.cc:689
eh_region gen_eh_region_must_not_throw(eh_region outer)
Definition except.cc:453
eh_landing_pad get_eh_landing_pad_from_rtx(const_rtx insn)
Definition except.cc:1861
rtx expand_builtin_eh_pointer(tree exp)
Definition except.cc:2098
void remove_eh_landing_pad(eh_landing_pad lp)
Definition except.cc:1571
void remove_eh_handler(eh_region region)
Definition except.cc:1626
void make_reg_eh_region_note_nothrow_nononlocal(rtx_insn *insn)
Definition except.cc:1733
void finish_eh_generation(void)
Definition except.cc:1520
void expand_eh_return(void)
Definition except.cc:2280
hash_map< gimple *, int > * get_eh_throw_stmt_table(struct function *fun)
Definition except.cc:3269
rtx expand_builtin_extend_pointer(tree addr_tree)
Definition except.cc:2340
void expand_builtin_unwind_init(void)
Definition except.cc:2151
eh_region gen_eh_region_try(eh_region outer)
Definition except.cc:401
enum eh_personality_kind function_needs_eh_personality(struct function *fn)
Definition except.cc:3277
void sjlj_emit_function_exit_after(rtx_insn *after)
Definition except.cc:1270
void init_eh_for_function(void)
Definition except.cc:351
DEBUG_FUNCTION void debug_eh_tree(struct function *fn)
Definition except.cc:3427
void expand_builtin_eh_return(tree stackadj_tree, tree handler_tree)
Definition except.cc:2247
void output_function_exception_table(int section)
Definition except.cc:3229
void remove_unreachable_eh_regions(sbitmap r_reachable)
Definition except.cc:1666
eh_region get_eh_region_from_number_fn(struct function *ifun, int i)
Definition except.cc:474
rtx expand_builtin_eh_return_data_regno(tree exp)
Definition except.cc:2165
void make_reg_eh_region_note(rtx_insn *insn, int ecf_flags, int lp_nr)
Definition except.cc:1716
void dump_eh_tree(FILE *out, struct function *fun)
Definition except.cc:3310
eh_region gen_eh_region_cleanup(eh_region outer)
Definition except.cc:395
void for_each_eh_label(void(*callback)(rtx))
Definition except.cc:1675
void add_type_for_runtime(tree type)
Definition except.cc:676
eh_landing_pad gen_eh_landing_pad(eh_region region)
Definition except.cc:459
void set_eh_throw_stmt_table(function *fun, hash_map< gimple *, int > *table)
Definition except.cc:3263
eh_region gen_eh_region_allowed(eh_region outer, tree allowed)
Definition except.cc:441
rtx expand_builtin_eh_copy_values(tree exp)
Definition except.cc:2123
void update_sjlj_context(void)
Definition except.cc:1508
void assign_filter_values(void)
Definition except.cc:852
eh_personality_kind
Definition except.h:294
@ eh_personality_lang
Definition except.h:297
@ eh_personality_none
Definition except.h:295
@ eh_personality_any
Definition except.h:296
rtx expand_builtin_eh_return_data_regno(tree)
Definition except.cc:2165
rtx expand_builtin_extend_pointer(tree)
Definition except.cc:2340
eh_landing_pad gen_eh_landing_pad(eh_region)
Definition except.cc:459
tree lookup_type_for_runtime(tree)
Definition except.cc:689
rtx expand_builtin_dwarf_sp_column(void)
Definition dwarf2cfi.cc:249
enum eh_personality_kind function_needs_eh_personality(struct function *)
Definition except.cc:3277
bool current_function_has_exception_handlers(void)
Definition except.cc:521
struct eh_landing_pad_d * eh_landing_pad
Definition except.h:182
eh_catch gen_eh_region_catch(eh_region, tree)
Definition except.cc:407
void add_type_for_runtime(tree)
Definition except.cc:676
eh_region gen_eh_region_try(eh_region)
Definition except.cc:401
eh_region eh_region_outermost(struct function *, eh_region, eh_region)
Definition except.cc:648
void for_each_eh_label(void(*)(rtx))
Definition except.cc:1675
rtx expand_builtin_eh_pointer(tree)
Definition except.cc:2098
eh_region get_eh_region_from_number_fn(struct function *, int)
Definition except.cc:474
eh_landing_pad get_eh_landing_pad_from_rtx(const_rtx)
Definition except.cc:1861
void make_reg_eh_region_note_nothrow_nononlocal(rtx_insn *)
Definition except.cc:1733
rtx expand_builtin_extract_return_addr(tree)
Definition except.cc:2197
eh_region get_eh_region_from_lp_number(int)
Definition except.cc:513
void expand_builtin_eh_return(tree, tree)
Definition except.cc:2247
rtx expand_builtin_frob_return_addr(tree)
Definition except.cc:2228
rtx expand_builtin_eh_filter(tree)
Definition except.cc:2110
void debug_eh_tree(struct function *)
Definition except.cc:3427
struct eh_catch_d * eh_catch
Definition except.h:183
void finish_eh_generation(void)
Definition except.cc:1520
void expand_eh_return(void)
Definition except.cc:2280
tree(* duplicate_eh_regions_map)(tree, void *)
Definition except.h:247
eh_region gen_eh_region_allowed(eh_region, tree)
Definition except.cc:441
void remove_eh_handler(eh_region)
Definition except.cc:1626
void expand_builtin_unwind_init(void)
Definition except.cc:2151
void set_eh_throw_stmt_table(function *, hash_map< gimple *, int > *)
Definition except.cc:3263
void expand_builtin_init_dwarf_reg_sizes(tree)
Definition dwarf2cfi.cc:324
void sjlj_emit_function_exit_after(rtx_insn *)
Definition except.cc:1270
eh_region_type
Definition except.h:33
@ ERT_MUST_NOT_THROW
Definition except.h:62
@ ERT_TRY
Definition except.h:46
@ ERT_ALLOWED_EXCEPTIONS
Definition except.h:53
@ ERT_CLEANUP
Definition except.h:39
void init_eh_for_function(void)
Definition except.cc:351
eh_region ehr_next(eh_region r, eh_region start)
Definition except.h:306
eh_region get_eh_region_from_number(int)
Definition except.cc:480
void remove_eh_landing_pad(eh_landing_pad)
Definition except.cc:1571
void verify_eh_tree(struct function *)
Definition except.cc:3435
struct eh_region_d * eh_region
Definition except.h:184
void make_reg_eh_region_note(rtx_insn *insn, int ecf_flags, int lp_nr)
Definition except.cc:1716
hash_map< gimple *, int > * get_eh_throw_stmt_table(struct function *)
Definition except.cc:3269
eh_region gen_eh_region_cleanup(eh_region)
Definition except.cc:395
eh_region get_eh_region_from_rtx(const_rtx)
Definition except.cc:1874
eh_region get_eh_region_from_lp_number_fn(struct function *, int)
Definition except.cc:498
rtx expand_builtin_eh_copy_values(tree)
Definition except.cc:2123
eh_region gen_eh_region_must_not_throw(eh_region)
Definition except.cc:453
void output_function_exception_table(int)
Definition except.cc:3229
void update_sjlj_context(void)
Definition except.cc:1508
eh_landing_pad get_eh_landing_pad_from_number(int)
Definition except.cc:492
eh_landing_pad get_eh_landing_pad_from_number_fn(struct function *, int)
Definition except.cc:486
hash_map< void *, void * > * duplicate_eh_regions(struct function *, eh_region, int, duplicate_eh_regions_map, void *)
Definition except.cc:613
void assign_filter_values(void)
Definition except.cc:852
void dump_eh_tree(FILE *, struct function *)
Definition except.cc:3310
void remove_unreachable_eh_regions(sbitmap)
Definition except.cc:1666
poly_int< N, C > r
Definition poly-int.h:774
tree label
Definition except.h:113
struct eh_catch_d * prev_catch
Definition except.h:99
tree filter_list
Definition except.h:108
tree type_list
Definition except.h:103
struct eh_catch_d * next_catch
Definition except.h:98
tree post_landing_pad
Definition except.h:80
rtx_code_label * landing_pad
Definition except.h:87
int index
Definition except.h:90
struct eh_landing_pad_d * next_lp
Definition except.h:72
struct eh_region_d * region
Definition except.h:75
tree label
Definition except.h:147
tree type_list
Definition except.h:143
int filter
Definition except.h:152
tree failure_decl
Definition except.h:163
location_t failure_loc
Definition except.h:165
struct eh_catch_d * last_catch
Definition except.h:138
struct eh_catch_d * first_catch
Definition except.h:137
bool use_cxa_end_cleanup
Definition except.h:179
enum eh_region_type type
Definition except.h:131
struct eh_region_d * outer
Definition except.h:121
struct eh_region_d * inner
Definition except.h:124
union eh_region_d::eh_region_u u
rtx filter_reg
Definition except.h:175
rtx exc_ptr_reg
Definition except.h:175
int index
Definition except.h:128
struct eh_landing_pad_d * landing_pads
Definition except.h:170
struct eh_region_d * next_peer
Definition except.h:125
vec< eh_region, va_gc > * region_array
Definition except.h:197
vec< eh_landing_pad, va_gc > * lp_array
Definition except.h:200
hash_map< gimple *, int > * throw_stmt_table
Definition except.h:204
union eh_status::eh_status_u ehspec_data
eh_region region_tree
Definition except.h:194
vec< tree, va_gc > * ttype_data
Definition except.h:208
Definition function.h:249
int lp_nr
Definition except.h:288
gimple * stmt
Definition except.h:287
Definition gengtype.h:252
#define NULL
Definition system.h:50
struct gcc_target targetm
struct eh_region_d::eh_region_u::eh_region_u_allowed allowed
struct eh_region_d::eh_region_u::eh_region_u_try eh_try
struct eh_region_d::eh_region_u::eh_region_u_must_not_throw must_not_throw
vec< uchar, va_gc > * other
Definition except.h:216
vec< tree, va_gc > * arm_eabi
Definition except.h:215