This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Java warning patch
- To: apbianco@cygnus.com
- Subject: Java warning patch
- From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
- Date: Mon, 30 Aug 1999 22:01:30 -0400 (EDT)
- Cc: egcs-patches@egcs.cygnus.com
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 ();
}
}
}