+2001-03-28 Richard Henderson <rth@redhat.com>
+
+ * decl.c (end_java_method): Do not save and restore
+ flag_non_call_exceptions.
+ * parse.y (source_end_java_method): Likewise.
+ * lang.c (flag_exceptions): Don't declare.
+ (java_init_options): Set flag_non_call_exceptions. Set
+ flag_exceptions here ...
+ (java_init): ... not here.
+
2001-03-27 Richard Henderson <rth@redhat.com>
* expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
end_java_method ()
{
tree fndecl = current_function_decl;
- int flag_flag_non_call_exceptions = flag_non_call_exceptions;
expand_end_bindings (getdecls (), 1, 0);
/* pop out of function */
/* Generate rtl for function exit. */
expand_function_end (input_filename, lineno, 0);
- /* FIXME: If the current method contains any exception handlers,
- force flag_non_call_exceptions: this is necessary because signal
- handlers in libjava may throw exceptions. This is far from being
- a perfect solution, but it's better than doing nothing at all.*/
- if (catch_clauses)
- flag_non_call_exceptions = 1;
-
/* Run the optimizers and output assembler code for this function. */
rest_of_compilation (fndecl);
current_function_decl = NULL_TREE;
- flag_non_call_exceptions = flag_flag_non_call_exceptions;
}
/* Mark language-specific parts of T for garbage-collection. */
/* When non zero, always check for a non gcj generated classes archive. */
int flag_force_classes_archive_check;
-/* From gcc/flags.h, and indicates if exceptions are turned on or not. */
-
-extern int flag_exceptions;
-
/* Table of language-dependent -f options.
STRING is the option name. VARIABLE is the address of the variable.
ON_VALUE is the value to store in VARIABLE
print_error_function = lang_print_error;
lang_expand_expr = java_lang_expand_expr;
- flag_exceptions = 1;
-
/* Append to Gcc tree node definition arrays */
memcpy (tree_code_type + (int) LAST_AND_UNUSED_TREE_CODE,
java_init_options ()
{
flag_bounds_check = 1;
+ flag_exceptions = 1;
+ flag_non_call_exceptions = 1;
}
const char *
source_end_java_method ()
{
tree fndecl = current_function_decl;
- int flag_flag_non_call_exceptions = flag_non_call_exceptions;
if (!fndecl)
return;
emit_handlers ();
expand_function_end (input_filename, lineno, 0);
- /* FIXME: If the current method contains any exception handlers,
- force flag_non_call_exceptions: this is necessary because signal
- handlers in libjava may throw exceptions. This is far from being
- a perfect solution, but it's better than doing nothing at all.*/
- if (catch_clauses)
- flag_non_call_exceptions = 1;
-
/* Run the optimizers and output assembler code for this function. */
rest_of_compilation (fndecl);
}
current_function_decl = NULL_TREE;
java_parser_context_restore_global ();
- flag_non_call_exceptions = flag_flag_non_call_exceptions;
}
/* Record EXPR in the current function block. Complements compound