]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-flow.h: Remove some prototypes.
authorAndrew MacLeod <amacleod@redhat.com>
Tue, 8 Oct 2013 12:13:13 +0000 (12:13 +0000)
committerAndrew Macleod <amacleod@gcc.gnu.org>
Tue, 8 Oct 2013 12:13:13 +0000 (12:13 +0000)
* tree-flow.h: Remove some prototypes.
* tree.h: Remove some protypes, add a couple.
* tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
using_eh_for_cleanups_p): Add interface routines for front ends.
* tree-eh.h: New file.  Add protoptyes.
* tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
(add_stmt_to_eh_lp_fn): Make static.
(lower_try_finally): Use new using_eh_for_cleanups_p.
* emit-rtl.c: Include tree-eh.h.
* gimple.h: Include tree-eh.h.

From-SVN: r203273

gcc/ChangeLog
gcc/emit-rtl.c
gcc/gimple.h
gcc/tree-eh.c
gcc/tree-eh.h [new file with mode: 0644]
gcc/tree-flow.h
gcc/tree.c
gcc/tree.h

index dc1bc7e41b9371e4192594f728988cd2677a7864..d5bc285e92f7058766ff01a74c6d12c69c9b9567 100644 (file)
@@ -1,3 +1,16 @@
+2013-10-08  Andrew MacLeod  <amacleod@redhat.com>
+
+       * tree-flow.h: Remove some prototypes.
+       * tree.h: Remove some protypes, add a couple.
+       * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
+       using_eh_for_cleanups_p): Add interface routines for front ends.
+       * tree-eh.h: New file.  Add protoptyes.
+       * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
+       (add_stmt_to_eh_lp_fn): Make static.
+       (lower_try_finally): Use new using_eh_for_cleanups_p.
+       * emit-rtl.c: Include tree-eh.h.
+       * gimple.h: Include tree-eh.h.
+
 2013-10-08  Marc Glisse  <marc.glisse@inria.fr>
 
        PR tree-optimization/58480
index 85714f5d8a5bd63103c79556345142f2e73061ad..b0fc846226842fd9f33c787b104379f992a60ecb 100644 (file)
@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "params.h"
 #include "target.h"
+#include "tree-eh.h"
 
 struct target_rtl default_target_rtl;
 #if SWITCHABLE_TARGET
index e7021a40a057a33c427e76b27e1083e847b9f719..2272075c7ce3bda0398f6e6dd1babb042e418ec1 100644 (file)
@@ -31,6 +31,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
 #include "gimple-fold.h"
+#include "tree-eh.h"
 
 typedef gimple gimple_seq_node;
 
index 1ad5baf58282bd27d1f2331ee07b3dedb25d33d3..9eaae1170ab10aade7da24c2b17c3adb5d82650e 100644 (file)
@@ -41,15 +41,6 @@ along with GCC; see the file COPYING3.  If not see
    i.e. in hash tables. This is a structure to do this. */
 typedef union {tree *tp; tree t; gimple g;} treemple;
 
-/* Nonzero if we are using EH to handle cleanups.  */
-static int using_eh_for_cleanups_p = 0;
-
-void
-using_eh_for_cleanups (void)
-{
-  using_eh_for_cleanups_p = 1;
-}
-
 /* Misc functions used in this file.  */
 
 /* Remember and lookup EH landing pad data for arbitrary statements.
@@ -66,7 +57,7 @@ using_eh_for_cleanups (void)
 
 /* Add statement T in function IFUN to landing pad NUM.  */
 
-void
+static void
 add_stmt_to_eh_lp_fn (struct function *ifun, gimple t, int num)
 {
   struct throw_stmt_node *n;
@@ -1655,7 +1646,7 @@ lower_try_finally (struct leh_state *state, gimple tp)
   this_tf.try_finally_expr = tp;
   this_tf.top_p = tp;
   this_tf.outer = state;
-  if (using_eh_for_cleanups_p && !cleanup_is_dead_in (state->cur_region))
+  if (using_eh_for_cleanups_p () && !cleanup_is_dead_in (state->cur_region))
     {
       this_tf.region = gen_eh_region_cleanup (state->cur_region);
       this_state.cur_region = this_tf.region;
diff --git a/gcc/tree-eh.h b/gcc/tree-eh.h
new file mode 100644 (file)
index 0000000..308f20f
--- /dev/null
@@ -0,0 +1,52 @@
+/* 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/>.  */
+
+#ifndef GCC_TREE_EH_H
+#define GCC_TREE_EH_H
+
+extern void using_eh_for_cleanups (void);
+extern void add_stmt_to_eh_lp (gimple, int);
+extern bool remove_stmt_from_eh_lp_fn (struct function *, gimple);
+extern bool remove_stmt_from_eh_lp (gimple);
+extern int lookup_stmt_eh_lp_fn (struct function *, gimple);
+extern int lookup_stmt_eh_lp (gimple);
+extern bool make_eh_dispatch_edges (gimple);
+extern void make_eh_edges (gimple);
+extern edge redirect_eh_edge (edge, basic_block);
+extern void redirect_eh_dispatch_edge (gimple, edge, basic_block);
+extern bool operation_could_trap_helper_p (enum tree_code, bool, bool, bool,
+                                          bool, tree, bool *);
+extern bool operation_could_trap_p (enum tree_code, bool, bool, tree);
+extern bool tree_could_trap_p (tree);
+extern bool stmt_could_throw_p (gimple);
+extern bool tree_could_throw_p (tree);
+extern bool stmt_can_throw_external (gimple);
+extern bool stmt_can_throw_internal (gimple);
+extern bool maybe_clean_eh_stmt_fn (struct function *, gimple);
+extern bool maybe_clean_eh_stmt (gimple);
+extern bool maybe_clean_or_replace_eh_stmt (gimple, gimple);
+extern bool maybe_duplicate_eh_stmt_fn (struct function *, gimple,
+                                       struct function *, gimple,
+                                       struct pointer_map_t *, int);
+extern bool maybe_duplicate_eh_stmt (gimple, gimple);
+extern void maybe_remove_unreachable_handlers (void);
+extern bool verify_eh_edges (gimple);
+extern bool verify_eh_dispatch_edge (gimple);
+
+#endif /* GCC_TREE_EH_H */
index db7f346720316aaf04763cae7a3672ea2bfeed6c..54ba51aa68bacbfa2b4b326f1e87f2b1513d85fb 100644 (file)
@@ -375,38 +375,6 @@ enum move_pos
 extern enum move_pos movement_possibility (gimple);
 char *get_lsm_tmp_name (tree, unsigned);
 
-/* In tree-flow-inline.h  */
-static inline bool unmodifiable_var_p (const_tree);
-static inline bool ref_contains_array_ref (const_tree);
-
-/* In tree-eh.c  */
-extern void make_eh_edges (gimple);
-extern bool make_eh_dispatch_edges (gimple);
-extern edge redirect_eh_edge (edge, basic_block);
-extern void redirect_eh_dispatch_edge (gimple, edge, basic_block);
-extern bool stmt_could_throw_p (gimple);
-extern bool stmt_can_throw_internal (gimple);
-extern bool stmt_can_throw_external (gimple);
-extern void add_stmt_to_eh_lp_fn (struct function *, gimple, int);
-extern void add_stmt_to_eh_lp (gimple, int);
-extern bool remove_stmt_from_eh_lp (gimple);
-extern bool remove_stmt_from_eh_lp_fn (struct function *, gimple);
-extern int lookup_stmt_eh_lp_fn (struct function *, gimple);
-extern int lookup_stmt_eh_lp (gimple);
-extern bool maybe_clean_eh_stmt_fn (struct function *, gimple);
-extern bool maybe_clean_eh_stmt (gimple);
-extern bool maybe_clean_or_replace_eh_stmt (gimple, gimple);
-extern bool maybe_duplicate_eh_stmt_fn (struct function *, gimple,
-                                       struct function *, gimple,
-                                       struct pointer_map_t *, int);
-extern bool maybe_duplicate_eh_stmt (gimple, gimple);
-extern bool verify_eh_edges (gimple);
-extern bool verify_eh_dispatch_edge (gimple);
-extern void maybe_remove_unreachable_handlers (void);
-
-/* In tree-ssa-pre.c  */
-void debug_value_expressions (unsigned int);
-
 /* In tree-loop-linear.c  */
 extern void linear_transform_loops (void);
 extern unsigned perfect_loop_nest_depth (struct loop *);
index 705332f878c694ac3ac9c0b42e855d2bc4545129..50717f0c78772dab0d6ecb6385f0cb1cdaac440f 100644 (file)
@@ -12247,4 +12247,22 @@ block_may_fallthru (const_tree block)
     }
 }
 
+/* True if we are using EH to handle cleanups.  */
+static bool using_eh_for_cleanups_flag = false;
+
+/* This routine is called from front ends to indicate eh should be used for
+   cleanups.  */
+void
+using_eh_for_cleanups (void)
+{
+  using_eh_for_cleanups_flag = true;
+}
+
+/* Query whether EH is used for cleanups.  */
+bool
+using_eh_for_cleanups_p (void)
+{
+  return using_eh_for_cleanups_flag;
+}
+
 #include "gt-tree.h"
index a71cd96414f6d145f623e6014a6521b17251cfda..8a6a8f3f25ef1a50d46767ae2b3fa6e6f1cda49f 100644 (file)
@@ -4216,15 +4216,6 @@ extern rtx expand_stack_save (void);
 extern void expand_stack_restore (tree);
 extern void expand_return (tree);
 
-/* In tree-eh.c */
-extern void using_eh_for_cleanups (void);
-
-extern bool tree_could_trap_p (tree);
-extern bool operation_could_trap_helper_p (enum tree_code, bool, bool, bool,
-                                          bool, tree, bool *);
-extern bool operation_could_trap_p (enum tree_code, bool, bool, tree);
-extern bool tree_could_throw_p (tree);
-
 /* Compare and hash for any structure which begins with a canonical
    pointer.  Assumes all pointers are interchangeable, which is sort
    of already assumed by gcc elsewhere IIRC.  */
@@ -4531,6 +4522,8 @@ extern bool types_same_for_odr (tree type1, tree type2);
 extern bool contains_bitfld_component_ref_p (const_tree);
 extern bool type_in_anonymous_namespace_p (tree);
 extern bool block_may_fallthru (const_tree);
+extern void using_eh_for_cleanups (void);
+extern bool using_eh_for_cleanups_p (void);
 
 /* In tree-nested.c */
 extern tree build_addr (tree, tree);