diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-04-15 19:37:22 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-04-15 19:37:22 +0000 |
commit | 4dd3de56566eb6af21e30145dcb9668d195a53d0 (patch) | |
tree | b5b860ce15d89be1abf23b2800803eee715cd37e /gcc/function.h | |
parent | 0318d457d39b7fc1a3782b0f7bf8925b52599ab3 (diff) | |
download | gcc-4dd3de56566eb6af21e30145dcb9668d195a53d0.tar.gz |
* gengtype.c (write_root): Param_is argument is OK.
* expr.c (expand_expr_real_1): Update call of get_exception_*.
* function.h: Include varray.h
(rtl_eh): New stucture based on except.c one.
(call_site_record): New forward declaration and vector type.
* calls.c (emit_call_1): Do not call
note_current_region_may_contain_throw.
* except.c (eh_status): Remove cur_region, try_region since they are
unused.
Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
sjlj_fc, sjlj_exit_after to rth_eh in function.h.
Remove call_site_data_used, call_site_data_size.
Turn call_site_record into vector in function.h.
(note_current_region_may_contain_throw): Remove.
(get_exception_pointer, get_exception_filter): Do not take struct
function argument; update.
(add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
add_ttypes_entry, add_ehspec_entry, assign_filter_values,
build_post_landing_pads, dw2_build_landing_pads,
sjlj_assign_call_site_values, sjlj_mark_call_sites,
sjlj_emit_function_enter, sjlj_emit_function_enter,
sjlj_emit_function_exit, sjlj_emit_dispatch_table,
sjlj_build_landing_pads, finish_eh_generation,
remove_exception_handler_label, remove_eh_handler,
maybe_remove_eh_handler, add_reachable_handler,
reachable_handlers, expand_builtin_eh_return,
expand_eh_return, add_action_record, collect_one_action_chain,
add_call_site, convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
sjlj_output_call_site_table, output_function_exception_table,
* except.h (note_current_region_may_contain_throw): Remove
(get_exception_pointer, get_exception_filter): Do not take struct
function argument.
* Makefile.in (GTFILES): Put varargs before struct function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134328 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r-- | gcc/function.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/function.h b/gcc/function.h index edc7216e751..1fe6d6a51ea 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #include "hashtab.h" +#include "varray.h" /* Stack of pending (incomplete) sequences saved by `start_sequence'. Each element describes one pending sequence. @@ -136,6 +137,34 @@ struct expr_status GTY(()) rtx x_forced_labels; }; +typedef struct call_site_record *call_site_record; +DEF_VEC_P(call_site_record); +DEF_VEC_ALLOC_P(call_site_record, gc); + +/* RTL representation of exception handling. */ +struct rtl_eh GTY(()) +{ + rtx filter; + rtx exc_ptr; + + int built_landing_pads; + + rtx ehr_stackadj; + rtx ehr_handler; + rtx ehr_label; + + rtx sjlj_fc; + rtx sjlj_exit_after; + + htab_t GTY ((param_is (struct ehl_map_entry))) exception_handler_label_map; + + VEC(tree,gc) *ttype_data; + varray_type ehspec_data; + varray_type action_record_data; + + VEC(call_site_record,gc) *call_site_record; +}; + #define pending_stack_adjust (crtl->expr.x_pending_stack_adjust) #define inhibit_defer_pop (crtl->expr.x_inhibit_defer_pop) #define saveregs_value (crtl->expr.x_saveregs_value) @@ -146,6 +175,7 @@ struct expr_status GTY(()) struct gimple_df; struct temp_slot; typedef struct temp_slot *temp_slot_p; +struct call_site_record; DEF_VEC_P(temp_slot_p); DEF_VEC_ALLOC_P(temp_slot_p,gc); @@ -227,6 +257,7 @@ struct rtl_data GTY(()) struct varasm_status varasm; struct incoming_args args; struct function_subsections subsections; + struct rtl_eh eh; /* For function.c */ |