aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-03-28 00:38:22 -0800
committerRichard Henderson <rth@gcc.gnu.org>2001-03-28 00:38:22 -0800
commitda7da8f9773d5e6b2edde3d332df6f2f85ed3c51 (patch)
tree961a35efbd1e3fc52963c3b678c4aa54dd5c7cfe /gcc/java
parent826840d96aa1722381e57d96df700528c4581c33 (diff)
downloadgcc-da7da8f9773d5e6b2edde3d332df6f2f85ed3c51.zip
gcc-da7da8f9773d5e6b2edde3d332df6f2f85ed3c51.tar.gz
gcc-da7da8f9773d5e6b2edde3d332df6f2f85ed3c51.tar.bz2
decl.c (end_java_method): Do not save and restore flag_non_call_exceptions.
* 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. From-SVN: r40921
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog10
-rw-r--r--gcc/java/decl.c9
-rw-r--r--gcc/java/lang.c8
-rw-r--r--gcc/java/parse.y9
4 files changed, 12 insertions, 24 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index c114c6c..081dab1 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,13 @@
+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
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index a5b423b..c81c342 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -1827,7 +1827,6 @@ void
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 */
@@ -1843,18 +1842,10 @@ end_java_method ()
/* 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. */
diff --git a/gcc/java/lang.c b/gcc/java/lang.c
index 982f451..2a3d586 100644
--- a/gcc/java/lang.c
+++ b/gcc/java/lang.c
@@ -150,10 +150,6 @@ int flag_extraneous_semicolon;
/* 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
@@ -655,8 +651,6 @@ java_init ()
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,
@@ -704,6 +698,8 @@ static void
java_init_options ()
{
flag_bounds_check = 1;
+ flag_exceptions = 1;
+ flag_non_call_exceptions = 1;
}
const char *
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 4e688bb..e09af7a 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -7117,7 +7117,6 @@ static void
source_end_java_method ()
{
tree fndecl = current_function_decl;
- int flag_flag_non_call_exceptions = flag_non_call_exceptions;
if (!fndecl)
return;
@@ -7153,20 +7152,12 @@ source_end_java_method ()
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