]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/java/ChangeLog
Make -fsjlj-exceptions a configure option.
[thirdparty/gcc.git] / gcc / java / ChangeLog
CommitLineData
531073e7
RH
12001-03-27 Richard Henderson <rth@redhat.com>
2
3 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
4 exceptions_via_longjmp.
5
c1e9f663
RH
62001-03-27 Richard Henderson <rth@redhat.com>
7
8 * decl.c (end_java_method): Rename asynchronous_exceptions to
9 flag_non_call_exceptions.
979988f3 10 * parse.y (source_end_java_method): Likewise.
c1e9f663 11
911e6107
KG
122001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13
14 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
15
b850de4f
MM
162001-03-26 Mark Mitchell <mark@codesourcery.com>
17
18 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
19
ce06965e
APB
202001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
21
22 * parse.y (find_as_inner_class): Follow current package
23 indications not to mistakingly load an unrelated class.
24
cb9b7a8c
KG
252001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26
27 * constants.c (PUTN): Use memcpy, not bcopy.
28
29 * lex.c (java_read_char): Use memmove, not bcopy.
30
31 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
32
fa029f45
PB
332001-03-23 Per Bothner <per@bothner.com>
34
35 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
36 macro for better error pin-pointing.
37 * java-tree.h: Fix typo in comment.
38
39 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
40 Don't include jsr/goto in exception range.
41 Check if start and end of exception range are the same (also TRY_EXPR).
42 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
43 However, do emit the following goto even if try_block is empty.
44 Defer freeing exception_decl until after the finalizer, to make
45 sure the local isn't reused in the finalizer. Fixes PR java/1208.
46
47 * parse.y (java_complete_lhs): If the try-clause is empty, just
48 return the finally-clause and vice versa.
49
b124f72e
APB
502001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
51
52 * gcj.texi (Input Options): documented the check for attribute
53 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
54 * java-tree.h (flag_force_classes_archive_check): Declared extern.
55 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
56 (jcf_parse): Check for the right classes archive if necessary.
57 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
58 (jcf_parse_fields): Fixed indentation.
59 * jcf-write.c (append_gcj_attribute): New function.
60 (generate_classfile): Compute the attribute count, invoke
61 `append_gcj_attribute'.
62 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
63 turned into bit fields. New bit field `right_zip.'
64 (JCF_ZERO): Set `right_zip' to zero.
65 * lang-options.h (-fforce-classes-archive-check): Added flag.
66 * lang.c (flag_force_classes_archive_check): New flag.
67 (lang_f_options): New entry `force-classes-archive-check.'
68 Fixes PR java/1213.
69
4ff17c6a
AH
702001-02-07 Andrew Haley <aph@redhat.com>
71
72 * gcj.texi (Configure-time Options): Add -fcheck-references.
73 * expr.c (build_java_indirect_ref): New function.
3e02b1c3 74 (java_check_reference): New function.
4ff17c6a
AH
75 (build_java_array_length_access): Use build_java_indirect_ref to
76 check for null references.
77 (build_java_arrayaccess): Likewise.
78 (build_get_class): Likewise.
79 (build_field_ref): Likewise.
80 (invoke_build_dtable): Likewise.
81 (build_invokeinterface): Likewise.
82 * lang.c (lang_f_options): Add flag_check_references.
83 * jvspec.c (jvgenmain_spec): Add flag_check_references.
84 * java-tree.h (flag_check_references): New variable.
85 * lang.c (flag_check_references): Likewise.
3e02b1c3
AH
86 * parse.y (patch_invoke): Use java_check_reference.
87 (patch_assignment): Allow for extra nesting in
88 _Jv_CheckArrayStore.
4ff17c6a 89
f2a29271
BM
902001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
91
92 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
93 * lex.c (cxx_keywords): Likewise.
94
60c87482
BM
952001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
96
97 * gjavah.c (process_file): Mark interface definitions with
98 "__attribute__ ((java_interface))".
99
96c6f628
APB
1002001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
101
102 * class.c (layout_class): Fixed push_super_field's second
103 argument. Fixes PR java/2333.
104 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
105 too early to lay innerclasses out.
106
4aed8938
TT
1072001-03-20 Tom Tromey <tromey@redhat.com>
108
109 * lex.c (java_read_unicode): Only accept leading `u's.
110
ddd705d1
TT
1112001-03-20 Tom Tromey <tromey@redhat.com>
112
113 * jcf-parse.c (read_class): Initialize `class'.
114
de83bf66
MK
1152001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
116
117 * jcf_parse.c (jcf_parse): Eliminate unused variable.
118
92643fea
MM
1192001-03-19 Mark Mitchell <mark@codesourcery.com>
120
121 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
122 (layout_class): Likewise.
123 (layout_class_method): Likewise.
124 (emit_register_classes): Likewise.
125 * decl.c (builtin_function): Likewise.
126 (give_name_to_locals): Likewise.
127
54646811
PB
1282001-03-19 Per Bothner <per@bothner.com>
129
80fc2e84
PB
130 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
131 before trying to load an inner class.
132
54646811
PB
133 Fixes to process to command-line .class files in two passes.
134 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
135 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
136 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
137 * class.c (is_compiled_class): Fix for renamed flag.
138 * parse.y (maybe_create_class_interface_decl): Likewise.
139 * jcf-parse.c (yyparse): Also set if compiling .class files.
140 * jcf-parse.c (read_class); Read current_class.
141 (jcf_parse): Make static.
142 (load_inner_classes): New function, with code moved from jcf_parse,
143 because we need to inner classes after the command-line files are read.
144 (yyparse): Set finput to NULL when it doesn't need to be closed.
145 Reduce use of main_jcf (basically only for archive) and
146 use finput instead of main_jcf->read_state.
147 Inline jcf_figure_file_type into yyparse.
148 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
149 Defer load_inner_classes and parse_class_file to a second pass,
150 after we've correctly mapped command-line .clas fiels to classes.
151 (jcf_figure_file_type): Removed.
152 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
153 (JCF_ZERO): Also clear zipd field.
154 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
155
1562001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
157
158 * jcf-parse.c (yyparse): Change ch from char * to char.
159
8b1edcee
PB
1602001-03-19 Per Bothner <per@bothner.com>
161
162 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
163 Add constructed filelist-file at end, following -xjava. Thus any .o
164 and library files are not affected by the -xjava. Also wrap
54646811 165 explicit @FILE with -xjava and -xnone.
8b1edcee 166
6bc5f6cb
AH
1672001-03-19 Andrew Haley <aph@cambridge.redhat.com>
168
169 * class.c (build_static_field_ref): Call make_decl_rtl() after
170 setting the DECL_EXTERNAL flag.
171
daaaf29f
PB
1722001-03-17 Per Bothner <per@bothner.com>
173
90f59043
PB
174 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
175
478e7ed6
PB
176 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
177 when result is is needed (target is STACK_TARGET).
178
daaaf29f 179 * parse.h (JDEP_SOLV): Removed.
d148b6aa 180 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
daaaf29f 181
d148b6aa
PB
182 * parse.y (incomplete_class_list): Removed.
183 (obtain_incomplete_type): Don't use or set incomplete_class_list.
184 It doesn't work if resolve_class changes the name of an array type
185 that is on the list and then someone else looks for the modified name.
186 Also, seems liable to break when compiling multiple source files at
187 once. So the simplest is to just remove incomplete_class_list -
188 it is only a minor space win and it is not even clear it saves time.
daaaf29f
PB
189
190 * parse.y (resolve_class): Remove unneeded promote_type.
191
4763d38f
PB
1922001-03-15 Per Bothner <per@bothner.com>
193
b16e8f08
PB
194 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
195 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
196 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
197 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
8b1edcee 198
3a2e5926
PB
199 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
200 * parse.y (java_expand_classes): Likewise.
8b1edcee 201
47a50de9
PB
202 * parse.y (expand_start_java_method): Was only called once and had a
203 misleading name, so inline in caller java_complete_expand_method.
3a2e5926 204 (enter_a_block): Likewise inline in enter_block and remove.
47a50de9 205
4763d38f
PB
206 Remove junk from when gcc/java was created (by copying from C/C++).
207 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
208 (struct binding_level): Remove fields keep, keep_if_subblocks,
209 more_cleanups_ok, have_cleanups (which have never been used).
210 (pushlevel, poplevel): Remove related useless code.
19f8e04b 211
69ca5554
PB
212 * class.c (make_class_data): The class_dtable_decl (i.e. the
213 vtable for Class) should be external, except when compiling Class.
214
7d32abcd
PB
215 * jvspec.c (lang_specific_driver): Fix -C handling.
216 Check -save-temps to see if temp @FILE should be deleted.
217 Follow-up to/fix for February 16 patch.
218
19f8e04b
PB
219 * verify.c (verify_jvm_instructions): Better error msgs for dup.
220 (type_stack_dup): Remove no-longer neded error check.
221
551bf03c
BM
2222001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
223
224 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
225 to 'for_pointer'. If this type is for a pointer (argument) mangling,
226 don't surround the element with 'N..E' if the type name is
227 unqualified.
228
19e7881c
MM
2292001-03-14 Mark Mitchell <mark@codesourcery.com>
230
d1d61788
MM
231 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
232 DECL_RTL_SET_P, etc.
19e7881c
MM
233 (make_method_value): Likewise.
234 (get_dispatch_table): Likewise.
235
236 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
8b1edcee 237
bcacc465
TT
2382001-03-07 Tom Tromey <tromey@redhat.com>
239
240 * config-lang.in (lang_requires): Define.
241
de6c5979
BL
2422001-03-07 Brad Lucier <lucier@math.purdue.edu>
243
244 * typeck.c (convert): Check flag_unsafe_math_optimizations,
245 not flag_fast_math.
246
6d37cf2f
PB
2472001-03-05 Per Bothner <per@bothner.com>
248
249 Fix a problem where rest_of_decl_compilation applied to
250 class_dtable_decl causes problems because it was done too early,
251 before output file was opened.
252 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
253 * class.c (class_dtable_decl): Add macro - element of class_roots.
254 (make_class_data): Define class_dtable_decl.
255 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
256
d6edb99e
ZW
2572001-03-01 Zack Weinberg <zackw@stanford.edu>
258
259 * java/class.c, java/decl.c, java/java-tree.h: Replace all
260 uses of 'boolean' with 'bool'.
261
f7143427
ZW
2622001-03-01 Zack Weinberg <zackw@stanford.edu>
263
264 * lang-specs.h: Add zero initializer for cpp_spec field to all
265 array elements.
266
fea2d5da
PB
2672001-02-16 Per Bothner <per@bothner.com>
268
269 Handle compiling multiple input files at once, and @FILE syntax.
e4087691 270 * gcj.texi: Updated documentation to match.
fea2d5da
PB
271 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
272 * jcf-parse.c (parse_source_file): Split into ...
273 (parse_source_file_1): New function - and:
274 (parse_source_file_2): New function.
275 (yyparse): On -ffilelist-file, open and scan named file.
276 On first pass over files, only do parse_source_file_1.
277 A new second pass calls parse_source_file_2 for each file to compile.
278 (init_jcf_parse): Call init_src_parse.
279 * jvspec.c (INDIRECT_FILE_ARG): New flag.
280 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
281 as multiple input file combined in one compilation.
282 * lang-options.h: Add -ffilelist-file
283 * lang.c (flag_filelist_file): New flag variable.
284 (lang_f_options): Handle -ffilelist-file.
285 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
286 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
287 gclass_list - use global fields of src_parse_roots instead.
288 * parse.y (src_parse_roots): New array.
289 (incomplete_class_list, gclass_list): New macros.
290 (push_parser_context, java_pop_parser_context,
291 java_parser_context_resume): Don't fiddle with deleted fields.
292 (various): Use incomplete_class gclass_list and global macros
293 instead of parse_ctxt fields - the lists are global.
294 (init_src_parse): New function.
295
9b58f739
RK
296Fri Feb 23 15:28:39 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
297
298 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
299
064a552c
APB
3002001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
301
302 * parse.y (check_inner_class_access): Moved declaration of local
303 `enclosing_decl_type' to the right location.
304
a648f4e4
BM
3052001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
306
307 * parse.y (parser_check_super_interface): Don't call
308 check_pkg_class_access for an inner interface.
309 (parser_check_super): Don't call check_pkg_class_access for inner
310 class.
311 (do_resolve_class): Simplify enclosing type loop. Don't call
312 check_pkg_class_access if CL and DECL are not set.
313 (find_in_imports_on_demand): Set DECL if class_type needed to be
314 loaded. Don't call check_pkg_class_access for an inner class.
315 (check_inner_class_access): Rewritten to implement member access
316 rules as per spec 6.6.1.
317 (check_pkg_class_access): Handle the empty package correctly.
318 (in_same_package): New function. Determine if two classes are in the
319 same package.
320
35ab11f0
BM
3212001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
322
323 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
324 method into array types.
325 * parse.y (patch_method_invocation): Bypass access check on clone call
326 to array instance.
327
055adbaa
APB
3282001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
329
330 * expr.c (build_instanceof): Check for arrays when trying fold to
331 false.
332
e658449e
JM
3332001-02-15 Jim Meyering <meyering@lucent.com>
334
fd48c9b5
DD
335 * Make-lang.in (java.install-common): Depend on `installdirs'.
336 (java.install-info): Likewise.
e658449e 337
4238a754
BM
3382001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
339
340 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
341
e101152f
APB
3422001-02-14 Tom Tromey <tromey@redhat.com>
343 Alexandre Petit-Bianco <apbianco@cygnus.com>
344
055adbaa
APB
345 Fix for PR java/1261.
346 * typeck.c (build_java_array_type): Add public `clone' method to
347 arrays.
348 * parse.y (resolve_qualified_expression_name): Use current_class
e101152f 349 when checking for inaccessibility.
055adbaa 350 (patch_method_invocation): Fixed error message when accessibility
e101152f
APB
351 denied. Added `from_super' argument.
352
3532001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
354
355 * parse.y (resolve_class): Don't build a fake decl. Use the one
356 already built.
357 * typeck.c (build_java_array_type): Build and assign decl to array
358 type.
359
3602001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
361
362 * parse.y (not_accessible_p): Changed leading comment. Added extra
363 `where' argument. Use it to enforce protected access rules.
364 (resolve_qualified_expression_name): Added extra argument to
365 not_accessible_p.
366 (patch_method_invocation): Use argument `primary' to provide
367 not_accessible_p with an extra argument.
368 (lookup_method_invoke): Added extra argument to not_accessible_p.
369 (search_applicable_method_list): Likewise.
370
863cd85a
APB
3712001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
372
373 * parse.y (resolve_qualified_expression_name): Try to resolve as
374 an inner class access only if `decl' is a TYPE_DECL.
375
94807d33
APB
3762001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
377
378 * decl.c (classdollar_identifier_node): Initialize.
379 * java-tree.h (enum java_tree_index): New entry
380 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
381 (classdollar_identifier_node): New macro.
382 (ID_CLASSDOLLAR_P): Likewise.
383 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
384 (build_dot_class_method_invocation): Likewise.
385 (find_applicable_accessible_methods_list): `class$' can't be
386 inherited.
387
30f87f1a
APB
3882001-02-09 Raja R Harinath <harinath@cs.umn.edu>
389
390 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
391
3922001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
393
394 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
395 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
396 gone.
397
1e97aa40
APB
3982001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
399
400 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
401 outside of the `__U' sequence too.
402 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
403 sequence too.
404
a395f5ab
APB
4052001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
406
407 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
408
1b43b6be
APB
4092001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
410
411 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
412 (JVGENMAIN_OBJS): Likewise.
413 * java-tree.h (append_gpp_mangled_name): New prototype.
414 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
415 Removed cast calling `gcc_add_root.'
416 * jvgenmain.c (mangle_obstack): New global, initialized.
417 (main): Use it.
418 (do_mangle_class): Constify local `ptr.'
419 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
420 append_gpp_mangle_name and update `count' if necessary.
421 Use `mangle_obstack.'
422 * mangle.c (append_unicode_mangled_name): Removed.
423 (append_gpp_mangled_name): Likewise.
424 (unicode_mangling_length): Likewise.
425 (mangle_member_name): Return type set to `void.'
426 (mangle_field_decl): Don't append `U' in escaped names.
427 (mangle_method_decl): Likewise.
428 (mangle_member_name): Just use `append_gpp_mangled_name.'
429 * mangle_name.c: New file.
430
4a83be51
PB
4312001-02-07 Per Bothner <per@bothner.com>
432
433 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
434
435 * check-init.c (check_init): Don't call done_alternative after
436 processing loop code, as a LOOP_EXPR never terminates normally.
437
7e5fd99f
JM
4382001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
439
440 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
441
1456345e
APB
4422001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
443
444 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
445 DECLs.
446
77aff9f9
TT
4472001-02-06 Tom Tromey <tromey@redhat.com>
448
449 * lex.c (java_new_lexer): Longer error message.
450
c00dd14e
JS
4512001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
452 Alexandre Petit-Bianco <apbianco@cygnus.com>
453
454 * typeck.c (build_prim_array_type): Added leading comment.
455 (build_java_array_type): Moved locals out of
456 block. Always create the `data' field, fixed alignment to match
457 C++.
458
6d091870
TT
4592001-02-04 Tom Tromey <tromey@redhat.com>
460
461 * expr.c (java_lang_expand_expr): Don't bother recomputing
462 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
463 Fixes PR java/1866.
464
1ebb5e73
APB
4652001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
466
467 * parse.y (process_imports): Save the original name of the import
468 for better error report.
469
ca5b1ff8
BM
4702001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
471
472 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
473 of macros used when compiling jvspec.c.
474 * jvspec.c (lang_specific_driver): Link with the shared
475 libgcc by default.
476
400500c4
RK
477Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
478
479 * check-init.c (check_init): Call internal_error instead of fatal.
480 * expr.c (java_lang_expand_expr): Likewise.
481 * jcf-parse.c (get_constant): Likewise.
482 * mangle.c (java_mangle_decl): Likewise.
483 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
484 (operator_string): Likewise.
485 * check-init.c (check_init): Call abort instead of fatal.
486 * class.c (build_class_ref): Likewise.
487 * constants.c (write_constant_pool): Likewise.
488 * decl.c (start_java_method): Likewise.
489 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
490 (java_stack_dup, encode_newarray_type): Likewise.
491 (build_java_array_length_access): Likewise.
492 (build_java_check_indexed_type, expand_java_pushc): Likewise.
493 (build_java_soft_divmod, build_invokeinterface): Likewise.
494 * java-tree.h (INNER_CLASS_P): Likewise.
495 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
496 (give_name_to_class, get_class_constant): Likewise.
497 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
498 (find_constant_index, generate_bytecode_conditional): Likewise.
499 (generate_bytecode_insns, perform_relocations): Likewise.
500 * lex.c (java_unget_unicode, java_lex): Likewise.
501 * mangle.c (mangle_type, mangle_record_type): Likewise.
502 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
503 (finish_mangling): Likewise.
504 * parse.h (MARK_FINAL_PARMS): Likewise.
505 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
506 (obtain_incomplete_type, java_complete_class): Likewise.
507 (java_check_regular_methods, java_complete_expand_method): Likewise.
508 (cut_identifier_in_qualified, check_deprecation): Likewise.
509 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
510 (java_complete_lhs, lookup_name_in_blocks): Likewise.
511 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
512 * typeck.c (set_local_type, parse_signature_type): Likewise.
513 (parse_signature_string, build_java_signature): Likewise;
514 (set_java_signature): Likewise.
515 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
516 * class.c (add_method): Call fatal_error instead of fatal.
517 (build_static_field_ref): Likewise.
518 * expr.c (build_known_method_ref, expand_invoke): Likewise.
519 * jcf-parse.c (get_constant, jcf_parse): Likewise.
520 * lex.c (java_new_new_lexer): Likewise.
521 * jv-scan.c (main): Likewise.
522 (fatal_error): Renamed from fatal.
523 * jcf-parse.c (yyparse): Call fatal_io_error instead of
524 pfatal_with_name.
525 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
526 (yyparse): Likewise.
527 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
528 * lex.c (java_get_line_col): Likewise.
529 * jcf-parse.c (load_class): Make errors non-fatal.
530 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
531
4bae4eb5
BM
5322001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
533
534 * jvgenmain.c (class_mangling_suffix): Remove unused string.
535 (error): Remove unused function.
536 (main): Don't use "__attribute__ alias" on generated class symbol.
537
c0b00d37
APB
5382001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
539
540 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
541 argument.
542 * parse.y (finish_method_declaration): Code accounting for WFLed
543 method DECL_NAMEs deleted.
544 (check_abstract_method_definitions): Likewise.
545 (resolve_type_during_patch): Layout resolved type.
546 * typeck.c (lookup_do): Removed unused local.
547
4bae4eb5 5482001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
eb59e547
BM
549
550 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
551 * decl.c (init_decl_processing): Use integer_minus_one_node, not
552 integer_negative_one_node.
553 * expr.c (build_java_binop): Likewise.
554
4bae4eb5 5552001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
7be00c49
JS
556
557 * zextract.c (read_zip_archive): Read file_offset before writing
558 zipd and consequently clobbering the header contents.
559
c913b6f1
KG
5602001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
561
562 * Make-lang.in: Remove all dependencies on defaults.h.
563 * decl.c: Don't include defaults.h.
564 * expr.c: Likewise.
565 * parse.y: Likewise.
566
c4faeb92
APB
5672001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
568
569 * ChangeLog (2001-01-21): Fixed typo.
570 * class.c (layout_class_method): Code accounting for WFLed
571 method DECL_NAMEs deleted.
572 * constant.c (find_methodref_index): Likewise.
573 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
574 * java-tree.h (DECL_FUNCTION_WFL): New macro.
575 (struct lang_decl): New field `wfl'.
576 (java_get_real_method_name): Prototype deleted.
577 * mangle.c (mangle_method_decl): Code accounting for WFLed
578 method DECL_NAMEs deleted.
579 * parse.h (GET_METHOD_NAME): Macro deleted.
580 * parse.y (reset_method_name): Deleted.
581 (method_header): Set DECL_FUNCTION_WFL.
582 (check_abstract_method_header): Code accounting for WFLed method
583 DECL_NAMEs deleted.
584 (java_get_real_method_name): Deleted.
585 (check_method_redefinition): Code accounting for WFLed method
586 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
587 (java_check_regular_methods): Likewise.
588 (java_check_abstract_methods): Likewise.
589 (java_expand_classes): Don't call `reset_method_name.'
590 (search_applicable_method_list): Use DECL_NAMEs instead of
591 GET_METHOD_NAME.
592 * typeck.c (lookup_do): Code accounting for WFLed method
593 DECL_NAMEs deleted.
594
97876d66
RE
5952001-01-25 Richard Earnshaw <rearnsha@arm.com>
596
597 * lex.c (java_read_char): Check for EOF from getc first.
598
493d561d
APB
5992001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
600
601 * class.c (layout_class): Don't lay the superclass out if it's
602 already being laid out.
603 * jcf-parse.c (handle_innerclass_attribute): New function.
604 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
605 handle_innerclasses_attribute.
606 (jcf_parse): Don't load an innerclasses if it's already being
607 laid out.
608 * jcf-write.c (append_innerclass_attribute_entry): Static
609 `anonymous_name' and its initialization deleted. `ocii' and `ini'
610 to be zero for anonymous classes.
611
6122001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
613
614 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
615 necessary.
616 * jcf-parse.c (set_source_filename): Use
617 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
618
6192001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
620
621 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
622 gets a unique asm name.
623
6242001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
625
626 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
627 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
628 if necessary.
629 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
630 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
631 * parse.y (lookup_package_type_and_set_next): Deleted.
632 (resolve_package): Removed unnecessary code.
633 (find_applicable_accessible_methods_list): `finit$' can't be
634 inherited.
635 * verify.c (pop_argument_types): Added missing prototype.
636
7c01b2b5
BM
6372001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
638
639 * config-lang.in: Disable java by default.
640
80261b56
TT
6412001-01-23 Tom Tromey <tromey@redhat.com>
642
643 * gcj.texi (Copying): New node.
644 Added copyright information.
645
a4796c80
PB
6462001-01-21 Per Bothner <per@bothner.com>
647
648 Various fixes to allow compiling a compressed .jar/.zip archive.
649 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
650 (struct ZipFile): Add fields name and next (from ZipFileCache).
651 (struct ZipDirectory): New field zipf points to owning ZipFile.
652 * jcf.h (struct ZipDirectory): Add forward declaration.
653 (struct JCF): Declare zipd field to have type struct ZipDirectory.
654 Remove seen_in_zip and zip_offset fields.
655 (JCF_SEEN_IN_ZIP): New macro.
656 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
657 * jcf-io.c: Change all ZipFileCache to ZipFile.
658 (read_zip_member): New function.
659 (open_in_zip): Call read_zip_member.
660 * jcf-parse.c (find_in_current_zip): Remove function.
661 (read_class): Merge in find_in_current_zip functionality.
662 Call read_zip_member if needed.
663 (parse_zip_file_entries): Use read_zip_member.
664 (process_zip_dir): Update for removed and added JCF fields.
665 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
666
b5c4fed9
PB
6672001-01-21 Per Bothner <per@bothner.com>
668
669 Minor optimization of static ggc roots.
670 * jcf-parse.c (parse_roots): New static field.
671 (current_field, current_method, current_file_list): Replace by macros
672 naming fields of parse_roots.
673 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
674 * class.c (class_roots): New static field.
675 (registered_class, fields_ident, info_ident, class_list):
676 New macros naming fields of parse_roots.
677 (build_static_field_ref): Don't register roots here.
678 (layout_class): Static field list replaced by macro class_list.
679 (init_class_processing): Call ggc_add_tree_root for 4 roots.
680 Initialize fields_ident and info_ident here.
681
3432b91b
PB
6822001-01-21 Per Bothner <per@bothner.com>
683
684 * jcf-parse.c (ggc_mark_jcf): New function.
685 (init_jcf_parse): Register current_jcf as ggc root.
686
2c36c7fd
PB
6872001-01-21 Per Bothner <per@bothner.com>
688
689 * lang.c (put_decl_node): Print method's name.
690
9c0c88ac
PB
6912001-01-21 Per Bothner <per@bothner.com>
692
693 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
694 (verify_jvm_instructions): Use it, for better error messages on loads.
695
230cbd5f
PB
6962001-01-21 Per Bothner <per@bothner.com>
697
c4faeb92 698 * verify.c (merge_type_state): Still may have to merge even if
230cbd5f
PB
699 LABEL_VERIFIED (label).
700
e6b6db0d
PB
7012001-01-21 Per Bothner <per@bothner.com>
702
703 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
704 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
705
b57300bc
PB
7062001-01-19 Per Bothner <per@bothner.com>
707
708 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
709 if expeting an interface type. Refines Tom's change of 2000-09-12.
710
ee08d4cc
PB
7112001-01-18 Per Bothner <per@bothner.com>
712
713 * gcj.texi (Input Options): Mention .java files.
714
b1117741
APB
7152001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
716
717 * lang-options.h (-Wunsupported-jdk11): Removed.
718 * lang.c (flag_not_overriding): Deleted.
719 (flag_static_local_jdk1_1): Likewise.
720 (lang_W_options): Removed "unsupported-jdk11" entry.
721 * parse.y (java_check_methods): Removed dead code.
722
2dc73168
TT
7232001-01-17 Tom Tromey <tromey@redhat.com>
724
725 Changes suggested by Per Bothner:
726 * gcj.texi (Input Options): Don't mention input files.
727 (Code Generation): Updated --main information.
728 (Invoking jcf-dump): Mention that --javap is incomplete.
729 From Alexandre Petit-Bianco:
730 (Warnings): Don't mention -Wunsupported-jdk11.
731 My stuff:
732 (Compatibility): Mention JDK 1.2-ness of libraries.
733 (Resources): Mention resources used when writing gcj.
734
bc65b5ec
TT
7352001-01-17 Tom Tromey <tromey@redhat.com>
736
737 * gcj.texi: New file.
738 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
739 (java.info): Depend on gcj.info.
740 (java/gcj.dvi): New target.
741 (java.dvi): Depend on gcj.dvi.
742 (java.install-info): Wrote.
743
930f6690
JS
7442001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
745
746 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
747 having called make_decl_rtl.
748
00b4575d
PB
7492001-01-14 Per Bothner <per@bothner.com>
750
984ad2c6
PB
751 Various patches to emit better messages on verification errors.
752 * expr.c (push_type_0): Return error indication on stack overflow,
753 instead of callinfg fatal.
754 (push_type): Now just call push_type_0 (nd fatal on overflow).
755 (pop_type_0): Return detailed error message (in a char** argument).
756 (pop_type): If pop_type_0 fails, print error message.
757 (pop_argument_types): Moved to verify.c.
758 * verify.c (pop_argument_types): Moved from expr.c.
759 Return a (possible) error message, rather than void.
760 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
761 (verify_jvm_instruction): Use new macros, improving error messages.
762 For case OPCODE_astore use object_ptr_type_node.
763 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
764 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
765
00b4575d
PB
766 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
767 constant, return body without wrapper. (Improves constant folding.)
768 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
769
d9da31dd
PB
7702001-01-13 Per Bothner <per@bothner.com>
771
772 * expr.c (expand_java_field_op): Assigning to a final field outside
773 an initializer does not violate JVM spec, so should be warning, not
774 error. (Sun's verifier does not complain - though MicroSoft's does.)
775
a67a383a
JM
7762001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
777
778 * gjavah.c (version), jcf-dump.c (version): Update copyright year
779 to 2001.
780
7e1376a1
BM
7812001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
782
783 * parse.y (resolve_expression_name): Permit instance variables from
784 enclosing context in super constructor call.
785 (resolve_qualified_expression_name): Permit enclosing class's qualified
786 "this" in super constructor call.
787
6c418184
MM
7882001-01-10 Mark Mitchell <mark@codesourcery.com>
789
790 * class.c (build_utf8_ref): Remove last argument in call to
791 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
792 (build_class_ref): Likewise.
793 (build_static_field_ref): Likewise.
794 (get_dispatch_table): Likewise.
795 (layout_class_method): Likewise.
796 (emit_register_classes): Likewise.
797 * constants.c (build_constant_data_ref): Likewise.
798 * decl.c (builtin_function): Likewise.
799 (create_primitive_vtable): Likewise.
800 * expr.c (build_known_method_def): Likewise.
801 (build_jni_stub): Likewise.
802 (java_lang_expand_expr): Likewise.
803
0adc3d8a
TT
8042001-01-10 Tom Tromey <tromey@redhat.com>
805
806 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
807
761491c8
APB
8082001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
809
810 * java-tree.h (lang_printable_name_wls): New prototype.
811 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
812 rather than `current_class' to print type name. Don't prepend type
813 names when printing constructor names.
814 (lang_printable_name_wls): New function.
815 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
816 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
817 * parse.y (patch_method_invocation): Message tuned for constructors.
818 (not_accessible_p): Grant `private' access from within
819 enclosing contexts.
820
dc08e603
APB
8212001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
822
823 All files with updated copyright when applicable.
824 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
825 * class.c (mangle_class_field): Function removed.
826 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
827 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
828 (build_class_ref): Call `java_mangle_class_field' instead of
829 `mangle_class_field.'
830 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
831 (layout_class): Call `java_mangle_decl' instead of
832 `mangle_static_field.'
833 (cxx_keywords): Initialized static array moved to `lex.c.'
834 (layout_class_method): Changed leading comment. Simplified to
835 call `java_mangle_decl.' Local `ptr' moved in for loop body.
836 * decl.c (lang_mark_tree): Mark field `package_list.'
837 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
838 (struct lang_type): New field `package_list.'
839 (unicode_mangling_length): Prototype removed.
840 (append_gpp_mangled_name, append_gpp_mangled_classtype,
841 emit_unicode_mangled_name): Likewise.
842 (cxx_keyword_p): New prototype.
843 (java_mangle_decl, java_mangle_class_field,
844 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
845 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
846 `build_expr_wfl.'
847 * jvgenmain.c (main_method_prefix): Global variable removed.
848 (main_method_suffix): Likewise.
849 (do_mangle_classname): New function.
850 (main): Call it. Format changed to accomodate new mangling scheme.
851 * lex.c: (utf8_cmp): Conditionally prototyped.
852 (cxx_keywords): Moved from class.c, conditionally defined.
853 (utf8_cmp, cxx_keyword_p): Likewise.
854 * mangle.c (obstack.h, ggc.h): Included.
855 (mangle_field_decl): New function.
856 (mangle_method_decl, mangle_type, mangle_pointer_type,
857 mangle_array_type, mangle_record_type,
858 find_compression_pointer_match, find_compression_array_match,
859 find_compression_record_match,
860 find_compression_array_template_match, set_type_package_list,
861 entry_match_pointer_p, emit_compression_string, init_mangling,
862 finish_mangling, compression_table_add, mangle_member_name): Likewise.
863 (mangle_obstack): New global.
864 (MANGLE_RAW_STRING): New macro.
865 (unicode_mangling_length): Turned static.
866 (append_unicode_mangled_name): Renamed from
867 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
868 replaces `obstack', removed from the parameter list.
869 (append_gpp_mangled_name): Turned static. `mangle_obstack'
870 replaces parameter `obstack', removed from the parameter list. Call
871 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
872 (append_gpp_mangled_classtype): Removed.
873 (compression_table, compression_next): New static variables.
874 * parse.y (temporary_obstack): Extern declaration removed.
875
761491c8
APB
8762001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
877
878 * parse.y (patch_binop): Compute missing type in error situations.
879
5bb11b2e
BM
8802001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
881
882 * class.c (make_class_data): Push initial value for "arrayclass".
883 * decl.c (init_decl_processing): Add new class field "arrayclass".
884
ac39dac0
BM
8852001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
886
887 From patha@softlab.ericsson.se:
888 * parse.y (switch_label): Use build, not build1, to construct
889 DEFAULT_EXPR.
890
a5a4ce3c
NB
8912001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
892
893 * lang.c (lang_decode_option): Change -MA to -MP.
894 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
895 Update to new prototype; do quote targets.
896 (jcf_dependency_write): Update.
897
d27fd99a
BM
8982000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
899
900 Shorten primitive array allocation path:
901 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
902 to create new primitive arrays.
903 * expr.c (build_newarray): If generating native code, call
904 soft_newarray_node with a reference to the primitive TYPE identifier
905 instead of type_value.
906
c1eacb70
BM
9072000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
908
909 Fix for PRs gcj/312 and gcj/253:
910 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
911 dest if they arn't already.
912 * class.c (layout_class): Call maybe_layout_super_class on
913 superinterfaces also, but only if compiling from bytecode.
914
6d003d5c
BM
915 Fix for PR gcj/373:
916 * parse.y (create_class): Set ACC_STATIC if class is declared in an
917 interface.
918
325de66c
TT
9192000-12-15 Tom Tromey <tromey@redhat.com>
920
921 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
922 set.
923
e35990c4
AH
9242000-12-14 Andrew Haley <aph@redhat.com>
925
926 * boehm.c (mark_reference_fields): Change test to correctly detect
927 bitmap overflow.
928
53714cda
AJ
9292000-12-15 Andreas Jaeger <aj@suse.de>
930
931 * config-lang.in (lang_dirs): Added.
932
1e0cdc10
APB
9332000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
934
935 * parse.y (end_artificial_method_body): Fixed undefined behavior.
936 Credits go to rth for finding it.
937
e9e42530
MS
9382000-12-13 Mike Stump <mrs@wrs.com>
939
940 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
941
3f27e3f8
TT
9422000-11-07 Tom Tromey <tromey@cygnus.com>
943
944 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
945 * lex.c (java_ignorable_control_p): Removed.
946 (java_letter_or_digit_p): Removed.
947 (java_start_char_p): New function.
948 (java_read_char): Return `int', not `unicode_t'. Changed
949 callers.
950 (java_read_unicode): Likewise.
951 (java_read_unicode_collapsing_terminators): Likewise.
952 (java_get_unicode): Likewise.
953 (java_new_lexer): Initialize hit_eof.
954 (java_parse_end_comment): Take `int' argument.
955 (java_parse_doc_section): Likewise.
956 (java_parse_escape_sequence): Don't allow backlash-newline.
957 Return `int'.
958 * lex.h (JAVA_DIGIT_P): Removed.
959 (_JAVA_LETTER_OR_DIGIT_P): Removed.
960 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
961 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
962 (JAVA_PART_CHAR_P): New macro.
963 (UEOF): Now -1.
964 (JAVA_CHAR_ERROR): Now -2.
965 (java_lexer): New field `hit_eof'.
966 * chartables.h: New file.
967 * gen-table.pl: new file.
968
568aac9c
TT
9692000-11-20 Tom Tromey <tromey@cygnus.com>
970 Alexandre Petit-Bianco <apbianco@cygnus.com>
971
972 * parse.y (java_complete_lhs): Only allow compound assignment of
973 reference type if type is String.
974
f34ff6d6
APB
9752000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
976
977 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
978 jcf-path.c: Likewise.
979
6e5589e8
AG
9802000-12-09 Anthony Green <green@redhat.com>
981
982 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
983 filestart and filename_length as int values.
984
8000caee
MD
9852000-12-07 Mo DeJong <mdejong@redhat.com>
986
987 * jcf-io.c (find_class): Correct the logic that tests to see if a
988 .java file is newer than its .class file. The compiler was
989 incorrectly printing a warning when file mod times were equal.
990
f6bbde28
ZW
9912000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
992
993 * jvgenmain.c: Use ISPRINT not isascii.
994
46142b26
APB
9952000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
996
997 * parse.y (end_artificial_method_body): Fixed typo.
998
f8b93ea7
APB
9992000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
1000
1001 * parse.y (patch_method_invocation): Pick the correct enclosing
1002 context when creating inner class instances.
1003 Fixes gcj/332.
1004
45441c5b
JM
10052000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
1006
1007 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
1008 Update copyright year to 2000.
1009
1510057a
AG
10102000-11-23 Anthony Green <green@redhat.com>
1011
1012 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
1013 Move current_file_list out of yyparse and make it static.
1014
1015 * expr.c: Declare quick_stack and tree_list_free_list as static
1016 (init_expr_processing): Register quick_stack and
1017 tree_list_free_list roots.
1018
5e18f6d6
APB
10192000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
1020
1021 * parse.y (build_outer_field_access): New local `decl_ctx', use
1022 it. Check for field's context and current class immediate outer
1023 context inheritance.
1024 (outer_field_access_p): Consider fields inherited from the last
1025 enclosing context.
1026 (build_access_to_thisn): Stop at the last enclosing context if
1027 necessary.
1028 Fixes gcj/367.
1029
9196ece5
R
1030Thu Nov 23 02:19:14 2000 J"orn Rennecke <amylaar@redhat.com>
1031
1032 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
1033
c385cdf6
BM
10342000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
1035
1036 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
1037 scratch buffer.
1038
1535cc88
TT
10392000-11-20 Tom Tromey <tromey@cygnus.com>
1040
1041 * jv-scan.c (help): Document --complexity.
1042 (options): Added --complexity.
1043 (flag_complexity): New global.
1044 (main): Call `report'.
1045 * parse-scan.y (complexity): New global.
1046 (if_then_statement, if_then_else_statement,
1047 if_then_else_statement_nsi, switch_block_statement_group,
1048 while_expression, do_statement, for_begin, continue_statement,
1049 throw_statement, catch_clause, finally, method_invocation,
1050 conditional_and_expression, conditional_or_expression,
1051 conditional_expression): Update complexity.
1052 (reset_report): Reset complexity.
1053 (report): New function.
1054
d828bc42
TT
10552000-11-20 Tom Tromey <tromey@cygnus.com>
1056
1057 * lex.c (yylex): Added STRICT_TK case.
1058 * parse.y (STRICT_TK): Added.
1059 * parse-scan.y (STRICT_TK): Added.
1060 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
1061 `;'. Use 4, not 3, with -k option. Correctly rename resulting
1062 file.
1063 * keyword.h: Rebuilt.
1064 * keyword.gperf (strictfp): Added.
1065
4e7842a0
TT
10662000-11-20 Tom Tromey <tromey@cygnus.com>
1067
1068 * lex.c (yylex): Recognize floating point constants with leading
1069 0.
1070
7e9355c6
KG
10712000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1072
1073 * java-tree.h (cyclic_inheritance_report): Constify.
1074 * parse.y (cyclic_inheritance_report): Likewise.
1075
a8a05998
ZW
10762000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
1077
1078 * parse.y (goal): Remove call to ggc_add_string_root.
1079
520a57c8
ZW
10802000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
1081
1082 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
1083 Create string in scratch buffer, then pass to build_string.
1084
88f3c477
JM
10852000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
1086
1087 * parse.y (issue_warning_error_from_context): Add
1088 ATTRIBUTE_PRINTF.
1089
ac51395d
AG
10902000-11-11 Anthony Green <green@redhat.com>
1091
1092 * jcf-parse.c (process_zip_dir): Add finput parameter.
1093 (jcf_figure_file_type): Call process_zip_dir with appropriate
1094 argument.
1095
4e135bdd
KG
10962000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1097
1098 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
1099 * jcf-parse.c (jcf_figure_file_type): Likewise.
1100
2e09e75a
JM
11012000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
1102
1103 * parse.y (create_new_parser_context): Use memset () instead of
1104 bzero ().
1105
136c35df
TT
11062000-11-08 Tom Tromey <tromey@cygnus.com>
1107
1108 * gjavah.c (process_file): Only include gcj/cni.h when generating
1109 CNI stubs.
1110
961192e1
JM
11112000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
1112
1113 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
1114 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
1115 instead of bzero ().
1116
099a5150
TT
11172000-11-05 Tom Tromey <tromey@cygnus.com>
1118
1119 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
1120 * lex.c (IS_ZERO): New define.
1121 (java_perform_atof): Error on floating point underflow.
1122
cbf53a1d
TT
11232000-11-04 Tom Tromey <tromey@cygnus.com>
1124
1125 * lex.c (java_parse_escape_sequence): Only read two octal
1126 characters if the first one is greater than 3. Don't allow
1127 "octal" numbers to include the digits 8 or 9.
1128
436a88a6
JM
11292000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
1130
1131 * Make-lang.in (java.distdir): Remove.
1132
747800ee
TT
11332000-11-03 Tom Tromey <tromey@cygnus.com>
1134
4e2c8d44
TT
1135 * Make-lang.in (java.dvi): New target.
1136 Partial fix for PR other/567.
1137
b7436b72
TT
1138 * lang-options.h: Mention -Wout-of-date.
1139 * jcf-dump.c (flag_newer): New global.
1140 * gjavah.c (flag_newer): New global.
1141 * jcf-io.c (find_class): Only warn when flag_newer set.
1142 * lang.c (flag_newer): New global.
1143 (struct string_option): New declaration.
1144 (lang_W_options): New global.
1145 (process_option_with_no): New function.
1146 (lang_decode_option): Use it.
1147
0160fbe1
TT
1148 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
1149 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
1150 `$'.
1151
747800ee
TT
1152 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
1153 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
1154 * lex.c (java_read_unicode): Removed `term_context' argument.
1155 Recognize any number of `u' in `\u'.
1156 (java_read_unicode_collapsing_terminators): New function.
1157 (java_get_unicode): Use it.
1158 (java_lineterminator): Removed.
1159 (yylex): Produce error if character literal is newline or single
1160 quote. Return if eof found in middle of `//' comment. EOF in
1161 `//' comment is only an error if pedantic.
1162 (java_ignorable_control_p): New function.
1163 (java_parse_end_comment): Return if eof found in middle of
1164 comment.
1165 Include flags.h.
1166 * jv-scan.c (pedantic): New global.
1167
ee5f86dc
APB
11682000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
1169
1170 * parse.y (outer_field_access_p): Inherited fields aren't
1171 consider outer fields.
1172 (maybe_build_thisn_access_method): Use
1173 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
1174 (resolve_expression_name): Trigger an error if a static field
1175 is being accessed as an outer field.
1176
7ccd2fc9 11772000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
f6bbde28 1178
7ccd2fc9
APB
1179 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
1180 Fixes gcj/365.
1181
b8dad04b
ZW
11822000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
1183
1184 * Make-lang.in: Move all build rules here from Makefile.in,
1185 adapt to new context. Wrap all rules that change the current
1186 directory in parentheses. Expunge all references to $(P).
1187 When one command depends on another and they're run all at
1188 once, use && to separate them, not ;. Add OUTPUT_OPTION to
1189 all object-file generation rules. Delete obsolete variables.
1190
1191 * Makefile.in: Delete.
1192 * config-lang.in: Delete outputs= line.
1193
2cb3951d
APB
11942000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
1195
1196 * parse.y (patch_method_invocation): NULLify this_arg when already
1197 inserted.
1198 (maybe_use_access_method): Handle call to methods unrelated to the
1199 current class. Fixed comment.
1200 Fixes gcj/361.
1201
ee5f86dc
APB
12022000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
1203
1204 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
1205 scope.
1206
07b5e470
TT
12072000-10-24 Tom Tromey <tromey@cygnus.com>
1208
1209 * lex.c (java_new_lexer): Initialize new fields. Work around
1210 broken iconv() implementations.
1211 (java_read_char): Swap bytes if required. Use fallback decoder if
1212 required.
1213 (byteswap_init, need_byteswap): New globals.
1214 (java_destroy_lexer): Only close iconv handle if it is in use.
1215 * lex.h (java_lexer): New fields read_anything, byte_swap,
1216 use_fallback.
1217 Made out_buffer unsigned.
1218
8ac1de05
APB
12192000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
1220
1221 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
1222 where an enclosing context can be set on the jdep.
1223 (do_resolve_class): Fixed identation.
1224
80393943
KG
12252000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1226
1227 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
f6bbde28 1228
80393943
KG
1229 * jcf-reader.c (peek_attribute, skip_attribute): Only define
1230 when requested.
1231
1232 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
1233
1234 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
1235
c7303e41
APB
12362000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
1237
1238 * jcf-write.c (OP1): Update `last_bc'.
1239 (struct jcf_block): Fixed indentation and typo in comments. New
1240 field `last_bc'.
1241 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
1242 follows `monitorenter'.
1243 * parse.y (patch_synchronized_statement): New local `tmp'. Call
1244 `patch_string'.
1245 Fixes gcj/232.
1246
316a06a1
TT
12472000-10-16 Tom Tromey <tromey@cygnus.com>
1248
1249 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
1250 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
1251 * lang-options.h: Added -MA, -MT, -MF..
1252 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
1253 (DEPEND_TARGET_SET): New macro.
1254 (DEPEND_FILE_ALREADY_SET): Likewise.
1255 (init_parse): Handle new flags.
1256 * jcf.h (jcf_dependency_print_dummies): Declare.
1257 * Make-lang.in (s-java): Added mkdeps.o.
1258 * Makefile.in (BACKEND): Added mkdeps.o.
1259 (../gcjh$(exeext)): Added mkdeps.o.
1260 (../jcf-dump$(exeext)): Added mkdeps.o.
1261 * jcf-depend.c: Include mkdeps.h.
1262 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
1263 add_entry): Removed.
1264 (jcf_dependency_reset): Rewrote.
1265 (dependencies): New global.
1266 (jcf_dependency_set_target): Rewrote.
1267 (jcf_dependency_add_target): Likewise.
1268 (jcf_dependency_add_file): Likewise.
1269 (munge): Removed.
1270 (print_ents): Removed.
1271 (jcf_dependency_write): Rewrote.
1272 (print_dummies): New global.
1273 (jcf_dependency_print_dummies): New function
1274 (jcf_dependency_write): Call deps_dummy_targets if required.
1275
dba41d30
APB
12762000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
1277
1278 * gjavah.c (add_class_decl): Removed unused variables `tname',
1279 `tlen' and `name_index'.
1280 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
1281 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
1282 in `wfl_operator' with value.
1283 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
1284 (jcf_figure_file_type): Fixed identation.
1285 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
1286 * parse.y (analyze_clinit_body): New function.
1287 (static_initializer:): Reset `current_static_block'.
1288 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
1289 `wfl_operator' with new value.
1290 (lookup_cl): Use EXPR_WFL_FILENAME.
1291 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
1292 analyze_clinit_body.
1293 (build_outer_field_access): Access to this$<n> built from
1294 current_class, not its outer context.
1295 (build_access_to_thisn): Fixed leading comment. Tidied things up.
f6bbde28 1296 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
dba41d30
APB
1297 (patch_method_invocation): Use `is_static_flag' when already
1298 initialized.
1299 (patch_newarray): Removed assignment in ternary operator.
1300
1a2ebe6d
APB
13012000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
1302
dba41d30 1303 * except.c (free_eh_ranges): Don't free `whole_range'.
1a2ebe6d 1304
8e7ab3ff
AG
13052000-10-15 Anthony Green <green@redhat.com>
1306
1307 * decl.c (init_decl_processing): Call init_class_processing before
1308 anything else.
1309
c7303e41
APB
13102000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
1311
1312 * check-init.c (check_init): Fixed leading comment. Use
1313 LOCAL_FINAL_P.
1314 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
1315 (give_name_to_locals): Likewise.
1316 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
1317 fields in lang_decl_var.
1318 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
1319 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
1320 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
1321 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
1322 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
1323 (LOCAL_FINAL): Rewritten.
1324 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
1325 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
1326 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
1327 `init_final' fields.
1328 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
1329 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
1330 (TYPE_HAS_FINAL_VARIABLE): New macro.
1331 (struct lang_type): Added `afv' field.
1332 * parse.y (check_static_final_variable_assignment_flag): New function.
1333 (reset_static_final_variable_assignment_flag): Likewise.
1334 (check_final_variable_local_assignment_flag): Likewise.
1335 (reset_final_variable_local_assignment_flag): Likewise.
1336 (check_final_variable_indirect_assignment): Likewise.
1337 (check_final_variable_global_assignment_flag): Likewise.
1338 (add_inner_class_fields): Use LOCAL_FINAL_P.
1339 (register_fields): Handle local finals and final variables.
1340 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
1341 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
1342 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
1343 on local finals.
1344 (java_complete_expand_methods): Loop to set
1345 TYPE_HAS_FINAL_VARIABLE. Call
f6bbde28 1346 `reset_final_variable_local_assignment_flag' and
c7303e41
APB
1347 `check_final_variable_local_assignment_flag' accordingly before
1348 and after constructor expansion. Call
1349 `reset_static_final_variable_assignment_flag'
f6bbde28 1350 before expanding <clinit> and after call
c7303e41
APB
1351 `check_static_final_variable_assignment_flag' if the
1352 current_class isn't an interface. After all methods have been
1353 expanded, call `check_final_variable_global_assignment_flag' and
1354 `check_static_final_variable_assignment_flag' if the current class
f6bbde28 1355 is an interface.
c7303e41
APB
1356 (maybe_yank_clinit): Fixed typo in comment.
1357 (build_outer_field_access_methods): Removed old sanity check. Use
1358 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
1359 Don't create access methods for finals.
1360 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
1361 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
f6bbde28 1362 existing DECL_INIT has been processed.
c7303e41
APB
1363 (java_complete_lhs): Likewise.
1364 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
1365 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
1366 logic.
1367 (patch_assignment): Use LOCAL_FINAL_P.
1368 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
1369 DECL_INITIAL is nullified.
1370 Fixes gcj/163.
1371
4b945402
KG
13722000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1373
1374 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
f6bbde28 1375
4b945402
KG
1376 * Makefile.in (parse.c, parse-scan.c): Likewise.
1377
1f8f4a0b
MM
13782000-10-12 Mark Mitchell <mark@codesourcery.com>
1379
1380 * class.c (temporary_obstack): Remove.
1381 (make_class): Don't mess with obstascks.
1382 (push_class): Likewise.
1383 (set_super_info): Likewise.
1384 (add_method_1): Likewise.
1385 (add_method): Likewise.
1386 (add_field): Likewise.
1387 (build_utf8_ref): Likewise.
1388 (build_class_ref): Likewise.
1389 (build_static_field_ref): Likewise.
1390 (finish_class): Likewise.
1391 (push_super_field): Likewise.
1392 (layout_class): Likewise.
1393 (layout_class_methods): Likewise.
1394 (init_class_processing): Likewise.
1395 * constants.c (get_tag_node): Likewise.
1396 (build_constant_data_ref): Likewise.
1397 * decl.c (ggc_p): Remove.
1398 (copy_lang_decl): Use ggc_alloc.
1399 (complete_start_java_method): Don't mess with obstacks.
1400 (start_java_method): Likewise.
1401 (end_java_method): Likewise.
1402 * except.c (link_handler): Use xmalloc.
1403 (free_eh_ranges): New function.
1404 (method_init_exceptions): Use it.
1405 (add_handler): Use xmalloc.
1406 (expand_start_java_handler): Don't mess with obstacks.
1407 (prepare_eh_table_type): Likewise.
1408 (expand_end_java_handler): Likewise.
1409 * expr.c (push_value): Likewise.
1410 (create_label_decl): Likewise.
1411 (build_jni_stub): Likewise.
1412 (java_lang_expand_expr): Likewise.
1413 (note_instructions): Use xrealloc.
1414 (java_push_constant_from_pool): Don't mess with obstacks.
1415 (process_jvm_instruction): Likewise.
1416 * java-tree.h (cyclic_inheritance_report): Remove duplicate
1417 declaration.
1418 * jcf-parse.c (get_constant): Don't mess with obstacks.
1419 (read_class): Likewise.
1420 (jcf_parse): Likewise.
1421 * lex.c (expresion_obstack): Remove.
1422 (java_lex): Don't use obstack_free.
1423 * parse.h (exit_java_complete_class): Don't mess with obstacks.
1424 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
1425 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
1426 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
1427 * parse.y (gaol): Add more GC roots.
1428 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
1429 (lookup_field_wrapper): Likewise.
1430 (obtain_incomplete_type): Don't mess with obstacks.
1431 (build_alias_initializer_paramter_list): Adjust calls to MANGLE_*
1432 macros.
1433 (craft_constructor): Don't mess with obstacks.
1434 (safe_layout_class): Likewise.
1435 (java_complete_class): Likewise.
1436 (source_end_java_method): Likewise.
1437 (build_outer_field_access_methods): Likewise.
1438 (build_outer_method_access_method): Likewise.
1439 (maybe_build_thisn_access_method): Likewise.
1440 (build_dot_class_method_invocation): Likewise.
1441 (java_complete_tree): Likewise.
1442 (java_complete_lhs): Likewise.
1443 (do_merge_string_cste): Likewise.
1444 (patch_string_cst): Likewise.
1445 (array_constructor_check_entry): Likewise.
1446 * typeck.c (build_java_array_type): Likewise.
1447 (parse_signature_string): Likewise.
1448 (build_java_signature): Likewise.
f6bbde28 1449
3c1d1e7b
TT
14502000-10-12 Tom Tromey <tromey@cygnus.com>
1451
1452 Fix for PR gcj/356:
1453 * gjavah.c (add_class_decl): Don't special-case inner classes.
1454 (add_namelet): Likewise.
1455
a93eddcf
APB
14562000-10-11 Rodney Brown <RodneyBrown@mynd.com>
1457
1458 * java-tree.h: Constify current_encoding.
1459 * lang.c: Constify current_encoding.
1460
14612000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
1462
1463 * jvgenmain.c (class_mangling_suffix): Omit `.'.
1464 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
1465
14662000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
1467
1468 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
1469 patch. Fixes gcj/340.
1470
2e165c53
TT
14712000-10-10 Tom Tromey <tromey@cygnus.com>
1472
1473 * lex.c (java_new_lexer): Initialize out_first and out_last
1474 fields.
1475 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
1476
c7303e41
APB
14772000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
1478
1479 * parse.y (pop_current_osb): New function.
1480 (array_type:): Use `dims:', changed actions
1481 accordingly. Suggested by Anthony Green.
1482 (array_creation_expression:): Used pop_current_osb.
1483 (cast_expression:): Likewise.
1484 (search_applicable_method_list): Fixed indentation.
1485
14862000-10-08 Anthony Green <green@redhat.com>
1487
1488 * parse.y (array_type_literal): Remove production.
1489 (type_literals): Refer to array_type, not array_type_literal.
1490
29f8b718
APB
14912000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
1492
1493 Patch contributed by Corey Minyard.
1494 * decl.c (check_local_named_variable): New function.
1495 (tree check_local_unnamed_variable): Likewise.
1496 (find_local_variable): Splitted. Call check_local_{un}named_variable.
1497
7fd9a516
AG
14982000-10-07 Anthony Green <green@redhat.com>
1499
1500 * class.c (layout_class): Handle case where superclass can't be
1501 layed out yet.
1502
20d431c9
JM
15032000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
1504
1505 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
1506 gperf.
1507
e0a0c416
TT
15082000-10-05 Tom Tromey <tromey@cygnus.com>
1509
1510 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
1511 * jvgenmain.c (class_mangling_prefix): Removed.
1512 (class_mangling_suffix): New global.
1513 (main): Use it.
1514 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
1515 `$'.
1516 (print_method_info): Handle overrides for static and final
1517 methods.
1518 (process_file): Generate declaration for class object field.
1519 * class.c (cxx_keywords): New array.
1520 (utf8_cmp): New function.
1521 (cxx_keyword_p): New function.
1522 (layout_class_method): Mangle C++ keywords by appending `$'.
1523 (mangle_field): New function.
1524 (mangle_class_field): Use mangle_field. Mangle class name as
1525 `class$'.
1526 (mangle_static_field): Use mangle_field.
1527
6e22695a
APB
1528Tue Oct 3 13:44:37 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
1529
1530 * decl.c (find_local_variable): Removed uncessary type check and
1531 fixed range check typo. From Corey Minyard.
1532
1533Wed Sep 13 16:06:52 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
1534
1535 * decl.c (give_name_to_locals): New local `code_offset'. Call
dba41d30 1536 `maybe_adjust_start_pc'.
6e22695a
APB
1537 * expr.c (note_instructions): New function.
1538 (expand_byte_code): Don't collect insn starts here.
1539 (peek_opcode_at_pc): New function.
1540 (maybe_adjust_start_pc): Likewise.
1541 * java-tree.h (maybe_adjust_start_pc): Declare.
1542 (note_instructions): Likewise.
dba41d30 1543 * jcf-parse.c (parse_class_file): Call `note_instructions'.
6e22695a
APB
1544
1545Wed Sep 13 11:50:35 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
1546
1547 * parse.y (field_access:): Fixed indentation.
1548 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
1549
7e51098e
TT
15502000-09-07 Tom Tromey <tromey@cygnus.com>
1551
1552 Fix for PR gcj/307:
1553 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
1554 JPRIMITIVE_TYPE_P, for arithmetic operators.
1555 (patch_method_invocation): Indentation fix.
1556 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
1557 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
1558 (do_unary_numeric_promotion): Cleaned up code.
1559 (valid_cast_to_p): Handle boolean correctly.
1560
5beededc
TT
15612000-09-27 Tom Tromey <tromey@cygnus.com>
1562
1563 * lex.c (java_read_unicode): Reset bs_count when finished with
1564 `\u' sequence.
1565
f15b9af9
MM
15662000-10-01 Mark Mitchell <mark@codesourcery.com>
1567
1568 Convert to GC.
1569 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
1570 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
1571 (typeck.o): Depend on ggc.h.
1572 * class.c (add_method_1): Use GC functions for allocation.
1573 (init_class_processing): Register roots.
1574 * decl.c (ggc_p): Set to 1.
1575 (pending_local_decls): Make it static.
1576 (push_jvm_slot): Use GC functions for allocation.
1577 (init_decl_processing): Register roots.
1578 (give_name_to_locals): Use GC functions for allocation.
1579 (lang_mark_tree): New function.
1580 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
1581 functions for allocation.
1582 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
1583 * lex.c (java_lex): Use build_string, rather than replicating it
1584 inline.
1585 * parse.y (goal): Add more roots.
1586 (mark_parser_ctxt): New function.
1587 * typeck.c: Include ggc.h.
f6bbde28 1588
99eaf8d4
APB
15892000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
1590
1591 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
1592 contains something else than MODIFY_EXPR.
1593
19e223db
MM
15942000-09-23 Mark Mitchell <mark@codesourcery.com>
1595
1596 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
1597 * Makefile.in (parse.o): Depend on ggc.h.
1598 (class.o): Likewise.
1599 (constants.o): Likewise.
1600 (decl.o): Likewise.
1601 (expr.o): Likewise.
1602 (jcf-parse.o): Likewise.
1603 (jcf-write.o): Likewise.
1604 (mangle.o): Likewise.
1605 * class.c: Include ggc.h.
1606 (build_static_field_ref): Register GC roots.
1607 (layout_class): Likewise.
1608 (init_class_processing): Likewise.
1609 * constants.c: Include ggc.h.
1610 (current_constant_pool_data_ref): Remove.
1611 (tag_nodes): Move it to ...
1612 (get_tag_node): ... here. Register GC roots.
1613 * decl.c: Include ggc.h. Remove many global tree definitions.
1614 (throw_node): Define.
1615 (java_global_trees): Likewise.
1616 (predef_filenames): Make the size a constant.
1617 (init_decl_processing): Adjust accordingly.
1618 (init_decl_processing): Call init_jcf_parse. Register GC roots.
1619 * expr.c: Include ggc.h.
1620 (init_expr_processing): Register GC roots.
1621 (build_invokeinterface): Likewise.
1622 * java-tree.h: Replace extern tree declarations with macros.
1623 (java_global_trees): New variable.
1624 (java_tree_index): New enumeration.
1625 (init_jcf_parse): Declare.
1626 * jcf-parse.c: Include ggc.h.
1627 (current_class): Remove declaration.
1628 (main_class): Likewise.
1629 (all_class_list): Likewise.
1630 (predefined_filename_p): Adjust for constant size of
1631 predef_filenames.
1632 (init_jcf_parse): New function.
1633 * jcf-write.c: Include ggc.h.
1634 (generate_classfile): Register GC roots.
1635 (append_synthetic_attribute): Likewise.
1636 (append_innerclass_attribute_entry): Likewise.
1637 * lang.c: Include ggc.h.
1638 (lang_print_error): Register GC roots.
1639 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
1640 with macros.
1641 * parse.y: Include ggc.h.
1642 (wfl_operator): Remove.
1643 (goal): Register GC roots.
1644 (java_pop_parser_context): Adjust for new field names.
1645 (java_parser_context_save_global): Likewse.
1646 (java_parser_context_restore_global): Likewise.
1647 (java_parser_context_suspend): Likewise.
1648 (java_parser_context_resume): Likewise.
1649 (verify_constructor_circularity): Register GC roots.
1650 (lookup_cl): Likewise.
1651 (java_reorder_fields): Likewise.
1652 (build_current_this): Likewise.
1653 (class_in_current_package): Likewise.
1654 (argument_types_convertible): Likewise.
1655 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
f6bbde28 1656
4c4b521a
TT
16572000-09-14 Tom Tromey <tromey@cygnus.com>
1658
1659 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
1660
6b8a24cd
TT
16612000-09-13 Tom Tromey <tromey@cygnus.com>
1662
1663 * jcf-parse.c: Include <locale.h>.
1664 * jv-scan.c: Include <locale.h>.
1665
86e4b1e4
TT
16662000-09-12 Tom Tromey <tromey@cygnus.com>
1667
1668 * expr.c (pop_type_0): Return `Object' if trying to merge two
1669 interface types.
1670 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
1671 interface types; `Object' is always a valid supertype.
1672
d19cbcb5
TT
16732000-09-12 Tom Tromey <tromey@cygnus.com>
1674
1675 Fix for PR gcj/33:
1676 * jv-scan.c (help): Document --encoding.
1677 (options): Added `encoding' entry.
1678 (OPT_ENCODING): New define.
1679 (main): Handle --encoding.
1680 Include <langinfo.h> if nl_langinfo exists.
1681 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
1682 --encoding.
1683 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
1684 (parse_source_file): Correctly call java_init_lex. Added `finput'
1685 argument. Use nl_langinfo to determine default encoding.
1686 * java-tree.h (current_encoding): Declare.
1687 * parse.y (java_parser_context_restore_global): Don't restore
1688 `finput'.
1689 (java_parser_context_save_global): Don't set `finput' field.
1690 (java_pop_parser_context): Don't restore `finput'. Free old lexer
1691 if required.
1692 * lang.c (current_encoding): New global.
1693 (lang_decode_option): Recognize `-fencoding='.
1694 (finish_parse): Don't close finput.
1695 * parse.h (struct parser_ctxt): Removed `finput' and
1696 `unget_utf8_value' fields. Added `lexer' field.
1697 (java_init_lex): Fixed declaration.
1698 * lex.c (java_new_lexer): New function.
1699 (java_destroy_lexer): Likewise.
1700 (java_read_char): Added `lex' argument. Handle iconv case.
1701 (java_read_unicode): Added `lex' argument. Count backslashes in
1702 lexer structure.
1703 (java_init_lex): Added `finput' and `encoding' arguments. Set
1704 `lexer' field in ctxp.
1705 (BAD_UTF8_VALUE): Removed.
1706 (java_lex): Handle seeing UEOF in the middle of a string literal.
1707 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
1708 (java_lexer): New structure.
1709 (UNGETC): Removed.
1710 (GETC): Removed.
1711 (DEFAULT_ENCODING): New define.
1712 (java_destroy_lexer): Declare.
1713
ee17a290
TT
17142000-09-12 Tom Tromey <tromey@cygnus.com>
1715
1716 Fix for PR gcj/343:
1717 * lex.c (java_init_lex): Initialize java_io_serializable.
1718 * parse.y (java_io_serializable): New global.
1719 (valid_ref_assignconv_cast_p): An array can be cast to
1720 serializable.
1721
d8ea8f28
ZW
17222000-09-10 Zack Weinberg <zack@wolery.cumb.org>
1723
1724 * decl.c, expr.c: Include defaults.h if not already included.
1725 Don't define the *_TYPE_SIZE macros.
1726
0caae6dd
GK
17272000-09-09 Geoffrey Keating <geoffk@cygnus.com>
1728
1729 * typeck.c (build_java_array_type): Correct first parameter
1730 in ADJUST_FIELD_ALIGN invocation.
1731
f0bee8b3
TT
17322000-09-06 Tom Tromey <tromey@cygnus.com>
1733
1734 * lang-specs.h: Also recognize `-femit-class-files'.
1735
3e99f50c
APB
17362000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
1737
1738 * verify.c (merge_types): Load the types to merge if necessary.
1739
3ca8c9ae
AG
17402000-09-02 Anthony Green <green@redhat.com>
1741
1742 * jcf-io.c: Include zlib.h.
1743 (open_in_zip): Read compressed class file archives.
1744 * zipfile.h (ZipDirectory): Add uncompressed_size and
1745 compression_method fields.
1746 * zextract.c (read_zip_archive): Collect file compression info.
1747
e1d565ab
BM
17482000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
1749
f6bbde28 1750 * parse.y (do_resolve_class): Also explore superclasses of
e1d565ab
BM
1751 intermediate enclosing contexts when searching for inner classes.
1752
29f8b718
APB
17532000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
1754
1755 * parse.y (variable_declarator_id:): Better error message.
1756 (expression_statement:): Use YYNOT_TWICE.
1757 (cast_expression:): Likewise.
1758 (assignment:): Likewise.
1759
354e99ce
APB
17602000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
1761
1762 * parse.y (do_merge_string_cste): New locals. Create new
1763 STRING_CSTs each time, use memcpy. Fixes gcj/311.
1764
7c097ee9
HB
17652000-08-07 Hans Boehm <boehm@acm.org>
1766
1767 * boehm.c (mark_reference_fields): Set marking bits for all words in
1768 a multiple-word record.
1769 (get_boehm_type_descriptor): Use the procedure marking descriptor for
1770 java.lang.Class.
f6bbde28 1771
3d919a0e
MS
17722000-08-31 Mike Stump <mrs@wrs.com>
1773
1774 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
1775 jcf-dump$(exeext)): Make parallel safe.
1776
63ad61ed
ZW
17772000-08-29 Zack Weinberg <zack@wolery.cumb.org>
1778
1779 * jcf-parse.c (set_source_filename): Constify a char *.
1780 * jcf-write.c (append_innerclasses_attribute,
1781 make_class_file_name): Constify a char *. Don't recycle a
1782 variable for an unrelated purpose.
1783 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
1784 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
1785
c00f0fb2
APB
17862000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
1787
1788 * expr.c (can_widen_reference_to): Fixed indentation.
1789 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
1790 * parse.y: `finit$' replaces `$finit$' in comments.
1791 (try_builtin_assignconv): Fixed leading comment.
1792
94574545
GM
17932000-08-25 Greg McGary <greg@mcgary.org>
1794
1795 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
1796
6e2aa220
GM
17972000-08-24 Greg McGary <greg@mcgary.org>
1798
1799 * lang.c (lang_decode_option): Use ARRAY_SIZE.
1800 * parse.y (BINOP_LOOKUP): Likewise.
1801
9b1ee05b
AH
18022000-08-22 Andrew Haley <aph@cygnus.com>
1803
1804 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
1805 sign extending. Fixes gcj/321.
1806 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
1807 combining to make a jlong. Fixes gcj/321.
1808
05a3d06e 18092000-08-21 Nix <nix@esperi.demon.co.uk>
f6bbde28 1810
05a3d06e
N
1811 * lang-specs.h: Do not process -o or run the assembler if
1812 -fsyntax-only.
1813
65f69237
AH
18142000-08-16 Andrew Haley <aph@cygnus.com>
1815
1816 * typeck.c (build_java_array_type): Rewrite code to do array
1817 alignment. Take into account back-end macros when aligning array
1818 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
1819 user to set alignment. Fixes gcj/252 and 160.
1820
2e0f0aff
TT
18212000-08-09 Tom Tromey <tromey@cygnus.com>
1822
1175b9b4
TT
1823 * parse.y (check_abstract_method_definitions): Now return `int'.
1824 Check implemented interfaces. Fixes PR gcj/305.
1825
2e0f0aff
TT
1826 * parse.y (patch_switch_statement): Disallow `long' in switch
1827 expressions. Fixes PR gcj/310.
1828
25bdcbc5
APB
18292000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
1830
1831 * decl.c (finit_leg_identifier_node): New global.
1832 (init_decl_processing): Use `finit$' to initialize
1833 finit_identifier_node. Use `$finit$' to initialize
1834 finit_leg_identifier_node.
1835 * expr.c (expand_java_field_op): Use ID_FINIT_P.
1836 * java-tree.h (finit_identifier_node): Changed attached comment.
1837 (finit_leg_identifier_node): New declaration.
1838 (ID_FINIT_P): Take finit_identifier_node and
1839 finit_leg_identifier_node into account. This is a backward
1840 compatibility hack.
1841
81baa09a
APB
18422000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
1843
1844 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
1845 Jan 6 2000 patch.
1846 (generate_bytecode_insns): Check `nargs' before emitting it.
1847 * verify.c (merge_type_state): Fixed typo.
1848 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
1849 generate_bytecode_{conditional,insns}.
1850
458530ee
AG
1851Sun Aug 13 09:41:49 2000 Anthony Green <green@redhat.com>
1852
1853 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
1854 for -pg builds).
1855
34d4df06
APB
18562000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
1857
1858 * class.c (maybe_layout_super_class): Fixed indentation.
1859 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
1860 (java_check_methods): New function declaration.
1861 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
1862 instead of `str_ptr'.
1863 * jcf-write.c (generate_bytecode_insns): Emit number the of args
1864 of a `invokeinterface' at the right time.
1865 * parse.h (WFL_STRIP_BRACKET): New macro.
1866 (SET_TYPE_FOR_RESOLUTION): Use it.
dba41d30 1867 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
34d4df06
APB
1868 (check_class_interface_creation): Don't check for cross package
1869 innerclass name clashes.
dba41d30 1870 (method_header): Behave properly if MDECL is `error_mark_node'.
34d4df06
APB
1871 (method_declarator): Return `error_mark_node' if bogus current
1872 class.
1873 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
1874 (resolve_and_layout): New local `decl_type', set and used. Call
1875 java_check_methods.
1876 (java_check_methods): New method.
1877 (java_layout_classes): Use it.
1878 (resolve_qualified_expression_name): No EH check necessary in
1879 access$<n>.
1880 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
1881 `case' statement.
1882 (patch_assignment): Set DECL_INITIAL on integral final local.
1883
5f1c312a
APB
18842000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
1885
1886 * java-tree.h (flag_extraneous_semicolon): New extern.
1887 * lang-options.h: (-Wextraneous-semicolon): New option.
1888 * lang.c (flag_redundant): Fixed typo in leading comment.
1889 (flag_extraneous_semicolon): New global.
1890 (lang_decode_option): Set `flag_extraneous_semicolon' when
1891 -Wall. Decode `-Wextraneous-semicolon'.
1892 * parse.y (type_declaration:): Removed `SC_TK' hack, added
1893 `empty_statement' rule.
1894 (class_body_declaration): Likewise.
1895 (method_body:): Accept `;' as a method body.
1896 (static_initializer:): Removed `SC_TK' hack.
1897 (constructor_block_end:): Likewise.
1898 (empty_statement:): Report deprecated empty declaration. Fixes
1899 gcj/295
1900
25bdcbc5 19012000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
f0f3a777
APB
1902
1903 * parse.y (build_dot_class_method_invocation): Changed parameter
dba41d30 1904 name to `type'. Build signature from `type' and convert it to a
f0f3a777
APB
1905 STRING_CST if it's an array.
1906 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
1907 to use `ref_type' directly.
1908
64c04091
OP
1909Sun Aug 6 00:47:24 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
1910
1911 * lang-options.h: Added a comma after the last element to avoid
1912 syntax errors when other languages define additional options.
1913
a36556a8
ZW
19142000-08-04 Zack Weinberg <zack@wolery.cumb.org>
1915
1916 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
1917 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
1918 (jc1): Link with $(BACKEND).
1919 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
1920
50e60bc3
ZW
19212000-08-02 Zack Weinberg <zack@wolery.cumb.org>
1922
37620334
ZW
1923 * jvspec.c: Adjust type of second argument to
1924 lang_specific_driver, and update code as necessary.
1925
50e60bc3
ZW
1926 * class.c (build_dtable_decl): Initialize dummy.
1927
f0f3a777
APB
19282000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
1929
1930 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
1931 method bodies not to rule out discarding `<clinit>'; don't use
1932 <clinit> to initialize static fields with constant initializers.
1933
19342000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
1935
1936 * gjavah.c (print_method_info): Added `synth' parameter. Skip
1937 synthetic methods.
1938 (method_synthetic): New global.
1939 (HANDLE_METHOD): Recognize synthetic method and tell
1940 `print_method_info' about it.
1941 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
1942 processing a synthetic method.
1943 * jcf-reader.c (skip_attribute): New function.
1944 ( skip_attribute): Likewise.
1945
19462000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
1947
1948 * parse.y (build_outer_field_access): Fixed comments.
1949 (fix_constructors): Emit the initialization of this$<n> before
1950 calling $finit$.
1951 (resolve_qualified_expression_name): Build an access to `decl' if
1952 necessary.
1953
19542000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
1955
1956 * parse-scan.y (curent_class): Non longer const.
1957 (inner_qualifier, inner_qualifier_length): Deleted.
1958 (current_class_length): New global.
1959 (bracket_count): Fixed typo in leading comment.
1960 (anonymous_count): New global.
1961 (class_instance_creation_expression:): Handle anonymous classes.
1962 (anonymous_class_creation:): New rule.
1963 (push_class_context): Rewritten.
1964 (pop_class_context): Likewise.
1965 (INNER_QUALIFIER): Macro deleted.
1966 (report_class_declaration): call `push_class_context' when
1967 entering the function. `fprintf' format modified not to use
1968 INNER_QUALIFIER.
1969 (report_class_declaration): Assign `package_name' and
1970 `current_class' to NULL separatly.
1971
19722000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
1973
1974 * expr.c (build_invokeinterface): Call layout_class_methods on
1975 target interface.
1976
13107ec0 19772000-07-27 Tom Tromey <tromey@cygnus.com>
f6bbde28 1978 Anthony Green <green@cygnus.com>
13107ec0
TT
1979 Alexandre Petit-Bianco <apbianco@cygnus.com>
1980
1981 * class.c (make_class_data): Create vtable for abstract classes.
1982 (get_dispatch_table): Changed to cope with abstract classes.
1983
da632f2c
APB
19842000-07-27 Tom Tromey <tromey@cygnus.com>
1985
1986 * parse.y (patch_method_invocation): Don't reverse the argument
1987 list when dealing with anonymous class constructors. Fixed typo in
1988 comment.
1989
19902000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
1991
1992 * parse.y (build_alias_initializer_parameter_list): Reverse
1993 crafted list when building aliases for anonymous class
1994 constructors.
1995
1e12ab9b
APB
19962000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
1997
1998 * parse.y (jdep_resolve_class): Don't bother checking potential
1999 innerclass access if `decl' is NULL.
2000 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
2001 WFL.
2002
4c31fe99
APB
20032000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
2004
2005 * parse.c: Remove (again.)
2006
1e12ab9b
APB
20072000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
2008
2009 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
2010 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
2011 outside the `if' statement, alias to innerclass removed, `decl'
2012 used to mark the class complete.
2013
f4530f43
APB
20142000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
2015
2016 * parse.y (simple_name:): Fixed typo in error message.
2017
e7c7bcef
APB
20182000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
2019
2020 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
2021 or its first operand can be error marks.
2022
20232000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
2024
2025 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
2026 * parse.y (method_header): Likewise.
2027
02ae6e2e
APB
20282000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
2029
2030 * parse.y (process_imports): Consider that one might be trying to
2031 import an innerclass. Fixes gcj/254
2032
e7c7bcef
APB
20332000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
2034
2035 * parse.y (find_as_inner_class): Handle the case where the
2036 enclosing context of an innerclass has been loaded as bytecode.
2037
4142b247
APB
20382000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
2039
f6bbde28 2040 * parse.y (simple_name:): Reject `$' in type names.
4142b247
APB
2041 (resolve_type_during_patch): Use `type' as a second
2042 argument to resolve_no_layout. Fixes gcj/257.
2043
cab8e2bd
BM
20442000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
2045
f6bbde28 2046 * parse.y (find_most_specific_methods_list): Select the only
cab8e2bd
BM
2047 non-abstract method even if max has been set.
2048 Fixes gcj/285, gcj/298.
2049
ca2875c4
JS
20502000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
2051
2052 * lang-specs.h: Added %(jc1) to java compiler options.
2053
bfbbc080
ZW
20542000-07-14 Zack Weinberg <zack@wolery.cumb.org>
2055
2056 * .cvsignore: New file.
2057
11b26d72
APB
20582000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
2059
2060 * parse.y (not_accessible_p): Access granted to innerclasses
2061 (indirectly) extending the reference type. Fixes gcj/249.
2062
20632000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
2064
2065 * parse.y (patch_method_invocation): Fixed comment.
2066 (maybe_use_access_method): Build this$<n>s to the context of the
2067 target method, or a type that extends it. Fixes gcj/242.
2068
649c9142
MM
20692000-07-13 Mark Mitchell <mark@codesourcery.com>
2070
2071 * parse.c: Remove.
2072
ee97d354
APB
20732000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
2074
2075 * parse.y (fold_constant_for_init): Avoid bullish conversion.
2076
44fadf1e
TT
20772000-07-13 Tom Tromey <tromey@cygnus.com>
2078
2079 * lang-specs.h: Added %{I*}.
2080
ea414c97
ZW
20812000-07-13 Zack Weinberg <zack@wolery.cumb.org>
2082
2083 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
2084
792abd35
MM
20852000-07-12 Mark Mitchell <mark@codesourcery.com>
2086
2087 * parse-scan.c: Remove.
2088
11b26d72
APB
20892000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
2090
2091 * class.c (set_super_info): Handled protected inner classes.
2092 (common_enclosing_context_p): Bail early if arguments aren't both
2093 inner classes.
2094 (get_access_flags_from_decl): Handle private and protected inner
2095 classes.
2096 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
2097 (CLASS_PROTECTED): Likewise.
dba41d30 2098 (struct lang_type): New bitfield `poic'.
11b26d72
APB
2099 * parse.y (jdep_resolve_class): Call check_inner_class_access on
2100 inner classes only.
2101 (check_inner_class_access): Renamed arguments, added
2102 comments. Handles protected inner classes (fixes gcj/225)
2103 (not_accessible_p): Fixed comments. Avoid handling inner classes.
2104
21052000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
2106
2107 * parse.y (resolve_qualified_expression_name): Verify qualified
dba41d30 2108 access to `this'. Fixes gcj/239.
11b26d72 2109
e67eb1a0 21102000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
2f2bd00a 2111
e67eb1a0
APB
2112 * jcf-write.c (generate_classfile): Don't install ConstantValue
2113 for null pointers.
2f2bd00a 2114
11b26d72
APB
21152000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
2116
2117 * parse.y (resolve_qualified_expression_name): Handle inner class
2118 access. Fixes gcj/256.
2119
629d4b4d
APB
21202000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
2121
2122 * jcf-write.c (generate_classfile): Properly install the
2123 ConstantValue attribute and the initial value constant pool index
2124 on string constants.
2125 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
2126 class files.
2127
0c2b8145
APB
21282000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
2129
2130 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
2131 construct.
2132 * parse.y (find_as_inner_class): Fixed typo.
2133 (do_resolve_class): Explore enclosing contexts when searching for
2134 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
2135 (check_inner_class_access): Check `decl' which can be null in case
2136 of previous errors.
2137
21382000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
2139
dba41d30 2140 * java-tree.h (java_debug_context): Declared `extern'.
0c2b8145
APB
2141 (safe_layout_class): Likewise.
2142 * parse.y (resolve_field_access): Field must be `static' in order
2143 to be replaced by its initial value. Added comments.
2144 (find_applicable_accessible_methods_list): Fixed typo.
2145 (find_most_specific_methods_list): Methods found in innerclasses
2146 take over methods founds in the enclosing contexts.
2147 (java_complete_tree): Loosen restrictions on the type of DECLs
2148 that can be replaced by their initialization values.
dba41d30 2149 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
0c2b8145 2150
0267da64
TT
21512000-07-05 Tom Tromey <tromey@cygnus.com>
2152
2153 * Make-lang.in (PARSE_DIR): New macro.
2154 (PARSE_RELDIR): Likewise.
2155 (PARSE_C): Likewise.
2156 (PARSE_SCAN_C): Likewise.
2157 ($(PARSE_C)): New target.
2158 ($(PARSE_SCAN_C)): Likewise.
2159 (SET_BISON): New macro.
2160 (BISONFLAGS): Likewise.
2161 (JAVABISONFLAGS): Likewise.
2162
1bbee75b
BM
21632000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
2164
f6bbde28
ZW
2165 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
2166 argument on the first pass for CNI as well as JNI.
2167 (print_method_info): Set up method name on the first pass only.
2168
98a52c2c
APB
21692000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
2170
2171 * parse.y (parser_qualified_classname): Removed parameter
2172 `is_static'.
2173 (create_interface): Removed first passed parameter to
2174 parser_qualified_classname.
2175 (create_class): Likewise. Don't install alias on static
2176 innerclasses. Fixes gcj/275.
2177
21782000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
2179
2180 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
2181 debugable statement with empty_stmt_node. Fixes gcj/272
2182
21832000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
2184
2185 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
2186 gcj/271.
2187
c1c8f8cc
APB
21882000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
2189
2190 * jcf-write.c (push_long_const): Appropriately cast short negative
2191 constant to jword.
2192
cf1b2274
APB
21932000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
2194
2195 * parse.y (verify_constructor_super): Use loop variable
2196 `m_arg_type' initialized with `mdecl_arg_type'.
2197
6eaeeb55
TT
21982000-06-29 Tom Tromey <tromey@cygnus.com>
2199
2200 * parse.y (resolve_field_access): Handle case where `type_found'
2201 is NULL.
2202
18ee3d5e
APB
22032000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
2204
2205 * expr.c (lookup_field): The same field can be found through two
2206 different interface. Don't declare it ambiguous in that case.
2207
61d5c158
TT
22082000-06-27 Tom Tromey <tromey@cygnus.com>
2209
2210 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
2211 follows \r, then unget it at a lower level.
2212
70541f45
TT
22132000-06-26 Tom Tromey <tromey@cygnus.com>
2214
2215 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
2216 java_complete_tree.
2217
774d2baf
TT
22182000-06-25 Tom Tromey <tromey@cygnus.com>
2219
2220 * parse.y (for_statement): Wrap expression in a WFL if it is a
2221 constant. For PR gcj/268.
2222
d6baf6f5
APB
22232000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
2224
2225 * parse.y (do_resolve_class): Minor optimiztion in the package
2226 list search. Removed unecessary test and return statement.
2227 (valid_ref_assignconv_cast_p): Order of arguments to
2228 enclosing_context_p fixed.
2229
120f0c10
TT
22302000-06-24 Tom Tromey <tromey@cygnus.com>
2231
ae4a4c88
TT
2232 * expr.c (lookup_field): Print error and return error_mark_node if
2233 field reference is ambiguous.
2234
120f0c10
TT
2235 * parse.y (check_abstract_method_definitions): Also check if
2236 `other_method' is abstract.
2237
cf1748bf
APB
22382000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
2239
2240 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
2241 classes.
2242 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
dba41d30 2243 (struct lang_type): New field `pic'.
cf1748bf
APB
2244 (CLASS_PRIVATE): New macro.
2245 * parse.y (check_inner_class_access): New function.
2246 (jdep_resolve_class): Call it.
2247
f1ff439a
TT
22482000-06-23 Tom Tromey <tromey@cygnus.com>
2249
2250 * parse.y (patch_incomplete_class_ref): Initialize the returned
2251 class. For PR gcj/260.
2252
9a7ab4b3
APB
22532000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
2254
2255 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
2256
22572000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
2258
2259 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
2260 Java specific checks.
2261 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
2262 screened by DECL_P.
2263 * java-tree.def (CASE_EXPR): Marked 'e'.
2264 (DEFAULT_EXPR): Likewise.
2265 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
2266 screened by DECL_P.
2267 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
2268 Java specific checks.
2269 (generate_bytecode_insns): Test try_block for BLOCK before using
2270 BLOCK_EXPR_BODY.
2271 * parse.y (build_wfl_wrap): Added `location' argument. Set
2272 EXPR_WFL_LINECOL accordingly.
2273 (dim_expr:): Wrap constants with WFLs.
2274 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
2275 (resolve_package): Check for `stmt' not being a BLOCK before
2276 building a debuggable statement with it.
2277 (make_qualified_primary): Added extra parameter to build_wfl_wrap
2278 invocation.
2279 (resolve_field_access): Make sure `decl' is a DECL before treating
2280 it as such.
2281 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
2282 IDENTIFIER_NODE before treating it as such.
2283 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
2284 treating it as such.
2285 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
2286 to be applied only on non array types.
2287
22882000-06-16 Per Bothner <per@bothner.com>
2289
2290 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
2291 define in terms of DECL_RESULT, as that fails when --enable-checking.
f6bbde28 2292
ffb1f63d
KG
22932000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2294
2295 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
2296 types the same in comparison.
2297 (CHECK_OP): Add static prototype.
2298
11cf4d18
JJ
22992000-06-13 Jakub Jelinek <jakub@redhat.com>
2300
2301 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
2302 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
2303 * parse.c: Rebuilt.
2304
5ac9118e
KG
23052000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2306
2307 * decl.c (create_primitive_vtable): Prototype.
2308
2309 * jcf-write.c (generate_bytecode_insns): Initialize variable
2310 `saved_context'.
2311
2312 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
2313
ad69b5b6
BM
23142000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
2315
2316 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
2317 to track searched classes, and do not search the same class more than
2318 once. Call find_applicable_accessible_methods_list on immediate
2319 superclass, instead of search_applicable_method_list on all ancestors.
2320 Fix for PR gcj/238.
2321
cf1748bf
APB
23222000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
2323
2324 * parse.y (register_fields): Permit static fields in inner classes
2325 if they are final. Fix for PR gcj/255.
2326
9a7ab4b3
APB
23272000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
2328
2329 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
2330 * parse.y (find_in_imports): Returned type changed to void,
2331 leading comment fixed.
2332 (register_package): New function.
2333 (qualify_and_find): Likewise.
2334 (package_declaration:): Use `register_package'.
2335 (single_type_import_declaration:): Removed local variable
2336 `node'. Added missing `;' for consistency.
2337 (type_import_on_demand_declaration:): Use `chainon' to link new
2338 entries.
2339 (lookup_field_wrapper): Lookup local variables defined in outer
2340 contexts first.
2341 (java_complete_class): Don't reverse the list of imported on demand.
2342 (do_resolve_class): Reorganized. Removed local variable
2343 `original_name'. Call `qualify_and_find' with the current package
2344 name, invoke `find_in_imports_on_demand' right after. Call
2345 `qualify_and_find' with the packages we've seen so far. Fixed
2346 operations numbering in comments.
2347 (java_expand_class): Don't reverse `package_list'.
2348 (find_most_specific_methods_list): New local variables `abstract'
2349 and `candidates'. Use them to pick the right method.
2350
14d075d8
TT
2351Tue Jun 6 11:39:05 2000 Tom Tromey <tromey@ferrule.cygnus.com>
2352
2353 * parse.y (check_modifiers_consistency): Don't subtract out
2354 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
2355
603832a0
PT
23562000-06-04 Philipp Thomas <pthomas@suse.de>
2357
2358 * Makefile.in (INTLLIBS): New.
2359 (LIBS): Add above.
2360 (DEPLIBS): Ditto.
2361
8f975c18
APB
2362Fri Jun 2 16:48:55 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
2363
2364 * class.c (get_dispatch_table): Build the vtable dummy entry list
2365 element with a null purpose. Fixed leading comment.
2366 (build_dtable_decl): Build an accurate dtable type when appropriate
2367 and use it.
2368
2e761e49
RH
23692000-06-02 Richard Henderson <rth@cygnus.com>
2370
2371 * lang.c (lang_get_alias_set): New.
2372
0f145be8
APB
23732000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
2374
2375 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
2376 before using it as the accessed field.
2377
2771fe54
TT
23782000-05-31 Tom Tromey <tromey@cygnus.com>
2379
2380 * java-tree.h (boolean_array_vtable, byte_array_vtable,
2381 char_array_vtable, short_array_vtable, int_array_vtable,
2382 long_array_vtable, float_array_vtable, double_array_vtable):
2383 Declare.
2384 * expr.c (get_primitive_array_vtable): New function.
2385 (create_primitive_vtable): New function.
2386 (java_lang_expand_expr): Enable code to statically generate
2387 arrays.
2388 * decl.c (init_decl_processing): Create primitive vtables.
2389 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
2390 short_array_vtable, int_array_vtable, long_array_vtable,
2391 float_array_vtable, double_array_vtable): Define.
2392
30a3caef
ZW
23932000-05-26 Zack Weinberg <zack@wolery.cumb.org>
2394
2395 * java/parse.y (find_applicable_accessible_methods_list):
2396 Don't add an uninitialized value to the list.
2397
b8c5b1c6
TT
23982000-05-25 Tom Tromey <tromey@cygnus.com>
2399
40aaba2b
TT
2400 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
2401 when trying to see if field's class should be initialized. Always
2402 initialize field's declaring class, not qualified class.
2403 For PR gcj/162.
2404
b8c5b1c6
TT
2405 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
2406 `wfl_operator', to maybe_build_primttype_type_ref.
2407 Fixes PR gcj/235.
2408
6518c7b5
BM
24092000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
2410
2411 * parse.y (patch_method_invocation): Don't try to lookup methods
2412 in primitive types.
2413
611a4b87
APB
24142000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
2415
2416 * parse.y (resolve_field_access): Call the appropriate <clinit>
2417 before accessing the length of a static array. Craft a decl for
2418 the field while its time. Fixes PR gcj/129.
f6bbde28 2419
6b48deee
APB
24202000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
2421
2422 * parse.y (resolve_package): Correctly set `*next' (was off by
2423 one.)
2424 (resolve_qualified_expression_name): Fixed comment.
2425
0ba154aa
APB
2426Thu Apr 27 17:47:34 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
2427
f6bbde28 2428 * jcf-parse.c (jcf_parse_source): Reset current_class and
0ba154aa
APB
2429 current_function_decl to NULL before parsing a new file.
2430
c280e37a
APB
2431Thu Apr 27 17:25:33 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
2432
2433 * parse.y (block_end:): If the collected block doesn't feature a
2434 statement, insert an empty statement.
2435
92d83515
APB
24362000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
2437
f6bbde28
ZW
2438 * parse.y (maybe_yank_clinit): New function.
2439 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
2440 end of the list of methods belonging to a class.
2441 (java_complete_expand_method): Check whether <clinit> is really
2442 necessary and expand it accordingly.
92d83515 2443
ec5bb3cf
APB
24442000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
2445
2446 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
2447 processed by the method's switch statement.
2448
67db0ce7
TT
24492000-05-19 Tom Tromey <tromey@cygnus.com>
2450
2451 * java-tree.h: Added init state enum.
2452 * decl.c (emit_init_test_initialization): Initialize class
2453 initialization check variable by looking at class' state.
2454
43490bec
TT
24552000-05-19 Tom Tromey <tromey@cygnus.com>
2456
2457 * java-tree.h (build_instanceof): Declare.
2458 (build_get_class): Declare.
2459 * parse.y (patch_binop): Use build_instanceof.
2460 * expr.c (build_instanceof): New function. If class is final,
2461 don't make a function call.
2462 (expand_java_INSTANCEOF): Use it.
2463 (build_get_class): New function.
2464
062edaed
AO
24652000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2466
2467 * jcf-write.c (generate_classfile): Scan the source_file for
2468 slashes with the right pointer variable.
2469
078721e1
AC
2470Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
2471
2472 * lang.c (lang_decode_option): Update -Wunused flags by calling
2473 set_Wunused.
2474 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
2475
46543024 24762000-05-09 Zack Weinberg <zack@wolery.cumb.org>
3b304f5b
ZW
2477
2478 * check_init.c (check_init): Constify local char *.
2479 * class.c (push_class): Constify local char *.
2480 * java_tree.h: Update prototypes.
2481 * jcf-io.c (open_class): Constify filename parameter and
2482 return value.
2483 (find_class): Remove redundant string copy. Cast return from
2484 open_class.
2485 * jcf-parse.c (read_class, parse_class_file, yyparse):
2486 Constify local char *.
2487 * jcf-write.c (generate_bytecode_insns, generate_classfile):
2488 Constify local char *.
2489 * jcf.h (JCF): Constify filename and classname.
2490 (JCF_FINISH): Cast args to FREE to char * when appropriate.
2491 * lang.c (init_parse): Constify parameter and return value.
2492 * lex.c (java_get_line_col): Constify filename parameter.
2493 * parse.h: Constify parser_ctxt.filename. Update prototypes.
2494 * parse.y (java_parser_context_suspend,
2495 issue_warning_error_from_context, safe_layout_class): Constify
2496 local char *.
2497 * parse.c: Regenerate.
2498
4c6a8973
TT
24992000-05-08 Tom Tromey <tromey@cygnus.com>
2500
2501 * expr.c (build_jni_stub): Cache the result of
2502 _Jv_LookupJNIMethod.
2503
e117276e
APB
25042000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
2505
2506 * decl.c (predef_filenames_size): Now 7.
2507 (predef_filenames): New seventh entry.
2508
652f2504
TT
25092000-05-04 Tom Tromey <tromey@cygnus.com>
2510
2511 * boehm.c (mark_reference_fields): Don't mark RawData fields.
2512 Keep track of when we've seen a reference field after a
2513 non-reference field.
2514 (get_boehm_type_descriptor): Handle case where we see
2515 non-reference fields but no trailing reference field.
2516 * decl.c (rawdata_ptr_type_node): Define.
2517 (init_decl_processing): Initialize rawdata_ptr_type_node.
2518 * java-tree.h (rawdata_ptr_type_node): Declare.
2519
ccedaff3
KG
25202000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2521
2522 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
2523 specifiers in calls to fprintf.
2524
dd5d6281
TT
25252000-05-03 Andrew Haley <aph@cygnus.com>
2526
2527 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
2528
2529 * javaop.h (WORD_TO_INT): New function.
2530 (IMMEDIATE_s4): Use WORD_TO_INT.
2531 * jcf.h (JPOOL_INT): Ditto.
2532
2533 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
2534 separator.
2535
dd5d6281 25362000-04-19 Tom Tromey <tromey@cygnus.com>
7145d9fe
TT
2537
2538 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
2539 on native function.
2540 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
2541 JNI methods.
2542 * expr.c (build_jni_stub): New function.
2543 * lang-specs.h: -fjni and -femit-class-file are incompatible.
2544 * parse.c: Rebuilt.
2545 * parse.y (java_complete_expand_methods): Expand a native method
2546 and call build_jni_stub if -fjni given.
2547 * lang-options.h: Document -fjni.
2548 * lang.c (flag_jni): New global.
2549 (lang_f_options): Added `jni' entry.
2550 * java-tree.h (soft_lookupjnimethod_node,
2551 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
2552 Declare.
2553 (flag_jni): Declare.
2554 (build_jni_stub): Declare.
2555 (struct lang_decl): Added `native' flag.
2556 (METHOD_NATIVE): Redefined to use `native' field of lang specific
2557 structure.
2558 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
2559 soft_jnipopsystemframe_node): New globals.
2560 (init_decl_processing): Set them. _Jv_InitClass only takes one
2561 argument.
2562
2563 * java-tree.def: Put into `C' mode.
2564
e815887f
TT
25652000-04-27 Tom Tromey <tromey@cygnus.com>
2566
2567 Fix for PR gcj/2:
2568 * expr.c (expand_invoke): Generate check to see if object pointer
2569 is null in nonvirtual invocation case.
2570 * java-tree.h (soft_nullpointer_node): Declare.
2571 * decl.c (soft_nullpointer_node): New global.
2572 (init_decl_processing): Initialize soft_nullpointer_node.
2573 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
2574 or `private' methods.
2575 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
2576
ad81223c
APB
2577Wed Apr 26 14:29:33 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
2578
2579 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
2580 from <clinit>
2581
f1acc01e
TT
25822000-04-26 Tom Tromey <tromey@cygnus.com>
2583
2584 * zextract.c (find_zip_file_start): New function.
2585 (read_zip_archive): Use it.
2586
e803d3b2
APB
25872000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
2588
2589 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
2590
152de068
APB
25912000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
2592
2593 * class.c (common_enclosing_context_p): New function.
2594 * java-tree.h (common_enclosing_context_p): Added prototype.
2595 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
2596 classes sharing an outer context with the current instance.
2597 * parse.y (build_access_to_thisn): Fixed leading comment.
2598 (verify_constructor_super): New local `supper_inner'. Skip
2599 enclosing context argument in the case of inner class constructors.
2600 (patch_method_invocation): Insert proper context as second
2601 parameter to pure inner class constructor super invocations.
2602
93220702
APB
2603Mon Apr 24 14:59:36 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
2604
2605 * parse.y (end_class_declaration): Reset the interface number
2606 counter.
2607
dfb99c83
APB
26082000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
2609
f6bbde28
ZW
2610 * parse.y (source_start_java_method): Deleted unecessary code.
2611 (patch_method_invocation): Fixed comment.
dfb99c83 2612
e60a8c26
RL
26132000-04-24 Robert Lipe <robertlipe@usa.net>
2614
2615 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
2616
3c8c10b8
TT
26172000-04-23 Tom Tromey <tromey@cygnus.com>
2618
2619 * boehm.c (mark_reference_fields): Use int_byte_position.
2620
8a008c41
TT
26212000-04-22 Tom Tromey <tromey@cygnus.com>
2622
2623 * boehm.c (mark_reference_fields): Only call byte_position on
2624 non-static fields.
2625
d5f76aba
TT
26262000-04-22 Tom Tromey <tromey@cygnus.com>
2627
2628 * boehm.c (mark_reference_fields): Added `last_view_index'
2629 argument. Use DECL_FIELD_OFFSET to determine field's offset.
2630
a40d21da
APB
2631Thu Apr 20 17:41:28 2000 Mo DeJong <mdejong@cygnus.com>
2632
2633 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
2634 * parse.y (check_class_interface_creation): Fixed comments. Select
2635 permitted modifiers for (inner) interfaces. Changed error message
2636 to report rejected modifiers used with local classes.
2637
26382000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
2639
2640 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
2641 of directly inherited type considered in scope.
2642 * parse.y (do_resolve_class): Search inherited classes for inner
2643 classes.
2644
473e7b07
TT
26452000-04-20 Tom Tromey <tromey@cygnus.com>
2646
2647 * parse.y (not_accessible_p): Use member's class, not current
2648 class, when doing inheritance check for protected reference.
2649 Fixes PR gcj/124.
2650
c52fbf0f
JS
2651Thu Apr 20 18:20:58 2000 Jason Schroeder <shrode@subnature.com>
2652
2653 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
2654
f2760b27
APB
26552000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
2656
2657 * parse.y (lookup_field_wrapper): Search for final local aliases.
2658 (resolve_expression_name): Let lookup_field_wrapper search for
2659 final local aliases. Force the value of `name' if one is found.
2660 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
2661 an expression name. Fixed comments.
2662
807bc1db
APB
26632000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
2664
2665 * parse.y (yyerror): `msg' can be null, don't use it in that case.
2666
ecb36604
TT
26672000-04-19 Tom Tromey <tromey@cygnus.com>
2668
2669 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
2670
48a840d9
APB
26712000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
2672
2673 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
2674
83c1f628
TT
26752000-04-18 Tom Tromey <tromey@cygnus.com>
2676
2677 PR gcj/211:
2678 * gjavah.c (utf8_cmp): Changed return value.
2679 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
2680 result.
2681 (cxx_keywords): New global.
2682 (get_field_name): Handle new result of cxx_keyword_subst.
2683 (print_method_info): Likewise.
2684
a7384840
BM
26852000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
2686
f6bbde28 2687 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
a7384840 2688 with a newline, for CNI.
f6bbde28 2689 (print_stub_or_jni): Print a space or newline before method name for
a7384840
BM
2690 CNI as well as JNI.
2691 (print_cxx_classname): Don't write leading "::" in CNI stub method.
f6bbde28 2692 (process_file): Include gcj/cni.h if generating CNI stubs.
a7384840 2693
3e0768f0
TT
26942000-04-16 Tom Tromey <tromey@cygnus.com>
2695
2696 * gjavah.c (decompile_method): Use print_field_name.
2697 Fixes PR gcj/205.
2698
48a840d9
APB
26992000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
2700
2701 * parse.y (java_expand_classes): Reverse the package list once.
2702 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
2703 reduction.
2704 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
2705 the `==' and `!=' operators.
2706
cedea510
APB
27072000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
2708
2709 * jcf-write.c (generate_bytecode_insns): At invokation time,
2710 always relate an interface method to the type of its selector.
f6bbde28 2711
e803d3b2
APB
27122000-04-05 Tom Tromey <tromey@cygnus.com>
2713
2714 Fix for PR gcj/2:
2715 * expr.c (expand_invoke): Generate check to see if object pointer
2716 is null in nonvirtual invocation case.
2717 * java-tree.h (soft_nullpointer_node): Declare.
2718 * decl.c (soft_nullpointer_node): New global.
2719 (init_decl_processing): Initialize soft_nullpointer_node.
2720 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
2721 or `private' methods.
2722 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
2723
bc2874c9
TT
27242000-04-05 Tom Tromey <tromey@cygnus.com>
2725
2726 Fix for PR gcj/140:
2727 * parse.y (check_final_assignment): Recognize assignments to the
2728 `length' field of an array when generating class files.
2729
256172c4
APB
27302000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
2731
2732 * class.c (decl_hash): Prototype removed.
2733 (decl_compare): Likewise.
2734
e0fc4118
TT
27352000-04-05 Tom Tromey <tromey@cygnus.com>
2736
2737 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
2738 * parse.y (check_modifiers_consistency): Check for final/volatile
2739 clash. Fixes PR gcj/164.
2740
e0422ed0
APB
27412000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
2742
2743 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
2744 made global.
2745 (java_hash_compare_tree_node): Renamed from `decl_compare, made
2746 global.
2747 (add_method_1): Use `java_hash_hash_tree_node' and
2748 `java_hash_compare_tree_node'.
2749 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
2750 (java_hash_compare_tree_node): Likewise.
2751 * parse.y (find_applicable_accessible_methods_list): Create,
2752 delete and use a hash table to remember already searched interfaces.
2753
4200941b
MW
27542000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
2755
2756 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
2757 with latest entry.
2758
c0b864fc
KG
27592000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2760
2761 * boehm.c (mark_reference_fields, set_bit): Prototype.
2762 (set_bit): Un-ANSI-fy definition.
2763
2764 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
2765 Prototype.
2766
2767 * decl.c (emit_init_test_initialization): Likewise.
2768
2769 * gjavah.c (jni_print_char): Likewise.
2770
2771 * parse.y (create_new_parser_context): Likewise.
2772
7a678b64 2773Thu Mar 30 15:26:56 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
64ea4a5e
APB
2774
2775 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
2776 patch missing hunk. Fixed indentation.
2777
05411ecf
TT
27782000-03-30 Tom Tromey <tromey@cygnus.com>
2779
2780 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
2781 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
2782
acbedd7c
APB
27832000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
2784
2785 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
2786 when negative *before* using it as an array index.
2787 * ChangeLog: Fixed typo.
2788
0981a859
APB
27892000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
2790
2791 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
2792 to 0 when it reaches -1.
2793
27942000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
2795
2796 * jcf-parse.c (get_constant): Properly cast `num' during the
acbedd7c 2797 invocation of `add_double'.
0981a859
APB
2798 * jcf-write.c (push_long_const): Properly cast `lo' before
2799 comparing it to short bounds.
2800 * parse-scan.y (interface_declaration:): Rule re-arrange so that
2801 `interface_body:' is reduced after the current interface is
2802 pushed.
2803
a843e0ce
TT
28042000-03-26 Tom Tromey <tromey@cygnus.com>
2805
2806 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
2807 Java-specific `-f' option.
2808
ad41cc2a
RK
2809Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2810
2811 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
2812 Adjust order of making types.
2813 Make bitsize_*_node values.
2814
770ae6cc
RK
2815Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2816
2817 * class.c (make_field_value): Use byte_position.
2818 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
2819 (java_array_data_offset): Likewise.
2820 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
2821 bzero call.
2822
165f37bc
APB
28232000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
2824
2825 * parse.y (check_abstract_method_definitions): New local
2826 `end_type_reached'. Make sure we also consider `end_type'.
0981a859
APB
2827 (java_check_abstract_method_definitions): Make sure we eventually
2828 consider `java.lang.Object'.
2829 (maybe_use_access_method): Don't use access method if not in the
2830 context of a pure inner class or if the method's context is right.
2831 (find_applicable_accessible_methods_list): New static flag
165f37bc 2832 `object_done'. Don't search abstract classes as interfaces. Fixed
0981a859
APB
2833 indentation. Fixed the `java.lang.Object' only search. Search
2834 class interface(s) first, then fully search enclosing contexts.
2835 (find_most_specific_methods_list): Pick the closest candidate when
165f37bc
APB
2836 they're all abstract.
2837
124906f9
APB
2838Mon Mar 20 08:58:51 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
2839
2840 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
dba41d30 2841 properly initialize `finished_label'. Don't emit gotos for empty
124906f9
APB
2842 try statements.
2843
c14f7160
ML
2844