decl.c (end_java_method): Do not save and restore flag_non_call_exceptions.
authorRichard Henderson <rth@redhat.com>
Wed, 28 Mar 2001 08:38:22 +0000 (00:38 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 28 Mar 2001 08:38:22 +0000 (00:38 -0800)
        * 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

gcc/java/ChangeLog
gcc/java/decl.c
gcc/java/lang.c
gcc/java/parse.y

index c114c6c15b1cd8e7dcc2193f0814f2eebf84e6ee..081dab16a930dbf03e7d75aff1313302015efbb3 100644 (file)
@@ -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
index a5b423bfa05a1c057af16ff6a4c0b76673744f35..c81c342110455bea2255661572575c91d82fbcd5 100644 (file)
@@ -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.  */
index 982f4513fe754ea7fb02ada1e5e3bea87a10ed17..2a3d5867ad3b3a53f16461436e6d6d350a815e2a 100644 (file)
@@ -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 *
index 4e688bba60e9b403189147dd311cb2652c969bc3..e09af7a8ebd91bf59c5ec417755efa6163188617 100644 (file)
@@ -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