+Mon Nov 10 03:02:19 1997 Jason Merrill <jason@yorick.cygnus.com>
+
+ * stmt.c (expand_decl_cleanup_no_eh): New fn.
+
+ * except.c (expand_leftover_cleanups): do_pending_stack_adjust.
+
+ Sun Oct 19 09:07:38 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * stmt.c (using_eh_for_cleanups_p): New variable.
+ (using_eh_for_cleanups): New function.
+ (expand_decl_cleanup): Don't call expand_eh_region_start_tree
+ unless using EH for cleanups.
+
Mon Nov 10 00:05:56 1997 Jeffrey A Law (law@cygnus.com)
* alias.c (MAX_ALIAS_LOOP_PASSES): Define.
when we rethrow.
(expand_builtin_throw): Don't refer to empty_fndecl.
+Sun Oct 26 01:28:29 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * decl.c (init_decl_processing): Call using_eh_for_cleanups.
+
Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com>
* pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
/* Prepare to check format strings against argument lists. */
init_function_format_info ();
+
+ /* Show we use EH for cleanups. */
+ using_eh_for_cleanups ();
}
/* initialize type descriptor type node of various rtti type. */
struct label_chain *next;
tree label;
};
+
+
+/* Non-zero if we are using EH to handle cleanus. */
+static int using_eh_for_cleanups_p = 0;
+
+
static void expand_goto_internal PROTO((tree, rtx, rtx));
static void bc_expand_goto_internal PROTO((enum bytecode_opcode,
struct bc_label *, tree));
extern rtx bc_allocate_local ();
extern rtx bc_allocate_variable_array ();
\f
+void
+using_eh_for_cleanups ()
+{
+ using_eh_for_cleanups_p = 1;
+}
+
void
init_stmt ()
{
/* If this was optimized so that there is no exception region for the
cleanup, then mark the TREE_LIST node, so that we can later tell
if we need to call expand_eh_region_end. */
- if (expand_eh_region_start_tree (decl, cleanup))
+ if (! using_eh_for_cleanups_p
+ || expand_eh_region_start_tree (decl, cleanup))
TREE_ADDRESSABLE (t) = 1;
if (cond_context)