Commit 1a710808 by Duncan Sands Committed by Duncan Sands

Remove lang_eh_type_covers, which is dead, and the corresponding

Ada routine gnat_eh_type_covers.

From-SVN: r158258
parent 9602b6a1
2010-04-13 Duncan Sands <baldrick@free.fr>
* except.h (lang_eh_type_covers): Remove.
* except.c (lang_eh_type_covers): Likewise.
2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
Ulrich Weigand <Ulrich.Weigand@de.ibm.com> Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
......
2010-04-13 Duncan Sands <baldrick@free.fr>
* gcc-interface/misc.c (gnat_eh_type_covers): Remove.
* gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Update comment.
2010-04-13 Eric Botcazou <ebotcazou@adacore.com> 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/gigi.h (standard_datatypes): Add ADT_parent_name_id. * gcc-interface/gigi.h (standard_datatypes): Add ADT_parent_name_id.
......
...@@ -74,7 +74,6 @@ static void gnat_print_type (FILE *, tree, int); ...@@ -74,7 +74,6 @@ static void gnat_print_type (FILE *, tree, int);
static const char *gnat_printable_name (tree, int); static const char *gnat_printable_name (tree, int);
static const char *gnat_dwarf_name (tree, int); static const char *gnat_dwarf_name (tree, int);
static tree gnat_return_tree (tree); static tree gnat_return_tree (tree);
static int gnat_eh_type_covers (tree, tree);
static void gnat_parse_file (int); static void gnat_parse_file (int);
static void internal_error_function (const char *, va_list *); static void internal_error_function (const char *, va_list *);
static tree gnat_type_max_size (const_tree); static tree gnat_type_max_size (const_tree);
...@@ -434,8 +433,6 @@ gnat_init_gcc_eh (void) ...@@ -434,8 +433,6 @@ gnat_init_gcc_eh (void)
right exception regions. */ right exception regions. */
using_eh_for_cleanups (); using_eh_for_cleanups ();
lang_eh_type_covers = gnat_eh_type_covers;
/* Turn on -fexceptions and -fnon-call-exceptions. The first one triggers /* Turn on -fexceptions and -fnon-call-exceptions. The first one triggers
the generation of the necessary exception runtime tables. The second one the generation of the necessary exception runtime tables. The second one
is useful for two reasons: 1/ we map some asynchronous signals like SEGV is useful for two reasons: 1/ we map some asynchronous signals like SEGV
...@@ -580,20 +577,6 @@ gnat_return_tree (tree t) ...@@ -580,20 +577,6 @@ gnat_return_tree (tree t)
return t; return t;
} }
/* Return true if type A catches type B. Callback for flow analysis from
the exception handling part of the back-end. */
static int
gnat_eh_type_covers (tree a, tree b)
{
/* a catches b if they represent the same exception id or if a
is an "others".
??? integer_zero_node for "others" is hardwired in too many places
currently. */
return (a == b || a == integer_zero_node);
}
/* Get the alias set corresponding to a type or expression. */ /* Get the alias set corresponding to a type or expression. */
static alias_set_type static alias_set_type
......
...@@ -3279,11 +3279,7 @@ Exception_Handler_to_gnu_zcx (Node_Id gnat_node) ...@@ -3279,11 +3279,7 @@ Exception_Handler_to_gnu_zcx (Node_Id gnat_node)
handler can catch, with special cases for others and all others cases. handler can catch, with special cases for others and all others cases.
Each exception type is actually identified by a pointer to the exception Each exception type is actually identified by a pointer to the exception
id, or to a dummy object for "others" and "all others". id, or to a dummy object for "others" and "all others". */
Care should be taken to ensure that the control flow impact of "others"
and "all others" is known to GCC. lang_eh_type_covers is doing the trick
currently. */
for (gnat_temp = First (Exception_Choices (gnat_node)); for (gnat_temp = First (Exception_Choices (gnat_node));
gnat_temp; gnat_temp = Next (gnat_temp)) gnat_temp; gnat_temp = Next (gnat_temp))
{ {
......
...@@ -153,9 +153,6 @@ along with GCC; see the file COPYING3. If not see ...@@ -153,9 +153,6 @@ along with GCC; see the file COPYING3. If not see
to the given failure handler. */ to the given failure handler. */
tree (*lang_protect_cleanup_actions) (void); tree (*lang_protect_cleanup_actions) (void);
/* Return true if type A catches type B. */
int (*lang_eh_type_covers) (tree a, tree b);
static GTY(()) int call_site_base; static GTY(()) int call_site_base;
static GTY ((param_is (union tree_node))) static GTY ((param_is (union tree_node)))
htab_t type_to_runtime_map; htab_t type_to_runtime_map;
......
...@@ -294,9 +294,6 @@ extern eh_landing_pad get_eh_landing_pad_from_rtx (const_rtx); ...@@ -294,9 +294,6 @@ extern eh_landing_pad get_eh_landing_pad_from_rtx (const_rtx);
FUNCTION_DECL for `std::terminate'. */ FUNCTION_DECL for `std::terminate'. */
extern tree (*lang_protect_cleanup_actions) (void); extern tree (*lang_protect_cleanup_actions) (void);
/* Return true if type A catches type B. */
extern int (*lang_eh_type_covers) (tree a, tree b);
/* Just because the user configured --with-sjlj-exceptions=no doesn't /* Just because the user configured --with-sjlj-exceptions=no doesn't
mean that we can use call frame exceptions. Detect that the target mean that we can use call frame exceptions. Detect that the target
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment