summaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-15 19:37:22 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2008-04-15 19:37:22 +0000
commit4dd3de56566eb6af21e30145dcb9668d195a53d0 (patch)
treeb5b860ce15d89be1abf23b2800803eee715cd37e /gcc/function.h
parent0318d457d39b7fc1a3782b0f7bf8925b52599ab3 (diff)
downloadgcc-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.h31
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 */