More java dir patches, part 3/5
Kaveh R. Ghazi
ghazi@caip.rutgers.edu
Tue Mar 9 12:50:00 GMT 1999
This is part 3/5, okay to install?
--Kaveh
Tue Mar 9 15:10:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
$(srcdir)/../system.h and $(JAVA_TREE_H).
(jcf-io.o): Depend on $(JAVA_TREE_H).
(mangle.o): Likewise.
* java-tree.h (make_class, build_constants_constructor,
java_set_exception_lang_code, pop_labeled_block, emit_handlers,
init_outgoing_cpool, register_class, emit_register_classes,
java_layout_seen_class_methods): Prototype.
(unicode_mangling_length): Const-ify.
(append_gpp_mangled_name, append_gpp_mangled_classtype,
emit_unicode_mangled_name, format_int, format_uint,
jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
jcf_print_utf8_replace, open_class): Prototype.
* jcf.h (find_classfile): Const-ify.
* jcf-dump.c: Include "config.h", not <config.h>. Don't include
<stdio.h>. Include tree.h/java-tree.h.
(utf8_equal_string usage, process_class): Add static prototype.
(open_class): Don't prototype this here.
(utf8_equal_string): Match arguments to format specifiers.
(HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
TABLE_SWITCH, disassemble_method): Likewise.
* jcf-io.c: Include tree.h/java-tree.h.
(open_class, find_classfile, jcf_print_utf8,
jcf_print_utf8_replace): Const-ify.
* mangle.c Include tree.h/java-tree.h.
(unicode_mangling_length, emit_unicode_mangled_name,
append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
* zipfile.h (opendir_in_zip, open_in_zip): Prototype.
diff -rup orig/egcs-CVS19990307/gcc/java/Makefile.in egcs-CVS19990307/gcc/java/Makefile.in
--- orig/egcs-CVS19990307/gcc/java/Makefile.in Sat Mar 6 10:58:05 1999
+++ egcs-CVS19990307/gcc/java/Makefile.in Tue Mar 9 12:47:16 1999
@@ -274,7 +274,8 @@ clean: mostlyclean
force:
parse.o : $(PARSE_C) jcf-reader.c $(CONFIG_H) $(srcdir)/../system.h
-jcf-dump.o : jcf-dump.c jcf-reader.c jcf.h javaop.h javaop.def
+jcf-dump.o : $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H) jcf-dump.c \
+ jcf-reader.c jcf.h javaop.h javaop.def
gjavah.o : $(CONFIG_H) $(srcdir)/../system.h gjavah.c \
jcf-reader.c jcf.h javaop.h
buffer.o : buffer.c $(CONFIG_H) buffer.h $(srcdir)/../gansidecl.h \
@@ -297,7 +298,7 @@ expr.o : expr.c $(CONFIG_H) $(JAVA_TREE_
java-except.h java-except.h parse.h $(srcdir)/../toplev.h \
$(srcdir)/../system.h
jcf-depend.o : jcf-depend.c $(CONFIG_H) $(srcdir)/../system.h jcf.h
-jcf-io.o : jcf-io.c $(CONFIG_H) $(srcdir)/../system.h
+jcf-io.o : jcf-io.c $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H)
jcf-parse.o : jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) $(srcdir)/../flags.h \
$(srcdir)/../input.h java-except.h $(srcdir)/../system.h \
$(srcdir)/../toplev.h $(PARSE_H)
@@ -307,7 +308,7 @@ jv-scan.o : jv-scan.c $(CONFIG_H) $(srcd
jvgenmain.o : jvgenmain.c $(CONFIG_H) $(srcdir)/../system.h
lang.o : lang.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(srcdir)/../input.h \
$(srcdir)/../toplev.h $(srcdir)/../system.h
-mangle.o : mangle.c $(CONFIG_H) jcf.h $(srcdir)/../system.h \
+mangle.o : mangle.c $(CONFIG_H) jcf.h $(JAVA_TREE_H) $(srcdir)/../system.h \
$(srcdir)/../toplev.h
parse-scan.o : $(CONFIG_H) $(srcdir)/../system.h $(srcdir)/../toplev.h
typeck.o : typeck.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h convert.h \
diff -rup orig/egcs-CVS19990307/gcc/java/java-tree.h egcs-CVS19990307/gcc/java/java-tree.h
--- orig/egcs-CVS19990307/gcc/java/java-tree.h Sat Mar 6 10:58:52 1999
+++ egcs-CVS19990307/gcc/java/java-tree.h Tue Mar 9 12:35:02 1999
@@ -483,7 +483,7 @@ extern void jcf_parse PROTO ((struct JCF
extern tree add_field PROTO ((tree, tree, tree, int));
extern tree add_method PROTO ((tree, int, tree, tree));
extern tree add_method_1 PROTO ((tree, int, tree, tree));
-extern tree make_class ();
+extern tree make_class PROTO ((void));
extern tree push_class PROTO ((tree, tree));
extern tree unmangle_classname PROTO ((const char *name, int name_length));
extern tree parse_signature_string PROTO ((const unsigned char *, int));
@@ -491,11 +491,10 @@ extern tree get_type_from_signature PROT
extern void layout_class PROTO ((tree));
extern tree layout_class_method PROTO ((tree, tree, tree, tree));
extern void layout_class_methods PROTO ((tree));
-extern tree make_class ();
extern tree build_class_ref PROTO ((tree));
extern tree build_dtable_decl PROTO ((tree));
extern tree build_internal_class_name PROTO ((tree));
-extern tree build_constants_constructor ();
+extern tree build_constants_constructor PROTO ((void));
extern tree build_ref_from_constant_pool PROTO ((int));
extern tree build_utf8_ref PROTO ((tree));
extern tree ident_subst PROTO ((const char*, int,
@@ -542,9 +541,9 @@ extern tree build_java_arraynull_check P
extern tree create_label_decl PROTO ((tree));
extern void push_labeled_block PROTO ((tree));
extern tree prepare_eh_table_type PROTO ((tree));
-extern void java_set_exception_lang_code PROTO (());
+extern void java_set_exception_lang_code PROTO ((void));
extern tree generate_name PROTO ((void));
-extern void pop_labeled_block PROTO (());
+extern void pop_labeled_block PROTO ((void));
extern char *lang_printable_name PROTO ((tree, int));
extern tree maybe_add_interface PROTO ((tree, tree));
extern void set_super_info PROTO ((int, tree, tree, int));
@@ -553,12 +552,12 @@ extern int interface_of_p PROTO ((tree,
extern int inherits_from_p PROTO ((tree, tree));
extern void complete_start_java_method PROTO ((tree));
extern tree build_result_decl PROTO ((tree));
-extern void emit_handlers PROTO (());
-extern void init_outgoing_cpool PROTO (());
+extern void emit_handlers PROTO ((void));
+extern void init_outgoing_cpool PROTO ((void));
extern void make_class_data PROTO ((tree));
-extern void register_class PROTO (());
+extern void register_class PROTO ((void));
extern int alloc_name_constant PROTO ((int, tree));
-extern void emit_register_classes PROTO (());
+extern void emit_register_classes PROTO ((void));
extern void lang_init_source PROTO ((int));
extern void write_classfile PROTO ((tree));
extern char *print_int_node PROTO ((tree));
@@ -567,12 +566,12 @@ extern void parse_error_context PVPROTO
extern tree build_primtype_type_ref PROTO ((char *));
extern tree java_get_real_method_name PROTO ((tree));
extern void finish_class PROTO ((tree));
-extern void java_layout_seen_class_methods PROTO (());
+extern void java_layout_seen_class_methods PROTO ((void));
extern void check_for_initialization PROTO ((tree));
extern tree pushdecl_top_level PROTO ((tree));
extern int alloc_class_constant PROTO ((tree));
-extern int unicode_mangling_length PROTO ((char *, int));
+extern int unicode_mangling_length PROTO ((const char *, int));
extern void init_expr_processing PROTO ((void));
extern void push_super_field PROTO ((tree, tree));
extern void init_class_processing PROTO ((void));
@@ -587,8 +586,9 @@ extern int merge_type_state PROTO ((tree
extern void push_type PROTO ((tree));
extern void load_type_state PROTO ((tree));
extern void add_interface PROTO ((tree, tree));
-extern void append_gpp_mangled_classtype PROTO ((struct obstack *, char *));
-extern void emit_unicode_mangled_name PROTO ((struct obstack *, char *, int));
+extern void append_gpp_mangled_name PROTO ((struct obstack *, const char *, int));
+extern void append_gpp_mangled_classtype PROTO ((struct obstack *, const char *));
+extern void emit_unicode_mangled_name PROTO ((struct obstack *, const char *, int));
extern tree force_evaluation_order PROTO ((tree));
extern int verify_constant_pool PROTO ((struct JCF *));
extern void start_java_method PROTO ((tree));
@@ -609,6 +609,22 @@ extern int find_methodref_index PROTO ((
extern void write_constant_pool PROTO ((struct CPool *, unsigned char *, int));
extern int count_constant_pool_bytes PROTO ((struct CPool *));
extern int encode_newarray_type PROTO ((tree));
+#ifdef uint64
+extern void format_int PROTO ((char *, jlong, int));
+extern void format_uint PROTO ((char *, uint64, int));
+#endif
+extern void jcf_trim_old_input PROTO ((struct JCF *));
+#ifdef BUFSIZ
+extern void jcf_print_utf8 PROTO ((FILE *, const unsigned char *, int));
+extern void jcf_print_char PROTO ((FILE *, int));
+extern void jcf_print_utf8_replace PROTO ((FILE *, const unsigned char *,
+ int, int, int));
+# if JCF_USE_STDIO
+extern char* open_class PROTO ((char *, struct JCF *, FILE *, const char *));
+# else
+extern char* open_class PROTO ((char *, struct JCF *, int, const char *));
+# endif /* JCF_USE_STDIO */
+#endif
/* Access flags etc for a method (a FUNCTION_DECL): */
diff -rup orig/egcs-CVS19990307/gcc/java/jcf.h egcs-CVS19990307/gcc/java/jcf.h
--- orig/egcs-CVS19990307/gcc/java/jcf.h Mon Feb 22 16:44:28 1999
+++ egcs-CVS19990307/gcc/java/jcf.h Tue Mar 9 10:46:53 1999
@@ -224,7 +224,7 @@ typedef struct JCF {
#define DEFAULT_CLASS_PATH "."
extern char *find_class PROTO ((const char *, int, JCF*, int));
-extern char *find_classfile PROTO ((char *, JCF*, char *));
+extern 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));
diff -rup orig/egcs-CVS19990307/gcc/java/jcf-dump.c egcs-CVS19990307/gcc/java/jcf-dump.c
--- orig/egcs-CVS19990307/gcc/java/jcf-dump.c Tue Mar 9 11:40:43 1999
+++ egcs-CVS19990307/gcc/java/jcf-dump.c Tue Mar 9 12:38:00 1999
@@ -46,11 +46,12 @@ The Free Software Foundation is independ
*/
-#include <config.h>
+#include "config.h"
#include "system.h"
-#include <stdio.h>
#include "jcf.h"
+#include "tree.h"
+#include "java-tree.h"
/* Outout file. */
FILE *out;
@@ -84,15 +85,16 @@ static void print_constant_ref PROTO ((F
static void disassemble_method PROTO ((JCF*, unsigned char *, int));
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 void process_class PROTO ((struct JCF *));
#define PRINT_SIGNATURE_RESULT_ONLY 1
#define PRINT_SIGNATURE_ARGS_ONLY 2
-extern char* open_class();
-
-int
+static int
DEFUN(utf8_equal_string, (jcf, index, value),
- JCF *jcf AND int index AND char * value)
+ JCF *jcf AND int index AND const char * value)
{
if (CPOOL_INDEX_IN_RANGE (&jcf->cpool, index)
&& JPOOL_TAG (jcf, index) == CONSTANT_Utf8)
@@ -109,8 +111,8 @@ DEFUN(utf8_equal_string, (jcf, index, va
this_class_index = 0; \
if (flag_print_class_info) \
fprintf (out, \
- "Magic number: 0x%0x, minor_version: %d, major_version: %d.\n", \
- MAGIC, MINOR, MAJOR)
+ "Magic number: 0x%0lx, minor_version: %ld, major_version: %ld.\n",\
+ (long) MAGIC, (long) MINOR, (long) MAJOR)
#define HANDLE_START_CONSTANT_POOL(COUNT) \
if (flag_print_constant_pool) \
@@ -238,8 +240,8 @@ DEFUN(utf8_equal_string, (jcf, index, va
#define HANDLE_CODE_ATTRIBUTE(MAX_STACK, MAX_LOCALS, CODE_LENGTH) \
{ COMMON_HANDLE_ATTRIBUTE(JCF, attribute_name, attribute_length); \
- fprintf (out, ", max_stack:%d, max_locals:%d, code_length:%d\n", \
- MAX_STACK, MAX_LOCALS, CODE_LENGTH); \
+ fprintf (out, ", max_stack:%ld, max_locals:%ld, code_length:%ld\n", \
+ (long) MAX_STACK, (long) MAX_LOCALS, (long) CODE_LENGTH); \
disassemble_method (jcf, jcf->read_ptr, CODE_LENGTH); }
#define HANDLE_EXCEPTION_TABLE(ENTRIES, COUNT) \
@@ -337,7 +339,7 @@ DEFUN(print_name, (stream, jcf, name_ind
/* If the type of the constant at INDEX matches EXPECTED,
print it tersely, otherwise more verbosely. */
-void
+static void
DEFUN(print_constant_terse, (out, jcf, index, expected),
FILE *out AND JCF *jcf AND int index AND int expected)
{
@@ -648,14 +650,14 @@ DEFUN(print_exception_table, (jcf, entri
#include "jcf-reader.c"
-int
+static int
DEFUN (usage, (), )
{
fprintf (stderr, "Usage: jcf-dump [-o outputfile] [-c] classname\n");
exit(1);
}
-void
+static void
DEFUN(process_class, (jcf),
JCF *jcf)
{
@@ -1013,24 +1015,24 @@ DEFUN(disassemble_method, (jcf, byte_ops
#define BRANCH(OPERAND_TYPE, OPERAND_VALUE) \
saw_index = 0, INT_temp = (OPERAND_VALUE); \
- fprintf (out, " %d", saw_index ? INT_temp : oldpc + INT_temp)
+ fprintf (out, " %ld", (long) (saw_index ? INT_temp : oldpc + INT_temp))
#define JSR(OPERAND_TYPE, OPERAND_VALUE) \
saw_index = 0, INT_temp = (OPERAND_VALUE); \
- fprintf (out, " %d", saw_index ? INT_temp : oldpc + INT_temp)
+ fprintf (out, " %ld", (long) (saw_index ? INT_temp : oldpc + INT_temp))
#undef RET /* Defined by config/i386/i386.h */
#define RET(OPERAND_TYPE, OPERAND_VALUE) \
INT_temp = saw_wide ? IMMEDIATE_u2 : (OPERAND_VALUE); \
saw_wide = 0; \
- fprintf (out, " %d", INT_temp);
+ fprintf (out, " %ld", (long) INT_temp);
#define SWITCH(OPERAND_TYPE, TABLE_OR_LOOKUP) \
PC = (PC + 3) / 4 * 4; TABLE_OR_LOOKUP##_SWITCH
#define LOOKUP_SWITCH \
{ jint default_offset = IMMEDIATE_s4; jint npairs = IMMEDIATE_s4; \
- fprintf (out, " npairs=%d, default=%d", npairs, default_offset+oldpc); \
+ fprintf (out, " npairs=%ld, default=%ld", (long) npairs, (long) default_offset+oldpc); \
while (--npairs >= 0) { \
jint match = IMMEDIATE_s4; jint offset = IMMEDIATE_s4; \
fprintf (out, "\n%10ld: %ld", (long)match, (long)(offset+oldpc)); } \
@@ -1039,8 +1041,8 @@ DEFUN(disassemble_method, (jcf, byte_ops
#define TABLE_SWITCH \
{ jint default_offset = IMMEDIATE_s4; \
jint low = IMMEDIATE_s4; jint high = IMMEDIATE_s4; \
- fprintf (out, " low=%d, high=%d, default=%d", \
- low, high, default_offset+oldpc); \
+ fprintf (out, " low=%ld, high=%ld, default=%ld", \
+ (long) low, (long) high, (long) default_offset+oldpc); \
for (; low <= high; low++) { \
jint offset = IMMEDIATE_s4; \
fprintf (out, "\n%10ld: %ld", (long)low, (long)(offset+oldpc)); } \
@@ -1077,7 +1079,7 @@ DEFUN(disassemble_method, (jcf, byte_ops
else
{
saw_wide = 0;
- fprintf (out, " %d", INT_temp);
+ fprintf (out, " %ld", (long) INT_temp);
}
fputc ('\n', out);
break;
diff -rup orig/egcs-CVS19990307/gcc/java/jcf-io.c egcs-CVS19990307/gcc/java/jcf-io.c
--- orig/egcs-CVS19990307/gcc/java/jcf-io.c Tue Feb 2 13:53:29 1999
+++ egcs-CVS19990307/gcc/java/jcf-io.c Tue Mar 9 12:47:48 1999
@@ -26,6 +26,8 @@ The Free Software Foundation is independ
#include "system.h"
#include "jcf.h"
+#include "tree.h"
+#include "java-tree.h"
/* DOS brain-damage */
#ifndef O_BINARY
@@ -182,7 +184,7 @@ DEFUN(open_in_zip, (jcf, zipfile, zipmem
#if JCF_USE_STDIO
char*
DEFUN(open_class, (filename, jcf, stream, dep_name),
- char *filename AND JCF *jcf AND FILE* stream AND char *dep_name)
+ char *filename AND JCF *jcf AND FILE* stream AND const char *dep_name)
{
if (jcf)
{
@@ -203,7 +205,7 @@ DEFUN(open_class, (filename, jcf, stream
#else
char*
DEFUN(open_class, (filename, jcf, fd, dep_name),
- char *filename AND JCF *jcf AND int fd AND char *dep_name)
+ char *filename AND JCF *jcf AND int fd AND const char *dep_name)
{
if (jcf)
{
@@ -240,7 +242,7 @@ DEFUN(open_class, (filename, jcf, fd, de
char *
DEFUN(find_classfile, (filename, jcf, dep_name),
- char *filename AND JCF *jcf AND char *dep_name)
+ char *filename AND JCF *jcf AND const char *dep_name)
{
#if JCF_USE_STDIO
FILE *stream = fopen (filename, "rb");
@@ -458,9 +460,9 @@ DEFUN(jcf_print_char, (stream, ch),
void
DEFUN(jcf_print_utf8, (stream, str, length),
- FILE *stream AND register unsigned char *str AND int length)
+ FILE *stream AND register const unsigned char *str AND int length)
{
- unsigned char* limit = str + length;
+ const unsigned char * limit = str + length;
while (str < limit)
{
int ch = UTF8_GET (str, limit);
@@ -477,7 +479,7 @@ DEFUN(jcf_print_utf8, (stream, str, leng
void
DEFUN(jcf_print_utf8_replace, (stream, str, length, in_char, out_char),
- FILE *stream AND unsigned char *str AND int length
+ FILE *stream AND const unsigned char *str AND int length
AND int in_char AND int out_char)
{
diff -rup orig/egcs-CVS19990307/gcc/java/mangle.c egcs-CVS19990307/gcc/java/mangle.c
--- orig/egcs-CVS19990307/gcc/java/mangle.c Sat Jan 23 16:49:51 1999
+++ egcs-CVS19990307/gcc/java/mangle.c Tue Mar 9 11:12:03 1999
@@ -28,6 +28,8 @@ The Free Software Foundation is independ
#include "config.h"
#include "system.h"
#include "jcf.h"
+#include "tree.h"
+#include "java-tree.h"
#include "obstack.h"
#include "toplev.h"
@@ -37,15 +39,15 @@ The Free Software Foundation is independ
int
unicode_mangling_length (name, len)
- char *name;
+ const char *name;
int len;
{
- unsigned char *ptr;
- unsigned char *limit = (unsigned char *)name + len;
+ const unsigned char *ptr;
+ const unsigned char *limit = (const unsigned char *)name + len;
int need_escapes = 0;
int num_chars = 0;
int underscores = 0;
- for (ptr = (unsigned char *) name; ptr < limit; )
+ for (ptr = (const unsigned char *) name; ptr < limit; )
{
int ch = UTF8_GET(ptr, limit);
if (ch < 0)
@@ -70,12 +72,12 @@ unicode_mangling_length (name, len)
void
emit_unicode_mangled_name (obstack, name, len)
struct obstack *obstack;
- char *name;
+ const char *name;
int len;
{
- unsigned char *ptr;
- unsigned char *limit = (unsigned char *)name + len;
- for (ptr = (unsigned char *) name; ptr < limit; )
+ const unsigned char *ptr;
+ const unsigned char *limit = (const unsigned char *)name + len;
+ for (ptr = (const unsigned char *) name; ptr < limit; )
{
int ch = UTF8_GET(ptr, limit);
int emit_escape;
@@ -107,7 +109,7 @@ emit_unicode_mangled_name (obstack, name
void
append_gpp_mangled_name (obstack, name, len)
struct obstack *obstack;
- char *name;
+ const char *name;
int len;
{
int encoded_len = unicode_mangling_length (name, len);
@@ -132,9 +134,9 @@ append_gpp_mangled_name (obstack, name,
void
append_gpp_mangled_classtype (obstack, class_name)
struct obstack *obstack;
- char *class_name;
+ const char *class_name;
{
- char *ptr;
+ const char *ptr;
int qualifications = 0;
for (ptr = class_name; *ptr != '\0'; ptr++)
diff -rup orig/egcs-CVS19990307/gcc/java/zipfile.h egcs-CVS19990307/gcc/java/zipfile.h
--- orig/egcs-CVS19990307/gcc/java/zipfile.h Sat Jan 23 16:49:56 1999
+++ egcs-CVS19990307/gcc/java/zipfile.h Tue Mar 9 13:41:31 1999
@@ -57,5 +57,9 @@ extern struct ZipFileCache *SeenZipFiles
((ZipDirectory*)((char*)(ZIPD)+(ZIPD)->direntry_size))
#define ZIPMAGIC 0x504b0304
-extern ZipFile * opendir_in_zip ();
+extern ZipFile * opendir_in_zip PROTO ((const char *, int));
extern int read_zip_archive PROTO ((ZipFile *));
+#ifdef JCF_ZIP
+extern int open_in_zip PROTO ((struct JCF *, const char *,
+ const char *, int));
+#endif
More information about the Gcc-patches
mailing list