Java warning patch

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Mon Aug 30 19:01:00 GMT 1999


	This patch eliminates all the remaining -W -Wall warnings
in the java dir except for the "might be clobbered" ones.  It also
It also gets a couple of prototype and missing-noreturn nits.

	Okay to install?

		--Kaveh


1999-08-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* class.c (finish_class): Remove unused parameter, all callers
	changed.

	* expr.c (build_java_athrow): Change return type to void.
	(java_lang_expand_expr): Make sure each case in switch returns a
	value.

	* java-tree.h (finish_class): Fix prototype to take void args.

	* jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
	(main): Issue return from main, not exit.

	* jcf-parse.c (parse_class_file): Fix call to `finish_class'.

	* jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.

	* jv-scan.c (main): Issue return from main, not exit.

	* parse.y (check_abstract_method_definitions,
	java_check_abstract_method_definitions): Add static prototypes.
	(java_complete_expand_methods): Fix call to `finish_class'.

	* verify.c (verify_jvm_instructions): Initialize variables `oldpc'
	and `prevpc'.


diff -rup orig/egcs-CVS19990828/gcc/java/class.c egcs-CVS19990828/gcc/java/class.c
--- orig/egcs-CVS19990828/gcc/java/class.c	Thu Aug 19 07:42:15 1999
+++ egcs-CVS19990828/gcc/java/class.c	Sat Aug 28 17:24:53 1999
@@ -1198,8 +1198,7 @@ make_class_data (type)
 }
 
 void
-finish_class (cl)
-     tree cl;
+finish_class ()
 {
   tree method;
   tree type_methods = TYPE_METHODS (CLASS_TO_HANDLE_TYPE (current_class));
diff -rup orig/egcs-CVS19990828/gcc/java/expr.c egcs-CVS19990828/gcc/java/expr.c
--- orig/egcs-CVS19990828/gcc/java/expr.c	Sun Aug 15 07:41:43 1999
+++ egcs-CVS19990828/gcc/java/expr.c	Sat Aug 28 17:22:47 1999
@@ -46,7 +46,7 @@ static void push_value PROTO ((tree));
 static tree pop_value PROTO ((tree));
 static void java_stack_swap PROTO ((void));
 static void java_stack_dup PROTO ((int, int));
-static tree build_java_athrow PROTO ((tree));
+static void build_java_athrow PROTO ((tree));
 static void build_java_jsr PROTO ((tree, tree));
 static void build_java_ret PROTO ((tree));
 static void expand_java_multianewarray PROTO ((tree, int));
@@ -525,7 +525,7 @@ java_stack_dup (size, offset)
 
 /* Calls _Jv_Throw.  Discard the contents of the value stack. */
 
-static tree
+static void
 build_java_athrow (node)
     tree node;
 {
@@ -1982,7 +1982,7 @@ java_lang_expand_expr (exp, target, tmod
 	  expand_end_bindings (getdecls (), 1, 0);
 	  return const0_rtx;
 	}
-      break;
+      return const0_rtx;
 
     case CASE_EXPR:
       {
@@ -2033,7 +2033,7 @@ java_lang_expand_expr (exp, target, tmod
 	  end_catch_handler ();
 	}
       expand_end_all_catch ();
-      break;
+      return const0_rtx;
 
     default:
       fatal ("Can't expand '%s' tree - java_lang_expand_expr",
diff -rup orig/egcs-CVS19990828/gcc/java/java-tree.h egcs-CVS19990828/gcc/java/java-tree.h
--- orig/egcs-CVS19990828/gcc/java/java-tree.h	Sat Aug 28 17:15:17 1999
+++ egcs-CVS19990828/gcc/java/java-tree.h	Sat Aug 28 17:25:04 1999
@@ -586,7 +586,7 @@ extern void parse_error_context PVPROTO 
   ATTRIBUTE_PRINTF_2;
 extern tree build_primtype_type_ref PROTO ((const char *));
 extern tree java_get_real_method_name PROTO ((tree));
-extern void finish_class PROTO ((tree));
+extern void finish_class PROTO ((void));
 extern void java_layout_seen_class_methods PROTO ((void));
 extern void check_for_initialization PROTO ((tree));
 
diff -rup orig/egcs-CVS19990828/gcc/java/jcf-dump.c egcs-CVS19990828/gcc/java/jcf-dump.c
--- orig/egcs-CVS19990828/gcc/java/jcf-dump.c	Tue Aug 10 12:48:57 1999
+++ egcs-CVS19990828/gcc/java/jcf-dump.c	Sat Aug 28 17:07:21 1999
@@ -86,7 +86,7 @@ static void disassemble_method PROTO ((J
 static void print_name PROTO ((FILE*, JCF*, int));
 static void print_signature PROTO ((FILE*, JCF*, int, int));
 static int utf8_equal_string PROTO ((struct JCF*, int, const char *));
-static int usage PROTO ((void));
+static int usage PROTO ((void)) ATTRIBUTE_NORETURN;
 static void process_class PROTO ((struct JCF *));
 static void print_constant_pool PROTO ((struct JCF *));
 static void print_exception_table PROTO ((struct JCF *,
@@ -760,7 +760,7 @@ DEFUN(main, (argc, argv),
       else
 	{
 	  fprintf (stderr, "%s: illegal argument\n", argv[argi]);
-	  exit (FATAL_EXIT_CODE);
+	  return FATAL_EXIT_CODE;
 	}
     }
 
@@ -784,7 +784,7 @@ DEFUN(main, (argc, argv),
       if (out)
 	{
 	  fprintf (stderr, "Cannot open '%s' for output.\n", output_file);
-	  exit (FATAL_EXIT_CODE);
+	  return FATAL_EXIT_CODE;
 	}
     }
   else
@@ -811,7 +811,7 @@ DEFUN(main, (argc, argv),
 	  if (class_filename == NULL)
 	    {
 	      perror ("Could not find class");
-	      exit (FATAL_EXIT_CODE);
+	      return FATAL_EXIT_CODE;
 	    }
 	  JCF_FILL (jcf, 4);
 	  if (GET_u4 (jcf->read_ptr) == ZIPMAGIC)
@@ -834,7 +834,7 @@ DEFUN(main, (argc, argv),
 		  if (magic != 0x04034b50) /* ZIPMAGIC (little-endian) */
 		    {
 		      fprintf (stderr, "bad format of .zip/.jar archive\n");
-		      exit (FATAL_EXIT_CODE);
+		      return FATAL_EXIT_CODE;
 		    }
 		  JCF_FILL (jcf, 26);
 		  JCF_SKIP (jcf, 2);
@@ -908,7 +908,7 @@ DEFUN(main, (argc, argv),
 	}
     }
 
-  exit (SUCCESS_EXIT_CODE);
+  return SUCCESS_EXIT_CODE;
 }
 
 static void
diff -rup orig/egcs-CVS19990828/gcc/java/jcf-parse.c egcs-CVS19990828/gcc/java/jcf-parse.c
--- orig/egcs-CVS19990828/gcc/java/jcf-parse.c	Tue Aug 10 12:48:57 1999
+++ egcs-CVS19990828/gcc/java/jcf-parse.c	Sat Aug 28 17:25:23 1999
@@ -733,7 +733,7 @@ parse_class_file ()
   if (flag_emit_class_files)
     write_classfile (current_class);
 
-  finish_class (current_class);
+  finish_class ();
 
   debug_end_source_file (save_lineno);
   input_filename = save_input_filename;
diff -rup orig/egcs-CVS19990828/gcc/java/jcf.h egcs-CVS19990828/gcc/java/jcf.h
--- orig/egcs-CVS19990828/gcc/java/jcf.h	Tue Aug 10 12:48:58 1999
+++ egcs-CVS19990828/gcc/java/jcf.h	Sat Aug 28 17:04:04 1999
@@ -227,7 +227,7 @@ extern const char *find_class PROTO ((co
 extern const char *find_classfile PROTO ((char *, JCF*, const char *));
 extern int jcf_filbuf_from_stdio PROTO ((JCF *jcf, int count));
 extern void jcf_out_of_synch PROTO((JCF *));
-extern int jcf_unexpected_eof PROTO ((JCF*, int));
+extern int jcf_unexpected_eof PROTO ((JCF*, int)) ATTRIBUTE_NORETURN;
 
 /* Extract a character from a Java-style Utf8 string.
  * PTR points to the current character.
diff -rup orig/egcs-CVS19990828/gcc/java/jv-scan.c egcs-CVS19990828/gcc/java/jv-scan.c
--- orig/egcs-CVS19990828/gcc/java/jv-scan.c	Wed Aug 25 09:48:41 1999
+++ egcs-CVS19990828/gcc/java/jv-scan.c	Sat Aug 28 17:04:41 1999
@@ -95,7 +95,7 @@ DEFUN (main, (argc, argv),
 
   /* No flags? Do nothing */
   if (!flag_find_main && !flag_dump_class)
-    exit (0);
+    return 0;
 
   /* Check on bad usage */
   if (flag_find_main && flag_dump_class)
@@ -134,7 +134,7 @@ DEFUN (main, (argc, argv),
   if (!output_file)
     fclose (out);
 
-  exit (0);
+  return 0;
 }
 
 /* Error report, memory, obstack initialization and other utility
diff -rup orig/egcs-CVS19990828/gcc/java/parse.y egcs-CVS19990828/gcc/java/parse.y
--- orig/egcs-CVS19990828/gcc/java/parse.y	Thu Aug 26 15:42:13 1999
+++ egcs-CVS19990828/gcc/java/parse.y	Sat Aug 28 17:25:33 1999
@@ -262,6 +262,8 @@ static int java_decl_equiv PROTO ((tree,
 static int binop_compound_p PROTO ((enum tree_code));
 static tree search_loop PROTO ((tree));
 static int labeled_block_contains_loop_p PROTO ((tree, tree));
+static void check_abstract_method_definitions PROTO ((int, tree, tree));
+static void java_check_abstract_method_definitions PROTO ((tree));
 
 /* Number of error found so far. */
 int java_error_count; 
@@ -6064,7 +6066,7 @@ java_complete_expand_methods ()
 	  if (flag_emit_xref)
 	    expand_xref (current_class);
 	  else if (! flag_syntax_only)
-	    finish_class (current_class);
+	    finish_class ();
 	}
     }
 }
diff -rup orig/egcs-CVS19990828/gcc/java/verify.c egcs-CVS19990828/gcc/java/verify.c
--- orig/egcs-CVS19990828/gcc/java/verify.c	Sat Aug 28 07:42:35 1999
+++ egcs-CVS19990828/gcc/java/verify.c	Sat Aug 28 17:24:01 1999
@@ -354,8 +354,8 @@ verify_jvm_instructions (jcf, byte_ops, 
   int wide = 0;
   int op_code;
   int PC;
-  int oldpc; /* PC of start of instruction. */
-  int prevpc;  /* If >= 0, PC of previous instruction. */
+  int oldpc = 0; /* PC of start of instruction. */
+  int prevpc = 0;  /* If >= 0, PC of previous instruction. */
   const char *message;
   int i;
   register unsigned char *p;
diff -rup orig/egcs-CVS19990828/gcc/java/parse.c egcs-CVS19990828/gcc/java/parse.c
--- orig/egcs-CVS19990828/gcc/java/parse.c	Sat Aug 28 12:06:40 1999
+++ egcs-CVS19990828/gcc/java/parse.c	Sat Aug 28 17:25:41 1999
@@ -338,6 +338,8 @@ static int java_decl_equiv PROTO ((tree,
 static int binop_compound_p PROTO ((enum tree_code));
 static tree search_loop PROTO ((tree));
 static int labeled_block_contains_loop_p PROTO ((tree, tree));
+static void check_abstract_method_definitions PROTO ((int, tree, tree));
+static void java_check_abstract_method_definitions PROTO ((tree));
 
 /* Number of error found so far. */
 int java_error_count; 
@@ -8651,7 +8653,7 @@ java_complete_expand_methods ()
 	  if (flag_emit_xref)
 	    expand_xref (current_class);
 	  else if (! flag_syntax_only)
-	    finish_class (current_class);
+	    finish_class ();
 	}
     }
 }


More information about the Gcc-patches mailing list