]> gcc.gnu.org Git - gcc.git/blame - gcc/java/ChangeLog
tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
[gcc.git] / gcc / java / ChangeLog
CommitLineData
820cc88f
DB
12005-07-08 Daniel Berlin <dberlin@dberlin.org>
2
3 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
4 (LABEL_PENDING_CHAIN): Ditto.
5 (LABEL_PC): Ditto.
6 (DECL_BIT_INDEX): Ditto.
7
cb14ee6a
BM
82005-07-07 Bryce McKinlay <mckinlay@redhat.com>
9
10 PR java/18119
11 * parse.y (inner_class_accessible): New function. Logic moved from
12 check_inner_class_access.
13 (check_inner_class_access): Use inner_class_accessible.
14 (resolve_inner_class): Simplify arguments. Create circularity hash
15 here. Keep looking for classes if we found one that was inaccessible.
16 Return the inaccessible class only if there is no other match.
17 (do_resolve_class): Update for new resolve_inner_class arguments.
18 Don't create circularity_hash here.
19
ca12deb4
BM
202005-07-07 Bryce McKinlay <mckinlay@redhat.com>
21
22 PR java/21045
23 * parse.y (add_exception_to_throws): New function.
24 (purge_unchecked_exceptions): Removed.
25 (get_constructor_super): Renamed from verify_constructor_super. Now
26 returns the super constructor after verification.
27 (java_complete_expand_method): Don't use purge_unchecked_exceptions
28 or save/restore the exception list.
29 (check_thrown_exceptions): Add uncaught exceptions in anonymous
30 class initializers and constructors to the throws clause of the method.
31
b226520a
BM
322005-07-05 Bryce McKinlay <mckinlay@redhat.com>
33
34 PR java/19674
35 * parse.y (interface_member_declaration): Allow empty statements in
36 interface declarations.
37
ef330312
PB
382005-07-05 Paolo Bonzini <bonzini@gnu.org>
39
40 * Makefile.in (parse.o): Adjust dependencies.
41 * parse.y: Include tree-dump.h.
42
dee15844
JM
432005-07-02 Joseph S. Myers <joseph@codesourcery.com>
44
45 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
46 flag for quoting.
47
200bbdce
AP
482005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
49
50 * parse.y (issue_warning_error_from_context): Call
51 pp_output_formatted_text to be able to get the buffer.
52
532005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
8ce2456a
AP
54
55 * parse.y (issue_warning_error_from_context): Update for the
56 renaming of pp_format_text to pp_format.
57
617a1b71
PB
582005-06-28 Paul Brook <paul@codesourcery.com>
59
60 * decl.c (java_init_decl_processing): Call
61 default_init_unwind_resume_libfunc.
62
4ebe7d93
TT
632005-06-27 Tom Tromey <tromey@redhat.com>
64
65 PR java/21540, PR java/13788:
66 * parse.y (java_complete_lhs) <CASE_EXPR>: Use
67 fold_constant_for_init.
68 (patch_binop): Added 'folding' argument. Updated all callers.
69 (patch_unaryop) <NOP_EXPR>: New case.
70 (fold_constant_for_init) <NOP_EXPR>: Likewise.
71 (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
72
6e0fbdd9
JH
732005-06-25 Jan Hubicka <jh@suse.cz>
74
75 * builtins.c (define_builtin): Accept new flags parameter.
76 (initialize_builtins): Mark the builtins const and nothrow accordingly.
77
f12c30a8
KC
782005-06-25 Kelley Cook <kcook@gcc.gnu.org>
79
80 * all files: Update FSF address in copyright headers.
81
aca02b7e
TT
822005-06-24 Tom Tromey <tromey@redhat.com>
83
84 * verify-impl.c (verify_instructions_0): Correctly handle
85 situation where PC falls off end.
86
c0f6dc94
BM
872005-06-23 Bryce McKinlay <mckinlay@redhat.com>
88
89 PR java/20697
90 * parse.y (find_most_specific_methods_list): Remove special case for
91 inner classes.
92
fbb4c46b
TT
932005-06-15 Tom Tromey <tromey@redhat.com>
94
95 PR libgcj/21906:
96 * class.c (make_method_value): Use soft_abstractmethod_node for
97 abstract method.
98 * java-tree.h (soft_abstractmethod_node): New define.
99 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
100 * decl.c (java_init_decl_processing): Initialize
101 soft_abstractmethod_node.
102
7bfb5ccc
GK
1032005-06-13 Geoffrey Keating <geoffk@apple.com>
104
105 * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
106
885beb81
PB
1072005-06-13 Per Bothner <per@bothner.com>
108
109 * expr.c (int highest_label_pc_this_method,
110 start_label_pc_this_method): New globals.
111 (lookup_label): Add start_label_pc_this_method to pc for label, and
112 update highest_label_pc_this_method. This prevents conflicts between
113 labels from different methods.
114 * java-tree.h: Declare new globals.
115 * jcf-parse.c (parse_class_file): If needed bump
116 start_label_pc_this_method and reset highest_label_pc_this_method.
117
924b2450
TT
1182005-06-13 Tom Tromey <tromey@redhat.com>
119
120 PR java/21844:
121 * parse.y (nested_field_access_p): Handle case where outer field
122 is inherited by enclosing class.
123
d35310e3
PB
1242005-06-12 Per Bothner <per@bothner.com>
125
126 * class.c (inherits_from_p): Do load_class if needed.
127
74118f15
KG
1282005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
129
130 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
131 * java-tree.h (parse_error_context): Move...
132 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
133 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
134 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
135
77462a3c
RS
1362005-06-08 Roger Sayle <roger@eyesopen.com>
137
138 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
139
4b794eaf
JJ
1402005-06-06 Jakub Jelinek <jakub@redhat.com>
141
142 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
143 msgid for argument name.
144 * gjavah.c (error): Likewise.
145 * java-tree.h (parse_error_context): Likewise.
146 * parse.y (parse_error_context, parse_warning_context,
147 issue_warning_error_from_context): Likewise.
148
4267db98
TT
1492005-06-01 Tom Tromey <tromey@redhat.com>
150
151 PR java/21722:
152 * class.c (build_static_field_ref): Don't fold constant fields if
153 current class is from a .class file and we're using indirect
154 dispatch.
155
4c714dd4
KG
1562005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
157
158 * java/verify-glue.c: Don't include errors.h and include toplev.h.
159 * java/Make-lang.in: Updates dependencies.
160
38c9d142
RM
1612005-05-26 Ranjit Mathew <rmathew@hotmail.com>
162
163 PR java/19870.
164 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
165 NESTED_FIELD_ACCESS_IDENTIFIER_P.
166 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
167 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
168 * jcf-write.c (generate_classfile): Use
169 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
170 OUTER_FIELD_ACCESS_IDENTIFIER_P.
171 * parse.y (build_outer_field_access): Rename to
172 build_nested_field_access. Support static fields and outer-to-inner
173 class accesses.
174 (outer_field_access_p): Rename to nested_field_access_p. Support
175 static fields and generalise to outer-to-inner class and sibling
176 inner class accesses.
177 (outer_field_expanded_access_p): Rename to
178 nested_field_expanded_access_p and support static fields.
179 (outer_field_access_fix): Rename to nested_field_access_fix and
180 support static fields.
181 (build_outer_field_access_expr): Rename to
182 build_nested_field_access_expr and support static fields.
183 (build_outer_field_access_methods): Rename to
184 build_nested_field_access_methods and support static fields. For
185 static fields, generate accessors without class instance parameters.
186 (build_outer_field_access_method): Rename to
187 build_nested_field_access_method and support static fields.
188 (build_outer_method_access_method): Use
189 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
190 OUTER_FIELD_ACCESS_IDENTIFIER_P.
191 (resolve_expression_name): Consider static field accesses across
192 nested classes.
193 (resolve_qualified_expression_name): Likewise.
194 (java_complete_lhs): Use nested_field_access_fix instead of
195 outer_field_access_fix.
196 (patch_unary_op): Rename outer_field_flag to nested_field_flag.
197 Use nested_field_expanded_access_p instead of
198 outer_field_expanded_access_p. Use nested_field_access_fix instead
199 of outer_field_access_fix.
200 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
201 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
202
a04323f4
BM
2032005-05-26 Bryce McKinlay <mckinlay@redhat.com>
204
205 * decl.c (GCJ_BINARYCOMPAT_ADDITION,
206 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
207 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
208 MINOR_BINARYCOMPAT_ABI_VERSION): New.
209 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
210 (parse_version): Calculate version ID using new method. Use bit-flags
211 for flag_indirect_dispatch and flag_bootstrap_classes.
212
6de33afa
RH
2132005-05-25 Richard Henderson <rth@redhat.com>
214
215 PR libgcj/21692
216 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
217 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
218 DECL_CONTEXT; avoid pushdecl_top_level.
219 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
220 (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
221 (layout_class_method): Likewise.
222 * decl.c (java_mark_cni_decl_local): New.
223 (java_mark_class_local): Use it.
224 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
225 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
226 (struct lang_decl_func): Add local_cni;
227 (struct lang_decl_var): Add class_field, vtable.
228 (java_mangle_decl): Declare.
229 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
230 * mangle.c: Remove dup obstack.h; include langhooks-def.h.
231 (mangle_obstack_1): New.
232 (java_mangle_decl): Remove obstack argument. Call mangle_class_field,
233 mangle_vtable, and mangle_local_cni_method_decl. Fall back to
234 lhd_set_decl_assembler_name for things that don't need mangling.
235 (mangle_class_field): Rename from java_mangle_class_field, make
236 static, don't call init_mangling or finish_mangling.
237 (mangle_vtable): Similarly.
238 (mangle_local_cni_method_decl): New.
239 (init_mangling): Remove obstack argument. Use &mangle_obstack_1,
240 gcc_assert, and MANGLE_RAW_STRING.
241 (finish_mangling): Use gcc_assert, remove if 0 debugging code.
242
5c498b10
DD
2432005-05-25 DJ Delorie <dj@redhat.com>
244
245 * class.c (set_constant_value): Move warning control from if() to
246 warning(OPT_*).
247
e0f391dd
RH
2482005-05-24 Richard Henderson <rth@redhat.com>
249
250 * builtins.c (define_builtin): Don't call make_decl_rtl.
251 * constants.c (build_constant_data_ref): Likewise.
252 * class.c (build_utf8_ref): Likewise.
253 (build_fieldref_cache_entry, build_static_field_ref): Likewise.
254 (get_dispatch_table, layout_class_method): Likewise.
255 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
256 by hand.
257 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
258 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
259 to determine if we need a non-zero address.
260 * decl.c (builtin_function): Don't call make_decl_rtl.
261 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
262 * expr.c (build_known_method_ref): Don't call make_decl_rtl.
263 * resource.c (compile_resource_data): Likewise.
264 * parse.y (resolve_field_access): Re-word comment to avoid
265 building DECL_RTL.
266
8cfb12bf
RH
2672005-05-24 Richard Henderson <rth@redhat.com>
268
269 * class.c (registered_class): Take it out of class_roots; turn into
270 a vec of trees.
271 (register_class): Make static. Don't duplicate decl node. Use
272 VEC_safe_push.
273 (emit_register_classes): Use VEC_iterate. Use output_constant
274 instead of assemble_integer. Don't call mark_decl_referenced
275 directly.
276 * java-tree.h (register_class): Remove decl.
277
6fb09909
PB
2782005-05-19 Paolo Bonzini <bonzini@gnu.org>
279
280 PR java/17845
281
282 * parse.y (register_package, package_list): Remove.
283 (package_declaration): Do not call register_package.
284 (do_resolve_class): Do not use package_list.
285
d7f35e48
GP
2862005-05-15 Gerald Pfeifer <gerald@pfeifer.com>
287
288 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
289 unused variable.
290
b4220f64
TT
2912005-05-15 Tom Tromey <tromey@redhat.com>
292
293 PR java/21519:
294 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
295 NOTE_PUSH.
296
f5ea88a3
BM
2972005-05-12 Aaron Luchko <aluchko@redhat.com>
298
8cfb12bf 299 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
f5ea88a3 300
cca1655e
TT
3012005-05-11 Tom Tromey <tromey@redhat.com>
302
303 * gcj.texi (Code Generation): Document -fbootstrap-classes.
304 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
305 (parse_version): Use it.
306 * lang.opt (-fbootstrap-classes): New option.
307
27e928ed
PB
3082005-05-10 Paolo Bonzini <bonzini@gnu.org>
309
310 PR java/21436
311 * class.c (maybe_layout_super_class): Look for imports in this_class.
312 * parse.h (ctxp_for_generation_last): New.
313 (do_resolve_class): Add a parameter.
314 * parse.y (ctxp_for_generation_last): New.
315 (java_pop_parser_context): Add at end of list.
316 (find_in_imports, find_in_imports_on_demand): Look in ctxp
317 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
318 the given type are NULL.
319 (do_resolve_class): Look into the imports of the new second parameter.
320 Adjust recursive calls.
321 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
322 calls to do_resolve_class.
323 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
324 (java_complete_class): Do not do that here.
325
d8be0aab
TF
3262005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
327
328 PR java/20309
329 * Make-lang.in (java): Add gjnih.
330 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
331 (GJNIH_OBJS): New variable.
332 (gjnih$(exeext)): New target.
333 (JAVA_MANFILES): Add gjnih.1.
334 (java.uninstall): Add gjnih.1.
335 (java.mostlyclean): Add gjnih.
336 (java.maintainer-clean): Add gjnih.1.
337 (java/gjavah-jni.o): New target.
338 (.INTERMEDIATE): Add gjnih.pod.
339 (gjnih.pod): New target.
340 * config-lang.in (stagestuff): Add gjnih.
341 * gcj.texi (Top): Add gjnih node.
342 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
343 -bootclasspath options.
344 (Invoking gjnih): New node.
345 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
346 (TOOLNAME): New macro.
347 (error): Replace hard-coded gcjh with TOOLNAME.
348 (process_file): Likewise.
349 (usage): Likewise.
350 (version): Likewise.
351 (help): Likewise. Add help output for -force, -old, -trace and -J
352 options.
353 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
354 (options): Add force, old, trace and J fields.
355 (main): Handle -force, -old, -trace and -J options.
356
a67aa338
TT
3572005-05-03 Tom Tromey <tromey@redhat.com>
358
359 PR java/21245:
360 * gjavah.c (main): Unlink output file on error.
361
f384d658
KH
3622005-05-03 Kazu Hirata <kazu@cs.umass.edu>
363
364 * constants.c, jvgenmain.c, lang.opt, resource.c: Update
365 copyright.
366
22e8617b
TT
3672005-04-29 Tom Tromey <tromey@redhat.com>
368
369 * expr.c (build_jni_stub): Updated for change to build_block.
370
5e4b794a
AP
3712005-04-29 Andrew Pinski <pinskia@gcc.gnu.org>
372
373 * expr.c (force_evaluation_order): Declare 'saved' earlier.
374
2c80f015
AH
3752005-04-28 Andrew Haley <aph@redhat.com>
376
377 PR java/19285
378 * java-tree.h (soft_resolvepoolentry_node): New.
379 (alloc_constant_fieldref): Declare.
380 * expr.c (expand_java_field_op): Don't call class_init for
381 accesses to static fields with indirect dispatch.
382 * builtins.c (initialize_builtins): Add "__builtin_expect".
383 * decl.c (soft_resolvepoolentry_node): New variable.
384 (java_init_decl_processing): Create a decl for
385 "_Jv_ResolvePoolEntry".
386 * class.c (build_fieldref_cache_entry): New function.
387 (build_static_field_ref): Rewrite for indirect dispatch.
388 * constants.c (find_name_and_type_constant_tree): New function.
389 (alloc_constant_fieldref): Likewise.
390 (build_constants_constructor): Handle CONSTANT_Fieldref and
391 CONSTANT_NameAndType.
392
393 PR java/21115
394 * expr.c (force_evaluation_order): Convert outgoing args smaller
395 than integer.
396
b40c360d
BM
3972005-04-27 Bryce McKinlay <mckinlay@redhat.com>
398
399 * gcj.texi (libgcj Runtime Properties): Remove obsolete
400 gnu.gcj.runtime.NameFinder.* system properties. Update documentation
401 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
402
2653bb0c
KG
4032005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
404
405 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
406 to `unlock_stream' with `unlock_std_streams'.
407
58a690ae
JJ
4082005-04-25 Jakub Jelinek <jakub@redhat.com>
409
410 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
411 instead of just expr.h.
412
98a3dad4
KG
4132005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
414
415 * gjavah.c (main): Unlock the stdio streams.
416 * jcf-dump.c (main): Likewise.
417 * jv-scan.c (main): Likewise.
418 * jvgenmain.c (main): Likewise.
419
d4ee4d25
DD
4202005-04-23 DJ Delorie <dj@redhat.com>
421
422 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
423 parse.y: Adjust warning() callers.
424
55f96367
BM
4252005-04-21 Bryce McKinlay <mckinlay@redhat.com>
426
427 * gcj.texi (Object fields): Change "Integer" to "Int" in example
428 contructor.
429
fcda2002
BM
4302005-04-20 Bryce McKinlay <mckinlay@redhat.com>
431
432 * gcj.texi: Fix typos and bogus example.
433
9be3f9b1
KH
4342005-04-19 Kazu Hirata <kazu@cs.umass.edu>
435
436 * except.c: Fix a comment typo.
437
61e72330
JB
4382005-04-19 Julian Brown <julian@codesourcery.com>
439
440 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
441 indirect dispatch with PIC.
442
d393cb72
AH
4432005-04-18 Andrew Haley <aph@redhat.com>
444
445 * java-except.h (struct eh_range.handler): Remove unused field.
446 (handle_nested_ranges): Remove function declaration.
447 (sanity_check_exception_range): Add function declaration.
448 * verify.c (verify_jvm_instructions): Remove call to
449 handle_nested_ranges.
450 * verify-glue.c (verify_jvm_instructions_new): Call
451 sanity_check_exception_range.
452 * except.c (link_handler, eh_range_freelist, link_handler,
453 handle_nested_ranges): Remove.
454 (add_handler): Rewrite.
455 (sanity_check_exception_range): New function.
456 (print_ranges): New function.
457
e22a7bcf
JB
4582005-04-13 Julian Brown <julian@codesourcery.com>
459
460 * decl.c (finish_method): Give methods once-only linkage.
461
0b026622
RS
4622005-04-11 Richard Sandiford <rsandifo@redhat.com>
463
464 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
465
d502f210
KG
4662005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
467
468 * java-tree.h: Don't use PARAMS().
469
e87047c6
PB
4702005-04-07 Per Bothner <per@bothner.com>
471
472 * class.c (push_class): By default, suppress debug output.
473 (finish_class): Enable debug output for classes we're emitting.
474
53b42091
AH
4752005-04-07 Andrew Haley <aph@redhat.com>
476
477 * gcj.texi: Correct gcj-dbtool instructions.
478
df044388
KH
4792005-04-04 Kazu Hirata <kazu@cs.umass.edu>
480
481 * gcj.texi: Fix a typo.
482 * lang.c: Fix a comment typo.
483
b6121641
TF
4842005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
485
486 * gcj.texi (Invoking gij): Add descriptions of new -X options.
487 Mention recognized-and-ignored compatibility options.
488 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
489 JvFree.
490 (About CNI): Add Memory allocation section.
491
77c10b31
TT
4922005-04-01 Tom Tromey <tromey@redhat.com>
493
494 * decl.c (java_init_decl_processing): Fix types of
495 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
496 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
497 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
498
cd9c7bd2
JH
4992005-03-31 Jan Hubicka <jh@suse.cz>
500
501 * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
502 * class.c: Include cgraph.h
503 (make_local_functoin_alias): Mark aslias as needed.
504 * resource.c: Include cgraph.h
505 (compile_resource_data): Go via cgraph interface.
506
15f188a4
ILT
5072005-03-30 Ian Lance Taylor <ian@airs.com>
508
509 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
510
2d47d84c
TT
5112005-03-30 Tom Tromey <tromey@redhat.com>
512
513 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
514 inner_class_info_index==0 or outer_class_info_index==0.
515
dc0a6205
TT
5162005-03-29 Tom Tromey <tromey@redhat.com>
517
518 * gcj.texi (libgcj Runtime Properties): Document
519 gnu.gcj.runtime.endorsed.dirs.
520
206318ea
AG
5212005-03-24 Anthony Green <green@redhat.com>
522
523 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
524 'gcj-dbtool -p'.
525
85c4f26a
TT
5262005-03-23 Tom Tromey <tromey@redhat.com>
527
528 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
529 (parse_version): Use it.
530
d101034c
JM
5312005-03-23 Joseph S. Myers <joseph@codesourcery.com>
532
533 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
534
6726a1f5
AH
5352005-03-18 Andrew Haley <aph@redhat.com>
536
537 PR java/20522
538 * decl.c (update_aliases): Don't update variables that are about
539 to die.
540 (maybe_poplevels): Add comment.
541
3af57c70
BM
5422005-03-17 Bryce McKinlay <mckinlay@redhat.com>
543
544 PR java/20502
545 * jcf-parse.c (duplicate_class_warning): New function.
546 (java_parse_file): Call duplicate_class_warning if
547 CLASS_FROM_CURRENTLY_COMPILED_P is already set.
548 (parse_zip_file_entries): Likewise. Also set
549 CLASS_FROM_CURRENTLY_COMPILED_P.
550
d8e97847
AH
5512005-03-16 Andrew Haley <aph@redhat.com>
552
553 * expr.c (expand_java_arrayload): Don't generate a
554 NullPointerException based on the type of the node.
555 (build_java_array_length_access): Likewise.
556
a1286ef5
ZW
5572005-03-15 Zack Weinberg <zack@codesourcery.com>
558
559 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
560
558b8548
TT
5612005-03-11 Tom Tromey <tromey@redhat.com>
562
563 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
564 (libgcj Runtime Properties): Document the default .db.
565
2743ba1c
RM
5662005-03-10 Ranjit Mathew <rmathew@hotmail.com>
567
568 PR java/20312
569 * parse.y (checks_throws_clauses): Check exceptions list even when
570 the base class does not come from a source file being compiled.
571 (java_complete_lhs): Remove unused variable 'wfl'.
572
9e1af876
RM
5732005-03-09 Ranjit Mathew <rmathew@hotmail.com>
574
575 PR java/20338
a1286ef5 576 * decl.c (finish_method): Emit _Jv_InitClass for private static
9e1af876 577 methods inside inner classes as well.
2a6464a6 578
9e1af876 5792005-03-08 Julian Brown <julian@codesourcery.com>
2a6464a6
JB
580 * Revert patch from 2005-03-08 for causing bootstrap failure on
581 ppc-darwin.
582
9148ab01
JB
5832005-03-08 Julian Brown <julian@codesourcery.com>
584
585 * decl.c (finish_method): Give methods once-only linkage.
586
b1e11d1e
BM
5872005-03-07 Ranjit Mathew <rmathew@hotmail.com>
588
a1286ef5 589 * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
b1e11d1e 590
a2da2c9a
BM
5912005-03-07 Bryce McKinlay <mckinlay@redhat.com>
592
593 * verify-glue.c (vfy_is_assignable_from): Perform static check using
594 can_widen_reference_to if the C++ ABI is in use.
595 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
596 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
597 type_isresolved, init_state, set_pc, state_get_pc,
598 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
599 (verify_fail): Report the current PC from the verifier context.
600 (free_state): Remove #if 0 block to enable this function.
601 (free_verifier_context): Call free_state on state_list iterator
602 values before freeing them.
603 * expr.c (pop_type_0): Pop correct type for error message when stack
604 contains a multi-word type.
605
6062005-03-07 Ranjit Mathew <rmathew@hotmail.com>
607
608 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
609 for known NULL array length access.
610
7f8b151b
TT
6112005-03-07 Tom Tromey <tromey@redhat.com>
612
613 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
614
1ddc0328
KH
6152005-03-06 Kazu Hirata <kazu@cs.umass.edu>
616
617 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
618 typeck.c: Update copyright.
619
ecf71365
RM
6202005-03-06 Ranjit Mathew <rmathew@hotmail.com>
621
622 Remove xref code.
623 * xref.c, xref.h: Remove file.
624 * Make-lang.in (java/xref.o): Remove.
625 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
626 * lang.c (flag_emit_xref): Remove definition.
627 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
628 * typeck.c (convert): Remove use of do_not_fold.
629 * parse.y (do_not_fold): Remove definition.
630 (parser grammar): Remove xref code.
631 (maybe_create_class_interface_decl, create_class): Likewise.
632 (register_fields, method_header, finish_method_declaration): Likewise.
633 (declare_local_variables, source_end_java_method): Likewise.
634 (java_complete_expand_classes): Do not set do_not_fold.
635 (java_complete_expand_method): Remove xref code.
636 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
637 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
638 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
639 (patch_synchronized_statement, patch_throw_statement): Likewise.
640 (maybe_build_class_init_for_field): Likewise.
641
3f724eb8
KH
6422005-03-05 Kazu Hirata <kazu@cs.umass.edu>
643
644 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
645 instead of IS_NON_TYPE_CODE_CLASS.
646
7235c300
AH
6472005-03-04 Andrew Haley <aph@redhat.com>
648
a1286ef5
ZW
649 PR java/18362
650 * class.c (set_method_index): Don't set method_index if it is
651 NULL_TREE.
652 (layout_class_method): Don't complain about "non-static method foo
653 overrides static method" in the case of indirect dispatch.
7235c300 654
cea91480
KG
6552005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
656
657 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
658 warning.
659 * Make-lang.in: Don't elide warnings in jcf-io.c.
660
7cea62b4
PB
6612005-03-01 Per Bothner <per@bothner.com>
662
663 PR java/8608
664 * check-init.c (wfl): Remove static.
665 (final_assign_error, check_init): Replace calls to parse_error_context
666 by plain error.
667 (check_init): Save, set, and restore input_location for each exp.
668
837491bc
PB
6692005-03-01 Per Bothner <per@bothner.com>
670
671 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
672 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
673 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
674
027b7c36
PB
6752005-03-01 Per Bothner <per@bothner.com>
676
677 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
678
bc71e4a2
TF
6792005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
680
681 PR libgcj/16923
682 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
683 JvVMOption.
684
84b6a4d2
TT
6852005-02-22 Tom Tromey <tromey@redhat.com>
686
687 PR java/20056:
688 * verify-impl.c (EITHER): New define.
689 (types_compatible): Handle it.
690 (check_field_constant): Use it.
691
1870a43b
TT
6922005-02-18 Tom Tromey <tromey@redhat.com>
693
e022a6cb
TT
694 PR java/20056:
695 * verify-impl.c (types_equal): Fixed test.
696
1870a43b
TT
697 PR java/20056:
698 * verify-glue.c (vfy_class_has_field): New function.
699 * verify.h (vfy_class_has_field): Declare.
700 * verify-impl.c (check_field_constant): Added 'putfield'
701 argument.
702 (verify_instructions_0): Updated.
703 (types_equal): New function.
704
adfec6a6
TT
7052005-02-14 Tom Tromey <tromey@redhat.com>
706
707 PR java/19921:
708 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
709 stack effect of multianewarray.
710
891df09c
AH
7112005-02-14 Andrew Haley <aph@redhat.com>
712
713 PR java/19907
714 * expr.c (expand_byte_code): Call promote_arguments().
715 (promote_arguments): New function.
7235c300 716 * decl.c (check_local_unnamed_variable): Remove special case for
891df09c
AH
717 new verifier.
718 (find_local_variable): Promote all boolean types to int
719 when searching for local variable decls.
a1286ef5 720
537677ba
KH
7212005-02-12 Kazu Hirata <kazu@cs.umass.edu>
722
723 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
724 parse-scan.y: Update copyright.
725
7b45aab4
PB
7262005-02-11 Per Bothner <per@bothner.com>
727
728 PR java/15543
729 * parse-scan.y (input_location): Remove variable.
730 (main_input_filename): New - replaces input_filename, which isn't
731 settable if USE_MAPPED_LOCATION.
732 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
733 so we don't reference input_location or wfl_operator in that case.
734 * jv-scan.c (expand_location): Remove - no longer used.
735 (main): Set main_input_filename rather than input_filename.
736
c6a912da
RH
7372005-02-09 Richard Henderson <rth@redhat.com>
738
739 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
740 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
741
86641a95
MD
7422005-02-08 Marcin Dalecki <martin@dalecki.de>
743
744 * expr.c (add_type_assertion): Use the proper enumeration type,
745 since this is what htab_find_slot() is expecting.
746
706bb773
JM
7472005-02-06 Joseph S. Myers <joseph@codesourcery.com>
748
749 * gcj.texi: Update copyright dates.
750
f8845935
TT
7512005-02-02 Tom Tromey <tromey@redhat.com>
752
753 * gcj.texi (libgcj Runtime Properties): Default library_control
754 to 'cache'.
755
55967ba2
RM
7562005-02-02 Ranjit Mathew <rmathew@hotmail.com>
757
758 PR java/15543
759 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
760 (modifiers) when square brackets are present in a declaration for
761 a final paramter.
762 * jv-scan.c (main): Set input_filename and input_line.
763
3d4da704
TT
7642005-02-01 Tom Tromey <tromey@redhat.com>
765
766 PR java/19742:
767 * gjavah.c (get_field_name): Don't override name for JNI header.
768
8ddd633a
RS
7692005-02-01 Roger Sayle <roger@eyesopen.com>
770
771 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
772 of unsigned types using iushr and lushr JVM bytecodes.
773
55967ba2 7742005-02-01 Ranjit Mathew <rmathew@hotmail.com>
f619dcab
RM
775
776 PR java/19738
777 * gjavah.c (jni_print_float): Do not emit floating-point
778 initialiser for a static final field.
779 (jni_print_double): Likewise.
780
22f8a068
MM
7812005-02-01 Mark Mitchell <mark@codesourcery.com>
782
783 Revert:
784 2005-01-31 Mark Mitchell <mark@codesourcery.com>
785 * gjavah.c (print_field_info): Mark static data members of
786 floating-point type with "__extension__".
787
8c94c75a
MM
7882005-01-31 Mark Mitchell <mark@codesourcery.com>
789
790 * gjavah.c (print_field_info): Mark static data members of
791 floating-point type with "__extension__".
792
7f75bb83
RM
7932005-02-01 Ranjit Mathew <rmathew@hotmail.com>
794
795 PR java/9157
796 * parse.y (build_string_concatenation): Remove redundant if.
797 (patch_conditional_expr): Attempt to patch_string() the condition
798 of a ?: as well, in addition to its other operands.
799
60b5ee6b
TT
8002005-01-25 Tom Tromey <tromey@redhat.com>
801
802 * Make-lang.in (java/java-tree-inline.o): Removed.
803
c5e72f51 8042005-01-25 Ranjit Mathew <rmathew@hotmail.com>
31fc696c
RM
805
806 PR java/19070
807 * parse.y (patch_binop): Allow comparisons against NULL only
808 if the other operand is of a reference type.
809
2a4d0626
TT
8102005-01-24 Tom Tromey <tromey@redhat.com>
811
812 * java-tree.h (gcj_abi_version): Declare.
813 * class.c (make_class_data): Push gcj_abi_version into "next"
814 field. Renamed field.
815 * decl.c (gcj_abi_version): New global.
816 (parse_version): New function.
817 (java_init_decl_processing): Call it. Renamed 'next' field.
818 Include version.h.
819 (GCJ_BINARYCOMPAT_ADDITION): New define.
820
d5f62555
RS
8212005-01-24 Roger Sayle <roger@eyesopen.com>
822
823 PR java/19295
824 * jcf-write.c (generate_bytecode_insns): Conversions between
825 integer types of the same precision shouldn't generate widening
826 or narrowing conversion bytecodes.
827
6aa9e91a
KH
8282005-01-22 Kazu Hirata <kazu@cs.umass.edu>
829
830 * java-except.h, java-tree.h: Remove unused prototypes.
831
155d49d7
AP
8322005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
833
834 PR java/18091:
835 * jcf-write.c (perform_relocations): Don't call memcpy if source
836 and destination are the same.
837
6db1446e
TT
8382005-01-17 Tom Tromey <tromey@redhat.com>
839
840 * verify-impl.c (get_short): Sign extend.
841 (get_int): Likewise.
842
88910b6a
RM
8432005-01-12 Ranjit Mathew <rmathew@hotmail.com>
844
845 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
846 with TYPE_SIZE.
847
2b816e14
RM
8482005-01-10 Ranjit Mathew <rmathew@hotmail.com>
849
850 * verify.c: Revert to the version before the BC-ABI merge.
851
5bf8aebc
RM
8522005-01-10 Ranjit Mathew <rmathew@hotmail.com>
853
854 PR java/19277
855 * check-init.c (check_init): Take care of references that do not
856 have an explicit final variable declaration (e.g. array length
857 access) for pre/post in/de-crement operators.
858
b927d3a4
MW
8592005-01-08 Mark Wielaard <mark@klomp.org>
860
861 * parse.y (process_imports): Allocate (and free) original_name only
862 when not already defined.
863 * jcf-parse.c (read_class): Free results of find_class() and
864 lrealpath().
865 (java_parse_file): Keep pointer to head of file_list and free when
866 done. Free result of lrealpath().
867
b4a49222
TT
8682005-01-05 Tom Tromey <tromey@redhat.com>
869
870 * gcj.texi (Standard Properties): java.ext.dirs is now used.
871
521fce52
AH
8722004-12-20 Andrew Haley <aph@redhat.com>
873
874 * typeck.c: Use fold_convert for ints and booleans.
875
cd5fcd33
AH
8762004-12-17 Andrew Haley <aph@redhat.com>
877
878 PR java/18931
879 * typeck.c (convert): Use a CONVERT_EXPR when converting to
880 BOOLEAN_TYPE or CHAR_TYPE.
881 (convert_to_boolean, convert_to_char) : Remove.
882 * convert.h (convert_to_boolean, convert_to_char) : Remove.
883 * expr.c (expand_load_internal): Do type conversion if type is not
884 as required.
a1286ef5 885
e50e6b88
DS
8862004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
887
eb536e6b 888 PR target/18459
e50e6b88
DS
889 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
890 Update comment.
891
477c6c35
AH
8922004-12-07 Andrew Haley <aph@redhat.com>
893
9e6a1ba9 894 PR java/18811:
477c6c35
AH
895 * jcf-parse.c (load_class): Remove sanity test for missing inner
896 class file.
a1286ef5 897
6e07ee6d
TT
8982004-12-06 Tom Tromey <tromey@redhat.com>
899
900 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
901 (java.uninstall): Likewise.
902 (java.maintainer-clean): Likewise.
903 (.INTERMEDIATE): Likewise.
904 (java.install-man): Likewise.
905 (gcj-dbtool.pod): New target.
906 * gcj.texi (Code Generation): Document -findirect-dispatch.
907 (libgcj Runtime Properties): Document
908 gnu.gcj.precompiled.db.path.
909 (Top): Link to "Invoking gcj-dbtool".
910
a58d7453
TT
9112004-12-06 Tom Tromey <tromey@redhat.com>
912
913 PR java/14853:
914 * java-tree.h (extract_field_decl): Declare.
915 * parse.y (extract_field_decl): Renamed from
916 strip_out_static_field_access_decl. No longer static.
917 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
918
c56c2878
TT
9192004-12-03 Tom Tromey <tromey@redhat.com>
920
921 * lang.c (flag_new_verifier): Define.
922 (java_post_options): Set flag_new_verifier if indirect dispatch
923 is being used.
924 * lang.opt (fnew-verifier): Removed.
925
8b45a0d3
TT
9262004-12-03 Tom Tromey <tromey@redhat.com>
927
928 PR bootstrap/14614:
929 * Make-lang.in (java.install-common): Only install transformed
930 gcjh if gcj-cross exists.
931
2360c81b
AH
9322004-12-03 Andrew Haley <aph@redhat.com>
933
934 PR java/18812
935 * except.c (link_handler): Patch 'outer' field of siblings of the
936 range we're demoting.
937
3381c28f 9382004-12-03 Andrew Haley <aph@redhat.com>
a1286ef5
ZW
939
940 PR java/18697
3381c28f
AH
941 * class.c (layout_class_method): Don't fail to override a method
942 simply because it has DECL_ARTIFICIAL set.
943
5c5d79d2
TT
9442004-12-02 Tom Tromey <tromey@redhat.com>
945
946 PR java/16675:
947 * parse.y (craft_constructor): Special case null_pointer_node.
948
ea7b59ba
TT
9492004-12-02 Tom Tromey <tromey@redhat.com>
950
951 PR java/18741:
952 * java-gimplify.c (java_gimplify_expr): Don't call
953 SET_EXPR_LOCATION unless wrapped tree is an expression.
954
ca6b9955
PB
9552004-11-27 Per Bothner <per@bothner.com>
956
957 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
958 Fix fencepost error in 'i', which got executed one too many times.
959 Also, fold memcpy into explicit loop, as originally intended.
960 Also, free temporary 'buf' which otherwise leaks.
961
ad500466
PB
9622004-11-27 Per Bothner <per@bothner.com>
963
964 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
965 local static variables if not USE_MAPPED_LOCATION.
966
0b1214ef
KH
9672004-11-27 Kazu Hirata <kazu@cs.umass.edu>
968
969 * class.c, decl.c, expr.c: Fix comment typos.
970
532815a7
AP
9712004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
972
973 PR java/18305
974 * decl.c (end_java_method): Call
975 attach_init_test_initialization_flags on all the init_decls.
976 * parse.y (attach_init_test_initialization_flags): Move to ...
977 * expr.c (attach_init_test_initialization_flags): here and
978 support BIND_EXPR also.
979 * java-tree.h (attach_init_test_initialization_flags): Prototype.
980 * jcf-parse.c (parse_class_file): Don't disable class init
981 optimization.
982
597cdf4f
JM
9832004-11-25 Joseph S. Myers <joseph@codesourcery.com>
984
985 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
986 in diagnostics.
987
eb9744a7
RH
9882004-11-24 Richard Henderson <rth@redhat.com>
989
990 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
991 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
992
36739040
TT
9932004-11-24 Tom Tromey <tromey@redhat.com>
994
6a4877c4
TT
995 * verify.c (defer_merging): Don't use C++-style comment.
996 * verify.h (java_opcode): Added java_opcode_end.
997 * class.c (build_class_ref): Remove C++ comment and old FIXME.
998
528d9c63
TT
999 * verify-impl.c (vfy_push_type): Removed bogus "return".
1000 (initialize_stack): Use vfy_alloc and vfy_free.
1001 (verify_instructions_0): Likewise.
1002
36739040
TT
1003 * Merged gcj-abi-2-dev-branch to trunk.
1004
10052004-11-24 Andrew Haley <aph@redhat.com>
1006
1007 * jcf-parse.c (parse_class_file): Set file_start_location.
1008
10092004-11-10 Tom Tromey <tromey@redhat.com>
1010
1011 * class.c (make_field_value): Don't call build_static_field_ref.
1012 (build_static_field_ref): Don't emit direct references when using
1013 indirect dispatch.
1014
1015 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
1016 -verbose:class into man page synopsis.
1017
10182004-11-09 Tom Tromey <tromey@redhat.com>
1019
1020 * expr.c (build_java_arraystore_check): Still generate check if
1021 element type is itself an array.
1022
10232004-11-08 Tom Tromey <tromey@redhat.com>
1024
1025 * java-tree.h (soft_check_assignment_node): Removed.
1026 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
1027 * decl.c (java_init_decl_processing): Don't initialize
1028 soft_check_assignment_node.
1029
10302004-11-05 Tom Tromey <tromey@redhat.com>
1031
1032 * class.c (layout_class_methods): Don't add Miranda methods when
1033 using indirect dispatch.
1034
10352004-11-05 Bryce McKinlay <mckinlay@redhat.com>
1036
1037 * class.c (make_class_data): Call emit_assertion_table to set the
1038 'assertion_table' field.
1039 (build_signature_for_libgcj): Move here from expr.c.
1040 (add_assertion_table_entry): New function. Callback for assertion
1041 hashtable traversal.
a1286ef5 1042 (emit_assertion_table): New. Take class argument, and generate
36739040
TT
1043 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
1044 * decl.c (init_decl_processing): Define assertion_entry_type record.
1045 Push 'assertion_table' class field instead of 'verify'.
1046 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
1047 (type_assertion_hash): Include 'assertion_code' in hash.
1048 (add_type_assertion): Rewritten. Take class and assertion_code
1049 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
1050 (can_widen_reference_to): Use new add_type_assertion() arguments.
a1286ef5 1051 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
36739040
TT
1052 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
1053 (verify_identifier_node): Removed.
1054 (assertion_entry_type, assertion_table_type): New.
1055 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
1056 assertion code definitions.
1057 (struct type_assertion): Add assertion_code. Rename 'source_type' and
1058 'target_type' to 'op1' and 'op2'.
1059 (add_type_assertion): Declare.
1060 (lang_printable_name_wls): Remove unused definition.
1061 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
1062 to emit runtime assertion.
1063 (vfy_note_stack_type): Clean up non-C90 declarations.
1064 (vfy_note_local_type): Likewise.
1065 * verify.h (vfy_is_assignable_from): Declare.
1066 * verify-impl.c (is_assignable_from_slow): Remove unused function.
a1286ef5 1067 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
36739040
TT
1068 instead of is_assignable_from_slow().
1069 (types_compatible): Reinstate ref_compatible() call.
1070
10712004-11-04 Tom Tromey <tromey@redhat.com>
1072
1073 * class.c (build_static_field_ref): Reverted previous patch.
1074
1075 * class.c (build_static_field_ref): Don't emit direct references
1076 when using indirect dispatch.
1077
10782004-11-03 Tom Tromey <tromey@redhat.com>
1079
1080 * expr.c (expand_java_arrayload): Set lhs_type_node.
1081 (expand_java_arraystore): Set rhs_type_node.
1082
10832004-11-02 Tom Tromey <tromey@redhat.com>
1084
1085 * jcf-parse.c (compute_class_name): Use filename length from zip
1086 directory, not strlen.
1087
1088 * expr.c (expand_invoke): Mark new interface methods as abstract.
1089
10902004-11-01 Tom Tromey <tromey@redhat.com>
1091
1092 * verify-impl.c (push_jump): Removed check for uninitialized
1093 objects.
1094 (push_exception_jump): Likewise.
1095 (handle_ret_insn): Likewise.
1096 (handle_jsr_insn): Likewise.
1097 (state_check_no_uninitialized_objects): Removed.
1098
1099 * decl.c (check_local_unnamed_variable): Recognize
1100 promoted-to-int parameters when using the new verifier.
1101 * expr.c (expand_java_arraystore): Explicitly request array type
1102 when using new verifier.
1103 (expand_java_arrayload): Likewise.
1104 (invoke_build_dtable): Don't pass object_type_node as
1105 expression argument to build_java_indirect_ref.
1106 (build_java_check_indexed_type): Do nothing.
1107 (build_java_arraystore_check): Handle case where array doesn't
1108 have array type.
1109 (build_java_array_length_access): Likewise.
1110 (expand_invoke): Handle case where interface overrides a method
1111 from Object.
1112 (pop_type_0): Always succeed for reference types.
1113 (process_jvm_instruction): Don't pop a value in a dead
1114 exception handler.
1115 (pop_arguments): Convert arguments to correct types.
1116
11172004-10-29 Andrew Haley <aph@redhat.com>
1118
1119 * jcf-parse.c (give_name_to_class): Remove line that was
1120 incorrectly merged.
1121
11222004-10-29 Andrew Haley <aph@redhat.com>
1123
1124 * jcf-parse.c (set_source_filename): Add code to build new sfname.
1125
11262004-10-20 Andrew Haley <aph@redhat.com>
1127
1128 * decl.c (end_java_method): Don't expand if flag_syntax_only.
1129
11302004-10-26 Tom Tromey <tromey@redhat.com>
1131
1132 * verify.h (vfy_notify_verified): Removed.
1133 * verify-glue.c (vfy_notify_verified): Removed.
1134
11352004-10-26 Tom Tromey <tromey@redhat.com>
1136
1137 * verify-impl.c (debug_print_state): Declare `i' before code.
1138 (merge_types): Modify `t' when it is null_type.
1139
11402004-10-26 Tom Tromey <tromey@redhat.com>
1141
1142 * verify-impl.c (type_print): Renamed from print. Now static and
1143 takes an argument.
1144 (debug_print_state): Use type_print.
1145
11462004-10-25 Tom Tromey <tromey@redhat.com>
1147
1148 * expr.c (build_invokeinterface): Compute correct offset for
1149 index into interface methods.
1150
11512004-10-20 Tom Tromey <tromey@redhat.com>
1152
1153 * java-tree.h (verify_jvm_instructions_new): Declare.
1154
1155 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
1156 command line.
1157
1158 * verify-impl.c (verify_instructions): Correctly handle wide
1159 types on the stack.
1160 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
1161 (vfy_get_component_type): Strip pointer types.
1162 (vfy_find_class): Use get_type_from_signature. Strip pointer
1163 types.
1164 Include java-except.h.
1165
11662004-10-20 Bryce McKinlay <mckinlay@redhat.com>
1167
a1286ef5 1168 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
36739040
TT
1169 vfy_push_type_t, set_variable, add_new_state, merge_into,
1170 handle_jsr_insn, branch_prepass, check_class_constant,
a1286ef5 1171 check_wide_constant, get_one_type, compute_static_types,
36739040
TT
1172 verify_instructions_0): Clean up C99 declarations after statements.
1173
11742004-10-20 Tom Tromey <tromey@redhat.com>
1175
1176 * verify-impl.c (merge_refs): Compare reference against iterator,
1177 not ref2.
1178
1179 * verify-glue.c (vfy_tag): Mask off resolved flag.
1180
11812004-10-19 Tom Tromey <tromey@redhat.com>
1182
1183 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
1184 (init_state_with_stack): Initialize `this_type' in state.
1185 (verify_method): Use debug_print.
1186 * verify-glue.c (vfy_is_primitive): Removed debugging print.
1187 (vfy_note_stack_depth): Reverted last patch.
1188 (vfy_note_stack_type): Note pointer to Object, not Object.
1189 (vfy_note_local_type): Likewise.
1190
1191 * verify.h (vfy_note_instruction_seen): Declare.
1192 * verify-glue.c (verify_jvm_instructions_new): Set
1193 BCODE_EXCEPTION_TARGET on target instruction.
1194 (vfy_note_instruction_seen): New function.
1195 * verify-impl.c (FLAG_INSN_SEEN): New define.
1196 (verify_instructions_0): Set flag on instruction. Save state for
1197 PC=0 later.
1198 (verify_instructions): Call vfy_note_instruction_seen.
1199
1200 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
1201 (verify_jvm_instructions_new): Call method_init_exceptions,
1202 add_handler, and handle_nested_ranges.
1203 * verify-impl.c (verify_method): Return 1 on success.
1204 (verify_instructions_0): Save the state at PC=0.
1205
1206 * verify-impl.c (init_type_from_class): Set is_resolved and
1207 ref_next on new ref_intersection.
1208 (init_type_from_string): Likewise.
1209
12102004-10-15 Bryce McKinlay <mckinlay@redhat.com>
1211
1212 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
1213 if flag_new_verifier is set.
1214 * java-tree.h (flag_new_verifier): Declare.
1215 * lang.opt (fnew-verifier): New option.
a1286ef5 1216 * verify-impl.c: Work around namespace pollution by undef'ing
36739040
TT
1217 'current_class'.
1218 (struct verifier_context): Make 'bytecode' const.
1219 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
1220 (types_compatible): For the BC-ABI, always consider reference types
1221 compatible.
1222 (check_class_constant): Use vfr->current_class.
1223 (check_constant): Likewise.
1224 (check_wide_constant): Likewise.
1225 (check_field_constant): Check for 'L' at start of type name.
1226 (get_one_type): Return pointer instead of type. Set type result in
1227 caller via passed type pointer.
1228 (compute_argument_types): Update to use new get_one_type arguments.
1229 (compute_return_type): Likewise.
1230 (make_verifier_context): New. Allocate and initialize 'vfr'.
1231 (free_verifier_context): New. Free 'vfr' and its contents.
1232 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
1233 and free_verifier_context.
1234
12352004-10-15 Tom Tromey <tromey@redhat.com>
1236
1237 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
1238 * verify.h (vfy_fail): Fixed formatting.
1239
1240 * verify-impl.c (vfr): Fixed comment formatting.
1241 (collapse_type): New function.
1242 (verify_instructions): Notify compiler about type map.
1243 * verify.h (vfy_note_stack_depth): Updated.
1244 (vfy_note_stack_type): Likewise.
1245 (vfy_note_local_type): Likewise.
1246 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
1247 Declare.
1248 * verify-glue.c (vfy_note_stack_depth): Correctly size type
1249 state. Added `method' argument.
1250 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
1251 argument.
1252 (vfy_note_local_type): New function.
1253 (vfy_unsuitable_type): Likewise.
1254 (vfy_return_address_type): Likewise.
1255 (vfy_null_type): Likewise.
1256
1257 * verify.h (VFY_IN_GCC): Removed.
1258 (VFY_WANT_TYPEMAP): Removed.
1259 * verify-impl.c (verify_instructions_0): Removed useless "\".
1260 (struct state) <next>: Uncomment.
1261
12622004-10-13 Bryce McKinlay <mckinlay@redhat.com>
1263
a1286ef5 1264 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
36739040
TT
1265 C-style.
1266
12672004-10-06 Bryce McKinlay <mckinlay@redhat.com>
1268
1269 * Make-lang.in (verify.o): Re-enabled this target.
1270 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
1271 (vfy_get_interface): Likewise.
1272 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
1273 * verify.h (verify_jvm_instructions_new): Declare.
1274 * verify-impl.c (free_state): Temporarily comment out unused
1275 function.
1276
12772004-10-06 Tom Tromey <tromey@redhat.com>
1278
1279 * java-tree.h (JV_STATE_READ): New enum value.
1280
12812004-10-06 Bryce McKinlay <mckinlay@redhat.com>
1282
1283 * verify.h: New file.
1284
12852004-10-05 Bryce McKinlay <mckinlay@redhat.com>
1286
1287 * verify-impl.c, verify-glue.c, verify.h: New files.
1288 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
1289
12902004-09-24 Andrew Haley <aph@redhat.com>
1291
1292 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
1293 for a slot if it's of pointer type.
1294
12952004-09-14 Tom Tromey <tromey@redhat.com>
1296
1297 * class.c (make_class_data): Correctly initialize "state" field.
1298 Initialize "engine" field.
1299 * decl.c (java_init_decl_processing): Add "engine" field.
1300
13012004-09-10 Andrew Haley <aph@redhat.com>
1302
1303 PR java/12760
1304 * expr.c (build_invokeinterface): Use fast method for interface
1305 dispatch.
1306 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
1307 JTI_ITABLE_PTR_TYPE.
1308 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
1309 (emit_symbol_table): Add new arg, element_size.
1310 * decl.c (java_init_decl_processing): Initialize Class.itable.
1311 * class.c (GEN_TABLE): New macro.
1312 (gen_indirect_dispatch_tables): Use it. Add itable.
1313 (make_class_data): Add new arg for emit_symbol_table().
1314 Emit itable.
1315 (add_miranda_methods): Make sure search_class has been parsed.
1316 (emit_symbol_table): Add new arg, element_size.
1317
13182004-09-06 Andrew Haley <aph@redhat.com>
1319
1320 * verify.c (merge_types): Return Object for all merges of
1321 interfaces.
1322 * expr.c (add_type_assertion): Don't generate assertions when
1323 source type is array of Object.
a1286ef5 1324
36739040
TT
13252004-09-03 Andrew Haley <aph@redhat.com>
1326
1327 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
1328
1329 * lang.c (java_post_options): Force flag_verify_invocations if
1330 we're not using indirect dispatch.
1331
1332 * expr.c (pop_type_0): Move test for interfaces before call to
1333 can_widen_reference_to().
1334 (build_signature_for_libgcj): Remove generation of canonical array
1335 type.
1336 (add_type_assertion): Canonicalize both arrays.
1337 Don't assert that type X can be assigned to Object.
1338 Don't assert that type X an be assigned to type X.
1339 Don't assert that Object can be assigned to type X.
1340 (can_widen_reference_to): Warn whenever we generate an assertion.
1341 (process_jvm_instruction): Use throwable_type_node for the type of
1342 an exception class.
1343
13442004-09-01 Andrew Haley <aph@redhat.com>
1345
1346 * decl.c (java_init_decl_processing): Change
1347 verify_identifier_node to "__verify".
1348 * expr.c (add_type_assertion): Use verify_identifier_node for name.
1349 * java-tree.h (verify_identifier_node): Change to "__verify".
1350
1351 * expr.c (build_signature_for_libgcj): New function.
1352 (add_type_assertion): Use it to construct signatures for
1353 source_type and target_type.
1354
13552004-08-27 Andrew Haley <aph@redhat.com>
1356
1357 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
1358 (verify_identifier_node): New.
1359 (TYPE_VERIFY_METHOD): New.
1360 (struct type_assertion): New type.
1361 * expr.c (type_assertion_eq): New function.
1362 (type_assertion_hash): New function.
1363 (add_type_assertion): New function.
1364 (can_widen_reference_to): Call add_type_assertion().
1365 * decl.c (java_init_decl_processing): Add verify_identifier_node.
1366 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
1367 (finish_class): Output TYPE_VERIFY_METHOD (type).
1368
1369 * decl.c (end_java_method): Nullify unused fields.
1370
13712004-08-17 Andrew Haley <aph@redhat.com>
1372
1373 * verify.c (defer_merging): Quieten.
1374 * jcf-parse.c (load_class): Only try to open a class file if it's
1375 java.lang.Object or if it's part of the current compilation.
1376 Check that the class we just tried to load is the class we just
1377 loaded. Quieten.
1378 (java_parse_file): Set flag_verify_invocations off if we're
1379 compiling from .class.
1380 (parse_zip_file_entries): Abort if we try to read a dummy class.
1381 * expr.c (can_widen_reference_to): Quieten.
1382 (build_invokevirtual): Abort if we try to invokevirtual an
1383 interface.
1384 (expand_invoke): Don't build a non-interface call to an interface.
1385 (build_instanceof): Don't do premature optimization if
1386 flag_verify_invocations is not set.
1387 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
1388 from superclass.
1389 (build_static_field_ref): Add correct type conversion for
1390 field_address.
1391 (add_miranda_methods): Disable generation of Miranda methods for
1392 dummy classes.
1393 (layout_class_method): Don't complain about non-static method
1394 overrides static method with dummy classes.
1395
13962004-08-13 Tom Tromey <tromey@redhat.com>
1397
1398 * class.c (build_static_field_ref): Re-enable atable lookups for
1399 static fields.
1400
1401 * parse.y (strip_out_static_field_access_decl): Indentation fix.
1402
14032004-08-11 Tom Tromey <tromey@redhat.com>
1404
1405 * gcj.texi (libgcj Runtime Properties): Document new properties.
1406
14072004-08-06 Andrew Haley <aph@redhat.com>
1408
1409 * jcf-parse.c (load_class): Check that we really have loaded the
1410 class we're looking for.
1411
14122004-07-19 Andrew Haley <aph@redhat.com>
1413
1414 * verify.c (verify_jvm_instructions): Comment change only.
1415
1416 * typeck.c (build_java_array_type): Add size field to array name.
1417
1418 * java-tree.h (LOCAL_SLOT_P): New.
1419 (update_aliases): Add PC argument.
1420 (pushdecl_function_level): New function.
1421
1422 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
1423 MODIFY_EXPR, and SAVE_EXPR.
1424 (java_gimplify_modify_expr): New function.
1425
1426 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
1427 (expand_iinc): Pass PC to update_aliases().
1428 (STORE_INTERNAL): Likewise.
1429 (process_jvm_instruction): Likewise.
1430
1431 * decl.c (base_decl_map): New variable.
1432 (uniq): New variable.
1433 (update_aliases): Rewrite with more thorough checking.
1434 (debug_variable_p): New function.
1435 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
1436 (check_local_named_variable): Delete whole function.
1437 (initialize_local_variable): New function.
1438 (check_local_unnamed_variable): Add checks and comments.
1439 (find_local_variable): Rewrite.
1440 (java_replace_reference): New function.
1441 (function_binding_level): New variable.
1442 (pushdecl_function_level): New function.
1443 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
1444 (maybe_pushlevels): Call pushdecl() on each of the new decls.
1445 (start_java_method): Reset uniq. Create base_decl_map. Set
1446 function_binding_level.
1447 (end_java_method): Null unused fields to save memory.
1448
14492004-06-29 Andrew Haley <aph@redhat.com>
1450
1451 * except.c (expand_start_java_handler): Push a new binding level.
1452 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
1453 register_exception_range() to register where we'll do it.
1454 (expand_end_java_handler): Remove old bogus code. Replace with
1455 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
1456 the top of the expression we're curently building.
1457 (maybe_end_try): Delete.
1458 * decl.c (binding_level.exception_range): New field.
1459 (clear_binding_level): Add field exception_range. Reformat.
1460 (poplevel): Call expand_end_java_handler().
1461 (poplevel): Call java_add_stmt only if functionbody is false.
1462 (maybe_poplevels): Don't call maybe_end_try() from here.
1463 (end_java_method): Clear no longer used trees in function decl.
1464 (register_exception_range): New function.
1465 * java-tree.h (register_exception_range, struct eh_range): Declare.
1466
14672004-06-22 Andrew Haley <aph@redhat.com>
1468
1469 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
1470 the otable.
1471 * check-init.c (get_variable_decl): Teach check-init about
1472 FIELD_DECLs addressed via the otable.
1473 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
1474 CLASS_PARSED_P.
1475
14762004-05-28 Andrew Haley <aph@redhat.com>
1477
1478 * jcf-parse.c (load_class): Don't try to read a class that we've
1479 already read.
1480
1481 * expr.c (build_invokeinterface): Use the old-fashioned way of
1482 doing indirect dispatch: look up interfaces by name.
1483 * java-tree.h (enum java_tree_index): Add
1484 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
1485 * decl.c (java_init_decl_processing): Add
1486 soft_lookupinterfacemethodbyname_node.
1487
1488 * gjavah.c (print_method_info): Final methods have vtable entries,
a1286ef5 1489 so gjavah needs to output them.
36739040
TT
1490 * class.c (layout_class_method): Generate vtable entries for final
1491 methods.
1492 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
1493 dispatch, even if a method is final.
1494
14952004-05-25 Andrew Haley <aph@redhat.com>
1496
1497 * class.c (build_symbol_entry): Convert the names of constructors
1498 to init_identifier_node when generating an entry for the indirect
1499 dispatch table.
a1286ef5 1500
36739040
TT
1501 * expr.c (build_known_method_ref): Generate indirect calls for
1502 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
1503
15042004-05-24 Andrew Haley <aph@redhat.com>
1505
a1286ef5
ZW
1506 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
1507 atable element is of the right type.
36739040 1508
a1286ef5
ZW
1509 * class.c (build_static_field_ref): Cast pointer to correct type
1510 for field.
36739040
TT
1511
15122004-04-20 Bryce McKinlay <mckinlay@redhat.com>
1513
1514 * Merged with HEAD as of 20040514. Diff against
1515 gcj-abi-2-merge-20040514.
1516
15172004-04-16 Andrew Haley <aph@redhat.com>
1518
1519 * verify.c (check_pending_block): Disable subroutine checks.
1520 (defer_merging): New function.
1521 (merge_types): If types are dummy, use defer_merging to combine them.
1522 (verify_jvm_instructions): If invocation is invokeinterface and
1523 target is dummy, assume target really is an interface.
1524
1525 * parse.y (patch_invoke): Break out call to java_create_object.
1526
1527 * lang.c (flag_verify_invocations): New.
1528
1529 * jcf-parse.c (load_class): If we've already failed to load a
1530 class, don't try again.
1531 (load_class): If we can't find a .class file, don't fail, but emit
1532 a warning.
1533 (parse_class_file): Don't act on dummy methods.
1534
1535 * java-tree.h (flag_verify_invocations): New.
1536 (TYPE_DUMMY): New.
1537 (lang_type.dummy_class): New field.
1538 (java_create_object): New function.
1539 (METHOD_DUMMY): New.
1540
1541 * expr.c (build_field_ref): Widen field offset.
1542 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
1543 that each of its elements is compatible with the one we're
1544 popping.
1545 (pop_type_0): Issue a warning to say that we need to generate a
1546 runtime check.
1547 (java_create_object): New function.
1548 (build_field_ref): Only generate hard refs if we're not using
1549 indirect dispatch.
1550 (expand_java_field_op): If we're using !verify_invocations and we
1551 see a missing field, generate a decl for it.
1552
1553 (expand_invoke): If a class doesn't have the method we seek and
1554 we're using !flag_verify_invocations, generate a decl for the
1555 method now.
1556
1557 (build_known_method_ref): Always use indirect dispatch via the
1558 atable for static methods.
1559
a1286ef5 1560 (expand_java_NEW): Break out object creation into new function,
36739040
TT
1561 java_create_object.
1562
1563 (can_widen_reference_to): Issue a warning to say that we need to
1564 generate a runtime check.
1565
1566 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
1567 (make_method_value): Also use index for interfaces.
1568 (make_class_data): Skip dummy field for inherited data.
1569 Don't build method array for dummy methods.
1570 Set size_in_byte to -1 when using inirect dispatch
1571 Don't build a hard class ref if we don't have a hard ref to our
1572 superclass, or if we're using inirect dispatch.
1573 Null out dispatch tables.
1574
1575 (layout_class_method): Don't complain about non-static method
1576 overrides static method is method is artificial.
1577
1578 (build_static_field_ref): Disable atable references to static
1579 fields for the time being.
1580
1581 (layout_class_methods): Check for CLASS_INTERFACE as
1582 well as CLASS_ABSTRACT.
1583
39afeb1a
SB
15842004-11-24 Steven Bosscher <stevenb@suse.de>
1585
1586 * class.c (make_class_data): Don't check flag_inline_functions.
1587 * lang.c (flag_really_inline): Remove unused flag.
1588 (java_handle_option): Don't set it here. Remove special handling
1589 of flag_inline_functions for Java.
1590 (java_init): Don't set flag_inline_trees here. Already done...
1591 (java_post_options): ...here. Don't clear flag_inline_functions.
1592
16df8078
SB
15932004-11-24 Steven Bosscher <stevenb@suse.de>
1594
1595 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
1596 (java_gimplify_exit_block_expr): New function.
1597 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
1598 LABELED_BLOCK_EXPR.
1599 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
1600 (EXIT_BLOCK_EXPR): Likewise.
1601 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
1602 (LABELED_BLOCK_BODY): Likewise.
1603 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
1604 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
1605 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
1606 TREE_OPERAND.
1607 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
1608 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
1609 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
1610 second operand of EXIT_BLOCK_EXPR.
1611 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
1612 TREE_OPERAND.
1613 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
1614
37cd02de
BE
16152004-11-23 Ben Elliston <bje@au.ibm.com>
1616
1617 * xref.h (xref_flag_value): Remove.
1618 (xref_set_data, xref_get_data): Likewise.
1619 (xref_set_current_fp): Likewise.
1620 (XREF_NONE): Likewise.
1621 (XREF_GET_DATA): Likewise.
1622 * xref.c (xref_flag_value): Remove.
1623 (xref_set_data, xref_get_data): Likewise.
1624 (xref_set_current_fp): Likewise.
1625
82698cde
BE
16262004-11-23 Ben Elliston <bje@au.ibm.com>
1627
1628 * gjavah.c (output_directory): Make static.
1629 (temp_directory): Likewise.
a1286ef5 1630
35d7f8f4
TT
16312004-11-15 Tom Tromey <tromey@redhat.com>
1632
1633 * decl.c (instn_ptr_type_node): Removed.
1634 (lineNumbers_ptr_type_node): Removed.
1635 (jint_type): Removed.
1636 (jint_ptr_type): Removed.
1637
6571838f
AP
16382004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
1639
1640 PR java/15576
1641 * check-init.c (check_init): Ignore DECL_EXPR.
1642 * expr.c (always_initialize_class_p): Reenable.
1643 (build_class_init): Use a variable to store the decl. Also use
1644 boolean_false_node instead of integer_zero_node.
1645 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
1646 to the block.
1647
5e74a4eb
TT
16482004-11-08 Tom Tromey <tromey@redhat.com>
1649
1650 PR java/16843:
1651 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
1652 generating a JNI header.
1653 (print_field_info): Handle JNI headers.
1654 (jni_print_float): Likewise.
1655 (jni_print_double): Likewise.
1656
517f199e
AP
16572004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
1658
1659 * decl.c (end_java_method): Remove duplicated code.
1660
d08bf5fa 16612004-11-06 Zack Weinberg <zack@codesourcery.com>
a1286ef5 1662 Gerald Pfeifer <gerald@pfeifer.com>
d08bf5fa
ZW
1663
1664 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
1665 as well.
1666
65e9700c
BM
16672004-11-02 Bryce McKinlay <mckinlay@redhat.com>
1668
1669 PR java/17265
a1286ef5 1670 * class.c: Reinstate 2004-08-18 patch.
65e9700c
BM
1671 (make_local_function_alias): Don't create an alias for extern (native)
1672 functions.
1673
e063dbf8
EB
16742004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1675
1676 PR java/17265
1677 * class.c (make_local_function_alias): Revert 2004-08-18 change.
1678 (make_method_value): Likewise.
1679
d600a3a4
AH
16802004-10-21 Andrew Haley <aph@redhat.com>
1681
1682 PR java/18091:
1683 * jcf-parse.c (set_source_filename): Add code to build new sfname.
1684
16852004-10-20 Andrew Haley <aph@redhat.com>
1686
1687 * decl.c (end_java_method): Don't expand if flag_syntax_only.
1688 Remove duplicated code block.
1689
7e698b2c
SB
16902004-10-18 Steven Bosscher <stevenb@suse.de>
1691
1692 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
1693 New rules to work around old Bison warnings.
1694
7cefa0c1
SB
16952004-10-17 Steven Bosscher <stevenb@suse.de>
1696
1697 * class.c (ident_subst): Always alloca buffer.
1698 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
1699 opcode after including javaop.def.
1700 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
1701 conditional expression that exits, to avoid warnings.
1702 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
1703 a user of an extension.
1704 * win32-host.c: Move check down to have non-empty file when
1705 WIN32 is not defined.
1706
1707 * Make-lang.in (java-warn): Add STRICT_WARN.
1708 (java/jcf-io.o-warn): Don't have Werror for this file.
1709 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
1710
e86d9e4b
HPN
17112004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
1712
1713 * expr.c (expr_add_location): Move declaration to before all
1714 statements.
1715 * parse.y (java_expand_classes): Ditto.
1716 * lex.c (java_peek_unicode): Ditto.
1717
a1402da3
RM
17182004-10-16 Ranjit Mathew <rmathew@hotmail.com>
1719
1720 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
1721 if possible, else convert `foo' to 'foo'.
1722 * class.c: Likewise.
1723 * decl.c: Likewise.
1724 * expr.c: Likewise.
1725 * jcf-io.c: Likewise.
1726 * jcf-parse.c: Likewise.
1727 * lang.c: Likewise.
1728 * lex.c: Likewise.
1729 * parse.h: Likewise.
1730
17312004-10-16 Ranjit Mathew <rmathew@hotmail.com>
1732
1733 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
1734 rename parameter 'msg' to 'msgid' in function declaration.
1735 (issue_warning_error_from_context): Likewise.
1736 (yyerror): Rename parameter 'msg' to 'msgid'.
1737 (all over): Use new quoting style for diagnostics.
1738
10a35159
KH
17392004-10-15 Kazu Hirata <kazu@cs.umass.edu>
1740
1741 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
1742 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
1743 Update copyright.
1744
0c58f841
MA
17452004-10-14 Matt Austern <austern@apple.com>
1746
1747 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
1748 pointer_set_t* now.
a1286ef5 1749
38467a0d
TT
17502004-10-13 Tom Tromey <tromey@redhat.com>
1751
1752 PR java/15578:
1753 * lang.opt (--extdirs): Document.
1754 * jvspec.c (lang_specific_driver): Recognize -encoding and
1755 -extdirs.
1756
5a6aa19c
UW
17572004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
1758
1759 * parse.y (issue_warning_error_from_context): Use va_list *
1760 instead of va_list parameter.
1761 (parse_error_context): Update call.
1762 (parse_warning_context): Likewise.
1763
d5706a1e
ZW
17642004-10-05 Zack Weinberg <zack@codesourcery.com>
1765
1766 * parse.y, parse-scan.y: Add list of diagnostic messages to
1767 insulate translation template from version of yacc/bison used
1768 to compile the grammar.
1769
5544148e
RM
17702004-10-05 Ranjit Mathew <rmathew@hotmail.com>
1771
1772 Prepare for %q, %< and %> in diagnostic message strings.
1773 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
1774 Name second parameter 'msgid'.
1775 * parse.y: Additionally include pretty-print.h and diagnostic.h.
1776 (issue_warning_error_from_context): Use pretty-printer functions
1777 instead of vsprintf for constructing formatted messages. Rename
1778 parameter 'msg' to 'msgid'.
1779 (parse_error_context): Rename parameter 'msg' to 'msgid'.
1780 (parse_warning_context): Likewise.
1781
5789147f
AH
17822004-10-05 Andrew Haley <aph@redhat.com>
1783
1784 PR java/17779
1785 * jcf-parse.c (parse_zip_file_entries): If a class has a
1786 superclass and a TYPE_SIZE of zero, lay it out.
1787
17882004-09-30 Andrew Haley <aph@redhat.com>
1789
1790 PR java/17733
1791 * jcf-parse.c (compute_class_name): Rewrite.
1792
0f0377f6
JH
17932004-10-01 Jan Hubicka <jh@suse.cz>
1794
1795 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
1796
5f90fc47
KH
17972004-10-01 Kazu Hirata <kazu@cs.umass.edu>
1798
1799 * lex.c: Fix a comment typo.
1800
0690a9f4
KH
18012004-10-01 Kazu Hirata <kazu@cs.umass.edu>
1802
1803 * java-tree.h: Fix a comment typo.
1804
9ec819d4
PB
18052004-09-30 Per Bothner <per@bothner.com>
1806
1807 Simplify lexer. Implement --enable-mapped-location support.
1808 * jcf-parse.c (parse_class_file): Use linemap_line_start.
1809 (parse_source_file_1): Pass filename as extra parameter, so we can call
1810 linemap_add and set input_location here, rather than in both callers.
1811 (read_class): Pass copied filename to parse_source_file_1.
1812 Don't initialize wfl_operator - only needed for source compilation.
1813 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
1814 * lex.h: Remove a bunch of debugging macros.
1815 * lex.h (struct_java_line, struct java_error): Remove types.
1816 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
1817 (struct java_lc_s): Remove prev_col field.
1818 (struct java_lexer): New fields next_unicode, next_columns, and
1819 avail_unicode. New position field, and maybe token_start field.
1820 Don't need hit_eof field - use next_unicode == -1 instead.
1821 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
1822 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
1823 * parse.h: Various changes for USE_MAPPED_LOCATION.
1824 (EXPR_WFL_EMIT_LINE_NOTE): XXX
1825 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
1826 (struct parser_ctxt): New file_start_location field.
1827 Remove p_line, c_line fields since we no longer save lines.
1828 Remove elc, lineno, and current_jcf fields - no longer used.
1829 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
1830 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
1831 source_location and is probably not needed anymore anyway.
1832 Use new expr_add_Location function.
1833 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
1834 (java_pop_parser_context): Minor cleanup.
1835 (java_parser_context_save_global, java_parser_context_restore_global,
1836 java_pop_parser_context): Save/restore input_location as a unit.
1837 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
1838 a source_location instead of a wfl context node.
1839 (check_class_interface_creation): input_filename is not addressable.
1840 (create_artificial_method): Calling java_parser_context_save_global
1841 and java_parser_context_restore_global is overkill. Instead,
1842 temporarily set input_location from class decl.
1843 (java_layout_seen_class_methods): Set input_location from method decl.
1844 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
1845 (finish_loop_body): Likewise.
1846 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
1847 (java_sprint_unicode): Take a character, not index in line.
1848 (java_sneak_uncode): Replaced by java_peek_unicode.
1849 (java_unget_unicode): No longer used.
1850 (java_allocate_new_line. java_store_unicode): Removed, since we
1851 no longer remember "lines".
1852 (java_new_lexer): Update for new data structures.
1853 (java_read_char): Move unget_value checking to java_read_unicode.
1854 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
1855 efficient functions that are used directly when lexing.
1856 (java_read_unicode_collapsing_terminators): No longer needed.
1857 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
1858 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
1859 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
1860 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
1861 combine switch branches, and test for common token kinds earlier.
1862 (java_lex_error): Rewrite.
1863 * jv-scan.c (expand_location): New function, copied from tree.c.
1864 (main): Set ctxp->filename instead of setting input_filename directly.
1865
6744f400
PB
18662004-09-30 Per Bothner <per@bothner.com>
1867
1868 More cleanup for --enable-mapped-location.
1869 * class.c (push_class): If USE_MAPPED_LOCATION don't set
1870 input_location here. Instead do it in give_name_to_class.
1871 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
1872 * expr.c (expand_byte_code): Call linemap_line_start.
1873 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
1874 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
1875 (expr_add_location): New function, if USE_MAPPED_LOCATION.
1876 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
1877 to USE_MAPPED_LOCATION case.
1878
cb3a1430
PB
1879 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
1880 * jcf-parse.c (java_parse_file): Don't set input_filename.
1881 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
1882 Create a list of TRANSLATION_UNIT_DECL.
1883 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
1884 reason is so we can set a DECL_SOURCE_LOCATION for each file.
1885 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
1886 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
1887 (file_start_location): New static.
1888 (set_source_filename): Avoid extra access to input_filename macro.
1889 Concatenate new name with class's package prefix.
1890 (set_source_filename, give_name_to_class): Update.
1891 (give_name_to_class): Set class's "line 0" input_location here.
1892 (parse_class_file): Set input_location as a unit.
1893
1894 * jcf-parse.c (load_class): Sanity test if missing inner class file.
1895
d68acc04
PB
18962004-09-29 Per Bothner <per@bothner.com>
1897
9ec819d4 1898 * java-tree.h: Redefine some macros and add some declaration
d68acc04
PB
1899 to handle the USE_MAPPED_LOCATION case.
1900 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
1901 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
1902 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
1903 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
1904
de399303
PB
1905 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
1906 * decl.c (finish_method, java_add_stmt): Likewise.
1907 * java-gimplify.c (java-gimplify.c): Likewise.
1908 * jcf-write.c (generate_bytecode_insns): Likewise.
1909 * lang.c (java_post_options): Likewise - call linemap_add.
1910
eab3f38f
AH
19112004-09-29 Andrew Haley <aph@redhat.com>
1912
1913 PR java/17007
1914 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
1915 result of TRUNC_MOD_EXPR.
1916 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
1917 * decl.c (java_init_decl_processing): Mark
1918 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
1919
346c5b01
TT
19202004-09-28 Tom Tromey <tromey@redhat.com>
1921
1922 PR java/15710:
1923 * class.c (add_miranda_methods): Load superinterface if not
1924 already loaded.
1925
1679340f
AH
19262004-09-28 Andrew Haley <aph@redhat.com>
1927
1928 PR java/17586
1929 * jcf-parse.c (load_class): Don't try to read a class that we've
1930 already read.
1931
46d82a27
AH
19322004-09-28 Andrew Haley <aph@redhat.com>
1933
1934 * jcf-parse.c (load_class): Back out previous broken patch.
1935
03ec093d
AH
19362004-09-28 Andrew Haley <aph@redhat.com>
1937
1938 PR java/17586
1939 * jcf-parse.c (load_class): Don't try to read a class that we've
1940 already read.
1941 Check that we really did read the right class.
1942
c1f042f8
TT
19432004-09-25 Tom Tromey <tromey@redhat.com>
1944
1945 PR java/17500:
1946 * parse.y (create_artificial_method): Use add_method_1.
1947
4dd4c751
KH
19482004-09-25 Kazu Hirata <kazu@cs.umass.edu>
1949
1950 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
1951 comment typos.
1952 * gcj.texi: Fix typos.
1953
8d481c2e
TT
19542004-09-24 Tom Tromey <tromey@redhat.com>
1955
1956 PR java/15656:
1957 * parse.y (class_instance_creation_expression): Set `$$' to NULL
1958 in error parts of rule.
1959 (unary_expression): Don't call error_if_numeric_overflow when $1
1960 is NULL.
1961
90424847
TT
19622004-09-24 Tom Tromey <tromey@redhat.com>
1963
1964 PR java/16789:
1965 * parse.y (resolve_qualified_expression_name): Set
1966 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
1967 * expr.c (force_evaluation_order): Check for empty argument list
1968 after stripping COMPOUND_EXPR.
1969
c5466b25
AH
19702004-09-23 Andrew Haley <aph@redhat.com>
1971
1972 PR java/16927:
1973 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
1974 COND_EXPRs.
1975
fd5f23d3
TT
19762004-09-23 Tom Tromey <tromey@redhat.com>
1977
1978 PR java/17329:
1979 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
1980 where operand is null.
1981
2fc8ee77
TT
19822004-09-23 Tom Tromey <tromey@redhat.com>
1983
1984 PR java/17380:
1985 * parse.y (not_accessible_p): Allow access to protected members
1986 even when class is not static.
1987
3b620440
KC
19882004-09-22 Kelley Cook <kcook@gcc.gnu.org>
1989
1990 * Make-lang.in: Revert the gcc-none.o change.
1991
0e64e323
NS
19922004-09-22 Nathan Sidwell <nathan@codesourcery.com>
1993
1994 * parse.y (patch_anonymous_class): VEC_space returns true if there
1995 is space.
1996
e72222ac
MA
19972004-09-21 Matt Austern <austern@apple.com>
1998
1999 Fix bootstrap.
2000 * gjavah.c (free_method_name_list): Fix function definition so
2001 it's a proper C prototype.
d5706a1e 2002
b8b639c9
TT
20032004-09-21 Tom Tromey <tromey@redhat.com>
2004
2005 PR java/17575:
2006 * gjavah.c (free_method_name_list): New method.
2007 (main): Call it.
2008
6615c446
JO
20092004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
2010 Zack Weinberg <zack@codesourcery.com>
2011
2012 * java-tree.def: Use tree_code_class enumeration constants
2013 instead of code letters.
2014 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
2015 new tree-class enumeration constants.
2016
4a2dd6fe
TT
20172004-09-13 Tom Tromey <tromey@redhat.com>
2018
2019 PR java/17216:
2020 * class.c (layout_class_method): Put synthetic methods into the
2021 vtable.
2022
68a97276
AP
20232004-09-11 Andrew Pinski <apinski@apple.com>
2024
2025 * Make-lang.in (java/ggc-none.c): Change dependency
2026 for ggc.h into $(GGC_H).
2027
af8f35b8
ME
20282004-09-11 Mohan Embar <gnustuff@thisiscool.com>
2029
2030 * Make-lang.in (java/win32-host.o): Add dependency on
2031 coretypes.h.
2032 * win32-host.c: Add includes for coretypes.h, jcf.h
2033
55545aed
ME
20342004-09-11 Mohan Embar <gnustuff@thisiscool.com>
2035
2036 * Make-lang.in (GCJH_OBJS): Change dependency from
2037 ggc-none.o to java/ggc-none.o
2038 (JCFDUMP_OBJS): Likewise.
2039 (java/ggc-none.o): New target.
2040
7d60be94
NS
20412004-08-25 Nathan Sidwell <nathan@codesourcery.com>
2042
2043 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
2044 * class.c (build_utf8_ref, build_static_field_ref,
2045 make_field_value, make_method_value, get_dispatch_table,
2046 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
2047 * constants.c (get_tag_node, build_ref_from_constant_pool,
2048 build_constants_constructor): Likewise.
2049 * decl.c (java_init_decl_processing): Likewise.
2050 * expr.c (build_java_array_length_access, build_newarray,
2051 expand_java_multianewarray, expand_java_pushc, expand_iinc,
2052 build_java_binop, build_field_ref, expand_java_add_case,
2053 expand_java_call, build_known_method_ref, build_invokevirtual,
2054 build_invokeinterface, build_jni_stub): Likewise.
2055 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2056 * jcf-parse.c (get_constant): Likewise.
2057 * lex.c (do_java_lex): Likewise.
2058 * parse.y (patch_binop, patch_unaryop, patch_cast,
2059 build_newarray_node, patch_newarray): Likewise.
2060 * resource.c (compile_resource_data): Likewise.
2061 * typeck.c (build_prim_array_type): Likewise.
2062
8c1d6d62
NS
20632004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2064
7d60be94 2065 * decl.c (java_init_decl_processing): Adjust
8c1d6d62
NS
2066 initialize_sizetypes call.
2067
b3d1f5b4
NS
20682004-08-23 Nathan Sidwell <nathan@codesourcery.com>
2069
2070 * jv-scan.c (fancy_abort): Add.
2071
07c6ee1b
NS
20722004-08-20 Nathan Sidwell <nathan@codesourcery.com>
2073
2074 * expr.c (build_java_arrayaccess): Use convert to change
2075 len's type.
2076
97d68565
BM
20772004-08-19 Bryce McKinlay <mckinlay@redhat.com>
2078
2079 * class.c (make_local_function_alias): Allocate extra space for 'L'
2080 in name buffer. Reported by Thomas Neumann.
2081
89b0433e
NS
20822004-08-19 Nathan Sidwell <nathan@codesourcery.com>
2083
2084 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
2085 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
2086 * lex.c (do_java_lex): Adjust.
2087 (error_if_numeric_overflow): Likewise.
2088
ecc75a19
AP
20892004-08-18 Andrew Pinski <apinski@apple.com>
2090
89b0433e
NS
2091 * class.c (make_local_function_alias): Only make a new decl if we
2092 support alias attribute on all decls.
ecc75a19 2093
260ba9ce
BM
20942004-08-18 Bryce McKinlay <mckinlay@redhat.com>
2095
2096 * class.c (make_local_function_alias): New function. Create local
2097 alias for public method DECL.
2098 (make_method_value): Use make_local_function_alias.
2099 * parse.y (craft_constructor): Don't special-case anonymous classes.
2100 Always set ctor_name to init_identifier_node.
2101 (lookup_method_invoke): Call layout_class_method when creating
2102 anonymous class constructor.
2103
17ad5b5e
RH
21042004-08-18 Richard Henderson <rth@redhat.com>
2105
2106 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
2107 default case. Treat '<' similarly. Update for
2108 is_gimple_formal_tmp_var name change.
2109
1b9deeb4
AH
21102004-08-17 Andrew Haley <aph@redhat.com>
2111
2112 * lang.c (lang_printable_name): Obey verbose flag.
2113 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
2114 lang_printable_name().
2115 (verify_constructor_circularity, get_printable_method_name,
2116 check_abstract_method_definitions, java_check_regular_methods,
2117 java_check_abstract_methods, check_inner_class_access,
2118 fix_constructors, patch_method_invocation, patch_return):
2119 Likewise.
2120 * expr.c (pop_type_0): Likewise.
2121
2122 * java-tree.h (lang_printable_name_wls): Delete.
2123
16d85b63
TT
21242004-08-16 Tom Tromey <tromey@redhat.com>
2125
2126 PR java/8473:
2127 * parse.y (primary): Changed for initialized and uninitialized
2128 array creations.
2129 (array_access): Handle array_creation_initialized.
2130 (array_creation_expression): Split into
2131 array_creation_initialized and array_creation_uninitialized.
2132
a20f4d83
AH
21332004-08-16 Andrew Haley <aph@redhat.com>
2134
2135 * jcf-write.c (find_constant_index): Canonicalize NaNs when
2136 generating bytecode.
2137
f699e454
EL
21382004-08-16 Elliot Lee <sopwith@redhat.com>
2139
2140 PR java/9677
2141 * jcf-parse.c (java_parse_file): Handle filenames with embedded
2142 spaces, and quoted filelists.
2143
4a90aeeb
NS
21442004-08-15 Nathan Sidwell <nathan@codesourcery.com>
2145
2146 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
2147 * class.c (build_utf8_ref, build_static_field_ref,
2148 make_field_value, make_method_value, get_dispatch_table,
2149 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
6615c446 2150 * constants.c (get_tag_node, build_ref_from_constant_pool,
4a90aeeb
NS
2151 build_constants_constructor): Likewise.
2152 * decl.c (java_init_decl_processing): Likewise.
2153 * expr.c (build_java_array_length_access, build_newarray,
2154 expand_java_multianewarray, expand_java_pushc, expand_iinc,
2155 build_java_binop, build_field_ref, expand_java_add_case,
2156 expand_java_call, build_known_method_ref, build_invokevirtual,
2157 build_invokeinterface, build_jni_stub): Likewise.
2158 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2159 * jcf-parse.c (get_constant): Likewise.
2160 * lex.c (do_java_lex): Likewise.
2161 * parse.y (patch_binop, patch_unaryop, patch_cast,
2162 build_null_of_type, patch_newarray): Likewise.
2163 * resource.c (compile_resource_data): Likewise.
2164 * typeck.c (build_prim_array_type): Likewise.
2165
f97b53df
BM
21662004-08-10 Bryce McKinlay <mckinlay@redhat.com>
2167
2168 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
2169 Don't create BLOCK here or call java_gimplify_block.
2170
bbefea96
L
21712004-08-09 H.J. Lu <hongjiu.lu@intel.com>
2172
2173 * java-tree.h (flag_deprecated): Removed.
2174 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
2175 * parse.y (check_deprecation): Check warn_deprecated instead of
2176 flag_deprecated.
2177
9ddfe26e
KC
21782004-08-06 Kelley Cook <kcook@gcc.gnu.org>
2179
2180 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
2181 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
2182 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
2183 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
2184 flag_force_classes_archive_check, flag_optimize_sci,
2185 flag_indirect_dispatch): Remove explicit declarations.
2186 * lang.opt: Add implicit declare/define/assign. Remove obsolete
2187 final comment.
2188
c34f5b33
MC
21892004-08-05 Michael Chastain <mec.gnu@mindspring.com>
2190
2191 PR bootstrap/14893
2192 * Make-lang.in (java.install-man): Install from either build
2193 tree or source tree, whichever has the file first.
2194
ca7a3bd7
NS
21952004-08-05 Nathan Sidwell <nathan@codesourcery.com>
2196
2197 * jcf-parse.c (get_constant): Adjust force_fit_type call.
2198 * lex.h (SET_LVAL_NODE_TYPE): Remove.
2199 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
2200 (do_java_lex): Likewise. Adjust force_fit_type call.
2201
545eacdb
RS
22022004-08-04 Roger Sayle <roger@eyesopen.com>
2203 Andrew Haley <aph@redhat.com>
2204
2205 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
2206 checking trees as they're being built.
2207 (convert): Call convert_ieee_real_to_integer if we're
2208 converting a constant, even if we're writing a class file.
2209
899deeca
BM
22102004-08-02 Bryce McKinlay <mckinlay@redhat.com>
2211
2212 PR java/16701
2213 * parse.y (fold_constant_for_init): Call resolve_field_access with
2214 correct current_class context.
2215
dc6d7095
RS
22162004-08-01 Roger Sayle <roger@eyesopen.com>
2217
2218 * decl.c (update_aliases, initialize_local_variable): Replace calls
2219 to build with calls to buildN.
2220 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
2221 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
2222 * parse.h (BUILD_THROW): Likewise.
2223 * parse.y (switch_expression, synchronized_statement,
2224 catch_clause_parameter, array_creation_expression,
2225 conditional_expression, make_qualified_name,
2226 resolve_qualified_expression_name, patch_method_invocation,
2227 patch_invoke, build_method_invocation, build_new_invocation,
2228 build_assignment, patch_assignment, build_binop, patch_binop,
2229 build_string_concatenation, build_incdec, patch_unaryop,
2230 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
2231 patch_return, build_if_else_statement, build_labeled_block,
2232 build_new_loop, build_loop_body, build_bc_statement,
2233 build_assertion, encapsulate_with_try_catch, build_try_statement,
2234 build_try_finally_statement, patch_synchronized_statement,
2235 emit_test_initialization): Likewise, replace build with buildN.
2236
9f63daea
EC
22372004-07-28 Eric Christopher <echristo@redhat.com>
2238
2239 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
2240 (java_unsafe_for_reeval): Ditto.
2241
6fd876ac
HPN
22422004-07-26 <hp@bitrange.com>
2243
2244 * parse.y (build_super_invocation): Adjust declaration order to
2245 avoid declaration after statement.
2246
381166d4
BI
22472004-07-25 Bernardo Innocenti <bernie@develer.com>
2248
2249 * decl.c: Rename all identifiers named `class' to `cl'.
2250
b785f485
RH
22512004-07-25 Richard Henderson <rth@redhat.com>
2252
2253 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
2254
0e7d217a
MS
22552004-07-23 Mike Stump <mrs@apple.com>
2256
2257 * boehm.c (set_bit): Improve type safety wrt unsignedness.
2258 * gjavah.c (throwable_p, decode_signature_piece,
2259 print_full_cxx_name, print_include, add_namelet, add_class_decl,
2260 process_file): Likewise.
2261 * jcf-dump.c (main): Likewise.
2262 * jcf-io.c (read_zip_member): Likewise.
2263 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
2264 give_name_to_class, get_class_constant): Likewise.
2265 * jcf-write.c (find_constant_wide, push_long_const,
2266 generate_classfile): Likewise.
2267 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
2268 * parse.y (read_import_dir): Likewise.
2269 * typeck.c (parse_signature_type): Likewise.
2270 * verify.c (verify_jvm_instructions): Likewise.
2271 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
2272
ef05818b
TF
22732004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
2274
2275 * Make-lang.in: Replace rmic and rmiregistry references with
2276 grmic and grmiregistry.
2277 * gcj.texi: Likewise.
2278
00150bf9
AH
22792004-07-20 Andrew Haley <aph@redhat.com>
2280
4de69546 2281 PR java/16431.
00150bf9
AH
2282 * verify.c (verify_jvm_instructions): Comment change only.
2283
2284 * typeck.c (build_java_array_type): Add size field to array name.
2285
2286 * java-tree.h (LOCAL_SLOT_P): New.
2287 (update_aliases): Add PC argument.
2288 (pushdecl_function_level): New function.
2289
2290 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
2291 MODIFY_EXPR, and SAVE_EXPR.
2292 (java_gimplify_modify_expr): New function.
2293
2294 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
2295 (expand_iinc): Pass PC to update_aliases().
2296 (STORE_INTERNAL): Likewise.
2297 (process_jvm_instruction): Likewise.
2298
2299 * decl.c (base_decl_map): New variable.
2300 (uniq): New variable.
2301 (update_aliases): Rewrite with more thorough checking.
2302 (debug_variable_p): New function.
2303 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
2304 (check_local_named_variable): Delete whole function.
2305 (initialize_local_variable): New function.
2306 (check_local_unnamed_variable): Add checks and comments.
2307 (find_local_variable): Rewrite.
2308 (java_replace_reference): New function.
2309 (function_binding_level): New variable.
2310 (pushdecl_function_level): New function.
2311 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
2312 (maybe_pushlevels): Call pushdecl() on each of the new decls.
2313 (start_java_method): Reset uniq. Create base_decl_map. Set
2314 function_binding_level.
2315 (end_java_method): Null unused fields to save memory.
9f63daea 2316
fa743e8c
NS
23172004-07-20 Nathan Sidwell <nathan@codesourcery.com>
2318
2319 * class.c (add_interface_do): Remove.
2320 (set_super_info, interface_of_p, maybe_add_interface,
2321 add_interface, make_class_data, layout_class,
2322 add_miranda_methods): Adjust BINFO accessors and addition.
2323 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
2324 accessors.
2325 * jcf-write.c (generate_classfile): Likewise.
2326 * parse.y (patch_anonymous_class, check_inner_circular_reference,
2327 check_circular_reference, java_complete_class,
2328 check_abstract_method_definitions,
2329 java_check_abstract_method_definitions,
2330 check_interface_throws_clauses, java_check_abstract_methods,
2331 lookup_java_interface_method2,
2332 find_applicable_accessible_methods_list): Adjust BINFO accessors
2333 and addition.
2334 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
2335
94cdeb1a
RS
23362004-07-18 Roger Sayle <roger@eyesopen.com>
2337
2338 * builtins.c (max_builtin, min_builtin,
2339 java_build_function_call_expr): Replace calls to build with buildN.
2340 * class.c (build_class_ref, build_static_field_ref,
2341 get_dispatch_table, make_class_data, layout_class_method): Likewise.
2342 * constants.c (build_ref_from_constant_pool): Likewise.
2343 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
2344 add_stmt_to_compound): Likewise.
2345 * except.c (build_exception_object_ref, expand_end_java_handler):
2346 Likewise.
2347 * java-gimplify.c (java_gimplify_case_expr,
2348 java_gimplify_default_expr, java_gimplify_block,
2349 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
2350 * jcf-write.c (generate_bytecode_insns): Likewise.
2351 * typeck.c (convert_ieee_real_to_integer): Likewise.
2352
6e34d3a3
JM
23532004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
2354
2355 * java-tree.h (builtin_function): Declare.
2356
165b54c3
SB
23572004-07-16 Steven Bosscher <stevenb@suse.de>
2358
2359 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
2360 abuse restore_line_number_status.
2361
35b6fdcf
FCE
23622004-07-15 Frank Ch. Eigler <fche@redhat.com>
2363
2364 g++/15861
2365 * jcf-parse.c (java_emit_static_constructor): Specify default
2366 priority.
2367
1cb6d0da
PB
23682004-07-13 Per Bothner <per@bothner.com>
2369
2370 * java-tree.h (all_class_filename): Remove useless macro.
2371 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
2372 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
2373 * parse.y (java_parser_context_restore_global): Replace
2374 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
2375 * jcf-parse.c (read_class, java_parse_file): Likewise.
2376
dd4e1500
BM
23772004-07-12 Bryce McKinlay <mckinlay@redhat.com>
2378
2379 PR java/16474
2380 gjavah.c (print_field_info): Emit constant only if field is static.
2381
247fec6e
RS
23822004-07-11 Roger Sayle <roger@eyesopen.com>
2383
2384 * expr.c (java_truthvalue_conversion, flush_quick_stack,
2385 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
2386 build_java_ret, build_java_throw_out_of_bounds_exception,
2387 build_java_array_length_access, java_check_reference,
2388 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
2389 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
2390 expand_java_arrayload, build_java_monitor, expand_java_return,
2391 expand_load_internal, expand_java_NEW, build_get_class,
2392 build_instanceof, expand_java_CHECKCAST, expand_iinc,
2393 build_java_soft_divmod, build_java_binop, build_field_ref,
2394 expand_compare, expand_java_goto, expand_java_switch,
2395 expand_java_add_case, build_class_init, build_known_method_ref,
2396 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
2397 expand_invoke, build_jni_stub, expand_java_field_op,
2398 java_expand_expr, expand_byte_code, STORE_INTERNAL,
2399 force_evaluation_order, emit_init_test_initialization): Convert
2400 calls to "build" into calls to the prefered "buildN" functions.
2401
9dcf6e73
JM
24022004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
2403
2404 * java-tree.h (set_block): Remove.
2405 * lang.c (java_clear_binding_stack): New.
2406 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
2407 * decl.c (struct binding_level): Remove this_block.
2408 (clear_binding_level): Likewise.
2409 (poplevel): Don't handle this_block.
2410 (set_block): Remove.
2411
9ee226ef
BM
24122004-07-10 Bryce McKinlay <mckinlay@redhat.com>
2413
2414 * class.c (common_enclosing_context_p): Remove statement with no
2415 side-effects.
2416
d3ecb597
BM
24172004-07-09 Bryce McKinlay <mckinlay@redhat.com>
2418
2419 PR java/8618
2420 * parse.y (create_anonymous_class): Remove 'location' argument. Use
2421 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
2422 (craft_constructor): Inherit access flags for implicit constructor
2423 from the enclosing class.
2424 (create_class): Fix comment typo.
2425 (resolve_qualified_expression_name): Pass type of qualifier to
2426 not_accessible_p, not the type in which target field was found.
9f63daea
EC
2427 (not_accessible_p): Handle inner classes. Expand protected
2428 qualifier-subtype check to enclosing instances, but don't apply this
d3ecb597
BM
2429 check to static members. Allow protected access to inner classes
2430 of a subtype. Allow private access within common enclosing context.
2431 (build_super_invocation): Get WFL line number info from current
2432 class decl.
2433 (build_incomplete_class_ref): Update for new create_anonymous_class
2434 signature.
2435 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
2436 common_enclosing_instance_p.
2437 * class.c (common_enclosing_context_p): New. Determine if types
2438 share a common enclosing context, even across static contexts.
9f63daea 2439 (common_enclosing_instance_p): Renamed from
d3ecb597
BM
2440 common_enclosing_context_p. Determines if types share a common
2441 non-static enclosing instance.
2442 * java-tree.h (common_enclosing_instance_p): Declare.
2443 * jcf-write.c (get_method_access_flags): New. Surpress private flag
2444 for inner class constructors.
2445 (generate_classfile): Use get_method_access_flags.
2446
968d62b5
BM
24472004-07-09 Bryce McKinlay <mckinlay@redhat.com>
2448
2449 * class.c (interface_of_p): Check for null TYPE_BINFO.
2450
85fd2947
NS
24512004-07-09 Nathan Sidwell <nathan@codesourcery.com>
2452
2453 * class.c (make_class): Do not create binfo here.
2454 (set_super_info): Create it here.
2455 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
2456
ac45df5d
RH
24572004-07-08 Richard Henderson <rth@redhat.com>
2458
2459 * expr.c (case_identity, get_primitive_array_vtable,
2460 java_expand_expr, emit_init_test_initialization): Remove.
2461 * java-tree.h (java_expand_expr): Remove.
2462 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
2463
e0d3408c
PB
24642004-07-07 Per Bothner <per@bothner.com>
2465
5c121a1b
PB
2466 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
2467 get internal error due to mismatched types.
2468
e0d3408c
PB
2469 * gcj.texi (Invoking gij): Document new -verbose:class flag.
2470
45fdd405
PB
2471 * gcj.texi (Linking): New node. Document -lgij usage.
2472
604a3205
NS
24732004-07-07 Nathan Sidwell <nathan@codesourcery.com>
2474
2475 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
2476 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
2477 * java/class.c (set_super_info, class_depth, interface_of_p,
2478 maybe_add_interface, add_interface, make_class_data,
2479 layout_class, add_miranda_methods): Adjust BINFO macros.
2480 * expr.c (can_widen_reference_to, lookup_field): Likewise.
2481 * jcf-write.c (generate_classfile): Likewise.
2482 * parse.y (patch_anonymous_class,
2483 check_inner_circular_reference, check_circular_reference,
2484 java_complete_class, check_abstract_method_definitions,
2485 java_check_abstract_method_definitions,
2486 check_interface_throws_clauses, java_check_abstract_methods,
2487 lookup_java_interface_method2,
2488 find_applicable_accessible_methods_list): Likewise.
2489 * typeck.c (find_method_in_interface): Likewise.
2490 * verify.c (merge_types): Likewise.
2491
809e3e7f
NS
24922004-07-06 Nathan Sidwell <nathan@codesourcery.com>
2493
2494 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
2495 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
2496
95b4aca6
NS
24972004-07-05 Nathan Sidwell <nathan@codesourcery.com>
2498
2499 * class.c (make_class): Use make_tree_binfo.
2500 (set_super_info, add_interface_do): Likewise.
2501 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
2502
dafa622b
RM
25032004-07-04 Ranjit Mathew <rmathew@hotmail.com>
2504
2505 * verify.c: Correct array element access formatting thinko.
2506
c516c1ff
RM
25072004-07-04 Ranjit Mathew <rmathew@hotmail.com>
2508
2509 * verify.c: Insert a short blurb at the start referring to the JVMS.
2510 (merge_type_state): Remove redundant nested if statement.
2511 (verify_jvm_instructions): Ensure current_subr is initialised to
2512 NULL_TREE.
2513 Minor formatting fixes all over the place.
2514
82c82743
RH
25152004-07-02 Richard Henderson <rth@redhat.com>
2516
2517 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
2518
c9b9aa64
RH
25192004-07-01 Richard Henderson <rth@redhat.com>
2520
2521 * class.c (registerClass_libfunc): Remove.
2522 (init_class_processing): Don't set it.
2523 (emit_register_classes): Take list_p parameter. Fill it in
2524 with _Jv_RegisterClass calls.
2525 * decl.c (java_init_decl_processing): Don't call
2526 init_resource_processing.
2527 * jcf-parse.c (java_emit_static_constructor): New.
2528 (java_parse_file): Call it.
2529 * resource.c (registerResource_libfunc): Remove.
2530 (init_resource_processing): Remove.
2531 (write_resource_constructor): Take list_p parameter. Fill it in
2532 with _Jv_RegisterResource calls.
2533 * java-tree.h: Update prototypes.
2534
9c5fdae6
BM
25352004-06-29 Bryce McKinlay <mckinlay@redhat.com>
2536
2537 PR java/1262
2538 * class.c (layout_class_method): Do not override package-private
2539 method if its in a different package.
2540 (split_qualified_name): Move here from parse.y. Rename from
2541 breakdown_qualified. Add comment.
2542 (in_same_package): Move here from parse.y. Add comment.
2543 * java-tree.h (break_down_qualified, in_same_package): Declare.
2544 (in_same_package): Likewise.
2545 * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
2546 Callers updated.
2547
ba60e475
AH
25482004-06-29 Andrew Haley <aph@redhat.com>
2549
2550 * except.c (expand_start_java_handler): Push a new binding level.
2551 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
2552 register_exception_range() to register where we'll do it.
2553 (expand_end_java_handler): Remove old bogus code. Replace with
2554 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
2555 the top of the expression we're curently building.
2556 (maybe_end_try): Delete.
2557 * decl.c (binding_level.exception_range): New field.
2558 (clear_binding_level): Add field exception_range. Reformat.
2559 (poplevel): Call expand_end_java_handler().
2560 (poplevel): Call java_add_stmt only if functionbody is false.
2561 (maybe_poplevels): Don't call maybe_end_try() from here.
2562 (end_java_method): Clear no longer used trees in function decl.
2563 (register_exception_range): New function.
2564 * java-tree.h (register_exception_range, struct eh_range): Declare.
2565
a0cc19cb
BM
25662004-06-28 Bryce McKinlay <mckinlay@redhat.com>
2567
2568 * jcf-write.c (get_classfile_modifiers): Formatting fixes.
2569
fe0b9fb5
RM
25702004-06-27 Ranjit Mathew <rmathew@hotmail.com>
2571
2572 Formatting fixes.
2573 * expr.c (class_has_finalize_method): Fix method name indentation.
2574 (expand_java_call): Remove K&R style parameter declaration.
2575 (expand_invoke): Fix statement indentation.
2576 (expand_java_field_op): Likewise.
2577 * parse-scan.y: Fix typo.
2578 (reset_report): Fix method name indentation.
2579 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
2580 line. Fix typos.
2581 * verify.c (verify_jvm_instructions): Document parameters, insert
2582 page break.
2583 * lang.c (lang_init_source): Fix method name indentation.
2584 * class.c (common_enclosing_context_p): Likewise.
2585 (emit_symbol_table): Fix parameter list indentation.
2586 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
2587 parameter declaration.
2588 * constants.c: Fix copyright notice indentation.
2589 * typeck.c (find_method_in_superclasses): Fix parameter list
2590 indentation.
2591 (find_method_in_interfaces): Likewise.
2592 * zextract.c (makelong): Fix method name indentation.
2593
0f6cd83f
BM
25942004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2595
2596 PR java/15715.
2597 * parse.y (create_interface): Set correct access modifiers for
2598 interfaces.
2599 * jcf-write.c (get_classfile_modifiers): New function.
9f63daea 2600 (generate_classfile): Use get_classfile_modifiers, not
0f6cd83f
BM
2601 get_access_flags.
2602
26032004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2604
2605 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
2606 dependency to current parser context, not NULL_TREE, for top-level
2607 classes.
2608 (jdep_resolve_class): Enable member access check for all inner
2609 class dependencies.
2610
808fd801
BM
26112004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2612
9f63daea 2613 * parse.y (qualify_and_find): Pass type decl, not identifier, to
808fd801
BM
2614 load_class.
2615
6573a104
BM
26162004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2617
2618 PR java/15734
2619 * expr.c (expand_java_field_op): Ensure that target class for static
2620 field access has been loaded.
2621
ed7f2369
BM
26222004-06-26 Bryce McKinlay <mckinlay@redhat.com>
2623 Ranjit Mathew <rmathew@hotmail.com>
2624
2625 PR java/1207, java/16178
2626 * jcf-parse.c (load_class): Return immediately if passed a type decl
2627 where CLASS_FROM_SOURCE_P is set. Remove FIXME.
2628 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
2629 before calling load_class.
2630 (qualify_and_find): Likewise.
2631 (find_in_imports_on_demand): Likewise.
2632 (find_applicable_accessible_methods_list): Likewise.
2633
26342004-06-24 Bryce McKinlay <mckinlay@redhat.com>
2635
2636 * parse.y (java_layout_seen_class_methods): Don't call load_class
2637 on class defined by source parser.
2638
d01a8ee0
BM
26392004-06-23 Bryce McKinlay <mckinlay@redhat.com>
2640
2641 * parse.y (set_nested_class_simple_name_value): Removed.
2642 (java_complete_expand_class): Remove calls to
2643 set_nested_class_simple_name_value.
2644
56c5197b 26452004-06-22 Andrew Haley <aph@redhat.com>
6615c446 2646 Ranjit Mathew <rmathew@hotmail.com>
9f63daea 2647
56c5197b
AH
2648 Fixes PR java/16113.
2649 * decl.c (force_poplevels): Remove call to expand_end_bindings.
2650
815c5191
RM
26512004-06-22 Ranjit Mathew <rmathew@hotmail.com>
2652
2653 * parse.y (create_class): Correct diagnostic message about
2654 java.lang.Object extending anything else.
2655
44de5aeb
RK
26562004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2657
2658 * class.c (build_class_ref): Add new operand for COMPONENT_REF.
2659 (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
2660 * constants.c (build_ref_from_constant_pool): Likewise.
2661 * expr.c (build_java_array_length_access): Likewise.
2662 (build_get_class, build_field_ref, build_known_method_ref): Likewise.
2663 (invoke_build_dtable, build_invokevirtual): Likewise.
2664 (build_invokeinterface, java_expand_expr): Likewise.
2665 (emit_init_test_initialization): Likewise.
2666 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
2667 * parse.y (make_qualifed_name, build_array_ref): Likewise.
9f63daea 2668
979bf9a1
AH
26692004-06-21 Andrew Haley <aph@redhat.com>
2670
2671 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
2672 block.
2673
b40410b9
JM
26742004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
2675
2676 * jcf.h (struct JCF): Change java_source, right_zip and finished
2677 to unsigned int.
2678 * lex.h (struct java_lexer): Change hit_eof, read_anything,
2679 byte_swap and use_fallback to unsigned int.
2680 * parse.h (struct _jdep): Change flag0 to unsigned int.
2681
cfb6b4b8
RM
26822004-06-17 Ranjit Mathew <rmathew@hotmail.com>
2683
2684 Fixes PR java/13948
2685 * parse.y (java_layout_seen_class_methods): Ensure class is loaded
2686 before trying to lay out its methods.
2687 * jcf-parse.c (read_class): Track parsed files using canonical paths
2688 obtained via lrealpath from libiberty.
2689 (java_parse_file): Likewise.
2690 (parse_source_file_1): Rename formal parameter to reflect its
2691 modified purpose. Minor formatting fix.
2692
096f22f4
PB
26932004-06-15 Paolo Bonzini <bonzini@gnu.org>
2694
2695 * class.c (emit_register_classes): Make the function uninlinable,
2696 do not set current_function_cannot_inline.
2697 * resource.c (write_resource_constructor): Do not reset
2698 flag_inline_functions around rest_of_compilation.
9f63daea 2699
c1b69e3c
AP
27002004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
2701
2702 PR java/15769
2703 * expr.c (java_truthvalue_conversion): Handle
2704 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2705 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2706 i.e. return the expression.
2707
a757585a
MA
27082004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
2709
2710 * gjavah.c: Include version.h
2711
1aae9cdc
BM
27122004-05-31 Bryce McKinlay <mckinlay@redhat.com>
2713
2714 * jcf-write.c (generate_bytecode_conditional): Correct handling
2715 of unordered conditionals. Add comment.
2716
edf74484 27172004-05-29 Ranjit Mathew <rmathew@hotmail.com>
6615c446 2718 Per Bothner <per@bothner.com>
edf74484
RM
2719
2720 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
2721 local variable was initialised upon declaration.
2722 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
2723 variable was final and initialised upon declaration.
2724 * check-init.c (check_final_reassigned): Give error only if a blank
2725 final is not definitely unassigned or if an initialised final is
2726 reassigned.
2727 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
2728 assignment expressions. Remove case MODIFY_EXPR, label do_default.
2729 (check_init): Perform initialised-variable-removing-optimisation
2730 only on non-final local variables.
2731
138c4fd4
BM
27322004-05-28 Bryce McKinlay <mckinlay@redhat.com>
2733
9f63daea
EC
2734 * jcf-write.c (generate_bytecode_conditional): Handle binops
2735 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
70c39ccb 2736 and LTGT_EXPR.
138c4fd4
BM
2737 (generate_bytecode_insns): Likewise.
2738
711e3187
BM
27392004-05-28 Bryce McKinlay <mckinlay@redhat.com>
2740
2741 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
2742 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
2743
ca60dce2
BM
27442004-05-28 Bryce McKinlay <mckinlay@redhat.com>
2745
2746 * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
2747 (Mixing with C++): Document JvAllocBytes and RawDataManaged.
2748
062583ea
BM
27492004-05-26 Bryce McKinlay <mckinlay@redhat.com>
2750
2751 * decl.c (struct binding_level): Add GTY marker. Compile
2752 binding_depth unconditionally.
2753 (current_binding_level, free_binding_level, global_binding_level):
2754 Likewise.
2755 (clear_binding_level): Unconditionally set binding_depth.
2756 (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
2757
b9d861bc
BM
27582004-05-26 Bryce McKinlay <mckinlay@redhat.com>
2759
2760 * lex.c (java_new_lexer): Set 'encoding'.
2761 (java_read_char): Improve error message for unrecognized characters.
2762 * lex.h (struct java_lexer): New field 'encoding'.
2763
4f4e53dd
PB
27642004-05-23 Paolo Bonzini <bonzini@gnu.org>
2765
2766 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
2767
f1865cde
MW
27682004-05-21 Mark Wielaard <mark@klomp.org>
2769
2770 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
2771 extern.
2772
20cb64fd
PB
27732004-05-19 Paolo Bonzini <bonzini@gnu.org>
2774
2775 * typeck.c: Remove non-printable character 160.
2776
66ba7273
RM
27772004-05-17 Ranjit Mathew <rmathew@hotmail.com>
2778
2779 * check-init.c: Correct minor typos.
2780
eadf906f
DN
27812004-05-13 Diego Novillo <dnovillo@redhat.com>
2782
2783 * Make-lang.in, expr.c, java-gimplify.c: Rename
2784 tree-simple.[ch] to tree-gimple.[ch].
2785
c9ecc336
RM
27862004-05-14 Ranjit Mathew <rmathew@hotmail.com>
2787
2788 * java-gimplify.c (java_gimplify_expr): Correct minor typos.
2789
6de9cd9a
DN
27902004-05-13 Diego Novillo <dnovillo@redhat.com>
2791
2792 Merge from tree-ssa-20020619-branch. See
2793 ChangeLog.tree-ssa for details.
2794
2795 * Make-lang.in, builtins.c, check-init.c, class.c,
2796 constants.c, decl.c, except.c, expr.c, java-except.h,
2797 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
2798 lang.c, lang.opt, parse.y, resource.c: Merged.
2799 * java-gimplify.c: New file.
2800
af434fa7
AH
28012004-05-10 Andrew Haley <aph@redhat.com>
2802
2803 * parse.y (create_class): Set TYPE_VFIELD.
2804 * decl.c (java_init_decl_processing): Likewise.
2805
2806 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
2807 * class.c (make_method_value): Replace DECL_VINDEX with call to
2808 get_method_index().
2809 (get_dispatch_vector): Likewise.
2810 (layout_class_method): Likewise.
2811 Replace set of DECL_VINDEX with call to set_method_index().
2812 (set_method_index): New function.
2813 (get_method_index): New function.
2814 * java-tree.h (set_method_index): New function decl.
2815 (get_method_index): New function decl.
2816
7cef5027
AP
28172004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
2818
2819 * parse.y (check_pkg_class_access): Add new argument
2820 and use it when cl is NULL to call lookup_cl on it.
2821 (parser_check_super_interface): Do not call lookup_cl.
2822 Pass this_decl to check_pkg_class_access and NULL
2823 instead of lookup_cl.
2824 (parser_check_super): Update for change in
2825 check_pkg_class_access.
2826 (do_resolve_class): Likewise.
2827 (process_imports): Likewise.
2828 (find_in_imports_on_demand): Likewise.
2829 (resolve_qualified_expression_name): Likewise.
2830
8ae6595c
RM
28312004-05-06 Ranjit Mathew <rmathew@hotmail.com>
2832
2833 Fixes PR java/9685, PR java/15073
2834 * parse.y (accessibility_string): New method.
2835 (not_accessible_field_error): Use accessibility_string()
2836 instead of java_accstring_lookup().
2837 (resolve_qualified_expression_name): Check with
2838 check_pkg_class_access() before allowing access using
2839 qualified names.
2840 Fix comment typo.
2841 Use check_pkg_class_access() instead of not_accessible_p()
2842 for unqualified types.
9f63daea 2843 (not_accessible_p): Use DECL_CONTEXT (member) instead of
8ae6595c
RM
2844 REFERENCE for package-private access checking.
2845 (patch_method_invocation): Use accessibility_string() instead
2846 of java_accstring_lookup().
2847
3fb577a5
RM
28482004-04-30 Ranjit Mathew <rmathew@hotmail.com>
2849
2850 Fixes PR java/15133
2851 * gjavah.c (struct method_name): Add member is_native.
2852 (overloaded_jni_method_exists_p): Match candidate method only if
2853 it is native.
2854 (print_method_info): Initialise is_native flag from the method's
2855 access flags.
2856
2d99c042
RS
28572004-04-30 Roger Sayle <roger@eyesopen.com>
2858
2859 * builtins.c (java_builtins): Add acos, asin, ceil and floor.
2860 (initialize_builtins): Likewise, define acos, asin, ceil and floor.
2861
a95cd5a0
RS
28622004-04-22 Roger Sayle <roger@eyesopen.com>
2863
2864 * resource.c (write_resource_constructor): Guard call to possibly
2865 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
2866
f5310108
BM
28672004-04-19 Bryce McKinlay <mckinlay@redhat.com>
2868
2869 * class.c (make_class_data): Add new field aux_info.
9f63daea 2870 * decl.c (java_init_decl_processing): Push type and decl for
f5310108
BM
2871 `aux_info'.
2872
245c3c04
BM
28732004-04-15 Bryce McKinlay <mckinlay@redhat.com>
2874
9f63daea 2875 * expr.c (expand_java_NEW): Don't use size argument for
245c3c04
BM
2876 _Jv_AllocObject calls.
2877 * parse.y (patch_invoke): Likewise.
2878
aeb95628
BM
28792004-04-12 Bryce McKinlay <mckinlay@redhat.com>
2880
2881 * expr.c (build_invokeinterface): Remove unused variables to
2882 fix warnings.
2883
d7afe286
BM
28842004-04-12 Bryce McKinlay <mckinlay@redhat.com>
2885
9f63daea 2886 * class.c (get_interface_method_index): New function. Return dispatch
d7afe286
BM
2887 index for interface method.
2888 (make_method_value): For interface methods, set index field to
2889 iface dispatch index, not DECL_VINDEX.
2890 * expr.c (build_invokeinterface): Use get_interface_method_index.
2891
8df83eae
RK
28922004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2893
2894 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
2895
31023ac5
AH
28962004-03-31 Andrew Haley <aph@redhat.com>
2897
2898 PR java/14104
2899 * jcf-io.c (opendir_in_zip): Tidy up error handling.
2900
1431042e
ZW
29012004-03-30 Zack Weinberg <zack@codesourcery.com>
2902
2903 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
2904 form of GTY markers.
2905
f6e9619a
MM
29062004-03-25 Marcus Meissner <meissner@suse.de>
2907
2908 PR java/14689:
2909 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
2910
986dc4e5
TT
29112004-03-23 Tom Tromey <tromey@redhat.com>
2912
2913 PR java/14315:
2914 * jcf-write.c (make_class_file_name): Don't report if mkdir
2915 failed with EEXIST.
2916
37214c41
TT
29172004-03-23 Tom Tromey <tromey@redhat.com>
2918
2919 * gcj.texi (Extensions): Document GCJ_PROPERTIES.
2920
c048d56d
KH
29212004-03-20 Kazu Hirata <kazu@cs.umass.edu>
2922
2923 * class.c, gjavah.c, lang.c: Fix comment typos.
2924 * gcj.texi: Fix typos.
2925
24d82bce
PB
29262004-03-19 Per Bothner <per@bothner.com>
2927
678fccd5
PB
2928 * gcj.texi (Code Generation): Document new flags and assert defaults.
2929
24d82bce
PB
2930 * class.c (assume_compiled_node_struct): Rename type to
2931 class_flag_node_struct, as it is now also used for enable_assertions.
2932 Rename assume_compiled_node typedef. Rename excludep field to value.
2933 (find_assume_compiled_node): Rename function to find_class_flag_node.
2934 Minor optimization - avoid needless strlen.
2935 (add_assume_compiled): Some tweaking and optimization.
2936 Rename and generalize to add_class_flag takem an extra parameter.
2937 (add_assume_compled): New just calls add_class_flag.
2938 (add_enable_assert, enable_assertions): New functions.
2939 (enable_assert_tree): New static.
2940 * java-tree.h (add_enable_assert, enable_assertions): New declarations.
2941 * lang.opt (fenable-assertions, fenable-assertions=,
2942 fdisable-assertions, fdisable-assertions=): New options.
2943 * lang.c (java_handle_option): Handle new options.
2944 * parse.y (build_incomplete_class_ref): Handle class$ in an inner
2945 class in an interface - create helper class nested in outer interface.
1431042e 2946 (build_assertion): Short-circuit if enable_assertions is false.
24d82bce 2947
eb34af89
RK
29482004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2949
2950 * java-tree.h: Changes throughout to add checking to macros
2951 and numerous whitespace changes.
2952 (VAR_OR_FIELD_CHECK): New macro.
2953 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
2954 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
2955
e4b27b12
PB
29562004-03-16 Per Bothner <per@bothner.com>
2957
c4cef86b
PB
2958 * jcf-jump.c (options): New --print-constants option.
2959 * gcj.texi (Invoking jcf-dump): Document --print-constants.
2960
e4b27b12
PB
2961 * jcf-dump.c (flag_print_constant_pool): Default to off.
2962 (print_constant_terse_with_index): New helper function.
2963 (various places): Check flag_print_constant_pool where missing.
2964 (main): If verbose set flag_print_constant_pool.
2965 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous.
2966
bfb7b172
AH
29672004-03-15 Andrew Haley <aph@redhat.com>
2968
2969 PR java/14581
2970 * parse.y (java_complete_lhs): Check that final variable has an
2971 initializer.
2972
0bb1600a
AH
29732004-03-12 Andrew Haley <aph@redhat.com>
2974
2975 PR java/14551
2976 * typeck.c (convert): Clear TREE_OVERFLOW after an integer
2977 conversion.
2978
083474cc
RS
29792004-02-29 Roger Sayle <roger@eyesopen.com>
2980
2981 * jcf-parse.c (java_parse_file): Handle the case that input_filename
2982 is NULL.
2983
202167e7
PB
29842004-02-27 Per Bothner <per@bothner.com>
2985
2986 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm
2987 suggestion: Use build_incomplete_class_ref.
6bd5c787 2988 This fixes PR java/13508, java/11714.
202167e7 2989
88462c42
KH
29902004-02-27 Kazu Hirata <kazu@cs.umass.edu>
2991
2992 * java/parse.h: Update copyright.
2993
bddefd4f
AH
29942004-02-26 Andrew Haley <aph@redhat.com>
2995
2996 PR java/14231:
2997 * parse.y (check_interface_throws_clauses): Check for
2998 !METHOD_INVISIBLE (iface_method).
2999 * class.c (layout_class_methods): Check for CLASS_INTERFACE as
3000 well as CLASS_ABSTRACT.
1431042e 3001
9980cc4b
PB
30022004-02-25 Per Bothner <per@bothner.com>
3003
3004 * parse.y (build_assertion): If we're in an inner class, create the
3005 class$ helper routine in the outer class.
3006
4221057e
RH
30072004-02-19 Richard Henderson <rth@redhat.com>
3008
3009 * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
3010
fd1146d4
GK
30112004-02-16 Geoffrey Keating <geoffk@apple.com>
3012
3013 * Make-lang.in (java.install-man): Add extra dependencies.
3014
c7dad005
GK
30152004-02-13 Geoffrey Keating <geoffk@apple.com>
3016
3017 * Make-lang.in: Install man pages under the same names
3018 (possibly transformed) as the program they document.
3019
0237b2dc
JM
30202004-02-10 Joseph S. Myers <jsm@polyomino.org.uk>
3021
3022 * gjavah.c: Include "intl.h".
3023 (error): New function.
3024 (main): Call gcc_init_libintl.
3025 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
3026 print_stub_or_jni, process_file, main): Use error rather than
3027 fprintf.
3028 (print_method_info, usage, help, version, main): Mark strings for
3029 translation with _. Avoid splitting up sentences. Send
3030 information messages to stdout.
3031 * jcf-dump.c: Include "intl.h".
3032 (main): Call gcc_init_libintl.
3033 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
3034 Mark error, usage and version messages for translation with _.
3035 Avoid splitting up sentences.
3036 * jv-scan.c: Include "intl.h".
3037 (fatal_error, warning): Change parameter s to msgid. Translate
3038 messages.
3039 (main): Call gcc_init_libintl.
3040 (usage, help, version): Mark error, usage and version messages for
3041 translation with _. Avoid splitting up sentences.
3042 * jvgenmain.c: Include "intl.h".
3043 (main): Call gcc_init_libintl.
3044 (usage, main): Mark error messages for translation with _.
3045 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
3046 JVGENMAIN_OBJS): Add intl.o.
3047 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
3048 java/jvgenmain.o): Update dependencies.
3049
e333a618
PB
30502004-02-08 Per Bothner <per@bothner.com>
3051
3052 * parse.y (resolve_qualified_expression_name): In case of inaccessible
3053 class don't use not_accessible_field_error, which can get confused.
3054
02ba6b22
KC
30552004-02-05 Kelley Cook <kcook@gcc.gnu.org>
3056
3057 Make-lang.in (po-generated): Delete.
3058
136e64db
KH
30592004-02-05 Kazu Hirata <kazu@cs.umass.edu>
3060
3061 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
3062 Depend on target.h.
3063 * decl.c: Include target.h.
3064 (start_java_method): Replace PROMOTE_PROTOTYPES with
3065 targetm.calls.promote_prototypes.
3066 * expr.c: Include target.h.
3067 (pop_arguments): Replace PROMOTE_PROTOTYPES with
3068 targetm.calls.promote_prototypes.
3069 * parse.y: Include target.h.
3070 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
3071 with targetm.calls.promote_prototypes.
3072
e146f815
KH
30732004-02-04 Kazu Hirata <kazu@cs.umass.edu>
3074
3075 * typeck.c: Update copyright.
3076
4e0e4a49
TT
30772004-02-02 Tom Tromey <tromey@redhat.com>
3078
3079 * decl.c (java_init_decl_processing): Remove duplicate
3080 gnu/gcj/RawData.
3081
71cbe2c1
KC
30822004-01-30 Kelley Cook <kcook@gcc.gnu.org>
3083
1431042e 3084 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
71cbe2c1 3085
ae8f0c17
AP
30862004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
3087
3088 * expr.c (build_field_ref): Move variable
3089 definition up.
3090
6d23f07f
AH
30912004-01-28 Andrew Haley <aph@redhat.com>
3092
3093 * expr.c (build_field_ref): Widen field offset.
3094
ea095e9a
AH
30952004-01-27 Andrew Haley <aph@redhat.com>
3096
3097 java/13273
3098 * parse.y (check_interface_throws_clauses): Make sure class_decl
3099 has been loaded.
3100
5238574f
JS
31012004-01-22 Jeff Sturm <jsturm@one-point.com>
3102
3103 PR java/13733
3104 * parse.y (patch_assignment): Don't modify lhs_type for
3105 reference assignments.
3106
a541f69d
KC
31072004-01-20 Kelley Cook <kcook@gcc.gnu.org>
3108
3109 * Make-lang.in: Replace $(docdir) with doc.
3110 (java.info, java.srcinfo, java.man, java.srcman): New rules.
3111 (java.install-man): Revamp rule.
1431042e 3112
e165d61b
KC
31132004-01-20 Kelley Cook <kcook@gcc.gnu.org>
3114
1431042e
ZW
3115 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
3116 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
e165d61b
KC
3117 instead of deferred backquote.
3118
cf5da2b9
AP
31192004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
3120
3121 * typeck.c (find_method_in_interfaces): Move variable
3122 definition up.
3123
e081a9c4
AH
31242004-01-16 Andrew Haley <aph@redhat.com>
3125
3126 PR java/13273:
3127 * typeck.c (shallow_find_method): New.
3128 (find_method_in_superclasses): New.
3129 (find_method_in_interfaces): New.
3130 (lookup_do): Rewrite.
3131 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
3132
3133 * jcf-parse.c (read_class): Save and restore output_class.
3134 * decl.c (java_expand_body): Set output_class from fndecl.
3135
71e68384
MC
31362004-01-15 Michael Chastain <mec.gnu@mindspring.com>
3137
3138 * class.c (gen_indirect_dispatch_tables): Fix string length
3139 calculations.
3140
03787dfd
KC
31412004-01-15 Kelley Cook <kcook@gcc.gnu.org>
3142
3143 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
3144 (java.srcextra): Copy above back to source directory if requested.
3145 (po-generated): Delete reference to $(parsedir).
3146 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
3147 Use implicit rule.
3148
4b589eab
JH
31492004-01-14 Jan Hubicka <jh@suse.cz>
3150
3151 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
3152 estimation.
3153
0fab64a3
MM
31542004-01-09 Mark Mitchell <mark@codesourcery.com>
3155
3156 * java-tree.h (java_expand_expr): Change prototype.
3157 * expr.c (java_expand_expr): Add alt_rtl parameter.
3158
85194ee9
AH
31592004-01-09 Andrew Haley <aph@redhat.com>
3160
3161 PR java/12755:
3162 * parse.y (java_fix_constructors): Set output_class.
3163 (java_reorder_fields): Likewise.
3164 (java_layout_classes): Likewise.
3165 (java_expand_classes): Generate indirect dispatch tables.
3166 (java_expand_classes): Set output_class.
3167 (java_finish_classes): Likewise.
3168 * lang.c (java_init): Turn on always_initialize_class_p if we're
3169 using indirect dis[atch.
3170 (java_decl_ok_for_sibcall): Use output_class, not current_class.
3171 (java_get_callee_fndecl): Use class local atable.
1431042e 3172 * jcf-parse.c
85194ee9
AH
3173 (always_initialize_class_p): Decl moved to java-tree.h.
3174 (HANDLE_CLASS_INFO): Set output_class.
3175 (read_class): Likewise.
3176 (parse_class_file): Call gen_indirect_dispatch_tables.
3177 (parse_zip_file_entries): Set output_class.
3178 (java_parse_file): Set output_class. Don't emit symbol tables.
3179 * java-tree.h (output_class): New.
3180 Remove global declarations for otable, atable, and ctable.
3181 (always_initialize_class_p): moved here from decl.c.
3182 (DECL_OWNER): New.
3183 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
3184 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
3185 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
3186 (struct lang_type): Add otable_methods, otable_decl,
3187 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
3188 ctable_decl, catch_classes, type_to_runtime_map.
3189 * expr.c (build_field_ref): Make otable, atable, and ctable class
3190 local rather than global.
3191 (build_known_method_ref): Likewise.
3192 (build_invokeinterface): Likewise.
3193 (java_expand_expr): Pass runtime type (rather than actual type) to
3194 expand_start_catch.
3195 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
3196 this class. Look up each class in that map to delete duplicates.
3197 (expand_end_java_handler): Pass runtime type (rather than actual
3198 type) to expand_start_catch.
3199 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
3200 (do_nothing): New.
3201 (java_init_decl_processing): Rearrange things. Remove global
3202 declarations of otable, atable, and ctable.
3203 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
3204 (java_expand_body): Set output_class.
3205 * constants.c (build_constant_data_ref): Use output_class, not
3206 current_class.
3207 (alloc_name_constant): Likewise.
3208 * class.c (gen_indirect_dispatch_tables): New.
3209 (build_class_ref): Generate hard reference to superclass, even if
3210 using indirect dispatch.
3211 (build_static_field_ref): Use class local atable.
3212 (make_class_data): Generate hard reference to superclass, even if
3213 using indirect dispatch.
3214 Generate symbolic references to interfaces when using indirect
3215 dispatch.
3216 (make_class_data): Emit otable, atable, and ctable.
3217 Make otable, atable, and ctable class local rather than global.
3218 (emit_catch_table): Make otable, atable, and ctable class local
3219 rather than global.
1431042e 3220
df9fe6e5
AP
32212003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
3222
19a4e5b7
AP
3223 * parse.y (catch_clause_parameter): Fix typo.
3224
df9fe6e5 3225 PR java/13404
1431042e 3226 * parse.y: (catch_clause_parameter): Return early if $3, aka
df9fe6e5
AP
3227 formal_parameter, is null.
3228
3a976c72
KH
32292003-12-20 Kazu Hirata <kazu@cs.umass.edu>
3230
3231 * class.c: Remove uses of "register" specifier in
3232 declarations of arguments and local variables.
3233 * decl.c: Likewise.
3234 * expr.c: Likewise.
3235 * gjavah.c: Likewise.
3236 * jcf-dump.c: Likewise.
3237 * jcf-io.c: Likewise.
3238 * jcf-parse.c: Likewise.
3239 * jcf-write.c: Likewise.
3240 * keyword.h: Likewise.
3241 * parse.y: Likewise.
3242 * typeck.c: Likewise.
3243 * verify.c: Likewise.
3244
439020ec
KC
32452003-12-06 Kelley Cook <kcook@gcc.gnu.org>
3246
3247 * Make-lang.in (GCJ_CROSS_NAME): Delete.
3248 (java.install_common, java.install-man): Adjust for above.
3249 (java.uninstall): Likewise.
3250
02972627
MK
32512003-12-03 Michael Koch <konqueror@gmx.de>
3252
3253 * class.c (make_class_data):
3254 Push field value to 'hack_signers' instead of 'signers'.
3255 * decl.c (java_init_decl_processing):
3256 Push field 'hack_signers' instead of 'signers'.
3257
eb158727
ZW
32582003-12-03 Zack Weinberg <zack@codesourcery.com>
3259
3260 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
3261 including iconv.h.
3262
c6a25d3a
RL
32632003-12-03 Ralph Loader <rcl@ihug.co.nz>
3264
3265 PR java/12374:
3266 * parse.y (qualify_ambiguous_name): Remove lots of broken
3267 field access processing - there's no need to do that here,
3268 because we have resolve_field_access. Remove
3269 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
3270 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
3271 used.
eb158727 3272
50abb28b
JS
32732003-12-01 Jeff Sturm <jsturm@one-point.com>
3274
3275 Fix PR java/13237
3276 * parse.y (java_complete_lhs): Save location prior to patching
3277 CALL_EXPR.
3278
8bc7a740
ME
32792003-11-25 Mohan Embar <gnustuff@thisiscool.com>
3280
50abb28b
JS
3281 PR java/12548
3282 * resource.c (write_resource_constructor): Append
3283 "_resource" to constructor identifier name.
8bc7a740 3284
75182467
JS
32852003-11-25 Jeff Sturm <jsturm@one-point.com>
3286
3287 Fix PR java/13183.
3288 * constants.c (cpool_for_class): New function.
3289 (outgoing_cpool): Remove global variable.
3290 (alloc_name_constant): Use cpool_for_class.
3291 (build_constants_constructor): Likewise.
3292 * decl.c (java_expand_body): Set current_class.
3293 * java-tree.h (outgoing_cpool) Remove declaration.
3294 (init_outgoing_cpool): Likewise.
3295 * jcf-parse.c (init_outgoing_cpool): Remove function.
3296 (parse_class_file): Don't call init_outgoing_cpool.
3297 * parse.y (java_complete_expand_methods): Don't call
3298 init_outgoing_cpool. Don't save outgoing_cpool.
3299 (java_expand_classes): Don't restore outgoing_cpool.
3300 (java_finish_classes): Likewise.
3301
33fe4596
ME
33022003-11-24 Mohan Embar <gnustuff@thisiscool.com>
3303
3304 * Make-lang.in: (java.install-common) Add
3305 symlink for $(target_noncanonical)-gcjh for
3306 native builds.
3307
a03ad584
JM
33082003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
3309
3310 * Make-lang.in (java.extraclean): Delete.
3311
49a41726
JM
33122003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
3313
3314 * Make-lang.in (check-java): Add.
3315
c2a141a0
JS
33162003-11-19 Jeff Sturm <jsturm@one-point.com>
3317
3318 Fix PR java/13024.
3319 * except.c (prepare_eh_table_type): Allocate variable-sized
3320 buffer `buf' with alloca.
3321
b8ca854a
JS
33222003-11-17 Jeff Sturm <jsturm@one-point.com>
3323
3324 Fix PR java/12857.
3325
3326 decl.c (java_init_decl_processing): Don't initialize
3327 class_not_found_type_node, no_class_def_found_type_node.
3328
3329 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
3330 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
3331 (class_not_found_type_node, no_class_def_found_type_node):
3332 Don't define.
3333
3334 parse.y (build_dot_class_method_invocation): Add this_class
3335 argument. Qualify method invocations to a different class.
3336 (create_new_parser_context): Initialize saved_data_ctx to 0.
3337 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
3338 (build_dot_class_method): Don't load classes. Register
3339 incomplete types.
3340 (build_incomplete_class_ref): Special cases for interfaces
3341 and inner classes. Move build_dot_class_method call to here...
3342 (patch_incomplete_class_ref): ...from here. Pass current_class
3343 to build_dot_class_method_invocation.
3344 (build_assertion): Pass class_type to
3345 build_dot_class_method_invocation.
3346 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
3347
a78e4fa7
JS
33482003-11-17 Jeff Sturm <jsturm@one-point.com>
3349
3350 Fix PR java/12739.
3351 * java-tree.h (BLOCK_EMPTY_P): Define.
3352 * parse.y (java_complete_lhs): Check for empty blocks
3353 in TRY_FINALLY_EXPR case.
3354
33552003-11-17 Andrew Haley <aph@redhat.com>
6bbb4ad3
AH
3356
3357 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
eb158727 3358 (struct lang_decl_var:freed): New variable.
6bbb4ad3
AH
3359 * decl.c (poplevel): Mark local vars that have gone out of scope.
3360 (push_jvm_slot): Don't use the RTL of a var that has gone out of
3361 scope.
3362
7d60db05
JM
33632003-11-16 Jason Merrill <jason@redhat.com>
3364
3365 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
3366 and TAGS files that include them for each front end.
3367
45c00e22
TT
33682003-11-15 Tom Tromey <tromey@redhat.com>
3369
3370 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
3371
1b2b8ee7
JM
33722003-11-12 Jason Merrill <jason@redhat.com>
3373
3374 PR optimization/12547
3375 * lang.c (java_tree_inlining_walk_subtrees): Just walk
3376 BLOCK_EXPR_BODY directly.
3377
7304c6cf
AH
33782003-11-12 Andrew Haley <aph@redhat.com>
3379
0adaa7e4
AH
3380 PR java/11045
3381 * parse.y (fold_constant_for_init): Check that we really do have a
3382 constant.
3383
7304c6cf
AH
3384 PR java/11533
3385 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
3386 init_test_decls being inlined.
3387
3388 PR java/12890:
3389 * parse.y (do_resolve_class): Check return value from
3390 breakdown_qualified().
3391
5b84be73
TT
33922003-11-11 Tom Tromey <tromey@redhat.com>
3393
3394 PR java/12915:
3395 * parse.y (merge_string_cste): Handle case where we have a
3396 pointer that happens to be zero, not null_pointer_node.
3397
87a9cbf9
TT
33982003-11-10 Tom Tromey <tromey@redhat.com>
3399
3400 * jcf-parse.c (classify_zip_file): Correctly compare
3401 filename_length against length of manifest file's name.
3402
b9bc3665
TT
34032003-11-08 Tom Tromey <tromey@redhat.com>
3404
3405 PR java/12894:
3406 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
3407
4b886873
AH
34082003-11-06 Andrew Haley <aph@redhat.com>
3409
3410 * expr.c (java_stack_swap): Make sure destination stack slots are
3411 of the correct type.
3412
63069342
KC
34132003-11-03 Kelley Cook <kcook@gcc.gnu.org>
3414
3415 * Make-lang.in (dvi): Move targets to $(docobjdir).
3416 (gcj.dvi): Simplify rule and adjust target.
3417 (gcj.info): Simplify rule.
3418 (gcj.pod): New intermediate rule.
3419 (gcjh.pod): Likewise.
3420 (jv-scan.pod): Likewise.
3421 (jcf-dump.pod): Likewise.
3422 (gij.pod): Likewise.
3423 (jv-convert.pod): Likewise.
3424 (rmic.pod): Likewise.
3425 (rmiregistry.pod): Likewise.
3426 (gcj.1): Delete.
3427 (gcjh.1): Delete.
3428 (jv-scan.1): Delete.
3429 (jcf-dump.1): Delete.
3430 (gij.1): Delete.
3431 (jv-convert.1): Delete.
3432 (rmic.1): Delete.
3433 (rmiregistry.1): Delete.
3434
9bcdf735
JS
34352003-11-02 Jeff Sturm <jsturm@one-point.com>
3436
3437 Fixes PR java/12866.
3438 * parse.y (resolve_qualified_expression_name): Move test
3439 for outer field access methods from here...
3440 (check_thrown_exceptions) ...to here.
3441
d6665c33
KC
34422003-11-01 Kelley Cook <kcook@gcc.gnu.org>
3443
3444 * .cvsignore: Delete.
3445
ab212c24
FCE
34462003-10-28 Frank Ch. Eigler <fche@redhat.com>
3447
3448 * verify.c (verify_jvm_instructions): Don't warn about legal
3449 eh binding regions generated for example by jdk 1.4.1.
3450
7b8af2b5
DM
34512003-10-24 David S. Miller <davem@redhat.com>
3452
3453 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
3454
90471585
AH
34552003-10-22 Andrew Haley <aph@redhat.com>
3456
3457 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
3458 (java_get_callee_fndecl): New.
3459
3460 * jcf-parse.c (java_parse_file): Call emit_catch_table().
3461
3462 * java-tree.h (ctable_decl): New.
3463 (catch_classes): New.
3464 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
3465
3466 * decl.c (java_init_decl_processing): Add catch_class_type.
3467 Add ctable_decl.
3468 Add catch_classes field.
3469
3470 * class.c (build_indirect_class_ref): Break out from
3471 build_class_ref.
3472 (make_field_value): Check flag_indirect_dispatch.
3473 (make_class_data): Ditto.
3474 Tidy uses of PUSH_FIELD_VALUE.
3475 Add field catch_classes.
3476 (make_catch_class_record): New.
3477
3478 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
3479
ed2f11fa
KH
34802003-10-22 Kazu Hirata <kazu@cs.umass.edu>
3481
3482 * jcf-write.c: Follow spelling conventions.
3483 * parse.y: Likewise.
3484
67264b4f
KH
34852003-10-22 Kazu Hirata <kazu@cs.umass.edu>
3486
3487 * ChangeLog: Fix typos.
3488 * expr.c: Fix comment typos.
3489 * jcf-write.c: Likewise.
3490 * lang.c: Likewise.
3491 * lex.c: Likewise.
3492 * mangle.c: Likewise.
3493 * parse-scan.y: Likewise.
3494 * parse.y: Likewise.
3495
36ae3d8e
TT
34962003-10-22 Tom Tromey <tromey@redhat.com>
3497
3498 * expr.c (expand_byte_code): Only warn about dead bytecode when
3499 extra_warnings is set.
3500
ed2506a4
BM
35012003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
3502
3503 Fix for PR java/12586.
3504 * mangle.c (find_compression_record_match): Don't iterate through
3505 package namespace elements unless they all match compression_table
3506 entries.
3507
036a75ac
KC
35082003-10-20 Kelley Cook <kcook@gcc.gnu.org>
3509
3510 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
3511 (generate-manpages): Likewise.
3512 (java.maintainer-clean): Likewise.
3513 (gcj.info): Likewise.
3514 (gcj.1): Likewise.
3515 (gcjh.1): Likewise.
3516 (jv-scan.1): Likewise.
3517 (jcf-dump.1): Likewise.
3518 (gij.1): Likewise.
3519 (jv-convert.1): Likewise.
3520 (rmic.1): Likewise.
3521 (rmiregistry.1): Likewise.
3522 (java.install-man): Likewise.
3523 (parse-scan.o): Move and define complete compile line.
3524 (parse.o): Likewise.
3525 (jcf-tree-inline.o): Move.
3526
97ae108d
MM
35272003-10-20 Mark Mitchell <mark@codesourcery.com>
3528
3529 * Make-lang.in (info): Update dependencies.
3530 (java.install-info): Remove.
3531 ($(srcdir)/java/gcj.info): Replace with ...
3532 ($(docobjdir)/gcj.info): ... this.
3533
43aba518
NN
35342003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
3535
3536 * Make-lang.in: Replace uses of $(target_alias) with
3537 $(target_noncanonical).
3538
ae125b17
TT
35392003-10-09 Tom Tromey <tromey@redhat.com>
3540
3541 * decl.c (java_init_decl_processing): Declare signers field.
3542 * class.c (make_class_data): Set signers field.
3543
1456deaf
JM
35442003-10-09 Jason Merrill <jason@redhat.com>
3545
3546 * parse.y (patch_assignment): Use make_node to create a BLOCK.
3547 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
3548 POINTER_TYPE.
3549
62b81e45
MM
35502003-10-06 Mark Mitchell <mark@codesourcery.com>
3551
3552 * Make-lang.in (java.info): Replace with ...
3553 (info): ... this.
3554 (java.dvi): Replace with ...
3555 (dvi): ... this.
3556 (java.generated-manpages): Replace with ...
3557
35222de2
KC
35582003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
3559
3560 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
3561
9dfc2ec2
AH
35622003-10-01 Andrew Haley <aph@redhat.com>
3563
3564 * jcf-parse.c (java_parse_file): Write otable and atable.
3565 * java-tree.h (atable_methods): New.
3566 (atable_decl): New.
3567 (atable_syms_decl): New.
3568 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
3569 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
eb158727 3570 (symbol_*type): Rename method_symbol* to symbol*type.
9dfc2ec2
AH
3571 (emit_offset_symbol_table): Delete.
3572 (emit_symbol_table): New.
3573 (get_symbol_table_index): New.
3574 (atable_type): New.
3575 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
3576 (build_known_method_ref): Likewise.
3577 (get_symbol_table_index): Rename from get_offset_table_index.
3578 Parameterize to allow re-use by differing types of symbol table.
3579 (build_invokevirtual): Pass table to get_offset_table_index.
3580 * decl.c (java_init_decl_processing): Push types and decls for
3581 atable and atable_syyms.
3582 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
3583 (make_class_data): Add new fields atable and atable_syms.
3584 (emit_symbol_table): Rename from emit_offset_symbol_table.
3585 Parameterize to allow re-use by different types of symbol table.
3586 (build_symbol_entry): Renamed from build_method_symbols_entry.
eb158727 3587
d186e676
RS
35882003-09-30 Roger Sayle <roger@eyesopen.com>
3589
3590 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
3591 semantics for SAVE_EXPR, by caching the result in a temporary.
3592
436fac17
RH
35932003-09-28 Richard Henderson <rth@redhat.com>
3594
3595 * check-init.c (check_init): Save and restore input_location
3596 instead of file and line separately.
3597 * decl.c (java_expand_body): Likewise.
3598 * jcf-write.c (generate_bytecode_insns): Likewise.
3599 * parse.y (safe_layout_class): Likewise.
3600 * jcf-parse.c (read_class, parse_class_file): Likewise.
3601 (java_parse_file): Use %H for warning locator.
3602
37e2180d
RS
36032003-09-28 Roger Sayle <roger@eyesopen.com>
3604
3605 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
3606 with void-type branches instead of using a COMPOUND_EXPR.
3607
9220b1ba
JS
36082003-09-28 Jeff Sturm <jsturm@one-point.com>
3609
3610 * decl.c (java_optimize_inline, dump_function): Remove.
3611 * java-tree.h (java_optimize_inline): Remove declaration.
3612 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
3613 * parse.y (source_end_java_method, java_expand_classes):
3614 Likewise. Remove dead code.
3615
c67e6e14
RS
36162003-09-27 Roger Sayle <roger@eyesopen.com>
3617
3618 * lang.c (java_init_options): Set flag_evaluation_order.
3619 * expr.c (force_evaluation_order): Don't attempt to force
3620 evaluation order of binary operations using save_expr.
3621 * parse.y (java_complete_lhs): No longer need to call
3622 force_evaluation_order when constructing binary operators.
3623
cd11bdcc
APB
36242003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
3625 Bryce McKinlay <bryce@mckinlay.net.nz>
3626
3627 PR java/1333:
3628 * parse.y (not_accessible_field_error): New function.
3629 (resolve_expression_name): Check field access permissions.
3630 (resolve_qualified_expression_name): Use
3631 not_accessible_field_error.
3632 (resolve_qualified_expression_name): Likewise.
3633
eb9ec0d4
RO
36342003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3635
3636 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
3637
87750fef
RS
36382003-09-23 Roger Sayle <roger@eyesopen.com>
3639
3640 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
3641 with equal operands without side-effects.
3642
92f6e625
JS
36432003-09-22 Jeff Sturm <jsturm@one-point.com>
3644
3645 * decl.c (java_init_decl_processing): Don't emit otable decls
3646 if flag_indirect_dispatch is not set.
3647
f31686a3
RH
36482003-09-21 Richard Henderson <rth@redhat.com>
3649
eb158727 3650 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
f31686a3
RH
3651 resource.c: Revert.
3652
7e2af53a
RH
36532003-09-21 Richard Henderson <rth@redhat.com>
3654
eb158727 3655 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
7e2af53a
RH
3656 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
3657
ddd2d57e
RH
36582003-09-20 Richard Henderson <rth@redhat.com>
3659
eb158727 3660 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
ddd2d57e 3661
96123432
RS
36622003-09-18 Roger Sayle <roger@eyesopen.com>
3663
3664 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
3665 * check-init.c (check_init): Likewise.
3666
a490d1be
RS
36672003-09-18 Roger Sayle <roger@eyesopen.com>
3668
3669 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
3670
1319e88e
AH
36712003-09-16 Andrew Haley <aph@redhat.com>
3672
3673 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
3674
bdc225df
RM
36752003-09-17 Ranjit Mathew <rmathew@hotmail.com>
3676
3677 Fixes PR java/9577
3678 * mangle.c (find_compression_record_match): Skip
3679 over a "6JArray" (the array template mangled string)
3680 IDENTIFIER_NODE.
3681 (mangle_array_type): Correct minor typo.
3682 (atms): Move definition to the beginning.
3683
93634679
BM
36842003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
3685
eb158727 3686 * class.c (add_miranda_methods): Ensure super-interfaces are laid
93634679
BM
3687 out. Fix for PR java/12254.
3688
6b00c969
RH
36892003-09-11 Richard Henderson <rth@redhat.com>
3690
eb158727
ZW
3691 * parse.y (source_end_java_method): Update for new
3692 cgraph_finalize_function argument.
6b00c969 3693
39adabaf
RH
36942003-09-09 Richard Henderson <rth@redhat.com>
3695
eb158727
ZW
3696 * parse.y (source_end_java_method): Update call to
3697 cgraph_finalize_function.
39adabaf 3698
916b57ce
JS
36992003-09-03 Jeff Sturm <jsturm@one-point.com>
3700
3701 * decl.c (java_expand_body): New function.
3702 * expr.c (build_class_init): Set DECL_IGNORED_P.
3703 * java-tree.h (start_complete_expand_method,
3704 java_expand_body): Declare.
3705 * jcf-parse.c (cgraph.h): Include.
3706 (java_parse_file): Handle flag_unit_at_a_time.
3707 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
3708 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
3709 (java_estimate_num_insns): Use walk_tree_without_duplicates.
3710 (java_start_inlining): New function.
3711 * parse.h (java_finish_classes): Declare.
3712 * parse.y: Include cgraph.h.
3713 (block): Don't special-case empty block production.
3714 (craft_constructor): Set DECL_INLINE.
3715 (source_end_java_method): Handle flag_unit_at_a_time.
3716 Replace inline code with call to java_expand_body.
3717 (start_complete_expand_method): Remove static modifier.
3718 (java_expand_method_bodies): Patch function tree for
3719 class initialization and/or synchronization as needed.
3720 Don't begin RTL expansion yet.
3721 (java_expand_classes): Check flag_unit_at_a_time before
3722 calling finish_class.
3723 (java_finish_classes): New function.
3724 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
3725 (patch_assignment): Set DECL_CONTEXT on temporary variable.
3726 (emit_test_initialization): Set DECL_IGNORED_P.
3727
e71d3aae
RS
37282003-09-03 Roger Sayle <roger@eyesopen.com>
3729
3730 * builtins.c (enum builtin_type): Delete unused enumeration.
3731 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
3732
ff2865f2
TT
37332003-08-28 Tom Tromey <tromey@redhat.com>
3734
3735 * gcj.texi (Extensions): Document gcjlib URLs.
3736
b7d6f12a
TT
37372003-08-20 Tom Tromey <tromey@redhat.com>
3738
3739 * gcj.texi (Extensions): Added xref.
3740 (libgcj Runtime Properties): Document
3741 gnu.gcj.runtime.VMClassLoader.library_control.
3742
ec00bfc0
AH
37432003-08-20 Andrew Haley <aph@redhat.com>
3744
eb158727
ZW
3745 * except.c (prepare_eh_table_type): Use new encoding for exception
3746 handlers when using -fno-assume-compiled.
ec00bfc0 3747
7f8b4704
TT
37482003-08-13 Tom Tromey <tromey@redhat.com>
3749
3750 * gcj.texi (Invoking gij): Document -X and -?.
3751
d0cf60cc
ME
37522003-08-13 Mohan Embar <gnustuff@thisiscool.com>
3753
3754 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
3755 GCJH_OBJS, JCFDUMP_OBJS
3756 * win32-host.c: Removed the unnecessary and broken dependency
3757 on jcf.h
3758
aecf4109
TT
37592003-08-11 Tom Tromey <tromey@redhat.com>
3760
3761 * parse.y (java_check_regular_methods): Typo fixes. Call
3762 check_interface_throws_clauses. Use
3763 check_concrete_throws_clauses.
3764 (check_interface_throws_clauses): New function.
3765 (check_concrete_throws_clauses): New function.
3766 (hack_is_accessible_p): New function.
3767 (find_most_specific_methods_list): Added FIXME.
3768 * typeck.c (lookup_do): Use `flags' argument to decide what to
3769 do. Reimplemented.
3770 (lookup_argument_method_generic): New function.
3771 (lookup_argument_method2): Removed.
3772 * jcf.h (ACC_INVISIBLE): New define.
3773 * jcf-write.c (generate_classfile): Skip invisible methods.
3774 * class.c (add_miranda_methods): New function.
3775 (layout_class_methods): Use it.
3776 (get_access_flags_from_decl): Use ACC_INVISIBLE.
3777 * java-tree.h (METHOD_INVISIBLE): New define.
3778 (lang_decl_func) [invisible]: New field.
3779 (lookup_argument_method_generic): Declare.
3780 (SEARCH_INTERFACE): New define.
3781 (SEARCH_SUPER): Likewise.
3782 (SEARCH_ONLY_INTERFACE): Likewise.
3783 (SEARCH_VISIBLE): Likewise.
3784 (lookup_argument_method2): Removed declaration.
3785
90281aec
TT
37862003-08-05 Tom Tromey <tromey@redhat.com>
3787
3788 Fix for PR java/11600:
3789 * parse.y (java_complete_lhs): See whether we're calling a method
3790 on an array.
3791 (check_thrown_exceptions): Added `is_array_call' argument;
3792 fixed `clone' checking; updated all callers.
3793
b3c3af2f
SB
37942003-08-05 Steven Bosscher <steven@gcc.gnu.org>
3795
3796 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
3797
0e046453
TT
37982003-08-03 Tom Tromey <tromey@redhat.com>
3799
3800 * java-tree.h (METHOD_TRANSIENT): Removed.
3801 * decl.c (pushdecl): Removed some dead code.
3802 * class.c (get_access_flags_from_decl): Can't have transient
3803 method.
3804 (add_method_1): Can't have a transient method.
3805
8376cf3d
AJ
38062003-07-28 Andreas Jaeger <aj@suse.de>
3807
3808 * jvspec.c: Convert to ISO C90 prototypes.
3809
b8bae365
NS
38102003-07-25 Nathan Sidwell <nathan@codesourcery.com>
3811
3812 * decl.c (force_poplevels): Fix warning call.
3813
cd475805
GDR
38142003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
3815
3816 * expr.c (expand_java_field_op): Don't use xxx_with_decl
3817 (expand_java_field_op): Likewise.
3818 * class.c (layout_class_method): Likewise
3819 (emit_register_classes): Likewise.
3820 * decl.c (pushdecl): Likewise.
3821 (poplevel): Likewise.
3822 (force_poplevels): Likewise.
3823 (give_name_to_locals): Likewise.
3824 * check-init.c (check_for_initialization): Likewise.
3825
de7df9eb
JM
38262003-07-24 Jason Merrill <jason@redhat.com>
3827
3828 * java-tree.h: Move boolean_type_node et al to the back end.
3829
c68b0a84
KG
38302003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3831
3832 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
3833 casts.
3834
2cc98056
NB
38352003-07-19 Neil Booth <neil@daikokuya.co.uk>
3836
3837 * lang.opt: Don't show -MD_ and -MDD_.
3838
b2e608ca
NB
38392003-07-18 Neil Booth <neil@daikokuya.co.uk>
3840
3841 * lang-options.h: Remove.
3842 * lang.opt: Add help text.
3843
683b1112
KH
38442003-07-15 Kazu Hirata <kazu@cs.umass.edu>
3845
3846 * expr.c: Remove the last argument to expand_assignment().
3847
602a82f3 38482003-07-09 Jan Hubicka <jh@suse.cz>
084c1779
JH
3849
3850 * java-tree.h (DECL_NUM_STMTS): Rename to...
3851 (DECL_ESTIMATED_INSNS): ... this.
3852 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
3853 New static functions.
3854 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
3855 * parser.y (add_stmt_to_compound): Do not account statements.
3856
671d6ee7
MW
38572003-07-08 Mark Wielaard <mark@klomp.org>
3858
3859 * gcj.texi: CNI now expands to Compiled Native Interface.
3860
c5ffd36c
RO
38612003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3862
3863 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
3864
0cea056b
NS
38652003-07-07 Nathan Sidwell <nathan@codesourcery.com>
3866
3867 * expr.c (expand_byte_code): Adjist emit_line_note call.
3868
cb66e385
NB
38692003-07-06 Neil Booth <neil@daikokuya.co.uk>
3870
3871 * lang.c (java_handle_option): Don't handle filenames.
3872
3dce1408
ZW
38732003-07-02 Zack Weinberg <zack@codesourcery.com>
3874
3875 * jcf-path.c: Don't default-define PATH_SEPARATOR nor
3876 DIR_SEPARATOR.
3877 Use FILENAME_CMP.
3878 * jcf-write.c: Don't default-define DIR_SEPARATOR.
3879 * jcf.h: Delete COMPARE_FILENAMES definition.
3880
b86f6cd9
NB
38812003-07-02 Neil Booth <neil@daikokuya.co.uk>
3882
3883 * lang.c (java_init_options): Update prototype.
3884
5b030314
NS
38852003-07-01 Nathan Sidwell <nathan@codesourcery.com>
3886
3887 * decl.c (poplevel): Adjust define_label call.
3888
8ce33230
ZW
38892003-06-27 Zack Weinberg <zack@codesourcery.com>
3890
a6d682a0
ZW
3891 * gjavah.c (flag_jni): Make non-static.
3892 * parse-scan.y (ctxp): Make non-static.
3893
8ce33230
ZW
3894 * class.c (build_method_symbols_entry)
3895 * expr.c (get_offset_table_index)
3896 * jcf-parse.c (jcf_parse):
3897 Mark the definition static, matching the forward declaration.
3898
9eee5e72
NB
38992003-06-26 Neil Booth <neil@daikokuya.co.uk>
3900
3901 * lang.c (java_handle_option): Don't check for missing arguments.
3902
1f9cc6db
NS
39032003-06-20 Nathan Sidwell <nathan@codesourcery.com>
3904
3905 * class.c (push_class): Use a location_t to save place.
3906 (emit_register_classes): Set input_location. Adjust
3907 expand_function_end call.
3908 * resource.c (write_resource_constructor): Likewise.
3909 * decl.c (end_java_method): Adjust expand_function_end call.
3910 * parse.y (source_end_java_method): Likewise.
3911
f3f735eb
RA
39122003-06-17 Robert Abeles <rabeles@archaelogic.com>
3913
3914 * lang.c (java_handle_option): Likewise.
3915
7b086b11
NB
39162003-06-16 Neil Booth <neil@daikokuya.co.uk>
3917
3918 * lang.c (java_handle_option): Special-casing of optional
3919 joined arguments no longer needed.
3920 * lang.opt: Update switches that take optional argument.
3921
be43ab4e
NB
39222003-06-15 Neil Booth <neil@daikokuya.co.uk>
3923
3924 * lang.opt: Declare Java.
3925 * lang.c (java_init_options): Update.
3926
d185d268
NB
39272003-06-15 Neil Booth <neil@daikokuya.co.uk>
3928
3929 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
3930
cef67dce
NB
39312003-06-14 Neil Booth <neil@daikokuya.co.uk>
3932
3933 * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
3934 * lang.c (java_handle_option): -MD and -MMD have an underscore.
3935 * lang.opt: -MD and -MMD have an underscore.
3936
ee6b0296
NS
39372003-06-14 Nathan Sidwell <nathan@codesourcery.com>
3938
3939 * class.c (emit_register_classes): Adjust init_function_start
3940 call.
3941 * decl.c (complete_start_java_method): Likewise.
3942 * resource.c (write_resource_constructor): Likewise.
3943
d7b42618
NB
39442003-06-14 Neil Booth <neil@daikokuya.co.uk>
3945
3946 * Make-lang.in: Update to use options.c and options.h.
3947 * lang.c: Include options.h not j-options.h.
3948 (java_handle_option): Abort on unrecognized option.
3949 (java_init_options): Request Java switches.
3950
7fb26bb0
NB
39512003-06-11 Neil Booth <neil@daikokuya.co.uk>
3952
3953 * Make-lang.in: Handle mostlyclean.
3954
265411b6
TT
39552003-06-11 Tom Tromey <tromey@redhat.com>
3956
4a09cbac
TT
3957 * lang.c (java_handle_option): Update dependency_tracking for
3958 OPT_MF case.
3959
265411b6
TT
3960 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
3961 empty argument.
3962
dc952677
AH
39632003-06-10 Andrew Haley <aph@redhat.com>
3964
3965 * resource.c (write_resource_constructor): Use expand_expr to
3966 generate the address of the label attached to a resource.
3967 * Make-lang.in (java/resource.o): Add expr.h
3968
e076f71a
AH
39692003-06-10 Andrew Haley <aph@redhat.com>
3970
3971 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
3972 (java_decl_ok_for_sibcall): New.
3973
95ca6d8b
NB
39742003-06-09 Neil Booth <neil@daikokuya.co.uk>
3975
3976 * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
3977 (java/j-options.c, java/j-options.h): New.
3978 * java-tree.h (resource_name, compile_resource_file,
3979 compile_resource_data): Constify.
3980 * jcf-write.c (jcf_write_base_directory): Similarly.
3981 * jcf.h (jcf_write_base_directory): Similarly.
3982 * lang.c: Include j-options.h.
3983 (cl_options_count, cl_options, string_option, java_decode_option,
3984 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
3985 process_option_with_no): Remove.
3986 (resource_name): Constify.
3987 (LANG_HOOKS_HANDLE_OPTION): Override.
3988 (java_handle_option): New.
3989 (java_init): Don't call jcf_path_init.
3990 (java_init_options): Call jcf_path_init.
3991 * lang.opt: New.
3992 * resource.c (compile_resource_data, compile_resource_file): Constify.
3993
36f04556
NS
39942003-06-09 Nathan Sidwell <nathan@codesourcery.com>
3995
3996 * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
3997 (struct lang_decl_func): Add last_line field.
3998 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
3999 DECL_SOURCE_LINE_LAST): Remove.
4000 * parse.y (missing_return_error, finish_method_declaration,
4001 lookup_cl, start_artificial_method_body, source_end_java_method,
4002 start_complete_expand_method): Adjust.
4003
f751e9c2
TT
40042003-06-08 Tom Tromey <tromey@redhat.com>
4005
4006 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
4007 fno-assume-compiled.
4008
5f158b44
RS
40092003-06-08 Roger Sayle <roger@eyesopen.com>
4010
4011 * builtins.c (define_builtin_type, builtin_types): Delete.
4012 (define_builtin): Rewritten to take just the built-in code,
4013 the function's name, type and fallback library function name.
4014 All built-ins used by Java are implicit and BUILT_IN_NORMAL.
4015 (initialize_builtins): Overhaul to define the GCC builtins
4016 used by gcj manually, providing the Java run-time's
4017 implementations as the fallback library function.
4018
f32c53c2
AG
40192003-06-08 Anthony Green <green@redhat.com>
4020
4021 * parse.y (patch_cast): Fix conversions from floating-point to
4022 integral types.
4023
c8b04b13
NB
40242003-06-08 Neil Booth <neil@daikokuya.co.uk>
4025
4026 * Make-lang.in: Update.
4027 * lang.c: Include opts.h. Define cl_options_count and cl_options.
4028
2772ef3e
NB
40292003-06-07 Neil Booth <neil@daikokuya.co.uk>
4030
4031 * lang.c (java_init_options): Update.
4032
602a82f3 40332003-06-05 Jan Hubicka <jh@suse.cz>
8f231b5d
JH
4034
4035 * Make-lang.in: Add support for stageprofile and stagefeedback
4036
4fa26a60
RS
40372003-05-31 Roger Sayle <roger@eyesopen.com>
4038
4039 * lang.c (java_init_options): Prescribe wrap-around two's
4040 complement arithmetic overflow by setting flag_wrapv.
4041
833e1a77
RS
40422003-05-29 Roger Sayle <roger@eyesopen.com>
4043
4044 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
4045 (builtin_record): Add an additional builtin_code field to
4046 record which GCC built-in corresponds to the Java function.
4047 (java_builtins): Add new entries for atan, atan2, exp, log,
4048 pow and tan.
4049 (max_builtin, min_builtin, abs_builtin): Perform constant
4050 folding on the resulting tree.
4051 (java_build_function_call_expr): Likewise, perform constant
4052 folding on the resulting tree.
4053 (initialize_builtins): The NULL creators are now allowed in
4054 the java_builtins table, which is now terminated by an entry
4055 with builtin_code == END_BUILTINS.
4056 (check_for_builtin): Likewise. If the matching creator is
4057 NULL, construct the call using java_build_function_call_expr
4058 directly with the decl for the corresponding builtin_code.
4059
24bcc721
NN
40602003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>
4061
4062 * win32-host.c: Normalize copyright boilerplate.
4063
90ff44cf
KG
40642003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4065
4066 * parse.y (print_int_node): Use string concatentation on
4067 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
4068 function calls into one.
4069
fa6ef813
ZW
40702003-05-13 Zack Weinberg <zack@codesourcery.com>
4071
4072 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
4073 fatal_io_error with calls to fatal_error; add ": %m" to the end of
4074 all the affected error messages.
4075
3bec3c0c
RH
40762003-05-13 Richard Henderson <rth@redhat.com>
4077
4078 * class.c (layout_class_method): Set DECL_EXTERNAL.
4079 * decl.c (java_mark_decl_local, java_mark_class_local): New.
4080 * java-tree.h (java_mark_class_local): Declare.
4081 * jcf-parse.c (parse_class_file): Use it.
4082 * parse.y (java_expand_classes): Likewise.
4083
d4b56320
NS
40842003-05-04 Nathan Sidwell <nathan@codesourcery.com>
4085
4086 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
4087 * lex.h: #include input.h.
4088 * jv-scan.c (input_filename): Remove.
4089
73cb3b5a
TT
40902003-05-02 Tom Tromey <tromey@redhat.com>
4091
4092 PR java/10491:
4093 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
4094 (handle_inner_classes): New function.
4095
fcc8cecb
TT
40962003-05-01 Tom Tromey <tromey@redhat.com>
4097
4098 PR java/10459:
4099 * parse.y (finish_for_loop): Do nothing if update expression is a
4100 EXPR_WFL_NODE wrapping nothing.
4101 (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
4102
6060edcb
NS
41032003-05-02 Nathan Sidwell <nathan@codesourcery.com>
4104
4105 * lex.h (input_lineno): Remove declaration.
4106 * parse-scan.y: #include input.h.
4107 (input_filename): Remove declaration.
4108 (input_location): Add definition.
4109 (input_line): Remove definition.
4110
3489e061
NS
41112003-05-01 Nathan Sidwell <nathan@codesourcery.com>
4112
4113 * lex.h (lineno): Rename to ...
4114 (input_line): ... here
4115 * parse-scan.y (lineno): Rename to ...
4116 (input_line): ... here.
4117 (reset_report): Rename lineno to input_line.
4118 * check-init.c (check_init): Likewise.
4119 * class.c (push_class): Likewise.
4120 * decl.c (complete_start_java_method, end_java_method): Likewise.
4121 * expr.c (expand_byte_code): Likewise.
4122 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
4123 * jcf-write.c (generate_bytecode_insns): Likewise.
4124 * lex.c (java_init_lex, java_allocate_new_line,
4125 do_java_lex): Likewise.
4126 * parse.h (YYNOT_TWICE): Likewise.
4127 * parse.y (empty_statement, expression_statement,
4128 java_pop_parser_context, java_parser_context_save_global,
4129 yyerror, register_fields, method_header, safe_layout_class,
4130 find_in_imports_on_demand, create_artificial_method,
4131 source_end_java_method, start_complete_expand_method,
4132 build_thisn_assign, java_complete_lhs,
4133 maybe_absorb_scoping_block): Likewise.
4134
ef963bc8
ME
41352003-04-20 Mohan Embar <gnustuff@thisiscool.com>
4136
4137 * jcf-io.c (find_class): use DIR_SEPARATOR instead of
4138 '/' when computing java source filename
4139
e6311b9e
TT
41402003-04-13 Tom Tromey <tromey@redhat.com>
4141
4142 * gjavah.c (print_c_decl): Indentation fix.
4143
dcf92453
ZW
41442003-04-12 Zack Weinberg <zack@codesourcery.com>
4145
4146 * class.c (make_field_value, make_method_value, get_dispatch_table)
4147 (make_class_data, emit_offset_symbol_table)
4148 * constants.c (build_constants_constructor)
4149 * java-tree.h (START_RECORD_CONSTRUCTOR)
4150 * parse.y (maybe_build_array_element_wfl):
4151 Use build_constructor.
4152
04a0be36
EB
41532003-04-10 Eric Blake <ebb9@email.byu.edu>
4154
4155 PR java/10253:
4156 * parse.y (string_convert_int_cst): Always use at least one digit
4157 in string conversion. Remove ASCII dependence.
4158 (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
4159
72f339d2
AH
41602003-03-16 Mohan Embar <gnustuff@thisiscool.com>
4161
4162 * Make-lang.in: added win32-host.c
4163 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
4164 resolves to open() on non-Win32 platforms and
4165 Win32-specific jcf_open_exact_case() on Win32
4166 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
4167 when trying .java and .class files
4168 * win32-host.c: added to repository. Defines
4169 Win32-specific jcf_open_exact_case()
4170
41712003-04-10 Andrew Haley <aph@redhat.com>
4172
4173 * jcf-write.c (struct jcf_partial): num_jsrs: new field.
4174 (maybe_free_localvar): Renamed from localvar_free.
4175 Add new arg, really.
4176 (generate_bytecode_insns): Set new variable, jsrs.
4177 Only free local vars if no jsr insns have been emittted.
4178 Call maybe_free_localvar, not localvar_free.
4179
438f63a8
JM
41802003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
4181
4182 * gcj.texi: Remove @ at start of file.
4183
dcb0eee2
TT
41842003-03-25 Tom Tromey <tromey@redhat.com>
4185
4186 * parse.y (create_interface): Call CHECK_DEPRECATED.
4187
62c9aa5f
ZW
41882003-03-23 Zack Weinberg <zack@codesourcery.com>
4189
4190 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
4191
649eaf9b
ZW
41922003-03-21 Zack Weinberg <zack@codesourcery.com>
4193
4194 * javaop.h (jfloat, jdouble): Make them structures mirroring
4195 the bit fields of IEEE float and double respectively.
4196 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
4197 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
4198 (union Word, union DWord): Delete.
4199 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
4200
4201 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
4202 D_NAN_MASK): Delete.
4203 (jni_print_float, jni_print_double): New. Generate
4204 hexadecimal floating constants.
4205 (print_field_info): Use jni_print_float/double.
4206
4207 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
4208 finite floating point numbers for output; special case
4209 non-finite floats.
4210
2bd3ecad
NN
42112003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
4212
4213 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
4214 Replace 0 and 1 with true and false in return statements.
4215
b25a23bd
TT
42162003-03-19 Tom Tromey <tromey@redhat.com>
4217
4218 * lex.c (do_java_lex): Renamed from java_lex.
4219 (java_lex): New function.
4220 Include timevar.h.
4221
2f29e5e8
TT
42222003-03-13 Tom Tromey <tromey@redhat.com>
4223
4224 * parse.y (resolve_inner_class): Error if qualifier is a primitive
4225 type.
4226
68566610
AH
42272003-03-04 Andrew Haley <aph@redhat.com>
4228
649eaf9b
ZW
4229 * gjavah.c (is_first_data_member): New global variable.
4230 (print_c_decl): If it's the first data member, align it as the
4231 superclass.
4232 (process_file): Set is_first_data_member.
68566610 4233
8b8e6c64
TT
42342003-03-11 Tom Tromey <tromey@redhat.com>
4235
4236 * parse.y (resolve_field_access): Initialize class if field is
4237 found in another static field.
4238 * expr.c (build_class_init): Don't optimize out initialization of
4239 implemented interface.
4240
3d874dea
AH
42412003-03-11 Andrew Haley <aph@redhat.com>
4242
4243 * jcf-io.c (caching_stat): Initialize origsep to remove compiler
4244 warning.
4245
630287af
RM
42462003-03-10 Ranjit Mathew <rmathew@hotmail.com>
4247
4248 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
4249 and DIR_SEPARATOR_2 for a target.
4250 Correct minor typos.
4251
4252 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
4253 and DIR_SEPARATOR_2 for a target into account.
4254
4bfec483
NB
42552003-03-08 Neil Booth <neil@daikokuya.co.uk>
4256
4257 * lang.c (java_init): Update prototype, move code to java_post_options.
4258 (java_post_options): Similarly.
4259
530d4230
RM
42602003-03-05 Ranjit Mathew <rmathew@hotmail.com>
4261
4262 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
4263 compare file name components depending on the case-sensitivity
4264 or otherwise of the host file system.
4265
4266 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
4267 "strcmp" to compare file name components.
4268 Use IS_DIR_SEPARATOR instead of comparing directly against
4269 DIR_SEPARATOR.
649eaf9b 4270 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
530d4230
RM
4271 comparing directly against DIR_SEPARATOR.
4272
5993642d
TT
42732003-03-04 Tom Tromey <tromey@redhat.com>
4274
4275 * Make-lang.in (java.tags): New target.
4276
08291658
RS
42772003-03-01 Roger Sayle <roger@eyesopen.com>
4278
4279 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
4280 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
4281
11522327
TT
42822003-03-01 Tom Tromey <tromey@redhat.com>
4283
4284 * parse.y (jdep_resolve_class): Only check deprecation if we found
4285 a decl.
4286
0ea05c0d
TT
42872003-02-28 Tom Tromey <tromey@redhat.com>
4288
4289 PR java/9695:
4290 * class.c (maybe_layout_super_class): Always pass a WFL to
4291 do_resolve_class.
4292 * parse.y (do_resolve_class): Updated comment to explain
4293 parameters.
4294
49b973cb
TT
42952003-02-26 Tom Tromey <tromey@redhat.com>
4296
4297 * jcf-write.c (generate_classfile): Check whether class is
4298 deprecated before writing attribute count.
4299
b052d8ee
RS
43002003-02-25 Roger Sayle <roger@eyesopen.com>
4301
4302 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
4303 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
649eaf9b 4304
f94ae540
TT
43052003-02-23 Tom Tromey <tromey@redhat.com>
4306
4307 * lang-options.h: Added -Wdeprecated.
4308 * gcj.texi (Warnings): Document -Wdeprecated.
4309 * java-tree.h (flag_deprecated): Declare.
4310 * lang.c (lang_W_options): Added deprecated.
4311 (flag_deprecated): New global.
4312 * chartables.h: Rebuilt.
4313 * gen-table.pl (process_one): Look at whitespace.
4314 (print_tables): Define LETTER_SPACE, LETTER_MASK.
4315 * parse.h (CLEAR_DEPRECATED): New macro.
4316 (CHECK_DEPRECATED_NO_RESET): New macro.
4317 * jcf-parse.c (handle_deprecated): New function.
4318 (HANDLE_DEPRECATED_ATTRIBUTE): New define.
4319 * jcf-reader.c (get_attribute): Handle Deprecated attribute.
4320 * parse.y (resolve_type_during_patch): Check deprecation.
4321 (jdep_resolve_class): Likewise.
4322 (process_imports): Likewise.
4323 (resolve_expression_name): Likewise.
4324 (check_deprecation): Strip arrays from decl. Check
4325 flag_deprecated.
4326 (patch_method_invocation): Also check the particular constructor
4327 for deprecation.
4328 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
4329 * jcf-write.c (append_deprecated_attribute): New function.
4330 (generate_classfile): Generate deprecated attribute when
4331 appropriate.
4332 * lex.c (java_parse_doc_section): Return type now void. Rewrote.
4333 (java_lex) [case '*']: Simplify logic.
4334 (java_start_char_p): Use LETTER_MASK.
4335 (java_part_char_p): Likewise.
4336 (java_space_char_p): New function.
4337
dbbf88d1
NS
43382003-02-20 Nathan Sidwell <nathan@codesourcery.com>
4339
4340 Change base class access representation.
4341 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
4342 (add_interface_do): Likewise.
4343
697ec326
RM
43442003-02-12 Ranjit Mathew <rmathew@hotmail.com>
4345
649eaf9b 4346 * decl.c (java_init_decl_processing): Change
697ec326
RM
4347 soft_lookupjnimethod_node to reflect the change in
4348 signature of _Jv_LookupJNIMethod in libjava/jni.cc
4349 * expr.c (build_jni_stub): Calculate and pass the size
4350 on the stack of the arguments to a JNI function. Use
649eaf9b 4351 new target macro MODIFY_JNI_METHOD_CALL to allow a
697ec326
RM
4352 target to modify the call to a JNI method.
4353
afc432a9
RS
43542003-02-08 Roger Sayle <roger@eyesopen.com>
4355
4356 * jcf-io.c (java_or_class_file): Use libiberty's lbasename
4357 instead of basename to avoid compiler warnings on Tru64.
4358
b3a8389d
JM
43592003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
4360
4361 * gcj.texi: Update to GFDL 1.2.
4362
2d7b3505
AH
43632003-01-31 Andrew Haley <aph@redhat.com>
4364
4365 * parse.y (java_expand_classes): Scan the whole class list looking
4366 for access methods that haven't yet been expanded.
4367
7d503466
AB
43682003-01-31 Adrian Bunk <bunk@fs.tum.de>
4369
4370 Fix for java/4269:
4371
4372 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
4373 to fix bootstrap on sparc-unknown-netbsdelf1.5.
4374 * jcf-parse.c: Likewise.
4375
36da0e78
MW
43762003-01-31 Mark Wielaard <mark@klomp.org>
4377
4378 * gjavah.c (throwable_p): Allocate 1 more byte for string.
4379
1824b90d
NS
43802003-01-31 Nathan Sidwell <nathan@codesourcery.com>
4381
4382 * class.c (make_class): Use BINFO_ELTS.
4383 (set_super_info): Likewse.
4384 (add_interface_do): Likewise.
4385
7e278bae
TT
43862003-01-30 Tom Tromey <tromey@redhat.com>
4387
4388 * jcf-parse.c (read_class): Update identifier's class value if it
4389 changed during parsing.
4390
65eb9b87
LR
43912003-01-30 Loren James Rittle <ljrittle@acm.org>
4392
4393 * Make-lang.in (po-generated): Find the targets in $(parsedir).
4394 Propagate change to all other rules as required.
4395 (java/parse-scan.o): Add explicit dependency on
4396 $(parsedir)/java/parse-scan.c .
4397
c78f2b91
TT
43982003-01-29 Tom Tromey <tromey@redhat.com>
4399
4400 * parse.y (patch_assignment): Only transform the rhs of an
4401 assignment when compiling to native.
4402
0d42c3c2
TT
44032003-01-28 Tom Tromey <tromey@redhat.com>
4404
4405 * jcf-write.c (generate_bytecode_conditional): Typo fixes.
4406
82b22c42
TT
44072003-01-28 Tom Tromey <tromey@redhat.com>
4408
4409 * lex.c (java_lex): Don't include UEOF as part of token.
4410 (java_read_unicode): Error if \u sequence prematurely terminated.
4411
6a807d35
TT
44122003-01-27 Tom Tromey <tromey@redhat.com>
4413
4414 * parse.y (java_check_regular_methods): Check for construct after
4415 checking types in throws clause.
4416
c2c98445
TT
44172003-01-24 Tom Tromey <tromey@redhat.com>
4418
4419 * class.c (build_static_field_ref): Only a String or numeric field
4420 can fold to a constant.
4421
8bef0925
TT
44222003-01-23 Tom Tromey <tromey@redhat.com>
4423
4424 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
4425 file name in resource buffer.
4426
1f369e60
TT
44272003-01-23 Tom Tromey <tromey@redhat.com>
4428
4429 * expr.c (build_known_method_ref): Use method's context to find
4430 method table index.
4431
0f0ff6ec
TT
44322003-01-23 Tom Tromey <tromey@redhat.com>
4433
4434 * constants.c (set_constant_entry): Allocated cleared memory.
4435
850ccfae
TT
44362003-01-22 Tom Tromey <tromey@redhat.com>
4437
4438 * java-tree.h: Don't use PARAMS.
4439 * resource.c: Add prototypes for all functions.
4440 (write_resource_constructor): Use `const char *' to avoid
4441 warning.
4442
e00d2127
NN
44432003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
4444
4445 * jcf-parse.c (process_zip_dir): Remove unused variable.
4446
906c7c32
TT
44472003-01-22 Tom Tromey <tromey@redhat.com>
4448
4449 * expr.c (build_invokeinterface): Abort if method's context is not
4450 an interface.
4451
3e895978
TT
44522003-01-22 Tom Tromey <tromey@redhat.com>
4453
4454 * gcj.texi (Input and output files): Mention non-class entries.
4455 * decl.c (java_init_decl_processing): Call
4456 init_resource_processing.
4457 * java-tree.h (compile_resource_data, write_resource_constructor,
4458 compile_resource_file, init_resource_processing): Declare.
4459 * config-lang.in (gtfiles): Added resource.c.
4460 * Make-lang.in (gt-java-resource.h): New target.
4461 (JAVA_OBJS): Added resource.o.
4462 (java/resource.o): New target.
4463 * resource.c: New file.
4464 * class.c (compile_resource_file): Moved to resource.c.
4465 (registerResource_libfunc): Likewise.
4466 (utf8_decl_list): Mark with GTY; now static.
4467 * jcf-parse.c (classify_zip_file): New function.
4468 (parse_zip_file_entries): Use it; compile .properties files.
4469 (process_zip_dir): Use classify_zip_file and compute_class_name.
4470 Don't write class name into zip directory.
4471 (java_parse_file): Call write_resource_constructor.
4472 (compute_class_name): New function.
4473 * jcf-io.c (read_zip_member): Reindented.
4474
5c64ead4
TT
44752003-01-21 Tom Tromey <tromey@redhat.com>
4476
4477 * class.c (supers_all_compiled): New function.
4478 (make_class_data): Use it.
4479
9179646e
TT
44802003-01-21 Tom Tromey <tromey@redhat.com>
4481
4482 * parse.y (method_header): Native method can't be strictfp.
4483 No method can be transient or volatile.
4484
dd859b8a
KG
44852003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4486
4487 Make-lang.in (jvspec.o-warn): Add -Wno-error.
4488
634661fe
KH
44892003-01-18 Kazu Hirata <kazu@cs.umass.edu>
4490
4491 * check-init.c: Fix comment typos.
4492 * class.c: Likewise.
4493 * constants.c: Likewise.
4494 * decl.c: Likewise.
4495 * except.c: Likewise.
4496 * expr.c: Likewise.
4497 * java-except.h: Likewise.
4498 * java-tree.h: Likewise.
4499 * javaop.h: Likewise.
4500 * jcf-dump.c: Likewise.
4501 * jcf-io.c: Likewise.
4502 * jcf-parse.c: Likewise.
4503 * jcf-write.c: Likewise.
4504 * lang.c: Likewise.
4505 * mangle.c: Likewise.
4506 * typeck.c: Likewise.
4507 * verify.c: Likewise.
4508
a1fb4e91
KG
45092003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4510
4511 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
4512 * jcf-write.c: Include "tm_p.h".
4513
1faad0fc
KG
45142003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4515
4516 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
4517
fc555370
KG
45182003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4519
f981519d
KG
4520 * builtins.c (java_build_function_call_expr): Renamed from
4521 build_function_call_expr. All callers changed.
4522
0334ef47
KG
4523 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
4524 * jcf-parse.c: Include tm_p.h.
4525
fc555370
KG
4526 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
4527 warning.
4528
d9bbf3f7
TT
45292003-01-14 Tom Tromey <tromey@redhat.com>
4530
4531 * class.c (make_class_data): Check that super is compiled before
4532 building class reference to it.
4533
47411341
AH
45342003-01-14 Andrew Haley <aph@redhat.com>
4535
4536 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
649eaf9b 4537 varargs function -- correct.
47411341 4538
e5c9ced4
AH
45392003-01-14 Andrew Haley <aph@redhat.com>
4540
4541 * decl.c (java_init_decl_processing): Temporarily back out previous patch.
4542
50cbc605
AH
45432003-01-14 Andrew Haley <aph@redhat.com>
4544
4545 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
4546 varargs function -- correct.
4547
4548 * parse.y (patch_assignment): Copy the rhs of an assignment into a
4549 temporary if the RHS is a reference.
4550
0a2f0c54
KG
45512003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4552
b3504bc1
KG
4553 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
4554 * keyword.h: Regenerated.
4555
0a2f0c54
KG
4556 * All Files: Convert to ISO C style function definitions.
4557
43a4a12b
NN
45582003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
4559
4560 * parse.y (check_pkg_class_access): ANSIfy definition.
4561
77d3109b
KG
45622003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4563
d12689d2
KG
4564 * decl.c, parse-scan.y, parse.y: Don't cast return value of
4565 xmalloc et al.
4566
77d3109b
KG
4567 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
4568
17211ab5
GK
45692003-01-09 Geoffrey Keating <geoffk@apple.com>
4570
4571 Merge from pch-branch:
4572
4573 2002-12-02 Geoffrey Keating <geoffk@apple.com>
4574
4575 * Make-lang.in (java/gjavah.o): Update dependencies.
4576 * gjavah.c: Include ggc.h.
4577
4578 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
4579
4580 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
4581 (JCFDUMP_OBJS): Add ggc-none.o.
4582 (java/jcf-dump.o): Depend on GGC_H.
4583 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
4584 CPool substructures.
4585 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
4586 * jcf-dump.c: Include ggc.h.
4587
4588 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
4589
4590 * jcf.h (union cpool_entry): New.
4591 (struct CPool): Use gengtype to mark. Change field 'data' to be
4592 an array of unions.
4593 (struct JCF): Use gengtype to mark.
4594 (CPOOL_UINT): Update for new cpool_entry type.
4595 (CPOOL_USHORT1): Likewise.
4596 (CPOOL_USHORT2): Likewise.
4597 (CPOOL_FINISH): Use GC to free cpool subfields.
4598 * parse.h (struct parser_ctxt): Mark field current_jcf.
4599 * lex.c (java_init_lex): Use GC to allocate struct JCF.
4600 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
4601 (main_jcf): Use gengtype to mark.
4602 (ggc_mark_jcf): Delete.
4603 (get_constant): Update for new cpool_entry type.
4604 (give_name_to_class): Likewise.
4605 (get_class_constant): Likewise.
4606 (init_outgoing_cpool): Use GGC to allocate struct CPool.
4607 (java_parse_file): Use GGC to allocate struct JCF.
4608 (init_jcf_parse): Don't call ggc_add_root.
4609 * jcf-reader.c (jcf_parse_constant_pool): Update for new
4610 cpool_entry type.
4611 * java-tree.h (current_jcf): Use gengtype to mark.
4612 (CPOOL_UTF): Update for new cpool_entry type.
4613 (outgoing_cpool): Use gengtype to mark.
4614 (struct lang_type): GC struct JCF and struct CPool.
4615 * config-lang.in (gtfiles): Add jcf.h.
4616 * constants.c (find_tree_constant): New.
4617 (set_constant_entry): Allocate cpool subfields using GGC. Update
4618 for new cpool_entry type.
4619 (find_constant1): Update for new cpool_entry type.
4620 (find_constant2): Likewise.
4621 (find_utf8_constant): Use find_tree_constant.
4622 (find_class_or_string_constant): Remove unnecessary cast to jword.
4623 Update for new cpool_entry type.
4624 (count_constant_pool_bytes): Update for new cpool_entry type.
4625 (write_constant_pool): Likewise.
4626 (alloc_name_constant): Use find_tree_constant.
4627 (build_constants_constructor): Update for new cpool_entry type.
4628
4629 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
4630
4631 * parse.y (mark_parser_ctxt): Delete.
4632 (goal): Don't use ggc_add_root.
4633 (create_new_parser_context): Use GC to allocate struct parser_ctxt.
4634 (java_pop_parser_context): Let GC free parser_ctxt.
4635 (java_parser_context_resume): Likewise.
4636 * parse.h (struct parser_ctxt): Use gengtype to mark.
4637 (ctxp): Likewise.
4638 (ctxp_for_generation): Likewise.
4639 * lex.h (struct java_lc_s): Mark for gengtype.
4640 (java_lexer): Rearrange for gengtype.
4641 * config-lang.in (gtfiles): Add lex.h, parse.h.
4642
b3339cf7
KG
46432003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4644
d2097937
KG
4645 * All Files: Remove PARAMS macro.
4646
6ff2fe39
KG
4647 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
4648 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
4649 `__STDC__' macros.
4650
b3339cf7
KG
4651 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
4652 VA_CLOSE.
4653
8a4c5898
CC
46542003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
4655
4656 * Make-lang.in (java.install-common, java.uninstall,
4657 java.install-info, java.install-man): Prepend $(DESTDIR)
4658 to destination paths in all (un)installation commands.
4659 (java.install-common): Rewrite $(LN) command to support
4660 DESTDIR with "ln" as well as with "ln -s".
4661
2f23f5c1
NN
46622003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
4663
4664 * java-tree.h: Protect against multiple inclusion.
4665
b47ffb8f
TT
46662003-01-07 Tom Tromey <tromey@redhat.com>
4667
4668 * class.c (add_assume_compiled): Don't adjust parent if we're
4669 already at the root of tree.
4670
c7c50494
KG
46712003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4672
4673 * lang.c (dump_compound_expr): Prototype.
4674
f3ce4aba
TT
46752003-01-03 Tom Tromey <tromey@redhat.com>
4676
4677 Fix for PR java/8712:
4678 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
4679 when simply checking against `null'.
4680
60db58b2
TT
46812003-01-03 Tom Tromey <tromey@redhat.com>
4682
0320cac3
TT
4683 * gcj.texi (Standard Properties): Document http.proxyHost and
4684 http.proxyPort.
4685
60db58b2
TT
4686 * gcj.texi (GNU Classpath Properties): Document new properties.
4687
43c6a96a
SB
46882003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
4689
4690 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
4691 java/lang-options.h, java/mangle.c, java/mangle_name.c,
4692 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
4693
f309ff0a
SB
46942003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
4695
4696 * Make-lang.in, boehm.c, buffer.c,
4697 buffer.h, builtins.c, class.c,
4698 config-lang.in, constants.c,
4699 convert.h, decl.c, except.c,
4700 expr.c, java-except.h,
4701 java-tree.h, javaop.def,
4702 jcf-parse.c, jcf-write.c,
4703 jv-scan.c, jvgenmain.c,
43c6a96a 4704 jvspec.c, keyword.gperf,
f309ff0a
SB
4705 keyword.h, lang-options.h,
4706 lang-specs.h, lang.c, lex.c,
4707 lex.h, mangle.c, mangle_name.c,
4708 parse-scan.y, parse.h, parse.y,
4709 typeck.c, verify.c, xref.c,
4710 xref.h: Replace "GNU CC" with
4711 "GCC" in the copyright header.
4712
4713 * check-init.c, gjavah.c, javaop.h,
4714 jcf-depend.c, jcf-dump.c, jcf-io.c,
4715 jcf-path.c, jcf-reader.c, jcf.h,
4716 zextract.c, zipfile.h: These files are
4717 "part of GCC". Also say "GCC" not "GNU CC".
4718
9a280a6e
DD
47192002-12-30 DJ Delorie <dj@redhat.com>
4720
e2f45c30 4721 * Make-lang.in: Protect against texi2pod/pod2man failing.
9a280a6e 4722
bdefb2ab
JM
47232002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
4724
4725 * gcj.texi: Use @copying.
4726
239b7dea
MM
47272002-12-27 Mark Mitchell <mark@codesourcery.com>
4728
4729 * gjavah.c (print_name_for_stub_or_jni): Adjust call to
4730 print_cxx_classname.
4731 (print_cxx_classname): Add add_scope parameter.
4732 (print_class_decls): Do not emit a semicolon after the extern
4733 "Java" block.
43c6a96a 4734 (process_file): Adjust calls to print_cxx_classname.
239b7dea 4735
df82908a
JM
47362002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
4737
4738 * gcj.texi: Include Cover Texts in man page.
4739
d3ab697b
JS
47402002-12-23 Jeff Sturm <jsturm@one-point.com>
4741
4742 * class.c (build_static_field_ref): Check FIELD_FINAL.
4743
4744 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
4745 instead of current_constant_pool_data_ref.
4746 * java-tree.h (current_constant_pool_data_ref): Undefine.
4747 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
4748 * jcf-parse.c (init_outgoing_cpool): Don't initialize
4749 current_constant_pool_data_ref.
4750
4751 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
4752 not build_internal_class_name.
4753
4754 * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
4755 Use it when class ref isn't certain to be compiled.
4756
46d40353
JM
47572002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
4758
4759 * gcj.texi: Include gcc-common.texi.
4760 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
4761 $(srcdir)/doc/include/gcc-common.texi.
4762
fba1caab
AG
47632002-12-22 Anthony Green <green@redhat.com>
4764
4765 * gcj.texi (Limitations): Add note about org.xml.sax and
4766 org.w3c.dom.
4767
913746e3
TT
47682002-12-20 Tom Tromey <tromey@redhat.com>
4769
4770 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
4771 where minimum case value is Integer.MIN_VALUE.
4772 Fixes PR java/8955.
4773
71d082af
AH
47742002-12-18 Andrew Haley <aph@redhat.com>
4775
4776 * parse.y (patch_invoke): Force evaluation order when `check' is
4777 set. For PR libgcj/8945.
4778
7a04c51b
MM
47792002-12-16 Mark Mitchell <mark@codesourcery.com>
4780
4781 * gcj.texi: Change version number to 3.4.
4782
0cc1565a 47832002-12-05 Ranjit Mathew <rmathew@hotmail.com>
649eaf9b 4784 Andrew Haley <aph@redhat.com>
0cc1565a
RM
4785
4786 * parse.y (source_end_java_method): Remove custom encoding of line
4787 numbers for a function decl before passing it to the back end.
4788
421f9e60
AH
47892002-12-03 Andrew Haley <aph@redhat.com>
4790
4791 * class.c (make_class_data): New field, "chain".
4792 * decl.c (java_init_decl_processing): Likewise.
4793
6b55b27f
TT
47942002-12-02 Tom Tromey <tromey@redhat.com>
4795
4796 For PR java/8740:
4797 * parse.y (do_resolve_class): Handle qualified name via
4798 recursion.
4799
4977bab6
ZW
48002002-11-30 Zack Weinberg <zack@codesourcery.com>
4801
4802 * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
4803 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
4804 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
4805 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
4806 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
4807 Include coretypes.h and tm.h.
4808 * Make-lang.in: Update dependencies.
4809
d1aed877
KG
48102002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4811
4812 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
4813
b4bbc8b7
DN
48142002-11-25 Diego Novillo <dnovillo@redhat.com>
4815
4816 * jcf-reader.c: Don't expand JCF_readu4 inside the
4817 expansion of JCF_SKIP.
4818
4977bab6
ZW
48192002-11-25 Diego Novillo <dnovillo@redhat.com>
4820
4821 * jcf-reader.c: Don't expand JCF_readu4 inside the
4822 expansion of JCF_SKIP.
4823
dd06be9e
TT
48242002-11-22 Tom Tromey <tromey@redhat.com>
4825
4826 * parse.y (patch_binop): Cast right hand side of shift expression
4827 to `int'. Fixes PR java/8676.
4828
34744d4e
RM
48292002-11-22 Ranjit Mathew <rmathew@hotmail.com>
4830 Andrew Haley <aph@redhat.com>
4831
4832 * gcc/java/jcf-write.c (write_classfile): Remove target
4833 class file, if it exists, before renaming the temporary
4834 class file to it.
4835
f3226a90
JT
48362002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
4837
4838 * jvspec.c (lang_specific_spec_functions): New.
4839
5602b49d
TT
48402002-11-18 Tom Tromey <tromey@redhat.com>
4841
4842 Fix for PR java/7912:
4843 * expr.c (can_widen_reference_to): Allow cast of array to
4844 Cloneable or Serializable.
4845 * java-tree.h (java_lang_cloneable_identifier_node): Declare.
4846 (java_io_serializable_identifier_node): Likewise.
4847 * parse.y (java_lang_cloneable, java_io_serializable): Removed.
4848 (valid_ref_assignconv_cast_p): Use new identifier nodes.
4849 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
4850 java_io_serializable.
4851 * decl.c (java_init_decl_processing): Initialize
4852 java_lang_cloneable_identifier_node and
4853 java_io_serializable_identifier_node.
4854 (java_lang_cloneable_identifier_node): New global.
4855 (java_io_serializable_identifier_node): Likewise.
4856
a92cb0c3
JMH
48572002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de>
4858
4859 * buffer.c: Remove unnecessary casts.
4860 * check-init.c: Likewise.
4861 * class.c: Likewise.
4862 * constants.c: Likewise.
4863 * decl.c: Likewise.
4864 * except.c: Likewise.
4865 * gjavah.c: Likewise.
4866 * jcf-io.c: Likewise.
4867 * jcf-parse.c: Likewise.
4868 * jcf-path.c: Likewise.
4869 * jvspec.c: Likewise.
4870 * lang.c: Likewise.
4871 * lex.c: Likewise.
4872 * verify.c: Likewise.
4873
5bd717f1
TT
48742002-11-06 Tom Tromey <tromey@redhat.com>
4875
4876 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
4877 a JNI header.
4878
c034b453
TT
48792002-11-05 Tom Tromey <tromey@redhat.com>
4880
4881 Fix for PR java/6388.
4882 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
4883 * java-tree.h (enum java_tree_index): New values
4884 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
4885 (decimal_int_max, decimal_long_max): New defines.
4886 * lex.c (yylex): Rewrote range checking. Sign extend literals.
4887 (error_if_numeric_overflow): Rewrote range checking.
4888 * decl.c (java_init_decl_processing): Initialize decimal_int_max,
4889 decimal_long_max.
4890
21140beb
TT
48912002-11-02 Tom Tromey <tromey@redhat.com>
4892
60b68525
TT
4893 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
4894
21140beb
TT
4895 * class.c (make_method_value): Put class name, not signature, into
4896 `throws' field. For PR java/8415.
4897
3752ac08
TT
48982002-10-24 Tom Tromey <tromey@redhat.com>
4899
4900 * gcj.texi (Invoking gij): Document --showversion.
4901 (Standard Properties): java.library.path now set.
4902
0d3911c9
TT
49032002-10-23 Tom Tromey <tromey@redhat.com>
4904
4905 * gjavah.c (decode_signature_piece): In JNI mode, print
4906 `jobjectArray' when array depth is nonzero.
4907 Fixes PR java/8296.
4908
c1ddb5c8
AH
49092002-10-15 Andrew Haley <aph@redhat.com>
4910
4911 * parse.y (patch_invoke): Call force_evaluation_order on a static
4912 arg list.
4913 (resolve_qualified_expression_name): Call force_evaluation_order
4914 on a arg list that is part of a Qualified Expression Name.
4915
4916 * lang.c (dump_compound_expr): New.
4917 (java_dump_tree): New.
4918
63bb20d4
RM
49192002-10-20 Ranjit Mathew <rmathew@hotmail.com>
4920
4921 * gcj.texi: Added item describing the GCJ runtime property
4922 "gnu.gcj.progname".
4923
ba0bb02d
RH
49242002-10-15 Richard Henderson <rth@redhat.com>
4925
4926 * jcf-parse.c (get_constant): Fix type warning.
4927
dbd1e2d8
AH
49282002-10-15 Andrew Haley <aph@redhat.com>
4929
4930 * java-tree.h (java_inlining_merge_static_initializers): Declare.
4931 (java_inlining_map_static_initializers): Declare.
4932
3eb429b2
AH
49332002-10-14 Andrew Haley <aph@redhat.com>
4934
4935 * tree-inline.c (remap_block): All local class initialization
4936 flags go in the outermost scope.
4937 (expand_call_inline): Call java_inlining_map_static_initializers.
4938 (expand_call_inline): Call java_inlining_merge_static_initializers.
4939 * java/lang.c (merge_init_test_initialization): New.
4940 (java_inlining_merge_static_initializers): New.
4941 (inline_init_test_initialization): New.
4942 (java_inlining_map_static_initializers): New.
4943
37d2b7e2
MW
49442002-10-11 Mark Wielaard <mark@klomp.org>
4945
4946 * gcj.texi (Compatibility): Add Limitations and Extensions section.
4947
7bdfd72e
KG
49482002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4949
4950 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
4951
c6449a1d
KG
49522002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4953
4954 * parse.y (merge_string_cste): Add parentheses around & within |.
4955
8f6d2e96
TT
49562002-10-08 Tom Tromey <tromey@redhat.com>
4957
4958 * parse.y (variable_declarator_id): Simplify error path for
4959 array declarator error. For PR java/8003.
4960
36624850
ZW
49612002-10-08 Zack Weinberg <zack@codesourcery.com>
4962
4963 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
4964 bug_report_url.
4965
ce5bb293
AH
49662002-10-08 Andrew Haley <aph@redhat.com>
4967
4968 * parse.y (attach_init_test_initialization_flags): Check for
4969 error_mark_node.
4970
36624850 49712002-10-07 Anthony Green <green@redhat.com>
6a921942 4972
36624850 4973 * parse.y (merge_string_cste): Fix bug in string concatenation.
6a921942 4974
f42ee52f
MK
49752002-10-03 Michael Koch <konqueror@gmx.de>
4976
4977 * gcj.texi (Standard properties):
4978 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
4979
f963b5d9
RS
49802002-10-02 Roger Sayle <roger@eyesopen.com>
4981
4982 PR optimization/6627
4983 * lang.c (java_init): If storing the vbit in function
4984 pointers, ensure that force_align_functions_log is atleast
4985 one to aid compatability with g++ vtables.
4986
6f7e9e94
NS
49872002-10-01 Nathan Sidwell <nathan@codesourcery.com>
4988
4989 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
4990 foul of type-based aliasing.
4991
71dff728
AG
49922002-09-30 Anthony Green <green@redhat.com>
4993
4994 * gcj.texi (Invoking jv-scan): Fix texinfo.
4995
acc59b85
AG
49962002-09-28 Anthony Green <green@redhat.com>
4997
4998 * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
4999 (Code Generation): Add -fno-assert documentation.
5000 * jv-scan.c (flag_assert): New global.
5001 (options): Add assert option.
5002 (help): Add --no-assert documentation.
5003 * parse-scan.y (flag_assert): New global.
5004 * lang.c (lang_f_options): Add -fassert/-fno-assert support.
5005 (flag_assert): New global.
5006 * java-tree.h (flag_assert): New global.
5007 * lex.c (java_lex): Obey flag_assert.
5008 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
5009 calling cc1.
5010
fc5295fa
AH
50112002-09-26 Andrew Haley <aph@redhat.com>
5012
5013 * expr.c (build_java_array_length_access): Check for null pointer.
5014 * expr.c (expand_java_arrayload): Likewise.
5015
aa2046c4
RH
50162002-09-21 Richard Henderson <rth@redhat.com>
5017
36624850 5018 * jcf-parse.c (get_constant): Decode from IEEE no matter
aa2046c4
RH
5019 what the target format.
5020
ee142fe7
KH
50212002-09-20 Kazu Hirata <kazu@cs.umass.edu>
5022
5023 * ChangeLog: Follow spelling conventions.
5024 * class.c: Likewise.
5025 * decl.c: Likewise.
5026 * expr.c: Likewise.
5027 * gjavah.c: Likewise.
5028 * java-tree.h: Likewise.
5029 * jcf-dump.c: Likewise.
5030 * jcf-parse.c: Likewise.
5031 * jvspec.c: Likewise.
5032 * lang.c: Likewise.
5033 * mangle.c: Likewise.
5034 * parse.y: Likewise.
5035
6a022513
TT
50362002-09-17 Tom Tromey <tromey@redhat.com>
5037
5038 * lex.c (java_read_unicode_collapsing_terminators): Handle case
5039 where \r appears at EOF. Fixes PR java/7950.
5040
4977bab6
ZW
50412002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5042
5043 * jvspec.c (lang_specific_driver): Remove unused variable.
5044
36a5eadd
GK
50452002-09-16 Geoffrey Keating <geoffk@apple.com>
5046
5047 * java-tree.h (union lang_tree_node): Add chain_next option.
5048
efdc7e19
RH
50492002-09-16 Richard Henderson <rth@redhat.com>
5050
5051 * jcf-parse.c (get_constant): Runtime check for IEEE format;
5052 use new real.h interface.
5053 * jcf-write.c (find_constant_index): Use new real.h interface.
5054 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
5055
6522685d
KH
50562002-09-15 Kazu Hirata <kazu@cs.umass.edu>
5057
25facd31 5058 * lang.c: Follow spelling conventions.
6522685d 5059
6e471ea7
PB
50602002-09-11 Per Bothner <per@bothner.com>
5061
5062 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
5063 constant to the type of the field.
5064 (java_complete_tree): Remove now-redundant code.
5065
5066 * parse.y (fold_constant_for_init): 'null' is not a constant expr.
5067
23114b69
JR
50682002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
5069
5070 For PR java/5794:
5071 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
5072 return label if a ret instruction for the jsr has been reached.
5073
f724acb8
RM
50742002-09-09 Ranjit Mathew <rmathew@hotmail.com>
5075
5076 * parse.y (DIR_SEPARATOR): Don't define.
5077 (check_class_interface_creation): Use IS_DIR_SEPARATOR.
5078
b139fcfd
AH
50792002-08-28 Andrew Haley <aph@redhat.com>
5080
5081 * verify.c (verify_jvm_instructions): Allow exception handler
5082 inside code that is being protected, but generate a warning.
5083 * except.c (link_handler): Initialize `expanded' in new eh_range.
5084 (binding_depth, is_class_level, current_pc): Declare extern.
5085
f60518c8
MW
50862002-09-01 Mark Wielaard <mark@klomp.org>
5087
5088 * gcj.texi: Add chapter about system properties.
5089 Fixed some typos.
5090
83dd5fae
TT
50912002-08-26 Tom Tromey <tromey@redhat.com>
5092
5093 * parse.y (try_builtin_assignconv): Allow narrowing primitive
5094 conversion if RHS_TYPE is byte, short, or char.
5095
00a8b314
TT
50962002-08-22 Tom Tromey <tromey@redhat.com>
5097
5098 * gcj.texi (Invoking gij): Document -cp and -classpath.
5099
0d811e1a
TT
51002002-08-21 Tom Tromey <tromey@redhat.com>
5101
79a3cb18
TT
5102 * Make-lang.in (java/jcf-path.o): Use $(datadir), not
5103 $(prefix)/share. For PR libgcj/7633.
5104
0d811e1a
TT
5105 For PR java/6005 and PR java/7611:
5106 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
5107 (java_can_use_bit_fields_p): New function.
5108
ca75573a
TT
51092002-08-16 Tom Tromey <tromey@redhat.com>
5110
5111 * gcj.texi (Class Initialization): Mention class initialization of
5112 arrays.
5113
7149627b
AH
51142002-07-30 Andrew Haley <aph@cambridge.redhat.com>
5115
5116 * Make-lang.in (java-tree-inline.o): New.
5117 (JAVA_OBJS): Add java-tree-inline.o.
5118 * parse.y (source_end_java_method): Call java_optimize_inline.
5119 (java_expand_method_bodies): Save method's tree in
5120 DECL_SAVED_TREE.
5121 (add_stmt_to_compound): Keep track of the number of statments.
5122 * lang.c (java_init): Enable flag_inline_trees.
5123 (java_post_options): If flag_inline_functions is on, enable
5124 flag_inline_trees instread.
5125 (decl_constant_value): New.
5126 (java_tree_inlining_walk_subtrees): New.
5127 * java-tree.h (DECL_NUM_STMTS): New macro.
5128 (java_optimize_inline): Declare.
5129 * expr.c (java_expand_expr): Allow a BLOCK to return a value.
5130 Handle a LABEL_EXPR.
5131 * decl.c (build_result_decl): If we already have a DECL_RESULT
5132 don't make another.
5133 (dump_function): New.
5134 (java_optimize_inline): New.
5135 (dump_function): New.
5136
ee1884cb
JR
51372002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
5138
5139 For PR java/7483:
5140 * parse.y (build_assertion): Invert return from
5141 desiredAssertionStatus.
5142
097684ce
BM
51432002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5144
36624850 5145 * jcf-write.c (get_access_flags): Return correct access flags for
097684ce
BM
5146 private and protected inner classes.
5147
22aa533e
NS
51482002-08-08 Nathan Sidwell <nathan@codesourcery.com>
5149
5150 * java/Make-lang.in (java.mostlyclean): Remove coverage files.
5151
b3426eb9
GK
51522002-08-05 Geoffrey Keating <geoffk@redhat.com>
5153
5154 * mangle_name.c: Don't include obstack.h twice.
5155 * xref.c: Don't include obstack.h.
5156
6d9f628e
GK
51572002-08-04 Geoffrey Keating <geoffk@redhat.com>
5158
5159 * class.c: (permanent_obstack): Delete declaration.
5160 * constants.c: (permanent_obstack): Delete declaration.
5161 * except.c: (permanent_obstack): Delete declaration.
5162 * expr.c: (permanent_obstack): Delete declaration.
5163 * jcf-parse.c: (permanent_obstack): Delete declaration.
5164 (saveable_obstack): Delete declaration.
5165 * parse.h: (permanent_obstack): Delete declaration.
5166 * typeck.c: (permanent_obstack): Delete declaration.
5167
d500c5d7
JM
51682002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
5169
5170 * gcj.texi (version-gcc): Increase to 3.3.
5171
e75abdab
TT
51722002-07-22 Tom Tromey <tromey@redhat.com>
5173
5174 * lex.c (java_lex): Check for `e' or `E' after 0.
5175
8943a0b4
RH
51762002-07-21 Richard Henderson <rth@redhat.com>
5177
5178 * lang.c (java_unsafe_for_reeval): New.
5179 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
5180
2f8dd115
NB
51812002-07-21 Neil Booth <neil@daikokuya.co.uk>
5182
5183 * jcf-path.c (GET_ENV_PATH_LIST): Remove.
5184 (jcf_path_init): Use GET_ENVIRONMENT.
5185
c5358a5d
RS
51862002-07-10 Roger Sayle <roger@eyesopen.com>
5187 Zack Weinberg <zack@codesourcery.com>
5188
5189 * builtins.c (initialize_builtins): Remove defines that
5190 handled C/C++ specific junk hereby removed from builtins.def.
5191
5351f1ca
NB
51922002-07-07 Neil Booth <neil@daikokuya.co.uk>
5193
5194 * lang.c (java_post_options): Update prototype.
5195
df061a43
RS
51962002-07-05 Roger Sayle <roger@eyesopen.com>
5197
c5358a5d 5198 * builtins.c (initialize_builtins): Ignore the additional
df061a43
RS
5199 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
5200 the builtins.def file.
5201
68a830fe
TT
52022002-07-01 Tom Tromey <tromey@redhat.com>
5203
5204 For PR libgcj/7073:
5205 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
5206 specially.
5207
6a2dd09a
RS
52082002-07-01 Roger Sayle <roger@eyesopen.com>
5209
5210 * java/decl.c (builtin_function): Accept additional parameter.
5211 (java_init_decl_processing): Pass an additional NULL_TREE
5212 argument to builtin_function.
5213
32c4621e
M
52142002-06-29 T.J. Mather <tjmather@maxmind.com>
5215
5216 * gcj.texi: Fixed gcj invocation example so that it compiles.
5217
bd466c7b
KG
52182002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5219
57ddd19c
KG
5220 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
5221 * parse.y (mark_parser_ctxt): Likewise.
33780b45
KG
5222 (check_modifiers, declare_local_variables): Avoid incorrect
5223 hardcoded constant 10.
57ddd19c 5224
bd466c7b
KG
5225 * lex.c (java_read_char): Avoid "comparison is always true"
5226 warning.
5227
b6532e57
AS
52282002-06-25 Andreas Schwab <schwab@suse.de>
5229
5230 * expr.c (JSR): Avoid undefined operation on PC.
5231
eb6b51b9
KG
52322002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5233
5234 * decl.c (clear_binding_level): Const-ify.
5235
6d61f1bd
AD
52362002-06-13 Akim Demaille <akim@epita.fr>
5237
5238 * parse.y (class_declaration, interface_declaration): Make sure
5239 all their rules have an action, in order to avoid meaningless `$$
5240 = $1' and their type clashes.
5241
c6226a7e
TT
52422002-06-11 Tom Tromey <tromey@redhat.com>
5243
5244 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
5245 * parse-scan.y (statement_without_trailing_substatement): Added
5246 assert_statement.
5247 (assert_statement): New rule.
5248 * java-tree.h (struct lang_type) [assertions]: New field.
5249 (TYPE_USES_ASSERTIONS): New macro.
5250 (CLASS_USES_ASSERTIONS): Likewise.
5251 (FIELD_SYNTHETIC): New define.
5252 * lex.c (java_lval;): Added ASSERT_TK.
5253 * parse.y (ASSERT_TK): Added.
5254 (statement_without_trailing_substatement): Added assert_statement.
5255 (assert_statement): New rule.
5256 (build_assertion): New function.
5257 (maybe_generate_pre_expand_clinit): Create and initialize
5258 $assertionsDisabled.
5259 (lookup_package_type): Removed decl.
5260 * keyword.h: Rebuilt.
5261 * keyword.gperf (assert): New token.
5262
e35b68b0
AD
52632002-06-10 Akim Demaille <akim@epita.fr>
5264
5265 * parse.y (interface_type_list, class_member_declaration)
5266 (unary_expression_not_plus_minus): Remove duplicate %type.
5267 Whitespace changes.
5268
950ac1d3
TT
52692002-06-09 Tom Tromey <tromey@redhat.com>
5270
ac57655a
TT
5271 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
5272
950ac1d3
TT
5273 * parse.y (method_header): Give error message in all cases.
5274 Fixes PR java/6865.
5275
36d010ca
BM
52762002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5277
5278 Don't use RTL inlining. Fix for PR java/6820.
5279 * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
5280 (flag_really_inline): New.
5281 (java_decode_option): Set flag_really_inline if -finline-functions
5282 is seen.
5283 (java_post_options): New function. Turn off inlining unless
5284 flag_really_inline is set.
5285
64e68197
BM
52862002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5287
36624850 5288 * gjavah.c (throwable_p): Accept argument as either a classname or
64e68197
BM
5289 signature fragment. Create null-terminated classname string for super
5290 when calling itself recursively.
36624850 5291 (decode_signature_piece): Skip first character from class name
64e68197
BM
5292 signature when calling throwable_p.
5293
c238d806
L
52942002-06-08 H.J. Lu (hjl@gnu.org)
5295
5296 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
5297
f06cafdf
TT
52982002-06-04 Tom Tromey <tromey@redhat.com>
5299
5300 * jcf-write.c (perform_relocations): Optmize a goto to a goto.
5301
0bb5f0e4
MK
53022002-06-04 Michael Koch <konqueror@gmx.de>
5303
5304 * gcj.texi (Input Options): Fixed typo.
5305
c02ebb18
ZW
53062002-06-04 Zack Weinberg <zack@codesourcery.com>
5307
5308 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
5309 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
5310 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
5311 and all now-pointless local variables. Rename other local
5312 variables to reflect their not being handles.
5313
5314 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
5315 #if JCF_USE_STDIO blocks.
5316
5317 * parse.y: Add missing semicolon at end of rule.
5318
e2500fed
GK
53192002-06-03 Geoffrey Keating <geoffk@redhat.com>
5320
5321 * check-init.c (attach_initialized_static_class): Delete, unused.
5322 * parse.y: Use htab_t instead of struct hashtable, update
5323 all uses.
5324 * java-tree.h: Include hashtab.h instead of hash.h.
5325 (struct lang_decl_func): Use htab_t, set up for gengtype.
5326 (struct init_test_hash_entry): Delete.
5327 (struct treetreehash_entry): New.
c02ebb18 5328 (java_treetreehash_find): New
e2500fed
GK
5329 (java_treetreehash_new): New prototype.
5330 (java_treetreehash_create): New prototype.
5331 (java_mark_tree): Delete prototype.
5332 (java_hash_hash_tree_node): Delete prototype.
5333 (java_hash_compare_tree_node): Delete prototype.
5334 (attach_initialized_static_class): Delete prototype.
5335 * expr.c (build_class_init): Update to use java_treetreehash
5336 functions.
5337 (java_expand_expr): Update to use htab_t.
5338 (emit_init_test_initialization): Likewise.
5339 * decl.c (java_mark_tree): Delete.
5340 * class.c (init_test_hash_newfunc): Delete.
5341 (java_hash_hash_tree_node): Delete.
5342 (java_hash_compare_tree_node): Delete.
5343 (add_method_1): Update to use java_treetreehash functions.
5344 (JAVA_TREEHASHHASH_H): New macro.
5345 (java_treetreehash_hash): New function.
5346 (java_treetreehash_compare): New function.
5347 (java_treetreehash_find): New function.
5348 (java_treetreehash_new): New function.
5349 (java_treetreehash_create): New function.
5350 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
5351
5352 * Make-lang.in (java/parse.o): Depend on debug.h.
5353 * java-tree.h (struct lang_identifier): Use gengtype.
5354 (union lang_tree_node): New.
5355 (struct lang_decl_func): Use gengtype.
5356 (struct lang_decl_var): Likewise.
5357 (struct lang_decl): Likewise.
5358 * parse.y: Include debug.h.
5359 * lang.c (LANG_HOOKS_MARK_TREE): Delete.
5360
5361 * lang.c (struct language_function): New dummy structure.
5362
5363 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
5364 descriminator for DECL_LANG_SPECIFIC.
5365 (struct lang_decl_func): Rename from struct lang_decl.
5366 (enum lang_decl_desc): New.
5367 (struct lang_decl): Make it a union. Update all the accessor macros.
5368 (struct lang_type): Use gengtype.
5369 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
5370 * decl.c (java_dup_lang_specific_decl): All lang_decl structures
5371 are now the same size.
5372 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
5373 use discriminator to mark DECL_LANG_SPECIFIC.
5374
5375 * Make-lang.in (gt-java-builtins.h): New rule.
5376 (java/builtins.o): Add dependency on gt-<filename>.h.
5377 * builtins.c: Use gengtype for roots.
5378 (union string_or_tree): Use gengtype.
5379 (struct builtin_record): Use gengtype.
5380 * config-lang.in (gtfiles): Add builtins.c.
5381
5382 * Make-lang.in (gt-java-class.h, gt-java-constants.h,
5383 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
5384 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
5385 gt-java-parse.h, gtype-java.h): Add rules to generate.
5386 (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
5387 (class.o): Add dependency on gt-*.h.
5388 (constants.o): Likewise.
5389 (decl.o): Likewise.
5390 (expr.o): Likewise.
5391 (jcf-parse.o): Likewise.
5392 (jcf-write.o): Likewise.
5393 (lang.o): Likewise.
5394 * config-lang.in (gtfiles): New.
5395 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
5396 * constants.c: Replace uses of ggc_add_* with GTY markers.
5397 Include gt-*.h.
5398 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
5399 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
5400 * java-tree.h: Replace uses of ggc_add_* with GTY markers.
5401 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
5402 Include gt-*.h.
5403 * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
5404 Include gt-*.h.
5405 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
5406 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
5407 gt-*.h.
5408 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
5409 Include gtype-java.h.
5410
c442c002
TT
54112002-06-02 Tom Tromey <tromey@redhat.com>
5412
5413 Fix for PR java/5913:
5414 * parse.y (patch_binop): Call patch_string on op1.
5415
48711f4d
TT
54162002-06-02 Tom Tromey <tromey@redhat.com>
5417
5418 Fix for PR java/1343, PR java/6336:
5419 * parse.y (make_nested_class_name): Remove extraneous `else'; fix
5420 formatting. Changed return type.
5421 (anonymous_class_counter): Moved to top of file.
5422 (maybe_make_nested_class_name): Append number to class name for
5423 function-local classes.
5424
11ad4784
ZW
54252002-05-28 Zack Weinberg <zack@codesourcery.com>
5426
5427 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
5428 * Make-lang.in: Update dependency lists.
5429
a15135c9
MM
54302002-05-18 Mark Mitchell <mark@codesourcery.com>
5431
5432 * gjavah.c (throwable_p): Do not free the name of the class after
5433 passing it to find_class.
5434 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
5435 * jcf-io.c (dirent.h): Include it.
5436 (fnmatch.h): Likewise.
5437 (compare_path): New function.
5438 (java_or_class_file): Likewise.
5439 (memoized_dirlist_entry): New type.
5440 (memoized_dirlist_lookup_eq): New function.
5441 (memoized_dirlists): New variable.
5442 (caching_stat): New function.
5443 (memoized_class_lookup_eq): New function.
5444 (memoized_class_lookups): Likewise.
5445 (find_class): Use memoized_class_lookups and caching_stat.
5446 * jcf.h (JCF_USE_SCANDIR): Define.
5447 * parse.y (java_expand_classes): Write the class files in reverse
5448 order.
c02ebb18 5449
1e6347d8
RO
54502002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5451
5452 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
5453
2f9a2cd7
MM
54542002-05-13 Mark Mitchell <mark@codesourcery.com>
5455
5456 * jcf-write.c (write_classfile): Unlink the temporary file if it
5457 cannot be renamed. Use concat to build up the name of the
5458 temporary file.
5459
281524f4
MM
54602002-05-08 Mark Mitchell <mark@codesourcery.com>
5461
c02ebb18 5462 * jcf-write.c (write_classfile): Write the file to a
281524f4
MM
5463 temporary file and then rename it.
5464
6b9b5de2
TT
54652002-05-07 Tom Tromey <tromey@redhat.com>
5466
5643bb97
TT
5467 * gjavah.c (throwable_p): Use xstrdup, not strdup.
5468
6b9b5de2
TT
5469 Fix for PR java/1200:
5470 * gjavah.c (throwable_p): New function.
5471 (decode_signature_piece): Use it. A `WeakReference' isn't the
5472 same as a `jweak'.
5473 Include hashtab.h.
5474 (gcjh_streq): New function.
5475
2c7e9098
AJ
54762002-05-07 Andreas Jaeger <aj@suse.de>
5477
c02ebb18 5478 * parse.y (finish_for_loop): Fix if statement.
2c7e9098 5479
486e8c0c
TT
54802002-05-06 Tom Tromey <tromey@redhat.com>
5481
5482 Fix for PR java/5941:
5483 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
5484 loop update expression.
5485 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
5486 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
5487
30b50f90
MW
54882002-05-04 Mark Wielaard <mark@klomp.org>
5489
5490 For PR java/6519:
5491 * parse.y (build_string_concatenation): Return just op1 only when op2
5492 is null and op1 is a STRING_CST, otherwise always construct a
5493 StringBuffer.
5494
0a32c5ea
TT
54952002-04-27 Tom Tromey <tromey@redhat.com>
5496
5497 For PR java/6382:
5498 * parse.y (string_convert_int_cst): New function.
5499 (merge_string_cste): Use it.
5500
ff45c01e
NB
55012002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
5502
5503 * java-tree.h (java_parse_file): Update.
5504 (java_set_yydebug): Remove.
5505 * jcf-parse.c (yydebug): Remove.
5506 (java_set_yydebug): Die.
5507 (java_parse_file): Update.
5508 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5509
9127b2da
TT
55102002-04-24 Tom Tromey <tromey@redhat.com>
5511
5512 For PR java/6425:
5513 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
5514 EXPR_WFL_QUALIFICATION of qual_wfl.
5515
67f0a6bf
PB
55162002-04-23 Per Bothner <per@bothner.com>
5517
5518 * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
5519 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
5520 (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
5521
3d3707c1
TT
55222002-04-23 Tom Tromey <tromey@redhat.com>
5523
5524 For PR java/6314:
5525 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
5526 recognize `-fcompile-resource='.
5527 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
5528 a bit.
5529
920f81e7
APB
55302002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
5531
5532 * jcf-parse.c: (yyparse): Don't prepend "./" to relative
5533 paths. Fixes PR java/2791.
5534
a2761d68
AH
55352002-04-19 Andrew Haley <aph@redhat.com>
5536
c02ebb18
ZW
5537 * jcf-write.c (push_long_const): lo, hi: New variables.
5538 Use rshift_double to extract the high part of a 64-bit long.
5539 Use WORD_TO_INT to extract the low part.
a2761d68 5540
c02ebb18
ZW
5541 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
5542 HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
5543 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
a2761d68 5544
7a228918
NB
55452002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
5546
5547 * typeck.c (incomplete_type_error): Remove.
5548
b798d8b6
BM
55492002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5550
5551 * class.c (make_class_data): Set DECL_ALIGN on static class data,
5552 for hash synchronization.
5553 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
5554 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
5555 class_type_node.
5556
1cde1d05
MW
55572002-04-16 Mark Wielaard <mark@klomp.org>
5558
5559 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
5560 negative zero.
5561
3020a7f5
BM
55622002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5563
5564 Fix for PR java/6294:
5565 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
5566 interfaces.
2c7e9098 5567
10aa83c7
BM
55682002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5569
5570 Fix for PR java/6085:
5571 * parse.y (patch_method_invocation): Always use build_access_to_thisn
5572 to get enclosing "this" argument for inner-class constructor
5573 invocation. Pass correct arguments to build_access_to_thisn.
5574
9fef1fe3
AG
55752002-04-10 Andreas Jaeger <aj@suse.de>
5576
5577 * gcj.texi (Input Options): Fix extdirs patch.
5578
55792002-04-10 Anthony Green <green@redhat.com>
5580
5581 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
5582
55832002-04-09 Anthony Green <green@redhat.com>
5584
5585 * gcj.texi (Input Options): Add --extdirs documentation.
5586 * jcf-dump.c (OPT_extdirs): New macro.
5587 (options): Add extdirs option.
5588 (help): Describe --extdirs.
5589 (main): Handle OPT_extdirs.
5590 * gjavah.c (OPT_extdirs): New macro.
5591 (options): Add extdirs option.
5592 (help): Describe --extdirs.
5593 (main): Handle OPT_extdirs.
5594 * jcf-path.c (jcf_path_init): Add extdirs support.
5595 (jcf_path_extdirs_arg): New function.
5596 (extensions): New variable to hold extensions path entries.
5597 * jvspec.c: Remove -fextdirs= when compiling main().
5598 * lang.c (java_decode_option): Handle -fextdirs=.
5599 * jcf.h (jcf_path_extdirs_arg): Declare new function.
5600 * Make-lang.in: Compile jcf-path with version info for use in
5601 identifying the appropriate libgcj.jar.
5602
66133721
TT
56032002-04-08 Tom Tromey <tromey@redhat.com>
5604
5605 For PR libgcj/5303:
5606 * .cvsignore: Added rmic.1 and rmiregistry.1.
5607 * gcj.texi (Top): Link to new nodes.
5608 (Invoking rmic): New node.
5609 (Invoking rmiregistry): Likewise.
5610 * Make-lang.in (java.generated-manpages): Added rmic.1 and
5611 rmiregistry.1.
5612 (java.maintainer-clean): Likewise.
5613 ($(srcdir)/java/rmic.1): New target.
5614 ($(srcdir)/java/rmiregistry.1): Likewise.
5615 (java.install-man): Handle rmic.1 and rmiregistry.1.
5616
00b224f8
BM
56172002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5618
5619 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
5620 Add note about handling uncaught exceptions. Add an exception handler
5621 to example.
5622
0b055ea1
BM
56232002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5624
5625 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
5626 after using it to patch CALL_EXPR.
5627
92c76eba
BM
56282002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5629
5630 * gcj.texi (Invocation): Document CNI invocation API.
5631
78ef5b89
NB
56322002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
5633
5634 * expr.c (truthvalue_conversion): Rename. Update.
5635 (expand_compare): Update.
5636 * java-tree.h (java_truthvalue_conversion): New.
5637 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
5638
dffd7eb6
NB
56392002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
5640
5641 * java-tree.h (java_mark_addressable): New.
5642 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
5643 * typeck.c (mark_addressable): Rename, update.
5644
ceef8ce4
NB
56452002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
5646
5647 * expr.c (build_java_binop): Update.
5648 * java-tree.h (java_signed_type, java_unsigned_type,
5649 java_signed_or_unsigned_type): Update.
5650 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
5651 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
5652 * parse.y (patch_binop): Update.
5653 * typeck.c (signed_or_unsigned_type, unsigned_type,
5654 signed_type): Update.
5655
7cb32822
NB
56562002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
5657
5658 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
5659 (java_dummy_print): Remove.
5660 (lang_print_error): Rename. Exit early if inhibiting output.
5661 (inhibit_error_printing_function): New.
5662 (java_init): Don't set hook.
5663 (lang_init_source): Use new boolean.
5664
5bebbee7
MK
56652002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
5666
5667 * parse.y (do_resolve_class): Fix infinite recursion.
5668
bce54832
TT
56692002-03-29 Tom Tromey <tromey@redhat.com>
5670
5671 * parse.y (check_inner_circular_reference): Ignore incomplete
5672 types.
5673
b0c48229
NB
56742002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
5675
5676 * Make-lang.in (builtins.o): Update.
5677 * boehm.c (get_boehm_type_descriptor): Update.
5678 * builtins.c: Include langhooks.h.
5679 * decl.c (java_init_decl_processing): Update.
5680 * java-tree.h (java_type_for_mode, java_type_for_size): New.
5681 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
5682 Redefine.
5683 * typeck.c (type_for_mode, type_for_size): Update.
5684
5843e870
MK
56852002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
5686
5687 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
5688
073681c5
TT
56892002-03-28 Tom Tromey <tromey@redhat.com>
5690
5691 * except.c (expand_end_java_handler): If the handler type is NULL,
5692 use java.lang.Throwable. Fixes PR java/5986.
5693
242747e5
APB
56942002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com>
5695
5696 Fix for PR java/4715:
5697 * jcf-parse.c (parse_source_file_3): New function.
5698 (read_class): Call it.
5699 (java_parse_file): Likewise.
5700
62c9aa5f 57012002-03-28 Jan Hubicka <jh@suse.cz>
f5eb5fd0
JH
5702
5703 * java/lang.c (java_init_options): Set flag_trapping_math to 0.
5704
c187b20e
BM
57052002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5706
5707 * parse.y (resolve_package): Initialize "decl".
5708 (lookup_package_type): Remove unused function.
5709
2f418289
BM
57102002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5711
5712 Fix for PR java/5993:
5713 * parse.y (resolve_package): Return the decl if resolution was
2c7e9098 5714 successful. Don't special case "java.lang" and "java.lang.reflect"
2f418289
BM
5715 packages. Set type_name to the merged identifier.
5716 (resolved_qualified_expression_name): Print error using "name" if
5717 resolve_package returns NULL_TREE.
5718
39bea374
TT
57192002-03-27 Tom Tromey <tromey@redhat.com>
5720
5721 * expr.c (expand_invoke): Don't generate null pointer check if
5722 we're calling <init>.
5723
c9d892a8
NB
57242002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
5725
5726 * expr.c (java_lang_expand_expr): Rename java_expand_expr,
5727 fix prototype.
5728 * java-tree.h (java_lang_expand_expr): Similarly.
5729 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
5730 (java_init): Don't set hook.
5731
05833095
BM
57322002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5733
5734 Fix for PR java/5850:
5735 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
5736 context if field was not found in the current scope.
5737 * expr.c (lookup_field): Don't look in enclosing contexts.
5738
c8c21a8c
TT
57392002-03-26 Tom Tromey <tromey@redhat.com>
5740
5741 Fix for PR java/5942:
5742 * parse.y (init_src_parse): Added sanity check.
5743 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
5744 elements, not 11.
5745
4f0ade92
NB
57462002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
5747
5748 * decl.c (lang_mark_tree): Rename java_mark_tree.
5749 * java-tree.h (java_mark_tree): New.
5750 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
5751
15e5ad76
ZW
57522002-03-25 Zack Weinberg <zack@codesourcery.com>
5753
5754 * lex.c: Change java_perform_atof to take normal parameters
5755 instead of a pointer to a parameter block. Call it directly
5756 from java_lex.
5757
caaabaa1
MW
57582002-03-22 Mark Wielaard <mark@klomp.org>
5759
5760 Fix for PR java/5368:
5761 * parse.y (resolve_qualified_expression_name): Use decl not field_decl
5762 when printing error message.
5763
c88770e9
NB
57642002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
5765
5766 * decl.c (maybe_build_cleanup): Remove.
5767
c58408bf
TT
57682002-03-22 Tom Tromey <tromey@redhat.com>
5769
5770 Andrew Haley <aph@cambridge.redhat.com>
5771
5772 * expr.c (build_field_ref): Don't build a check if the field is a
5773 member of `this'.
5774
6c18d181
EB
57752002-03-21 Eric Blake <ebb9@email.byu.edu>
5776
5777 Fix for PR java/6026:
5778 * lex.c (java_lex): Fix parsing of consecutive floats.
5779
a5778545
TT
57802002-03-21 Tom Tromey <tromey@redhat.com>
5781
5782 * parse.y (build_access_to_thisn): Stop when FROM is not an inner
5783 class.
5784
43577e6b
NB
57852002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
5786
5787 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
5788 insert_block, getdecls, kept_level_p, global_bindings_p): New.
5789
fe911510
NF
57902002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
5791
2c7e9098 5792 * gcj.texi: @code{gcj} becomes @command{gcj}.
15e5ad76
ZW
5793 @code{gcc} becomes @command{gcc}.
5794 GcjRaw changed to gnu.gcc.RawData.
5795
7afff7cf
NB
57962002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
5797
5798 * decl.c (start_java_method): Use new hook.
5799 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
5800 (java_init): Remove old hook.
5801
c2d8e20a
APB
58022002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com>
5803
5804 * builtins.c (define_builtin): Do nothing if `type' is null.
5805 Fixes PR java/5876.
5806
6befbee5
BM
58072002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5808
5809 * parse.y (parser_check_super_interface): Fix error message
5810 grammar/order.
5811
320c81a6
KG
58122002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5813
5814 * jcf-parse.c (get_constant): Delete unused variables.
5815
52dabb6c
NB
58162002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
5817
5818 * java-tree.h (java_parse_file): New.
5819 * jcf-parse.c (yyparse): Rename java_parse_file.
5820 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
5821
568d1435
BM
58222002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5823
5824 * parse.y (craft_constructor): Return the constructor decl.
5825 (java_expand_classes): Update comments.
5826 (lookup_method_invoke): Call fix_constructors immediately for
5827 anonymous class. Fixes PR java/5935.
5828
8d39b447
AG
58292002-03-15 Anthony Green <green@redhat.com>
5830
5831 * jcf-parse.c (yyparse): Don't emit class registration
5832 constructor when compiling resource files.
5833
2f9834e8
KG
58342002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5835
5836 * lang.c (java_tree_code_type, java_tree_code_length,
5837 tree_code_name): Delete.
5838 (tree_code_type, tree_code_length, tree_code_name): Define.
5839 (java_init): Don't try to copy into the various tree_code
5840 arrays.
5841
f792bce5
TT
58422002-03-12 Tom Tromey <tromey@redhat.com>
5843
8a611251
TT
5844 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
5845 UTF-8, not UCS-2. Fixes PR java/5923.
5846
f792bce5
TT
5847 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
5848 a call_expr wrapped in a convert. Fixes PR java/5848.
5849
acf8bc25
BM
58502002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5851
5852 * jcf-write.c (write_classfile): Improve error strings.
5853
e0b1c206
EB
58542002-03-11 Eric Blake <ebb9@email.byu.edu>
5855
5856 * lex.c: Adjust comments to GNU standards.
5857
58582002-03-11 Eric Blake <ebb9@email.byu.edu>
5859
5860 Fix for PR java/5902:
5861 * lex.c (java_lex): Fix parsing of literals.
5862
884523df
BM
58632002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5864
5865 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
5866 to prevent it getting evaluated twice in the store checking case.
5867 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
5868 examining OBJECT.
5869
45597167
BM
58702002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5871
5872 * decl.c (java_init_decl_processing): Make sure class_type_node
5873 alignment is not less than 64 bits if hash synchronization is enabled.
5874
edcc88c1
PB
58752002-03-08 Per Bothner <per@bothner.com>
5876
5877 * parse.y (java_complete_lhs): Check if patch_assignment
5878 returned an error-mark.
5879
5880 * parse.y (try_builtin_assignconv): Don't special-case zero.
5881
5295f849
PB
58822002-03-08 Per Bothner <per@bothner.com>
5883
5884 Fix for PR java/5812.
5885 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label
be3ac45e 5886 here instead of in JSR macro. Likewise with load_type_state call.
5295f849 5887 Do the latter on if the return_pc has been verified (the jsr returns).
be3ac45e 5888 (JSR): Now just call build_java_jsr.
5295f849 5889
d3e1c36d
JS
58902002-03-07 Jeff Sturm <jsturm@one-point.com>
5891
5892 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
5893 (java.install-common): Link native driver to
5894 JAVA_TARGET_INSTALL_NAME.
5895
6d6b5cd7
DB
58962002-03-05 David Billinghurst <David.Billinghurst@riotinto.com>
5897
5898 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
5899 * builtins.c(sin_builtin): Likewise
5900 * builtins.c(sqrt_builtin): Likewise
5901
ba31d94e
ZW
59022002-03-03 Zack Weinberg <zack@codesourcery.com>
5903
5904 * java/expr.c, java/jcf-parse.c, java/lex.c:
5905 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
5906 REAL_ARITHMETIC blocks unconditional. Delete some further
5907 #ifdef blocks predicated on REAL_ARITHMETIC.
5908
ca7558fc
KG
59092002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5910
5911 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
5912 explicit sizeof/sizeof.
5913 * decl.c (java_init_decl_processing): Likewise.
5914 * jcf-parse.c (init_jcf_parse): Likewise.
5915 * parse.y (init_src_parse): Likewise.
5916
2a85660d
PB
59172002-03-02 Per Bothner <per@bothner.com>
5918
5919 Make --CLASSPATH by a synonym for --classpath and -classpath.
5920 Implement --bootclasspath.
5921 * jcf-path.c (classpath_u): Rename static variable to classpath_user.
5922 (classpath_l): Remove.
5923 (jcf_path_CLASSPATH_arg): Remove.
5924 (jcf_path_bootclasspath_arg): New function.
5925 (jcf_path_seal): Simplify accordingly.
5926
5927 * jcf.h (jcf_path_bootclasspath_arg): New declarations.
5928 (jcf_path_CLASSPATH): Remove declaration.
5929 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*.
5930 (lang_specific_driver): Translate -bootclasspath.
5931 * lang-options.h: Add --bootclasspath. Update --CLASSPATH.
5932 * lang.c (decode_lang_options): Do jcf_path_init first.
5933 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath.
5934 * gjavah.c: Also handle --bootclasspath.
5935 Handle --CLASSPATH as a synonum for --classpath.
5936 * jcf-dump.c: Likewise.
5937
5938 "." is not part of system path, but is the default for --classpath.
5939 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs.
5940 (jcf_path_seal): Add "." if no CLASSPATH specified.
5941
5942 * gcj.texi: Document changes.
5943
2060fd4c
BM
59442002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5945
5946 * expr.c (build_java_arraystore_check): Fix formatting.
5947
4f647d52
APB
59482002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
5949
5950 Fix for PR java/5758, java/5632:
5951 * jcf-parse.c (load_class): Renamed local variable, consider `.' an
5952 inner-class separator too.
5953 * parse.y (do_resolve_class): New local `decl_result.'
5954 Progressively build a name for what can have been loaded.
5955
022dcc46
BM
59562002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5957
5958 * expr.c (java_array_data_offset): Removed function.
5959 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
5960 (build_java_array_length_access): Obtain "length" value using a
5961 COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
5962 (build_java_arrayaccess): Correct comment. Access "data" using a
5963 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
5964 (build_java_arraystore_check): New function.
5965 (expand_java_arraystore): Use build_java_arraystore_check.
5966 * parse.y (patch_assignment): Simplify code to insert a store check
5967 when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
5968 * check-init.c (check_init): Update to reflect that an array length
5969 access is now a COMPONENT_REF.
5970 * gcj.texi (Code Generation): Improve documentation of
5971 -fno-bounds-check. Add documentation for -fno-store-check.
5972 * java-tree.h (flag_store_check): Declare.
5973 (build_java_arraystore_check): Declare.
5974 * lang.c (flag_store_check): Initialize to 1.
5975 (lang_f_options): Add store-check option.
5976 * jvspec.c: Don't pass store-check option to jvgenmain.
5977 * lang-options.h: Add help string for -fno-store-check.
5978
63e1b1c4
NB
59792002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
5980
5981 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
5982 * java-tree.h (java_dup_lang_specific_decl): New.
5983 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
5984
f458d1d5
ZW
59852002-02-27 Zack Weinberg <zack@codesourcery.com>
5986
5987 * builtins.c, decl.c: Delete traditional-mode-related code
5988 copied from the C front end but not used, or used only to
5989 permit the compiler to link.
5990
d2fb5329
TT
59912002-02-22 Tom Tromey <tromey@redhat.com>
5992
5993 Fix for PR java/2369:
5994 * jvspec.c (verify_class_name): New function.
5995 (lang_specific_driver): Call it.
5996 (JAVA_START_CHAR_P): New macro.
5997 (JAVA_PART_CHAR_P): Likewise.
5998
dcb36804
PB
59992002-02-22 Per Bothner <per@bothner.com>
6000
022dcc46 6001 * class.c: Change vtable to be more compatible with g++ v3 abi.
dcb36804
PB
6002 (get_dispatch_table): Prepend offset-to-top (always 0) and
6003 type_info pointer (currently unimplemented hence NULL) to vtable.
6004 Specifically, prepend offset-to-top and typeinfo ptr (currently null).
6005 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
6006 Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
6007 (build_dtable_decl): Add declarations for new fields.
6008
453c182f
PB
60092002-02-20 Per Bothner <per@bothner.com>
6010
6011 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
6012 to finit$ (otherwise generate_bytecode_insns drops it). However, we
6013 don't need to set it on the COMPOUND_EXPR - the caller does that.
6014
3babb2e3
NF
60152002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
6016
15e5ad76
ZW
6017 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
6018 `--CLASSPATH' becomes `--classpath.'
6019 * gjavah.c: Likewise.
6020 * jcf-dump.c: Likewise.
6021 * lang-options.h: Likewise.
6022 * lang.c: Likewise.
6023 * jcf-path.c: Updated comment.
6024 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
6025 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
6026 * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
6027 (jcf_path_CLASSPATH_arg): Ditto.
6028 (classpath_u): Updated leading comment.
3babb2e3 6029
9fe2cc05
PB
60302002-02-20 Per Bothner <per@bothner.com>
6031
6032 * builtins.c (check_for_builtin): New function.
6033 (build_call_or_builtin): Remove.
6034 * java-tree.h: Update accordingly.
6035 * expr.c (expand_invoke): Use build + check_for_builtin instead
6036 of build_call_or_builtin.
6037 * parse.y (patch_invoke): Likewise. This avoids needlessly creating
6038 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
6039 flag (which had caused jcf-write to incorrectly emit invokevirtual).
6040
6b6294f1
TT
60412002-02-17 Tom Tromey <tromey@redhat.com>
6042
6043 * java-tree.h (TYPE_STRICTFP): New macro.
6044 (struct lang_type) [strictfp]: New field.
6045 (CLASS_STRICTFP): New macro.
6046 (METHOD_STRICTFP): New macro.
6047 (struct lang_decl) [strictfp]: New field.
6048 * parse.y (method_header): Disallow strictfp constructor or
6049 abstract method.
6050 (STRICT_TK): Move before MODIFIER_TK.
6051 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
6052 (METHOD_MODIFIERS): Likewise.
6053 (INTERFACE_MODIFIERS): Likewise.
6054 * jcf-write.c (get_access_flags): Likewise.
6055 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
6056 (add_method_1): Likewise.
6057 (get_access_flags_from_decl): Likewise.
6058 * jcf-dump.c (print_access_flags): Print in standard order. Also,
6059 recognize strictfp flag.
6060 * jcf.h (ACC_STRICT): New define.
6061
5667c33d
DB
60622002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com>
6063
6064 * class.c(build_utf8_ref): Move declaration of decl_size
6065
5d65aeb7
TT
60662002-02-07 Tom Tromey <tromey@redhat.com>
6067
6068 * gcj.texi (Input Options): --CLASSPATH does not suppress system
6069 path.
6070
10c45943
AG
60712002-02-04 Anthony Green <green@redhat.com>
6072
6073 * class.c (build_utf8_ref): Put UTF-8 constants into merged
6074 sections if available.
6075
14b71055
BM
60762002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6077
6078 * parse.y (java_expand_classes): Fix typo in static field loop.
6079
f0c75752
RH
60802002-02-02 Richard Henderson <rth@redhat.com>
6081
6082 * class.c (add_field): Mark static fields external.
6083 (build_class_ref): Remove redundant set.
6084 * parse.y (java_expand_classes): Mark static fields of classes
6085 to be compiled as local.
6086 * jcf-parse.c (parse_class_file): Likewise.
6087
d4ad1c90
NF
60882002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk>
6089
6090 * gcj.texi (About CNI): New node.
6091
58fae3f7
CR
60922002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
6093
6094 PR java/5080
6095 * jcf-parse.c : Check for HAVE_LOCALE_H before using
6096 setlocale() with LC_CTYPE as a parameter.
6097 * jv-scan.c: Same.
6098
8512bbd7
JM
60992002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
6100
6101 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
6102 Follow GNU Coding Standards for --version.
6103
adc8cb5d
TT
61042002-01-28 Tom Tromey <tromey@redhat.com>
6105
6106 * expr.c (build_jni_stub): Ensure storage for `meth' is
6107 generated.
6108 * parse.y (java_complete_expand_methods): Set
6109 current_function_decl before building JNI stub.
6110
1d8478d7 61112002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
15e5ad76 6112
1d8478d7
AT
6113 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
6114 BUILT_IN_SQRTF.
6115
fec763fc
TT
61162002-01-22 Tom Tromey <tromey@redhat.com>
6117
6118 * decl.c (java_init_decl_processing): Use add_predefined_file.
6119 Predefine RawData.java.
6120 (predef_filenames): Removed.
6121 (java_init_decl_processing): Don't register predef_filenames.
6122 * jcf-parse.c (add_predefined_file): New function.
6123 (predefined_filename_p): Rewrote.
6124 (predefined_filename_p): No longer static.
6125 * decl.c (java_init_decl_processing): Call initialize_builtins.
6126 * Make-lang.in (JAVA_OBJS): Added builtins.o.
6127 (java/builtins.o): New target.
6128 * builtins.c: New file.
6129 * parse.y (patch_invoke): Use build_call_or_builtin.
6130 * java-tree.h (build_call_or_builtin): Declare.
6131 (initialize_builtins): Declare.
6132 (java_set_exception_lang_code): Removed unused declaration.
6133 (PREDEF_FILENAMES_SIZE): Removed.
6134 (java_tree_index): Added JTI_PREDEF_FILENAMES.
6135 (predef_filenames): New define.
6136 (add_predefined_file): Declare.
6137 (predefined_filename_p): Declare.
6138 * expr.c (expand_invoke): Use build_call_or_builtin.
6139
cc586d70
KG
61402002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6141
6142 * parse.y (patch_switch_statement): Fix format specifier.
6143
0df29596
TT
61442002-01-16 Tom Tromey <tromey@redhat.com>
6145
6146 More for PR java/5365:
6147 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
6148 default.
6149 (process_file): Generate include for
6150 java.lang.UnsupportedOperationExceptions.
6151
e1886ae0
AJ
61522002-01-15 Andreas Jaeger <aj@suse.de>
6153
6154 * .cvsignore: Add man pages.
6155
9c874875
TT
61562002-01-15 Tom Tromey <tromey@redhat.com>
6157
6158 Fix for PR java/5365:
6159 * gjavah.c (process_file): Turn class name into a file name.
6160
707635f9
MK
61612002-01-14 Matthias Klose <doko@debian.org>
6162
6163 * gcj.texi: Fix whitespace and formatting errors in the
6164 synopsis of the man pages. Update copyright.
6165
e6a5e462
TT
61662002-01-14 Tom Tromey <tromey@redhat.com>
6167
6168 For PR libgcj/5303:
6169 * Make-lang.in (java.install-man): Handle jv-convert man page.
6170 (java.generated-manpages): Added jv-convert.1.
6171 (java.uninstall): Remove jv-convert.1.
6172 (java.maintainer-clean): Likewise.
6173 ($(srcdir)/java/jv-convert.1): New target.
6174 * gcj.texi (Top): Link to jv-convert node.
6175 (Individual utilities): Likewise.
6176 (Invoking jv-convert): New node.
6177
0b0d4c5b 61782001-01-10 Jeff Sturm <jsturm@one-point.com>
f0c75752 6179 Martin Kahlert <martin.kahlert@infineon.com>
0b0d4c5b
JS
6180
6181 * jcf-parse.c (get_constant): Don't swap lo/hi for big
6182 endian targets when HOST_BITS_PER_WIDE_INT >= 64.
6183
c0b65ff1 61842002-01-03 Graham Stott <grahams@redhat.com>
79ab76fd 6185
f0c75752
RH
6186 * class.c (compile_resource_file): Update copyright date.
6187 Constify filename parameter.
6188 (java-tree.h): Update copyright date.
6189 (compile_resource_file): Constify filename parameter.
79ab76fd 6190
22e85ed4
GS
61912002-01-03 Graham Stott <grahams@redhat.com>
6192
f0c75752
RH
6193 * gcc/jcf-parse.c: Update copyright date.
6194 (yyparse): Constify resource_filename.
22e85ed4 6195
5e65297b
KG
61962002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6197
6198 * parse.y (src_parse_roots): Don't needlessly zero init.
6199
12cfb4fc
TT
62002001-12-31 Tom Tromey <tromey@redhat.com>
6201
6202 * parse.y (dump_java_tree): New function.
6203 (source_end_java_method): Call it.
6204 (end_class_declaration): Likewise.
6205 * lang.c (java_decode_option): Call dump_switch_p.
6206
dab722ee
TT
62072001-12-28 Tom Tromey <tromey@redhat.com>
6208
6209 * gen-table.pl: Don't process characters after \uffff. Added
6210 comment pointing to input file.
6211
7b0295ab
KG
62122001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6213
6214 * gen-table.pl: Const-ify output. Document the location of a
6215 suitable unicode input file.
6216
6217 * chartables.h: Regenerate.
6218
c083a819
KG
62192001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6220
6221 * chartables.h: Const-ify.
6222 * gjavah.c (options): Likewise.
6223 * jcf-dump.c (options): Likewise.
6224 * jv-scan.c (options): Likewise.
6225 * lex.c (java_start_char_p, java_part_char_p): Likewise.
6226 * parse.y (binop_lookup): Likewise.
6227
0b5826ac
KG
62282001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6229
6230 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
6231 the static arrays that are output.
6232 * jvspec.c (jvgenmain_spec): Make static.
6233 * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
6234 * keyword.h: Regenerate.
6235 * lang.c (string_option, process_option_with_no, lang_f_options,
6236 lang_W_options): Const-ify.
6237 * lex.c (java_lex): Likewise.
6238
9a07cfaf
RH
62392001-12-21 Richard Henderson <rth@redhat.com>
6240
6241 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
6242 (get_boehm_type_descriptor): ... here. Arrange for the
6243 TREE_TYPE to get set properly.
6244
f44fefca
RH
62452001-12-21 Richard Henderson <rth@redhat.com>
6246
ef969525
RH
6247 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
6248 only if the target requires collect2.
6249
f44fefca
RH
6250 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
6251
84a944b3
TT
62522001-12-20 Tom Tromey <tromey@redhat.com>
6253
6254 For PR java/4509:
6255 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
6256 CAN_COMPLETE_NORMALLY for the node.
6257 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
6258 generate code for second branch if first branch can't complete
6259 normally.
6260 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
6261 the loop head if the loop body can't complete normally.
6262
2d93b924
TT
62632001-12-20 Tom Tromey <tromey@redhat.com>
6264
6265 For PR java/4766:
6266 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
6267 case where `finally' clause can't complete normally.
6268
f2af50db
TT
62692001-12-20 Tom Tromey <tromey@redhat.com>
6270
6271 Fixes PR java/5057:
6272 * parse.y (analyze_clinit_body): Added this_class parameter.
6273 Check for more cases where we must keep <clinit>.
6274 (maybe_yank_clinit): Cleaned up flow control.
6275
7899e8b9
BM
62762001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6277
e1886ae0 6278 * decl.c (java_init_decl_processing): Don't initialize
7899e8b9
BM
6279 finit_leg_identifier_node.
6280 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
6281 (finit_leg_identifier_node): Remove.
6282 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
6283
de4984af
BM
62842001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6285
e1886ae0 6286 * mangle.c (mangle_member_name): Don't special-case for
de4984af
BM
6287 NO_DOLLAR_IN_LABEL.
6288 * mangle_name.c (unicode_mangling_length): Likewise.
6289 (append_unicode_mangled_name): Likewise.
6290 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
6291 code.
6292
08514ae4
BM
62932001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6294
6295 * expr.c (build_java_array_length_access): Don't force null pointer
6296 check unless flag_check_references is set.
6297
56b8325e
TT
62982001-12-20 Tom Tromey <tromey@redhat.com>
6299
6300 Fix for PR java/3417:
6301 * parse.y (patch_assignment): Added special processing for
6302 `return'.
6303 (patch_return): Don't convert booleans to integers, and don't
6304 special-case `null'.
6305
38be19f6
JM
63062001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
6307
6308 * config-lang.in (diff_excludes): Remove.
6309
b11cc610
JM
63102001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
6311
6312 * gcj.texi: Update link to GCC manual.
6313
e97562f5
TT
63142001-12-17 Tom Tromey <tromey@redhat.com>
6315
6316 * parse.y (link_nested_class_to_enclosing): Removed useless
6317 statement.
6318
2c5187c5
TT
63192001-12-16 Tom Tromey <tromey@redhat.com>
6320
6321 * mangle.c (mangle_method_decl): Never emit `C2' constructor.
6322 Fixes PR java/5088.
6323
a83f01f0
JM
63242001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
6325
6326 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
6327 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
6328 spelling errors.
6329
faf31866
KG
63302001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6331
6332 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
6333
9a8de998
BM
63342001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6335
6336 * decl.c (java_init_decl_processing): Build otable_type correctly.
6337 otable_decl is an otable_type.
6338
861ef928
BM
63392001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6340
6341 * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
e1886ae0 6342 otable_type, otable_ptr_type, method_symbol_type,
861ef928
BM
6343 method_symbols_array_type, method_symbols_array_ptr_type): New
6344 field/global tree definitions.
6345 (flag_indirect_dispatch): New flag.
e1886ae0 6346 * decl.c (java_init_decl_processing): Initialize new otable and
861ef928
BM
6347 otable_syms type nodes and decls. Add new field "index" to
6348 method_type_node.
6349 * class.c (build_method_symbols_entry): New function.
6350 (make_method_value): Set "index" to to method's vtable index for
6351 virtual methods when indirect-dispatch is not used.
a83f01f0 6352 (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
861ef928
BM
6353 and set vtable_method_count to -1. Set otable and otable_syms field
6354 if indirect-dispatch is used and there was something to put in them.
6355 (build_method_symbols_entry): New function.
6356 (emit_offset_symbol_table): New function.
6357 * expr.c (get_offset_table_index): New function.
e1886ae0 6358 (build_invokevirtual): Build array reference to otable at the index
861ef928
BM
6359 returned by get_offset_table_index, and use the result as the vtable
6360 offset.
6361 (build_invokeinterface): Similar.
e1886ae0
AJ
6362 * jcf-parse.c (yyparse): If indirect-dispatch, call
6363 emit_offset_symbol_table at the end of compilation, after all classes
861ef928
BM
6364 have been generated.
6365 * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
6366 * lang.c (flag_indirect_dispatch): Define.
6367 (lang_f_options): Add indirect-dispatch flag.
6368
f1727481
MK
63692001-12-14 Matthias Klose <doko@debian.org>
6370
6371 * gcj.texi: Markup for man page generation. Document missing
6372 options printed by <tool> --help.
6373 Terminate description of gij's -ms option with a dot.
6374 * Make-lang.in ($(srcdir)/java/*.1): New targets.
6375 (java.generated-manpages java.install-man, java.uninstall,
6376 java-maintainer-clean) Updated.
6377
eec87542
HB
63782001-12-14 Hans Boehm <Hans_Boehm@hp.com>
6379
6380 * class.c (get_dispatch_table): Fix java vtable layout
6381 for TARGET_VTABLE_USES_DESCRIPTORS.
6382 * decl.c (java_init_decl_processing): Initialize
6383 alloc_no_finalizer_node, finalize_identifier_node.
6384 * expr.c (class_has_finalize_method): New function.
6385 (expand_java_NEW): Generate calls for finalizer-free allocation.
6386 (build_invokevirtual): Fix java vtable layout for
6387 TARGET_VTABLE_USES_DESCRIPTORS.
e1886ae0 6388 * java-tree.h (enum java_tree_index): New entries:
eec87542
HB
6389 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
6390 (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
6391 (class_has_finalize_method): declare.
6392 (HAS_FINALIZER_P): New macro.
6393 * parse.y (patch_invoke): Generate calls for finalizer-free
6394 allocation.
6395
81deb0a3
MK
63962001-12-12 Matthias Klose <doko@debian.org>
6397
6398 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
6399 whitespace at end of line.
6400
34026199
TT
64012001-12-11 Tom Tromey <tromey@redhat.com>
6402
6403 * lex.c (java_init_lex): Define wfl_to_string as
6404 gnu.gcj.runtime.StringBuffer unless generating bytecode.
6405
a3bcfa67
JS
64062001-12-11 Jeff Sturm <jsturm@one-point.com>
6407
6408 * class.c (make_method_value): Use null_pointer_node to
6409 represent empty exception table.
6410
3afdfae8
TT
64112001-12-10 Tom Tromey <tromey@redhat.com>
6412
6413 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
6414
62c9aa5f 64152001-12-10 Douglas B. Rupp <rupp@gnat.com>
96a9c44f
DR
6416
6417 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
6418
a5cb134d
PB
64192001-12-09 Per Bothner <per@bothner.com>
6420
6421 * check-init.c (current_switch_has_default): New static field.
6422 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
6423 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
6424 DEFAULT_EXPR seen, simulate a default alternative that copies state.
6425
1aca9b81
TT
64262001-12-09 Tom Tromey <tromey@redhat.com>
6427
6428 * check-init.c (check_init): Don't allow pre- or post- increment
6429 or decrement of final variable.
6430 (final_assign_error): Minor error message rewording.
6431
4440ffc4
TT
64322001-12-08 Tom Tromey <tromey@redhat.com>
6433
0854b1c4
TT
6434 * java-tree.h: Fixed typo.
6435
5fcab235
TT
6436 * gjavah.c (decompile_method): Don't decompile to `return this'
6437 for static methods.
6438
7b35f6c9
TT
6439 * gjavah.c (cxx_keywords): Re-sorted.
6440 * lex.c (cxx_keywords): Re-sorted.
6441
897c9e66
TT
6442 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
6443 else.
6444
4440ffc4
TT
6445 * gjavah.c (print_namelet): Clear subnamelets.
6446 (HANDLE_METHOD): Set `method_printed' earlier.
6447
8f25dc28
TT
64482001-12-07 Tom Tromey <tromey@redhat.com>
6449
6450 * lang.c (lang_f_options): Added
6451 optimize-static-class-initialization.
6452 (java_decode_option): Removed special case.
6453
a9040c77
PB
64542001-12-07 Per Bothner <per@bothner.com>
6455
6456 * check-init.c (check_init): Fix typo freeing memory twice.
6457
5412ef6b
PB
64582001-12-05 Per Bothner <per@bothner.com>
6459
6460 Restore support for static class initialization optimization.
6461 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
6462 * check-init.c (check_int): At end of BLOCK handle initialization
6463 blocks, which used to be done in java_complete_expand_method but did
6464 not handle the case where check_for_initialization might allocate
6465 more than a word of bits.
6466 * decl.c (lang_make_tree): The smic field is now a tree.
6467 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field.
6468 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro.
6469
6470 * parse.y (emit_test_initialization): Combine hash_lookup calls.
6471
6472 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
6473 Change from a hash table to a list.
6474 (struct_lang_decl): Change field 'smic' to match.
6475 * class.c (add_method_1): Initialize
6476 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
6477 * parse.y (adjust_init_test_initialization): Removed - inlined into -
6478 (java_expand_method_bodies): -here, since 'smic' is now a list.
6479 (patch_invoke): Add to 'smic' list, instead of hash_lookup.
6480
6481 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT.
6482
6483 * class.c (java_hash_compare_tree_node): Fix casts.
6484
4f88ccda
PB
64852001-12-04 Per Bothner <per@bothner.com>
6486
6487 * check-init.c: Handle definite unassignment to finals in addition
6488 to definite assignment.
6489 (loop_current_locals): New field.
6490 (num_current_locals, int start_current_locals, num_current_words):
6491 Make static.
6492 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses.
6493 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
6494 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros.
6495 (get_variable_decl, check_final_reassigned): New functions.
6496 (check_init, check_bool_init): Modify as needed for checking finals.
6497 (check_for_initialization): Take extra parameter and return void.
6498 Do extra start-up logic to check final fields for assignment.
6499 * parse.y (check_static_final_variable_assignment_flag,
6500 reset_static_final_variable_assignment_flag, check_final_assignment,
6501 check_final_variable_local_assignment_flag,
6502 reset_final_variable_indirect_assignment_flag,
6503 reset_final_variable_global_assignment_flag): Remove functions.
6504 (java_complete_expand_methods, outer_field_access_fix,
6505 patch_assignment): Remove no-longer used logic.
6506 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments.
6507 * parse.y (register_fields, java_complete_tree): Update accordingly.
6508
6509 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca.
6510 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New.
6511 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS.
6512
6513 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off.
6514
6515 * java-tree.h (DECL FINAL): New bit-field.
6516 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL.
6517 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL.
6518 (DECL_INIT_CALLS_THIS): New macro.
6519 (struct lang_decl): New bit-field init_calls_this.
6520 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
6521 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
6522 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now
6523 use it for both local variables and final fields.
6524 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr,
6525 and local_final.
6526 (struct lang_type): Remove hfv bit-field.
6527 (check_for_initialization): Change to return void.
6528
6529 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros.
6530 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS.
6531 * check-init.c (final_assign_error): New helper function.
6532 (check_final_reassigned, check_init): Use it.
6533 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
e1886ae0 6534
4f88ccda
PB
6535 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all
6536 bit-fields to unsigned.
6537
87d4ad08
PB
65382001-12-03 Per Bothner <per@bothner.com>
6539
6540 * parse.y (patch_binop): Minor constant folding.
6541
6542 * parse.y (build_current_thisn): Shorter 'buffer'.
6543
aedcdb65
PB
65442001-12-03 Per Bothner <per@bothner.com>
6545
6546 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
6547 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
6548 * jcf-write.c (generate_bytecode_insns): Remove support for
6549 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
6550 * check-init.c (check_init): Likewise.
6551
82ff672e
PB
65522001-12-03 Per Bothner <per@bothner.com>
6553
6554 * verify.c (subroutine_nesting): New function.
6555 (verify_jvm_instructions): Use it to fix logic for checking that
6556 we're done with the current subroutine.
6557
6558 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
6559 OPCODE_instanceof use POP_TYPE macro for better diagnostics.
6560
98a63868
PB
65612001-12-03 Per Bothner <per@bothner.com>
6562
6563 * jcf.h: Fix obvious typo in comment.
6564 * typeck.c (build_null_signature): Add comment.
6565
c725bd79
NB
65662001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
6567
6568 * expr.c: Remove leading capital from diagnostic messages, as
6569 per GNU coding standards.
6570 * jcf-io.c: Similarly.
6571 * jcf-parse.c: Similarly.
6572 * jv-scan.c: Similarly.
6573 * jvspec.c: Similarly.
6574 * mangle.c: Similarly.
6575
b736dee6
TCH
65762001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw>
6577 Alexandre Petit-Bianco <apbianco@redhat.com>
6578
e1886ae0 6579 * expr.c (build_java_arrayaccess): Call save_expr on array for
7e5f4bee 6580 correct evaluation order, modified comment, fixed indentation.
b736dee6
TCH
6581 * parse.y: (patch_assignment): Correctly extract the array base
6582 from the tree generate by build_java_arrayaccess, added comments.
6583 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
6584 Fixes PR java/3096, PR java/3803, PR java/3965.
6585
357351e5
NB
65862001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
6587
6588 * expr.c (expand_byte_code): Remove trailing periods from messages.
6589 * jcf-parse.c (load_class, jcf_parse): Similarly.
6590 * jcf-write.c (generate_classfile): Similarly.
6591 * lex.c (java_lex): Similarly.
6592
a7c5337d
BM
65932001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6594
6595 * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
6596
d3945f0a
JM
65972001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
6598
6599 * Make-lang.in (java.generated-manpages): New dummy target.
6600
b856c15d
RO
66012001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6602
6603 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
6604 ASM_FINAL_SPEC.
6605 (lang_specific_pre_link): Use set_input to set input_filename.
6606 Append `main' here.
6607 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
6608 (main): Fix definition.
6609 Strip `main' from classname.
6610 Fixes PR java/227.
6611
9c2fcf09
RS
66122001-11-18 Roger Sayle <roger@eyesopen.com>
6613
6614 * parse.h (java_expand_switch): Remove old prototype.
6615
8aeb42d0
TT
66162001-11-18 Tom Tromey <tromey@redhat.com>
6617
6618 Fix for PR java/1401:
6619 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
6620 arg0 is null.
6621 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
6622 correctly.
6623
22703ccc
NB
66242001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
6625
6626 * lang.c (finish_parse): Rename to java_finish.
6627 (LANG_HOOKS_FINISH, java_finish): New.
6628
f5e99456
NB
66292001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
6630
6631 * decl.c (init_decl_processing): Rename java_init_decl_processing.
6632 * java-tree.h: New prototype.
6633 * lang.c (java_init): Update prototype. Combine with old init_parse.
6634
150f086d
TT
66352001-11-13 Tom Tromey <tromey@redhat.com>
6636
6637 * gjavah.c (method_signature): New global.
6638 (HANDLE_METHOD): Set it.
6639 (decompile_return_statement): New function.
6640 (decompile_method): Use it.
6641 (print_method_info): Removed `synth' argument.
6642
5d69f816
NB
66432001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
6644
6645 * java-tree.h (java_set_yydebug): New.
6646 * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
6647 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
6648 (print_lang_decl, print_lang_type, print_lang_identifier,
6649 print_lang_statistics, lang_print_xnode): Remove.
6650
3ac88239
NB
66512001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
6652
6653 * jcf-parse.c (init_lex): Remove.
6654 * lang.c (language_string, lang_identify): Remove.
6655 (struct lang_hooks): Constify.
6656 (LANG_HOOKS_NAME): Override.
6657 (init_parse): Update.
6658
b21d216c
AF
66592001-11-08 Andreas Franck <afranck@gmx.de>
6660
e1886ae0 6661 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
b21d216c
AF
6662 program_transform_name the way suggested by autoconf.
6663 (java.install-common): Also transform auxiliary program names with
6664 program_transform_name.
6665
1fa73144
TT
66662001-11-08 Tom Tromey <tromey@cygnus.com>
6667
6668 * parse.y (trap_overflow_corner_case): New rule.
6669 (unary_expression): Use it.
6670 * lex.c (java_init_lex): Don't set minus_seen.
6671 (yylex): Don't use minus_seen. Communicate overflow to parser for
6672 it to handle.
6673 (error_if_numeric_overflow): New function.
6674 * parse.h (minus_seen): Removed field.
6675 (JAVA_RADIX10_FLAG): New define.
6676
5a21a051
TT
66772001-11-07 Tom Tromey <tromey@redhat.com>
6678
6679 Patch for PR java/1414:
6680 * parse.y (case_label_list): New global.
6681 (goal): Register case_label_list with GC.
6682 (java_complete_lhs): Save new case on case_label_list.
6683 (patch_switch_statement): Check for duplicate case labels.
6684
5573cb39
APB
66852001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com>
6686
6687 * parse.y (patch_assignment): Removed unused third argument.
6688 (java_complete_lhs): Removed unused third argument to patch_assignment.
6689
d23c55c2
NB
66902001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
6691
6692 * lang.c: Include langhooks-def.h.
6693 * Make-lang.in: Update.
6694
5b7874aa
ZW
66952001-10-31 Zack Weinberg <zack@codesourcery.com>
6696
6697 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
6698
2b472f91
BM
66992001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6700
6701 * mangle.c (find_compression_record_match): Don't match compression
6702 records for package name elements unless they occur at the start of
6703 the name. Fix for PR java/4717.
6704
961b8e70
BM
67052001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6706
6707 * expr.c (expand_java_field_op): Don't special-case references to
6708 java.lang.PRIMTYPE.TYPE.
6709 (build_primtype_type_ref): Removed.
6710 * java-tree.h (build_primtype_type_ref): Remove prototype.
6711 * parse.y (maybe_build_primttype_type_ref): Removed.
6712 (complete_function_arguments): Don't special-case references to
6713 java.lang.PRIMTYPE.TYPE.
6714 (patch_assignment): Likewise.
6715 (array_constructor_check_entry): Likewise.
6716
98f705b9
APB
67172001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
6718
6719 * mangle.c (static tree compression_table): Fixed leading comment.
6720 * parse.h (struct parser_ctxt): Fixed field comment.
6721 * parse.y (check_pkg_class_access): New prototype, fixed leading
6722 comment, new parameter used to emit error only if passed as true.
6723 (parse_check_super): Pass extra argument to check_pkg_class_access.
6724 (do_resolve_class): Likewise.
6725 (process_imports): Likewise.
6726 (read_import_dir): Fixed indentation.
6727 (find_in_imports_on_demand): New local class_type_name. Local
6728 node_to_use deleted. while loop changed into for loop. Report
6729 multiple definition only for accessible classes. Improved error
6730 message.
6731 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
6732 assigned to parameter list, fixed indentation. while loop changed
6733 into for loop, restore TREE_CHAIN on local `tem' before the next
6734 iteration.
6735
62c9aa5f 67362001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8ac61af7
RK
6737
6738 * lang.c (lang_get_alias_set): Deleted.
6739
0df6c2c7
KG
67402001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6741
299b5f9e
KG
6742 * gjavah.c (jni_print_char): Fix thinko in last change.
6743
0df6c2c7
KG
6744 * gjavah.c (jni_print_char, decode_signature_piece): Use
6745 safe-ctype macros and/or fold extra calls into fewer ones.
6746 * lex.c (java_read_unicode, java_lex): Likewise.
6747 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
6748 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
6749 * mangle_name.c (append_unicode_mangled_name,
6750 unicode_mangling_length): Likewise.
6751
17ed6335
RH
67522001-10-17 Richard Henderson <rth@redhat.com>
6753
6754 * Make-lang.in (java/lang.o): Depend on langhooks.h.
6755
c83303d8
APB
67562001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com>
6757
6758 * lang.c (langhooks.h): Included.
6759 (LANG_HOOKS_INIT): Redefined.
6760 (LANG_HOOKS_INIT_OPTIONS): Likewise.
6761 (LANG_HOOKS_DECODE_OPTION): Likewise.
6762 (struct lang_hooks lang_hooks): New initialization.
6763
be98560f
PB
67642001-10-11 Per Bothner <per@bothner.com>
6765
89b894e1
PB
6766 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
6767 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
6768 The former is simpler, and jcf-write.c handles it better.
6769 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
6770 or WITH_CLEANUP_EXPR.
6771 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no
6772 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
6773
be98560f
PB
6774 * parse.y (patch_if_else_statement): If the condition is constant,
6775 optimize away the test.
6776
3fb5c0eb
APB
67772001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
6778
6779 * parse.y (patch_cast): Call patch_string on the first operand of
c83303d8 6780 the incoming node, update it if necessary. Fixes PR java/4510.
3fb5c0eb 6781
908fecca
BM
67822001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
6783
6784 * parse.y (find_as_inner_class): Don't disregard the enclosing scope
6785 when name qualifier matches a package name.
6786
f3ca28bf
TT
67872001-10-08 Tom Tromey <tromey@redhat.com>
6788
6789 Fix for PR java/4489:
6790 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
6791 force a new label when computing `body_block'.
6792
8b60264b
KG
67932001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6794
6795 * jcf-io.c (format_uint): Const-ify.
6796 * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
6797 * lex.c (java_get_line_col): Likewise.
6798 * parse.y (build_incdec): Likewise.
6799
3fb5c0eb
APB
68002001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
6801
6802 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
c83303d8 6803 a NULL enclosing context if appropriate. Fixes PR java/4466.
3fb5c0eb 6804
7754e0a9
APB
68052001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
6806
6807 * parse.y (patch_assignment): Use lvalue's original TYPE when
6808 building the final COMPOUND_EXPR.
6809 (try_reference_assignconv): Fixed leading comment.
6810
e9546ca4
APB
68112001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
6812
6813 * parse.y (check_final_variable_indirect_assignment): For
6814 COMPOUND_EXPR, return only if finals were found initialized
6815 properly, if not, keep on checking.
6816 (check_final_variable_global_assignment_flag): New local
6817 error_found, set when appropriate and used to decide whether to
6818 report uninitialized finals. Fixed typo in comment.
6819
f6a67a81
APB
68202001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com>
6821
6822 * decl.c (init_decl_processing): Fixed typo in predef_filenames
6823 last three initializations. Fixes PR java/4360.
6824
67231816
RH
68252001-09-21 Richard Henderson <rth@redhat.com>
6826
6827 * class.c (get_dispatch_table): Handle function descriptors.
6828 (build_dtable_decl): Likewise.
6829 * expr.c (build_invokevirtual): Likewise.
6830
870a5b8a
APB
68312001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com>
6832
6833 * parse.y (patch_method_invocation): Build class initialization
6834 when static finals are used to qualify method invocation.
6835 Fixes PR java/4366.
6836
2e3b2d2c
APB
68372001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
6838
6839 * parse.h: (WFL_STRIP_BRACKET): Re-written using
6840 build_type_name_from_array_name.
6841 (STRING_STRIP_BRACKETS): New macro.
6842 * parse.y (build_type_name_from_array_name): New function.
6843 (array_creation_expression:): Accumulate []s instead of [s.
6844 (cast_expression:): Accumulate []s instead of [s after cast type
6845 name.
6846 (build_array_from_name): Local string deleted, use
6847 build_type_name_from_array_name.
6848 (build_unresolved_array_type): Accumulate []s instead of [s after
6849 type name.
6850 (register_fields): Fixed comment.
6851 (resolve_class): Local name, base deleted, new locals tname and
6852 array_dims. Use build_type_name_from_array_name. Use array_dims to
6853 build array type.
6854 (purify_type_name): Use STRING_STRIP_BRACKETS.
6855
e64c46ce
AJ
68562001-09-18 Andreas Jaeger <aj@suse.de>
6857
6858 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
6859 * jv-scan.c: Likewise.
6860
3fb5c0eb
APB
68612001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
6862
6863 * parse.y (patch_method_invocation): Inner class creation context
6864 check not enforced within constructors. Fixes PR java/1873.
6865
7a91449c
TT
68662001-09-16 Tom Tromey <tromey@redhat.com>
6867
6868 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
6869 NOTE_PUSH for single-case push. Fixes PR java/4189.
6870
653d5d95
APB
68712001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
6872
6873 * java-tree.h (TYPE_IMPORT_LIST): New macro.
6874 (TYPE_IMPORT_DEMAND_LIST): Likewise.
6875 (struct lang_type): New fields import_list and import_demand_list.
6876 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
6877 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
6878 (do_resolve_class): New local saved_enclosing_type, initialized,
6879 passed as parameter to find_in_imports and find_in_imports_on_demand.
6880 (find_in_imports): Added paramater enclosing_type, use its
6881 TYPE_IMPORT_LIST when applicable.
6882 (find_in_imports_on_demand): Added parameter enclosing_type, use
6883 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
6884 declaration and initialization.
6885 (fold_constant_for_init): Switch/restore current_class to the
6886 appropriate context.
6887
6d334db8
MM
68882001-09-13 Mark Mitchell <mark@codesourcery.com>
6889
6890 * verify.c (verify_jvm_instructions): Fix typo.
6891
83182544
KG
68922001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6893
6894 * expr.c (expand_invoke): Const-ification.
6895 * parse.y (patch_method_invocation): Likewise.
6896
fd033052
KG
68972001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6898
6899 * gjavah.c (cxx_keywords): Const-ification.
6900 * keyword.gperf (java_keyword): Likewise.
6901 * lang.c (java_tree_code_name): Likewise.
6902 * lex.c (cxx_keywords): Likewise.
6903 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
6904
fcbc317f
RH
69052001-09-11 Richard Henderson <rth@redhat.com>
6906
6907 * parse.h (ctxp_for_generation): Mark extern.
6908
c347e68d
RH
69092001-09-10 Richard Henderson <rth@redhat.com>
6910
6911 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
6912
6a9f6727
MK
69132001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
6914
6915 * typeck.c (java_array_type_length, build_prim_array_type):
6916 Represent empty arrays by NULL index.
6917
0ef02b2d
APB
69182001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com>
6919
6920 * java-tree.h (compile_resource_file): Grouped with other prototypes.
e64c46ce 6921 * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
0ef02b2d 6922
f2767a67
AG
69232001-09-06 Anthony Green <green@redhat.com>
6924
6925 * class.c (O_BINARY): Define if necessary.
6926 (registerResource_libfunc): Declare.
6927 (init_class_processing): Initilize registerResource_libfunc.
6928 (compile_resource_file): New function.
6929 * java-tree.h (resource_name): Declare.
6930 (compile_resource_file): Declare.
6931 * jcf-parse.c (yyparse): Handle compiling java resource files.
6932 * lang.c (java_decode_option): Handle -fcompile-resource option.
6933 * jvspec.c (lang_specific_driver): Handle -R flag for compiling
6934 resource files.
6935 * gcj.texi (Code Generation): Add documentation for -R flag.
6936
731866ba
APB
69372001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
6938
6939 * jcf-write.c (generate_classfile): Issue an error in case of
6940 field/initial value mismatch.
6941 * parse.y (analyze_clinit_body): Keep <clinit> if an array is
6942 being initialized and we're generating bytecode.
6943 (java_complete_lhs): In MODIFY_EXPR section: added comments,
6944 set DECL_INITIAL properly when appropriate.
6945 Fixes PR java/4230
6946 Fixes PR java/4204
6947
0286a91d
PB
69482001-09-01 Per Bothner <per@bothner.com>
6949
6950 * parse.y (maybe_yank_clinit): A field without an initializer is not
6951 relevant. All initializers except static final and constant require
6952 <clinit>, regardless of flag_emit_class_files.
6953
289b57ee
PB
69542001-08-31 Per Bothner <per@bothner.com>
6955
67264b4f 6956 * class.c (set_constant_value): When not emitting class files, then a
289b57ee
PB
6957 String ConstantValue is a utf8const_ptr_type.
6958
be0c7ff4
PB
69592001-08-30 Per Bothner <per@bothner.com>
6960
6961 * jcf-write.c (generate_classfile): Check that field is primitive
6962 or string before emitting ConstantValue attribute.
e64c46ce 6963
f0cdee96
PB
69642001-08-30 Per Bothner <per@bothner.com>
6965
6966 * parse.y (resolve_qualified_expression_name): If creating a
6967 COMPOUND_EXPR, set it's type correctly.
6968
bc8a5e56
PB
69692001-08-30 Per Bothner <per@bothner.com>
6970
6971 * jcf-io.c (open_class): Set filename field.
6972
6973 * jcf-parse,c (parse_class_file): Set current_function_decl
6974 for better error message when Code attribute is missing.
6975
6976 * lang.c (put_decl_node, lang_print_error): Re-arrange for
6977 better diagnostics, especially for constructors.
e64c46ce 6978
1b9ee723
PB
69792001-08-30 Per Bothner <per@bothner.com>
6980
6981 * jcf-write.c (generate_classfile): Don't write ConstantValue
6982 attribute if field is not final, for compatibility with jdk.
6983
6984 * jcf-write.c (generate_classfile): Convert ConstantValue values
6985 to correct type. Work-around for front-end bug.
6986 * class.c (set_constant_value): Error if constant has wrong type.
6987
6e4302ec
PB
69882001-08-30 Per Bothner <per@bothner.com>
6989
6990 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and
6991 "Double" are printed at verbosity 1.
6992
6993 * jcf-dump.c (main): Disable flag_print_attributes if --javap.
6994
6995 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long.
6996
3ed218d4
APB
69972001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
6998
6999 * parse.y (patch_assignment): Don't verify final re-assignment here.
7000 (java_complete_lhs): Verify assignments to finals calling
7001 patch_assignment. Verify re-assignments to finals before calling
7002 patch_assignment.
7003
70042001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
7005
7006 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
7007 Fixes PR java/1413
7008
70092001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
7010
7011 * lex.c (java_lex): new local found_hex_digits. Set and then used
7012 in test to reject invalid hexadecimal numbers.
7013 * parse.y (java_complete_tree): Prevent unwanted cast with
7014 initialized floating point finals.
7015 (patch_binop): Emit a warning when detecting a division by zero,
7016 mark result not constant, don't simplify non integer division.
7017
1a27eec1
PB
70182001-08-28 Per Bothner <per@bothner.com>
7019
7020 * jcf-write.c (generate_bytecode_insns): For increments and
9a07cfaf 7021 decrements just recurse to push constant. Improvement on Mark's patch.
1a27eec1 7022
06657dcd
MM
70232001-08-28 Mark Mitchell <mark@codesourcery.com>
7024
7025 * jcf-write.c (generate_bytecode_insns): Generate an integer to
7026 real conversion for increments and decrements of reals.
7027
1ca09b48
APB
70282001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
7029
7030 * parse.y (resolve_qualified_expression_name): Handle unresolved
7031 qualified expressions, prevent numerical qualifiers, fixed typo.
7032 Fixes PR java/4141
7033
7b02957e
APB
70342001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
7035
7036 * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
7037 don't report anything but deprecated class when marked so. Handle
7038 VAR_DECL.
7039 (patch_method_invocation): Check deprecation on methods and types.
7040 (patch_binop): code becomes an enum tree_code, added default: to
7041 switch to handle that. Detect division by zero, try to fold and
7042 return before using a subroutine.
7043
496849ba
APB
70442001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
7045
7046 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
e64c46ce 7047 file smaller than 4 bytes.
496849ba
APB
7048 * parse.y (check_inner_circular_reference): New function.
7049 (check_circular_reference): Likewise.
7050 (array_initializer:): Accept {,}.
7051 (java_check_circular_reference): Rewritten using
7052 check_circular_reference and check_inner_circular_reference.
7053 (java_complete_expand_method): Unconditionally save and restore
7054 the unpurged exception list.
7055 (build_dot_class_method_invocation): Unmangle signature parameter.
7056
66b461ce
TT
70572001-08-21 Tom Tromey <tromey@redhat.com>
7058
7059 * decl.c (init_decl_processing): Add `throws' field to method
7060 descriptor.
7061 * class.c (make_method_value): Compute `throws' field for method.
7062
df1c5346
APB
70632001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
7064
7065 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
7066 circularity is detected.
7067 (ctors_unchecked_throws_clause_p): Fixed leading comment.
7068
c8af3574
RH
70692001-08-17 Richard Henderson <rth@redhat.com>
7070
7071 * class.c (emit_register_classes): Add align parameter to
7072 call to assemble_integer.
7073
17126208
APB
70742001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com>
7075
7076 * jcf-parse.c (load_class): New locals saved and class_loaded. If
7077 loading a class_or_name fails, try considering an innerclass name
7078 and load the enclosing context.
7079 * parse.y (resolve_inner_class): New function.
7080 (find_as_inner_class): Added leading comment.
7081 (register_incomplete_type): Keep the current context as enclosing
7082 context for JDEP_FIELD dependencies.
7083 (do_resolve_class): Locals new_class_decl and super initialized to
7084 NULL. Call resolve_inner_class, explore the enclosing context
7085 superclass if necessary.
7086 Fixes PR java/4007
7087
4266d0b2
TT
70882001-08-16 Tom Tromey <tromey@redhat.com>
7089
7090 * jcf-dump.c (main): Updated for change to jcf_path_seal.
7091 * gjavah.c (main): Updated for change to jcf_path_seal.
7092 * lang.c (version_flag): New global.
7093 (java_decode_option): Recognize `-version'.
7094 (java_init): Update for change to jcf_path_seal.
7095 * jcf.h (jcf_path_seal): Added `print' argument.
7096 * jcf-path.c (jcf_path_seal): Added `print' argument.
7097
e78d8e51
ZW
70982001-08-13 Zack Weinberg <zackw@panix.com>
7099
7100 * Make-lang.in (java/decl.o): Update dependencies.
7101 * decl.c: Include libfuncs.h, don't include toplev.h.
7102
17126208
APB
71032001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com>
7104
7105 * decl.c (init_decl_processing): exception_type_node,
7106 class_not_found_type_node, and no_class_def_found_type_node
7107 initialized. predef_filenames augmented accordingly.
7108 instinit_identifier_node initialized.
7109 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
7110 * java-tree.h (enum java_tree_index): New entries
7111 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
7112 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
7113 (exception_type_node): New macro.
7114 (class_not_found_type_node): Likewise.
7115 (no_class_def_found_type_node): Likewise.
7116 (instinit_identifier_node): Likewise.
7117 (PREDEF_FILENAMES_SIZE): Adjusted.
7118 (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
7119 (struct lang_type): Fixed typo in bitfield name.
7120 (DECL_INSTINIT_P): New macro.
7121 (ID_INSTINIT_P): Likewise.
7122 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
7123 attribute.
7124 * parse.y (encapsulate_with_try_catch): New function.
7125 (generate_instinit): Likewise.
7126 (build_instinit_invocation): Likewise.
7127 (ctors_unchecked_throws_clause_p): Likewise.
7128 (add_instance_initializer): Deleted.
7129 (build_instance_initializer): Likewise.
7130 (in_instance_initializer): Likewise.
7131 (check_method_redefinition): instinit$ not to be verified.
7132 (java_complete_expand_methods): Generate instinit$, simplified code.
7133 (build_dot_class_method): Eliminated unnecessary locals. Use
7134 encapsulate_with_try_catch, removed unnecessary code.
7135 (fix_constructors): New local iii. Use build_instinit_invocation.
7136 (patch_method_invocation): Added comment.
7137 (maybe_use_access_method): Don't consider instinit$.
7138 (find_applicable_accessible_methods_list): Shorten the search for
7139 instinit$ too.
7140 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
7141 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
7142 (patch_throw_statement): Likewise. Fixed typo.
e64c46ce 7143
6ba57472
DE
71442001-08-12 David Edelsohn <edelsohn@gnu.org>
7145
7146 Revert:
7147 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7148 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
7149 ASM_FINAL_SPEC.
7150 (lang_specific_pre_link): Use set_input to set input_filename.
7151 Append `main' here.
7152 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
7153 (main): Fix definition.
7154 Strip `main' from classname.
7155 Fixes PR java/227.
7156
94aca342
ZW
71572001-08-11 Zack Weinberg <zackw@panix.com>
7158
7159 * lex.h: Don't include setjmp.h. Don't define
7160 SET_FLOAT_HANDLER or prototype set_float_handler.
7161
17126208
APB
71622001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com>
7163
7164 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
7165 `poplevel' in the right order.
7166
2cc07db4
RH
71672001-08-09 Richard Henderson <rth@redhat.com>
7168
7169 * Make-lang.in (class.o): Depend on TARGET_H.
7170 * class.c (emit_register_classes): Use target hooks instead of
7171 assemble_constructor and assemble_destructor.
7172
4009bb7d
APB
71732001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com>
7174
7175 * check-init.c (flags.h): Include
7176 (check_init): Don't report uninitialized static class
7177 initialization flags, don't free bit index when doing static class
7178 initialization optimization.
7179 (check_for_initialization): Return type changed to `unsigned int.'
7180 (attach_initialized_static_class): New function.
7181 * class.c (add_method_1): Create the initialized static class
7182 table if necessary.
7183 (finish_class): Always emit deferred inline methods.
7184 * decl.c (emit_init_test_initialization): Moved to expr.c
7185 (complete_start_java_method): Don't traverse
7186 DECL_FUNCTION_INIT_TEST_TABLE.
7187 (lang_mark_tree): Mark hash tables in function decls.
7188 * expr.c (emit_init_test_initialization): Moved from decl.c.
7189 (build_class_init): Create LAG_DECL_SPECIFIC for the static class
7190 initialization flag, set DECL_CONTEXT and
7191 LOCAL_CLASS_INITIALIZATION_FLAG.
7192 (java_lang_expand_expr): Emit initialization code for static class
7193 initialized flags when entering block, if necessary.
7194 * gcj.texi (-fno-optimize-static-class-initialization): Documented.
7195 * java-tree.h (flag_optimize_sci): New global variable declaration.
7196 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
7197 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
7198 (LOCAL_FINAL_P): Fixed typo in comment.
7199 (FINAL_VARIABLE_P): Likewise.
7200 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
7201 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
7202 (struct lang_decl): New fields `ict', `smic' and `cif.'
7203 (check_for_initialization): New returned value for global.
7204 (attach_initialized_static_class): New global function.
7205 (STATIC_CLASS_INIT_OPT_P): New macro.
7206 * lang-options.h (-fno-optimize-static-class-initialization): New flag.
7207 * lang.c (java_decode_option): Handle
7208 `-fno-optimize-static-class-initialization'
7209 * parse.y (start_complete_expand_method): New function.
7210 (java_expand_method_bodies): Likewise.
7211 (attach_init_test_initialization_flags): Likewise.
7212 (adjust_init_test_initialization): Likewise.
7213 (emit_test_initialization): Likewise.
7214 (java_complete_expand_methods): Nullify abstract and native method
7215 bodies.
7216 (java_complete_expand_method): New locals `fbody', `block_body'
7217 and `exception_copy.' Reorganized: directly return on empty method
7218 bodies, call `start_complete_expand_method', remember definitely
7219 initialized static class in function, don't expand method bodies.
7220 (java_expand_classes): Call `java_expand_method_bodies' before
7221 `finish_class' when compiling to native.
7222 (resolve_expression_name): Use `orig' after building outer class
7223 field access.
67264b4f 7224 (patch_invoke): Remember static method invocations.
4009bb7d 7225
47907859
RH
72262001-08-06 Richard Henderson <rth@redhat.com>
7227
9a07cfaf 7228 * class.c (emit_register_classes): Pass a symbol_ref and priority
47907859
RH
7229 to assemble_constructor.
7230
36e10d77
APB
72312001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
7232
7233 * java-tree.h (all_class_filename): New macro.
7234 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
7235 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
7236 newly created IDENTIFIER_NODE to `all_class_filename.'
7237
f2f25b6d
JS
72382001-08-01 Jeff Sturm <jsturm@one-point.com>
7239
9a07cfaf
RH
7240 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
7241 Use ggc_add_tree_root to register roots.
e64c46ce 7242
6ad7895a
APB
72432001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
7244
7245 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
7246 second operand calling check_init.
7247 * decl.c (complete_start_java_method): Swaped second and third
7248 arguments while creating WITH_CLEANUP_EXPR node.
7249 * jcf-write.c (generate_bytecode_insns): Use second operand
7250 instead of third when handling WITH_CLEANUP_EXPR.
7251 * parse.y (java_complete_lhs): Expand second operand of
7252 WITH_CLEANUP_EXPR nodes.
7253 (patch_synchronized_statement): Swaped second and third arguments
7254 while creating WITH_CLEANUP_EXPR node.
7255
9d7d8362
APB
72562001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
7257
7258 * parse.y (create_interface): Avoid cyclic inheritance report when
7259 syntax error encountered during class definition.
7260 Fixes PR java/2956
7261
578672a2
RO
72622001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7263
7264 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
7265 ASM_FINAL_SPEC.
7266 (lang_specific_pre_link): Use set_input to set input_filename.
7267 Append `main' here.
7268 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
7269 (main): Fix definition.
7270 Strip `main' from classname.
7271 Fixes PR java/227.
7272
6a65ea5b
TT
72732001-07-18 Tom Tromey <tromey@redhat.com>
7274
7275 For PR java/2812:
7276 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
7277 * lex.c (java_new_lexer): Use ICONV_CONST.
7278 (java_read_char): Likewise.
7279 * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
7280 (jv-scan$(exeext)): Likewise.
7281
9d7d8362
APB
72822001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
7283
7284 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
7285 * parse.y (check_class_interface_creation): Allow `private' if the
7286 enclosing is not an interface.
7287 (create_interface): Interface tagged public if the enclosing
7288 context is an interface.
7289 (create_class): Class tagged public if the enclosing context
7290 is an interface.
7291 Fixes PR java/2959
7292
72932001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
7294
7295 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
7296 Fixes PR java/2665
7297
e6290e74
TJ
72982001-07-14 Tim Josling <tej@melbpc.org.au>
7299
7300 * check-init.c (check_init): Remove references to EXPON_EXPR.
7301
9d7d8362
APB
73022001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
7303
7304 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
7305 TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
7306 Fixes PR java/3602
7307
4b2dc1b2
TT
73082001-07-13 Tom Tromey <tromey@redhat.com>
7309
7310 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
7311 invocation.
7312
b6e3e1ff
APB
73132001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
7314
7315 * parse.y (patch_method_invocation): Don't override primary if one
7316 is already provided, but let this$<n> be built. Fixed comment.
7317
73182001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
7319
7320 * parse.y (empty_statement:): Report empty statement error only
7321 when found at class declaration level.
7322 Fixes PR java/3635
7323
a3cb5122
TT
73242001-07-12 Tom Tromey <tromey@redhat.com>
7325
7326 * expr.c (expand_load_internal): New function.
7327 (LOAD_INTERNAL): Use it.
7328
29fcdaae
APB
73292001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com>
7330
7331 * parse.y (verify_constructor_super): Compare anonymous class ctor
7332 args with `valid_method_invocation_conversion_p.'
7333 Fixes PR java/3285
7334
2df37a59
APB
73352001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
7336
7337 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
7338 `-fsyntax-only.' Fixes PR java/3248
7339
73402001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
7341
7342 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
7343
73442001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
7345
7346 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
7347 current function is static. Fixes PR java/1970
7348
73492001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
7350
7351 * parse.y (patch_method_invocation): Add enclosing context to ctor
7352 calls if necessary. Fixes PR java/2953
7353
73542001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
7355
7356 * parse.y (resolve_package): Abort if qualified expression member
7357 isn't right.
7358 (qualify_ambiguous_name): Don't qualify as type if `this' in use.
7359 Fixes PR java/1391
7360
74d04dd1
ZW
73612001-07-07 Zack Weinberg <zackw@stanford.edu>
7362
7363 * verify.c: Don't use // comments.
7364
af418b8c
TT
73652001-07-05 Tom Tromey <tromey@redhat.com>
7366
7367 * lang.c (flag_assume_compiled): Removed.
7368 * java-tree.h (flag_assume_compiled): Removed.
7369 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
7370 -fhash-synchronization, -fuse-divide-subroutine,
7371 -fcheck-references, -femit-class-file, -femit-class-files,
7372 -fassume-compiled. Updated --encoding information. Changed
7373 -foutput-class-dir to `-d'.
7374
84a5b4f8
DB
73752001-07-04 Daniel Berlin <dan@cgsoftware.com>
7376
7377 * jcf-parse.c (parse_class_file): Add lineno parameter to
7378 debug_start_source_file call.
7379
0671eaf6
JM
73802001-07-04 Joseph S. Myers <jsm28@cam.ac.uk>
7381
7382 * gcj.texi: Use gpl.texi.
7383 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
7384 dependencies and use doc/include in search path.
7385
9be7529d
JS
73862001-07-03 Jeff Sturm <jsturm@one-point.com>
7387
7388 * parse.y (fix_constructors): Test if a CALL_EXPR invokes
7389 `this'. If so, don't build instance initializers.
7390
51e23701
APB
73912001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com>
7392
7393 * parse.y (resolve_expression_name): Improved error message for
2df37a59 7394 inner class cases. Fixes PR java/1958
51e23701 7395
46f018e1
GDR
73962001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
7397
7398 * lang.c: #include diagnostic.h
7399 (lang_print_error): Add a `diagnostic_context *' parameter.
7400 (java_dummy_print): Likewise.
7401 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
7402
51e23701
APB
74032001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
7404
7405 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
7406 * jcf.h (typedef struct JCF): New bitfield `finished.'
7407 (JCF_FINISH): Set `finished.'
7408 (JCF_ZERO): Reset `finished.'
7409 Fixes PR java/2633
7410
74112001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
7412
7413 * parse.y (class_body_declaration:): Don't install empty instance
7414 initializers.
7415 Fixes PR java/1314
7416
4a70e37e
APB
74172001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
7418
7419 * class.c (set_super_info): Call `set_class_decl_access_flags.'
7420 (set_class_decl_access_flags): New function.
7421 * java-tree.h (set_class_decl_access_flags): New prototype.
7422 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
7423 (parse_class_file): New local `decl_max_locals.' Take wide types
7424 into account to compute DECL_MAX_LOCALS.
7425 * parse.y (type_import_on_demand_declaration:): Ignore duplicate
7426 imports on demand.
7427
561a0365
JM
74282001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl>
7429
7430 * zipfile.h: Use GCC_JCF_H instead of JCF_H.
7431
8e41c4f3
APB
74322001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
7433
7434 * class.c (java_hash_tree_node): Fixed indentation in leading comment.
7435 * parse.y (do_resolve_class): Moved comments out to leading comment
7436 section. Removed local `start', New local `_ht' and
7437 `circularity_hash.' Record `enclosing' in hash table and search
7438 it to detect circularity. Use `enclosing' as an argument to
7439 `lookup_cl.' Free the hash table when done.
7440
c01b7cdf
TT
74412001-06-19 Tom Tromey <tromey@redhat.com>
7442
7443 * lex.c (java_read_char): Disallow invalid and overlong
7444 sequences. Fixes PR java/2319.
7445
21a6bb3c
JS
74462001-06-05 Jeff Sturm <jsturm@one-point.com>
7447
7448 * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
7449
0c90837b
APB
74502001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com>
7451
7452 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
7453 arguments accordingly.
7454
1347cc4f
JM
74552001-06-02 Joseph S. Myers <jsm28@cam.ac.uk>
7456
7457 * gcj.texi: Move contents to just after title page.
7458
12e248d6
APB
74592001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
7460
7461 * parse.y (type_literals:): Use `build_incomplete_class_ref' with
7462 builtin type.
7463 (patch_incomplete_class_ref): Build the class ref, build the class
7464 init if necessary, complete the tree.
7465 Fixes PR java/2605
7466
19559012
APB
74672001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
7468
7469 * parse.y (lookup_field_wrapper): Test `name' code.
7470 (resolve_qualified_expression_name): Test `qual_wfl' code.
7471 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
7472 handle `qual_wfl' by code.
7473 (maybe_build_primttype_type_ref): Test `wfl' code.
7474
eb153223
TP
74752001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7476
7477 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
7478 fdl.texi.
7479 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
7480 the dvi file in the java directory.
7481
88657302
RH
74822001-05-25 Sam TH <sam@uchicago.edu>
7483
7484 * gen-table.pl javaop.h jcf.h lex.h,
7485 parse.h: Fix header include guards.
7486
719f0fde
JM
74872001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
7488
7489 * jv-scan.c (version): Update copyright year.
7490
075516bc
PB
74912001-05-21 Per Bothner <per@bothner.com>
7492
7493 * jcf-parse.c (read_class): If class is from .class or .zip file
7494 and it's already been read, don't push/pop parser context.
7495
9d289604
PB
74962001-05-18 Per Bothner <per@bothner.com>
7497
7498 * jvspec.c (lang_specific_pre_link): Re-arrange the linker
9a07cfaf 7499 command line so the jvgenmain-generated main program comes first.
9d289604 7500
48187504
TT
75012001-05-15 Tom Tromey <tromey@redhat.com>
7502
7503 * class.c (build_utf8_ref): Don't generate identifier based on
7504 utf8const contents.
7505
f17f1898
RH
75062001-05-12 Richard Henderson <rth@redhat.com>
7507
7508 * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
7509 * expr.c (java_lang_expand_expr): Expand it.
7510 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
7511 calling build_exception_object_ref.
7512 * parse.y (catch_clause_parameter): Likewise.
7513 (build_dot_class_method): Likewise.
7514 (try_reference_assignconv): Likewise.
7515 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
7516 * jcf-write.c (generate_bytecode_insns): Likewise.
7517
352b3f3f
APB
75182001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
7519
7520 * parse.y (build_unresolved_array_type): Set
7521 EXPR_WFL_QUALIFICATION on the newly created wfl.
7522 Fixes PR java/2538. Fixes PR java/2535.
7523
41ee0877
APB
75242001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
7525
17126208 7526 * parse.y (fix_constructors): Removed unnecessary assignment to
41ee0877
APB
7527 local. Moved assignment to `this$<n>', fixed comments and
7528 indentation.
7529 (build_wfl_wrap): Fixed indentation.
7530 Fixes PR java/2598, java/2579 and java/2658.
7531
4def8930
MD
75322001-05-03 Mo DeJong <mdejong@redhat.com>
7533
9a07cfaf 7534 * lex.c (java_new_lexer): Call iconv_close on temp handle used to
4def8930
MD
7535 check for byte swap.
7536
8fc6a63c
JS
75372000-05-02 Jeff Sturm <jsturm@one-point.com>
7538
7539 * expr.c (build_class_init): Move MODIFY_EXPR
7540 outside of COND_EXPR. Remove variable `call'.
7541
3e411c3f
KG
75422001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7543
7544 * decl.c: NULL_PTR -> NULL.
7545 * jcf-write.c: Likewise.
7546
0cd015ea
TT
75472001-05-01 Tom Tromey <tromey@redhat.com>
7548
7549 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
7550 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
7551 * gcj.texi: Updated copyright text. Include fdl.texi.
7552 (Top): Link to new node.
7553
6a117d00
PB
75542001-05-01 Per Bothner <per@bothner.com>
7555
7556 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon.
7557
063df563
PB
75582001-05-01 Per Bothner <per@bothner.com>
7559
7560 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the
7561 import_list contains the name, not the TREE_PURPOSE.
7562
962584ea
KG
75632001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7564
7565 * jcf-io.c (read_zip_member): Cast to long in comparison with
7566 signed value.
7567
7568 * jvspec.c (lang_specific_driver): Initialize variables.
7569
7570 * mangle.c (find_compression_record_match): Likewise.
7571
7572 * typeck.c (build_null_signature): Provide static prototype. Mark
7573 parameter with ATTRIBUTE_UNUSED.
7574
7575 * verify.c (verify_jvm_instructions): Initialize variable.
7576
86d9e8d8
BM
75772001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
7578
7579 * parse.y (do_resolve_class): Check for cyclic inheritance during
e64c46ce 7580 inner class resolution.
86d9e8d8 7581
9c491eb8
PB
75822001-04-27 Per Bothner <per@bothner.com>
7583
7584 * parse.y (java_expand_classes): Don't change ctxp_for_generation
7585 while iterating, since that could cause gc to lose stuff.
7586
56fe39c8
PB
75872001-04-26 Per Bothner <per@bothner.com>
7588
7589 Fix method search wrt scope of inner classes to match JLS2.
7590 * typeck.c (build_null_signature): New static function.
7591 (has_method): New function. Uses build_null_signature and lookup_do.
7592 * java-tree.h (has_method): New declaration.
7593 * parse.y (find_applicable_accessible_methods_list): Do not search
7594 context of inner classes here.
7595 (patch_method_invocation): Search scope, ie. current and outer clases,
7596 for method matching simple name, to find class.
7597
8789b9fa
PB
75982001-04-26 Per Bothner <per@bothner.com>
7599
7600 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
7601 Fix thinko: If a single case, use if_icmpeq, not ifeq.
7602
7603 * constants.c (find_methodref_with_class_index): New function.
7604 (find_methodref_index): Use find_methodref_with_class_index.
7605 * java-tree.h (find_methodref_with_class_index): New declaration.
7606 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
7607 DECL_CONTEXT, instead use new find_methodref_with_class_index function.
7608 If context changed from interface to class, don't use invokeinterface.
7609
5acea42b
PB
76102001-04-25 Per Bothner <per@bothner.com>
7611
7612 * verify.c (verify_jvm_instructions): For field instructions,
7613 check that field index is valid. For invoke instructions, check that
7614 method index is valid.
7615
dd6f3662
AO
76162001-04-25 Alexandre Oliva <aoliva@redhat.com>
7617
7618 * config-lang.in (target_libs): Copy from $libgcj_saved.
7619
28f7d9d0
BM
76202001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
7621
7622 * decl.c (init_decl_processing): Add new class "protectionDomain"
7623 field.
7624 * class.c (make_class_data): Set initial value for "protectionDomain".
7625
d4c3ec27
KG
76262001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7627
7628 * jvspec.c (lang_specific_driver): Fix memory allocation
7629 deficit, by using concat in lieu of xmalloc/sprintf.
7630
3c0ce750
PB
76312001-04-20 Per Bothner <per@bothner.com>
7632
7633 Fixes to compile multiple .class files at once.
7634 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P.
7635 * java-tree.h (CLASS_PARSED_P): New macro.
7636 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P.
7637 * jcf-parse.c (jcf_parse_source): Inline into read_class.
7638 (read_class): Avoid some code duplication.
7639 Don't call JCF_FINISH for a .class file - might be needed later.
7640 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P
7641 rather than CLASS_LOADED_P, since latter implies class laid out.
7642 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2.
7643 * parse.y: Don't need to set CLASS_LOADED_P for array types.
7644
d6684bc8
KG
76452001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7646
7647 * Make-lang.in (java/boehm.o): Depend on toplev.h.
7648
7649 * boehm.c: Include toplev.h.
7650
10e2af38
TT
76512001-04-06 Tom Tromey <tromey@redhat.com>
7652 Alexandre Petit-Bianco <apbianco@redhat.com>
7653
7654 Fix for PR gcj/1404 and PR gcj/2332:
7655 * parse.y (build_array_from_name): If we use the type_wfl then
7656 accumulate dimensions from the original type as well.
7657 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
7658
2d9fea5d
TT
76592001-04-06 Tom Tromey <tromey@redhat.com>
7660
7661 * parse.y (analyze_clinit_body): Return true if the second operand
7662 of a METHOD_EXPR is nonzero.
7663
613bb86e
TT
76642001-04-06 Tom Tromey <tromey@redhat.com>
7665
7666 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
7667 directory.
7668 ($(srcdir)/java/parse.c): Likewise.
7669
8b66cd8f
APB
76702001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com>
7671
7672 * gcj.texi: Use `which-gcj' instead of `which-g77.'
7673 (version-gcc): Initialized.
7674 (which-gcj): Likewise.
7675
73c299fc
APB
76762001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
7677
7678 * java-tree.h (struct lang_decl): New macro
7679 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
7680 * parse.y (build_instance_initializer): New function.
7681 (add_instance_initializer): Use it.
7682 (java_fix_constructors): Set `current_class' before fix pass.
7683 (fix_constructors): Just return if already fixed. Move `super()'
67264b4f 7684 invocation ahead. Use `build_instance_initializer.'
73c299fc
APB
7685 Fixes PR java/1315.
7686
93a6eb78 76872001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
e64c46ce 7688
93a6eb78
APB
7689 * parse.y (resolve_qualified_expression_name): Pass field's
7690 DECL_CONTEXT to `not_accessible_p.'
7691 (not_accessible_p): Changed parameters order in `inherits_from_p'
67264b4f 7692 invocation.
93a6eb78 7693
4956c16e
AH
76942001-03-27 Andrew Haley <aph@cambridge.redhat.com>
7695
7696 * lang-options.h: Add flag_check_references.
7697
3cc48399
PB
76982001-04-04 Per Bothner <per@bothner.com>
7699
7700 * java-tree.h (CONSTANT_VALUE_P): New macro.
7701 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
7702 * parse.y (maybe_build_class_init_for_field): New static function.
7703 (resolve_expression_name, resolve_field_access): Use
e64c46ce 7704 maybe_build_class_init_for_field instead of build_class_init
3cc48399
PB
7705 This does not do the init if the field is compile-time-constant.
7706 (resolve_field_access): Simplify.
7707
7708 * parse.y (fold_constant_for_init): Merge test into switch.
7709
d02af173
ZW
77102001-04-03 Zack Weinberg <zackw@stanford.edu>
7711
7712 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
7713 on gansidecl.h.
7714 * buffer.c, jvgenmain.c: Don't include gansidecl.h.
7715
44a2150d
ZW
77162001-04-02 Zack Weinberg <zackw@stanford.edu>
7717
7718 * expr.c (pop_type_0): Save the result of the first
e64c46ce 7719 lang_printable_name call in a scratch buffer, so it
44a2150d
ZW
7720 won't be clobbered by the second call.
7721
de307574
APB
77222001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
7723
7724 * parse-scan.y (array_type:): Rewritten.
7725 (type_declaration:): `empty_statement' replaces `SC_TK.'
7726 (class_member_declaration:): `empty statement' added.
7727 (method_body:): Simplified.
7728 (static_initializer:): Likewise.
7729 (primary_no_new_array:): Use `type_literals.'
7730 (type_literals:): New rule.
7731 (dims:): Set and update `bracket_count.'
7732 Fixes PR java/1074. Fixes PR java/2412.
7733
2ff50199
APB
77342001-03-28 Hans Boehm <boehm@acm.org>
7735
7736 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
7737 (get_boehm_type_descriptor): Set type on returned value to be a
7738 pointer length integer.
7739
80122075
KG
77402001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7741
7742 * expr.c (pop_type_0): Call `concat' rather than building the
7743 string manually.
7744 (pop_type): Add format specifier in call to `error'.
7745
7746 * parse.y (patch_method_invocation): Avoid casting away
7747 const-ness.
7748
0f5c1ee4
JO
77492001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
7750
7751 * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
7752
52a11cbf
RH
77532001-03-28 Richard Henderson <rth@redhat.com>
7754
7755 IA-64 ABI Exception Handling:
7756 * Make-lang.in (except.o): Don't depend on eh-common.h.
7757 * check-init.c (check_init): Handle EXC_PTR_EXPR.
7758 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
7759 [soft_exceptioninfo_call_node]: Remove.
7760 [eh_personality_libfunc, lang_eh_runtime_type]: New.
7761 (end_java_method): No emit_handlers.
7762 * except.c (java_set_exception_lang_code): Remove.
7763 (method_init_exceptions): Don't call it.
7764 (prepare_eh_table_type): No CATCH_ALL_TYPE.
7765 (build_exception_object_ref): New.
7766 (expand_end_java_handler): Update for except.h name changes.
7767 (emit_handlers, expand_resume_after_catch): Remove.
7768 * expr.c (java_lang_expand_expr): Update for except.h name changes.
7769 (process_jvm_instruction): Use build_exception_object_ref.
7770 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
7771 (soft_exceptioninfo_call_node): Remove.
7772 (build_exception_object_ref): Declare.
7773 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
7774 soft_exceptioninfo_call_node. Move processing ...
7775 [EXC_PTR_EXPR]: ... here.
7776 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
7777 * parse.y (catch_clause_parameter): Use build_exception_object_ref.
7778 (source_end_java_method): No java_set_exception_lang_code or
7779 emit_handlers.
7780 (build_dot_class_method): Use build_exception_object_ref.
7781 (try_reference_assignconv): Check EXC_PTR_EXPR not
7782 soft_exceptioninfo_call_node.
7783
ce1c98ea
RH
77842001-03-28 Richard Henderson <rth@redhat.com>
7785
7786 * java-tree.h (throw_node): Define as a single member of
7787 java_global_trees instead of a separate array.
7788 (JTI_THROW_NODE): New.
7789 * decl.c (throw_node): Don't declare.
7790 (init_decl_processing): Init a scalar throw_node.
7791 Don't register it for gc.
7792 * check-init.c (check_init): Reference scalar throw_node.
7793 * expr.c (build_java_athrow): Likewise.
7794 * jcf-write.c (generate_bytecode_insns): Likewise.
7795 * parse.h (BUILD_THROW): Likewise.
7796
da7da8f9
RH
77972001-03-28 Richard Henderson <rth@redhat.com>
7798
7799 * decl.c (end_java_method): Do not save and restore
7800 flag_non_call_exceptions.
7801 * parse.y (source_end_java_method): Likewise.
7802 * lang.c (flag_exceptions): Don't declare.
7803 (java_init_options): Set flag_non_call_exceptions. Set
7804 flag_exceptions here ...
7805 (java_init): ... not here.
7806
531073e7
RH
78072001-03-27 Richard Henderson <rth@redhat.com>
7808
7809 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
7810 exceptions_via_longjmp.
7811
461fc4de
RH
7812 * lang.c (flag_new_exceptions): Don't declare it.
7813 (java_init_options): Or set it.
7814
c1e9f663
RH
78152001-03-27 Richard Henderson <rth@redhat.com>
7816
7817 * decl.c (end_java_method): Rename asynchronous_exceptions to
7818 flag_non_call_exceptions.
979988f3 7819 * parse.y (source_end_java_method): Likewise.
c1e9f663 7820
911e6107
KG
78212001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7822
7823 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
7824
b850de4f
MM
78252001-03-26 Mark Mitchell <mark@codesourcery.com>
7826
7827 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
7828
ce06965e
APB
78292001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
7830
7831 * parse.y (find_as_inner_class): Follow current package
7832 indications not to mistakingly load an unrelated class.
7833
cb9b7a8c
KG
78342001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7835
7836 * constants.c (PUTN): Use memcpy, not bcopy.
7837
7838 * lex.c (java_read_char): Use memmove, not bcopy.
7839
7840 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
7841
fa029f45
PB
78422001-03-23 Per Bothner <per@bothner.com>
7843
7844 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
7845 macro for better error pin-pointing.
7846 * java-tree.h: Fix typo in comment.
7847
7848 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
7849 Don't include jsr/goto in exception range.
7850 Check if start and end of exception range are the same (also TRY_EXPR).
7851 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
7852 However, do emit the following goto even if try_block is empty.
7853 Defer freeing exception_decl until after the finalizer, to make
7854 sure the local isn't reused in the finalizer. Fixes PR java/1208.
7855
7856 * parse.y (java_complete_lhs): If the try-clause is empty, just
7857 return the finally-clause and vice versa.
7858
b124f72e
APB
78592001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
7860
7861 * gcj.texi (Input Options): documented the check for attribute
7862 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
7863 * java-tree.h (flag_force_classes_archive_check): Declared extern.
7864 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
7865 (jcf_parse): Check for the right classes archive if necessary.
7866 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
7867 (jcf_parse_fields): Fixed indentation.
7868 * jcf-write.c (append_gcj_attribute): New function.
7869 (generate_classfile): Compute the attribute count, invoke
7870 `append_gcj_attribute'.
7871 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
ee142fe7 7872 turned into bit-fields. New bit-field `right_zip.'
b124f72e
APB
7873 (JCF_ZERO): Set `right_zip' to zero.
7874 * lang-options.h (-fforce-classes-archive-check): Added flag.
7875 * lang.c (flag_force_classes_archive_check): New flag.
7876 (lang_f_options): New entry `force-classes-archive-check.'
7877 Fixes PR java/1213.
7878
4ff17c6a
AH
78792001-02-07 Andrew Haley <aph@redhat.com>
7880
7881 * gcj.texi (Configure-time Options): Add -fcheck-references.
7882 * expr.c (build_java_indirect_ref): New function.
3e02b1c3 7883 (java_check_reference): New function.
4ff17c6a
AH
7884 (build_java_array_length_access): Use build_java_indirect_ref to
7885 check for null references.
7886 (build_java_arrayaccess): Likewise.
7887 (build_get_class): Likewise.
7888 (build_field_ref): Likewise.
7889 (invoke_build_dtable): Likewise.
7890 (build_invokeinterface): Likewise.
7891 * lang.c (lang_f_options): Add flag_check_references.
7892 * jvspec.c (jvgenmain_spec): Add flag_check_references.
7893 * java-tree.h (flag_check_references): New variable.
7894 * lang.c (flag_check_references): Likewise.
e64c46ce 7895 * parse.y (patch_invoke): Use java_check_reference.
3e02b1c3
AH
7896 (patch_assignment): Allow for extra nesting in
7897 _Jv_CheckArrayStore.
4ff17c6a 7898
f2a29271
BM
78992001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
7900
7901 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
7902 * lex.c (cxx_keywords): Likewise.
7903
2ff50199
APB
79042001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
7905
7906 * parse.y (qualify_ambiguous_name): Broaden `length'
7907 recognition. Help MODIFY_EXPR be resolved as expression names.
7908 Fixes PR java/2066. Fixes PR java/2400.
7909
60c87482
BM
79102001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
7911
e64c46ce 7912 * gjavah.c (process_file): Mark interface definitions with
60c87482
BM
7913 "__attribute__ ((java_interface))".
7914
96c6f628
APB
79152001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
7916
7917 * class.c (layout_class): Fixed push_super_field's second
7918 argument. Fixes PR java/2333.
7919 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
7920 too early to lay innerclasses out.
7921
7abecd65
TT
79222001-03-20 Tom Tromey <tromey@redhat.com>
7923 Alexandre Petit-Bianco <apbianco@redhat.com>
7924
7925 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
7926 inside an array reference. Insertion of the array store check
7927 rewritten. Fixes PR java/2299.
7928
4aed8938
TT
79292001-03-20 Tom Tromey <tromey@redhat.com>
7930
7931 * lex.c (java_read_unicode): Only accept leading `u's.
7932
ddd705d1
TT
79332001-03-20 Tom Tromey <tromey@redhat.com>
7934
7935 * jcf-parse.c (read_class): Initialize `class'.
7936
de83bf66
MK
79372001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
7938
7939 * jcf_parse.c (jcf_parse): Eliminate unused variable.
7940
92643fea
MM
79412001-03-19 Mark Mitchell <mark@codesourcery.com>
7942
7943 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
7944 (layout_class): Likewise.
7945 (layout_class_method): Likewise.
7946 (emit_register_classes): Likewise.
7947 * decl.c (builtin_function): Likewise.
7948 (give_name_to_locals): Likewise.
7949
54646811
PB
79502001-03-19 Per Bothner <per@bothner.com>
7951
80fc2e84
PB
7952 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
7953 before trying to load an inner class.
7954
54646811
PB
7955 Fixes to process to command-line .class files in two passes.
7956 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
7957 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
7958 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
7959 * class.c (is_compiled_class): Fix for renamed flag.
7960 * parse.y (maybe_create_class_interface_decl): Likewise.
7961 * jcf-parse.c (yyparse): Also set if compiling .class files.
7962 * jcf-parse.c (read_class); Read current_class.
7963 (jcf_parse): Make static.
7964 (load_inner_classes): New function, with code moved from jcf_parse,
7965 because we need to inner classes after the command-line files are read.
7966 (yyparse): Set finput to NULL when it doesn't need to be closed.
7967 Reduce use of main_jcf (basically only for archive) and
7968 use finput instead of main_jcf->read_state.
7969 Inline jcf_figure_file_type into yyparse.
7970 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
7971 Defer load_inner_classes and parse_class_file to a second pass,
7972 after we've correctly mapped command-line .clas fiels to classes.
7973 (jcf_figure_file_type): Removed.
7974 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
7975 (JCF_ZERO): Also clear zipd field.
7976 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
7977
79782001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
7979
7980 * jcf-parse.c (yyparse): Change ch from char * to char.
7981
8b1edcee
PB
79822001-03-19 Per Bothner <per@bothner.com>
7983
7984 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
7985 Add constructed filelist-file at end, following -xjava. Thus any .o
7986 and library files are not affected by the -xjava. Also wrap
54646811 7987 explicit @FILE with -xjava and -xnone.
8b1edcee 7988
6bc5f6cb
AH
79892001-03-19 Andrew Haley <aph@cambridge.redhat.com>
7990
9a07cfaf
RH
7991 * class.c (build_static_field_ref): Call make_decl_rtl() after
7992 setting the DECL_EXTERNAL flag.
6bc5f6cb 7993
daaaf29f
PB
79942001-03-17 Per Bothner <per@bothner.com>
7995
90f59043
PB
7996 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
7997
478e7ed6
PB
7998 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
7999 when result is is needed (target is STACK_TARGET).
8000
daaaf29f 8001 * parse.h (JDEP_SOLV): Removed.
d148b6aa 8002 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
daaaf29f 8003
d148b6aa
PB
8004 * parse.y (incomplete_class_list): Removed.
8005 (obtain_incomplete_type): Don't use or set incomplete_class_list.
8006 It doesn't work if resolve_class changes the name of an array type
8007 that is on the list and then someone else looks for the modified name.
8008 Also, seems liable to break when compiling multiple source files at
8009 once. So the simplest is to just remove incomplete_class_list -
8010 it is only a minor space win and it is not even clear it saves time.
daaaf29f
PB
8011
8012 * parse.y (resolve_class): Remove unneeded promote_type.
8013
4763d38f
PB
80142001-03-15 Per Bothner <per@bothner.com>
8015
b16e8f08
PB
8016 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
8017 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
8018 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
8019 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
8b1edcee 8020
3a2e5926
PB
8021 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
8022 * parse.y (java_expand_classes): Likewise.
8b1edcee 8023
47a50de9
PB
8024 * parse.y (expand_start_java_method): Was only called once and had a
8025 misleading name, so inline in caller java_complete_expand_method.
3a2e5926 8026 (enter_a_block): Likewise inline in enter_block and remove.
47a50de9 8027
4763d38f
PB
8028 Remove junk from when gcc/java was created (by copying from C/C++).
8029 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
8030 (struct binding_level): Remove fields keep, keep_if_subblocks,
8031 more_cleanups_ok, have_cleanups (which have never been used).
8032 (pushlevel, poplevel): Remove related useless code.
19f8e04b 8033
69ca5554
PB
8034 * class.c (make_class_data): The class_dtable_decl (i.e. the
8035 vtable for Class) should be external, except when compiling Class.
8036
7d32abcd
PB
8037 * jvspec.c (lang_specific_driver): Fix -C handling.
8038 Check -save-temps to see if temp @FILE should be deleted.
8039 Follow-up to/fix for February 16 patch.
8040
19f8e04b
PB
8041 * verify.c (verify_jvm_instructions): Better error msgs for dup.
8042 (type_stack_dup): Remove no-longer neded error check.
8043
551bf03c
BM
80442001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
8045
8046 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
8047 to 'for_pointer'. If this type is for a pointer (argument) mangling,
e64c46ce 8048 don't surround the element with 'N..E' if the type name is
551bf03c
BM
8049 unqualified.
8050
19e7881c
MM
80512001-03-14 Mark Mitchell <mark@codesourcery.com>
8052
d1d61788
MM
8053 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
8054 DECL_RTL_SET_P, etc.
19e7881c
MM
8055 (make_method_value): Likewise.
8056 (get_dispatch_table): Likewise.
8057
8058 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
8b1edcee 8059
bcacc465
TT
80602001-03-07 Tom Tromey <tromey@redhat.com>
8061
8062 * config-lang.in (lang_requires): Define.
8063
de6c5979
BL
80642001-03-07 Brad Lucier <lucier@math.purdue.edu>
8065
8066 * typeck.c (convert): Check flag_unsafe_math_optimizations,
8067 not flag_fast_math.
8068
6d37cf2f
PB
80692001-03-05 Per Bothner <per@bothner.com>
8070
8071 Fix a problem where rest_of_decl_compilation applied to
8072 class_dtable_decl causes problems because it was done too early,
8073 before output file was opened.
8074 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
8075 * class.c (class_dtable_decl): Add macro - element of class_roots.
8076 (make_class_data): Define class_dtable_decl.
8077 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
8078
d6edb99e
ZW
80792001-03-01 Zack Weinberg <zackw@stanford.edu>
8080
8081 * java/class.c, java/decl.c, java/java-tree.h: Replace all
8082 uses of 'boolean' with 'bool'.
8083
f7143427
ZW
80842001-03-01 Zack Weinberg <zackw@stanford.edu>
8085
8086 * lang-specs.h: Add zero initializer for cpp_spec field to all
8087 array elements.
8088
fea2d5da
PB
80892001-02-16 Per Bothner <per@bothner.com>
8090
8091 Handle compiling multiple input files at once, and @FILE syntax.
e4087691 8092 * gcj.texi: Updated documentation to match.
fea2d5da
PB
8093 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
8094 * jcf-parse.c (parse_source_file): Split into ...
8095 (parse_source_file_1): New function - and:
8096 (parse_source_file_2): New function.
8097 (yyparse): On -ffilelist-file, open and scan named file.
8098 On first pass over files, only do parse_source_file_1.
8099 A new second pass calls parse_source_file_2 for each file to compile.
8100 (init_jcf_parse): Call init_src_parse.
8101 * jvspec.c (INDIRECT_FILE_ARG): New flag.
8102 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
8103 as multiple input file combined in one compilation.
8104 * lang-options.h: Add -ffilelist-file
8105 * lang.c (flag_filelist_file): New flag variable.
8106 (lang_f_options): Handle -ffilelist-file.
8107 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
8108 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
8109 gclass_list - use global fields of src_parse_roots instead.
8110 * parse.y (src_parse_roots): New array.
8111 (incomplete_class_list, gclass_list): New macros.
8112 (push_parser_context, java_pop_parser_context,
8113 java_parser_context_resume): Don't fiddle with deleted fields.
8114 (various): Use incomplete_class gclass_list and global macros
8115 instead of parse_ctxt fields - the lists are global.
8116 (init_src_parse): New function.
8117
62c9aa5f 81182001-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9b58f739
RK
8119
8120 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
8121
064a552c
APB
81222001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
8123
8124 * parse.y (check_inner_class_access): Moved declaration of local
8125 `enclosing_decl_type' to the right location.
8126
a648f4e4
BM
81272001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
8128
e64c46ce 8129 * parse.y (parser_check_super_interface): Don't call
a648f4e4 8130 check_pkg_class_access for an inner interface.
e64c46ce 8131 (parser_check_super): Don't call check_pkg_class_access for inner
a648f4e4 8132 class.
e64c46ce 8133 (do_resolve_class): Simplify enclosing type loop. Don't call
a648f4e4
BM
8134 check_pkg_class_access if CL and DECL are not set.
8135 (find_in_imports_on_demand): Set DECL if class_type needed to be
8136 loaded. Don't call check_pkg_class_access for an inner class.
8137 (check_inner_class_access): Rewritten to implement member access
8138 rules as per spec 6.6.1.
8139 (check_pkg_class_access): Handle the empty package correctly.
8140 (in_same_package): New function. Determine if two classes are in the
8141 same package.
8142
35ab11f0
BM
81432001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
8144
8145 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
8146 method into array types.
8147 * parse.y (patch_method_invocation): Bypass access check on clone call
8148 to array instance.
e64c46ce 8149
055adbaa
APB
81502001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
8151
8152 * expr.c (build_instanceof): Check for arrays when trying fold to
8153 false.
8154
e658449e
JM
81552001-02-15 Jim Meyering <meyering@lucent.com>
8156
fd48c9b5
DD
8157 * Make-lang.in (java.install-common): Depend on `installdirs'.
8158 (java.install-info): Likewise.
e658449e 8159
4238a754
BM
81602001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
8161
8162 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
8163
e101152f 81642001-02-14 Tom Tromey <tromey@redhat.com>
9a07cfaf 8165 Alexandre Petit-Bianco <apbianco@cygnus.com>
e101152f 8166
055adbaa
APB
8167 Fix for PR java/1261.
8168 * typeck.c (build_java_array_type): Add public `clone' method to
8169 arrays.
8170 * parse.y (resolve_qualified_expression_name): Use current_class
e101152f 8171 when checking for inaccessibility.
055adbaa 8172 (patch_method_invocation): Fixed error message when accessibility
e101152f
APB
8173 denied. Added `from_super' argument.
8174
81752001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
8176
8177 * parse.y (resolve_class): Don't build a fake decl. Use the one
8178 already built.
8179 * typeck.c (build_java_array_type): Build and assign decl to array
8180 type.
8181
81822001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
8183
8184 * parse.y (not_accessible_p): Changed leading comment. Added extra
8185 `where' argument. Use it to enforce protected access rules.
8186 (resolve_qualified_expression_name): Added extra argument to
8187 not_accessible_p.
8188 (patch_method_invocation): Use argument `primary' to provide
8189 not_accessible_p with an extra argument.
8190 (lookup_method_invoke): Added extra argument to not_accessible_p.
8191 (search_applicable_method_list): Likewise.
8192
863cd85a
APB
81932001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
8194
8195 * parse.y (resolve_qualified_expression_name): Try to resolve as
8196 an inner class access only if `decl' is a TYPE_DECL.
8197
94807d33
APB
81982001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
8199
8200 * decl.c (classdollar_identifier_node): Initialize.
e64c46ce 8201 * java-tree.h (enum java_tree_index): New entry
94807d33
APB
8202 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
8203 (classdollar_identifier_node): New macro.
8204 (ID_CLASSDOLLAR_P): Likewise.
8205 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
8206 (build_dot_class_method_invocation): Likewise.
8207 (find_applicable_accessible_methods_list): `class$' can't be
8208 inherited.
8209
30f87f1a
APB
82102001-02-09 Raja R Harinath <harinath@cs.umn.edu>
8211
8212 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
8213
82142001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
8215
8216 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
8217 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
8218 gone.
8219
1e97aa40
APB
82202001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
8221
8222 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
8223 outside of the `__U' sequence too.
8224 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
8225 sequence too.
8226
a395f5ab
APB
82272001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
8228
8229 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
8230
1b43b6be
APB
82312001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
8232
8233 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
8234 (JVGENMAIN_OBJS): Likewise.
e64c46ce 8235 * java-tree.h (append_gpp_mangled_name): New prototype.
1b43b6be
APB
8236 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
8237 Removed cast calling `gcc_add_root.'
8238 * jvgenmain.c (mangle_obstack): New global, initialized.
8239 (main): Use it.
8240 (do_mangle_class): Constify local `ptr.'
8241 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
8242 append_gpp_mangle_name and update `count' if necessary.
8243 Use `mangle_obstack.'
8244 * mangle.c (append_unicode_mangled_name): Removed.
8245 (append_gpp_mangled_name): Likewise.
8246 (unicode_mangling_length): Likewise.
8247 (mangle_member_name): Return type set to `void.'
8248 (mangle_field_decl): Don't append `U' in escaped names.
8249 (mangle_method_decl): Likewise.
8250 (mangle_member_name): Just use `append_gpp_mangled_name.'
8251 * mangle_name.c: New file.
8252
4a83be51
PB
82532001-02-07 Per Bothner <per@bothner.com>
8254
8255 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
8256
8257 * check-init.c (check_init): Don't call done_alternative after
8258 processing loop code, as a LOOP_EXPR never terminates normally.
8259
7e5fd99f
JM
82602001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
8261
8262 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
8263
1456345e
APB
82642001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
8265
8266 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
8267 DECLs.
8268
77aff9f9
TT
82692001-02-06 Tom Tromey <tromey@redhat.com>
8270
8271 * lex.c (java_new_lexer): Longer error message.
8272
c00dd14e
JS
82732001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
8274 Alexandre Petit-Bianco <apbianco@cygnus.com>
8275
8276 * typeck.c (build_prim_array_type): Added leading comment.
8277 (build_java_array_type): Moved locals out of
8278 block. Always create the `data' field, fixed alignment to match
8279 C++.
8280
6d091870
TT
82812001-02-04 Tom Tromey <tromey@redhat.com>
8282
8283 * expr.c (java_lang_expand_expr): Don't bother recomputing
8284 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
8285 Fixes PR java/1866.
8286
1ebb5e73
APB
82872001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
8288
8289 * parse.y (process_imports): Save the original name of the import
8290 for better error report.
8291
ca5b1ff8
BM
82922001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
8293
8294 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
8295 of macros used when compiling jvspec.c.
8296 * jvspec.c (lang_specific_driver): Link with the shared
8297 libgcc by default.
8298
62c9aa5f 82992001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
400500c4
RK
8300
8301 * check-init.c (check_init): Call internal_error instead of fatal.
8302 * expr.c (java_lang_expand_expr): Likewise.
8303 * jcf-parse.c (get_constant): Likewise.
8304 * mangle.c (java_mangle_decl): Likewise.
8305 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
8306 (operator_string): Likewise.
8307 * check-init.c (check_init): Call abort instead of fatal.
8308 * class.c (build_class_ref): Likewise.
8309 * constants.c (write_constant_pool): Likewise.
8310 * decl.c (start_java_method): Likewise.
8311 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
8312 (java_stack_dup, encode_newarray_type): Likewise.
8313 (build_java_array_length_access): Likewise.
8314 (build_java_check_indexed_type, expand_java_pushc): Likewise.
8315 (build_java_soft_divmod, build_invokeinterface): Likewise.
8316 * java-tree.h (INNER_CLASS_P): Likewise.
8317 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
8318 (give_name_to_class, get_class_constant): Likewise.
8319 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
8320 (find_constant_index, generate_bytecode_conditional): Likewise.
8321 (generate_bytecode_insns, perform_relocations): Likewise.
8322 * lex.c (java_unget_unicode, java_lex): Likewise.
8323 * mangle.c (mangle_type, mangle_record_type): Likewise.
8324 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
8325 (finish_mangling): Likewise.
8326 * parse.h (MARK_FINAL_PARMS): Likewise.
8327 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
8328 (obtain_incomplete_type, java_complete_class): Likewise.
8329 (java_check_regular_methods, java_complete_expand_method): Likewise.
8330 (cut_identifier_in_qualified, check_deprecation): Likewise.
8331 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
8332 (java_complete_lhs, lookup_name_in_blocks): Likewise.
8333 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
8334 * typeck.c (set_local_type, parse_signature_type): Likewise.
8335 (parse_signature_string, build_java_signature): Likewise;
8336 (set_java_signature): Likewise.
8337 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
8338 * class.c (add_method): Call fatal_error instead of fatal.
8339 (build_static_field_ref): Likewise.
8340 * expr.c (build_known_method_ref, expand_invoke): Likewise.
8341 * jcf-parse.c (get_constant, jcf_parse): Likewise.
8342 * lex.c (java_new_new_lexer): Likewise.
8343 * jv-scan.c (main): Likewise.
8344 (fatal_error): Renamed from fatal.
8345 * jcf-parse.c (yyparse): Call fatal_io_error instead of
8346 pfatal_with_name.
8347 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
8348 (yyparse): Likewise.
8349 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
8350 * lex.c (java_get_line_col): Likewise.
8351 * jcf-parse.c (load_class): Make errors non-fatal.
8352 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
e64c46ce 8353
4bae4eb5
BM
83542001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
8355
8356 * jvgenmain.c (class_mangling_suffix): Remove unused string.
8357 (error): Remove unused function.
8358 (main): Don't use "__attribute__ alias" on generated class symbol.
8359
c0b00d37
APB
83602001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
8361
8362 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
8363 argument.
8364 * parse.y (finish_method_declaration): Code accounting for WFLed
8365 method DECL_NAMEs deleted.
8366 (check_abstract_method_definitions): Likewise.
8367 (resolve_type_during_patch): Layout resolved type.
8368 * typeck.c (lookup_do): Removed unused local.
8369
4bae4eb5 83702001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
eb59e547
BM
8371
8372 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
8373 * decl.c (init_decl_processing): Use integer_minus_one_node, not
8374 integer_negative_one_node.
8375 * expr.c (build_java_binop): Likewise.
8376
4bae4eb5 83772001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
7be00c49
JS
8378
8379 * zextract.c (read_zip_archive): Read file_offset before writing
8380 zipd and consequently clobbering the header contents.
8381
c913b6f1
KG
83822001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8383
8384 * Make-lang.in: Remove all dependencies on defaults.h.
8385 * decl.c: Don't include defaults.h.
8386 * expr.c: Likewise.
8387 * parse.y: Likewise.
8388
c4faeb92
APB
83892001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
8390
8391 * ChangeLog (2001-01-21): Fixed typo.
8392 * class.c (layout_class_method): Code accounting for WFLed
8393 method DECL_NAMEs deleted.
8394 * constant.c (find_methodref_index): Likewise.
8395 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
8396 * java-tree.h (DECL_FUNCTION_WFL): New macro.
8397 (struct lang_decl): New field `wfl'.
8398 (java_get_real_method_name): Prototype deleted.
8399 * mangle.c (mangle_method_decl): Code accounting for WFLed
8400 method DECL_NAMEs deleted.
8401 * parse.h (GET_METHOD_NAME): Macro deleted.
8402 * parse.y (reset_method_name): Deleted.
8403 (method_header): Set DECL_FUNCTION_WFL.
8404 (check_abstract_method_header): Code accounting for WFLed method
8405 DECL_NAMEs deleted.
8406 (java_get_real_method_name): Deleted.
8407 (check_method_redefinition): Code accounting for WFLed method
8408 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
8409 (java_check_regular_methods): Likewise.
8410 (java_check_abstract_methods): Likewise.
8411 (java_expand_classes): Don't call `reset_method_name.'
8412 (search_applicable_method_list): Use DECL_NAMEs instead of
8413 GET_METHOD_NAME.
8414 * typeck.c (lookup_do): Code accounting for WFLed method
8415 DECL_NAMEs deleted.
8416
97876d66
RE
84172001-01-25 Richard Earnshaw <rearnsha@arm.com>
8418
8419 * lex.c (java_read_char): Check for EOF from getc first.
8420
493d561d
APB
84212001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
8422
8423 * class.c (layout_class): Don't lay the superclass out if it's
8424 already being laid out.
8425 * jcf-parse.c (handle_innerclass_attribute): New function.
8426 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
8427 handle_innerclasses_attribute.
8428 (jcf_parse): Don't load an innerclasses if it's already being
8429 laid out.
8430 * jcf-write.c (append_innerclass_attribute_entry): Static
8431 `anonymous_name' and its initialization deleted. `ocii' and `ini'
8432 to be zero for anonymous classes.
8433
84342001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
8435
8436 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
8437 necessary.
8438 * jcf-parse.c (set_source_filename): Use
8439 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
8440
84412001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
8442
8443 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
8444 gets a unique asm name.
8445
84462001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
8447
8448 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
8449 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
8450 if necessary.
8451 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
8452 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
8453 * parse.y (lookup_package_type_and_set_next): Deleted.
8454 (resolve_package): Removed unnecessary code.
8455 (find_applicable_accessible_methods_list): `finit$' can't be
e64c46ce 8456 inherited.
493d561d
APB
8457 * verify.c (pop_argument_types): Added missing prototype.
8458
7c01b2b5
BM
84592001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
8460
8461 * config-lang.in: Disable java by default.
8462
80261b56
TT
84632001-01-23 Tom Tromey <tromey@redhat.com>
8464
8465 * gcj.texi (Copying): New node.
8466 Added copyright information.
8467
a4796c80
PB
84682001-01-21 Per Bothner <per@bothner.com>
8469
8470 Various fixes to allow compiling a compressed .jar/.zip archive.
8471 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
8472 (struct ZipFile): Add fields name and next (from ZipFileCache).
8473 (struct ZipDirectory): New field zipf points to owning ZipFile.
8474 * jcf.h (struct ZipDirectory): Add forward declaration.
8475 (struct JCF): Declare zipd field to have type struct ZipDirectory.
8476 Remove seen_in_zip and zip_offset fields.
8477 (JCF_SEEN_IN_ZIP): New macro.
8478 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
8479 * jcf-io.c: Change all ZipFileCache to ZipFile.
8480 (read_zip_member): New function.
8481 (open_in_zip): Call read_zip_member.
8482 * jcf-parse.c (find_in_current_zip): Remove function.
8483 (read_class): Merge in find_in_current_zip functionality.
8484 Call read_zip_member if needed.
8485 (parse_zip_file_entries): Use read_zip_member.
8486 (process_zip_dir): Update for removed and added JCF fields.
8487 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
8488
b5c4fed9
PB
84892001-01-21 Per Bothner <per@bothner.com>
8490
8491 Minor optimization of static ggc roots.
8492 * jcf-parse.c (parse_roots): New static field.
8493 (current_field, current_method, current_file_list): Replace by macros
8494 naming fields of parse_roots.
8495 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
8496 * class.c (class_roots): New static field.
8497 (registered_class, fields_ident, info_ident, class_list):
8498 New macros naming fields of parse_roots.
8499 (build_static_field_ref): Don't register roots here.
8500 (layout_class): Static field list replaced by macro class_list.
8501 (init_class_processing): Call ggc_add_tree_root for 4 roots.
8502 Initialize fields_ident and info_ident here.
8503
3432b91b
PB
85042001-01-21 Per Bothner <per@bothner.com>
8505
8506 * jcf-parse.c (ggc_mark_jcf): New function.
8507 (init_jcf_parse): Register current_jcf as ggc root.
8508
2c36c7fd
PB
85092001-01-21 Per Bothner <per@bothner.com>
8510
8511 * lang.c (put_decl_node): Print method's name.
8512
9c0c88ac
PB
85132001-01-21 Per Bothner <per@bothner.com>
8514
8515 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
8516 (verify_jvm_instructions): Use it, for better error messages on loads.
8517
230cbd5f
PB
85182001-01-21 Per Bothner <per@bothner.com>
8519
c4faeb92 8520 * verify.c (merge_type_state): Still may have to merge even if
230cbd5f
PB
8521 LABEL_VERIFIED (label).
8522
e6b6db0d
PB
85232001-01-21 Per Bothner <per@bothner.com>
8524
8525 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
8526 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
8527
b57300bc
PB
85282001-01-19 Per Bothner <per@bothner.com>
8529
8530 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
8531 if expeting an interface type. Refines Tom's change of 2000-09-12.
8532
ee08d4cc
PB
85332001-01-18 Per Bothner <per@bothner.com>
8534
8535 * gcj.texi (Input Options): Mention .java files.
8536
b1117741
APB
85372001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
8538
8539 * lang-options.h (-Wunsupported-jdk11): Removed.
8540 * lang.c (flag_not_overriding): Deleted.
8541 (flag_static_local_jdk1_1): Likewise.
8542 (lang_W_options): Removed "unsupported-jdk11" entry.
8543 * parse.y (java_check_methods): Removed dead code.
8544
2dc73168
TT
85452001-01-17 Tom Tromey <tromey@redhat.com>
8546
8547 Changes suggested by Per Bothner:
8548 * gcj.texi (Input Options): Don't mention input files.
8549 (Code Generation): Updated --main information.
8550 (Invoking jcf-dump): Mention that --javap is incomplete.
8551 From Alexandre Petit-Bianco:
8552 (Warnings): Don't mention -Wunsupported-jdk11.
8553 My stuff:
8554 (Compatibility): Mention JDK 1.2-ness of libraries.
8555 (Resources): Mention resources used when writing gcj.
8556
bc65b5ec
TT
85572001-01-17 Tom Tromey <tromey@redhat.com>
8558
8559 * gcj.texi: New file.
8560 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
8561 (java.info): Depend on gcj.info.
8562 (java/gcj.dvi): New target.
8563 (java.dvi): Depend on gcj.dvi.
8564 (java.install-info): Wrote.
8565
930f6690
JS
85662001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
8567
8568 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
8569 having called make_decl_rtl.
8570
00b4575d
PB
85712001-01-14 Per Bothner <per@bothner.com>
8572
984ad2c6
PB
8573 Various patches to emit better messages on verification errors.
8574 * expr.c (push_type_0): Return error indication on stack overflow,
8575 instead of callinfg fatal.
8576 (push_type): Now just call push_type_0 (nd fatal on overflow).
8577 (pop_type_0): Return detailed error message (in a char** argument).
8578 (pop_type): If pop_type_0 fails, print error message.
8579 (pop_argument_types): Moved to verify.c.
8580 * verify.c (pop_argument_types): Moved from expr.c.
8581 Return a (possible) error message, rather than void.
8582 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
8583 (verify_jvm_instruction): Use new macros, improving error messages.
8584 For case OPCODE_astore use object_ptr_type_node.
8585 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
8586 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
8587
00b4575d
PB
8588 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
8589 constant, return body without wrapper. (Improves constant folding.)
8590 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
8591
d9da31dd
PB
85922001-01-13 Per Bothner <per@bothner.com>
8593
8594 * expr.c (expand_java_field_op): Assigning to a final field outside
8595 an initializer does not violate JVM spec, so should be warning, not
8596 error. (Sun's verifier does not complain - though MicroSoft's does.)
e64c46ce 8597
a67a383a
JM
85982001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
8599
8600 * gjavah.c (version), jcf-dump.c (version): Update copyright year
8601 to 2001.
8602
7e1376a1
BM
86032001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
8604
8605 * parse.y (resolve_expression_name): Permit instance variables from
8606 enclosing context in super constructor call.
8607 (resolve_qualified_expression_name): Permit enclosing class's qualified
8608 "this" in super constructor call.
8609
6c418184
MM
86102001-01-10 Mark Mitchell <mark@codesourcery.com>
8611
8612 * class.c (build_utf8_ref): Remove last argument in call to
8613 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
8614 (build_class_ref): Likewise.
8615 (build_static_field_ref): Likewise.
8616 (get_dispatch_table): Likewise.
8617 (layout_class_method): Likewise.
8618 (emit_register_classes): Likewise.
8619 * constants.c (build_constant_data_ref): Likewise.
8620 * decl.c (builtin_function): Likewise.
8621 (create_primitive_vtable): Likewise.
8622 * expr.c (build_known_method_def): Likewise.
8623 (build_jni_stub): Likewise.
8624 (java_lang_expand_expr): Likewise.
e64c46ce 8625
0adc3d8a
TT
86262001-01-10 Tom Tromey <tromey@redhat.com>
8627
8628 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
8629
761491c8
APB
86302001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
8631
8632 * java-tree.h (lang_printable_name_wls): New prototype.
8633 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
8634 rather than `current_class' to print type name. Don't prepend type
8635 names when printing constructor names.
8636 (lang_printable_name_wls): New function.
8637 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
8638 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
8639 * parse.y (patch_method_invocation): Message tuned for constructors.
8640 (not_accessible_p): Grant `private' access from within
8641 enclosing contexts.
e64c46ce 8642
dc08e603
APB
86432001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
8644
8645 All files with updated copyright when applicable.
8646 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
8647 * class.c (mangle_class_field): Function removed.
8648 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
8649 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
8650 (build_class_ref): Call `java_mangle_class_field' instead of
8651 `mangle_class_field.'
8652 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
e64c46ce 8653 (layout_class): Call `java_mangle_decl' instead of
dc08e603
APB
8654 `mangle_static_field.'
8655 (cxx_keywords): Initialized static array moved to `lex.c.'
8656 (layout_class_method): Changed leading comment. Simplified to
8657 call `java_mangle_decl.' Local `ptr' moved in for loop body.
8658 * decl.c (lang_mark_tree): Mark field `package_list.'
8659 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
8660 (struct lang_type): New field `package_list.'
8661 (unicode_mangling_length): Prototype removed.
8662 (append_gpp_mangled_name, append_gpp_mangled_classtype,
8663 emit_unicode_mangled_name): Likewise.
8664 (cxx_keyword_p): New prototype.
8665 (java_mangle_decl, java_mangle_class_field,
8666 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
8667 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
8668 `build_expr_wfl.'
8669 * jvgenmain.c (main_method_prefix): Global variable removed.
8670 (main_method_suffix): Likewise.
8671 (do_mangle_classname): New function.
a83f01f0 8672 (main): Call it. Format changed to accommodate new mangling scheme.
dc08e603
APB
8673 * lex.c: (utf8_cmp): Conditionally prototyped.
8674 (cxx_keywords): Moved from class.c, conditionally defined.
8675 (utf8_cmp, cxx_keyword_p): Likewise.
8676 * mangle.c (obstack.h, ggc.h): Included.
8677 (mangle_field_decl): New function.
8678 (mangle_method_decl, mangle_type, mangle_pointer_type,
8679 mangle_array_type, mangle_record_type,
8680 find_compression_pointer_match, find_compression_array_match,
8681 find_compression_record_match,
8682 find_compression_array_template_match, set_type_package_list,
8683 entry_match_pointer_p, emit_compression_string, init_mangling,
8684 finish_mangling, compression_table_add, mangle_member_name): Likewise.
8685 (mangle_obstack): New global.
8686 (MANGLE_RAW_STRING): New macro.
8687 (unicode_mangling_length): Turned static.
8688 (append_unicode_mangled_name): Renamed from
8689 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
8690 replaces `obstack', removed from the parameter list.
8691 (append_gpp_mangled_name): Turned static. `mangle_obstack'
e64c46ce 8692 replaces parameter `obstack', removed from the parameter list. Call
dc08e603
APB
8693 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
8694 (append_gpp_mangled_classtype): Removed.
8695 (compression_table, compression_next): New static variables.
8696 * parse.y (temporary_obstack): Extern declaration removed.
8697
761491c8
APB
86982001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
8699
8700 * parse.y (patch_binop): Compute missing type in error situations.
8701
5bb11b2e
BM
87022001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
8703
8704 * class.c (make_class_data): Push initial value for "arrayclass".
8705 * decl.c (init_decl_processing): Add new class field "arrayclass".
8706
ac39dac0
BM
87072001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
8708
8709 From patha@softlab.ericsson.se:
e64c46ce 8710 * parse.y (switch_label): Use build, not build1, to construct
ac39dac0
BM
8711 DEFAULT_EXPR.
8712
a5a4ce3c
NB
87132001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
8714
8715 * lang.c (lang_decode_option): Change -MA to -MP.
8716 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
8717 Update to new prototype; do quote targets.
8718 (jcf_dependency_write): Update.
8719
d27fd99a
BM
87202000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
8721
8722 Shorten primitive array allocation path:
8723 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
8724 to create new primitive arrays.
e64c46ce 8725 * expr.c (build_newarray): If generating native code, call
d27fd99a
BM
8726 soft_newarray_node with a reference to the primitive TYPE identifier
8727 instead of type_value.
e64c46ce 8728
c1eacb70
BM
87292000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
8730
8731 Fix for PRs gcj/312 and gcj/253:
8732 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
8733 dest if they arn't already.
e64c46ce 8734 * class.c (layout_class): Call maybe_layout_super_class on
c1eacb70
BM
8735 superinterfaces also, but only if compiling from bytecode.
8736
6d003d5c
BM
8737 Fix for PR gcj/373:
8738 * parse.y (create_class): Set ACC_STATIC if class is declared in an
8739 interface.
8740
325de66c
TT
87412000-12-15 Tom Tromey <tromey@redhat.com>
8742
8743 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
8744 set.
8745
e35990c4
AH
87462000-12-14 Andrew Haley <aph@redhat.com>
8747
8748 * boehm.c (mark_reference_fields): Change test to correctly detect
8749 bitmap overflow.
8750
53714cda
AJ
87512000-12-15 Andreas Jaeger <aj@suse.de>
8752
8753 * config-lang.in (lang_dirs): Added.
8754
1e0cdc10
APB
87552000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
8756
8757 * parse.y (end_artificial_method_body): Fixed undefined behavior.
8758 Credits go to rth for finding it.
8759
e9e42530
MS
87602000-12-13 Mike Stump <mrs@wrs.com>
8761
8762 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
8763
3f27e3f8
TT
87642000-11-07 Tom Tromey <tromey@cygnus.com>
8765
8766 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
8767 * lex.c (java_ignorable_control_p): Removed.
8768 (java_letter_or_digit_p): Removed.
8769 (java_start_char_p): New function.
8770 (java_read_char): Return `int', not `unicode_t'. Changed
8771 callers.
8772 (java_read_unicode): Likewise.
8773 (java_read_unicode_collapsing_terminators): Likewise.
8774 (java_get_unicode): Likewise.
8775 (java_new_lexer): Initialize hit_eof.
8776 (java_parse_end_comment): Take `int' argument.
8777 (java_parse_doc_section): Likewise.
8778 (java_parse_escape_sequence): Don't allow backlash-newline.
8779 Return `int'.
8780 * lex.h (JAVA_DIGIT_P): Removed.
8781 (_JAVA_LETTER_OR_DIGIT_P): Removed.
8782 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
8783 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
8784 (JAVA_PART_CHAR_P): New macro.
8785 (UEOF): Now -1.
8786 (JAVA_CHAR_ERROR): Now -2.
8787 (java_lexer): New field `hit_eof'.
8788 * chartables.h: New file.
8789 * gen-table.pl: new file.
8790
568aac9c 87912000-11-20 Tom Tromey <tromey@cygnus.com>
9a07cfaf 8792 Alexandre Petit-Bianco <apbianco@cygnus.com>
568aac9c
TT
8793
8794 * parse.y (java_complete_lhs): Only allow compound assignment of
8795 reference type if type is String.
8796
f34ff6d6
APB
87972000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
8798
8799 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
8800 jcf-path.c: Likewise.
8801
6e5589e8
AG
88022000-12-09 Anthony Green <green@redhat.com>
8803
8804 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
8805 filestart and filename_length as int values.
8806
8000caee
MD
88072000-12-07 Mo DeJong <mdejong@redhat.com>
8808
8809 * jcf-io.c (find_class): Correct the logic that tests to see if a
8810 .java file is newer than its .class file. The compiler was
8811 incorrectly printing a warning when file mod times were equal.
8812
f6bbde28
ZW
88132000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
8814
8815 * jvgenmain.c: Use ISPRINT not isascii.
8816
46142b26
APB
88172000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
8818
8819 * parse.y (end_artificial_method_body): Fixed typo.
8820
f8b93ea7
APB
88212000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
8822
8823 * parse.y (patch_method_invocation): Pick the correct enclosing
8824 context when creating inner class instances.
8825 Fixes gcj/332.
8826
45441c5b
JM
88272000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
8828
8829 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
8830 Update copyright year to 2000.
8831
1510057a
AG
88322000-11-23 Anthony Green <green@redhat.com>
8833
8834 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
8835 Move current_file_list out of yyparse and make it static.
8836
8837 * expr.c: Declare quick_stack and tree_list_free_list as static
8838 (init_expr_processing): Register quick_stack and
8839 tree_list_free_list roots.
8840
5e18f6d6
APB
88412000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
8842
8843 * parse.y (build_outer_field_access): New local `decl_ctx', use
8844 it. Check for field's context and current class immediate outer
8845 context inheritance.
8846 (outer_field_access_p): Consider fields inherited from the last
8847 enclosing context.
8848 (build_access_to_thisn): Stop at the last enclosing context if
8849 necessary.
8850 Fixes gcj/367.
8851
62c9aa5f 88522000-11-23 J"orn Rennecke <amylaar@redhat.com>
9196ece5
R
8853
8854 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
8855
c385cdf6
BM
88562000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
8857
8858 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
8859 scratch buffer.
8860
1535cc88
TT
88612000-11-20 Tom Tromey <tromey@cygnus.com>
8862
8863 * jv-scan.c (help): Document --complexity.
8864 (options): Added --complexity.
8865 (flag_complexity): New global.
8866 (main): Call `report'.
8867 * parse-scan.y (complexity): New global.
8868 (if_then_statement, if_then_else_statement,
8869 if_then_else_statement_nsi, switch_block_statement_group,
8870 while_expression, do_statement, for_begin, continue_statement,
8871 throw_statement, catch_clause, finally, method_invocation,
8872 conditional_and_expression, conditional_or_expression,
8873 conditional_expression): Update complexity.
8874 (reset_report): Reset complexity.
8875 (report): New function.
8876
d828bc42
TT
88772000-11-20 Tom Tromey <tromey@cygnus.com>
8878
8879 * lex.c (yylex): Added STRICT_TK case.
8880 * parse.y (STRICT_TK): Added.
8881 * parse-scan.y (STRICT_TK): Added.
8882 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
8883 `;'. Use 4, not 3, with -k option. Correctly rename resulting
8884 file.
8885 * keyword.h: Rebuilt.
8886 * keyword.gperf (strictfp): Added.
8887
4e7842a0
TT
88882000-11-20 Tom Tromey <tromey@cygnus.com>
8889
8890 * lex.c (yylex): Recognize floating point constants with leading
8891 0.
8892
7e9355c6
KG
88932000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8894
8895 * java-tree.h (cyclic_inheritance_report): Constify.
8896 * parse.y (cyclic_inheritance_report): Likewise.
8897
a8a05998
ZW
88982000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
8899
8900 * parse.y (goal): Remove call to ggc_add_string_root.
8901
520a57c8
ZW
89022000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
8903
8904 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
8905 Create string in scratch buffer, then pass to build_string.
8906
88f3c477
JM
89072000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
8908
8909 * parse.y (issue_warning_error_from_context): Add
8910 ATTRIBUTE_PRINTF.
8911
ac51395d
AG
89122000-11-11 Anthony Green <green@redhat.com>
8913
8914 * jcf-parse.c (process_zip_dir): Add finput parameter.
8915 (jcf_figure_file_type): Call process_zip_dir with appropriate
8916 argument.
8917
4e135bdd
KG
89182000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8919
8920 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
8921 * jcf-parse.c (jcf_figure_file_type): Likewise.
8922
2e09e75a
JM
89232000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
8924
8925 * parse.y (create_new_parser_context): Use memset () instead of
8926 bzero ().
8927
136c35df
TT
89282000-11-08 Tom Tromey <tromey@cygnus.com>
8929
8930 * gjavah.c (process_file): Only include gcj/cni.h when generating
8931 CNI stubs.
8932
961192e1
JM
89332000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
8934
8935 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
8936 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
8937 instead of bzero ().
8938
099a5150
TT
89392000-11-05 Tom Tromey <tromey@cygnus.com>
8940
8941 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
8942 * lex.c (IS_ZERO): New define.
8943 (java_perform_atof): Error on floating point underflow.
8944
cbf53a1d
TT
89452000-11-04 Tom Tromey <tromey@cygnus.com>
8946
8947 * lex.c (java_parse_escape_sequence): Only read two octal
8948 characters if the first one is greater than 3. Don't allow
8949 "octal" numbers to include the digits 8 or 9.
8950
436a88a6
JM
89512000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
8952
8953 * Make-lang.in (java.distdir): Remove.
8954
747800ee
TT
89552000-11-03 Tom Tromey <tromey@cygnus.com>
8956
4e2c8d44
TT
8957 * Make-lang.in (java.dvi): New target.
8958 Partial fix for PR other/567.
8959
b7436b72
TT
8960 * lang-options.h: Mention -Wout-of-date.
8961 * jcf-dump.c (flag_newer): New global.
8962 * gjavah.c (flag_newer): New global.
8963 * jcf-io.c (find_class): Only warn when flag_newer set.
8964 * lang.c (flag_newer): New global.
8965 (struct string_option): New declaration.
8966 (lang_W_options): New global.
8967 (process_option_with_no): New function.
8968 (lang_decode_option): Use it.
8969
0160fbe1
TT
8970 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
8971 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
8972 `$'.
8973
747800ee
TT
8974 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
8975 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
8976 * lex.c (java_read_unicode): Removed `term_context' argument.
8977 Recognize any number of `u' in `\u'.
8978 (java_read_unicode_collapsing_terminators): New function.
8979 (java_get_unicode): Use it.
8980 (java_lineterminator): Removed.
8981 (yylex): Produce error if character literal is newline or single
8982 quote. Return if eof found in middle of `//' comment. EOF in
8983 `//' comment is only an error if pedantic.
8984 (java_ignorable_control_p): New function.
8985 (java_parse_end_comment): Return if eof found in middle of
8986 comment.
8987 Include flags.h.
8988 * jv-scan.c (pedantic): New global.
8989
ee5f86dc
APB
89902000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
8991
8992 * parse.y (outer_field_access_p): Inherited fields aren't
8993 consider outer fields.
8994 (maybe_build_thisn_access_method): Use
8995 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
8996 (resolve_expression_name): Trigger an error if a static field
8997 is being accessed as an outer field.
8998
7ccd2fc9 89992000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
f6bbde28 9000
7ccd2fc9
APB
9001 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
9002 Fixes gcj/365.
9003
b8dad04b
ZW
90042000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
9005
9006 * Make-lang.in: Move all build rules here from Makefile.in,
9007 adapt to new context. Wrap all rules that change the current
9008 directory in parentheses. Expunge all references to $(P).
9009 When one command depends on another and they're run all at
9010 once, use && to separate them, not ;. Add OUTPUT_OPTION to
9011 all object-file generation rules. Delete obsolete variables.
9012
9013 * Makefile.in: Delete.
9014 * config-lang.in: Delete outputs= line.
9015
2cb3951d
APB
90162000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
9017
9018 * parse.y (patch_method_invocation): NULLify this_arg when already
9019 inserted.
9020 (maybe_use_access_method): Handle call to methods unrelated to the
9021 current class. Fixed comment.
9022 Fixes gcj/361.
9023
ee5f86dc
APB
90242000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
9025
9026 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
9027 scope.
9028
07b5e470
TT
90292000-10-24 Tom Tromey <tromey@cygnus.com>
9030
9031 * lex.c (java_new_lexer): Initialize new fields. Work around
9032 broken iconv() implementations.
9033 (java_read_char): Swap bytes if required. Use fallback decoder if
9034 required.
9035 (byteswap_init, need_byteswap): New globals.
9036 (java_destroy_lexer): Only close iconv handle if it is in use.
9037 * lex.h (java_lexer): New fields read_anything, byte_swap,
9038 use_fallback.
9039 Made out_buffer unsigned.
9040
8ac1de05
APB
90412000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
9042
9043 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
9044 where an enclosing context can be set on the jdep.
9045 (do_resolve_class): Fixed identation.
9046
80393943
KG
90472000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9048
9049 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
f6bbde28 9050
80393943
KG
9051 * jcf-reader.c (peek_attribute, skip_attribute): Only define
9052 when requested.
9053
9054 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
9055
9056 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
9057
c7303e41
APB
90582000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
9059
9060 * jcf-write.c (OP1): Update `last_bc'.
9061 (struct jcf_block): Fixed indentation and typo in comments. New
9062 field `last_bc'.
9063 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
9064 follows `monitorenter'.
9065 * parse.y (patch_synchronized_statement): New local `tmp'. Call
9066 `patch_string'.
9067 Fixes gcj/232.
9068
316a06a1
TT
90692000-10-16 Tom Tromey <tromey@cygnus.com>
9070
9071 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
9072 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
9073 * lang-options.h: Added -MA, -MT, -MF..
9074 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
9075 (DEPEND_TARGET_SET): New macro.
9076 (DEPEND_FILE_ALREADY_SET): Likewise.
9077 (init_parse): Handle new flags.
9078 * jcf.h (jcf_dependency_print_dummies): Declare.
9079 * Make-lang.in (s-java): Added mkdeps.o.
9080 * Makefile.in (BACKEND): Added mkdeps.o.
9081 (../gcjh$(exeext)): Added mkdeps.o.
9082 (../jcf-dump$(exeext)): Added mkdeps.o.
9083 * jcf-depend.c: Include mkdeps.h.
9084 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
9085 add_entry): Removed.
9086 (jcf_dependency_reset): Rewrote.
9087 (dependencies): New global.
9088 (jcf_dependency_set_target): Rewrote.
9089 (jcf_dependency_add_target): Likewise.
9090 (jcf_dependency_add_file): Likewise.
9091 (munge): Removed.
9092 (print_ents): Removed.
9093 (jcf_dependency_write): Rewrote.
9094 (print_dummies): New global.
9095 (jcf_dependency_print_dummies): New function
9096 (jcf_dependency_write): Call deps_dummy_targets if required.
9097
dba41d30
APB
90982000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
9099
9100 * gjavah.c (add_class_decl): Removed unused variables `tname',
9101 `tlen' and `name_index'.
9102 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
9103 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
9104 in `wfl_operator' with value.
9105 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
9106 (jcf_figure_file_type): Fixed identation.
9107 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
9108 * parse.y (analyze_clinit_body): New function.
9109 (static_initializer:): Reset `current_static_block'.
9110 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
9111 `wfl_operator' with new value.
9112 (lookup_cl): Use EXPR_WFL_FILENAME.
9113 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
9114 analyze_clinit_body.
9115 (build_outer_field_access): Access to this$<n> built from
9116 current_class, not its outer context.
9117 (build_access_to_thisn): Fixed leading comment. Tidied things up.
f6bbde28 9118 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
dba41d30
APB
9119 (patch_method_invocation): Use `is_static_flag' when already
9120 initialized.
9121 (patch_newarray): Removed assignment in ternary operator.
9122
1a2ebe6d
APB
91232000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
9124
dba41d30 9125 * except.c (free_eh_ranges): Don't free `whole_range'.
1a2ebe6d 9126
8e7ab3ff
AG
91272000-10-15 Anthony Green <green@redhat.com>
9128
9129 * decl.c (init_decl_processing): Call init_class_processing before
9130 anything else.
9131
c7303e41
APB
91322000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
9133
9134 * check-init.c (check_init): Fixed leading comment. Use
9135 LOCAL_FINAL_P.
9136 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
9137 (give_name_to_locals): Likewise.
9138 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
9139 fields in lang_decl_var.
9140 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
9141 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
9142 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
9143 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
9144 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
9145 (LOCAL_FINAL): Rewritten.
9146 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
9147 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
9148 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
9149 `init_final' fields.
9150 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
9151 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
9152 (TYPE_HAS_FINAL_VARIABLE): New macro.
9153 (struct lang_type): Added `afv' field.
9154 * parse.y (check_static_final_variable_assignment_flag): New function.
9155 (reset_static_final_variable_assignment_flag): Likewise.
9156 (check_final_variable_local_assignment_flag): Likewise.
9157 (reset_final_variable_local_assignment_flag): Likewise.
9158 (check_final_variable_indirect_assignment): Likewise.
9159 (check_final_variable_global_assignment_flag): Likewise.
9160 (add_inner_class_fields): Use LOCAL_FINAL_P.
9161 (register_fields): Handle local finals and final variables.
9162 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
9163 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
9164 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
9165 on local finals.
9166 (java_complete_expand_methods): Loop to set
9167 TYPE_HAS_FINAL_VARIABLE. Call
f6bbde28 9168 `reset_final_variable_local_assignment_flag' and
c7303e41
APB
9169 `check_final_variable_local_assignment_flag' accordingly before
9170 and after constructor expansion. Call
9171 `reset_static_final_variable_assignment_flag'
f6bbde28 9172 before expanding <clinit> and after call
c7303e41
APB
9173 `check_static_final_variable_assignment_flag' if the
9174 current_class isn't an interface. After all methods have been
9175 expanded, call `check_final_variable_global_assignment_flag' and
9176 `check_static_final_variable_assignment_flag' if the current class
f6bbde28 9177 is an interface.
c7303e41
APB
9178 (maybe_yank_clinit): Fixed typo in comment.
9179 (build_outer_field_access_methods): Removed old sanity check. Use
9180 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
9181 Don't create access methods for finals.
9182 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
9183 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
f6bbde28 9184 existing DECL_INIT has been processed.
c7303e41
APB
9185 (java_complete_lhs): Likewise.
9186 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
9187 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
9188 logic.
9189 (patch_assignment): Use LOCAL_FINAL_P.
9190 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
9191 DECL_INITIAL is nullified.
9192 Fixes gcj/163.
9193
4b945402
KG
91942000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9195
9196 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
f6bbde28 9197
4b945402
KG
9198 * Makefile.in (parse.c, parse-scan.c): Likewise.
9199
1f8f4a0b
MM
92002000-10-12 Mark Mitchell <mark@codesourcery.com>
9201
9202 * class.c (temporary_obstack): Remove.
9203 (make_class): Don't mess with obstascks.
9204 (push_class): Likewise.
9205 (set_super_info): Likewise.
9206 (add_method_1): Likewise.
9207 (add_method): Likewise.
9208 (add_field): Likewise.
9209 (build_utf8_ref): Likewise.
9210 (build_class_ref): Likewise.
9211 (build_static_field_ref): Likewise.
9212 (finish_class): Likewise.
9213 (push_super_field): Likewise.
9214 (layout_class): Likewise.
9215 (layout_class_methods): Likewise.
9216 (init_class_processing): Likewise.
9217 * constants.c (get_tag_node): Likewise.
9218 (build_constant_data_ref): Likewise.
9219 * decl.c (ggc_p): Remove.
9220 (copy_lang_decl): Use ggc_alloc.
9221 (complete_start_java_method): Don't mess with obstacks.
9222 (start_java_method): Likewise.
9223 (end_java_method): Likewise.
9224 * except.c (link_handler): Use xmalloc.
9225 (free_eh_ranges): New function.
9226 (method_init_exceptions): Use it.
9227 (add_handler): Use xmalloc.
9228 (expand_start_java_handler): Don't mess with obstacks.
9229 (prepare_eh_table_type): Likewise.
9230 (expand_end_java_handler): Likewise.
9231 * expr.c (push_value): Likewise.
9232 (create_label_decl): Likewise.
9233 (build_jni_stub): Likewise.
9234 (java_lang_expand_expr): Likewise.
9235 (note_instructions): Use xrealloc.
9236 (java_push_constant_from_pool): Don't mess with obstacks.
9237 (process_jvm_instruction): Likewise.
9238 * java-tree.h (cyclic_inheritance_report): Remove duplicate
9239 declaration.
9240 * jcf-parse.c (get_constant): Don't mess with obstacks.
9241 (read_class): Likewise.
9242 (jcf_parse): Likewise.
a83f01f0 9243 * lex.c (expression_obstack): Remove.
1f8f4a0b
MM
9244 (java_lex): Don't use obstack_free.
9245 * parse.h (exit_java_complete_class): Don't mess with obstacks.
9246 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
9247 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
9248 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
9249 * parse.y (gaol): Add more GC roots.
9250 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
9251 (lookup_field_wrapper): Likewise.
9252 (obtain_incomplete_type): Don't mess with obstacks.
a83f01f0 9253 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
1f8f4a0b
MM
9254 macros.
9255 (craft_constructor): Don't mess with obstacks.
9256 (safe_layout_class): Likewise.
9257 (java_complete_class): Likewise.
9258 (source_end_java_method): Likewise.
9259 (build_outer_field_access_methods): Likewise.
9260 (build_outer_method_access_method): Likewise.
9261 (maybe_build_thisn_access_method): Likewise.
9262 (build_dot_class_method_invocation): Likewise.
9263 (java_complete_tree): Likewise.
9264 (java_complete_lhs): Likewise.
9265 (do_merge_string_cste): Likewise.
9266 (patch_string_cst): Likewise.
9267 (array_constructor_check_entry): Likewise.
9268 * typeck.c (build_java_array_type): Likewise.
9269 (parse_signature_string): Likewise.
9270 (build_java_signature): Likewise.
f6bbde28 9271
3c1d1e7b
TT
92722000-10-12 Tom Tromey <tromey@cygnus.com>
9273
9274 Fix for PR gcj/356:
9275 * gjavah.c (add_class_decl): Don't special-case inner classes.
9276 (add_namelet): Likewise.
9277
a93eddcf
APB
92782000-10-11 Rodney Brown <RodneyBrown@mynd.com>
9279
9280 * java-tree.h: Constify current_encoding.
9281 * lang.c: Constify current_encoding.
9282
92832000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
9284
9285 * jvgenmain.c (class_mangling_suffix): Omit `.'.
9286 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
9287
92882000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
9289
9290 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
9291 patch. Fixes gcj/340.
9292
2e165c53
TT
92932000-10-10 Tom Tromey <tromey@cygnus.com>
9294
9295 * lex.c (java_new_lexer): Initialize out_first and out_last
9296 fields.
9297 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
9298
c7303e41
APB
92992000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
9300
9301 * parse.y (pop_current_osb): New function.
9302 (array_type:): Use `dims:', changed actions
9303 accordingly. Suggested by Anthony Green.
9304 (array_creation_expression:): Used pop_current_osb.
9305 (cast_expression:): Likewise.
9306 (search_applicable_method_list): Fixed indentation.
9307
93082000-10-08 Anthony Green <green@redhat.com>
9309
9310 * parse.y (array_type_literal): Remove production.
9311 (type_literals): Refer to array_type, not array_type_literal.
9312
29f8b718
APB
93132000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9314
9315 Patch contributed by Corey Minyard.
9316 * decl.c (check_local_named_variable): New function.
9317 (tree check_local_unnamed_variable): Likewise.
9318 (find_local_variable): Splitted. Call check_local_{un}named_variable.
9319
7fd9a516
AG
93202000-10-07 Anthony Green <green@redhat.com>
9321
9322 * class.c (layout_class): Handle case where superclass can't be
9323 layed out yet.
9324
20d431c9
JM
93252000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
9326
9327 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
9328 gperf.
9329
e0a0c416
TT
93302000-10-05 Tom Tromey <tromey@cygnus.com>
9331
9332 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
9333 * jvgenmain.c (class_mangling_prefix): Removed.
9334 (class_mangling_suffix): New global.
9335 (main): Use it.
9336 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
9337 `$'.
9338 (print_method_info): Handle overrides for static and final
9339 methods.
9340 (process_file): Generate declaration for class object field.
9341 * class.c (cxx_keywords): New array.
9342 (utf8_cmp): New function.
9343 (cxx_keyword_p): New function.
9344 (layout_class_method): Mangle C++ keywords by appending `$'.
9345 (mangle_field): New function.
9346 (mangle_class_field): Use mangle_field. Mangle class name as
9347 `class$'.
9348 (mangle_static_field): Use mangle_field.
9349
62c9aa5f 93502000-10-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
6e22695a
APB
9351
9352 * decl.c (find_local_variable): Removed uncessary type check and
9353 fixed range check typo. From Corey Minyard.
9354
62c9aa5f 93552000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
6e22695a
APB
9356
9357 * decl.c (give_name_to_locals): New local `code_offset'. Call
e64c46ce 9358 `maybe_adjust_start_pc'.
6e22695a
APB
9359 * expr.c (note_instructions): New function.
9360 (expand_byte_code): Don't collect insn starts here.
9361 (peek_opcode_at_pc): New function.
9362 (maybe_adjust_start_pc): Likewise.
9363 * java-tree.h (maybe_adjust_start_pc): Declare.
9364 (note_instructions): Likewise.
dba41d30 9365 * jcf-parse.c (parse_class_file): Call `note_instructions'.
6e22695a 9366
62c9aa5f 93672000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
6e22695a
APB
9368
9369 * parse.y (field_access:): Fixed indentation.
9370 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
9371
7e51098e
TT
93722000-09-07 Tom Tromey <tromey@cygnus.com>
9373
9374 Fix for PR gcj/307:
9375 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
9376 JPRIMITIVE_TYPE_P, for arithmetic operators.
9377 (patch_method_invocation): Indentation fix.
9378 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
9379 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
9380 (do_unary_numeric_promotion): Cleaned up code.
9381 (valid_cast_to_p): Handle boolean correctly.
9382
5beededc
TT
93832000-09-27 Tom Tromey <tromey@cygnus.com>
9384
9385 * lex.c (java_read_unicode): Reset bs_count when finished with
9386 `\u' sequence.
9387
f15b9af9
MM
93882000-10-01 Mark Mitchell <mark@codesourcery.com>
9389
9390 Convert to GC.
9391 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
9392 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
9393 (typeck.o): Depend on ggc.h.
9394 * class.c (add_method_1): Use GC functions for allocation.
9395 (init_class_processing): Register roots.
9396 * decl.c (ggc_p): Set to 1.
9397 (pending_local_decls): Make it static.
9398 (push_jvm_slot): Use GC functions for allocation.
9399 (init_decl_processing): Register roots.
9400 (give_name_to_locals): Use GC functions for allocation.
9401 (lang_mark_tree): New function.
9402 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
9403 functions for allocation.
9404 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
9405 * lex.c (java_lex): Use build_string, rather than replicating it
9406 inline.
9407 * parse.y (goal): Add more roots.
9408 (mark_parser_ctxt): New function.
9409 * typeck.c: Include ggc.h.
f6bbde28 9410
99eaf8d4
APB
94112000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
9412
9413 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
9414 contains something else than MODIFY_EXPR.
9415
19e223db
MM
94162000-09-23 Mark Mitchell <mark@codesourcery.com>
9417
9418 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
9419 * Makefile.in (parse.o): Depend on ggc.h.
9420 (class.o): Likewise.
9421 (constants.o): Likewise.
9422 (decl.o): Likewise.
9423 (expr.o): Likewise.
9424 (jcf-parse.o): Likewise.
9425 (jcf-write.o): Likewise.
9426 (mangle.o): Likewise.
9427 * class.c: Include ggc.h.
9428 (build_static_field_ref): Register GC roots.
9429 (layout_class): Likewise.
9430 (init_class_processing): Likewise.
9431 * constants.c: Include ggc.h.
9432 (current_constant_pool_data_ref): Remove.
9433 (tag_nodes): Move it to ...
9434 (get_tag_node): ... here. Register GC roots.
9435 * decl.c: Include ggc.h. Remove many global tree definitions.
9436 (throw_node): Define.
9437 (java_global_trees): Likewise.
9438 (predef_filenames): Make the size a constant.
9439 (init_decl_processing): Adjust accordingly.
9440 (init_decl_processing): Call init_jcf_parse. Register GC roots.
9441 * expr.c: Include ggc.h.
9442 (init_expr_processing): Register GC roots.
9443 (build_invokeinterface): Likewise.
9444 * java-tree.h: Replace extern tree declarations with macros.
9445 (java_global_trees): New variable.
9446 (java_tree_index): New enumeration.
9447 (init_jcf_parse): Declare.
9448 * jcf-parse.c: Include ggc.h.
9449 (current_class): Remove declaration.
9450 (main_class): Likewise.
9451 (all_class_list): Likewise.
9452 (predefined_filename_p): Adjust for constant size of
9453 predef_filenames.
9454 (init_jcf_parse): New function.
9455 * jcf-write.c: Include ggc.h.
9456 (generate_classfile): Register GC roots.
9457 (append_synthetic_attribute): Likewise.
9458 (append_innerclass_attribute_entry): Likewise.
9459 * lang.c: Include ggc.h.
9460 (lang_print_error): Register GC roots.
9461 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
9462 with macros.
9463 * parse.y: Include ggc.h.
9464 (wfl_operator): Remove.
9465 (goal): Register GC roots.
9466 (java_pop_parser_context): Adjust for new field names.
9467 (java_parser_context_save_global): Likewse.
9468 (java_parser_context_restore_global): Likewise.
9469 (java_parser_context_suspend): Likewise.
9470 (java_parser_context_resume): Likewise.
9471 (verify_constructor_circularity): Register GC roots.
9472 (lookup_cl): Likewise.
9473 (java_reorder_fields): Likewise.
9474 (build_current_this): Likewise.
9475 (class_in_current_package): Likewise.
9476 (argument_types_convertible): Likewise.
9477 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
f6bbde28 9478
4c4b521a
TT
94792000-09-14 Tom Tromey <tromey@cygnus.com>
9480
9481 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
9482
6b8a24cd
TT
94832000-09-13 Tom Tromey <tromey@cygnus.com>
9484
9485 * jcf-parse.c: Include <locale.h>.
9486 * jv-scan.c: Include <locale.h>.
9487
86e4b1e4
TT
94882000-09-12 Tom Tromey <tromey@cygnus.com>
9489
9490 * expr.c (pop_type_0): Return `Object' if trying to merge two
9491 interface types.
9492 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
9493 interface types; `Object' is always a valid supertype.
9494
d19cbcb5
TT
94952000-09-12 Tom Tromey <tromey@cygnus.com>
9496
9497 Fix for PR gcj/33:
9498 * jv-scan.c (help): Document --encoding.
9499 (options): Added `encoding' entry.
9500 (OPT_ENCODING): New define.
9501 (main): Handle --encoding.
9502 Include <langinfo.h> if nl_langinfo exists.
9503 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
9504 --encoding.
9505 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
9506 (parse_source_file): Correctly call java_init_lex. Added `finput'
9507 argument. Use nl_langinfo to determine default encoding.
9508 * java-tree.h (current_encoding): Declare.
9509 * parse.y (java_parser_context_restore_global): Don't restore
9510 `finput'.
9511 (java_parser_context_save_global): Don't set `finput' field.
9512 (java_pop_parser_context): Don't restore `finput'. Free old lexer
9513 if required.
9514 * lang.c (current_encoding): New global.
9515 (lang_decode_option): Recognize `-fencoding='.
9516 (finish_parse): Don't close finput.
9517 * parse.h (struct parser_ctxt): Removed `finput' and
9518 `unget_utf8_value' fields. Added `lexer' field.
9519 (java_init_lex): Fixed declaration.
9520 * lex.c (java_new_lexer): New function.
9521 (java_destroy_lexer): Likewise.
9522 (java_read_char): Added `lex' argument. Handle iconv case.
9523 (java_read_unicode): Added `lex' argument. Count backslashes in
9524 lexer structure.
9525 (java_init_lex): Added `finput' and `encoding' arguments. Set
9526 `lexer' field in ctxp.
9527 (BAD_UTF8_VALUE): Removed.
9528 (java_lex): Handle seeing UEOF in the middle of a string literal.
9529 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
9530 (java_lexer): New structure.
9531 (UNGETC): Removed.
9532 (GETC): Removed.
9533 (DEFAULT_ENCODING): New define.
9534 (java_destroy_lexer): Declare.
9535
ee17a290
TT
95362000-09-12 Tom Tromey <tromey@cygnus.com>
9537
9538 Fix for PR gcj/343:
9539 * lex.c (java_init_lex): Initialize java_io_serializable.
9540 * parse.y (java_io_serializable): New global.
9541 (valid_ref_assignconv_cast_p): An array can be cast to
9542 serializable.
9543
d8ea8f28
ZW
95442000-09-10 Zack Weinberg <zack@wolery.cumb.org>
9545
9546 * decl.c, expr.c: Include defaults.h if not already included.
9547 Don't define the *_TYPE_SIZE macros.
9548
0caae6dd
GK
95492000-09-09 Geoffrey Keating <geoffk@cygnus.com>
9550
9551 * typeck.c (build_java_array_type): Correct first parameter
9552 in ADJUST_FIELD_ALIGN invocation.
9553
f0bee8b3
TT
95542000-09-06 Tom Tromey <tromey@cygnus.com>
9555
9556 * lang-specs.h: Also recognize `-femit-class-files'.
9557
3e99f50c
APB
95582000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
9559
9560 * verify.c (merge_types): Load the types to merge if necessary.
9561
3ca8c9ae
AG
95622000-09-02 Anthony Green <green@redhat.com>
9563
9564 * jcf-io.c: Include zlib.h.
9565 (open_in_zip): Read compressed class file archives.
9566 * zipfile.h (ZipDirectory): Add uncompressed_size and
9567 compression_method fields.
9568 * zextract.c (read_zip_archive): Collect file compression info.
9569
e1d565ab
BM
95702000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
9571
f6bbde28 9572 * parse.y (do_resolve_class): Also explore superclasses of
e1d565ab
BM
9573 intermediate enclosing contexts when searching for inner classes.
9574
29f8b718
APB
95752000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
9576
9577 * parse.y (variable_declarator_id:): Better error message.
9578 (expression_statement:): Use YYNOT_TWICE.
9579 (cast_expression:): Likewise.
9580 (assignment:): Likewise.
9581
354e99ce
APB
95822000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
9583
9584 * parse.y (do_merge_string_cste): New locals. Create new
9585 STRING_CSTs each time, use memcpy. Fixes gcj/311.
9586
7c097ee9
HB
95872000-08-07 Hans Boehm <boehm@acm.org>
9588
9589 * boehm.c (mark_reference_fields): Set marking bits for all words in
9590 a multiple-word record.
9591 (get_boehm_type_descriptor): Use the procedure marking descriptor for
9592 java.lang.Class.
f6bbde28 9593
3d919a0e
MS
95942000-08-31 Mike Stump <mrs@wrs.com>
9595
9596 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
9597 jcf-dump$(exeext)): Make parallel safe.
9598
63ad61ed
ZW
95992000-08-29 Zack Weinberg <zack@wolery.cumb.org>
9600
9601 * jcf-parse.c (set_source_filename): Constify a char *.
9602 * jcf-write.c (append_innerclasses_attribute,
9603 make_class_file_name): Constify a char *. Don't recycle a
9604 variable for an unrelated purpose.
9605 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
9606 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
9607
c00f0fb2
APB
96082000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
9609
9610 * expr.c (can_widen_reference_to): Fixed indentation.
9611 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
9612 * parse.y: `finit$' replaces `$finit$' in comments.
9613 (try_builtin_assignconv): Fixed leading comment.
9614
94574545
GM
96152000-08-25 Greg McGary <greg@mcgary.org>
9616
9617 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
9618
6e2aa220
GM
96192000-08-24 Greg McGary <greg@mcgary.org>
9620
9621 * lang.c (lang_decode_option): Use ARRAY_SIZE.
9622 * parse.y (BINOP_LOOKUP): Likewise.
9623
9b1ee05b
AH
96242000-08-22 Andrew Haley <aph@cygnus.com>
9625
9626 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
9627 sign extending. Fixes gcj/321.
9628 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
9629 combining to make a jlong. Fixes gcj/321.
9630
05a3d06e 96312000-08-21 Nix <nix@esperi.demon.co.uk>
f6bbde28 9632
05a3d06e
N
9633 * lang-specs.h: Do not process -o or run the assembler if
9634 -fsyntax-only.
9635
65f69237
AH
96362000-08-16 Andrew Haley <aph@cygnus.com>
9637
9638 * typeck.c (build_java_array_type): Rewrite code to do array
9639 alignment. Take into account back-end macros when aligning array
9640 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
9641 user to set alignment. Fixes gcj/252 and 160.
9642
2e0f0aff
TT
96432000-08-09 Tom Tromey <tromey@cygnus.com>
9644
1175b9b4
TT
9645 * parse.y (check_abstract_method_definitions): Now return `int'.
9646 Check implemented interfaces. Fixes PR gcj/305.
9647
2e0f0aff
TT
9648 * parse.y (patch_switch_statement): Disallow `long' in switch
9649 expressions. Fixes PR gcj/310.
9650
25bdcbc5
APB
96512000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
9652
9653 * decl.c (finit_leg_identifier_node): New global.
9654 (init_decl_processing): Use `finit$' to initialize
9655 finit_identifier_node. Use `$finit$' to initialize
9656 finit_leg_identifier_node.
9657 * expr.c (expand_java_field_op): Use ID_FINIT_P.
9658 * java-tree.h (finit_identifier_node): Changed attached comment.
9659 (finit_leg_identifier_node): New declaration.
9660 (ID_FINIT_P): Take finit_identifier_node and
9661 finit_leg_identifier_node into account. This is a backward
9662 compatibility hack.
9663
81baa09a
APB
96642000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
9665
9666 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
9667 Jan 6 2000 patch.
9668 (generate_bytecode_insns): Check `nargs' before emitting it.
9669 * verify.c (merge_type_state): Fixed typo.
9670 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
9671 generate_bytecode_{conditional,insns}.
9672
62c9aa5f 96732000-08-13 Anthony Green <green@redhat.com>
458530ee
AG
9674
9675 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
9676 for -pg builds).
9677
34d4df06
APB
96782000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
9679
9680 * class.c (maybe_layout_super_class): Fixed indentation.
9681 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
9682 (java_check_methods): New function declaration.
9683 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
9684 instead of `str_ptr'.
9685 * jcf-write.c (generate_bytecode_insns): Emit number the of args
9686 of a `invokeinterface' at the right time.
9687 * parse.h (WFL_STRIP_BRACKET): New macro.
9688 (SET_TYPE_FOR_RESOLUTION): Use it.
dba41d30 9689 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
34d4df06
APB
9690 (check_class_interface_creation): Don't check for cross package
9691 innerclass name clashes.
dba41d30 9692 (method_header): Behave properly if MDECL is `error_mark_node'.
34d4df06
APB
9693 (method_declarator): Return `error_mark_node' if bogus current
9694 class.
9695 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
9696 (resolve_and_layout): New local `decl_type', set and used. Call
9697 java_check_methods.
9698 (java_check_methods): New method.
9699 (java_layout_classes): Use it.
9700 (resolve_qualified_expression_name): No EH check necessary in
9701 access$<n>.
9702 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
9703 `case' statement.
9704 (patch_assignment): Set DECL_INITIAL on integral final local.
9705
5f1c312a
APB
97062000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
9707
9708 * java-tree.h (flag_extraneous_semicolon): New extern.
9709 * lang-options.h: (-Wextraneous-semicolon): New option.
9710 * lang.c (flag_redundant): Fixed typo in leading comment.
9711 (flag_extraneous_semicolon): New global.
9712 (lang_decode_option): Set `flag_extraneous_semicolon' when
9713 -Wall. Decode `-Wextraneous-semicolon'.
9714 * parse.y (type_declaration:): Removed `SC_TK' hack, added
9715 `empty_statement' rule.
9716 (class_body_declaration): Likewise.
9717 (method_body:): Accept `;' as a method body.
9718 (static_initializer:): Removed `SC_TK' hack.
9719 (constructor_block_end:): Likewise.
9720 (empty_statement:): Report deprecated empty declaration. Fixes
9721 gcj/295
9722
25bdcbc5 97232000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
f0f3a777
APB
9724
9725 * parse.y (build_dot_class_method_invocation): Changed parameter
dba41d30 9726 name to `type'. Build signature from `type' and convert it to a
f0f3a777
APB
9727 STRING_CST if it's an array.
9728 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
9729 to use `ref_type' directly.
9730
62c9aa5f 97312000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com>
64c04091
OP
9732
9733 * lang-options.h: Added a comma after the last element to avoid
9734 syntax errors when other languages define additional options.
9735
a36556a8
ZW
97362000-08-04 Zack Weinberg <zack@wolery.cumb.org>
9737
9738 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
9739 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
9740 (jc1): Link with $(BACKEND).
9741 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
9742
50e60bc3
ZW
97432000-08-02 Zack Weinberg <zack@wolery.cumb.org>
9744
37620334
ZW
9745 * jvspec.c: Adjust type of second argument to
9746 lang_specific_driver, and update code as necessary.
9747
50e60bc3
ZW
9748 * class.c (build_dtable_decl): Initialize dummy.
9749
f0f3a777
APB
97502000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
9751
9752 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
9753 method bodies not to rule out discarding `<clinit>'; don't use
9754 <clinit> to initialize static fields with constant initializers.
9755
97562000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
9757
9758 * gjavah.c (print_method_info): Added `synth' parameter. Skip
9759 synthetic methods.
9760 (method_synthetic): New global.
9761 (HANDLE_METHOD): Recognize synthetic method and tell
9762 `print_method_info' about it.
9763 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
9764 processing a synthetic method.
9765 * jcf-reader.c (skip_attribute): New function.
9766 ( skip_attribute): Likewise.
9767
97682000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
9769
9770 * parse.y (build_outer_field_access): Fixed comments.
9771 (fix_constructors): Emit the initialization of this$<n> before
9772 calling $finit$.
9773 (resolve_qualified_expression_name): Build an access to `decl' if
9774 necessary.
9775
97762000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
9777
9778 * parse-scan.y (curent_class): Non longer const.
9779 (inner_qualifier, inner_qualifier_length): Deleted.
9780 (current_class_length): New global.
9781 (bracket_count): Fixed typo in leading comment.
9782 (anonymous_count): New global.
9783 (class_instance_creation_expression:): Handle anonymous classes.
9784 (anonymous_class_creation:): New rule.
9785 (push_class_context): Rewritten.
9786 (pop_class_context): Likewise.
9787 (INNER_QUALIFIER): Macro deleted.
9788 (report_class_declaration): call `push_class_context' when
9789 entering the function. `fprintf' format modified not to use
9790 INNER_QUALIFIER.
9791 (report_class_declaration): Assign `package_name' and
a83f01f0 9792 `current_class' to NULL separately.
f0f3a777
APB
9793
97942000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
9795
9796 * expr.c (build_invokeinterface): Call layout_class_methods on
9797 target interface.
9798
13107ec0 97992000-07-27 Tom Tromey <tromey@cygnus.com>
f6bbde28 9800 Anthony Green <green@cygnus.com>
13107ec0
TT
9801 Alexandre Petit-Bianco <apbianco@cygnus.com>
9802
9803 * class.c (make_class_data): Create vtable for abstract classes.
9804 (get_dispatch_table): Changed to cope with abstract classes.
9805
da632f2c
APB
98062000-07-27 Tom Tromey <tromey@cygnus.com>
9807
9808 * parse.y (patch_method_invocation): Don't reverse the argument
9809 list when dealing with anonymous class constructors. Fixed typo in
9810 comment.
9811
98122000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
9813
9814 * parse.y (build_alias_initializer_parameter_list): Reverse
9815 crafted list when building aliases for anonymous class
9816 constructors.
9817
1e12ab9b
APB
98182000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
9819
9820 * parse.y (jdep_resolve_class): Don't bother checking potential
9821 innerclass access if `decl' is NULL.
9822 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
9823 WFL.
9824
4c31fe99
APB
98252000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
9826
9827 * parse.c: Remove (again.)
9828
1e12ab9b
APB
98292000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
9830
9831 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
9832 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
9833 outside the `if' statement, alias to innerclass removed, `decl'
9834 used to mark the class complete.
9835
f4530f43
APB
98362000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
9837
9838 * parse.y (simple_name:): Fixed typo in error message.
9839
e7c7bcef
APB
98402000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
9841
9842 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
9843 or its first operand can be error marks.
9844
98452000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
9846
9847 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
9848 * parse.y (method_header): Likewise.
9849
02ae6e2e
APB
98502000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
9851
9852 * parse.y (process_imports): Consider that one might be trying to
9853 import an innerclass. Fixes gcj/254
9854
e7c7bcef
APB
98552000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
9856
9857 * parse.y (find_as_inner_class): Handle the case where the
9858 enclosing context of an innerclass has been loaded as bytecode.
9859
4142b247
APB
98602000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
9861
f6bbde28 9862 * parse.y (simple_name:): Reject `$' in type names.
4142b247
APB
9863 (resolve_type_during_patch): Use `type' as a second
9864 argument to resolve_no_layout. Fixes gcj/257.
9865
cab8e2bd
BM
98662000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
9867
f6bbde28 9868 * parse.y (find_most_specific_methods_list): Select the only
cab8e2bd
BM
9869 non-abstract method even if max has been set.
9870 Fixes gcj/285, gcj/298.
9871
ca2875c4
JS
98722000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
9873
9874 * lang-specs.h: Added %(jc1) to java compiler options.
9875
bfbbc080
ZW
98762000-07-14 Zack Weinberg <zack@wolery.cumb.org>
9877
9878 * .cvsignore: New file.
9879
11b26d72
APB
98802000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
9881
9882 * parse.y (not_accessible_p): Access granted to innerclasses
9883 (indirectly) extending the reference type. Fixes gcj/249.
9884
98852000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
9886
9887 * parse.y (patch_method_invocation): Fixed comment.
9888 (maybe_use_access_method): Build this$<n>s to the context of the
9889 target method, or a type that extends it. Fixes gcj/242.
9890
649c9142
MM
98912000-07-13 Mark Mitchell <mark@codesourcery.com>
9892
9893 * parse.c: Remove.
9894
ee97d354
APB
98952000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
9896
9897 * parse.y (fold_constant_for_init): Avoid bullish conversion.
9898
44fadf1e
TT
98992000-07-13 Tom Tromey <tromey@cygnus.com>
9900
9901 * lang-specs.h: Added %{I*}.
9902
ea414c97
ZW
99032000-07-13 Zack Weinberg <zack@wolery.cumb.org>
9904
9905 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
9906
792abd35
MM
99072000-07-12 Mark Mitchell <mark@codesourcery.com>
9908
9909 * parse-scan.c: Remove.
9910
11b26d72
APB
99112000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
9912
9913 * class.c (set_super_info): Handled protected inner classes.
9914 (common_enclosing_context_p): Bail early if arguments aren't both
9915 inner classes.
9916 (get_access_flags_from_decl): Handle private and protected inner
9917 classes.
9918 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
9919 (CLASS_PROTECTED): Likewise.
dba41d30 9920 (struct lang_type): New bitfield `poic'.
11b26d72
APB
9921 * parse.y (jdep_resolve_class): Call check_inner_class_access on
9922 inner classes only.
9923 (check_inner_class_access): Renamed arguments, added
9924 comments. Handles protected inner classes (fixes gcj/225)
9925 (not_accessible_p): Fixed comments. Avoid handling inner classes.
9926
99272000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
9928
9929 * parse.y (resolve_qualified_expression_name): Verify qualified
dba41d30 9930 access to `this'. Fixes gcj/239.
11b26d72 9931
e67eb1a0 99322000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
2f2bd00a 9933
e67eb1a0
APB
9934 * jcf-write.c (generate_classfile): Don't install ConstantValue
9935 for null pointers.
2f2bd00a 9936
11b26d72
APB
99372000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9938
9939 * parse.y (resolve_qualified_expression_name): Handle inner class
9940 access. Fixes gcj/256.
9941
629d4b4d
APB
99422000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9943
9944 * jcf-write.c (generate_classfile): Properly install the
9945 ConstantValue attribute and the initial value constant pool index
9946 on string constants.
9947 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
9948 class files.
9949
0c2b8145
APB
99502000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
9951
9952 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
9953 construct.
9954 * parse.y (find_as_inner_class): Fixed typo.
9955 (do_resolve_class): Explore enclosing contexts when searching for
9956 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
9957 (check_inner_class_access): Check `decl' which can be null in case
9958 of previous errors.
9959
99602000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
9961
dba41d30 9962 * java-tree.h (java_debug_context): Declared `extern'.
0c2b8145
APB
9963 (safe_layout_class): Likewise.
9964 * parse.y (resolve_field_access): Field must be `static' in order
9965 to be replaced by its initial value. Added comments.
9966 (find_applicable_accessible_methods_list): Fixed typo.
9967 (find_most_specific_methods_list): Methods found in innerclasses
9968 take over methods founds in the enclosing contexts.
9969 (java_complete_tree): Loosen restrictions on the type of DECLs
9970 that can be replaced by their initialization values.
dba41d30 9971 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
0c2b8145 9972
0267da64
TT
99732000-07-05 Tom Tromey <tromey@cygnus.com>
9974
9975 * Make-lang.in (PARSE_DIR): New macro.
9976 (PARSE_RELDIR): Likewise.
9977 (PARSE_C): Likewise.
9978 (PARSE_SCAN_C): Likewise.
9979 ($(PARSE_C)): New target.
9980 ($(PARSE_SCAN_C)): Likewise.
9981 (SET_BISON): New macro.
9982 (BISONFLAGS): Likewise.
9983 (JAVABISONFLAGS): Likewise.
9984
1bbee75b
BM
99852000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
9986
f6bbde28
ZW
9987 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
9988 argument on the first pass for CNI as well as JNI.
9989 (print_method_info): Set up method name on the first pass only.
9990
98a52c2c
APB
99912000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
9992
9993 * parse.y (parser_qualified_classname): Removed parameter
9994 `is_static'.
9995 (create_interface): Removed first passed parameter to
9996 parser_qualified_classname.
9997 (create_class): Likewise. Don't install alias on static
9998 innerclasses. Fixes gcj/275.
9999
100002000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
10001
10002 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
10003 debugable statement with empty_stmt_node. Fixes gcj/272
10004
100052000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
10006
10007 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
10008 gcj/271.
10009
c1c8f8cc
APB
100102000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
10011
10012 * jcf-write.c (push_long_const): Appropriately cast short negative
10013 constant to jword.
10014
cf1b2274
APB
100152000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
10016
10017 * parse.y (verify_constructor_super): Use loop variable
10018 `m_arg_type' initialized with `mdecl_arg_type'.
10019
6eaeeb55
TT
100202000-06-29 Tom Tromey <tromey@cygnus.com>
10021
10022 * parse.y (resolve_field_access): Handle case where `type_found'
10023 is NULL.
10024
18ee3d5e
APB
100252000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
10026
10027 * expr.c (lookup_field): The same field can be found through two
10028 different interface. Don't declare it ambiguous in that case.
10029
61d5c158
TT
100302000-06-27 Tom Tromey <tromey@cygnus.com>
10031
10032 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
10033 follows \r, then unget it at a lower level.
10034
70541f45
TT
100352000-06-26 Tom Tromey <tromey@cygnus.com>
10036
10037 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
10038 java_complete_tree.
10039
774d2baf
TT
100402000-06-25 Tom Tromey <tromey@cygnus.com>
10041
10042 * parse.y (for_statement): Wrap expression in a WFL if it is a
10043 constant. For PR gcj/268.
10044
d6baf6f5
APB
100452000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
10046
10047 * parse.y (do_resolve_class): Minor optimiztion in the package
17126208 10048 list search. Removed unnecessary test and return statement.
d6baf6f5
APB
10049 (valid_ref_assignconv_cast_p): Order of arguments to
10050 enclosing_context_p fixed.
10051
120f0c10
TT
100522000-06-24 Tom Tromey <tromey@cygnus.com>
10053
ae4a4c88
TT
10054 * expr.c (lookup_field): Print error and return error_mark_node if
10055 field reference is ambiguous.
10056
120f0c10
TT
10057 * parse.y (check_abstract_method_definitions): Also check if
10058 `other_method' is abstract.
10059
cf1748bf
APB
100602000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
10061
10062 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
10063 classes.
10064 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
dba41d30 10065 (struct lang_type): New field `pic'.
cf1748bf
APB
10066 (CLASS_PRIVATE): New macro.
10067 * parse.y (check_inner_class_access): New function.
10068 (jdep_resolve_class): Call it.
10069
f1ff439a
TT
100702000-06-23 Tom Tromey <tromey@cygnus.com>
10071
10072 * parse.y (patch_incomplete_class_ref): Initialize the returned
10073 class. For PR gcj/260.
10074
9a7ab4b3
APB
100752000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
10076
10077 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
10078
100792000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
10080
10081 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
10082 Java specific checks.
10083 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
10084 screened by DECL_P.
10085 * java-tree.def (CASE_EXPR): Marked 'e'.
10086 (DEFAULT_EXPR): Likewise.
10087 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
10088 screened by DECL_P.
10089 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
10090 Java specific checks.
10091 (generate_bytecode_insns): Test try_block for BLOCK before using
10092 BLOCK_EXPR_BODY.
10093 * parse.y (build_wfl_wrap): Added `location' argument. Set
10094 EXPR_WFL_LINECOL accordingly.
10095 (dim_expr:): Wrap constants with WFLs.
10096 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
10097 (resolve_package): Check for `stmt' not being a BLOCK before
10098 building a debuggable statement with it.
10099 (make_qualified_primary): Added extra parameter to build_wfl_wrap
10100 invocation.
10101 (resolve_field_access): Make sure `decl' is a DECL before treating
10102 it as such.
10103 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
10104 IDENTIFIER_NODE before treating it as such.
10105 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
10106 treating it as such.
10107 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
10108 to be applied only on non array types.
10109
101102000-06-16 Per Bothner <per@bothner.com>
10111
10112 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
10113 define in terms of DECL_RESULT, as that fails when --enable-checking.
f6bbde28 10114
ffb1f63d
KG
101152000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10116
10117 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
10118 types the same in comparison.
10119 (CHECK_OP): Add static prototype.
10120
11cf4d18
JJ
101212000-06-13 Jakub Jelinek <jakub@redhat.com>
10122
10123 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
10124 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
10125 * parse.c: Rebuilt.
10126
5ac9118e
KG
101272000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10128
10129 * decl.c (create_primitive_vtable): Prototype.
10130
10131 * jcf-write.c (generate_bytecode_insns): Initialize variable
10132 `saved_context'.
10133
10134 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
10135
ad69b5b6
BM
101362000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
10137
10138 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
10139 to track searched classes, and do not search the same class more than
10140 once. Call find_applicable_accessible_methods_list on immediate
10141 superclass, instead of search_applicable_method_list on all ancestors.
10142 Fix for PR gcj/238.
10143
cf1748bf
APB
101442000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
10145
10146 * parse.y (register_fields): Permit static fields in inner classes
10147 if they are final. Fix for PR gcj/255.
10148
9a7ab4b3
APB
101492000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
10150
10151 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
10152 * parse.y (find_in_imports): Returned type changed to void,
10153 leading comment fixed.
10154 (register_package): New function.
10155 (qualify_and_find): Likewise.
10156 (package_declaration:): Use `register_package'.
10157 (single_type_import_declaration:): Removed local variable
10158 `node'. Added missing `;' for consistency.
10159 (type_import_on_demand_declaration:): Use `chainon' to link new
10160 entries.
10161 (lookup_field_wrapper): Lookup local variables defined in outer
10162 contexts first.
10163 (java_complete_class): Don't reverse the list of imported on demand.
10164 (do_resolve_class): Reorganized. Removed local variable
10165 `original_name'. Call `qualify_and_find' with the current package
10166 name, invoke `find_in_imports_on_demand' right after. Call
10167 `qualify_and_find' with the packages we've seen so far. Fixed
10168 operations numbering in comments.
10169 (java_expand_class): Don't reverse `package_list'.
10170 (find_most_specific_methods_list): New local variables `abstract'
10171 and `candidates'. Use them to pick the right method.
10172
62c9aa5f 101732000-06-06 Tom Tromey <tromey@ferrule.cygnus.com>
14d075d8
TT
10174
10175 * parse.y (check_modifiers_consistency): Don't subtract out
10176 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
10177
603832a0
PT
101782000-06-04 Philipp Thomas <pthomas@suse.de>
10179
10180 * Makefile.in (INTLLIBS): New.
10181 (LIBS): Add above.
10182 (DEPLIBS): Ditto.
10183
62c9aa5f 101842000-06-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
8f975c18
APB
10185
10186 * class.c (get_dispatch_table): Build the vtable dummy entry list
e64c46ce 10187 element with a null purpose. Fixed leading comment.
8f975c18 10188 (build_dtable_decl): Build an accurate dtable type when appropriate
e64c46ce 10189 and use it.
8f975c18 10190
2e761e49
RH
101912000-06-02 Richard Henderson <rth@cygnus.com>
10192
10193 * lang.c (lang_get_alias_set): New.
10194
0f145be8
APB
101952000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
10196
10197 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
10198 before using it as the accessed field.
10199
2771fe54
TT
102002000-05-31 Tom Tromey <tromey@cygnus.com>
10201
10202 * java-tree.h (boolean_array_vtable, byte_array_vtable,
10203 char_array_vtable, short_array_vtable, int_array_vtable,
10204 long_array_vtable, float_array_vtable, double_array_vtable):
10205 Declare.
10206 * expr.c (get_primitive_array_vtable): New function.
10207 (create_primitive_vtable): New function.
10208 (java_lang_expand_expr): Enable code to statically generate
10209 arrays.
10210 * decl.c (init_decl_processing): Create primitive vtables.
10211 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
10212 short_array_vtable, int_array_vtable, long_array_vtable,
10213 float_array_vtable, double_array_vtable): Define.
10214
30a3caef
ZW
102152000-05-26 Zack Weinberg <zack@wolery.cumb.org>
10216
10217 * java/parse.y (find_applicable_accessible_methods_list):
10218 Don't add an uninitialized value to the list.
10219
b8c5b1c6
TT
102202000-05-25 Tom Tromey <tromey@cygnus.com>
10221
40aaba2b
TT
10222 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
10223 when trying to see if field's class should be initialized. Always
10224 initialize field's declaring class, not qualified class.
10225 For PR gcj/162.
10226
b8c5b1c6
TT
10227 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
10228 `wfl_operator', to maybe_build_primttype_type_ref.
10229 Fixes PR gcj/235.
10230
6518c7b5
BM
102312000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
10232
10233 * parse.y (patch_method_invocation): Don't try to lookup methods
10234 in primitive types.
10235
611a4b87
APB
102362000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
10237
10238 * parse.y (resolve_field_access): Call the appropriate <clinit>
10239 before accessing the length of a static array. Craft a decl for
10240 the field while its time. Fixes PR gcj/129.
f6bbde28 10241
6b48deee
APB
102422000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
10243
10244 * parse.y (resolve_package): Correctly set `*next' (was off by
10245 one.)
10246 (resolve_qualified_expression_name): Fixed comment.
10247
62c9aa5f 102482000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
0ba154aa 10249
f6bbde28 10250 * jcf-parse.c (jcf_parse_source): Reset current_class and
e64c46ce 10251 current_function_decl to NULL before parsing a new file.
0ba154aa 10252
62c9aa5f 102532000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
c280e37a
APB
10254
10255 * parse.y (block_end:): If the collected block doesn't feature a
e64c46ce 10256 statement, insert an empty statement.
c280e37a 10257
92d83515
APB
102582000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
10259
f6bbde28
ZW
10260 * parse.y (maybe_yank_clinit): New function.
10261 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
10262 end of the list of methods belonging to a class.
10263 (java_complete_expand_method): Check whether <clinit> is really
10264 necessary and expand it accordingly.
92d83515 10265
ec5bb3cf
APB
102662000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
10267
10268 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
10269 processed by the method's switch statement.
10270
67db0ce7
TT
102712000-05-19 Tom Tromey <tromey@cygnus.com>
10272
10273 * java-tree.h: Added init state enum.
10274 * decl.c (emit_init_test_initialization): Initialize class
10275 initialization check variable by looking at class' state.
10276
43490bec
TT
102772000-05-19 Tom Tromey <tromey@cygnus.com>
10278
10279 * java-tree.h (build_instanceof): Declare.
10280 (build_get_class): Declare.
10281 * parse.y (patch_binop): Use build_instanceof.
10282 * expr.c (build_instanceof): New function. If class is final,
10283 don't make a function call.
10284 (expand_java_INSTANCEOF): Use it.
10285 (build_get_class): New function.
10286
062edaed
AO
102872000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10288
10289 * jcf-write.c (generate_classfile): Scan the source_file for
10290 slashes with the right pointer variable.
10291
62c9aa5f 102922000-05-17 Andrew Cagney <cagney@b1.cygnus.com>
078721e1
AC
10293
10294 * lang.c (lang_decode_option): Update -Wunused flags by calling
e64c46ce 10295 set_Wunused.
078721e1
AC
10296 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
10297
46543024 102982000-05-09 Zack Weinberg <zack@wolery.cumb.org>
3b304f5b
ZW
10299
10300 * check_init.c (check_init): Constify local char *.
10301 * class.c (push_class): Constify local char *.
10302 * java_tree.h: Update prototypes.
10303 * jcf-io.c (open_class): Constify filename parameter and
10304 return value.
10305 (find_class): Remove redundant string copy. Cast return from
10306 open_class.
10307 * jcf-parse.c (read_class, parse_class_file, yyparse):
10308 Constify local char *.
10309 * jcf-write.c (generate_bytecode_insns, generate_classfile):
10310 Constify local char *.
10311 * jcf.h (JCF): Constify filename and classname.
10312 (JCF_FINISH): Cast args to FREE to char * when appropriate.
10313 * lang.c (init_parse): Constify parameter and return value.
10314 * lex.c (java_get_line_col): Constify filename parameter.
10315 * parse.h: Constify parser_ctxt.filename. Update prototypes.
10316 * parse.y (java_parser_context_suspend,
10317 issue_warning_error_from_context, safe_layout_class): Constify
10318 local char *.
10319 * parse.c: Regenerate.
10320
4c6a8973
TT
103212000-05-08 Tom Tromey <tromey@cygnus.com>
10322
10323 * expr.c (build_jni_stub): Cache the result of
10324 _Jv_LookupJNIMethod.
10325
e117276e
APB
103262000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
10327
10328 * decl.c (predef_filenames_size): Now 7.
10329 (predef_filenames): New seventh entry.
10330
652f2504
TT
103312000-05-04 Tom Tromey <tromey@cygnus.com>
10332
10333 * boehm.c (mark_reference_fields): Don't mark RawData fields.
10334 Keep track of when we've seen a reference field after a
10335 non-reference field.
10336 (get_boehm_type_descriptor): Handle case where we see
10337 non-reference fields but no trailing reference field.
10338 * decl.c (rawdata_ptr_type_node): Define.
10339 (init_decl_processing): Initialize rawdata_ptr_type_node.
10340 * java-tree.h (rawdata_ptr_type_node): Declare.
10341
ccedaff3
KG
103422000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10343
10344 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
10345 specifiers in calls to fprintf.
10346
dd5d6281
TT
103472000-05-03 Andrew Haley <aph@cygnus.com>
10348
10349 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
10350
10351 * javaop.h (WORD_TO_INT): New function.
10352 (IMMEDIATE_s4): Use WORD_TO_INT.
10353 * jcf.h (JPOOL_INT): Ditto.
10354
10355 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
10356 separator.
10357
dd5d6281 103582000-04-19 Tom Tromey <tromey@cygnus.com>
7145d9fe
TT
10359
10360 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
10361 on native function.
10362 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
10363 JNI methods.
10364 * expr.c (build_jni_stub): New function.
10365 * lang-specs.h: -fjni and -femit-class-file are incompatible.
10366 * parse.c: Rebuilt.
10367 * parse.y (java_complete_expand_methods): Expand a native method
10368 and call build_jni_stub if -fjni given.
10369 * lang-options.h: Document -fjni.
10370 * lang.c (flag_jni): New global.
10371 (lang_f_options): Added `jni' entry.
10372 * java-tree.h (soft_lookupjnimethod_node,
10373 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
10374 Declare.
10375 (flag_jni): Declare.
10376 (build_jni_stub): Declare.
10377 (struct lang_decl): Added `native' flag.
10378 (METHOD_NATIVE): Redefined to use `native' field of lang specific
10379 structure.
10380 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
10381 soft_jnipopsystemframe_node): New globals.
10382 (init_decl_processing): Set them. _Jv_InitClass only takes one
10383 argument.
10384
10385 * java-tree.def: Put into `C' mode.
10386
e815887f
TT
103872000-04-27 Tom Tromey <tromey@cygnus.com>
10388
10389 Fix for PR gcj/2:
10390 * expr.c (expand_invoke): Generate check to see if object pointer
10391 is null in nonvirtual invocation case.
10392 * java-tree.h (soft_nullpointer_node): Declare.
10393 * decl.c (soft_nullpointer_node): New global.
10394 (init_decl_processing): Initialize soft_nullpointer_node.
10395 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
10396 or `private' methods.
10397 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
10398
62c9aa5f 103992000-04-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
ad81223c
APB
10400
10401 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
e64c46ce 10402 from <clinit>
ad81223c 10403
f1acc01e
TT
104042000-04-26 Tom Tromey <tromey@cygnus.com>
10405
10406 * zextract.c (find_zip_file_start): New function.
10407 (read_zip_archive): Use it.
10408
e803d3b2
APB
104092000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
10410
10411 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
10412
152de068
APB
104132000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
10414
10415 * class.c (common_enclosing_context_p): New function.
10416 * java-tree.h (common_enclosing_context_p): Added prototype.
10417 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
10418 classes sharing an outer context with the current instance.
10419 * parse.y (build_access_to_thisn): Fixed leading comment.
10420 (verify_constructor_super): New local `supper_inner'. Skip
10421 enclosing context argument in the case of inner class constructors.
10422 (patch_method_invocation): Insert proper context as second
10423 parameter to pure inner class constructor super invocations.
10424
62c9aa5f 104252000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
93220702
APB
10426
10427 * parse.y (end_class_declaration): Reset the interface number
e64c46ce 10428 counter.
93220702 10429
dfb99c83
APB
104302000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
10431
17126208 10432 * parse.y (source_start_java_method): Deleted unnecessary code.
f6bbde28 10433 (patch_method_invocation): Fixed comment.
dfb99c83 10434
e60a8c26
RL
104352000-04-24 Robert Lipe <robertlipe@usa.net>
10436
10437 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
10438
3c8c10b8
TT
104392000-04-23 Tom Tromey <tromey@cygnus.com>
10440
10441 * boehm.c (mark_reference_fields): Use int_byte_position.
10442
8a008c41
TT
104432000-04-22 Tom Tromey <tromey@cygnus.com>
10444
10445 * boehm.c (mark_reference_fields): Only call byte_position on
10446 non-static fields.
10447
d5f76aba
TT
104482000-04-22 Tom Tromey <tromey@cygnus.com>
10449
10450 * boehm.c (mark_reference_fields): Added `last_view_index'
10451 argument. Use DECL_FIELD_OFFSET to determine field's offset.
10452
62c9aa5f 104532000-04-20 Mo DeJong <mdejong@cygnus.com>
a40d21da
APB
10454
10455 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
10456 * parse.y (check_class_interface_creation): Fixed comments. Select
e64c46ce
AJ
10457 permitted modifiers for (inner) interfaces. Changed error message
10458 to report rejected modifiers used with local classes.
a40d21da
APB
10459
104602000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
10461
10462 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
10463 of directly inherited type considered in scope.
10464 * parse.y (do_resolve_class): Search inherited classes for inner
10465 classes.
10466
473e7b07
TT
104672000-04-20 Tom Tromey <tromey@cygnus.com>
10468
10469 * parse.y (not_accessible_p): Use member's class, not current
10470 class, when doing inheritance check for protected reference.
10471 Fixes PR gcj/124.
10472
62c9aa5f 104732000-04-20 Jason Schroeder <shrode@subnature.com>
c52fbf0f
JS
10474
10475 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
10476
f2760b27
APB
104772000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
10478
10479 * parse.y (lookup_field_wrapper): Search for final local aliases.
10480 (resolve_expression_name): Let lookup_field_wrapper search for
10481 final local aliases. Force the value of `name' if one is found.
10482 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
10483 an expression name. Fixed comments.
10484
807bc1db
APB
104852000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
10486
10487 * parse.y (yyerror): `msg' can be null, don't use it in that case.
10488
ecb36604
TT
104892000-04-19 Tom Tromey <tromey@cygnus.com>
10490
10491 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
10492
48a840d9
APB
104932000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
10494
10495 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
10496
83c1f628
TT
104972000-04-18 Tom Tromey <tromey@cygnus.com>
10498
10499 PR gcj/211:
10500 * gjavah.c (utf8_cmp): Changed return value.
10501 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
10502 result.
10503 (cxx_keywords): New global.
10504 (get_field_name): Handle new result of cxx_keyword_subst.
10505 (print_method_info): Likewise.
10506
a7384840
BM
105072000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
10508
f6bbde28 10509 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
a7384840 10510 with a newline, for CNI.
f6bbde28 10511 (print_stub_or_jni): Print a space or newline before method name for
a7384840
BM
10512 CNI as well as JNI.
10513 (print_cxx_classname): Don't write leading "::" in CNI stub method.
f6bbde28 10514 (process_file): Include gcj/cni.h if generating CNI stubs.
a7384840 10515
3e0768f0
TT
105162000-04-16 Tom Tromey <tromey@cygnus.com>
10517
10518 * gjavah.c (decompile_method): Use print_field_name.
10519 Fixes PR gcj/205.
10520
48a840d9
APB
105212000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
10522
10523 * parse.y (java_expand_classes): Reverse the package list once.
10524 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
10525 reduction.
10526 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
10527 the `==' and `!=' operators.
10528
cedea510
APB
105292000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
10530
67264b4f 10531 * jcf-write.c (generate_bytecode_insns): At invocation time,
cedea510 10532 always relate an interface method to the type of its selector.
f6bbde28 10533
e803d3b2
APB
105342000-04-05 Tom Tromey <tromey@cygnus.com>
10535
10536 Fix for PR gcj/2:
10537 * expr.c (expand_invoke): Generate check to see if object pointer
10538 is null in nonvirtual invocation case.
10539 * java-tree.h (soft_nullpointer_node): Declare.
10540 * decl.c (soft_nullpointer_node): New global.
10541 (init_decl_processing): Initialize soft_nullpointer_node.
10542 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
10543 or `private' methods.
10544 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
10545
bc2874c9
TT
105462000-04-05 Tom Tromey <tromey@cygnus.com>
10547
10548 Fix for PR gcj/140:
10549 * parse.y (check_final_assignment): Recognize assignments to the
10550 `length' field of an array when generating class files.
10551
256172c4
APB
105522000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
10553
10554 * class.c (decl_hash): Prototype removed.
10555 (decl_compare): Likewise.
10556
e0fc4118
TT
105572000-04-05 Tom Tromey <tromey@cygnus.com>
10558
10559 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
10560 * parse.y (check_modifiers_consistency): Check for final/volatile
10561 clash. Fixes PR gcj/164.
10562
e0422ed0
APB
105632000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
10564
10565 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
10566 made global.
10567 (java_hash_compare_tree_node): Renamed from `decl_compare, made
10568 global.
10569 (add_method_1): Use `java_hash_hash_tree_node' and
10570 `java_hash_compare_tree_node'.
10571 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
10572 (java_hash_compare_tree_node): Likewise.
10573 * parse.y (find_applicable_accessible_methods_list): Create,
10574 delete and use a hash table to remember already searched interfaces.
10575
4200941b
MW
105762000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
10577
10578 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
10579 with latest entry.
10580
c0b864fc
KG
105812000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10582
10583 * boehm.c (mark_reference_fields, set_bit): Prototype.
10584 (set_bit): Un-ANSI-fy definition.
10585
10586 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
10587 Prototype.
10588
10589 * decl.c (emit_init_test_initialization): Likewise.
10590
10591 * gjavah.c (jni_print_char): Likewise.
10592
10593 * parse.y (create_new_parser_context): Likewise.
10594
62c9aa5f 105952000-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
64ea4a5e
APB
10596
10597 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
10598 patch missing hunk. Fixed indentation.
10599
05411ecf
TT
106002000-03-30 Tom Tromey <tromey@cygnus.com>
10601
10602 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
10603 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
10604
acbedd7c
APB
106052000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
10606
10607 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
10608 when negative *before* using it as an array index.
10609 * ChangeLog: Fixed typo.
10610
0981a859
APB
106112000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
10612
10613 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
10614 to 0 when it reaches -1.
10615
106162000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
10617
10618 * jcf-parse.c (get_constant): Properly cast `num' during the
acbedd7c 10619 invocation of `add_double'.
0981a859
APB
10620 * jcf-write.c (push_long_const): Properly cast `lo' before
10621 comparing it to short bounds.
10622 * parse-scan.y (interface_declaration:): Rule re-arrange so that
10623 `interface_body:' is reduced after the current interface is
10624 pushed.
10625
a843e0ce
TT
106262000-03-26 Tom Tromey <tromey@cygnus.com>
10627
10628 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
10629 Java-specific `-f' option.
10630
62c9aa5f 106312000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
ad41cc2a
RK
10632
10633 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
10634 Adjust order of making types.
10635 Make bitsize_*_node values.
10636
62c9aa5f 106372000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
770ae6cc
RK
10638
10639 * class.c (make_field_value): Use byte_position.
10640 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
10641 (java_array_data_offset): Likewise.
10642 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
10643 bzero call.
10644
165f37bc
APB
106452000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
10646
10647 * parse.y (check_abstract_method_definitions): New local
10648 `end_type_reached'. Make sure we also consider `end_type'.
0981a859
APB
10649 (java_check_abstract_method_definitions): Make sure we eventually
10650 consider `java.lang.Object'.
10651 (maybe_use_access_method): Don't use access method if not in the
10652 context of a pure inner class or if the method's context is right.
10653 (find_applicable_accessible_methods_list): New static flag
165f37bc 10654 `object_done'. Don't search abstract classes as interfaces. Fixed
0981a859
APB
10655 indentation. Fixed the `java.lang.Object' only search. Search
10656 class interface(s) first, then fully search enclosing contexts.
10657 (find_most_specific_methods_list): Pick the closest candidate when
165f37bc
APB
10658 they're all abstract.
10659
62c9aa5f 106602000-03-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
124906f9
APB
10661
10662 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
dba41d30 10663 properly initialize `finished_label'. Don't emit gotos for empty
124906f9
APB
10664 try statements.
10665
cd8394dd 106662000-03-19 Martin v. Loewis <loewis@informatik.hu-berlin.de>
c14f7160
ML
10667
10668 * except.c (emit_handlers): Clear catch_clauses_last.
10669
165f37bc
APB
106702000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
10671
10672 * parse.y (check_method_types_complete): New function.
10673 (create_class): Reset anonymous class counter only when seeing an
10674 non inner classe.
10675 (java_complete_class): JDEP_METHOD: Don't recompute signature
10676 if incomplete.
10677
106782000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
10679
10680 * class.c (build_static_ref): Fixed indentation in comment.
10681 * java-tree.def (TRY_EXPR): Fixed typo in name.
10682 (CLASS_LITERAL): Likewise.
10683 * java-tree.h: (TYPE_DOT_CLASS): New macro.
10684 (struct lang_type): New field `dot_class'.
10685 * jcf-write.c (generate_bytecode_insns): Fixed error message.
10686 (generate_classfile): Method `class$' is synthetic.
10687 * parse.y (build_do_class_method): New function.
10688 (build_dot_class_method_invocation): Likewise.
10689 (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
10690 (resolve_qualified_expression_name): Handle CLASS_LITERAL.
10691 (qualify_ambiguous_name): Likewise.
10692 (patch_incomplete_class_ref): Invoke synthetic method if necessary.
10693 (build_try_statement): Fixed leading comment.
10694
62c9aa5f 106952000-03-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
665f2503
RK
10696
10697 * class.c (make_field_value): Properly handle sizes.
10698 (get_dispatch_vector): Use tree_low_cst and host_integerp.
10699 (layout_class_method): Count using trees.
10700 * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
10701 * expr.c (java_array_data_offset): Use int_bit_position.
10702 (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
10703 (build_invokevirtual): Use tree_low_cst and do computations with trees.
f6bbde28 10704
64aa33dd
TT
107052000-03-16 Tom Tromey <tromey@cygnus.com>
10706
10707 * lang.c (flag_hash_synchronization): New global.
10708 (lang_f_options): Added `hash-synchronization'.
10709 * lang-options.h: Mention -fhash-synchronization.
10710 * java-tree.h (flag_hash_synchronization): Declare.
10711 * expr.c (java_lang_expand_expr): Only push `sync_info' value when
10712 hash table synchronization is disabled.
10713 * decl.c (init_decl_processing): Only push `sync_info' value when
10714 hash table synchronization is disabled.
10715 * class.c (make_class_data): Only push `sync_info' field when hash
10716 table synchronization is disabled. Removed dead code.
10717
ae23f3ed
TT
107182000-03-16 Tom Tromey <tromey@cygnus.com>
10719
10720 * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
10721
165f37bc
APB
107222000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
10723
10724 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
10725 classes.
10726 * parse.y (patch_method_invocation): Handle anonymous classes
10727 creation in static context.
10728
107292000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
10730
10731 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
10732 * parse.y (resolve_qualified_expression_name): Use it.
10733 (patch_method_invocation): Likewise.
10734
107352000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
10736
10737 * parse.y (register_incomplete_type): JDEP_ENCLOSING set
10738 depending on the type of dependency which dictates what the
10739 current class is.
10740 (unresolved_type_p): Resolved types limited to the current class.
10741
2c6c322a
TT
107422000-03-15 Tom Tromey <tromey@cygnus.com>
10743
10744 * decl.c (init_decl_processing): Set type of `sync_info' to be
10745 pointer to Object.
10746
10747 * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
10748 Correctly compute bit number for current slot. Zero `high' and
10749 `low' in DS_LENGTH case. Don't skip inherited fields. Use
10750 mark_reference_fields.
10751 (mark_reference_fields): New function.
10752
62c9aa5f 107532000-03-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
324ed8fd
APB
10754
10755 * parse.y (register_incomplete_type): Fixed initialization of
10756 JDEP_ENCLOSING.
10757
0981a859
APB
107582000-02-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
10759
10760 * parse-scan.y (inner_qualifier, inner_qualifier_length): New
10761 static globals.
10762 (push_class_context, pop_class_context): New function.
10763 (class_body:): Call pop_class_context.
10764 (interface_body:): Likewise.
10765 (INNER_QUALIFIER): New macro.
10766 (report_class_declaration): Changed output format and use
10767 INNER_QUALIFIER. Call push_class_context.
10768
d77a712d
AH
107692000-02-14 Andrew Haley <aph@cygnus.com>
10770
f6bbde28
ZW
10771 * check-init.c (check_init): Add new cases for unary and binary
10772 tree nodes.
d77a712d 10773
dde1da72
APB
107742000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
10775
10776 * parse.y (resolve_package): Set `next' once a type name has been
10777 progressively discovered.
10778 (resolve_qualified_expression_name): Propagate resolution only if
10779 there are remaining qualifiers. Take into account `q' might have
10780 been cleared after re-qualification.
10781 * parse.y (patch_method_invocation): New local `resolved'.
e64c46ce
AJ
10782 Section dealing with qualified expression rewritten to use
10783 resolve_field_access.
dde1da72 10784
62c9aa5f 107852000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
10786
10787 * parse.h (PUSH_CPC): Fixed indentation.
10788 (DEBUG_CPC): New macro.
10789 (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
e64c46ce 10790 SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
c2952b01 10791 * parse.y (class_body_declaration:): Use
e64c46ce 10792 SET_CPC_INSTANCE_INITIALIZER_STMT.
c2952b01
APB
10793 (method_declaration:): Check for null current_function_decl.
10794 (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
10795 (java_parser_context_pop_initialized_field): Better handling of
e64c46ce 10796 empty lists.
c2952b01 10797 (maybe_make_nested_class_name): Mark nested class name as
e64c46ce 10798 qualified when necessary.
c2952b01 10799 (end_class_declaration): Don't call java_parse_context_resume when
a83f01f0 10800 one or more error occurred.
c2952b01
APB
10801 (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
10802 (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
e64c46ce 10803 SET_CPC_INITIALIZER_STMT.
c2952b01
APB
10804 (method_header): Check for inner classes declaring static methods.
10805 (resolve_qualified_expression_name): Handle situation where `this'
e64c46ce 10806 is implied.
c2952b01 10807
62c9aa5f 108082000-03-13 Hans Boehm <boehm@acm.org>
46089b86
HB
10809
10810 * typeck.c (build_prim_array_type): Correctly set the high word too.
10811
c2952b01
APB
108122000-03-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
10813
10814 * parse.y (java_complete_expand_methods): Leave <clinit> out of
10815 ordinary methods.
10816 (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
10817 list of methods for interfaces.
10818
cd7c5840
APB
108192000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
10820
10821 * parse.y (qualify_ambiguous_name): Properly handle expressions
10822 using `null'.
f6bbde28 10823
6632dcdd
APB
108242000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
10825
10826 * parse.y (check_final_assignment): Extended to process
10827 COMPOUND_EXPR.
10828 (patch_assignment): Have check_final_assignment called only once.
10829
1729c265
APB
108302000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
10831
10832 * java-tree.h (IS_INIT_CHECKED): New flag.
10833 * check-init.c (check_init): Test and set IS_INIT_CHECKED.
10834 * parse.y (patch_string): Call force_evaluation_order on the
10835 completed string concatenation tree.
10836 * expr.c (force_evaluation_order): Call force_evaluation_order on
f6bbde28 10837 function's arguments too.
1729c265 10838
62c9aa5f 108392000-03-06 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
05bccae2
RK
10840
10841 * decl.c (emit_init_test_initialization): Mark KEY as unused.
10842 * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
10843 (build_anewarray): Likewise.
10844 * parse.y (patch_newarray): Likewise.
10845 * parse.c: Regenerated.
10846
173f556c
BM
108472000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
10848
10849 * decl.c (init_decl_processing): Added new class fields `depth',
10850 `ancestors', and `idt' to class_type_node. Use
10851 _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
10852 * class.c (make_class_data): Push initial values for new fields.
10853 * java-tree.h: Updated prototype for `build_invokeinterface'.
10854 * expr.c (build_invokeinterface): Changed parameters to accept
10855 `method' tree. Calculate index of `method' in its declaring
10856 interface. Build call to _Jv_LookupInterfaceMethodIdx.
10857 (expand_invoke): Call `build_invokeinterface' with new parameters.
10858 * parse.y (patch_invoke): Call `build_invokeinterface' with new
10859 parameters.
10860
614eaae0
APB
108612000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
10862
10863 * typeck.c (lookup_do): Search superinterfaces first
10864 when looking up an interface method. From Godmar Back
10865 <gback@cs.utah.edu>
10866
c2952b01
APB
108672000-03-06 Tom Tromey <tromey@cygnus.com>
10868
10869 * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
10870
614eaae0
APB
108712000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
10872
10873 * java-tree.h (lookup_argument_method2): Declared.
10874 (safe_layout_class): Prototype moved from parse.h.
10875 * parse.h (safe_layout_class): Prototype moved to java-tree.h.
10876 * parse.y (java_check_regular_methods): Local `super_class' gone.
10877 Call lookup_argument_method2 instead of lookup_argument_method.
10878 Perform modifier match for methods found declared in implemented
10879 interfaces. Fixed indentation problem. Overriding/hiding error
10880 report to take place only for methods found in classes.
10881 * typeck.c (lookup_argument_method): Changed leading
10882 comment. Re-written by calling lookup_do.
10883 (lookup_argument_method2): New function.
10884 (lookup_java_method): Re-written by calling lookup_do.
10885 (lookup_do): New function.
10886
62c9aa5f 108872000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
01447dce 10888
c2952b01 10889 * check-init.c (check_init): Removed dead code. Handle (blank)
e64c46ce 10890 final variables.
c2952b01 10891 * parse.y (declare_local_variables): New local `final_p', set it
e64c46ce 10892 and use it to initialize LOCAL_FINAL.
c2952b01 10893 (check_final_assignment): Only check FIELD_DECLs.
01447dce 10894
5830574a
TT
108952000-02-17 Tom Tromey <tromey@cygnus.com>
10896
10897 * Makefile.in (JAVA_OBJS): Added boehm.o.
10898 (boehm.o): New target.
10899 * Make-lang.in (JAVA_SRCS): Added boehm.c.
10900 * java-tree.h (flag_use_boehm_gc): Declare.
10901 (get_boehm_type_descriptor): Declare.
10902 * lang.c (lang_f_options): Added `use-boehm-gc'.
10903 (flag_use_boehm_gc): New global.
10904 * lang-options.h: Added -fuse-boehm-gc.
10905 * boehm.c: New file.
10906 * class.c (get_dispatch_table): If class uses a Boehm type
10907 descriptor, put it in the vtable.
10908 (make_class_data): Removed dead code.
10909
4a7f1935
PB
109102000-03-03 Per Bothner <per@bothner.com>
10911
10912 * decl.c (init_decl_processing): Initialize sizetype properly.
10913
c2952b01
APB
109142000-03-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
10915
10916 * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
10917 (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
f6bbde28 10918 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
c2952b01
APB
10919 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
10920 (jcf_parse): New local `current'. Load innerclasses seen in outer
10921 context being processed.
10922 * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
10923 * jcf-write.c (append_innerclasses_attribute): New function.
10924 (append_innerclasses_attribute_entry): Likewise.
10925 (get_access_flags): Handle static classes. Set anonymous and local
10926 classes to be private.
10927 (generate_classfile): Attribute count adjusted. Call
10928 append_innerclasses_attribute.
10929 * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
10930 PURE_INNER_CLASS_TYPE_P.
10931 * parse.y (parser_qualified_classname): New parameter `is_static',
10932 produce non qualified name accordingly.
10933 (block_statement:): Set LOCAL_CLASS_P when declaring local class.
10934 (create_interface): Added argument to parser_qualified_classname.
10935 (create_class): Added argument to parser_qualified_classname. Setup
10936 alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
10937 (add_inner_class_fields): Fixed indentation.
10938 (method_declarator): Use PURE_INNER_CLASS_DECP_P.
10939 (method_declarator): Fixed typo in comment.
10940 (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
10941 (build_current_thisn): Likewise.
10942 (patch_method_invocation): Likewise.
10943
00262c8a
ML
109442000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de>
10945
10946 * decl.c (current_function_decl): Move to toplev.c.
10947
62c9aa5f 109482000-02-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9df2c88c
RK
10949
10950 * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
10951 (DECL_BIT_INDEX): Use underlying representation.
10952 * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
10953
62c9aa5f 109542000-02-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
fed3cef0
RK
10955
10956 * expr.c (build_java_ret): Pass proper type to size_binop.
10957
3ff9925c
AG
109582000-02-25 Anthony Green <green@cygnus.com>
10959
10960 * expr.c (build_class_init): Mark the decl to be ignored by
10961 check_init.
10962 * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
10963 * check-init.c: Move DECL_BIT_INDEX to java-tree.h
10964 * class.c (init_test_hash_newfunc): New function.
10965 (decl_hash): New function.
10966 (decl_compare): New function.
10967 * decl.c (emit_init_test_initialization): New function.
10968 (complete_start_java_method): Traverse the init test hashtable,
10969 calling emit_init_test_initialization.
10970 (always_initialize_class_p): Define.
10971 * expr.c (build_class_init): Use initialization tests when
10972 emitting class initialization code.
10973 (always_initialize_class_p): Declare.
10974 * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
10975 1.
10976 * java-tree.h: Include hash.h.
10977 (DECL_FUNCTION_INIT_TEST_TABLE): Define.
10978 (struct lang_decl): Add init_test_table field.
10979 (init_test_hash_entry): Define.
10980
62c9aa5f 109812000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
3c9ef127
APB
10982
10983 * gjavah.c (main): Avoid using `argi' to report unimplemented
10984 options.
10985
62c9aa5f 109862000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
0e9137bb
APB
10987
10988 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
e64c46ce 10989 initialize locals to avoid warnings. Local `exception_type' moved
0e9137bb
APB
10990 into if statement.
10991
62c9aa5f 109922000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
98f3c1db
APB
10993
10994 * parse.y (resolve_expression_name): Use `orig' as a second
e64c46ce 10995 argument to resolve_field_access.
17126208 10996 (resolve_field_access): Removed unnecessary code when dealing with
e64c46ce 10997 static fields.
98f3c1db 10998
62c9aa5f 109992000-02-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11000
11001 * class.c (push_super_field): Don't push the field twice.
11002 * jcf-parse.c (parse_source_file): Call java_reorder_fields.
11003 * parse.h (java_reorder_fields): Prototyped.
11004 * parse.y (java_reorder_fields): New function.
11005 (java_layout_class): Simplified not to worry about re-ordering.
11006
c45c5e09
TT
110072000-02-23 Tom Tromey <tromey@cygnus.com>
11008
11009 * gjavah.c (print_name): In JNI case, correctly quote string.
11010 (print_method_info): Don't handle overrides in JNI mode.
11011
99803cd4
APB
110122000-02-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
11013
11014 * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
11015 value type set to `boolean_type_node'.
11016
62c9aa5f 110172000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
c801c87c
JB
11018
11019 * jcf-dump.c (main): Test for correct condition after
11020 output file creation.
11021
7b227604
AG
110222000-02-19 Anthony Green <green@cygnus.com>
11023
11024 * jcf-depend.c (add_entry): Fix test for first list entry.
11025
62c9aa5f 110262000-02-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
64e92991
RK
11027
11028 * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
11029 * constants.c (build_constants_constructor): Likewise.
11030
ccd4c273
AG
110312000-02-19 Anthony Green <green@cygnus.com>
11032
11033 * jcf-depend.c (add_entry): Add entries to the end of the list.
11034
62c9aa5f 110351999-11-03 Pekka Nikander <pekka.nikander@hut.fi>
a0f4cca6
PN
11036
11037 * decl.c (INT_TYPE_SIZE): Define if necessary.
11038 (expand_java_return): Handle the case of a native integer smaller
e64c46ce 11039 than a JVM integer.
a0f4cca6 11040
8b97e23b
ML
110412000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de>
11042
11043 * gjavah.c (help): Use GCCBUGURL.
11044 * jv-scan.c (help): Likewise.
11045 * jcf-dump.c (help): Likewise.
11046
62c9aa5f 110472000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
2a1ed9c1
APB
11048
11049 * jcf-write.c (generate_bytecode_insns): Don't generate empty
e64c46ce 11050 `finally' clauses.
2a1ed9c1 11051
62c9aa5f 110522000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
2a1ed9c1
APB
11053
11054 * jcf-parse.c (load_class): Call `fatal' if no file containing
11055 the target class are found.
11056
33ae9bdf
ZW
110572000-02-16 Zack Weinberg <zack@wolery.cumb.org>
11058
11059 * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
f6bbde28 11060 lex.c, lex.h, and PARSE_H to...
33ae9bdf
ZW
11061 (parse.o, parse-scan.o): ...here, respectively.
11062
11063 * lex.c: Split out code that may trigger SIGFPE from yylex()
11064 to its own function.
11065 * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
11066
4746ee26
KG
110672000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11068
11069 * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
11070
2323b28b
APB
110712000-02-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
11072
c2952b01 11073 * parse.y (outer_field_access_p): Stop in time when outer contexts
e64c46ce 11074 are exhausted.
c2952b01 11075 (resolve_qualified_expression_name): Properly qualify *everything*
e64c46ce 11076 after a package.type to be resoled as expression names.
c2952b01 11077 (find_applicable_accessible_methods_list): Save/restore `class' to
e64c46ce 11078 isolate it from a possible outer context search.
2323b28b 11079
78de74be
TT
110802000-02-15 Tom Tromey <tromey@cygnus.com>
11081
11082 * gjavah.c (jni_print_char): New function.
11083 (print_full_cxx_name): Use it.
11084 (decode_signature_piece): Likewise.
11085 (print_cxx_classname): Likewise.
11086
9f8f4efe
KG
110872000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11088
11089 * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
11090 version.o.
11091 (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
11092
11093 * gjavah.c: Include version.h.
f6bbde28 11094
9f8f4efe
KG
11095 * jcf-dump.c: Likewise.
11096
11097 * jv-scan.c: Likewise.
11098
62c9aa5f 110992000-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11100
11101 * parse.y (outer_field_access_fix): First parameter now a tree
67264b4f 11102 node. Check for assignment to final. First argument to
a83f01f0 11103 build_outer_field_access_fix modified to accommodate prototype.
c2952b01
APB
11104 (build_outer_field_access): Don't check for assignment to final
11105 here.
11106 (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
11107 possibly returned by outer_field_access_fix. Changed
11108 outer_field_access_fix's first argument.
11109 (check_final_assignment): $finit$'s context is OK.
11110 (patch_unaryop): Use node instead of its line/column value when
11111 calling outer_field_access_fix.
11112
62c9aa5f 111132000-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11114
11115 * parse.y (interface_declaration:): No longer tagged
e64c46ce 11116 <node>. Re-installed default action.
c2952b01
APB
11117 (class_member_declaration:): Handle inner interfaces.
11118 (interface_member_declaration): Handle inner interfaces and
e64c46ce 11119 classes.
c2952b01 11120 (create_interface): Push error if one seen. Suspend parsing
e64c46ce 11121 context when processing an inner interface.
c2952b01 11122 (register_fields): Inner class static field limitations not to
e64c46ce 11123 apply to inner interfaces.
c2952b01 11124
62c9aa5f 111252000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11126
11127 * jcf-parse.c (load_class): Update `java_error_count' when a
e64c46ce 11128 class' file can't be found.
c2952b01
APB
11129 (parse.y): Avoid (byte)code generation when errors seen.
11130
62c9aa5f 111312000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11132
11133 * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
e64c46ce 11134 decodes a valid node.
c2952b01
APB
11135 (patch_binop): Handle TRUNC_DIV_EXPR.
11136
62c9aa5f 111372000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01 11138
dba41d30 11139 * parse.y (resolve_package): New local `acc'. Try to progressively
e64c46ce 11140 build and guess a package and type name.
c2952b01 11141
62c9aa5f 111422000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11143
11144 * parse.y (find_applicable_accessible_methods_list): Load and
e64c46ce 11145 layout the search class if necessary.
c2952b01 11146 (java_complete_tree): Keep to original type of the folded initial
e64c46ce 11147 value.
c2952b01
APB
11148
111492000-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
11150
f6bbde28
ZW
11151 * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
11152 Generate error message if circularity is detected. New static
11153 local `list'.
11154 * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro. *
11155 * jcf-write.c (generate_bytecode_insns): Very simply handle
11156 SAVE_EXPR.
11157 * parse.y (java_check_circular_reference): Use
11158 `cyclic_inheritance_report' during report, if necessary.
11159 (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
11160 walking NEW_ARRAY_INIT twice.
c2952b01
APB
11161
111622000-02-09 Tom Tromey <tromey@cygnus.com>
11163
f6bbde28
ZW
11164 * parse.y (check_class_interface_creation): Allow inner classes to
11165 be `private' or `protected', check modifiers' consistency. Prevent
11166 block local classes from bearing any modifiers.
c2952b01 11167
ae0a06c5
KG
111682000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11169
11170 * except.c (check_start_handlers): Re-add prototype lost in last
11171 patch.
ef86eabb 11172 (maybe_start_try): Remove excess argument to `check_start_handlers'.
ae0a06c5 11173
71600a4a
AH
111742000-02-09 Andrew Haley <aph@cygnus.com>
11175
11176 * decl.c (clear_binding_level): Remove excess initializer.
11177 (maybe_poplevels): Remove unused variable.
11178 (force_poplevels): Ditto.
11179 (struct binding_level): Add comment.
f6bbde28 11180
c2952b01
APB
111812000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
11182
f6bbde28
ZW
11183 * jcf-write.c (generate_classfile): Don't consider
11184 pre-initialization with reference value (use <clinit> instead.)
11185 * parse.y (java_fix_constructors): No generated constructor for
11186 interfaces.
11187 (build_outer_field_access): Removed debug message.
11188 (outer_field_expanded_access_p): Adapted to bytecode generation.
11189 (build_outer_field_access_method): Use fix_method_argument_names.
11190 (build_outer_method_access_method): Fixed indentation. Added
11191 comment. Handle access method generation for static and also void
11192 methods.
11193 (build_access_to_thisn): Inserted debug message.
11194 (maybe_build_thisn_access_method): Use fix_method_argument_names.
11195 (resolve_qualified_expression_name): Fixed comment.
11196 (not_accessible_p): Adapted to bytecode generation. Added comment.
11197 (patch_method_invocation): Added comment.
11198 (maybe_use_access_method): Fixed leading comment. Handle static
11199 methods.
11200 (java_complete_lhs): Don't shortcut handling of initialized upon
11201 declaration String type static fields when generating bytecode.
11202 (patch_unaryop): Handle outer field access when generating
11203 bytecode.
c2952b01 11204
62c9aa5f 112052000-02-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11206
11207 * java-tree.h (FIELD_THISN): New macro.
11208 * jcf-write.c (append_synthetic_attribute): New function.
11209 (generate_classfile): Set "Synthetic" attribute on this$<n>,
e64c46ce 11210 val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
c2952b01 11211 * parse.y (add_inner_class_fields): Set FIELD_THISN for created
e64c46ce 11212 this$<n> fields.
c2952b01 11213 (build_outer_field_access): Turned on access functions usage and
e64c46ce 11214 generation when compiling to bytecode.
c2952b01
APB
11215 (maybe_use_access_method): Likewise.
11216
e8b22dd1
AH
112172000-01-25 Andrew Haley <aph@cygnus.com>
11218
f6bbde28
ZW
11219 * java-except.h (struct eh_range): Add `expanded' field.
11220 (maybe_start_try): Add end_pc arg.
11221 (maybe_end_try): Ditto.
e8b22dd1 11222 * java-tree.h (force_poplevels): new function.
f6bbde28
ZW
11223 * expr.c (expand_byte_code): Don't call maybe_start_try or
11224 maybe_end_try.
11225 * except.c (add_handler): Reset expanded.
11226 (expand_start_java_handler): Set expanded.
11227 (check_start_handlers): Don't expand a start handler that's
11228 already been expanded.
11229 (maybe_start_try): Add end_pc arg. Only expand a handler which
11230 ends after end_pc.
e8b22dd1
AH
11231 (expand_end_java_handler): call force_poplevels.
11232 (force_poplevels): new function.
f6bbde28
ZW
11233 * decl.c (binding_level): Add start_pc of binding level.
11234 (maybe_pushlevels): Call maybe_start_try when pushing binding
11235 levels.
11236 (maybe_poplevels): Call maybe_end_try when popping binding levels.
11237 (LARGEST_PC): Define.
11238 (clear_binding_level): Use LARGEST_PC.
e8b22dd1
AH
11239
11240 * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
11241 * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
11242 (binding_depth, is_class_level, current_pc): new variables.
f6bbde28 11243 (struct binding_level): ditto.
e8b22dd1
AH
11244 (indent): new function.
11245 (push_jvm_slot): add debugging info.
11246 (maybe_pushlevels): ditto.
11247 (maybe_poplevels): ditto.
11248 (pushlevel): ditto.
11249 (poplevel): ditto.
11250 (start_java_method): ditto.
11251 (give_name_to_locals): comment only.
f6bbde28 11252 * except.c (binding_depth, is_class_level, current_pc):
e8b22dd1
AH
11253 new variables.
11254 (expand_start_java_handler): add debugging info.
11255 (expand_end_java_handler): ditto.
f6bbde28 11256
5ca1627b
KG
112572000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11258
11259 * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
11260 (print_name_for_stub_or_jni, process_file): Constify a char*.
11261
d8b6d4cf
TT
112622000-02-03 Tom Tromey <tromey@cygnus.com>
11263
11264 * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
11265
2c2f0e54
SB
112662000-01-31 Scott Bambrough <scottb@netwinder.org>
11267
11268 * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
11269 assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
11270 defined to be 1.
11271
62c9aa5f 112722000-02-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11273
11274 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
11275 * java-tree.h (TYPE_II_STMT_LIST): New macro.
11276 (struct lang_type): New field `ii_block'.
11277 * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
11278 CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
11279 * parse.h (struct parser_ctxt): New field `instance_initializers'.
11280 (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
11281 CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
11282 CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
11283 macros.
11284 * parse.y (add_instance_initializer): New function.
11285 (in_instance_initializer): New static global.
11286 (class_body_declaration:): Link instance initializer block.
11287 (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
11288 (array_creation_expression:): Remove unused local.
11289 (java_parser_context_push_initialized_field): Fixed leading
11290 comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
11291 CPC_INSTANCE_INITIALIZER_LIST.
11292 (java_parser_context_pop_initialized_field): Likewise.
11293 (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
11294 (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
11295 CPC_INITIALIZER_STMT.
11296 (fix_constructors): New local `class_type'. Use it. Call
11297 add_instance_initializer.
11298 (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
11299 (patch_return): Forbid return in instance initializers.
11300 (patch_throw_statement): Enforce exception handling in the context
11301 of instance initializers.
f6bbde28 11302
ef2aac99
TT
113032000-02-03 Tom Tromey <tromey@cygnus.com>
11304
11305 * Make-lang.in (java.mostlyclean): Remove executables in
11306 `mostlyclean'.
11307
9b4a08f9
SB
113082000-01-31 Scott Bambrough <scottb@netwinder.org>
11309
11310 * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
11311 HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
11312 (java_float_finite): Convert to use union Word from javaop.h.
11313 (java_double_finite): Convert to use union DWord from javaop.h.
11314
de380723
TT
113152000-02-02 Tom Tromey <tromey@cygnus.com>
11316
11317 * gjavah.c (options): Added `jni' entry.
11318 (help): Document -jni.
11319 (flag_jni): New global.
11320 (process_file): Handle JNI output. Don't print text from
11321 -prepend, -add, etc, when generating stubs. Only remove `.class'
11322 suffix if it actually exists.
11323 (main): Create a `.c' file when run with `--jni --stubs'. Create
11324 correct output file name with `--jni'.
11325 (print_include): Mangle header name differently in JNI case.
11326 (HANDLE_METHOD): In JNI mode, call print_method_info to generate
11327 method list.
11328 (print_method_info): Handle JNI case. Put signature info into
11329 method name. Handle case when STREAM is NULL.
11330 (print_name_for_stub_or_jni): New function.
11331 (print_stub_or_jni): Renamed from `print_stub'. Handle JNI.
11332 (print_cxx_classname): Handle JNI.
11333 (print_full_cxx_name): Likewise.
11334 (decode_signature_piece): Likewise.
11335 (overloaded_jni_method_exists_p): New function.
11336 (struct method_name): Added `signature' and `sig_length' fields.
11337 (HANDLE_END_FIELD): Do nothing in JNI mode.
11338
c89c53eb
TT
113392000-02-02 Tom Tromey <tromey@cygnus.com>
11340
11341 * jv-scan.c: Include version.c, <getopt.h>.
11342 (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
11343 (options): New array.
11344 (usage): New function.
11345 (version): New function.
11346 (main): Use getopt_long to parse command line.
11347 * jcf-dump.c: Include version.c, <getopt.h>.
11348 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
11349 OPT_JAVAP): New macros.
11350 (options): New array.
11351 (usage): Return `void'. Changed message.
11352 (help): New function.
11353 (version): New function.
11354 (main): Use getopt_long_only to parse command line.
11355 * gjavah.c: Include <getopt.h>.
11356 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
11357 OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
11358 OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
11359 (options): New array.
11360 (java_no_argument): Removed.
11361 (help): Updated with missing options.
11362 (main): Use getopt_long_only to parse command line.
11363 (usage): Changed message.
11364
62c9aa5f 113652000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11366
11367 * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
11368 * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
11369 ANONYMOUS_ARRAY_INITIALIZER): New access macros.
11370 * parse.y (array_creation_expression:): Handle anonymous arrays.
11371 (build_array_from_name): Don't set `ret_name' if null.
11372 (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
11373 (qualify_ambiguous_name): Likewise.
11374 (java_complete_expand_class): Likewise.
11375
62c9aa5f 113762000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11377
11378 * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
11379 * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
11380 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
11381 (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
11382 (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
11383 AIPL_FUNCTION_COMPLETED_INVOCATION.
f6bbde28 11384 (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
c2952b01
APB
11385 AIPL_FUNCTION_INVOCATION_READY.
11386 (AIPL_FUNCTION_DECLARATION): New enum entry.
11387 * parse.y (reorder_static_initialized): New function.
11388 (java_parser_context_pop_initialized_field): Use it.
11389 (add_inner_class_fields): Use
11390 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
11391 augmented. Install marker after last alias initializer, if any.
11392 (generate_finit): Fixed typo. Don't try to retain only the used
11393 fields.
11394 (method_header): Compute and set DECL_FUNCTION_NAP.
11395 (method_declarator): Fixed comment. Insert alias initializer in
11396 parameter list.
11397 (build_alias_initializer_parameter_list): Fixed leading
11398 comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
11399 replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
11400 (java_complete_expand_class): Code to retain only used aliases
11401 removed.
11402 (java_complete_expand_methods): New local `first_decl'. Generate
11403 $finit$ first, then expand the constructors, regular methods and
11404 <clinit>.
11405 (java_complete_expand_method): Don't report error on missing
11406 return statement if previously detected bogus.
11407 (fix_constructors): Don't patch constructor parameters list.
11408 (patch_method_invocation): Use new AIPL enum values. Reverse
11409 alias initializer list for anonymous classes.
f6bbde28 11410
105a8d1c
AG
114112000-01-30 Anthony Green <green@redhat.com>
11412
11413 * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
11414 determine how many stack slots to pop.
11415
f8989a66
APB
114162000-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
11417
11418 * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
11419 error handling/recovery.
11420 * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
11421
62c9aa5f 114222000-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11423
11424 * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
e64c46ce 11425 FIELD_LOCAL_ALIAS_USED): New macros.
c2952b01
APB
11426 (DECL_FUNCTION_NAP): New macro.
11427 (struct lang_decl): New field `nap'.
11428 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
11429 (struct lang_type): New fields `finit_stmt_list' and
e64c46ce 11430 `clinit_stmt_list'.
c2952b01
APB
11431 (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
11432 * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
11433 (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
e64c46ce 11434 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
c2952b01 11435 (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
e64c46ce 11436 AIPL_FUNCTION_INVOCATION_READY): New enum fields.
c2952b01
APB
11437 (BUILD_THROW): Macro line separator re-indented.
11438 * parse.y (end_class_declaration): New function.
11439 (maybe_generate_pre_expand_clinit): New name for
e64c46ce
AJ
11440 java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
11441 pre-expand static fields.
c2952b01
APB
11442 (maybe_generate_clinit): Function deleted.
11443 (check_for_static_method_reference): Prototype's parameter list
e64c46ce 11444 indented.
c2952b01 11445 (generate_finit): New name for maybe_generate_finit. Changed
e64c46ce
AJ
11446 leading comment. Function rewritten to use
11447 TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
c2952b01
APB
11448 (build_alias_initializer_parameter_list): New function.
11449 (java_parser_context_pop_initialized_field): Likewise.
11450 (add_inner_class_fields): Likewise.
11451 (type_declaration:): Call end_class_declaration.
11452 (class_member_declaration:): Likewise.
11453 (formal_parameter_list:): Fixed typos.
11454 (formal_parameter:): Use ARG_FINAL_P to mark created tree list
e64c46ce 11455 element. Improved error handling.
c2952b01
APB
11456 (block_statement:): Call end_class_declaration.
11457 (anonymous_class_creation:): Likewise.
11458 (create_anonymous_class): Fixed comments.
11459 (create_class): Call add_inner_class_fields.
11460 (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
11461 (method_header): Use MARK_FINAL_PARMS.
11462 (finish_method_declaration): Use UNMARK_FINAL_PARMS.
11463 (method_declarator): Propagate final argument flag.
11464 (craft_constructor): New local `artificial'. Call
e64c46ce
AJ
11465 build_alias_initializer_parameter_list. Use
11466 CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
c2952b01 11467 (source_start_java_method): Mark parm decls with LOCAL_FINAL if
e64c46ce 11468 necessary.
c2952b01 11469 (complete_expand_class): Get rid of unused outer context local
e64c46ce 11470 alias fields.
c2952b01 11471 (java_complete_expand_methods): Fixed leading
e64c46ce
AJ
11472 comment. Generate/pre-expand <clinit> first. Changed method
11473 expansion order to regular, $finit$, constructors, <clinit>.
c2952b01
APB
11474 (java_complete_expand_method): Set current_function_decl.
11475 (fix_constructors): Fix constructor parameter list to account for
e64c46ce 11476 outer context local alias initializers.
c2952b01
APB
11477 (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
11478 (resolve_expression_name): Lookup outer context local aliases. New
e64c46ce 11479 local `access', use it.
c2952b01 11480 (patch_method_invocation): Patch inner class ctor invocation with
e64c46ce
AJ
11481 outer context local aliases initialization values. $finit$
11482 invocation patching now includes things generated with
11483 build_alias_initializer_parameter_list.
c2952b01
APB
11484 (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
11485 (build_super_invocation): Likewise.
11486 (patch_assignment): Changed comment.
11487
f85cedde
AH
114882000-01-27 Andrew Haley <aph@cygnus.com>
11489
f6bbde28
ZW
11490 * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
11491 (emit_if): Ditto.
11492 (emit_jsr): Ditto.
f85cedde 11493
2884c41e
KG
114942000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11495
11496 * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
11497 concatenation.
11498 (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
11499
11500 * parse.y (register_fields): Don't pass a format specifier to
11501 OBSOLETE_MODIFIER_WARNING.
11502 (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
11503 instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
11504 specifier.
11505 (check_modifiers): Change function into a macro.
11506 (check_class_interface_creation): Pass a literal format string.
11507
0a068841 115082000-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
df32d2ce
KG
11509
11510 * buffer.h: PROTO -> PARAMS.
11511 * check-init.c: Likewise.
11512 * class.c: Likewise.
11513 * constants.c: Likewise.
11514 * convert.h: Likewise.
11515 * decl.c: Likewise.
11516 * except.c: Likewise.
11517 * expr.c: Likewise.
11518 * gjavah.c: Likewise.
11519 * java-except.h: Likewise.
11520 * java-tree.h: Likewise.
11521 * jcf-depend.c: Likewise.
11522 * jcf-dump.c: Likewise.
11523 * jcf-parse.c: Likewise.
11524 * jcf-path.c: Likewise.
11525 * jcf-reader.c: Likewise.
11526 * jcf-write.c: Likewise.
11527 * jcf.h: Likewise.
11528 * jv-scan.c: Likewise.
11529 * jvgenmain.c: Likewise.
11530 * jvspec.c: Likewise.
11531 * lang.c: Likewise.
11532 * lex.c: Likewise.
11533 * lex.h: Likewise.
11534 * parse-scan.y: Likewise.
11535 * parse.h: Likewise.
11536 * parse.y: Likewise.
11537 * typeck.c: Likewise.
11538 * verify.c: Likewise.
11539 * xref.c: Likewise.
11540 * xref.h: Likewise.
11541 * zextract.c: Likewise.
11542 * zipfile.h: Likewise.
f6bbde28 11543
c2952b01
APB
115442000-01-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
11545
11546 * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
11547 (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
11548 * constants.c (build_constant_data_ref): Check for cached
11549 current_constant_pool_data_ref. Cache current_constant_pool_data_ref
11550 in TYPE_CPOOL_DATE_REF.
11551 * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
11552 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
11553 (struct lang_type): New fields `cpool' and `cpool_data_ref'.
11554 (LOCAL_FINAL): New macro.
11555 * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
11556 constant pool -- don't try to reuse.
11557 (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
11558 TYPE_LANG_SPECIFIC.
11559 (find_in_current_zip): Use TYPE_JCF.
11560 * parse.h (java_check_final): Prototype removed.
11561 * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
11562 (maybe_create_class_interface_decl,
11563 check_class_interface_creation): Likewise.
11564 (java_expand_finals): Function removed.
11565 (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
11566 (block_statement:): Fixed comment.
11567 (anonymous_class_creation:): Likewise.
11568 (check_class_interface_creation): Reversed Jan 12, 2000 extra
11569 argument patch.
11570 (check_class_interface_creation): Loosened error report on (inner)
11571 public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
11572 (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
11573 (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
11574 argument patch.
11575 (create_interface): Likewise.
11576 (anonymous_class_counter): New static global.
11577 (create_anonymous_class): Reversed Jan 12, 2000 extra argument
11578 patch. Fixed comments.
11579 (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
11580 anonymous_class_counter when declaring a toplevel class.
11581 (craft_constructor): Fixed constructor name when handling
11582 anonymous classes. Anonymous class constructors to feature hidden
11583 this$<n> parameter.
11584 (java_fix_constructors): Added comment.
11585 (java_check_final): Function removed.
11586 (java_complete_expand_methods): Fixed comment. Don't generate
11587 class data, save its outgoing constant pool instead.
11588 (verify_constructor_super): Skip anonymous class constructor
11589 hidden this$<n> parameter.
11590 (java_expand_classes): New local `saved_ctxp'. Removed call to
11591 java_expand_finals and java_check_final. Expand anonymous class
11592 constructors. Generate class data.
11593 (build_super_invocation): Skip anonymous class hidden this$<n>
11594 parameter.
11595 * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
11596 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
11597 (set_java_signature): Likewise.
f6bbde28 11598
62c9aa5f 115992000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
a003f638
JB
11600
11601 * gjavah.c: Delete ACC_VISIBILITY define.
11602 * jcf.h: Add ACC_VISIBILITY define.
11603 * parse.y: final: rule tagged <value>.
11604 (java_check_regular_methods): Use ACC_VISIBILITY define for
11605 default package access check.
11606 (local_variable_declaration_statement): Use final: rule.
11607
62c9aa5f 116082000-01-17 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
18990de5
JB
11609
11610 * parse.y (format_parameter:): Use final: rule instead of modifiers:.
11611 (final:): New rule.
11612
9b4579b3
TT
116132000-01-17 Tom Tromey <tromey@cygnus.com>
11614
11615 * gjavah.c (print_field_info): Allow non-static final fields.
11616
62c9aa5f 116172000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11618
11619 * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
11620 * parse.y (patch_anonymous_class): New function.
11621 (create_anonymous_class): Register incomplete type when the
e64c46ce 11622 class/interface to extends/implement isn't known yet.
c2952b01
APB
11623 (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
11624 (verify_constructor_super): Tuned error message.
11625
62c9aa5f 116262000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11627
11628 * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
11629 (ANONYMOUS_CLASS_P): New macro.
11630 (TYPE_SIGNATURE, TYPE_JCF): New macros.
11631 (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
11632 * parse.y (create_class): Added leading argument.
11633 (maybe_create_class_interface_decl,
e64c46ce 11634 check_class_interface_creation): Likewise.
c2952b01
APB
11635 (craft_constructor): New function.
11636 (verify_constructor_super): Added argument in prototype.
11637 (class_declaration:): Inserted leading argument.
11638 (for_begin:): Use FOR_LOOP_P.
11639 (anonymous_class_creation): Create WFL of the anonymous class to
e64c46ce 11640 instantiate. Call build_new_invocation. Added comments.
c2952b01 11641 (check_class_interface_creation): Handle parameter `anonymous' in
e64c46ce 11642 verbose mode class creation announce.
c2952b01
APB
11643 (link_nested_class_to_enclosing): Exclude anonymous classes.
11644 (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
e64c46ce
AJ
11645 anonymous class, even though they appear to have an enclosing
11646 context.
c2952b01 11647 (create_interface): Pass extra argument to
e64c46ce 11648 check_class_interface_creation.
c2952b01
APB
11649 (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
11650 (create_class): Call check_class_interface_creation and
e64c46ce
AJ
11651 maybe_create_class_interface_decl with extra new argument. Don't
11652 add private this$<n> to anonymous classes.
c2952b01 11653 (method_declarator): Insert hidden this$<n> to anonymous class
e64c46ce 11654 constructors.
c2952b01 11655 (java_fix_constructors): Deleted code creating default
e64c46ce 11656 constructor. Call craft_constructor instead.
c2952b01 11657 (java_check_regular_methods): Set `saw_constructor' to 1 for
e64c46ce 11658 anonymous classes.
c2952b01
APB
11659 (fix_constructors): Pass extra argument to verify_constructor_super.
11660 (verify_constructor_super): New local `sdecl', use it. Search for
e64c46ce
AJ
11661 matching constructor (possibly featuring arguments) in super
11662 class.
c2952b01 11663 (lookup_method_invoke): Craft constructor according to arguments
e64c46ce 11664 list when dealing with anonymous class constructors.
c2952b01 11665 (build_super_invocation): Pass arguments to anonymous class super
e64c46ce 11666 constructors.
c2952b01
APB
11667 (search_loop): Use FOR_LOOP_P.
11668 (labeled_block_contains_loop_p): Likewise.
f6bbde28 11669
62c9aa5f 116702000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
c2952b01
APB
11671
11672 * class.c (set_super_info): Set CLASS_STATIC when appropriate.
11673 (enclosing_context_p): New function.
11674 (get_access_flags_from_decl): Handle CLASS_STATIC.
11675 (maybe_layout_super_class): Extra first argument passed to
e64c46ce 11676 do_resolve_class.
c2952b01 11677 (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
e64c46ce 11678 ID_INIT_P.
c2952b01 11679 * decl.c (access0_identifier_node): New global.
f6bbde28 11680 (init_decl_processing): access0_identifier_node initialized.
c2952b01
APB
11681 (pushdecl): Set DECL_CONTEXT only on non type decls.
11682 * expr.c (lookup_field): Lookup inner class fields in enclosing
e64c46ce 11683 contexts.
c2952b01
APB
11684 (expand_invoke): Use ID_INIT_P.
11685 (expand_java_field_op): Use DECL_CLINIT_P.
11686 * java-tree.def (CLASS_LITERAL): New tree code.
11687 * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
e64c46ce 11688 DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
c2952b01
APB
11689 (struct lang_decl): New field `inner_access'.
11690 (enclosing_context_p): Prototyped.
11691 (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
e64c46ce 11692 ID_CLINIT_P): New macros.
c2952b01
APB
11693 (CLASS_STATIC): New macro.
11694 (CLASS_ACCESS0_GENERATED_P): New macro.
11695 (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
e64c46ce
AJ
11696 TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
11697 INNER_CLASS_P): New macros.
c2952b01
APB
11698 (DECL_INNER_CLASS_LIST): New macro.
11699 * jcf-parse.c (yyparse): Avoid the use of ANSI string
e64c46ce 11700 concatenation.
c2952b01 11701 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
e64c46ce 11702 the shift value to int. Fixed typo in comment.
c2952b01
APB
11703 * lex.c (inst_id, wpv_id): Initialize.
11704 * mangle.c (unicode_mangling_length): Take `$' into account.
11705 * parse.h (DRECOVER, RECOVER): Terminate properly.
11706 (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
11707 (typedef struct _jdep): New field `enclosing'.
11708 (JDEP_ENCLOSING): New macro.
11709 (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
11710 (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
11711 (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
e64c46ce
AJ
11712 GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
11713 GET_ENCLOSING_CPC_CONTEXT): New macros.
f6bbde28 11714 (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
c2952b01
APB
11715 (do_resolve_class): Added extra argument in prototype.
11716 * parse.y (resolve_class): Added extra argument in prototype.
11717 (maybe_create_class_interface_decl): Likewise.
11718 (maybe_use_access_method, build_wfl_wrap): New functions.
11719 (java_complete_expand_classes, java_complete_expand_class):
e64c46ce 11720 Likewise.
c2952b01 11721 (java_parser_context_push_initialized_field,
e64c46ce
AJ
11722 java_parser_context_suspend, java_parser_context_resume):
11723 Likewise.
c2952b01 11724 (maybe_make_nested_class_name, make_nested_class_name,
e64c46ce
AJ
11725 set_nested_class_simple_name_value,
11726 link_nested_class_to_enclosing, find_as_inner_class,
11727 find_as_inner_class_do, check_inner_class_redefinition,
11728 build_thisn_assign, build_current_thisn, build_access_to_thisn,
11729 maybe_build_thisn_access_method, build_outer_field_access,
11730 build_outer_field_access_methods, build_outer_field_access_expr,
11731 build_outer_method_access_method, build_new_access_id,
11732 build_outer_field_access_method, outer_field_access_p,
11733 outer_field_expanded_access_p, outer_field_access_fix,
11734 build_incomplete_class_ref, patch_incomplete_class_ref,
11735 create_anonymous_class): Likewise.
c2952b01
APB
11736 (inst_id, wpv_id): New static global variables.
11737 (synchronized:): New rule, tagged <node>.
11738 (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
e64c46ce 11739 rules.
c2952b01
APB
11740 (anonymous_class_creation:): New rule, tagged <node>.
11741 (NEW_TK): Tagged <node>.
11742 (type_literals, array_type_literal): New rules, tagged <node>.
11743 (class_declaration:): Removed action when reducing by class_body:
11744 (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
e64c46ce 11745 using GET_CPC in sub-rules.
c2952b01
APB
11746 (class_member_declaration): Handle inner classes.
11747 (method_declaration): When reducing method_header:, reset
e64c46ce 11748 current_function_decl when appropriate.
c2952b01 11749 (method_declarator:): Set the number of formal parameter to 0 for
e64c46ce 11750 method declared without arguments.
c2952b01
APB
11751 (constructor_declarator:): Likewise.
11752 (static_initializer:): List of elements kept in a list.
11753 (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
e64c46ce 11754 use of the keyword `static' for type declarations.
c2952b01
APB
11755 (block_statement:): Handle inner class declarations.
11756 (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
e64c46ce 11757 type qualified `this'.
c2952b01
APB
11758 (class_instance_creation_expression): Use anonymous_class_creation:
11759 to handle inner class instances creation. Handle qualified `new'.
11760 (something_dot_new): Added appropriate actions.
11761 (create_new_parser_context): New function.
11762 (java_push_parser_context, java_parser_context_save_global,
e64c46ce 11763 java_parser_context_suspend): Use create_new_parser_context.
c2952b01
APB
11764 (check_modifiers): Changed leading comment.
11765 (check_class_interface_creation): Handle interclasses.
11766 (add_superinterfaces): Fixed comment.
11767 (create_interface): Build qualified name from the raw_name instead
e64c46ce
AJ
11768 of its matching WFL. Push the initialized fields list. raw_name added
11769 as an extra argument to maybe_create_class_interface_decl.
c2952b01 11770 (create_class): Build qualified name from the raw_name instead of
e64c46ce 11771 its matching WFL. Removed assignment to current_parsed_class_un.
c2952b01 11772 Call PUSH_ERROR before returning an error. Suspend the current
e64c46ce
AJ
11773 parser context when processing an inner class. Push the
11774 initialized fields list. raw_name added as an extra argument to
11775 maybe_create_class_interface_decl. Add the private this$<n>
11776 field.
c2952b01
APB
11777 (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
11778 (register_fields): Get the class type from GET_CPC and handle
e64c46ce
AJ
11779 previous errors. Added code to handle the creation of static
11780 fields in inner classes. Initialized fields initialization
11781 statements kept in a list of lists.
c2952b01 11782 (maybe_generate_finit): Initialized fields initialization
e64c46ce 11783 statements kept in a list of lists. Use GET_CPC.
c2952b01
APB
11784 (maybe_generate_clinit): Likewise.
11785 (method_header): Use GET_CPC and GET_CPC_UN.
11786 (parser_qualified_classname): Handle inner classes.
11787 (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
11788 (java_fix_constructors): Hide pointer to enclosing context
e64c46ce 11789 instance in constructor list when dealing with inner classes.
c2952b01 11790 (jdep_resolve_class): Call resolve_class with extra first argument
e64c46ce 11791 JDEP_ENCLOSING.
c2952b01 11792 (resolve_class): Add enclosing context as a first extra argument
e64c46ce 11793 to do_resolve_class.
c2952b01 11794 (do_resolve_class): Call find_as_inner_class. Handle WFLs
e64c46ce 11795 properly.
c2952b01 11796 (resolve_no_layout): Extra argument added to resolve_class
e64c46ce 11797 invocation.
c2952b01
APB
11798 (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
11799 (java_get_real_method_name): Use GET_CPC_UN.
11800 (check_abstract_method_definitions): Use DECL_CLINIT_P.
11801 (java_check_abstract_methods): Handle static method declared in
e64c46ce 11802 inner classes by an error.
c2952b01
APB
11803 (java_check_regular_methods): Use DECL_CLINIT_P.
11804 (source_start_java_method): Also set DECL_MAX_LOCALS.
11805 (create_artificial_method): Call java_parser_context_save_global
e64c46ce
AJ
11806 and java_parser_context_restore_global instead of saving/restoring
11807 the context by hand.
c2952b01
APB
11808 (expand_start_java_method): Improved verbose mode message.
11809 (java_complete_expand_methods): Fixed leading comment. Use
e64c46ce 11810 DECL_CLINIT_P.
c2952b01
APB
11811 (fix_constructors): Added assignment to this$<n> if necessary.
11812 (java_expand_classes): Call java_complete_expand_classes instead
e64c46ce 11813 of java_complete_expand_methods.
c2952b01
APB
11814 (make_qualified_primary): Simplified.
11815 (merge_qualified_name): Optimized for missing left or right parts.
11816 (resolve_expression_name): Handle access to outer class fields from
e64c46ce 11817 interclasses.
c2952b01 11818 (resolve_qualified_expression_name): New macro
e64c46ce
AJ
11819 RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
11820 classes. Report error on non appropriate qualification of
11821 `new'. Handle qualified `this'.
c2952b01 11822 (not_accessible_p): Allow access to outer class private fields from
e64c46ce 11823 inner classes.
c2952b01 11824 (patch_method_invocation): Handle method invocations through
e64c46ce 11825 access methods and inner class constructor invocations.
c2952b01 11826 (find_applicable_accessible_methods_list): Search enclosing
e64c46ce 11827 contexts of an inner class.
c2952b01
APB
11828 (search_applicable_methods_list): Fixed typo.
11829 (argument_types_convertible): Handle inner class constructors'
e64c46ce 11830 hidden outer context reference argument.
c2952b01
APB
11831 (qualify_ambiguous_name): Handle qualified `this'.
11832 (java_complete_lhs): Handle use of field accessed through
e64c46ce
AJ
11833 artificial access methods in various cases of assignments. Handle
11834 CLASS_LITERAL node.
c2952b01
APB
11835 (check_final_assignment): Use DECL_CLINIT_P.
11836 (valid_ref_assignconv_cast_p): Handle the destination being an
e64c46ce 11837 enclosing context of the source.
c2952b01 11838 (patch_unaryop): Handle use of field accessed through artificial
e64c46ce 11839 access methods.
c2952b01
APB
11840 (patch_return): Use DECL_CLINIT_P.
11841 (patch_throw_statement): Use DECL_CLINIT_P.
11842 (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
11843 * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
e64c46ce 11844 ID_INIT_P.
f6bbde28 11845
c52b5771
AG
118462000-01-16 Anthony Green <green@cygnus.com>
11847
11848 * parse.y (build_string_concatenation): Only use
11849 StringBuffer(String) shortcut if String arg is constant.
11850
62c9aa5f 118512000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
f8989a66
APB
11852
11853 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
11854 the shift value to int. Fixed typo in comment.
11855
51149cc8
MK
118562000-01-11 Mumit Khan <khan@xraylith.wisc.edu>
11857
11858 * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
11859 * jcf-write.c: Likewise.
11860 * parse.y: Likewise.
11861 * parse.c: Regenerate.
11862
2d54440c
AG
118632000-01-09 Anthony Green <green@cygnus.com>
11864
11865 * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
11866 bytecodes in the correct order.
11867
2cc60d16
KG
118682000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11869
11870 * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
11871
62c9aa5f 118722000-01-06 Anthony Green <green@cygnus.com>
f626e9fa
AG
11873
11874 * expr.c (java_lang_expand_expr): Switch to permanent obstack
11875 before building constant array decl.
11876
62c9aa5f 118772000-01-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
6b924cc5 11878
81baa09a 11879 * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
6b924cc5 11880 method invocation and typo in conditional expression.
f6bbde28 11881 (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
e64c46ce 11882 the appropriate NOTE_POP.
6b924cc5 11883 * parse.y (patch_binop): Shift value mask to feature the right
e64c46ce 11884 type.
6b924cc5 11885
c63b98cd
KG
118861999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11887
11888 * class.c (assume_compiled, assume_compiled_node): Add static
11889 prototype.
11890 (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
11891
11892 * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
11893
11894 * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
11895
11896 * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
11897 to `__modifier' to avoid stringifying it.
11898
11899 * parse.y (verify_constructor_circularity): Don't call a variadic
11900 function with a non-literal format string.
11901 (java_check_abstract_methods): Move unreachable code inside
11902 `continue' statement.
11903 (lookup_method_invoke): Call xstrdup, not strdup.
11904
11905 * expr.c (expand_java_field_op): Avoid the use of ANSI string
11906 concatenation.
11907
11908 * jcf-parse.c (yyparse): Likewise.
11909
11910 * jv-scan.c (main): Likewise.
f6bbde28 11911
781b0558
KG
119121999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11913
11914 * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
11915 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
11916 ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
11917 concatenation.
11918
11919 * parse.y (synchronized, variable_redefinition_error,
11920 check_class_interface_creation, create_interface, create_class,
11921 method_header, finish_method_declaration,
11922 check_modifiers_consistency, method_declarator,
11923 complete_class_report_errors, check_abstract_method_definitions,
11924 java_check_regular_methods, check_throws_clauses,
11925 java_check_abstract_methods, read_import_dir,
11926 check_pkg_class_access, declare_local_variables, fix_constructors,
11927 cut_identifier_in_qualified, resolve_expression_name,
11928 resolve_qualified_expression_name, patch_method_invocation,
11929 java_complete_lhs, patch_assignment, try_builtin_assignconv,
11930 patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
11931 patch_exit_expr, patch_exit_expr, patch_switch_statement,
11932 patch_try_statement, patch_synchronized_statement,
11933 patch_throw_statement, check_thrown_exceptions,
11934 patch_conditional_expr): Likewise.
11935
62c9aa5f 119361999-12-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
ee07f4f4
APB
11937
11938 * Makefile.in (LIBDEPS): Added gcc's errors.o
11939 (../jcf-dump$(exeext):): Link with gcc's errors.o
11940 (../gcjh$(exeext):): Likewise.
11941 * expr.c (expand_java_NEW): Layout the entire target type instead of
e64c46ce 11942 laying out its methods only.
ee07f4f4
APB
11943 (lookup_field): Layout the class after having loaded it.
11944 * java-tree.h (java_debug_context): Declared.
11945 * jcf-io.c (toplev.h): Included.
11946 (find_class): Removed assignment to jcf's outofsynch
e64c46ce
AJ
11947 field. Force source file to be read if newer than its matching
11948 class file. Tweaked debug messages.
ee07f4f4
APB
11949 * jcf-parse.c (jcf_out_of_synch): Deleted.
11950 (read_class): Call to jcf_out_of_synch removed.
11951 * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
11952 (jcf_out_of_synch): Prototype deleted.
11953 * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
ee142fe7
KH
11954 `deprecated' and `class_err': integer turned into bit-fields.
11955 New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
ee07f4f4
APB
11956 * parse.y (package_list): New global.
11957 (package_declaration:): Record newly parsed package name.
11958 (extra_ctxp_pushed_p): Static global deleted.
11959 (java_parser_context_save_global): Create buffer context for the
e64c46ce 11960 purpose of saving globals, if necessary.
ee07f4f4 11961 (java_parser_context_restore_global): Pop context pushed for the
e64c46ce 11962 purpose of saving globals, if necessary.
ee07f4f4
APB
11963 (java_debug_context_do): New prototype and function.
11964 (java_debug_context): Likewise.
11965 (do_resolve_class): Use already parsed package names to qualify
e64c46ce 11966 and lookup class candidate.
f6bbde28 11967 (java_pre_expand_clinit): Removed unnecessary local variable.
ee07f4f4 11968
6b924cc5
APB
119691999-12-17 Tom Tromey <tromey@cygnus.com>
11970
11971 * gjavah.c (decode_signature_piece): Print "::" in JArray<>. This
11972 fixes PR gcj/119.
11973 (process_file): Use `\n\' at end of each line in string.
11974
62c9aa5f 119751999-12-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
6bafd8b6
APB
11976
11977 * expr.c (expand_invoke): Layout the loaded class before
e64c46ce 11978 attempting to use it.
6bafd8b6 11979 (expand_java_field_op): Allow final field assignments to take
e64c46ce 11980 place in $finit$.
f6bbde28 11981 * typeck.c (convert): Return error_mark_node if expr is null.
6bafd8b6 11982
e920ebc9
APB
119831999-12-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
11984
11985 * class.c (class_depth): Return -1 if the class doesn't load
11986 properly.
11987 * expr.c (can_widen_reference_to): Check for errors during depth
11988 computation and return 0 accordingly.
11989 * jcf-parse.c (parse_source_file): Call java_fix_constructors to
11990 create default constructors and add an other error check.
11991 * parse.h (java_fix_constructors): Prototyped.
11992 * parse.y (java_pre_expand_clinit): Likewise.
11993 (build_super_invocation): Re-prototyped to feature one argument.
11994 (java_check_circular_reference): Directly use `current'.
11995 (java_fix_constructors): New function.
11996 (java_check_regular_methods): Don't create default constructors
11997 here, but abort if none were found.
11998 (java_complete_expand_methods): Pre-process <clinit> calling
11999 java_pre_expand_clinit.
12000 (java_pre_expand_clinit): New function.
12001 (fix_constructors): build_super_invocation invoked with the
12002 current method declaration as an argument.
12003 (build_super_invocation): Use the context of the processed method
12004 decl argument instead of current_class.
12005 * typeck.c (lookup_java_method): Take WFLs in method names into
12006 account.
f6bbde28 12007
62c9aa5f 120081999-12-14 Per Bothner <per@bothner.com>
cf69bfbf
PB
12009
12010 * class.c (make_class_data): flag_keep_inline_functions to keep
12011 private methods in the method array.
12012
38b58895
AG
120131999-12-15 Anthony Green <green@cygnus.com>
12014
12015 * check-init.c (check_init): Take into account both types of
f6bbde28 12016 `throw's when checking for uninitialized variables.
38b58895 12017
62c9aa5f 120181999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
3a1760ac 12019
67264b4f 12020 * parse.y (java_complete_lhs): Force conversion of array
f6bbde28 12021 dimensions to int_type_node, that's what runtime's ABI expects.
3a1760ac 12022
62c9aa5f 120231999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
6a50bd91
APB
12024
12025 * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
e64c46ce
AJ
12026 operand of a WFL, until the Java front-end gets fixed with regard
12027 to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
6a50bd91 12028
8bbb23b7
AH
120291999-12-10 Andrew Haley <aph@cygnus.com>
12030
12031 * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
12032 decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
12033 expr.c (build_java_athrow): Add support for sjlj-exceptions.
12034 java-tree.h: Ditto.
f6bbde28 12035 jcf-write.c: Ditto.
8bbb23b7 12036
62c9aa5f 120371999-12-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
6f9c8716 12038
f6bbde28
ZW
12039 * expr.c (java_lang_expand_expr): Switch to permanent obstack
12040 before calling expand_eh_region_start and expand_start_all_catch.
12041 * except.c (expand_start_java_handler): Switch to permanent
12042 obstack before calling expand_eh_region_start.
12043 (expand_end_java_handler): Switch to permanent obstack before
12044 calling expand_start_all_catch.
6f9c8716 12045
1684f874
AG
120461999-12-5 Anthony Green <green@cygnus.com>
12047
12048 * decl.c (init_decl_processing): Mark throw_node as a noreturn
12049 function with side effects.
12050 (init_decl_processing): Mark all memory allocating DECLs with
12051 DECL_IS_MALLOC.
12052
62c9aa5f 120531999-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
0974e9fe 12054
f6bbde28
ZW
12055 * except.c (expand_end_java_handler): Call
12056 expand_resume_after_catch and end_catch_handler.
0974e9fe 12057
62c9aa5f 120581999-11-30 Anthony Green <green@cygnus.com>
de1f429d 12059
f6bbde28 12060 * verify.c (verify_jvm_instructions): Create new return label
a83f01f0 12061 chain if non existent (don't rely on the verified state of the jsr
f6bbde28 12062 target.)
de1f429d 12063
62c9aa5f 120641999-11-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
afc390b1 12065
f6bbde28
ZW
12066 * jcf-write.c (generate_bytecode_insns): Fixed indentation for
12067 COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
afc390b1 12068
f6bbde28
ZW
12069 * parse.y (patch_assignment): Removed bogus final class test on
12070 lhs when checking on whether to emit an ArrayStoreException runtime
12071 check.
12072 * expr.c (expand_java_arraystore): Likewise.
afc390b1 12073
3fc61836
AG
120741999-11-28 Anthony Green <green@cygnus.com>
12075
12076 * decl.c (find_local_variable): Reuse single slot decls when
12077 appropriate.
12078
62c9aa5f 120791999-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
1ba305b5 12080
f6bbde28
ZW
12081 * jcf-parse.c (saw_java_source): Global variable removed.
12082 (read_class): Don't use `saw_java_source'. Added extra braces.
12083 (yyparse): Code setting `saw_java_source' removed.
1ba305b5 12084
9a260e99
MM
120851999-11-24 Mark Mitchell <mark@codesourcery.com>
12086
12087 * except.c (emit_handlers): Zero catch_clauses after emitting them.
12088
62c9aa5f 120891999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
de1f429d 12090
f6bbde28
ZW
12091 * verify.c (merge_type_state): Non verified subroutines being
12092 considered more than once to trigger passive type merge.
de1f429d 12093
62c9aa5f 120941999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
97f30284
APB
12095
12096 * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
e64c46ce 12097 in case of error. Error message tuned.
97f30284 12098
48aedbca
AG
120991999-11-21 Anthony Green <green@cygnus.com>
12100
12101 * constants.c (find_methodref_index): Unwrap method names before
12102 inserting them in the constant pool.
12103
12104 * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
12105
12106 * class.c (assume_compiled_node): New typedef.
12107 (assume_compiled_tree): New static data.
12108 (find_assume_compiled_node): New function.
12109 (add_assume_compiled): New function.
12110 (assume_compiled): New function.
12111 * class.c (make_class_data): Use assume_compiled.
12112 (is_compiled_class): Use assume_compiled.
12113
12114 * java-tree.h (add_assume_compiled): Declare.
12115
12116 * lang.c (lang_decode_option): Parse new options.
12117
62c9aa5f 121181999-11-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
4832340c
APB
12119
12120 * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
e64c46ce 12121 int_type_node: that's what `_Jv_AllocObject' expects.
4832340c 12122
62c9aa5f 121231999-11-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
b5b8a0e7 12124
f6bbde28 12125 * parse.y (lookup_method_invoke): Use lang_printable_name to
e64c46ce 12126 reliably build the type name during error report. Fixes PR gcj/97.
b5b8a0e7 12127
71651d6c
TT
121281999-11-09 Tom Tromey <tromey@cygnus.com>
12129
12130 * jcf-path.c: Include <sys/stat.h>.
12131 (jcf_path_init): Search for libjava.zip. Fixes PR gcj/84.
12132 (DIR_UP): New macro.
12133
62c9aa5f 121341999-11-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
8226320b
APB
12135
12136 * parse.y (source_end_java_method): Resume permanent allocation,
e64c46ce 12137 reversing Apr 27 1998 patch.
8226320b 12138 (patch_string_cst): Pop obstacks after having pushed the permanent
e64c46ce 12139 ones.
8226320b 12140
09e7d04a
TT
121411999-11-05 Tom Tromey <tromey@cygnus.com>
12142
12143 * class.c (finish_class): Emit inlined methods if any native
12144 methods exist in the class. Fixes PR gcj/85.
12145
62c9aa5f 121461999-11-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
97f30284
APB
12147
12148 * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
12149 (qualify_ambiguous_name): Likewise.
f6bbde28 12150
62c9aa5f 121511999-11-03 Godmar Back <gback@cs.utah.edu>
7c2e3b9b
GB
12152
12153 * typeck.c: (lookup_java_method): search all inherited
12154 interfaces when looking up interface method.
12155
62c9aa5f 121561999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
efa0a23f
APB
12157
12158 * parse.y (method_header:): Issue error message for rule `type
e64c46ce 12159 error'.
efa0a23f 12160 (synchronized:): Error report when not using synchronized.
f6bbde28 12161
62c9aa5f 121621999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
f63991a8 12163
ffa669ea 12164 * parse.y (resolve_qualified_expression_name): Prevent `this' from
e64c46ce 12165 being used before the superclass constructor has been called.
ffa669ea 12166 (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
e64c46ce 12167 instead of `CALL_THIS_CONSTRUCTOR_P'.
f63991a8 12168
62c9aa5f 121691999-10-30 Todd T. Fries <todd@lighthouse.fries.net>
f6e8b583
TF
12170
12171 * check-init.c: Fix typo in comment.
12172
62c9aa5f 121731999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
ed598dde
APB
12174
12175 * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
e64c46ce 12176 and final method.
ed598dde 12177
62c9aa5f 121781999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
8119c720
APB
12179
12180 * parse.y (expression_statement:): Call function to report
e64c46ce 12181 improper invocation of a constructor.
8119c720
APB
12182 (parse_ctor_invocation_error): New function.
12183
2af0ac28
MM
121841999-10-26 Mark Mitchell <mark@codesourcery.com>
12185
12186 * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
12187 remember_end_note.
12188
2fca54be
TT
121891999-10-21 Tom Tromey <tromey@cygnus.com>
12190
12191 * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
12192 in generated `main'.
12193
62c9aa5f 121941999-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
ac22f9cb
APB
12195
12196 * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
12197 (qualify_ambiguous_name): Likewise.
12198
62c9aa5f 121991999-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
100f7cd8
APB
12200
12201 * parse.y (java_complete_tree): fold_constant_for_init to work on
e64c46ce 12202 permanent_obstack.
100f7cd8
APB
12203 (java_complete_lhs): Likewise.
12204 (array_constructor_check_entry): Complete an initializer element
e64c46ce 12205 on permanent_obstack.
100f7cd8 12206
51ae4071
TT
122071999-10-19 Tom Tromey <tromey@cygnus.com>
12208
12209 * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
12210 From Mike Moreton <mike@pillim.demon.co.uk>.
12211
13f9ac51
GM
122121999-10-15 Greg McGary <gkm@gnu.org>
12213
12214 * java-tree.h (flag_bounds_check): Remove extern decl.
12215 * lang.c (flag_bounds_check): Remove global variable.
12216 (lang_f_options): Remove "bounds-check" entry.
12217 (lang_init_options): Default flag_bounds_check to "on".
12218
8f426586
TT
122191999-10-14 Tom Tromey <tromey@cygnus.com>
12220
7cf41963
TT
12221 * jvgenmain.c (usage): New function.
12222 (main): Use it. Also, handle `-D' options.
12223 * jvspec.c (lang_specific_driver): Recognize -D.
12224 (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
12225
8f426586
TT
12226 * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
12227
1ebadc60
KG
122281999-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12229
12230 * jcf-dump.c (print_constant, disassemble_method): Don't call a
12231 variadic function with a non-literal format string.
12232
12233 * parse-scan.y (report_main_declaration): Likewise.
12234
12235 * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
12236
12237 * parse.y (read_import_dir, patch_assignment, patch_binop,
12238 patch_array_ref): Likewise.
12239
12240 * typeck.c (build_java_array_type): Likewise.
12241
12242 * verify.c (verify_jvm_instructions): Likewise.
12243
62c9aa5f 122441999-10-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
b5edd133 12245
ce74b7d6 12246 * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
b5edd133 12247
ab150fb1
AG
122481999-10-07 Anthony Green <green@cygnus.com>
12249
12250 * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
12251 where CHECK_PUT may fail for valid reasons.
12252
12253 * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
e64c46ce 12254 UNSAFE_PUTN): New macros.
ab150fb1 12255
05a3dfc7
TT
122561999-10-04 Tom Tromey <tromey@cygnus.com>
12257
12258 * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
12259 well. Fixes Java PR gcj/59.
12260 * parse-scan.y (yyerror): Report errors.
12261
62c9aa5f 122621999-09-24 Glenn Chambers <GChambers@provsol.com>
ca6c7489 12263
d353a00c 12264 * decl.c (insert_block): Remove unconditional `abort'.
ca6c7489 12265
62c9aa5f 122661999-09-24 Bernd Schmidt <bernds@cygnus.co.uk>
26db82d8
BS
12267
12268 * decl.c (builtin_function): No longer static. New arg CLASS. Arg
12269 FUNCTION_CODE now of type int. All callers changed.
12270 Set the builtin's DECL_BUILT_IN_CLASS.
12271
0cffaca3
TT
122721999-09-23 Tom Tromey <tromey@cygnus.com>
12273
12274 * jvspec.c (lang_specific_driver): Don't read spec file if
12275 -fsyntax-only given.
12276
bad1e2ac
TT
122771999-09-22 Tom Tromey <tromey@cygnus.com>
12278
ba020951
TT
12279 * lang-specs.h: Added `%(jc1)' to the jc1 spec.
12280
bad1e2ac
TT
12281 * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
12282 (WORDS_TO_LONG): Likewise.
12283 (WORDS_TO_DOUBLE): Likewise.
12284
62c9aa5f 122851999-09-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
cacc154e 12286
ce74b7d6 12287 * jcf-write.c (RELOCATION_VALUE_0): New macro.
cacc154e
APB
12288 (RELOCATION_VALUE_1): Likewise.
12289 (emit_iinc, emit_reloc, push_constant1, push_constant2,
e64c46ce 12290 push_in_const, push_long_const): Prototyped.
cacc154e
APB
12291 (push_constant1): Argument `index' is of type HOST_WIDE_INT.
12292 (push_constant2): Likewise.
12293 (push_int_const): Cast find_constant1's integer arguments to `jword'.
12294 (find_constant_wide): Cast find_constant2's integer arguments to
e64c46ce 12295 `jword'.
cacc154e 12296 (find_constant_index): Cast find_constant2's and find_constant2's
e64c46ce 12297 integer arguments to `jword'.
cacc154e
APB
12298 (emit_pop): Argument `value' is of type HOST_WIDE_INT.
12299 (emit_switch_reloc): Use RELOCATION_VALUE_0.
12300 (emit_if): Use RELOCATION_VALUE_1.
12301 (emit_goto): Likewise.
12302 (emit_jsr): Likewise.
12303 (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
e64c46ce 12304 argument to push_long_const to HOST_WIDE_INT.
cacc154e 12305
7161fcc7
AS
123061999-09-15 Andreas Schwab <schwab@suse.de>
12307
12308 * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
12309
03d32d1a
NC
123101999-09-20 Nick Clifton <nickc@cygnus.com>
12311
12312 * lang.c (lang_decode_option): Extend comment.
12313
62c9aa5f 123141999-09-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
b771925e
APB
12315
12316 * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
e64c46ce 12317 instead of fndecl.
b771925e 12318
c2e3db92
KG
123191999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12320
12321 * gjavah.c (get_field_name, print_method_info, print_include,
12322 add_namelet): Use xmalloc, not malloc.
12323
12324 * jcf-depend.c (add_entry): Likewise. Use xstrdup, not strdup.
12325 (munge): Use xrealloc, not realloc, trust xrealloc to handle a
12326 NULL pointer.
12327
12328 * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
12329
12330 * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
f6bbde28 12331
c2e3db92
KG
12332 * jcf-path.c (add_entry): Likewise.
12333
12334 * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
12335
12336 * jv-scan.c (xmalloc): Remove definition.
12337
12338 * jvgenmain.c (xmalloc): Likewise.
12339
12340 * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
12341
12342 * lex.c (java_store_unicode): Use xrealloc, not realloc.
12343
12344 * parse-scan.y: Use concat, not of xmalloc/assign/strcpy. Use
12345 concat, not xmalloc/sprintf.
12346 (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
12347 (xstrdup): Remove definition.
12348
12349 * parse.y (duplicate_declaration_error_p,
12350 constructor_circularity_msg, verify_constructor_circularity,
12351 check_abstract_method_definitions, java_check_regular_methods,
12352 java_check_abstract_methods, patch_method_invocation,
12353 check_for_static_method_reference, patch_assignment, patch_binop,
12354 patch_cast, array_constructor_check_entry, patch_return,
12355 patch_conditional_expr): Use xstrdup, not strdup.
12356
12357 * zextract.c (ALLOC): Use xmalloc, not malloc.
12358
62c9aa5f 123591999-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9257393c
KG
12360
12361 * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
12362
12363 * jvspec.c: Include gcc.h. Don't include gansidecl.h.
12364 (do_spec, lang_specific_pre_link, lang_specific_driver,
12365 input_filename, input_filename_length): Don't declare.
12366 (main_class_name, jvgenmain_spec, lang_specific_driver):
12367 Constify a char*.
12368 (lang_specific_driver): All calls to the function pointer
f6bbde28 12369 parameter now explicitly call `fatal'.
9257393c 12370
62c9aa5f 123711999-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
f4e16489
APB
12372
12373 * parse.y (find_applicable_accessible_methods_list): Search
e64c46ce 12374 abstract classes as interfaces.
f4e16489 12375
62c9aa5f 123761999-09-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
fcf6eeb6
APB
12377
12378 * class.c (finish_class): We're now outside a valid method
e64c46ce 12379 declaration. Tell the rest of gcc so.
fcf6eeb6 12380
64e92991
RK
123811999-09-08 Bruce Korb autogen@linuxbox.com
12382
12383 * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
12384
512d594b
TT
123851999-09-07 Tom Tromey <tromey@cygnus.com>
12386
12387 * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
12388 java-array.h.
12389 (decode_signature_piece): Don't emit "::" in JArray<>.
12390 (print_namelet): Only print trailing `;' when printing a class.
12391
62c9aa5f 123921999-09-10 Bernd Schmidt <bernds@cygnus.co.uk>
81b3411c
BS
12393
12394 * java-tree.h: Delete declarations for all tree nodes now moved to
12395 global_trees.
12396 * decl.c: Delete their definitions.
12397
6308c574
MM
123981999-09-04 Mark Mitchell <mark@codesourcery.com>
12399
12400 * Make-lang.in (jc1): Depend on ggc-callbacks.o.
12401 * Makefile.in (OBJS): Add ggc-callbacks.o.
12402 (OBJDEPS): Likewise.
12403
2f11d407
TT
124041999-09-03 Tom Tromey <tromey@cygnus.com>
12405
12406 * parse.y (strip_out_static_field_access_decl): Return operand if
12407 it satisfies JDECL_P.
12408
3a5395a3
TT
124091999-09-02 Tom Tromey <tromey@cygnus.com>
12410
12411 * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
12412 Handle nested arrays, like `[[I'.
12413
d593dd8c
KG
124141999-09-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12415
12416 * class.c (finish_class): Remove unused parameter, all callers
12417 changed.
12418
12419 * expr.c (build_java_athrow): Change return type to void.
12420 (java_lang_expand_expr): Make sure each case in switch returns a
12421 value.
12422
12423 * java-tree.h (finish_class): Fix prototype to take void args.
12424
12425 * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
12426 (main): Issue return from main, not exit.
12427
12428 * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
12429
12430 * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
12431
12432 * jv-scan.c (main): Issue return from main, not exit.
12433
12434 * parse.y (check_abstract_method_definitions,
12435 java_check_abstract_method_definitions): Add static prototypes.
12436 (java_complete_expand_methods): Fix call to `finish_class'.
12437
12438 * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
12439 and `prevpc'.
12440
f425a887
KG
124411999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12442
12443 * lang.c (language_string): Constify.
12444
00d30284
KG
124451999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12446
12447 * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
12448 Remove hacks for stuff which comes from libiberty.
12449
12450 * Make-lang.in: Likewise.
12451
62c9aa5f 124521999-08-30 Hans-Peter Nilsson <hp@axis.se>
24c30b28
HPN
12453
12454 * Makefile.in (xref.o): Depend on xref.c explicitly.
12455
1b93a502
KG
124561999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12457
12458 * java-tree.h (lang_printable_name): Constify a char*.
12459
12460 * lang.c (lang_printable_name): Likewise.
12461
62c9aa5f 124621999-08-27 Jeffrey A Law (law@cygnus.com)
5f9ee695
JL
12463
12464 * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
12465 comments in C code.
12466
12207a87
TT
124671999-08-26 Tom Tromey <tromey@cygnus.com>
12468
12469 * gjavah.c (print_cxx_classname): Print "::" before qualified
12470 name.
12471
62c9aa5f 124721999-08-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
f441f671
APB
12473
12474 * parse.y (lookup_cl): Changed leading comment. Now does its best
e64c46ce 12475 to set the column number.
f441f671
APB
12476 (qualify_ambiguous_name): Take WFL wrappers into account.
12477
62c9aa5f 124781999-08-25 Gregg Townsend <gmt@cs.arizona.edu>
ee5cd638
GT
12479
12480 * verify.c (verify_jvm_instructions): Don't check instruction
12481 validity beyond end of method.
12482
20c96b2a
TT
124831999-08-25 Tom Tromey <tromey@cygnus.com>
12484
12485 * jvspec.c (lang_specific_driver): Correctly handle --help again.
12486
be245ac0
KG
124871999-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12488
12489 * gjavah.c (print_name, print_base_classname, utf8_cmp,
12490 cxx_keyword_subst, generate_access, name_is_method_p,
12491 get_field_name, print_field_name, super_class_name, print_include,
12492 decode_signature_piece, print_class_decls, usage, help,
12493 java_no_argument, version, add_namelet, print_namelet): Add static
12494 prototype.
12495 (print_base_classname, utf8_cmp, cxx_keyword_subst,
12496 name_is_method_p): Constify a char*.
12497 (get_field_name): Likewise. Prefer xstrdup over malloc/strcpy.
12498 Provide a final else clause in an if-else-if.
12499 (print_field_info): Add missing final arg in function call to
12500 `print_field_name'.
12501 (print_method_info, decompile_method, decode_signature_piece,
12502 print_c_decl, print_full_cxx_name, print_stub,
12503 print_mangled_classname, super_class_name, print_include,
12504 add_namelet, add_class_decl, print_class_decls, process_file,
12505 help): Constify a char*.
12506
12507 * jcf-write.c (jcf_handler, push_constant1, push_constant2,
12508 push_int_const, find_constant_wide, find_constant_index,
12509 push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
12510 emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
12511 emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
12512 emit_if, emit_goto, emit_jsr, call_cleanups,
12513 make_class_file_name): Add static prototypes.
12514 (generate_bytecode_return, generate_bytecode_insns): Pass a
12515 NULL_PTR, not a NULL_TREE.
12516
12517 * jv-scan.c: Include "jcf.h".
12518 (main): Declare using DEFUN macro.
12519
12520 * jvspec.c (find_spec_file, lang_specific_pre_link,
12521 lang_specific_driver): Add prototypes.
12522 (find_spec_file): Constify a char*.
12523
12524 * keyword.gperf (hash, java_keyword): Add prototypes.
12525
12526 * lang.c (lang_print_error): Add static prototype.
12527 (lang_init): Prefer memcpy over bcopy to avoid casts.
12528
12529 * lex.c (yylex): Add static prototype.
12530
12531 * parse-scan.y: Include "lex.c" earlier.
12532
12533 * parse.h: Remove redundant declaration for `yylex'.
12534
12535 * parse.y (java_decl_equiv, binop_compound_p, search_loop,
12536 labeled_block_contains_loop_p): Add static prototypes.
12537 (not_accessible_p): Make static to match prototype.
12538
12539 * verify.c (start_pc_cmp): Don't needlessly cast away const.
12540
62c9aa5f 125411999-08-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
d77613be
APB
12542
12543 * parse.y (check_method_redefinition): Changed leading comment.
12544 (check_abstract_method_definitions): New function.
12545 (java_check_abstract_method_definitions): New function.
12546 (java_check_regular_methods): Call it.
12547 (verify_constructor_super): Fixed indentation.
12548 (lookup_method_invoke): Likewise.
12549
62c9aa5f 125501999-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
79d13333
APB
12551
12552 * parse.y (method_header): Return a null pointer if the current
e64c46ce 12553 class node is null.
79d13333 12554 (finish_method_declaration): Return if the current function decl
e64c46ce 12555 is null.
79d13333
APB
12556 (source_start_java_method): Likewise.
12557 (java_method_add_stmt): Likewise.
12558
62c9aa5f 125591999-08-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
5cbdba64
APB
12560
12561 * class.c (emit_register_class): Removed unnecessary call to
e64c46ce 12562 start_sequence.
5cbdba64 12563 * parse.y (labeled_block_contains_loop_p): Removed unused local
e64c46ce 12564 variable.
5cbdba64 12565
62c9aa5f 125661999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
5cbdba64 12567
f6bbde28 12568 * parse.y (java_refold): Added prototype.
5cbdba64 12569
62c9aa5f 125701999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
5cbdba64 12571
f6bbde28
ZW
12572 * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
12573 (java_stabilize_reference): Removed unnecessary `else'.
12574 (java_complete_lhs): Set flag to remember boolean. Call
12575 java_refold. Added comments.
12576 (java_decl_equiv): New function.
12577 (binop_compound_p): Likewise.
12578 (java_refold): Likewise.
12579 (patch_unaryop): Striped static field access assigned to decl and
12580 op. Changed promotion scheme for ++/-- operators.
12581 (search_loop): New function.
12582 (labeled_block_contains_loop_p): Likewise.
12583 (patch_loop_statement): Call labeled_block_contains_loop_p. Added
12584 comment.
12585 (patch_bc_statement): Call search_loop. Fixed comment.
5cbdba64 12586
66e06429
AG
125871999-08-14 Anthony Green <green@cygnus.com>
12588
12589 * expr.c (java_lang_expand_expr): Mark static array data as
12590 referenced.
12591
62c9aa5f 125921999-08-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9a816500
RO
12593
12594 * jvgenmain.c (main): NUL-terminate name_obstack.
12595
c8e7d2e6
KG
125961999-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12597
12598 * check-init.c (check_bool2_init, done_alternative): Add static
12599 prototypes.
12600
12601 * class.c (add_interface_do, maybe_layout_super_class): Likewise.
12602 (add_method, build_utf8_ref, build_class_ref,
12603 append_gpp_mangled_type, layout_class_method): Constify a char*.
12604
12605 * decl.c (push_promoted_type, make_binding_level): Add static
12606 prototypes.
12607 (push_promoted_type, pushdecl): Constify a char*.
12608
12609 * except.c (find_handler_in_range, link_handler,
12610 check_start_handlers): Add static prototypes.
12611
12612 * expr.c (process_jvm_instruction): Constify a char*.
12613
12614 * gjavah.c (main): Constify a char*.
12615
12616 * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
12617 Constify a char*.
12618
12619 * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
12620 static prototypes.
12621 (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
12622 munge, print_ents): Constify a char*.
12623
12624 * jcf-dump.c (disassemble_method): Constify a char*.
12625 (print_constant_pool, print_exception_table): Add static prototypes.
12626 (print_constant, print_exception_table, main, disassemble_method):
12627 Constify a char*.
12628
12629 * jcf-io.c (find_classfile, find_class): Likewise.
12630
12631 * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
12632 (set_source_filename, predefined_filename_p): Add static prototypes.
12633 (set_source_filename, get_constant, get_class_constant,
12634 find_in_current_zip): Constify a char*.
12635
12636 * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
12637 static prototypes.
12638 (add_entry, add_path, jcf_path_classpath_arg,
12639 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
12640
12641 * jcf-reader.c (get_attribute, jcf_parse_preamble,
12642 jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
12643 jcf_parse_one_method, jcf_parse_methods,
12644 jcf_parse_final_attributes): Add static prototypes.
12645 (get_attribute): Constify a char*.
12646
12647 * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
12648 jcf_dependency_add_target, jcf_path_classpath_arg,
12649 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
12650
12651 * jv-scan.c (main): Constify a char*.
12652 (gcc_obstack_init): Add prototype arguments.
12653
12654 * jvgenmain.c (gcc_obstack_init): Likewise.
12655 (main): Constify a char*.
12656
12657 * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
12658 static prototypes.
12659 (put_decl_string, lang_print_error): Constify a char*.
12660 (lang_init): Remove redundant extern prototype.
f6bbde28 12661
c8e7d2e6
KG
12662 * mangle.c (emit_unicode_mangled_name): Constify a char*.
12663
12664 * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
12665 Add static prototypes.
12666 (get_type_from_signature): Constify a char*.
12667
12668 * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
12669 Add static prototypes.
12670 (start_pc_cmp): Prefer PTR over GENERIC_PTR.
12671 (verify_jvm_instructions): Constify a char*.
12672
12673 * xref.c (xref_flag_value): Likewise.
f6bbde28 12674
c8e7d2e6
KG
12675 * xref.h (xref_flag_value): Likewise.
12676
12677 * zextract.c (makeword, makelong): Add static prototypes.
12678 (makeword, makelong): Constify a uch*.
12679
0070eeda
KG
126801999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12681
f6bbde28
ZW
12682 * lang.c (java_dummy_print): Constify a char*.
12683 (lang_print_error): Likewise.
12684 (lang_init): Remove redundant prototype for `print_error_function'.
12685 (lang_init_source): Likewise.
12686 (lang_identify): Constify a char*.
12687
63ac1f08
TT
126881999-08-09 Tom Tromey <tromey@cygnus.com>
12689
12690 * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
12691 (WORDS_TO_LONG): Likewise.
12692 (WORDS_TO_DOUBLE): Likewise.
12693
49f48c71
KG
126941999-08-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12695
12696 * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
12697
12698 * expr.c (java_stack_pop, java_array_data_offset,
12699 build_java_throw_out_of_bounds_exception, case_identity,
12700 build_java_check_indexed_type): Add static prototypes.
12701 (linenumber_table, expand_invoke, expand_java_field_op,
12702 build_primtype_type_ref, expand_byte_code): Constify a char*.
12703
12704 * java-tree.h (build_primtype_type_ref, linenumber_table):
12705 Constify a char*.
12706 (java_lang_expand_expr): Add prototype.
12707
12708 * lang.c: Include rtl.h and expr.h. Remove extern prototype for
12709 `java_lang_expand_expr'.
12710
12711 * lex.c (java_lex_error): Constify a char*.
12712 (java_get_unicode, java_read_char, java_allocate_new_line,
12713 java_unget_unicode, java_sneak_unicode): Prototype.
12714
12715 * parse-scan.y (current_class, package_name, method_declarator,
12716 report_class_declaration, yyerror): Constify a char*.
12717
12718 * parse.h (java_report_errors): Prototype.
12719 (yyerror): Constify a char*.
12720
12721 * parse.y (classitf_redefinition_error, check_modifiers,
12722 parse_jdk1_1_error, lookup_package_type,
12723 lookup_package_type_and_set_next, get_printable_method_name,
12724 purify_type_name): Constify a char*.
12725 (build_super_invocation, maybe_generate_finit,
12726 verify_constructor_super, parser_add_interface,
12727 add_superinterfaces, jdep_resolve_class, note_possible_classname,
12728 java_complete_expand_methods, java_expand_finals,
12729 cut_identifier_in_qualified, java_stabilize_reference,
12730 do_unary_numeric_promotion, operator_string, do_merge_string_cste,
12731 merge_string_cste): Prototype.
12732 (single_type_import_declaration, yyerror,
12733 variable_redefinition_error, build_array_from_name,
12734 build_unresolved_array_type, check_class_interface_creation,
12735 resolve_class, complete_class_report_errors,
12736 note_possible_classname, read_import_dir,
12737 find_in_imports_on_demand, resolve_package, fix_constructors,
12738 check_deprecation, lookup_method_invoke,
12739 maybe_build_primttype_type_ref, array_constructor_check_entry):
12740 Constify a char*.
12741 (java_complete_expand_methods, java_expand_finals): Make static.
12742 (convert_narrow): Remove static prototype.
12743
62c9aa5f 127441999-08-03 J"orn Rennecke <amylaar@cygnus.co.uk>
02edc62b
R
12745
12746 * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
12747
0ae70c6a
RH
127481999-08-02 Richard Henderson <rth@cygnus.com>
12749
12750 * decl.c: Include defaults.h instead of expr.h.
12751 * parse.y: Likewise.
12752
e438e1b7
JJ
127531999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
12754
12755 * java/decl.c (start_java_method): Change all uses of
12756 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
12757 Ensure expr.h is included.
12758 * java/expr.c (pop_arguments): Ditto.
12759 * java/parse.y (expand_start_java_method): Ditto.
12760
9490b7d6
KG
127611999-08-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12762
12763 * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
12764
b384405b
BS
127651999-07-31 Bernd Schmidt <bernds@cygnus.co.uk>
12766
12767 * decl.c: Include "function.h".
12768 * except.c: Likewise.
12769 * parse.y: Likewise.
12770 * Makefile.in: Update dependencies.
12771
cd531a2e
KG
127721999-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12773
12774 * expr.c (build_java_soft_divmod): Provide a default case in switch.
12775 (java_lang_expand_expr): Mark parameters `target', `tmode' and
12776 `modifier' with ATTRIBUTE_UNUSED.
12777
12778 * gjavah.c (process_file): Add braces around ambiguous `else'.
12779
12780 * jcf-dump.c (print_access_flags, localvar_free): Change return
12781 type to void.
12782
12783 * parse.y (java_complete_expand_method): Initialize variable
12784 `exception_copy'.
12785 (resolve_qualified_expression_name): Likewise for `field_decl'.
12786 (patch_method_invocation): Likewise for `class_to_search'.
12787 (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
12788 (patch_assignment): Likewise for `lhs_type'.
12789
12790 * verify.c (verify_jvm_instructions): Remove unused variable
12791 `caller'.
12792
8824cf7e
RH
127931999-07-25 Richard Henderson <rth@cygnus.com>
12794
12795 * decl.c (va_list_type_node): New.
12796
6c9c5c1f
AG
127971999-07-25 Anthony Green <green@cygnus.com>
12798
12799 * gjavah.c (print_stub): New function.
12800 (METHOD_IS_NATIVE): New macro.
12801 (print_mangled_classname): Make static.
12802 (HANDLE_END_FIELD): Don't emit fields during stub generation.
12803 (process_file): Perform stub generation.
12804 (HANDLE_METHOD): Don't emit class decls during stub
12805 generation.
12806 (HANDLE_END_METHOD): Take into account stub generation.
12807 (print_method_info): Handle stub generation.
12808 (print_stub): New function.
12809 (print_cxx_classname): Make signature consistant with others.
12810 (help): Describe -stubs option.
12811 (main): Create stub file.
12812 (version): Use version.c.
12813 (print_full_cxx_name): New function.
12814 (print_c_decl): Use print_full_cxx_name.
12815
62c9aa5f 128161999-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
ac1d97ce
APB
12817
12818 * check-init.c (check_init): Handle MAX_EXPR.
12819
aa4759c1
AH
128201999-07-15 Andrew Haley <aph@cygnus.com>
12821
f6bbde28
ZW
12822 * lang.c (flag_use_divide_subroutine): New variable.
12823 * typeck.c: (convert_ieee_real_to_integer): Bounds check
12824 fp-to-integer conversion.
12825 (convert): Call convert_ieee_real_to_integer when flag_fast_math
12826 is not set.
12827
12828 * expr.c (build_java_soft_divmod): New function.
12829 (build_java_binop): Call build_java_soft_divmod if
12830 flag_use_divide_subroutine is set.
12831 * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
12832 soft_lrem_node: new builtin functions.
12833 (init_decl_processing) Initialize the new builtins.
12834 * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
12835 soft_lrem_node: new builtin functions.
12836 (build_java_soft_divmod): New function.
12837 * parse.y: Call build_java_soft_divmod if
12838 flag_use_divide_subroutine is set.
12839 * parse.c: Rebuilt.
12840
12841 * jvspec.c (lang_specific_driver): Always allow an extra arg (for
12842 a --specs= arg) even if not linking.
12843 * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
12844 -fuse-divide-subroutine
0b094f65 12845
62c9aa5f 128461999-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
7705e9db
APB
12847
12848 * parse.y (resolve_and_layout): Check methods only once.
12849 (resolve_qualified_expression_name): Verify thrown exceptions
e64c46ce 12850 compatibility.
7705e9db 12851 (check_thrown_exceptions): Reject exceptions thrown in
e64c46ce 12852 initializer. Error message tuned.
f6bbde28 12853
e533f648
AH
128541999-07-14 Andrew Haley <aph@cygnus.com>
12855
f6bbde28
ZW
12856 * expr.c (expand_expr): Do not return the last statement in a
12857 block as the block's value.
e533f648 12858
62c9aa5f 128591999-07-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
1a6d4fb7
APB
12860
12861 * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
e64c46ce 12862 CALL_EXPR, to avoid order of evaluation changes.
1a6d4fb7 12863
62c9aa5f 128641999-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
1a6d4fb7
APB
12865
12866 * parse.y (qualify_ambiguous_name): Do not use
e64c46ce 12867 IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
1a6d4fb7 12868
62c9aa5f 128691999-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
1a6d4fb7
APB
12870
12871 * check-init.c (check_init): Handle MAX_EXPR.
12872 * expr.c (force_evaluation_order): Force method call arguments to
e64c46ce 12873 be evaluated in left-to-right order.
1a6d4fb7 12874 * parse.y (qualify_ambiguous_name): Loop again to qualify
e64c46ce 12875 NEW_ARRAY_EXPR properly.
1a6d4fb7 12876
62c9aa5f 128771999-06-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
1a6d4fb7
APB
12878
12879 * parse.y (patch_invoke): Resolve unresolved invoked method
e64c46ce 12880 returned type.
1a6d4fb7 12881 (qualify_ambiguous_name): STRING_CST to qualify expression for
e64c46ce 12882 type name resolution.
1a6d4fb7 12883
ac8f5d48
AH
128841999-06-24 Andrew Haley <aph@cygnus.com>
12885
12886 * class.c (finish_class): Whenever a deferred method is
12887 output, rescan the list of methods to see if a new candidate for
12888 output can be found.
12889
4198d734
TT
128901999-06-28 Tom Tromey <tromey@cygnus.com>
12891
12892 * jvspec.c (lang_specific_driver): Recognize --help.
12893
62c9aa5f 128941999-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
2c56429a
APB
12895
12896 * parse.y (resolve_package): Fixed bogus return statement.
12897 (patch_method_invocation): Resolve method invocation beginning with
e64c46ce 12898 a package name qualifier.
2c56429a 12899
58ec4285
KG
129001999-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12901
12902 * Make-lang.in (java.stage1): Depend on stage1-start.
12903 (java.stage2): Likewise for stage2-start.
12904 (java.stage3): Likewise for stage3-start.
12905 (java.stage4): Likewise for stage4-start.
12906
62c9aa5f 129071999-06-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
2c56429a
APB
12908
12909 * parse.y (java_complete_lhs): When doing cross referencing, don't
e64c46ce 12910 try to keep file location on a WFL expanded as a CALL_EXPR.
2c56429a 12911
62c9aa5f 129121999-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
2c56429a
APB
12913
12914 * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
e64c46ce
AJ
12915 compiling to class file a void method with an empty method body.
12916 As a side effect, the bytecode backend will generate the
12917 appropriate `return' instruction.
f6bbde28 12918
62c9aa5f 129191999-06-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
2c56429a
APB
12920
12921 * parse.y (lookup_package_type_and_set_next): New function prototype.
12922 (resolve_package): Search current and imported packages.
12923 (lookup_package_type_and_set_next): New function.
12924
45b0aa31
AH
129251999-06-22 Andrew Haley <aph@cygnus.com>
12926
12927 * verify.c (verify_jvm_instructions): Check for pending blocks
12928 before invalid PC test and opcode switch, not after.
12929
44d7502b
AH
129301999-06-21 Andrew Haley <aph@cygnus.com>
12931
f6bbde28
ZW
12932 * except.c (find_handler_in_range): The upper limit for exception
12933 ranges is exclusive, not inclusive: (start <= pc < end).
12934 (link_handler): find child pointer which points to outer by
12935 searching sibling list: previous code incorrectly assumed that
12936 outer->outer->first_child must point to outer.
12937 * verify.c (verify_jvm_instructions): FIXME added to code for
12938 `athrow'.
12939 (verify_jvm_instructions): Do not assume that the last block
12940 processed in a subroutine is a block which ends with a `ret'
12941 instruction. With some control flows it is possible that the last
12942 block ends with an `athrow'.
44d7502b 12943
62c9aa5f 129441999-06-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
8576f094
APB
12945
12946 * parse.y (qualify_ambiguous_name): Reorganized the post
e64c46ce 12947 evaluation of non WFL leading expression nodes.
8576f094 12948
62c9aa5f 129491999-06-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
8576f094
APB
12950
12951 * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
e64c46ce 12952 CONVERT_EXPR.
8576f094 12953
62c9aa5f 129541999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
8576f094
APB
12955
12956 * parse.y (qualify_ambiguous_name): Handle qualified expression
e64c46ce 12957 beginning with a STRING_CST.
8576f094 12958
62c9aa5f 129591999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
8576f094
APB
12960
12961 * parse.y (register_fields): Set DECL_INITIAL on both
e64c46ce 12962 pre-initialized static and public fields.
8576f094 12963 (resolve_field_access): Static field access expressions to always
e64c46ce 12964 use pointer types.
8576f094 12965 (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
e64c46ce 12966 qualification. CONVERT_EXPR to be resolved as an expression name.
8576f094 12967 (java_complete_lhs): Identify and access qualified final
e64c46ce 12968 initialized field in switch statement case expression.
8576f094 12969 (fold_constant_for_init): Pre-initialized field decl constant to
e64c46ce 12970 be folded.
8576f094 12971
62c9aa5f 129721999-06-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
fe0e4d76
APB
12973
12974 * parse.y (note_possible_classname): Mark returned node with
e64c46ce 12975 QUALIFIED_P only if the original class name contained a '/'.
fe0e4d76 12976
62c9aa5f 129771999-06-05 Anthony Green <green@cygnus.com>
db1421c7
AG
12978
12979 * Make-lang.in (gcjh): More parallel build fixes.
12980
129811999-06-03 Mike Stump <mrs@wrs.com>
12982
12983 * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
12984
62c9aa5f 129851999-06-02 Anthony Green <green@cygnus.com>
99fd3aa5
AG
12986
12987 * except.c (link_handler): Chain exception handlers in order.
12988
62c9aa5f 129891999-06-02 Anthony Green <green@cygnus.com>
99fd3aa5
AG
12990
12991 * expr.c (expand_byte_code): Fill unreachable bytecode regions
e64c46ce
AJ
12992 with nops and process as usual in order to always set correct EH
12993 ranges. Emit detailed warnings about unreachable bytecodes.
99fd3aa5 12994
62c9aa5f 129951999-06-02 Anthony Green <green@cygnus.com>
99fd3aa5
AG
12996
12997 * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
e64c46ce 12998 constant.
99fd3aa5 12999
62c9aa5f 130001999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
93024893 13001
f6bbde28
ZW
13002 * parse.y (lookup_field_wrapper): Unified returned value to NULL
13003 or the searched field decl.
13004
62c9aa5f 130051999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
93024893
APB
13006
13007 * parse.y (fold_constant_for_init): Convert numerical constant
e64c46ce 13008 values to the type of the assigned field.
93024893 13009
62c9aa5f 130101999-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
93024893
APB
13011
13012 * expr.c (lookup_field): Relaxed the test on class loading error
e64c46ce 13013 detection.
93024893
APB
13014 * parse.y (fold_constant_for_init): Enabeled old code.
13015
62c9aa5f 130161999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
93024893
APB
13017
13018 * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
e64c46ce
AJ
13019 decide the validity of the cast of a java.lang.Cloneable reference
13020 to an array.
93024893 13021 (patch_conditional_expr): Fixed first argument passed to
e64c46ce 13022 binary_numeric_promotion.
93024893 13023
62c9aa5f 130241999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
2ba1f15f
APB
13025
13026 * parse.y (qualify_ambiguous_name): Take into account that a
e64c46ce 13027 CONVERT_EXPR might specify a type as a WFL.
2ba1f15f 13028
62c9aa5f 130291999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
f6bbde28
ZW
13030
13031 * parse.y (patch_assignment): Save the rhs before using it as an
13032 argument to _Jv_CheckArrayStore.
13033
62c9aa5f 130341999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
dc4e6ccf
APB
13035
13036 * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
13037
62c9aa5f 130381999-05-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
dc4e6ccf 13039
f6bbde28 13040 * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
67264b4f 13041 floating point literal only when the exponent indicator has been
f6bbde28 13042 parsed.
dc4e6ccf 13043
62c9aa5f 130441999-05-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
5256aa37
APB
13045
13046 * parse.y (formal_parameter:): Construct argument tree list
e64c46ce 13047 element even if a yet unsupported final parameter was encountered.
5256aa37 13048
62c9aa5f 130491999-05-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
5256aa37
APB
13050
13051 * parse.y (finish_method_declaration): Issue errors for native or
e64c46ce
AJ
13052 abstract methods declared with a method body, as well as for non
13053 native or non abstract methods with no method body.
5256aa37 13054
ab3a6dd6
KG
130551999-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13056
13057 * class.c (build_utf8_ref): Initialize variable `field'.
13058
13059 * decl.c (init_decl_processing): Initialize variable `field'.
13060
13061 * expr.c (build_known_method_ref): Mark parameters `method_type',
13062 `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
13063 (process_jvm_instruction): Likewise for parameter `length'.
13064
13065 * jvspec.c (lang_specific_driver): Mark variables `saw_math',
13066 `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
13067 ATTRIBUTE_UNUSED.
13068
13069 * parse.y (maybe_generate_clinit): Remove unused variable
13070 `has_non_primitive_fields'.
13071 (find_in_imports_on_demand): Initialize variables `node_to_use'
13072 and `cl'.
13073 (patch_binop): Likewise for variable `prom_type'.
13074 (patch_unaryop): Likewise for variable `prom_type'.
13075
13076 * verify.c (verify_jvm_instructions): Likewise for variable `last'.
13077
13078 * xref.c (xref_table): Add missing initializer.
13079
5a9e5c6f
TT
130801999-05-14 Tom Tromey <tromey@cygnus.com>
13081
13082 * java-except.h (struct eh_range): Removed unused `next' member.
13083 * verify.c (verify_jvm_instructions): Call check_nested_ranges
13084 after adding all exception handlers. Sort exception ranges in
13085 order of start PC.
13086 (struct pc_index): New structure.
13087 (start_pc_cmp): New function.
13088 * except.c (add_handler): Return `void'. Don't call link_handler;
13089 instead construct an ordinary linked list and do range
13090 coalescing.
13091 (check_nested_ranges): New function.
13092 (link_handler): Changed interface to allow merging of eh_ranges.
13093 Split overlapping ranges. Return `void'.
13094
62c9aa5f 130951999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
2e5eb5c5
APB
13096
13097 * parse.y (constructor_block_end:): New rule, tagged <node>.
13098 (constructor_body:): Use `constructor_block_end' instead of
e64c46ce 13099 `block_end'.
2e5eb5c5 13100
62c9aa5f 131011999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
9dd939b2
APB
13102
13103 * parse.y (statement_nsi:): Pop `for' statement block.
2e5eb5c5 13104 (java_complete_lhs): Labeled blocks containing no statement are
e64c46ce 13105 marked as completing normally.
9dd939b2 13106
62c9aa5f 131071999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
af8b342a
APB
13108
13109 * xref.c (xref_set_current_fp): New function, defined.
13110 * xref.h (xref_set_current_fp): New function, prototyped.
13111
62c9aa5f 131121999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
af8b342a
APB
13113
13114 * check-init.c (check_init): Take into account that
e64c46ce 13115 LABELED_BLOCK_STMT can be empty.
af8b342a 13116
62c9aa5f 131171999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
1fb89a4d
APB
13118
13119 * parse.y (java_check_regular_methods): Warning check on not
e64c46ce
AJ
13120 overriding methods with default access in other packages does not
13121 apply to `<clinit>'.
1fb89a4d 13122 (java_complete_lhs): If block body is an empty_stmt_node, replace
e64c46ce
AJ
13123 it by NULL_TREE. This prevents gcc from generating an irrelevant
13124 warning.
1fb89a4d 13125
62c9aa5f 131261999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
ce6e9147
APB
13127
13128 * check-init.c (check_init): Removed code accepting to see things
13129 falling through default:, when doing xrefs.
13130 * java-tree.h (do_not_fold): New global variable, declared.
13131 * parse.y (do_not_fold): New global variable, defined.
13132 (java_complete_expand_method): Set `do_not_fold' to the value of
e64c46ce
AJ
13133 `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
13134 and reinstall them after them have been purged; do not check for
13135 initializations; do not issue missing return errors.
ce6e9147 13136 (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
e64c46ce 13137 when doing xrefs.
ce6e9147
APB
13138 (patch_binop): Skip the fold part when doing xrefs.
13139 (build_string_concatenation): Skip the concatenation part when
e64c46ce 13140 doing xrefs.
ce6e9147 13141 (patch_synchronized_statement): Do not generate a try-finally when
e64c46ce 13142 doing xrefs.
ce6e9147 13143 (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
e64c46ce 13144 and keep the location where the throw was seen.
ce6e9147 13145 * typeck.c (convert): When `do_not_fold' is set, do not attempt
e64c46ce
AJ
13146 any treatment on the converted node an simply return a NOP_EXPR of
13147 the targeted type.
ce6e9147
APB
13148 * xref.c (xref_get_data): New function, defined.
13149 * xref.h (xref_get_data): New function, declared.
13150 (XREF_GET_DATA): Use xref_get_data.
f6bbde28 13151
ab3a6dd6 131521999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1b01250d 13153
f6bbde28
ZW
13154 * gjavah.c (print_include): Cast the result of `strlen' to int
13155 when comparing against a signed value.
13156 (add_namelet): Likewise.
1b01250d 13157
ab3a6dd6 131581999-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
34ba56fa 13159
b4b63e32
KG
13160 * expr.c (expand_invoke): Mark parameter `nargs' with
13161 ATTRIBUTE_UNUSED.
13162 (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
13163
13164 * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
13165 ATTRIBUTE_UNUSED.
13166
13167 * jcf-reader.c (get_attribute): Cast a value to long
13168 when comparing against a signed expression. Likewise.
13169
34ba56fa
KG
13170 * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
13171 HOST_BITS_PER_CHAR.
13172
138657ec
AH
131731999-05-11 Andrew Haley <aph@cygnus.com>
13174
f6bbde28
ZW
13175 * parse.y (source_end_java_method): If the current method contains
13176 any exception handlers, force asynchronous_exceptions: this is
13177 necessary because signal handlers in libjava may throw exceptions.
13178 * decl.c (end_java_method): Ditto.
138657ec 13179
6a09296d
TT
131801999-05-11 Tom Tromey <tromey@cygnus.com>
13181
13182 * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
13183 flags.
13184 * jvspec.c (THREAD_NAME): Removed.
13185 (GC_NAME): Likewise.
13186 (MATHLIB): Likewise.
13187 (WITHLIBC): Likewise.
13188 (GCLIB): Likewise.
13189 (THREADLIB): Likewise.
13190 (MATH_LIBRARY): Likewise.
13191 (lang_specific_driver): Don't add `-l' options to command line.
13192 Instead, add a single --specs option. Recognize `-L' options and
13193 use them to search for spec file.
13194 (find_spec_file): New function.
13195 (SPEC_FILE): New define.
13196
62c9aa5f 131971999-05-11 Dave Brolley <brolley@cygnus.com>
b8b8bc03
DB
13198
13199 * lang-options.h: -MD, -MMD, -M and -MM not needed here for
13200 cpplib-enabled build.
13201
c14cff58
PB
132021999-05-05 Per Bothner <bothner@cygnus.com>
13203
13204 * class.c (make_field_value): DECL_INITIAL may be a string literal;
13205 temporarily zero it while calling rest_of_decl_compilation.
13206
13207 * java-tree.h (string_ptr_type_node): Add declaration.
13208 * decl.c: Define and initialize string_ptr_type_node.
13209 * parse.y (patch_string_cst): Use string_ptr_type_node.
13210
13211 * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P): Removed.
13212 * parse.y (for_statement): Now unconditionally exit_block.
13213 (finish_labeled_statement): No longer exit_block if for-loop.
13214 (patch_loop_statement): Check harder if the loop is already labeled.
13215
13216 * parse.y (patch_initialized_static_field): Removed function.
13217 (maybe_generate_clinit): Removed special handling for interfaces.
13218 (java_complete_expand_methods): Do a preliminary java_complete_tree
13219 on <clinit> to determine if it can be removed.
13220 (java_complete_expand_method): Remove special handling for <clinit>.
13221 (java_complete_lhs): For BLOCK and EXPR_WITH_FILE_LOCATION
13222 optimize if we get back empty_stmt_node.
13223 For MODIFY_EXPR, re-do checking of static initializers.
13224 (fold_constant_for_init): Don't return immediate if VAR_DECL.
13225 For VAR_DECL, pass correct context.
13226
13227 * verify.c (verify_jvm_instructions): Better error messages.
13228
a7f0ef91
TT
132291999-05-03 Tom Tromey <tromey@cygnus.com>
13230
13231 * parse-scan.y (interface_declaration): Call
13232 report_class_declaration for interfaces.
13233
b4c92efc
ZW
132341999-04-30 20:54 -0400 Zack Weinberg <zack@rabi.columbia.edu>
13235
13236 * Makefile.in: Remove -v from bison command lines.
13237
62c9aa5f 132381999-04-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
7f10c2e2
APB
13239
13240 * check-init.c (check_init): Exclude a case of error when doing
e64c46ce 13241 xrefs.
7f10c2e2 13242 * class.c (layout_class_method): Don't generate the error message
e64c46ce 13243 twice when compiling from source.
7f10c2e2
APB
13244 * lang-options.h: Added `-Wredundant-modifers' and
13245 `-Wunusupported-jdk11' flags and help text.
13246 * lang.c (lang_decode_option): Added support for
e64c46ce 13247 `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
7f10c2e2
APB
13248 flag_static_local_jdk11 and flag_redundant set accordingly.
13249 * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
13250 * parse.h (EXPR_WFL_ADD_COL): New macro.
13251 (DECL_END_SOURCE_LINE): Likewise.
13252 (DECL_INHERITED_SOURCE_LINE): Likewise.
13253 * parse.y (static_ref_err): New function, prototyped.
13254 (CCB_TK): Now tagged <operator>.
13255 (class_body:): Remember the location of the closing '}' of a class
e64c46ce 13256 definition when doing xrefs.
7f10c2e2
APB
13257 (block:): Likewise.
13258 (block_end:): Likewise.
13259 (create_class): Remember the location of the inherited class
e64c46ce 13260 identifier when doing xrefs.
7f10c2e2 13261 (register_fields): Added test on first operand of `init' before
e64c46ce 13262 testing it TREE_CODE.
7f10c2e2 13263 (method_header): Store the location of the class identifier in the
e64c46ce 13264 class decl when doing xrefs.
7f10c2e2 13265 (finish_method_declaration): Don't combine first/last method line
e64c46ce 13266 when doing xref.
7f10c2e2 13267 (java_check_regular_methods): Warning check on not overriding
e64c46ce
AJ
13268 methods with default access on other packages move before check on
13269 static methods. Initialization of `aflags' also moved up.
7f10c2e2
APB
13270 (resolve_expression_name): Call static_ref_err to report the error.
13271 (static_ref_err): New function, implemented.
13272 (resolve_field_access): Returned simplified static field access
e64c46ce 13273 when doing xrefs.
7f10c2e2 13274 (resolve_qualified_expression_name): Check for illegal use of
e64c46ce
AJ
13275 static fields in a non static context. Call static_ref_err to
13276 report error in various places.
ce6e9147 13277 (java_complete_tree): Do not fold initialized static fields when
e64c46ce 13278 doing xrefs.
7f10c2e2
APB
13279 (java_complete_lhs): Likewise.
13280
d2e0d40a
AG
132811999-04-29 Anthony Green <green@cygnus.com>
13282
13283 * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
13284 create internal labels.
13285 (lookup_label): Ditto.
13286
62c9aa5f 132871999-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
7f1d4866
APB
13288
13289 * class.c (layout_class_method): Generate <clinit>'s rtl for
e64c46ce 13290 interfaces.
7f1d4866 13291 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
e64c46ce 13292 for interfaces' <clinit>.
7f1d4866
APB
13293 * expr.c (lookup_field): Search for fields in interfaces.
13294 (expand_invoke): Fixed indentation.
13295 (expand_java_field_op): Likewise. Use IS_CLINIT.
13296 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
13297 (IS_CLINIT): New macro.
13298 * parse.y (type_declaration:): Call maybe_generate_clinit after an
e64c46ce 13299 interface was parsed.
7f1d4866 13300 (maybe_generate_clinit): Don't generate if the current class is an
e64c46ce 13301 interface with only fields of primitive types.
7f1d4866
APB
13302 (reset_method_name): Use IS_CLINIT.
13303 (java_complete_expand_method): Expand <clinit> when it exists for
e64c46ce 13304 interfaces. Use IS_CLINIT.
7f1d4866 13305 (resolve_expression_name): Use DECL_CONTEXT instead of
e64c46ce 13306 current_class to build static field references.
7f1d4866 13307 (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
e64c46ce 13308 ARRAY_REF when doing xreferencing.
7f1d4866 13309 (check_final_assignment): Fixed typo in leading comment. Use
e64c46ce 13310 IS_CLINIT.
7f1d4866 13311 (patch_array_ref): Don't fully expand array references when
e64c46ce 13312 xreferencing.
7f1d4866
APB
13313 (patch_return): Use IS_CLINIT.
13314 (patch_throw_statement): Likewise.
13315
c9eb638e
TT
133161999-04-22 Tom Tromey <tromey@cygnus.com>
13317
13318 * Make-lang.in (JAVA_SRCS): Added check-init.c.
13319
62c9aa5f 133201999-04-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
5423609c
APB
13321
13322 * decl.c (predef_filenames, predef_filenames_size): New globals
13323 (init_decl_processing): predef_filenames and predef_filenames_size
e64c46ce 13324 initialized.
5423609c 13325 * java-tree.h (predef_filenames, predef_filenames_size): Declared
e64c46ce 13326 extern.
5423609c
APB
13327 * jcf-parse.c (predefined_filename_p): New function.
13328 (yyparse): Check that files on the command line are specified only
e64c46ce 13329 once and issue a warning otherwise.
5423609c
APB
13330 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
13331 * parse.y (source_end_java_method): Nullify NOP method bodies, to
e64c46ce 13332 avoid a gcc warning with -W -Wall turned on.
5423609c
APB
13333 (java_expand_classes): Abort if errors were encountered.
13334 (java_complete_lhs): If the cross reference flag is set, wrap
e64c46ce 13335 field DECL node around a WFL when resolving expression name.
f6bbde28 13336
62c9aa5f 133371999-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
e8fc7396
APB
13338
13339 * lang.c (lang_decode_option): Fixed returned value when parsing
e64c46ce 13340 `-fxref=...' and `-Wall'.
e8fc7396 13341 * parse.y (source_end_java_method): Do not generate code when
e64c46ce 13342 flag_emit_xref is set.
e8fc7396 13343 (resolve_expression_name): Do not build static field access when
e64c46ce 13344 flag_emit_xref is set.
5423609c 13345 (resolve_field_access): No special treatment on `length' when
e64c46ce
AJ
13346 flag_emit_xref is set. Do not build qualified static field access
13347 when flag_emit_xref is set.
e8fc7396 13348 (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
e64c46ce 13349 when flag_emit_xref is set.
e8fc7396 13350 (patch_assignment): Do not generate array store runtime check when
e64c46ce 13351 flag_emit_xref is set.
e8fc7396 13352 * xref.c (xref_flag_value): Fixed function declaration
e64c46ce 13353 indentation.
e8fc7396
APB
13354 (xset_set_data): New function.
13355 * xref.h (xref_set_data): Added prototype for new function.
13356 (typedef struct xref_flag_table): New field data.
13357 (XREF_GET_DATA): New macro.
13358
a3f406ce
TT
133591999-04-19 Tom Tromey <tromey@cygnus.com>
13360
13361 * xref.h (enum): Removed trailing comma.
13362
13363 * parse.y (resolve_qualified_expression_name): Added missing
13364 `break'.
13365
62c9aa5f 133661999-04-15 Anthony Green <green@cygnus.com>
08967681
AG
13367
13368 * gjavah.c: New prototypes for java_float_finite and
13369 java_double_finite.
13370
62c9aa5f 133711999-04-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
b3edebcf 13372
e8fc7396 13373 * parse.y (patch_unaryop): Fixed ++/-- operator check on array
e64c46ce 13374 references.
b3edebcf 13375
62c9aa5f 133761999-04-06 Jeffrey A Law (law@cygnus.com)
0bb07950
JL
13377
13378 * Makefile.in (TREE_H): Add tree-check.h.
13379 (RTL_H): Add genrtl.h.
13380
62c9aa5f 133811999-04-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
2622b947 13382
f6bbde28
ZW
13383 * parse.y (patch_assignment): Added ArrayStoreException runtime
13384 check.
2622b947 13385
b399dcd2
PB
133861999-04-06 Per Bothner <bothner@cygnus.com>
13387
ab45646c
PB
13388 * expr.c (pop_type_0): New function.
13389 (pop_type): Use pop_type_0.
13390 * java-tree.h (pop_type_0): New declaration.
13391 * verify.c (verify_jvm_instructions): Check return instructions.
13392
b399dcd2
PB
13393 * parse.y (patch_binop): Don't fold if non-constant and emiting
13394 class files.
13395
62c9aa5f 133961999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4f65832d
KG
13397
13398 * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
13399
13400 * gjavah.c: Include math.h earlier. Include tree.h/java-tree.h.
13401 (main_jcf): Don't define.
13402 (process_file): Don't set `main_jcf'.
f6bbde28 13403
4f65832d
KG
13404 * java-tree.h (main_jcf): Don't declare.
13405
13406 * jcf-parse.c (main_jcf): Add static definition.
13407
13408 * lang.c (main_jcf): Don't define.
13409
62c9aa5f 134101999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4504ead1 13411
f6bbde28 13412 * class.c (add_method_1): Cast the argument of `bzero' to PTR.
4504ead1 13413
f6bbde28 13414 * decl.c (copy_lang_decl): Likewise for `bcopy'.
4504ead1 13415
f6bbde28 13416 * jcf-depend.c: Include "config.h", not <config.h>.
4504ead1 13417
f6bbde28 13418 * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
4504ead1
KG
13419 `bcopy' to PTR.
13420
f6bbde28 13421 * jcf-path.c: Include "config.h", not <config.h>.
4504ead1 13422
f6bbde28 13423 * lex.c: Don't include various system header files.
4504ead1
KG
13424 (java_init_lex): Cast the argument of `bzero' to PTR
13425
f6bbde28 13426 * parse-scan.y (java_push_parser_context): Likewise.
4504ead1 13427
f6bbde28 13428 * parse.y (java_push_parser_context): Likewise.
4504ead1
KG
13429 (patch_bc_statement): Match format specifier to variable argument.
13430
f6bbde28 13431 * xref.c: Don't include <stdio.h>.
4504ead1 13432
62c9aa5f 134331999-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
d4370213
APB
13434
13435 * parse.y (struct parser_ctxt *ctxp): Now global.
13436 (declare_local_variables): Use WFL compound value for the
e64c46ce 13437 declaration source line value, when doing cross-referencing.
d4370213 13438
5877286e
TT
134391999-03-31 Tom Tromey <tromey@cygnus.com>
13440
13441 * gjavah.c (print_field_info): Allow constants of other types.
13442 (print_include): Generate include when new name is proper prefix
13443 of already printed name.
13444 (add_namelet): Likewise.
13445 (cxx_keyword_subst): New function.
13446 (print_method_info): Use it.
13447 (print_field_name): New function.
13448 (get_field_name): New function.
13449 (print_field_info): Use get_field_name and print_field_name.
13450
62c9aa5f 134511999-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6a28cabc 13452
f6bbde28
ZW
13453 * Makefile.in (keyword.h): Generate using gperf language 'C', not
13454 'KR-C', so gperf uses the `const' keyword on strings.
6a28cabc 13455
f6bbde28 13456 * keyword.gperf (java_keyword): Const-ify a char*.
6a28cabc 13457
62c9aa5f 134581999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
1504b2b4
APB
13459
13460 * parse.y (patch_bc_statement): Fixed identation and a bogus
e64c46ce 13461 `printf' format.
1504b2b4 13462
62c9aa5f 134631999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
1504b2b4
APB
13464
13465 * parse.y (patch_assignment): Allow static variables in other
e64c46ce 13466 classes to be assigned.
1504b2b4 13467
62c9aa5f 134681999-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
152f94fc
KG
13469
13470 * class.c (maybe_add_interface): Remove unused variable
13471 `interface_binfo'.
13472 (make_class_data): Use = for assignment, not ==. Likewise.
13473 (emit_register_classes): Remove unused variable `decl'.
13474
13475 * lex.c: Fix comment so as not to contain an embedded `/*'.
13476
13477 * verify.c (verify_jvm_instructions): Remove unused variable
f6bbde28 13478 `self_type'.
152f94fc 13479
62c9aa5f 134801999-03-27 Per Bothner <bothner@cygnus.com>
f1b0c0d8
PB
13481
13482 * parse.y (complete_loop_body): Rename to finish_loop_body.
e64c46ce 13483 (complete_labeled_statement): Rename to finish_labeled_statement.
f1b0c0d8
PB
13484 (complete_for_loop): Rename to finish_for_loop.
13485 (complete_method_declaration): Rename to finish_method_declaration.
13486
13487 * java-tree.h (continue_identifier_node): New global node.
13488 * decl.c: Define and initialize continue_identifier_node.
13489 * parse.y (generate_labeled_block): Remove - no longer needed.
13490 (build_loop_body): Use continue_identifier_node for continue block.
13491 (finish_labeled_statement): Also do pop_labeled_block actions.
13492 (java_complete_lhs): POP_LOOP even if error.
13493 (build_labeled_block): Special handling for continue_identifier_node.
13494 (patch_loop_statement): Re-organize.
13495 (patch_bc_statement): Re-write.
13496
62c9aa5f 134971999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
f099f336
APB
13498
13499 * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
e64c46ce 13500 using a WFL compound value.
f099f336
APB
13501 * parse.y (xref.h): Include.
13502 (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
e64c46ce 13503 WFL compound value.
f099f336 13504 (register_fields): Set WFL compound value to lineno if doing
e64c46ce 13505 xrefs.
f099f336 13506 (java_complete_expand_method): Call expand_xref if flag_emit_xref
e64c46ce 13507 is set.
f099f336
APB
13508 * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
13509 * xref.h (expand_xref): Prototype renamed from xref_generate.
13510
62c9aa5f 135111999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
f099f336
APB
13512
13513 * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
13514 (GET_CURRENT_BLOCK): New macro.
13515 * parse.y (current_static_block): New global variable.
13516 (method_body:): Define action.
13517 (complete_method_declaration): Set current_function_decl to NULL
e64c46ce 13518 when work on the current method is done.
f099f336
APB
13519 (declare_local_variables): Use GET_CURRENT_BLOCK.
13520 (java_method_add_stmt): Likewise.
13521 (java_complete_expand_method): Disable the use of `this' when
e64c46ce 13522 expanding <clinit>.
f099f336 13523 (enter_a_block): If no current method exist, use
e64c46ce 13524 current_static_block to link static initializer blocks.
f099f336 13525 (exit_block): Rewritten to use current_static_block when no current
e64c46ce 13526 method decl exists.
f099f336
APB
13527 (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
13528 (patch_return): Forbid the use of `return' in static initializers.
13529 (patch_throw_statement): Fixed indentation. Issue specific error
e64c46ce
AJ
13530 for uncaught thrown checked exception in static initializer
13531 blocks. Removed FIXME.
f099f336 13532
08dc830e
ZW
135331999-03-25 Zack Weinberg <zack@rabi.columbia.edu>
13534
13535 * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
13536 Link gcj from gcc.o.
13537
62c9aa5f 135381999-03-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
de0b553f
APB
13539
13540 * parse.y (find_applicable_accessible_methods_list): When dealing
e64c46ce
AJ
13541 with interface: ensure that a given interface or java.lang.Object
13542 are searched only once.
de0b553f 13543
62c9aa5f 135441999-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9ee9b555
KG
13545
13546 * gjavah.c (print_c_decl): Remove unused argument `flags'.
13547
13548 * jcf-dump.c (print_access_flags): Add braces around if-else.
13549
13550 * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
13551 COMBINE_INPUTS.
13552
13553 * lex.c (build_wfl_node): Add static prototype.
13554
13555 * lex.h (build_wfl_node): Remove static prototype.
13556
13557 * parse.y: Include lex.c early enough to declare everything needed.
13558 Ensure calls to `build_wfl_node' pass the proper arguments.
13559 (create_class): Remove unused variable `super_decl'.
13560 (get_printable_method_name): Initialize variable `name'.
f6bbde28 13561
62c9aa5f 135621999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
8af456c8
APB
13563
13564 * Changelog: Fixed 1999-03-22 typos.
13565 * lang.c (lang_decode_option): Fixed typo in error string in the
e64c46ce 13566 XARG section.
8af456c8 13567
235acd35
APB
135681999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
13569
8af456c8 13570 * Makefile.in (JAVA_OBJS): Added entry xref.o.
235acd35
APB
13571 (xref.o): New rule.
13572 * java-tree.h (flag_emit_xref): Declared extern.
8af456c8 13573 * lang.c (xref.h): Included.
235acd35
APB
13574 (flag_emit_xref): New global variable.
13575 (lang_decode_option): Added support for -fxref.
13576 * xref.c: Created.
13577 * xref.h: Likewise.
13578
e541d2b1
MH
135791999-03-21 Manfred Hollstein <manfred@s-direktnet.de>
13580
13581 * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
13582 linked with.
13583
62c9aa5f 135841999-03-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4bcde32e
KG
13585
13586 * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
13587 $(srcdir)/../system.h and $(JAVA_TREE_H).
13588 (jcf-io.o): Depend on $(JAVA_TREE_H).
13589 (mangle.o): Likewise.
13590
13591 * check-init.c (check_cond_init): Add static prototype.
13592
13593 * class.c (build_java_method_type, hashUtf8String,
13594 make_field_value, get_dispatch_vector, get_dispatch_table,
13595 append_gpp_mangled_type, mangle_static_field): Likewise.
13596 (strLengthUtf8): Hide unused definition.
13597 (hashUtf8String): Const-ify.
13598 (make_field_value): Un-ANSI-fy.
13599
13600 * constants.c: Move inclusion of jcf.h above java-tree.h.
13601 (set_constant_entry, find_class_or_string_constant,
13602 find_name_and_type_constant, get_tag_node,
13603 build_constant_data_ref): Add static prototype.
13604
13605 * decl.c (push_jvm_slot, builtin_function,
13606 lookup_name_current_level): Likewise.
13607 (builtin_function): Const-ify.
13608
13609 * except.c (expand_start_java_handler, expand_end_java_handler):
13610 Add static prototype.
13611
13612 * expr.c (flush_quick_stack, push_value, pop_value,
13613 java_stack_swap, java_stack_dup, build_java_athrow,
13614 build_java_jsr, build_java_ret, expand_java_multianewarray,
13615 expand_java_arraystore, expand_java_arrayload,
13616 expand_java_array_length, build_java_monitor, expand_java_pushc,
13617 expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
13618 expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
13619 expand_compare, expand_test, expand_cond, expand_java_goto,
13620 expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
13621 expand_java_field_op, java_push_constant_from_pool): Likewise.
13622
13623 (decode_newarray_type, expand_iinc): Un-ANSI-fy.
13624 (build_java_arraynull_check): Mark parameters `node' and `type'
13625 with ATTRIBUTE_UNUSED.
13626 (note_label): Likewise for parameter `current_pc'.
13627 (expand_java_call, expand_java_ret): Hide unused definition.
13628
13629 * java-tree.h (make_class, build_constants_constructor,
13630 java_set_exception_lang_code, pop_labeled_block, emit_handlers,
13631 init_outgoing_cpool, register_class, emit_register_classes,
13632 java_layout_seen_class_methods): Prototype.
13633 (unicode_mangling_length): Const-ify.
13634 (append_gpp_mangled_name, append_gpp_mangled_classtype,
13635 emit_unicode_mangled_name, format_int, format_uint,
13636 jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
13637 jcf_print_utf8_replace, open_class): Prototype.
13638
13639 * jcf-dump.c: Include "config.h", not <config.h>. Don't include
13640 <stdio.h>. Include tree.h/java-tree.h.
13641 (utf8_equal_string usage, process_class): Add static prototype.
13642 (open_class): Don't prototype this here.
13643 (utf8_equal_string): Match arguments to format specifiers.
13644 (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
13645 TABLE_SWITCH, disassemble_method): Likewise.
13646
13647 * jcf-io.c: Include tree.h/java-tree.h.
13648 (open_class, find_classfile, jcf_print_utf8,
13649 jcf_print_utf8_replace): Const-ify.
13650
13651 * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
13652 parse_class_file): Add static prototype.
13653 (find_in_current_zip): Match definition to existing static
13654 prototype.
f6bbde28 13655
4bcde32e
KG
13656 * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
13657 (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
13658 finish_jcf_block, define_jcf_label, get_jcf_label_here,
13659 put_linenumber, localvar_alloc, localvar_free, get_access_flags,
13660 write_chunks, adjust_typed_op, generate_bytecode_conditional,
13661 generate_bytecode_return, perform_relocations, init_jcf_state,
13662 init_jcf_method, release_jcf_state, generate_classfile):
e64c46ce 13663 Add static prototype.
4bcde32e
KG
13664 (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
13665 (make_class_file_name): Const-ify.
13666
13667 * jcf.h (find_classfile): Const-ify.
13668
13669 * jv-scan.c (reset_report): Remove prototype.
13670
13671 * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
13672 (error): Rewrite to allow varargs.
13673
13674 * lang.c (lang_f_options): Const-ify.
13675
13676 * lex.c (java_parse_escape_sequence): Add static prototype.
e64c46ce
AJ
13677 (java_allocate_new_line): Match definition to existing static
13678 prototype.
f6bbde28 13679
4bcde32e
KG
13680 * mangle.c Include tree.h/java-tree.h.
13681 (unicode_mangling_length, emit_unicode_mangled_name,
13682 append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
13683
13684 * parse.h (jdep_code): Remove trailing comma in enumeration.
13685 (java_get_line_col): Move prototype outside of !JC1_LITE test.
13686 (reset_report): Add prototype.
13687
13688 * verify.c (push_pending_label, merge_types): Add static
13689 prototypes.
13690
13691 * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
f6bbde28 13692
1982388a
APB
136931999-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13694
13695 * parse.y (find_applicable_accessible_methods_list): Extend the
13696 search to superinterfaces when relevant.
13697 (search_applicable_methods_list): New function.
13698
136991999-03-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
13700
13701 * class.c (unmangle_classname): Implemented stricter testing
13702 before setting the QUALIFIED_P flag on an identifier.
13703
62c9aa5f 137041999-03-16 Per Bothner <bothner@cygnus.com>
8fe57f78
PB
13705
13706 * parse.y (java_complete_lhs): Call force_evaluation_order
13707 after patch_newarray.
13708 (patch_binop): Don't call fold if there are side effects.
13709
642f15d1
APB
137101999-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
13711
13712 * parse.y (java_stabilize_reference): Use save_expr instead of
13713 building a SAVE_EXPR node.
13714 (java_complete_lhs): Patch the resulting string of the `+='
13715 operator (if necessary) and complete the RHS after having built
13716 the cast.
13717
62c9aa5f 137181999-03-15 Per Bothner <bothner@cygnus.com>
c52016e4
PB
13719
13720 * class.c (make_class): Don't set CLASS_P here (because
13721 this function is also called by build_java_array_type).
13722 (push_class): Set CLASS_P here instead.
13723 * parse.h (TYPE_CLASS_P): Check for TYPE_ARRAY_P is redundant.
13724
13725 * jcf-dump.c (print_access_flags): Take extra parameter to indicate
13726 context. If the context is class, perfer "super" over "synchronized".
13727 * jcf-write.c (generate_classfile): Don't add ACC_SUPER if interface.
13728
13729 * parse.y (create_class): Don't call parser_check_super here;
13730 it is not robust. Always wait until later.
13731
13732 * parse.y (method_header): For interfaces, set ACC_ABSTRACT (to
13733 match what JDK 1.2 does), but don't set ACC_PUBLIC.
13734
62c9aa5f 137351999-03-13 Per Bothner <bothner@cygnus.com>
b911df12
PB
13736
13737 * lex.c (java_read_char): UNGET invalid non-initial utf8 character.
13738 * lex.h (UNGETC): Change misleading macro.
13739
2aa11e97
APB
137401999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
13741
13742 * parse.y (java_stabilize_reference): Return NODE when patching a
13743 COMPOUND_EXPR.
13744 (java_complete_lhs): Put parenthesis around truth values.
13745
137461999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
13747
13748 * class.c (layout_class_method): Don't make rtl for interface
13749 methods.
13750 * parse.h (GET_TYPE_NAME): New macro.
13751 * parse.y (if_then_statement:): Fixed indentation.
13752 (if_then_else_statement:): Likewise.
13753 (for_statement:): Fixed spacing.
13754 (try_statement:): Fixed indentation.
13755 (create_interface): Don't force interfaces to be abstract.
13756 (method_header): Abstract methods are OK in interfaces.
13757 (declare_local_variables): Fixed typo in comment.
13758 (java_complete_expand_method): Fixed indentation.
13759 (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
13760 non accessible fields.
13761 (java_stabilize_reference): New function.
13762 (java_complete_lhs): Fixed indentation. Use
67264b4f 13763 java_stabilize_reference in compound assignment. Insert the
2aa11e97
APB
13764 cast. If not processing `+' fix string constants before processing
13765 binop.
13766
62c9aa5f 137671999-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7e21fe59
KG
13768
13769 * constants.c (find_class_or_string_constant): Cast variable `j'
e64c46ce 13770 to a `jword' when comparing against one.
7e21fe59
KG
13771
13772 * expr.c (java_lang_expand_expr): Remove unused variables
13773 `has_finally_p' and `op0'.
13774
13775 * gjavah.c (print_field_info): Cast a value to jint when comparing
13776 against one. Likewise for a jlong.
13777 (add_namelet): Likewise cast a `sizeof' to an int when comparing
13778 against a signed quantity.
f6bbde28 13779
7e21fe59
KG
13780 * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
13781 (print_signature): Don't needlessly dereference variable `str'
13782
13783 * jcf-reader.c (get_attribute): Mark variables `max_stack' and
13784 `max_locals' with ATTRIBUTE_UNUSED.
13785 (jcf_parse_class): Likewise for variable `index'.
13786
13787 * parse.h (reverse_jdep_list): Remove static prototype.
13788
13789 * parse.y (build_jump_to_finally): Remove prototype and definition.
13790 (reverse_jdep_list): Add static prototype.
13791
13792 * typeck.c (convert_ieee_real_to_integer): Remove unused variables
13793 `assignment' and `expr_decl'.
13794
13795 * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
13796
ecef190c
AH
137971999-03-12 Andrew Haley <aph@cygnus.com>
13798
13799 * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
f6bbde28 13800 we'll need a directory separator and a null character.
ecef190c 13801
62c9aa5f 138021999-03-10 Per Bothner <bothner@cygnus.com>
2aee04d2
PB
13803
13804 * jcf-write.c (generate_bytecode_insns): Handle __builtin_fmod, for %.
13805
2aa11e97 13806 Tue Mar 9 11:52:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
f6bbde28 13807
e64c46ce
AJ
13808 * parse.y (method_header): Don't set ACC_ABSTRACT flags on
13809 interfaces.
f6bbde28 13810
62c9aa5f 138111999-03-05 Per Bothner <bothner@cygnus.com>
30ca27b4
PB
13812
13813 * lex.c (java_parse_end_comment): Take extra parameter (next char).
13814
13815 * class.c (build_utf8_ref): Fix possible name class/ambiguity.
13816
13817 * class.c (layout_class_method): A static method in a base class
13818 is never overridden, so treat it like it doesn't exist.
13819 However, do complain about private non-static method overriding
13820 public static method.
13821
13822 * parse.y: Don't set unused INITIALIZED_P flag.
13823 * java-tree.h (INITIALIZED_P): Removed no-longer needed flag.
13824
13825 * parse.y (find_expr_with_wfl): Optimize tail-calls.
13826 (build_array_from_name): Re-order &index[string] to &string[index].
13827
2aa11e97 13828 * parse.y (java_complete_lhs): Don't call patch_assignment if rhs is
30ca27b4
PB
13829 error_mark (it might catch more errors, but it is more likely to lose).
13830
62c9aa5f 138311999-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8e1f2d4c
KG
13832
13833 * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
13834 (parse-scan.o): Depend on toplev.h.
13835
13836 * class.c (make_method_value): Add prototype. Make it static.
e64c46ce 13837 Remove unused second argument, caller changed.
8e1f2d4c
KG
13838
13839 * expr.c (java_lang_expand_expr): Remove unused variable
13840 `return_label'.
13841
13842 * java-tree.h: Don't prototype find_in_current_zip.
13843 Add prototypes for verify_constant_pool, start_java_method,
13844 end_java_method, give_name_to_locals, expand_byte_code,
13845 open_in_zip, set_constant_value, find_constant1, find_constant2,
13846 find_utf8_constant, find_string_constant, find_class_constant,
13847 find_fieldref_index, find_methodref_index, write_constant_pool,
13848 count_constant_pool_bytes and encode_newarray_type.
13849
13850 * jcf-dump.c: Remove unused variable `LONG_temp'.
13851
13852 * jcf-parse.c: Include parse.h.
13853 (jcf_parse_source): Remove unused parameter, all callers changed.
13854 (jcf_figure_file_type): Add static prototype.
13855 (find_in_current_zip): Likewise. Also remove unused parameter,
13856 all callers changed.
13857 (read_class): Initialize variable `saved_pos'.
f6bbde28 13858
8e1f2d4c
KG
13859 * jcf-reader.c (jcf_parse_preamble): Mark variables
13860 `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
13861
13862 * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
13863 (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
13864 (java_parse_doc_section): Initialize variable `seen_star'.
13865 (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
13866 (java_lex_error): Mark parameters `msg' and `forward' with
13867 ATTRIBUTE_UNUSED.
13868 (java_get_line_col): Mark parameters `filename' and `line' with
13869 ATTRIBUTE_UNUSED.
13870
13871 * parse-scan.y: Include toplev.h.
13872 (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
13873
13874 * parse.h: use `struct JCF', not plain `JCF'.
13875 (java_parser_context_save_global, java_expand_classes
13876 java_parser_context_restore_global, java_parse): Add prototypes.
13877
13878 * typeck.c (convert_ieee_real_to_integer): Remove unused variable
13879 `node'.
13880
62c9aa5f 138811999-02-24 Per Bothner <bothner@deneb.cygnus.com>
afe81dd6
PB
13882
13883 * check-init.c (check_init): COPYN takes word count, not bit count.
13884
62c9aa5f 138851999-02-26 Per Bothner <bothner@cygnus.com>
2d9e5c79
PB
13886
13887 * typeck.c (convert_ieee_real_to_integer): Use save_expr instead of
13888 explicit build_decl. (Avoids crash in reload when optimizing.)
13889
62c9aa5f 138901999-02-25 Per Bothner <bothner@cygnus.com>
2d9e5c79
PB
13891
13892 * decl.c (complete_start_java_method): Handle synchronized method
13893 even when compiling from bytecode.
13894
f3d50f42
TT
138951999-02-26 Tom Tromey <tromey@cygnus.com>
13896
686fb236
TT
13897 * gjavah.c (add_class_decl): Only generate `#include' if outer
13898 class is not the name of the class we are processing. Correctly
13899 append `.h' in #include.
13900 (process_file): Clean up newlines around generated `#include's.
13901 (decode_signature_piece): Correctly handle inner classes.
13902 (struct include): New structure.
13903 (all_includes): New global.
13904 (print_include): New function.
13905 (add_class_decl): Use it.
13906 (process_file): Likewise.
13907 (add_class_decl): Generate include for java-array.h if array
13908 seen.
13909 (process_file): Don't generate java-array.h include.
13910
f3d50f42
TT
13911 * gjavah.c (add_namelet): Check for standard package names here.
13912 (add_class_decl): Don't check for standard package names here.
13913
345137c7
TT
139141999-02-25 Tom Tromey <tromey@cygnus.com>
13915
13916 * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
13917 When reading a zip file, only use strncmp if both strings are
13918 bigger than the buffer length. Initialize `k' when looping
13919 through zip file.
13920
bdb59aec
TT
139211999-02-24 Tom Tromey <tromey@cygnus.com>
13922
13923 * gjavah.c (struct namelet): New structure.
13924 (add_namelet): New function.
13925 (print_namelet): New function.
13926 (print_class_decls): Use add_namelet and print_namelet to generate
13927 namespaces and not classes.
13928 (method_printed): New global.
13929 (HANDLE_END_METHOD): Examine method_printed.
13930 (print_method_info): Set method_printed when required. Print
13931 error if function to be ignored is marked virtual. Handle $finit$
13932 method.
13933 (METHOD_IS_FINAL): New macro.
13934 (print_field_info): Use it.
13935 (HANDLE_METHOD): Clear method_printed.
13936 (method_pass): New global.
13937 (HANDLE_END_FIELD): Call add_class_decl on the first pass.
13938 (process_file): Do two passes over both fields and methods.
13939 (HANDLE_METHOD): Examine method_pass.
13940 (root): New global.
13941 (add_class_decl): New function.
13942 (print_class_decls): Don't scan over entire constant pool.
13943
4e2e5821
TT
139441999-02-23 Tom Tromey <tromey@cygnus.com>
13945
13946 * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
13947 disable linking in that case.
13948
a3299934
TT
139491999-02-20 Tom Tromey <tromey@cygnus.com>
13950
13951 * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
13952 not 0x1f.
13953
62c9aa5f 139541999-02-21 Per Bothner <bothner@cygnus.com>
edd643a9 13955
92ada242
PB
13956 * decl.c (build_result_decl), java-tree.h: New method.
13957 (complete_start_java_method): Handle synchronized methods.
13958 Don't build DECL_RESULT here. (Ordering dependency problem.)
13959 (start_java_method): Call build_result_decl here instead ...
13960 * parse.y (java_complete_expand_method): ... and here.
13961 (expand_start_java_method): Don't call complete_start_java_method here.
13962 (java_complete_expand_method): Call it here instead.
13963 * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Moved to ..
13964 * java-tree.h: ... here.
13965
13966 * expr.c (force_evaluation_order): Fix typo, don't handle ARRAY_REF.
13967 * parse.y (java_complete_lhs): Don't call force_evaluation_order
13968 for ARRAY_REF - it doesn't work when array bounds are checked.
13969 (patch_array_ref): Handle it here instead.
13970
edd643a9
PB
13971 * jcf-write.c (generate_classfile): Emit "Exceptions" attribute.
13972
62c9aa5f 139731999-02-19 Per Bothner <bothner@cygnus.com>
419ff8e1
PB
13974
13975 Force left-to-right evaluation of binary operations etc.
13976 * expr.c (force_evaluation_order), java-tree.h: New function.
13977 * parse.y (java_complete_lhs): Pass binary operations, procedure
13978 calls, and ARRAY_REFs to force_evaluation_order.
13979 (various): Set TREE_SIDE_EFFECTS more carefully.
13980
13981 Tolerate random (non-UTF8) encoding in comments without complaining.
13982 * lex.c (java_read_char): Return 0xFFFE if bad UTF8 encoding.
13983 (java_is_eol): Handle '\r' followed by '\n' instead of vice versa.
13984
13985 * parse.y (resolve_qualified_expression_name): Handle error_mark.
13986 (java_complete_node case EXPR_WITH_FILE_LOCATION): Likewise.
13987
13988 * parse.y (java_complete_lhs): Ignore an empty statement in a
13989 COMPOUND_EXPR. Don't complain about empty statement after return.
f6bbde28 13990
62c9aa5f 139911999-02-19 Per Bothner <bothner@cygnus.com>
04ed7a0c
PB
13992
13993 * parse.y (obtain_incomplete_type): Don't wrap unknown types
13994 in TREE_LIST - just chain the POINTER_TYPEs together.
13995 (resolve_class): If type already resolved, return decl.
13996 After resolving, update TREE_TYPE(class_type), and name (if array).
f6bbde28 13997 * parse.h (do_resolve_class), parse.y: Make non-static.
04ed7a0c
PB
13998 * class.c (maybe_layout_super_class): Take this_class argument.
13999 Do do_resolve_class if necessary.
14000 (layout_class, layout_class_methods): Adjust calls appropriately.
14001 * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
14002 JDEP_RESOLVED_P): Redefined for new TREE_LIST-less convention.
14003 * typeck.c (build_java_array_type): Don't call layout_class.
14004
62c9aa5f 140051999-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
fad22e3b
APB
14006
14007 * parse.y (check_pkg_class_access): Allow private class access
e64c46ce 14008 within the same package.
fad22e3b
APB
14009 (strip_out_static_field_access_decl): New function.
14010 (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
e64c46ce 14011 operator argument before testing its nature.
fad22e3b 14012
62c9aa5f 140131999-02-03 Per Bothner <bothner@cygnus.com>
ececaeae
PB
14014
14015 * java-tree.def (FINALLY_EXPR): Removed. (Now uses TRY_FINALLY_EXPR.)
14016 (TRY_EXPR): Simplify - it no longer has a finally clause.
14017 * check-init.c (check_init): Handle TRY_FINALLY_EXPR.
14018 Simpler handling of TRY_EXPR, which no longer has a finally clause.
14019 * expr.c (java_lang_expand_expr): Likewise.
14020 * java-tree.h (CATCH_EXPR_GET_EXPR): Removed - no longer needed.
14021 * parse.h (java_get_catch_block), parse.y: Removed - no longer needed.
14022 * parse.y (java_complete_lhs): Add support for TRY_FIANLLY_EXPR.
14023 (build_try_statement): Remove finally parameter and handling.
14024 (build_try_finally_statement): New function.
14025 (patch_try_statement): No longer need to support finally clause.
14026 (try_statement): Update grammar action rules.
14027 * jcf-write.c (generate_bytecode_insns): Handle TRY_FINALLY_EXPR.
14028 Simpler handling of TRY_EXPR, which no longer has a finally clause.
14029
43c5ec70
AH
140301998-11-26 Andrew Haley <aph@viagra.cygnus.co.uk>
14031
14032 * jcf-parse.c (get_constant): Add braces around computation of 'd'
14033 when REAL_ARITHMETIC is not defined. [Oct 26 fix got overwritten -PB]
14034
7e57923c
AH
140351999-02-17 Andrew Haley <aph@cygnus.com>
14036
14037 * class.c (build_utf8_ref): Back out broken patch which was
f6bbde28 14038 intended to to output signatures using '.' as a separator.
7e57923c 14039
f6bbde28
ZW
14040 * class.c (make_class_data): Output signatures using '.' as a
14041 separator, rather than '/'.
14042 (mangled_classname): Likewise.
14043 (make_field_value): Likewise.
14044 (make_method_value): Likewise.
14045 * constants.c (alloc_class_constant): Likewise.
14046 * expr.c (build_invokeinterface): Likewise.
7e57923c 14047
62c9aa5f 140481999-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
f6bbde28 14049
e64c46ce
AJ
14050 * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
14051 of an ancient workaround.
e3884b71 14052
62c9aa5f 140531999-02-10 Jeffrey A Law (law@cygnus.com)
e860aea3
JL
14054
14055 * jvspec.c (xmalloc): Kill the prototype. It does not belong
14056 here anymore.
14057
fa2bb9fd 140581999-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
f6bbde28 14059
fa2bb9fd
APB
14060 * lex.c (yylex): Encode \0 as UTF8.
14061
0ffe9eea
TT
140621999-02-10 Tom Tromey <tromey@cygnus.com>
14063
00368bdd
TT
14064 * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
14065 * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
14066 (libgcj_zip): Renamed.
14067 * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
14068 LIBJAVA_ZIP_FILE.
14069 (jcf_path_init): Use LIBGCJ_ZIP_FILE.
14070
0ffe9eea
TT
14071 * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
14072 (GC_NAME): Renamed -lgc to -lgcjgc.
14073
62c9aa5f 140741999-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
09ed0f70
APB
14075
14076 * lex.c (java_lang_cloneable): Initialize.
14077 * parse.y (java_lang_cloneable): New static variable.
14078 (qualify_ambiguous_name): Take CONVERT_EXPR into account when
e64c46ce 14079 doing one more qualification round.
09ed0f70 14080 (valid_ref_assignconv_cast_p): Reject null source or
e64c46ce 14081 destination. Allow an array to be cast into java.lang.Cloneable.
09ed0f70 14082 (patch_cast): Swapped two first arguments to first call to
e64c46ce 14083 valid_ref_assignconv_cast_p.
09ed0f70 14084
62c9aa5f 140851999-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
34f4db93
APB
14086
14087 * parse.h: DECL_P renamed JDECL_P.
f6bbde28
ZW
14088 * parse.y: DECL_P replaced by JDECL_P.
14089 (build_array_from_name): Always use pointer's type.
14090 (patch_bc_statement): Extra code to search continue target in a
14091 for loop. Fixed comments. Continue target is current loop when
14092 unlabeled.
34f4db93 14093
93089423
AH
140941999-02-05 Andrew Haley <aph@cygnus.com>
14095
14096 * class.c (make_class_data): The superclass of an interface should
14097 be null, not class Object.
14098
14099 * lex.c (java_lex): Sign extend hex literals.
14100
954d8a5d
AH
141011999-02-04 Andrew Haley <aph@cygnus.com>
14102
14103 * class.c (build_utf8_ref): Output signatures using '.' as a
14104 separator, rather than '/'.
14105 (make_class_data): Likewise.
14106
62c9aa5f 141071999-02-03 Marc Espie <Marc.Espie@liafa.jussieu.fr>
3204fae4 14108
f6bbde28
ZW
14109 * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
14110 mkstemp.o. Get them from libiberty now.
3204fae4 14111
62c9aa5f 141121999-02-02 Jeffrey A Law (law@cygnus.com)
6d6dbe51
JL
14113
14114 * jcf-io.c: Do not include sys/stat.h or sys/wait.h
14115
62c9aa5f 141161999-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
b0f780c3
KG
14117
14118 * jvspec.c (xmalloc): Fix the prototype to match the one obtained
e64c46ce 14119 from libiberty.h
b0f780c3 14120
62c9aa5f 141211999-02-02 Per Bothner <bothner@cygnus.com>
bb31662f
PB
14122
14123 Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
14124 * jcf-write.c (generate_bytecode_return): New function.
14125 (generate_bytecode_insns): Use it, for RETURN_EXPR.
14126
14127 * jcf-write.c (generate_bytecode_insns): For REAL_CST that is 0 or 1,
14128 generate special [fd]const_[01] instructions.
f6bbde28 14129
bb31662f
PB
14130 * jcf-parse.c (yyparse): Don't emit_register_classes if -fsyntax-only.
14131
14132 * verify.c (verify_jvm_instructions): Do INVALIDATE_PC after
14133 handling OPCODE_lookupswitch or OPCODE_tableswitch.
14134
62c9aa5f 141351999-02-01 Per Bothner <bothner@cygnus.com>
f044fba9
PB
14136
14137 * parse.y (patch_method_invocation): Handle calling static methods,
14138 even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
14139
14140 * parse.y (java_complete_lhs): Don't complain about unreachable
14141 exit condition in a do-while statement.
f6bbde28 14142
62c9aa5f 141431999-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
acd663ee
APB
14144
14145 * lex.c (java_read_char): Fixed utf8 decoding.
14146 (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
e64c46ce 14147 range.
acd663ee 14148 * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
e64c46ce
AJ
14149 comments. Local variable `all_primitive' is gone. Broadened
14150 acceptance of `0' to floating point targets. `long' can now be
14151 widened to `double' or `float'.
acd663ee 14152 (valid_method_invocation_conversion_p): Added leading
e64c46ce 14153 comment. Fixed tabulation.
acd663ee 14154 (build_string_concatenation): Optimize out left or right empty
e64c46ce 14155 string constants.
f044fba9 14156
62c9aa5f 141571999-01-28 Per Bothner <bothner@cygnus.com>
36be4b99
PB
14158
14159 * jcf-write.c (localvar_alloc): Only emit entry for
14160 LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
14161 (generate_bytecode_insns): Only call put_linenumber if
14162 debug_info_level > DINFO_LEVEL_NONE.
14163 * jvspec.c (lang_specific_driver): If no -O* or -g* option
14164 is specified, add -g1 (for compatibility wih javac).
14165
62c9aa5f 141661999-01-28 Hans-Peter Nilsson <hp@axis.se>
9594b1b2
HPN
14167
14168 * java/Makefile.in: Add missing dependencies for jcf-dump.o,
14169 gjavah.o, check-init.o, jv-scan.o
14170
62c9aa5f 141711999-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9caaf519
KG
14172
14173 * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
14174
14175 * gjavah.c: Include config.h and system.h.
14176
14177 * javaop.h (inline): Don't define, its handled by system.h.
14178 (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
14179 from `inline' to `static inline'.
14180
14181 * jcf.h (inline): Don't define, its handled by system.h.
14182
14183 * lex.c (inline): Likewise.
14184
62c9aa5f 141851999-01-31 Zack Weinberg <zack@rabi.columbia.edu>
ba140e41
ZW
14186
14187 * lang-specs.h: Map -Qn to -fno-ident.
14188
62c9aa5f 141891999-01-29 Richard Henderson <rth@cygnus.com>
4c7f1c63
RH
14190
14191 * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
14192
061ac426
TT
141931999-01-29 Tom Tromey <tromey@cygnus.com>
14194
14195 * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
14196 then cast it to Object before calling `append' method.
14197
62c9aa5f 141981999-01-28 Per Bothner <bothner@cygnus.com>
f2693f2f
PB
14199
14200 * check-init.c (check_bool2_init, check_bool_init, check_init):
14201 Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
14202 * jcf-write.c (generate_bytecode_insns): Likewise.
14203
62c9aa5f 142041999-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
0b4d333e
APB
14205
14206 * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
14207 * parse.y (patch_cast): Allow a boolean to be cast into a
e64c46ce 14208 boolean.
0b4d333e 14209
62c9aa5f 142101999-01-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
0b4d333e
APB
14211
14212 * parse.y: (class_declaration:): Fixed indentation.
14213 (class_member_declaration:): Extra `;' after field declaration now
e64c46ce 14214 accepted.
0b4d333e
APB
14215 (interface_declaration:): Removed debug messages in error reports.
14216 (patch_binop): Nodes created and returned inherit the orignal
e64c46ce 14217 node's COMPOUND_ASSIGN_P flag value.
0b4d333e
APB
14218 (patch_cast): Fix cast from char to floating point.
14219
62c9aa5f 142201999-01-25 Andrew Haley <aph@cygnus.com>
1b18747f 14221
f6bbde28
ZW
14222 * except.c, java-except.h (expand_resume_after_catch): new
14223 function.
14224 * expr.c (java_lang_expand_expr): call expand_resume_after_catch
14225 to branch back to main flow of control after a catch block.
1b18747f 14226
62c9aa5f 142271999-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
d4476be2
KG
14228
14229 * Makefile.in (parse.o): Depend on $(CONFIG_H) and
14230 $(srcdir)/../system.h.
14231 (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
14232 (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
14233 (jcf-write.o): Likewise.
14234 (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
14235 (mangle.o): Depend on $(srcdir)/../toplev.h.
14236 (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
14237 (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
14238
14239 * class.c: Include output.h and parse.h.
14240 (mangled_classname): Add the `const' keyword to a char*.
14241 (find_named_method): Hide unused function definition.
14242 (build_utf8_ref): Change type of variable `c' to unsigned char.
14243 Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
14244 (build_class_ref): Add the `const' keyword to a char*.
14245 (layout_class_method): Remove unused variable `buf'.
14246
14247 * decl.c (find_local_variable): Remove unused variable `rtl'.
14248 (pushdecl): Likewise for variables `different_binding_level' and
14249 `oldglobal'.
14250 (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
14251 (maybe_build_cleanup): Likewise for parameter `decl'.
14252
14253 * except.c (expand_start_java_handler): Mark parameter `range'
14254 with ATTRIBUTE_UNUSED.
14255
14256 * expr.c: Include except.h.
14257 (pop_type): Remove unused variable `i'.
14258 (pop_value): Likewise for variables `n_words' and `i'.
14259 (expand_java_arrayload): Likewise for variable `convert'.
14260 (java_lang_expand_expr): Likewise for variables `op0', `type',
14261 `mode', `unsignedp', `node' and `elements'.
14262 (expand_byte_code): Likewise for variables `prev_eh_ranges' and
14263 `eh_ranges'.
14264 (process_jvm_instruction): Add a `const' qualifier to a char*.
14265
14266 * gjavah.c (output_directory): Add the `const' keyword to a char*.
14267 (temp_directory): Likewise.
14268 (print_c_decl): Likewise.
14269 (print_method_info): Likewise.
14270 (decode_signature_piece): Likewise.
14271 (print_mangled_classname): Likewise.
14272
14273 * java-except.h: Provide prototypes for maybe_start_try,
14274 maybe_end_try and add_handler.
14275
14276 * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
14277 (parse_error_context): Likewise. Also add ATTRIBUTE_PRINTF_2.
14278 (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
14279 init_expr_processing, push_super_field, init_class_processing,
14280 can_widen_reference_to, class_depth, verify_jvm_instructions,
14281 maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
14282 set_local_type, merge_type_state, push_type, load_type_state,
14283 add_interface, find_in_current_zip, append_gpp_mangled_classtype,
14284 emit_unicode_mangled_name): Add prototypes.
14285
14286 * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
14287 (print_signature_type): Use ISDIGIT, not isdigit.
14288 (print_signature): Remove unused variable `j'.
14289
14290 * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
14291 int when comparing against one.
14292
14293 * jcf-parse.c: Include toplev.h.
14294
14295 * jcf-write.c: Likewise. Don't include <string.h> or <sys/stat.h>.
14296 (localvar_free): Remove unused variable `i'.
14297 (generate_bytecode_conditional): Likewise for variable `kind'.
14298
14299 * jv-scan.c: Include config.h and system.h. Remove redundant
14300 OS header and gansidecl.h includes.
14301 (warning): Add the `const' keyword to a char*. Also add
14302 ATTRIBUTE_PRINTF_1 to the prototype. Check ANSI_PROTOTYPES, not
14303 __STDC__, when determining whether to use ANSI-isms.
14304 (fatal): Likewise. Also add ATTRIBUTE_UNUSED.
14305 (xmalloc): Don't redundantly prototype here.
14306 (main): Remove unused parameter `envp'. Also fix the arguments
14307 passed to function `fatal' to match the format specifier.
14308
14309 * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
14310
14311 * mangle.c: Include toplev.h.
14312 (emit_unicode_mangled_name): Declare parameter `len'.
14313
14314 * parse.y (parse_warning_context): Add the `const' keyword to a
14315 char*. Also add ATTRIBUTE_PRINTF_2 to the prototype. Check
14316 `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
14317 (issue_warning_error_from_context): Add the `const' keyword to
14318 a char*.
14319 (parse_error_context): Likewise. Also check `ANSI_PROTOTYPES'
14320 not `__STDC__' for whether to use ANSI-isms.
14321
14322 * typeck.c (incomplete_type_error): Mark parameters `value' and
14323 `type' with ATTRIBUTE_UNUSED.
14324 (parse_signature_type): Use ISDIGIT, not isdigit.
14325
14326 * verify.c (check_pending_block): Add the `const' keyword to a char*.
14327 (verify_jvm_instructions): Likewise. Remove unused variables
14328 `field_name' and `default_val'.
f6bbde28 14329
d4476be2
KG
14330 * zextract.c: Include config.h and system.h. Remove redundant
14331 OS header includes.
f6bbde28 14332
d4476be2
KG
14333 * zipfile.h: Prototype `read_zip_archive'.
14334
62c9aa5f 143351999-01-21 Andrew Haley <aph@cygnus.com>
fff02f07
AH
14336
14337 * typeck.c (convert): Allow conversions to void type: some
e64c46ce 14338 optimizations in gcc do this.
fff02f07 14339
62c9aa5f 143401999-01-21 Andrew Haley <aph@cygnus.com>
fff02f07
AH
14341
14342 * typeck.c (convert_ieee_real_to_integer): New function.
14343 (convert): When not using fast-math and using hardware fp, convert
e64c46ce 14344 an IEEE NaN to zero.
f6bbde28 14345
73333a87
AH
143461999-01-18 Andrew Haley <aph@cygnus.com>
14347
14348 * parse.y (patch_binop): Do a type conversion from signed to
14349 unsigned and then back to signed when a ">>>" is found.
14350
62c9aa5f 143511999-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
d8fccff5
APB
14352
14353 * java-tree.h: (check_for_initialization): Added prototype.
14354 * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
14355 * parse.y (do_resolve_class): Removed unused locals.
14356 (read_import_dir): Likewise.
14357 (resolve_qualified_expression_name): Array creation
e64c46ce 14358 expressions are valid primary expressions.
d8fccff5
APB
14359 (qualify_ambiguous_name): Likewise.
14360 (patch_synchronized_statement): Removed unused local.
14361
62c9aa5f 143621999-01-17 Jeffrey A Law (law@cygnus.com)
82770562 14363
ef2b940d
JL
14364 * Makefile.in (zextract.o): Add dependencies.
14365
f6bbde28 14366 * Makefile.in: Do not put ^Ls at the start of a line.
82770562 14367
62c9aa5f 143681999-01-15 Per Bothner <bothner@cygnus.com>
2a4dc31b
PB
14369
14370 * expr.c (process_jvm_instruction): Coerce to correct Throwable
14371 sub-type the result of the call that gets the exception value.
14372
14373 * parse.y (java_complete_expand_methods): If flags_syntax_only,
14374 don't call finish_class.
14375
14376 * parse.y (java_check_regular_methods): If METHOD_PRIVATE,
14377 clear found before continuing.
14378
14379 * verify.c (verify_jvm_instructions): On an array load, allow
14380 and handle top of stack to be TYPE_NULL.
14381
14382 * gjavah.c (generate_access): Translate Java package private or
14383 protected access to C++ public, but with a comment.
14384
96847892
AH
143851999-01-13 Andrew Haley <aph@cygnus.com>
14386
14387 * expr.c (generate_name): Name prefix changed to avoid clashes
14388 with assembler temp labels.
14389
14390 * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
67264b4f 14391 MODIFY_EXPR. Without this, code for the assignment may not be
96847892
AH
14392 generated at all and the synchronized statement will read an
14393 uninitialized variable.
f6bbde28 14394
62c9aa5f 143951999-01-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
ba179f9f
APB
14396
14397 * class.c (maybe_layout_super_class): Fixed returned value.
14398 * lex.c: Added 1999 to the copyright.
14399 (java_init_lex): Initialize java_lang_imported.
14400 * lex.h: Added 1999 to the copyright.
14401 * parse.h: Added 1999 to the copyright.
14402 (REGISTER_IMPORT): Fixed typo in trailing macro.
14403 (CURRENT_OSB): New macro.
14404 (struct parser_ctxt): New fields osb_depth, osb_limit.
14405 * parse.y (java_lang_id): New global variable.
14406 (type_import_on_demand_declaration): Don't import java.lang.* twice.
14407 (array_creation_expression:): Use CURRENT_OSB.
14408 (dims:): Uses a stack to keep track of array dimensions.
14409 (cast_expression:): Use CURRENT_OSB.
14410 (find_expr_with_wfl): Return NULL if node found doesn't meet the
e64c46ce 14411 conditions.
ba179f9f
APB
14412 (register_fields): Fixed typos in comment.
14413 (check_method_redefinition): Fixed comment indentation.
14414 (java_check_regular_methods): Set saved found wfl to NULL after
e64c46ce 14415 having reinstalled it in the previously found DECL_NAME.
ba179f9f 14416
62c9aa5f 144171999-01-10 Richard Henderson <rth@cygnus.com>
b6186fe6
RH
14418
14419 * gjavah.c (java_float_finite): Use a union to do type punning.
14420 (java_double_finite): Likewise.
14421
62c9aa5f 144221999-01-09 Per Bothner <bothner@cygnus.com>
fe053cfc
PB
14423
14424 * parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
14425 on CONSTRUCTOR (since that trashes TREE_CST_RTL).
14426 (patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
14427 (register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
14428 CONSTRUCTOR (which causes expand_expr to call output_constant_def).
14429 * expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
14430
62c9aa5f 144311999-01-08 Per Bothner <bothner@cygnus.com>
b82daa87
PB
14432
14433 * check-init.c (check_init): If compiling to native, we don't
14434 see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw).
14435
5c280133
TT
144361999-01-08 Tom Tromey <tromey@cygnus.com>
14437
14438 * parse-scan.y (variable_declarator_id): Set or increment
14439 bracket_count.
14440 (bracket_count): New global.
14441 (formal_parameter): Handle case where bracket pairs trail variable
14442 declarator id.
14443
5e1db167
AH
144441999-01-07 Andrew Haley <aph@viagra.cygnus.co.uk>
14445
14446 * jcf-parse.c (yyparse): variable len changed from a char to an
14447 int to prevent overflow.
14448
62c9aa5f 144491999-01-06 Per Bothner <bothner@cygnus.com>
db84cc46
PB
14450
14451 * java-tree.h: Declare read_class.
14452 * jcf-parse.c (read_class): New function.
14453 (load_class): Now just call read_class.
14454
14455 * java-tree.h (java_parse_abort_on_error): Only return if new errors.
14456 * jcf-parse.c (parse_source_file): Declare save_error_count,
14457 which is needed by java_parse_abort_on_error macro,
14458 * parse.y (java_layout_classes, java_expand_classes): Likewise.
14459
14460 * parse.y (register_fields): Set TREE_STATIC flag of NEW_ARRAY_INIT
14461 constructor, if initializing a static field.
14462 (patch_new_array_init): Set TREE_CONSTANT if it is.
14463 * expr.c (java_lang_expand_expr): For a static array constructor
14464 of primitive elements, allocate the array itself statically.
14465 Disabled until we can set the vtable field statically.
f6bbde28 14466
db84cc46
PB
14467 * check-init.c: New file. Checks for definite assignment.
14468 * Makefile.in (JAVA_OBJS): Add check-init.o.
14469 * parse.y (java_complete_expand_method): Call check_for_initialization.
14470 * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY): Moved to java-tree.h.
14471
62c9aa5f 144721999-01-06 Graham <grahams@rcp.co.uk>
8c4ea1fd
GS
14473
14474 * parse.y : include system.h instead of including
14475 standard headers directly with the exception of <dirent.h>.
14476
62c9aa5f 144771999-01-06 Per Bothner <bothner@cygnus.com>
0d34ccb7
PB
14478
14479 * lex.h: Moved static function declarations to lex.c,
14480 to shut up some -Wall warnings.
14481 * lex.c: Static function declarations moved here.
14482 * jcf-dump.c: Small fixes to shut up -Wall warnings.
14483
62c9aa5f 144841999-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5b5d821c 14485
f6bbde28 14486 * Make-lang.in ($(GCJ).o): Depend on prefix.h.
5b5d821c 14487
62c9aa5f 144881998-12-22 Per Bothner <bothner@cygnus.com>
e402ca98
PB
14489
14490 * expr.c (process_jvm_instruction): Do load_type_state after JSR.
14491 * verify.c (verify_jvm_instructions): Fix off-by-one error.
14492
14493 * jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
14494 (localvar_alloc): Change return type to void,
14495 (emit_unop): Remove unused variable size.
f6bbde28 14496
e402ca98
PB
14497 * jcf-write.c (struct jcf_block): Add new union.
14498 (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
14499 (call_cleanups): New functions.
14500 (struct jcf_partial): New fields num_finalizers and return_value_decl.
14501 (generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
14502 WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
14503 * lang.c (lang_init): Call using_eh_for_cleanups.
14504 * parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
14505 completing operands to patch_synchronized_statement.
14506 Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
14507 (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
f6bbde28 14508 WITH_CLEANUP_EXPR instead of TRY_EXPR.
e402ca98 14509
62c9aa5f 145101998-12-20 John F. Carr <jfc@mit.edu>
62481348
JC
14511
14512 * Make-lang.in: Comment out control-Ls; they upset some makes.
14513
847fe791
TT
145141998-12-18 Tom Tromey <tromey@cygnus.com>
14515
14516 * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
14517 consistently.
14518
d5ff227d
TT
145191998-12-17 Tom Tromey <tromey@cygnus.com>
14520
fa322ab5
TT
14521 * parse.y (DIR_SEPARATOR): New define.
14522 (check_class_interface_creation): Use it.
14523
d5ff227d
TT
14524 * parse-scan.y (report_main_declaration): Recognize
14525 `java.lang.String' in argument to main.
14526
62c9aa5f 145271998-12-16 Per Bothner <bothner@cygnus.com>
83a86272
PB
14528
14529 * parse.y (create_interface): Remove bogus test.
14530
62c9aa5f 145311998-12-16 Per Bothner <bothner@cygnus.com>
f868ca8f
PB
14532
14533 * jcf-parse.c (get_constant): Set TREE_TYPE for string constants.
14534 (HANDLE_CONSTANTVALUE): If flag_emit_class_files, call get_constant.
14535
0252081c
TT
145361998-12-16 Tom Tromey <tromey@cygnus.com>
14537
14538 * parse-scan.y (qualified_name): Use correct sprintf format.
14539
06d84d69
TT
145401998-12-15 Tom Tromey <tromey@cygnus.com>
14541
14542 * gjavah.c (print_field_info): Changed how most negative number is
14543 printed.
14544
62c9aa5f 145451998-12-14 Per Bothner <bothner@cygnus.com>
659ad450
PB
14546
14547 * parse.y (fold_constant_for_init): New function.
14548 (resolve_expression_name): Don't replace static final
e64c46ce 14549 constant-initialized fields by its value.
659ad450
PB
14550 (java_complete_lhs): New. Same as java_complete_tree, except does
14551 not replace static final constant-initialized fields by their values.
14552 (register_fields): If there is an initializer, set DECL_INITIAL and
14553 MODIFY_EXPR_FROM_INITIALIZATION_P.
14554 (java_complete_tree): For MODIFY_EXPR, use java_complete_lhs for lhs.
14555 Only call patch_initialized_static_field if
14556 MODIFY_EXPR_FROM_INITIALIZATION_P.
14557 (patch_initialized_static_field): If not valid constant, clear
14558 DECL_INITIAL.
14559
14560 * parse.y (lookup_field_wrapper): Fix thinko.
14561
14562 * parse.y (java_complete_tree): In EXPR_WITH_FILE_LOCATION,
14563 set and restore global lineno.
14564
11b89622
TT
145651998-12-14 Tom Tromey <tromey@cygnus.com>
14566
14567 * gjavah.c (print_field_info): If value to print is the smallest
14568 value of its size, then print as hex to avoid later warnings from
14569 C++ compiler.
14570
8c2dfb32
TT
145711998-12-14 Tom Tromey <tromey@cygnus.com>
14572
14573 * gjavah.c (decompile_method): Decompile `return null'.
14574 (process_file): Generate `#pragma interface'.
14575 (method_declared): New global.
14576 (print_method_info): Set it.
14577 (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
14578 (print_method_info): Handle abstract methods.
14579
62c9aa5f 145801998-12-13 Per Bothner <bothner@cygnus.com>
ba02c53a
PB
14581
14582 * parse.y (patch_method_invocation): If class_decl is null
14583 (e.g. an array type), use original type.
14584
14585 * parse.y (check_thrown_exceptions): Temporary hack to suppress
14586 errors about uncaught exception from clone (of array, specifically).
14587
cb975f38
TT
145881998-12-13 Tom Tromey <tromey@cygnus.com>
14589
14590 * gjavah.c (decompile_method): Handle all types of `return'
14591 opcode. Decompile `return this' and `return'.
14592 (method_access): New global.
14593 (print_method_info): Set it.
14594 (decompile_method): Don't decompile a synchronized method.
14595
92c068d1
TT
145961998-12-13 Tom Tromey <tromey@cygnus.com>
14597
14598 * jcf-reader.c (jcf_parse_one_method): Recognize
14599 HANDLE_END_METHOD.
14600 * gjavah.c (HANDLE_END_METHOD): New macro.
14601 (HANDLE_CODE_ATTRIBUTE): New macro.
14602 (decompile_method): New function.
14603 (print_method_info): Don't print `;\n' at end of function decl.
14604 Include java-opcodes.h.
14605 (decompiled): New global.
14606
62c9aa5f 146071998-12-12 Per Bothner <bothner@cygnus.com>
0b245181
PB
14608
14609 * class.c (build_class_ref): Handle PRIMTYPE.class if
14610 flag_emit_class_files.
14611 * expr.c (expand_java_field_op): Don't optimize java.lang.XXX.TYPE
14612 if flag_emit_class_files.
14613 * parse.y (java_complete_tree): Pre-liminary support for
14614 COMPONENT_REF - only to handle PRIMCLASS.TYPE.
14615
14616 * parse.y (patch_synchronized_statement): Don't call monitorexit
e64c46ce 14617 unless block CAN_COMPLETE_NORMALLY. Propagate that flag properly.
0b245181
PB
14618
14619 * java-tree.h (DECL_LOCAL_STATIC_VALUE): Removed - no longer used.
14620
14621 * zipfile.h (opendir_in_zip): New declaration.
14622 * jcf-io.c (saw_java_source): Moved to jcf-parse.c.
14623 (opendir_in_zip): New function, using code from open_in_zip.
14624 (open_in_zip): Call opendir_in_zip.
14625 (find_class): Remove no-longer-used do_class_file parameter,
14626 but add source_ok parameter. Change logic so if we find a .java file,
14627 we don't look for .class in later classpath emtries.
14628 * jcf-parse.c (load_class): Pass saw_java_source to find_class.
14629 (jcf_figure_file_type): Only call open_in_zip if correct magic number.
14630 * gjavah.c: Update call to find_class.
14631 * jcf-dump.c: Likewise.
14632
14633 * jcf-write.c (put_linenumber): Handle duplicate line numbers.
14634 (generate_bytecode_insns): For EXPR_WITH_FILE_LOCATION, do
14635 nothing if body is empty_stmt_node.
14636 Various little fixes so SP gets correctly adjusted.
14637 For NEW_ARRAY_INIT, handle IGNORE_TARGET.
14638 For CALL_EXPR, test if static first.
14639 (generate_classfile): Ignore fields that are DECL_ARTIFICIAL,
14640 such as the ones we create for Object and Class.
14641 Set and restore current_function_decl.
14642 * parse.y: Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
14643 (note_possible_classname): New function.
14644 (read_import_entry): Removed. Merged with read_import_dir.
14645 (read_import_dir): Don't call find_class - that only gives us
14646 the first classpath entry having the needed package.
14647 Use the struct buffer data structure from buffer.h.
14648 (read_import_dir, find_in_imports_on_demand): The remembered
14649 class names now use '.' (not '/') as package separator.
14650
14651 * parse.y (java_complete_expand_methods): Call write_classfile
14652 here, and not in java_expand_classes (which only gets first class).
14653
62c9aa5f 146541998-12-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
1287b91a
APB
14655
14656 * parse.y (<type_declaration>): Do maybe_generate_clinit last.
14657 (register_fields): If a static fields has an initializer, just
14658 chain it on ctxp->static_initialized, and handle later.
14659 (java_complete_expand_methods): Force <clinit> first.
14660 (resolve_expression_name, resolve_field_access): Just get DECL_INITIAL
14661 - it's already been completed.
14662 (patch_initialized_static_field): New function.
14663 (java_complete_field): Call it.
14664
62c9aa5f 146651998-12-12 Per Bothner <bothner@cygnus.com>
05f9acdc
PB
14666
14667 * expr.c (encode_newarray_type, build_new_array): New functions.
14668 * java-tree.h: Declare build_new_array.
14669 * jcf-write.c (patch_newarray): Use build_new_array.
14670
14671 * expr.c (java_lang_expand_exp): Support NEW_ARRAY_INIT.
14672 * jcf-write.c (generate_bytecode_insns): Support NEW_ARRAY_INIT.
14673
14674 * parse.y (patch_new_array_init): Re-organize.
14675 Now is passed the actual array (pointer) type of the value.
14676 Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
14677 (patch_array_constructor): Removed - merged into patch_new_array_init.
e64c46ce 14678 (java_complete_tree): Update patch_new_array_init.
05f9acdc
PB
14679
14680 * jcf-write.c (find_constant_index): New function.
14681 (generate_bytecode_insns): Use find_constant_index.
14682 (generate_classfile): Use find_constant_index for ConstantValue.
14683
78857b4e
TT
146841998-12-11 Tom Tromey <tromey@cygnus.com>
14685
14686 * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
14687 * decl.c (init_decl_processing): Renamed dtable -> vtable.
14688 * class.c (make_class_data): Renamed dtable -> vtable, and
14689 dtable_method_count -> vtable_method_count.
14690
62c9aa5f 146911998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
4a5f66c3
APB
14692
14693 * decl.c (long_zero_node, float_zero_node, double_zero_node): New
e64c46ce 14694 global variables, initialized.
4a5f66c3 14695 * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
e64c46ce 14696 Declared new global variables.
4a5f66c3 14697 * lex.c (java_lex): Return long_zero_node, float_zero_node,
e64c46ce 14698 double_zero_node, integer_zero_node upon direct matching.
4a5f66c3
APB
14699 * parse.y (purify_type_name): Added function prototype.
14700 (duplicate_declaration_error_p): Consider new_type as potentially
e64c46ce 14701 being a incomplete type. Use purify_type_name on type string.
4a5f66c3 14702 (method_header): saved_type: unused variable removed. Don't figure
e64c46ce 14703 return type if method name is invalid.
4a5f66c3 14704 (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
e64c46ce 14705 processed by patch_unaryop.
4a5f66c3 14706 (patch_unaryop): Fixed typo in comment. Re-convert pre/post
e64c46ce
AJ
14707 increment/decrement node into its original type after binary
14708 numeric promotion on its operands.
4a5f66c3 14709
62c9aa5f 147101998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
1179ebc2
APB
14711
14712 * parse.y (array_initializer:): Array init operand is NULL_TREE
e64c46ce
AJ
14713 instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
14714 now an error. Fixed indentation problems.
1179ebc2
APB
14715 (patch_string): Handle error_mark_node as an argument.
14716 (patch_new_array_init): Fixed indentation problems.
14717 (array_constructor_check_entry): Removed check on null wfl_value.
e64c46ce 14718 Return an error if wfl_value's walk returns an error.
1179ebc2 14719
62c9aa5f 147201998-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
f8976021
APB
14721
14722 * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
14723 * lex.c (java_lex): Remember column position before advancing one
e64c46ce 14724 token. Retain location information on OCB_TK.
f8976021
APB
14725 * lex.h (typedef struct java_lc): Added new field.
14726 * parse.h (GET_SKIP_TYPE): New macro.
14727 (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
14728 * parse.y (build_new_array_init, patch_new_array_init,
e64c46ce
AJ
14729 patch_array_constructor, maybe_build_array_element_wfl,
14730 array_constructor_check_entry): New function prototypes.
f8976021
APB
14731 (switch_block:): Tagged <node>.
14732 (OCB_TK): Tagged <operator>.
14733 (array_initializer:): Installed actions.
14734 (variable_initializer): Build location information on element if
e64c46ce 14735 necessary.
f8976021
APB
14736 (switch_statement:): Fixed indentation typo.
14737 (switch_block:): Redefined default action.
14738 (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
14739 (patch_assignment): Removed duplicate code.
14740 (maybe_build_array_element_wfl, build_new_array_init,
e64c46ce
AJ
14741 patch_new_array_init, patch_array_constructor,
14742 array_constructor_check_entry): New functions.
f8976021 14743
62c9aa5f 147441998-12-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
ac825856
APB
14745
14746 * parse.y (array_initializer): Tagged <node>.
14747 (variable_initializer:): Use default rule.
14748 (array_initializer:): Defined actions.
14749 (variable_initializers:): Likewise.
14750 (resolve_qualified_expression_name): Use DECL_CONTEXT to build
e64c46ce 14751 non-static field accesses.
ac825856
APB
14752 (patch_invoke): Fixed indentation typo.
14753 (java_complete_tree): Likewise.
14754 (build_labeled_block): Changed leading comment. Generate an error
e64c46ce 14755 in case of duplicate loop labels.
ac825856 14756 (patch_conditional_expr): Patch results of string concatenation
e64c46ce 14757 operations.
ac825856 14758
62c9aa5f 147591998-12-06 Per Bothner <bothner@cygnus.com>
2dfaf550
PB
14760
14761 * constants.c (find_methodref_index): When the class is an interface,
14762 generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
14763
14764 * decl.c (finit_identifier_node): Use "$finit$", rather than
14765 "<finit>" (which Sun's verifier rejects).
14766 * parse.y (maybe_generate_finit): Leave out meaningless final flag.
14767 (generate_field_initialization_code): Removed.
14768 (fix_constructors) Don't add call to $finit$ here (wrong order).
14769 (patch_method_invocation): Add $finit$ call here.
14770
14771 * java-tree.h (CALL_USING_SUPER): New macro.
14772 * parse.y (patch_invoke): Remove im local variable.
e64c46ce 14773 (patch_method_invocation, patch_invoke): Don't pass super parameter.
f6bbde28 14774 (patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
2dfaf550
PB
14775 (resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
14776
14777 * jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
14778
14779 * parse.y (java_complete_tree): Don't complain about unreachable
14780 statement if it is empty_stmt_node.
14781
14782 * jcf-write.c (find_constant_wide): New function.
14783 (push_long_const): Use find_constant_wide.
14784
14785 * jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
14786 (generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
14787 Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
14788 Emit invokeinterface when calling an interface method.
14789 Emit invokespecial also when calling super or private methods.
14790
14791 * jcf-write.c (generate_classfile): Emit ConstantValue attributes.
14792
62c9aa5f 147931998-12-06 Per Bothner <bothner@cygnus.com>
0f0d3319
PB
14794
14795 * jcf-dump.c (INVOKE): If invokeinterface, print number of args.
14796
62c9aa5f 147971998-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
1886c9d8
APB
14798
14799 * java-tree.h (java_layout_seen_class_methods): New function
e64c46ce 14800 prototype.
1886c9d8
APB
14801 (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
14802 * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
14803 * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
14804 * parse.y (method_declarator:): Defined action.
14805 (issue_warning_error_from_context): input_filename saved, set to
e64c46ce 14806 the appropriate value and restored after java_error is called.
1886c9d8
APB
14807 (build_unresolved_array_type): Fixed comment.
14808 (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
14809 (method_header): Deal with return type the same way type are
e64c46ce
AJ
14810 handled for fields and method's parameters and local variables
14811 types are handled.
1886c9d8
APB
14812 (check_method_redefinition): Removed extra CR.
14813 (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
14814 (java_layout_seen_class_methods): New function.
14815 (java_layout_classes): Call java_layout_seen_class_methods.
f6bbde28 14816
62c9aa5f 148171998-12-03 Per Bothner <bothner@cygnus.com>
52e01aa6
PB
14818
14819 * parse,y (patch_synchronized_statement): Set CAN_COMPLETE_NORMALLY.
14820
62c9aa5f 148211998-12-03 Per Bothner <bothner@cygnus.com>
66af84e4
PB
14822
14823 * jcf-dump.c (main): Fix error message.
14824 * jcf-path.c (add_entry): Style fix.
14825
62c9aa5f 148261998-12-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
c3f2a476
APB
14827
14828 * class.c (layout_class_method): Call build_java_argument_signature
14829 on constructors too.
14830 * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
14831 (patch_method_invocation): Define a primary when resolving an
e64c46ce
AJ
14832 expression name. Augmented comment on code checking illegal `this'
14833 usage. Loosened it test by accepting NEW_CLASS_EXPR.
c3f2a476 14834
62c9aa5f 148351998-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
82371d41
APB
14836
14837 * class.c (layout_class_method): Don't report error on non-static
e64c46ce 14838 overriding static if the method is private.
82371d41
APB
14839 * java-tree.h (finish_class): Prototype added.
14840 * lex.c (java_get_line_col): Handle col argument -2 value.
14841 * parse.h: All static method declarations moved to parse.y.
14842 * parse.y: Now contains all static method declarations previously
e64c46ce 14843 found in parse.h.
82371d41 14844 (find_expr_with_wfl, missing_return_error,
e64c46ce 14845 unreachable_stmt_error): New functions.
82371d41 14846 (java_get_real_method_name): Identify constructors bearing class
e64c46ce 14847 names in source code compiled classes only.
82371d41
APB
14848 (java_complete_expand_methods): Call missing_return_error.
14849 (invocation_mode): Private methods invoked as static methods.
14850 (java_complete_tree): Call unreachable_stmt_error.
14851
de80f416
TT
148521998-12-01 Tom Tromey <tromey@cygnus.com>
14853
14854 * Makefile.in (+target): Removed.
14855 (+xmake_file): Likewise.
14856 (+tmake_file): Likewise.
14857 (.NOEXPORT): Removed duplicate.
14858
62c9aa5f 148591998-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
45254bf6
KG
14860
14861 * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
14862
14863 * jv-scan.c: Fix xmalloc prototype. Provide an xmalloc definition.
f6bbde28 14864
45254bf6
KG
14865 * jvgenmain.c: Remove the xmalloc prototype, we get it from
14866 libiberty.h. Provide an xmalloc definition.
14867
14868 * jvspec.c: Remove the xmalloc prototype.
14869
14870 * parse-scan.y: Include config.h and system.h. Don't include
14871 OS headers or gansidecl.h. Don't prototype xmalloc/xstrdup.
14872 Provide an xstrdup definition.
14873
62c9aa5f 148741998-11-26 Alexandre Oliva <oliva@dcc.unicamp.br>
076b41ee 14875
ceff9b14
AO
14876 * jcf-path.c (add_entry): Recognize ".jar" too.
14877 * lang-specs.h: Likewise.
076b41ee 14878
62c9aa5f 148791998-11-26 Per Bothner <bothner@cygnus.com>
c5941a9f
PB
14880
14881 * jcf-write.c (generate_bytecode_insns): In Call_EXPR, handle
14882 soft_monitorenter_node, soft_monitorexit_node, throw_node.
14883
14884 * jcf-write.c (generate_bytecode_insns):
e64c46ce 14885 Handle pre/post-increment/decrement of long.
c5941a9f
PB
14886
14887 * jcf-write.c (generate_bytecode_insns):
14888 Handle missing exception handler (finally for synchronized).
14889
62c9aa5f 148901998-11-25 Per Bothner <bothner@cygnus.com>
00abfc00 14891
df8940cf
PB
14892 * java-tree.h (end_params_node): Declare global.
14893 * decl.c (end_params_node): New global.
14894 (init_decl_processing, start_java_method): Use end_params_node for
14895 end of list of parameter types. Follows correct gcc conventions.
14896 * expr.c (pop_argument_types, pop_arguments): Likewise.
14897 * lang.c (put_decl_node): Likewise.
14898 * typeck.c (various places): Likewise.
14899 * class.y (various places): Likewise.
14900 * parse.y (various places): Likewise.
14901
14902 * parse.y (java_complete_tree): Move CAN_COMPLETE_NORMALLY.
14903 (build_jump_to_finally): Add missing CAN_COMPLETE_NORMALLY.
14904
14905 * class.c: Add #include flags.h, remove no-longer needed declaration.
14906
14907 * class.c (layout_class_method): Remove commented-out code, re-format.
14908 Don't add vtable entry (or index) for private methods.
14909 * expr.c (expand_invoke): A private method is implicitly final.
14910 * class.c (make_class_data): If inlining or optimizing,
14911 skip private methods.
14912
14913 * class.c (finish_class): New function. Calls existing methods,
14914 but alls emits deferred inline functions.
14915 * jcf-parse.c (parse_class_file): Call finish_class.
14916 * parse.y (java_complete_expand_methods): Likewise.
14917
14918 * expr.c (build_java_binop): Explicit default, to silence -Wall.
14919
00abfc00
PB
14920 * expr.c (CHECK_PC_IN_RANGE): Add void cast to kill warnings.
14921
62c9aa5f 149221998-11-25 Marc Espie <espie@quatramaran.ens.fr>
de7b168e
ME
14923
14924 * jcf-write.c (generate_bytecode_conditional): Fix typo.
14925
62c9aa5f 149261998-11-24 Per Bothner <bothner@cygnus.com>
23a79c61
APB
14927
14928 * (generate_classfile): Always write class access flag with
e64c46ce 14929 ACC_SUPER set.
23a79c61 14930
62c9aa5f 149311998-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
23a79c61
APB
14932
14933 * class.c (maybe_layout_super_class): New function.
14934 (layout_class): Reorganized. Loop on class methods dispatched into
e64c46ce 14935 a new function. Call maybe_layout_super_class.
23a79c61
APB
14936 (layout_class_methods, layout_class_method): New functions.
14937 * expr.c (expand_java_NEW): Call layout_class_methods on loaded
e64c46ce 14938 class.
23a79c61
APB
14939 (expand_invoke): Likewise.
14940 * java-tree.h (all_class_list): New global variable declared.
14941 (layout_class_methods, layout_class_method): New function
e64c46ce 14942 prototypes.
23a79c61
APB
14943 (LAYOUT_SEEN_CLASS_METHODS): New macro.
14944 * jcf-parse.c (all_class_list): New global variable.
14945 (load_class): Extended what class_or_name can be. Use parser
e64c46ce 14946 context mechanism to save globals before calling jcf_parse.
23a79c61 14947 (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
e64c46ce 14948 is set on the file name.
23a79c61 14949 (jcf_parse): Layout class methods when Object is loaded, otherwise
e64c46ce 14950 record class in all_class_list for delayed method layout.
23a79c61
APB
14951 (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
14952 * lang.c (put_decl_node): Decode <init> into the decl context
e64c46ce 14953 class name.
23a79c61
APB
14954 * lex.c (java_allocate_new_line): Use xmalloc.
14955 * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
e64c46ce 14956 pointers, not TREE_LIST elements.
23a79c61 14957 (struct parser_ctxt): Fixed comment indentations, added comments
e64c46ce 14958 and reordered some fields.
23a79c61
APB
14959 (java_check_methods): Function prototype removed.
14960 * parse.y (java_push_parser_context): Use xmalloc.
14961 (java_parser_context_restore_global): Pop extra pushed ctxp only
e64c46ce 14962 when there's nothing next.
23a79c61 14963 (maybe_create_class_interface_decl): Fixed comment, add new
e64c46ce 14964 created class decl to all_class_list.
23a79c61
APB
14965 (method_header): Use GET_REAL_TYPE on argument's types.
14966 (method_declarator): Use GET_REAL_TYPE, change type to the real
e64c46ce
AJ
14967 type in TREE_LIST dependency node. Build argument list with the
14968 real type.
23a79c61
APB
14969 (create_jdep_list): Use xmalloc. Removed allocation error message.
14970 (obtain_incomplete_type): Fixed leading comment. Broadened
e64c46ce 14971 incoming argument meaning.
23a79c61 14972 (register_incomplete_type): Use xmalloc. Removed allocation error
e64c46ce 14973 message.
23a79c61
APB
14974 (safe_layout_class): Fixed leading comment.
14975 (jdep_resolve_class): Reversed if statement condition and switch
e64c46ce 14976 if and else bodies.
23a79c61 14977 (resolve_and_layout): Fixed leading comment. Broadened incoming
e64c46ce 14978 argument meaning.
23a79c61 14979 (complete_class_report_errors): New local variable name, for
e64c46ce 14980 clarity. purify_type_name used for all error cases.
23a79c61
APB
14981 (java_get_real_method_name): Stricter check on constructors.
14982 (java_check_regular_methods): Reverse methods list only if not
e64c46ce 14983 already laid out. Layout artificial constructor.
23a79c61
APB
14984 (java_check_methods): Deleted.
14985 (source_start_java_method): Obtain incomplete type for patchable
e64c46ce 14986 method arguments.
23a79c61 14987 (java_layout_classes): Fixed leading comment. Use
e64c46ce
AJ
14988 LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
14989 statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
14990 before returning. Fixed comments.
23a79c61
APB
14991 (java_expand_classes): Check for errors up front.
14992 (patch_method_invocation): Class to search is resolved and laid
e64c46ce 14993 out.
f6bbde28 14994
62c9aa5f 149951998-11-24 Per Bothner <bothner@cygnus.com>
818347b4
PB
14996
14997 * expr.c (java_lang_expand_expr): Add missing emit_queue.
14998
14999 * javaop.h (int8): Removed - not used.
15000 (jbyte): Redefine portably with correct signedness.
15001
15002 * jcf-write.c (generate_bytecode_insns): Don't free sw_state.cases.
15003
15004 * jcf-write.c (generate_bytecode_insns): Fix typo
15005 OPCODE_getstatic to OPCODE_getfield.
15006
15007 * java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'.
15008 * parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR,
15009 set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
15010
62c9aa5f 150111998-11-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
1c7f3673
APB
15012
15013 * jcf-parse.c (jcf_parse_source): Function returned type is
e64c46ce 15014 void. Added prototype.
1c7f3673
APB
15015 (jcf_parse): Function returned type is void.
15016 (yyparse): Remove call to fclose on the last parsed file.
15017
15018 * java-tree.h (jcf_parse): Changed jcf_parse prototype.
15019
62c9aa5f 150201998-11-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
c877974e
APB
15021
15022 * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
15023 (layout_class): Cope with methods featuring WFL in decl names.
15024 * decl.c (unqualified_object_id_node): New global variable,
e64c46ce 15025 initialized.
c877974e
APB
15026 (build_decl_no_layout): Removed.
15027 * expr.c (build_primtype_type_ref): Handle Double.
15028 (java_lang_expand_expr): Fixed indentations.
15029 * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
15030 (flag_wall, flag_redundant, flag_not_overriding,
e64c46ce
AJ
15031 flag_static_local_jdk1_1, unqualified_object_id_node): Global
15032 variable declarations.
c877974e
APB
15033 (build_decl_no_layout): Removed prototype.
15034 (java_get_real_method_name): Added prototype.
15035 (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
15036 (java_parse_abort_on_error): Macro now just returns.
15037 * jcf-parse.c (jcf_parse_source): Check fclose returned
e64c46ce
AJ
15038 value. Call emit_register_classes if java_report_errors returns
15039 zero.
c877974e 15040 * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
e64c46ce 15041 flag_static_local_jdk1_1): New integer flags.
c877974e
APB
15042 (lang_decode_option): New flags set here.
15043 * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
15044 (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
e64c46ce 15045 the flag_redundant variable.
c877974e 15046 (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
e64c46ce 15047 when parsing java.lang.Object class.
c877974e 15048 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
e64c46ce 15049 NULL_TREE to build.
c877974e
APB
15050 (resolve_qualified_expression_name): Fixed indentation.
15051 (patch_array_ref): Changed prototype.
15052 (not_initialized_as_it_should_p): Prototype removed.
15053 (java_report_errors): Added function prototype.
15054 * parse.y (formal_parameter:): Changed error message for not yet
e64c46ce 15055 supported final parameters.
c877974e 15056 (class_type_list:): Set both PURPOSE and VALUE of created
e64c46ce 15057 TREE_LIST to be class_type.
c877974e
APB
15058 (primary_no_new_array:): Handle class literals on primitive types.
15059 (parse_warning_context): Reinstalled correct force_error and
e64c46ce 15060 do_warning flags setups.
c877974e 15061 (java_report_errors): Changed prototype. Return java_error_count
e64c46ce 15062 value.
c877974e 15063 (variable_redefinition_error): Consider treating variable type as
e64c46ce 15064 a fake pointer.
c877974e 15065 (create_interface): Warn about redundant abstract modifier if
e64c46ce 15066 flag_redundant is set. Changed error message.
c877974e 15067 (lookup_field_wrapper): Save/restore globals before/after looking
e64c46ce 15068 up field.
c877974e 15069 (duplicate_declaration_error_p): Consider treating declaration
e64c46ce 15070 type as a fake pointer.
c877974e 15071 (register_fields): Extract real type from dependency node. Check
e64c46ce
AJ
15072 for duplicate field declaration after type adjustment. Use
15073 DECL_INITIAL to store static final initialized values.
c877974e
APB
15074 (method_header): Extract real function type from dependency node.
15075 (check_abstract_method_header): Use GET_METHOD_NAME.
15076 (obtain_incomplete_type): Layout fake pointer type.
15077 (safe_layout_class): Don't try to check for methods before layout.
15078 (java_complete_class): Don't check for correct throws clause
e64c46ce 15079 elements inheritance here.
c877974e
APB
15080 (resolve_and_layout): Broadened name parameter meaning.
15081 (reset_method_name): Use GET_METHOD_NAME.
15082 (java_get_real_method_name): New function.
15083 (java_check_regular_methods): Don't check methods in
e64c46ce
AJ
15084 java.lang.Object. Verify lineage of throws clause elements. Use
15085 flag_no_overriding in warning report.
c877974e 15086 (check_throws_clauses): Don't check if class was from
e64c46ce 15087 bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
c877974e
APB
15088 (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
15089 (declare_local_variables): Use flag_static_local_jdk1_1 to report
e64c46ce
AJ
15090 warning on unsupported final local variables. Use build_decl
15091 instead of build_decl_no_layout. Get real local variable type from
15092 dependency node.
c877974e 15093 (source_start_java_method): Get real parameter type from
e64c46ce 15094 dependency node. Call build_decl instead of build_decl_no_layout.
c877974e 15095 (java_layout_classes): Reverse tree and layout type and class as
e64c46ce 15096 required. Mark class as loaded when done.
c877974e 15097 (resolve_field_access): Fixed indentation. Restricted condition
e64c46ce
AJ
15098 leading to static field access code generation. Set field_type
15099 decl's TREE_TYPE if QUAL_DECL_TYPE not available.
c877974e 15100 (resolve_qualified_expression_name): Initialize type_found to
e64c46ce
AJ
15101 null. Handle static field resolved during qualification. Fixed
15102 layout on non primitive field decl types.
c877974e
APB
15103 (not_accessible_p): Fixed typo in comment.
15104 (patch_method_invocation): Resolve and layout class to search from
e64c46ce 15105 type.
c877974e 15106 (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
e64c46ce
AJ
15107 layout non primitive type, if necessary. Make method node only to
15108 report errors.
c877974e 15109 (find_applicable_accessible_methods_list): Consider WFL'ed method
e64c46ce 15110 decl names. Fixed indentation.
c877974e 15111 (argument_types_convertible): Resolve and layout target type if
e64c46ce 15112 necessary.
c877974e 15113 (java_complete_tree): Fixed indentation problems. Rewrote
e64c46ce
AJ
15114 CALL_EXPR thrown exceptions check. Re-installed further processing
15115 of the assignment in certain cases.
c877974e 15116 (patch_assignment): Call maybe_build_primttype_type_ref to perform
e64c46ce 15117 inlining on class literals.
c877974e 15118 (valid_builtin_assignconv_identity_widening_p): Cope with constant
e64c46ce 15119 0 literal.
c877974e
APB
15120 (valid_method_invocation_conversion_p): Likewise.
15121 (patch_string): Temporary disable forbidden use of `this' in
e64c46ce
AJ
15122 explicit constructor invocations when doing string concatenation
15123 within their scope.
c877974e 15124 (patch_unaryop): Added comment. Reinstalled code to disable
e64c46ce 15125 further check on assignment operation with cast expression RHS.
c877974e
APB
15126 (patch_switch_statement): Fixed indentation.
15127 (build_try_statement): Call build_decl instead of
e64c46ce 15128 build_decl_no_layout.
c877974e
APB
15129 (patch_synchronized_statement): Likewise.
15130 (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
e64c46ce 15131 IS_UNCHECKED_EXPRESSION_P.
c877974e 15132 (check_thrown_exceptions_do): Changed leading comment. Resolve and
e64c46ce 15133 layout argument exception type.
c877974e 15134 (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
e64c46ce 15135 of IS_UNCHECKED_EXPRESSION_P.
f6bbde28 15136
62c9aa5f 151371998-11-18 Anthony Green <green@cygnus.com>
1c7f3673
APB
15138
15139 * jcf-parse.c (yyparse): Open class file in binary mode.
15140
62c9aa5f 151411998-11-15 Per Bothner <bothner@cygnus.com>
411efd21
PB
15142
15143 * jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO).
15144
15145 * jcf-write.c (perform_relocations): Move check out one loop.
15146
62c9aa5f 151471998-11-15 Anthony Green <green@hoser.cygnus.com>
8773d9d5
AG
15148
15149 * Make-lang.in: Fix reference to srcdir.
15150 * jv-scan.c: Add missing xmalloc prototype.
15151 * jvgenmain.c: Ditto.
15152
62c9aa5f 151531998-11-15 Per Bothner <bothner@cygnus.com>
9bbc7d9f
PB
15154
15155 * decl.c (error_mark_node), java-tree.h: New global.
15156 * parse.y: Use empty_stmt_node instead of size_zero_node.
15157 (build_if_else_statement): If missing else, use empty_stmt_node.
15158
15159 * parse.y (not_initialized_as_it_should_p): Removed, with its callers.
15160 (java_complete_expand_method): Complain if return is missing.
15161 (java_check_regular_methods): Comment out incorrect error check.
15162 (not_accessible_p): Fix incorrect handling of protected methods.
15163 (patch_method_invocation): Pass correct context to not_accessible_p.
15164 (find_applicable_accessible_methods_list): Likewise.
15165 (qualify_ambiguous_name): If ARRAY_REF, it's an expression name.
15166 (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR, set
15167 TREE_TYPE (to void_type_node); otherwise expand_expr crashes.
15168 (patch_if_else_statement): Fix setting of CAN_COMPLETE_NORMALLY.
15169
15170 * jcf-write.c (CHECK_OP, CHECK_PUT): Add some error checking.
15171 (push_int_const): Remove reundant NOTE_PUSH.
15172 (generate_bytecode_insns - case STRING_CST): Do NOTE_PUSH.
15173 (- case SWITCH_EXPR): Fix code generation bug.
15174 (- case PREDECREMENT_EXPR etc): Remove redundant NOTE_PUSH.
15175 (generate_classfile): More robust for abstract methods.
15176
62c9aa5f 151771998-11-15 Anthony Green <green@cygnus.com>
175135a6
AG
15178
15179 * Makefile.in: jv-scan and jvgenmain all require libiberty.
15180 * Make-lang.in: Ditto.
15181
15182 * jv-scan.c: Remove xmalloc and xstrdup definitions.
15183 * jvgenmain: Ditto.
15184
62c9aa5f 151851998-11-15 Per Bothner <bothner@cygnus.com>
0ef38928
PB
15186
15187 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
15188
15189 * jcf-io.c (find_class): Simpler/cleaner structure fixes a bug.
15190
62c9aa5f 151911998-11-14 Per Bothner <bothner@cygnus.com>
a2f44beb
PB
15192
15193 Allow uses of interface types to verify. This is not really
15194 type-safe, but it matches what Sun does, and is OK as long as
15195 there are appropriate run-time checks.
15196 * verify.c (merge_types): If merging two interface types,
15197 just set the result to java.lang.Object.
15198 * expr.c (pop_type): Any interface is matches by java.lang.Object.
15199
928962ae
TT
152001998-11-13 Tom Tromey <tromey@cygnus.com>
15201
df66b566
TT
15202 * gjavah.c (main): Handle --output-class-directory argument.
15203 * jvspec.c (lang_specific_driver): Translate `-d' into
15204 -foutput-class-dir.
15205 * jcf.h (jcf_write_base_directory): Declare.
15206 * lang.c (lang_decode_option): Recognize -foutput-class-dir.
15207 * lang-options.h: Mention -foutput-class-dir.
15208 * jcf-write.c (jcf_write_base_directory): New global.
15209 (make_class_file_name): Put generated .class file into `-d'
15210 directory, or into source directory if -d not given. Function now
15211 static.
15212 (write_classfile): Free class file name. Handle case where class
15213 file name is NULL.
15214 (DIR_SEPARATOR): New macro.
15215 Include <sys/stat.h>
15216
928962ae
TT
15217 * Makefile.in (prefix): New macro.
15218
62c9aa5f 152191998-11-12 Per Bothner <bothner@cygnus.com>
14dd5b38 15220
421fb085
PB
15221 * parse.y (patch_invoke): Do less if flag_emit_class_files.
15222 * expr.c (build_known_method_ref): Don't check flag_emit_class_files
15223 here (done in patch_invoke instead).
15224 (case_identity): Moved here from parse.y.
15225
15226 * java-tree.h (CAN_COMPLETE_NORMALLY): New macro.
15227 * parse.y (java_complete_tree etc): Maybe set CAN_COMPLETE_NORMALLY.
15228 * parse.y (java_complete_tree): Re-order COMPOUND_EXPR in BLOCK
15229 so they can be efficiently scanned without recursion.
15230 Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
15231 * expr.c (java_lang_expand_expr): Expand statements of COMPOUND_EXPR
15232 in BLOCK iteratively, rather than recursively.
15233
15234 * parse.y (do_unary_numeric_promotion): New function.
15235 (patch_unaryop, patch_binop, patch_array_ref): Use it.
15236
15237 * parse.y (patch_newarray): Various fixes.
15238
15239 Re-do handling of switch statements (for proper block scoping).
15240 * parse.y: Add just a single block for the enture switch block,
15241 but don't create any "case blocks".
15242 (group_of_labels): Rmeoved unneeded non-terminal.
15243 CASE_EXPR and DEFAULT_EXPR are added to current block.
15244 * expr.c (java_lang_expand_expr): Inline SWITCH_EXPR here.
15245 Now also need to handle CASE_EXPR and DEFAULT_EXPR.
15246 * java-tree.h (SWITCH_HAS_DEFAULT): New macro.
15247 * parse.y (wfl_operator, print_int_node): Make non-static.
15248 (java_complete_tree): CASE_EXPR and DEFAULT_EXPR are now processed
15249 as part of recursive scan of block.
15250 (java_expand_switch ): Removed - inlined into java_lang_expand_expr.
15251 (patch_switch_statement): Most tests move dinto java_complete_tree.
f6bbde28 15252
421fb085
PB
15253 * parse.y: Make various production be non-typed (void).
15254 * parse.y (parse_error): Merged into issue_warning_error_from_context.
15255 * parse.y (add_stmt_to_compound): Don't create/change extra node.
15256 (patch_method_invocation_stmt): Renamed to patch_method_invocation.
15257
15258 * jcf-write.c (struct jcf_handler): New type.
15259 (struct jcf_switch_state): New type.
15260 (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC): New relocation kinds.
15261 (alloc_handler, emit_unop, emit_reloc): New functions.
15262 (adjust_typed_op): Add extra parameter ("max type" offset).
15263 (emit_switch_reloc, emit_case-reloc): New function.
15264 (generate_bytecode_conditional): Handle REAL_TYPE comparisons.
15265 (generate_bytecode_insns): Support REAL_CST, switch statements,
15266 exception handling, method calls, object/array creation, and more.
f6bbde28 15267
14dd5b38
PB
15268 * class.c: Remove some unused variables.
15269 * constants.c (find_string_constant): New function.
15270 (count_constant_pool_bytes): Fix to correctly handle wide constants.
15271 * decl.c (complete_start_java_method): Don't _Jv_InitClass
15272 if flag_emit_class_files.
421fb085 15273
dfded5c3
TT
152741998-11-12 Tom Tromey <tromey@cygnus.com>
15275
733b3a87
TT
15276 * jcf-io.c (find_class): Added explanatory comment.
15277
15278 * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add
15279 trailing slash to `.zip' entries.
15280
dfded5c3
TT
15281 * jvspec.c (lang_specific_driver): Correctly handle case where
15282 GC_NAME not defined.
15283
aaff4ee4
TT
152841998-11-11 Tom Tromey <tromey@cygnus.com>
15285
15286 * jvspec.c (GC_NAME): New define.
15287 (lang_specific_driver): Use GC_NAME. Add GC_NAME to command line
15288 if required.
15289 * Make-lang.in (jvspec.o): Define WITH_GC_<name>.
15290
62c9aa5f 152911998-11-11 Per Bothner <bothner@cygnus.com>
b62d42fe
PB
15292
15293 * jcf-dump.c (TABLE_SWITCH): Fix typos.
15294
233f10d3
TT
152951998-11-11 Tom Tromey <tromey@cygnus.com>
15296
15297 * jcf-dump.c (main): Correctly recognize `--'-style long options.
15298
62c9aa5f 152991998-11-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
5e942c50
APB
15300
15301 * class.c (is_compiled_class): Call safe_layout_class for class
e64c46ce 15302 compiled from source.
5e942c50 15303 * conver.h (convert_to_integer, convert_to_real,
e64c46ce 15304 convert_to_pointer): Added prototypes.
5e942c50 15305 * decl.c (init_decl_processing): Non longer push the decls of
e64c46ce
AJ
15306 `methodtable', `constants', `Class', `Field', `dispatchTable'
15307 `jexception' and `Method'.
5e942c50
APB
15308 * expr.c (build_invokeinterface): New function.
15309 (expand_invoke): static variable CLASS_IDENT now in
e64c46ce 15310 build_invokeinterface. Use build_invokeinterface.
5e942c50 15311 (expand_java_field_op): Moved code to inline
e64c46ce 15312 java.lang.PRIMTYPE.TYPE into a function.
5e942c50
APB
15313 (build_primtype_type_ref): New function.
15314 * java-tree.def (INSTANCEOF_EXPR): New tree code.
15315 * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
e64c46ce 15316 FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
5e942c50
APB
15317 (DECL_CONSTRUCTOR_P): Fixed typo in comment.
15318 (DECL_LOCAL_STATIC_VALUE): New macro.
15319 (build_invokeinterface, build_primtype_type_ref): New function
e64c46ce 15320 prototypes.
5e942c50
APB
15321 (java_parse_abort_on_error): Macro rewritten.
15322 * jcf-parse.c (current_method): Add comment to declaration.
15323 (parse_zip_file_entries, process_zip_dir, void parse_source_file):
e64c46ce 15324 Function prototypes fixed.
5e942c50
APB
15325 (jcf_parse_source): push/pop parser context. save/restore global.
15326 (parse_source_file): Fixed leading comment. Now take a
e64c46ce
AJ
15327 IDENTIFIER_NODE as an argument. Doesn't check methods, layout
15328 classes and pop the parser context anymore.
5e942c50 15329 (yyparse): Push parser context, save globals, parse the source
e64c46ce
AJ
15330 file, restore globals and pop the parser context when processing a
15331 source file.
5e942c50
APB
15332 * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
15333 * lex.c (java_parse_doc_section): New function.
15334 (java_lex): Call java_parse_doc_section when appropriate. Build an
e64c46ce 15335 operator around INSTANCEOF_TK.
5e942c50 15336 * lex.h (java_lineterminator, java_sprint_unicode,
e64c46ce
AJ
15337 java_unicode_2_utf8, java_lex_error, java_store_unicode):
15338 Prototypes rewritten.
5e942c50 15339 (java_parse_escape_sequence, java_letter_or_digit_p,
e64c46ce
AJ
15340 java_parse_doc_section, java_parse_end_comment, java_get_unicode,
15341 java_read_unicode, java_store_unicode, java_read_char,
15342 java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
15343 Added function prototypes.
5e942c50 15344 * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
e64c46ce 15345 define.
5e942c50 15346 (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
e64c46ce 15347 New macros
5e942c50 15348 (struct parser_ctxt): New fields: deprecated,
e64c46ce 15349 current_parsed_class_un, gclass_list.
5e942c50 15350 (fix_method_argument_names, issue_warning_error_from_context,
e64c46ce 15351 resolve_package, lookup_package_type): New function prototypes.
5e942c50
APB
15352 (resolve_expression_name): Fixed function prototype.
15353 (find_applicable_accessible_methods_list): Fixed indentation, added
15354 extra argument in prototype.
15355 (check_final_assignment, build_null_of_type, check_deprecation,
e64c46ce
AJ
15356 check_method_redefinition, reset_method_name,
15357 java_check_regular_methods, java_check_abstract_methods,
15358 maybe_build_primttype_type_ref): New function prototype.
5e942c50
APB
15359 * parse.y (conver.h): Include.
15360 (INSTANCEOF_TK): Tagged <operator>.
15361 (single_type_import_declaration): Use REGISTER_IMPORT macro.
15362 (relational_expression:): Build binop for instanceof.
15363 (java_push_parser_context): Remember ctxp->gclass_list across
e64c46ce 15364 contexts.
5e942c50 15365 (java_pop_parser_context): Simply return if no context
e64c46ce 15366 exists. Remember gclass_list across contexts.
5e942c50
APB
15367 (issue_warning_error_from_context): New function.
15368 (parse_error_context): Don't setup ctxp->elc here. Call
e64c46ce 15369 issue_warning_error_from_context instead.
5e942c50
APB
15370 (parse_warning_context): Likewise.
15371 (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
e64c46ce 15372 setup. Link new class/interface to ctxp->gclass_list.
5e942c50 15373 (add_superinterfaces): Register interface as incomplete if not
e64c46ce 15374 loaded.
5e942c50 15375 (create_class): Remember class unqualified name in
e64c46ce 15376 ctxp->current_parsed_class_un. Check class deprecation.
5e942c50 15377 (register_fields): Check field deprecation. Remember static final
e64c46ce
AJ
15378 field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
15379 processing INIT.
5e942c50 15380 (method_header): New local variable ORIG_ARG. Use unqualified
e64c46ce
AJ
15381 current class name for check on constructor errors. Promote return
15382 type if of record type. Argument list fix moved in
15383 fix_method_argument_names, called here. Check method deprecation.
5e942c50
APB
15384 (fix_method_argument_names): New function.
15385 (method_declarator): Promote record typed arguments.
15386 (safe_layout_class): Check class methods before layout.
15387 (java_complete_class): Compute field layout when patched.
15388 (do_resolve_class): Try to load class after having it renamed
e64c46ce 15389 after the package name.
5e942c50
APB
15390 (get_printable_method_name): Use DECL_CONTEXT.
15391 (reset_method_name): New function.
15392 (check_method_redefinition): Use reset_method_name.
15393 (java_check_regular_methods): New local variable
e64c46ce
AJ
15394 SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
15395 names for error report. Check for compile-time error when method
15396 found has default (package) access.
5e942c50 15397 (java_check_abstract_methods): Now takes an interface DECL node as
e64c46ce
AJ
15398 an argument. Also reinstall real name on unchecked
15399 overriding/hiding methods for error report.
5e942c50 15400 (java_check_methods): Fixed leading comment. Get classes to verify
e64c46ce
AJ
15401 from ctxp->gclass_list. Use CHECK_METHODS macro and set
15402 CLASS_METHOD_CHECKED_P on class verification.
5e942c50
APB
15403 (lookup_java_method2): Get real method name if necessary.
15404 (find_in_imports): Don't check package class access here.
15405 (resolve_package, lookup_package_type): New functions.
15406 (java_layout_classes): Fixed leading comment. Take classes to be
e64c46ce 15407 laid out from ctxp->gclass_list.
5e942c50 15408 (java_complete_expand_methods): Don't expand native and abstract
e64c46ce 15409 methods.
5e942c50
APB
15410 (java_expand_classes): New function.
15411 (resolve_expression_name): Use additional argument ORIG. Retrieve
e64c46ce 15412 values of static final field of primitive types.
5e942c50 15413 (resolve_field_access): Handles static final field of promotive
e64c46ce 15414 type.
5e942c50 15415 (resolve_qualified_expression_name): Handle STRING_CST as
e64c46ce
AJ
15416 primaries and package name resolution. Check deprecation on found
15417 decls. Set where_found and type_found on non static field resolved
15418 during qualification. Layout non primitive field decl types.
5e942c50
APB
15419 (check_deprecation): New function.
15420 (maybe_access_field): Simplified.
15421 (patch_method_invocation_stmt): Local variable CLASS_TYPE
e64c46ce
AJ
15422 removed. Reverse method's argument when primary is a type. Don't
15423 use CLASS_TYPE to report problems, use IDENTIFIER_WFL
15424 instead. Include abstract class in the list of class searchable
15425 for constructors. Use DECL_CONTEXT of found method for access
15426 checks. Check method deprecation.
5e942c50 15427 (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
e64c46ce 15428 converting arguments. Handle INVOKE_INTERFACE.
5e942c50 15429 (lookup_method_invoke): Search constructor using existing
e64c46ce 15430 infrastructure (don't rely on lookup_java_constructor anymore).
5e942c50 15431 (find_applicable_accessible_methods_list): Extra argument flag
e64c46ce 15432 LC. Now include constructor in the search.
5e942c50
APB
15433 (qualify_ambiguous_name): Conditional expression are primaries.
15434 (not_initialized_as_it_should_p): static final are always
e64c46ce 15435 initialized.
5e942c50 15436 (java_complete_tree): Pass extra NULL argument to
e64c46ce
AJ
15437 resolve_expression_name. Stricter test to carry on patching
15438 assignments. New case for INSTANCEOF_EXPR.
5e942c50
APB
15439 (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
15440 (check_final_assignment, maybe_build_primttype_type_ref): New
e64c46ce 15441 functions.
5e942c50 15442 (patch_assignment): Detect resolved static finals and carry normal
e64c46ce 15443 assignment error check on them. Inline PRIMTYPE.TYPE read access.
5e942c50 15444 (try_builtin_assignconv): Access constant 0 on all primitive
e64c46ce 15445 types.
5e942c50 15446 (valid_builtin_assignconv_identity_widening_p): Accept identical
e64c46ce 15447 types. Accept all promoted type on int type.
5e942c50 15448 (valid_ref_assignconv_cast_p): Accept a null pointer to be
e64c46ce 15449 assigned to a reference.
5e942c50 15450 (valid_method_invocation_conversion_p): Accept to check null
e64c46ce 15451 pointers.
5e942c50 15452 (build_binop): Merge declaration and initialization of local
e64c46ce 15453 variable BINOP.
5e942c50 15454 (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
e64c46ce
AJ
15455 numeric types. Improved validity test for qualify operators on
15456 references.
5e942c50 15457 (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
e64c46ce
AJ
15458 and PREINCREMENT_EXPR. Also detect resolved static finals of a
15459 primitive type and issue the appropriate error message.
5e942c50
APB
15460 (resolve_type_during_patch): Mark class loaded when resolved.
15461 (patch_cast): Allow null to be cased to reference types.
15462 (build_null_of_type): New function.
15463 (patch_array_ref): Handle array on references correctly.
15464 (patch_return): Removed unused local variable MODIFY. Force
e64c46ce
AJ
15465 boolean to be returned as integers. Allows null to be returned by
15466 a function returning a reference.
5e942c50 15467 * typeck.c (convert_to_integer, convert_to_real,
e64c46ce 15468 convert_to_pointer): Prototypes moved to convert.h
5e942c50
APB
15469 (lookup_argument_method): Use method real name, if necessary.
15470
9cfceb60
TT
154711998-10-30 Tom Tromey <tromey@cygnus.com>
15472
66d88624
TT
15473 * class.c (build_class_ref): Changed name of primitive classes to
15474 start with `_Jv_'.
15475
9cfceb60
TT
15476 * class.c (make_class_data): Renamed fields: nmethods to
15477 method_count, method_count to dtable_method_count. Always set
15478 `state' field to 0.
15479 * decl.c (init_decl_processing): Likewise.
15480
62c9aa5f 154811998-10-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
22eed1e6
APB
15482
15483 * class.c (layout_class): Don't mangle <finit>, produce
e64c46ce 15484 __finit<class> instead. Don't verify artificial methods.
22eed1e6
APB
15485 * decl.c (finit_identifier_node): New declared global.
15486 (init_decl_processing): finit_identifier_node initialized.
15487 * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
15488 * java-tree.h (finit_identifier_node): Declared as extern.
15489 (struct lang_decl): New field called_constructor.
15490 (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
15491 (CLASS_HAS_FINIT_P): New macro.
15492 (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
e64c46ce 15493 explicit constructor invocation.
22eed1e6 15494 (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
e64c46ce 15495 CALL_SUPER_CONSTRUCTOR_P): New macros.
22eed1e6
APB
15496 (write_classfile): Added prototype.
15497 * jcf-parse.c (jcf_parse_source): Parse and remember for
e64c46ce 15498 generation if the file was seen on the command line.
22eed1e6
APB
15499 (parse_source_file): Don't write the class file here.
15500 (yyparse): Loop on files rewritten. Set current_jcf.
15501 (parse_zip_file_entries): Parse class file only if it was found.
15502 * lang.c (init_parse): Don't open command line provided filename
e64c46ce 15503 here.
22eed1e6
APB
15504 (lang_parse): Don't set main_jcf anymore.
15505 * parse.h (ABSTRAC_CHECK): Capitalized arguments.
15506 (JCONSTRUCTOR_CHECK): New macro.
15507 (JBSC_TYPE_P): New macro.
15508 (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
15509 (COMPLETE_CHECK_OP_2): New macro.
15510 (struct parse_ctxt): New field explicit_constructor_p.
15511 (check_class_interface_creation): Fixed prototype indentation.
15512 (patch_method_invocation_stmt): Prototype reflects added argument.
15513 (patch_invoke): Likewise.
15514 (complete_method_declaration, build_super_invocation,
e64c46ce
AJ
15515 verify_constructor_circularity,
15516 build_this_super_qualified_invocation, get_printable_method_name,
15517 patch_conditional_expr, maybe_generate_finit, fix_constructors,
15518 verify_constructor_super, create_artificial_method,
15519 start_artificial_method_body, end_artificial_method_body,
15520 generate_field_initialization_code): New function prototypes.
22eed1e6
APB
15521 * parse.y: Fixed leading comment
15522 (constructor_header:, constructor_body:, block_end:): Rules tagged
e64c46ce 15523 <node>.
22eed1e6
APB
15524 (type_declaration:): Call maybe_generate_finit.
15525 (method_declaration:): Action for method_body: placed in new
e64c46ce 15526 function complete_method_declaration, called here.
22eed1e6 15527 (constructor_declaration:): Defined actions. Removed leading
e64c46ce 15528 FIXME.
22eed1e6
APB
15529 (constructor_header:): New rule with action.
15530 (constructor_body:): Rule rewritten using block_begin: and
e64c46ce 15531 block_end:. Defined actions.
22eed1e6 15532 (constructor_declarator:, explicit_constructor_invocation:):
e64c46ce 15533 Defined actions.
22eed1e6
APB
15534 (block:): Use new rules block_begin: block_end:.
15535 (block_begin:, block_end:): New rules and actions.
15536 (block_statements:): Fixed error message for explicit
e64c46ce 15537 constructors.
22eed1e6 15538 (method_invocation:): Call build_this_super_qualified_invocation
e64c46ce 15539 if primary is `this' or `super' was seen.
22eed1e6
APB
15540 (conditional_expression:): Action defined.
15541 (extra_ctxp_pushed_p): New static global flag.
15542 (java_parser_context_save_global): Create parser context if
e64c46ce 15543 necessary. Use extra_ctxp_pushed_p to remember it.
22eed1e6 15544 (java_parser_context_restore_global): Pop extra parser context if
e64c46ce 15545 one exists.
22eed1e6 15546 (build_array_from_name): Array on primitive types are marked
e64c46ce 15547 loaded.
22eed1e6 15548 (register_fields): Restore new name in field initializer
e64c46ce
AJ
15549 expression if type was altered. Non static fields initialized upon
15550 declaration marked initialized.
22eed1e6
APB
15551 (maybe_generate_finit): New function.
15552 (maybe_generate_clinit): Use create_artificial_method,
e64c46ce
AJ
15553 start_artificial_method_body, end_artificial_method_body. Generate
15554 debug info for enclosed initialization statements.
22eed1e6 15555 (method_header): Fixed leading comment. Check constructor
e64c46ce
AJ
15556 flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
15557 accordingly.
22eed1e6 15558 (complete_method_declaration, constructor_circularity_msg,
e64c46ce 15559 verify_constructor_circularity): New functions.
22eed1e6
APB
15560 (get_printable_method_name): New function.
15561 (check_method_redefinition): Don't rename <finit> methods. Fix
e64c46ce
AJ
15562 declared constructor names. Error message for
15563 constructors modified.
22eed1e6 15564 (java_check_regular_methods): Local variable seen_constructor
e64c46ce
AJ
15565 renamed saw_constructor. Skip verification on constructors. Create
15566 default constructor with create_artificial_method.
22eed1e6
APB
15567 (java_check_methods): Removed unnecessary empty line.
15568 (create_artificial_method, start_artificial_method_body,
e64c46ce 15569 end_artificial_method_body): New functions.
22eed1e6 15570 (java_layout_classes): Changed leading comment. Reverse fields
e64c46ce
AJ
15571 list if necessary. Always layout java.lang.Object if being
15572 defined.
22eed1e6
APB
15573 (java_complete_expand_methods): Verify constructor circularity.
15574 (java_complete_expand_method): Call fix_constructor on
e64c46ce
AJ
15575 constructors. Local variable no_ac_found removed. Restore
15576 bindings if method body expansion failed.
22eed1e6 15577 (fix_constructors, verify_constructor_super,
e64c46ce 15578 generate_field_initialization_code): New function.
22eed1e6 15579 (java_expand_classes): Fixed leading comment. Write class file
e64c46ce 15580 here.
22eed1e6 15581 (resolve_expression_name): Check for illegal instance variable
e64c46ce
AJ
15582 usage within the argument scope of an explicit constructor
15583 invocation.
22eed1e6 15584 (resolve_qualified_expression_name): Pass extra from_super flag
e64c46ce
AJ
15585 when invoking patch_method_invocation_stmt. New case for
15586 conditional expression when used as a primary. Check for error
15587 when acquiring super.
22eed1e6 15588 (patch_method_invocation_stmt): Added extra argument super. New
e64c46ce
AJ
15589 local variable is_static_flag. Set class_to_search according to
15590 the nature of the constructor invocation. Don't add `this'
15591 argument when expanding NEW_CLASS_EXPR. Check for illegal method
15592 invocation within the argument scope of explicit constructor
15593 invocation. Set is_static according to is_static_flag. Provide
15594 extra `super' argument to patch_invoke invocation.
22eed1e6 15595 (patch_invoke): New argument from_super. Loop on arguments
e64c46ce
AJ
15596 indentation fixed. Pass from_super to invocation_mode. New switch
15597 case INVOKE_SUPER. Fixed error message in switch default case.
15598 Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
15599 value.
22eed1e6
APB
15600 (invocation_mode): Return INVOKE_SUPER mode when appropriate.
15601 (lookup_method_invoke): Fixed prototypes in candidates list. Error
e64c46ce 15602 message takes constructors into account.
22eed1e6
APB
15603 (find_applicable_accessible_methods_list): Fixed indentation.
15604 (qualify_ambiguous_name): Take explicit constructor invocation
e64c46ce
AJ
15605 into account. Deal with a conditional expression as a primary to
15606 a method call.
22eed1e6 15607 (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
e64c46ce
AJ
15608 case. Added extra argument to patch_method_invocation_stmt.
15609 Register calls made to explicit constructor `this'. Don't call
15610 save_expr in ARRAY_REF case when emitting class files. Check for
15611 illegal use of this when expanding explicit constructor invocation
15612 arguments.
22eed1e6 15613 (complete_function_arguments): Set and reset parser context
e64c46ce 15614 explicit_constructor_p field value when appropriate.
22eed1e6 15615 (build_super_invocation, build_this_super_qualified_invocation):
e64c46ce 15616 New functions.
22eed1e6
APB
15617 (patch_assignment): Fixed typo.
15618 (patch_unaryop): Check on final fields occurs only when a decl
e64c46ce 15619 exits.
22eed1e6
APB
15620 (patch_return): Take constructors into account.
15621 (patch_conditional_expr): New function.
15622 * typeck.c (build_java_signature): Removed unnecessary empty line.
f6bbde28 15623
62c9aa5f 156241998-10-28 Jeffrey A Law (law@cygnus.com)
e626b840
JL
15625
15626 * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
15627
571d54d5
TT
156281998-10-28 Tom Tromey <tromey@cygnus.com>
15629
15630 * decl.c (init_decl_processing): Renamed fields.
15631 * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
15632 interface_len, msize fields.
15633
15634 * class.c (make_class_data): Removed subclass_head and
15635 subclass_next fields.
15636 * decl.c (init_decl_processing): Removed subclass_head and
15637 subclass_next fields.
15638
62c9aa5f 156391998-10-28 Jeffrey A Law (law@cygnus.com)
5ed948ce
JL
15640
15641 * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
15642 * mangle.c (emit_unicode_mangled_name): Similarly.
571d54d5 15643
62c9aa5f 156441998-10-26 Nick Clifton <nickc@cygnus.com>
0d17a080
NC
15645
15646 * jcf-parse.c (get_constant): Place braces around code to compute
15647 'd' when REAL_ARITHMETIC is not defined.
15648
62c9aa5f 156491998-10-25 H.J. Lu (hjl@gnu.org)
937293e9
L
15650
15651 * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
15652 dependency.
15653
45ae5597
TT
156541998-10-23 Tom Tromey <tromey@cygnus.com>
15655
15656 * lang-specs.h: `.zip' files are input to jc1.
15657
62c9aa5f 156581998-10-22 Per Bothner <bothner@cygnus.com>
172b2240
PB
15659
15660 * jvspecs.c: Add (but don't enable) support for combining multiple
15661 .class and .java input filenames to a single jc1 invocation.
15662 Add support for -C flag (copile to .class files).
15663 Translate -classpath and -CLASSPATH arguments.
15664 * lang-specs.h: Don't set %2 spec.
15665
8603f9c5
TT
156661998-10-22 Tom Tromey <tromey@cygnus.com>
15667
71f6a8e2
TT
15668 * jcf-path.c (add_entry): Don't add trailing separator if entry is
15669 a .zip file.
15670 (add_path): Don't add trailing separator to non-empty path
15671 elements.
15672
15673 * lang.c (lang_decode_option): Check for -fclasspath and
15674 -fCLASSPATH before examining other `-f' options.
15675
f7670760
TT
15676 * java-tree.h (finalize_identifier_node): Don't declare.
15677 * class.c (make_class_data): Don't push "final" field.
15678 * decl.c (init_decl_processing): Don't push "final" field.
15679 (finalize_identifier_node): Removed.
15680 (init_decl_processing): Don't set finalize_identifier_node.
15681
257fafbb
TT
15682 * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
15683
62c9aa5f 156841998-10-11 Anthony Green <green@cygnus.com>
257fafbb
TT
15685
15686 * Make-lang.in (java): Depend on jcf-dump and jv-scan.
15687 (JV_SCAN_SOURCES): New macro.
15688 (JCF_DUMP_SOURCES): Likewise.
15689 (jcf-dump$(exeext)): New target.
15690 (jv-scan$(exeext)): New target.
15691
156921998-10-22 Tom Tromey <tromey@cygnus.com>
15693
15694 * Makefile.in (LEX): Removed.
15695 (LEXFLAGS): Likewise.
15696 (SET_BISON): New macro.
15697 (BISON): Removed.
15698 ($(PARSE_C)): Use SET_BISON. Run bison from srcdir to avoid
15699 spurious diffs in parse.c.
15700 ($(PARSE_SCAN_C)): Likewise.
15701 (PARSE_DIR): New macro.
15702 (PARSE_C): Use it.
15703 (PARSE_SCAN_C): Likewise.
15704 (PARSE_RELDIR): New macro.
15705
15706 * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
15707
8603f9c5
TT
15708 * jcf-io.c (find_class): Use saw_java_source to determine when to
15709 look for `.java' file.
15710 * jcf-parse.c (saw_java_source): New global.
15711 (yyparse): Set it if `.java' file seen.
15712
15713 * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
15714 (GCJH_SOURCES): Likewise.
15715 * Makefile.in (datadir): New macro.
15716 (libjava_zip): Likewise.
15717 (JAVA_OBJS): Added jcf-path.o.
15718 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
15719 (../gcjh$(exeext)): Likewise.
15720 (jcf-path.o): New target.
15721 * java-tree.h (fix_classpath): Removed decl.
15722 * jcf-parse.c (fix_classpath): Removed.
15723 (load_class): Don't call fix_classpath.
15724 * parse.y (read_import_dir): Don't call fix_classpath.
15725 * lex.h: Don't mention classpath.
15726 * lex.c (java_init_lex): Don't initialize classpath.
15727 * jcf-io.c (classpath): Removed global.
15728 (find_class): Use jcf_path iteration functions. Correctly search
15729 class path for .java file.
15730 (open_in_zip): New argument `is_system'.
15731 * jcf-dump.c (main): Call jcf_path_init. Recognize all new
15732 classpath-related options.
15733 * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
15734 and -I.
15735 (lang_init): Call jcf_path_init.
15736 * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
15737 * lang-specs.h: Handle -I. Minor cleanup to -M options.
15738 Correctly put braces around second string in each entry.
15739 * gjavah.c (main): Call jcf_path_init. Recognize all the new
15740 classpath-related options.
15741 (help): Updated for new options.
15742 * jcf.h: Declare functions from jcf-path.c. Don't mention
15743 `classpath' global.
15744 * jcf-path.c: New file.
15745
15746 * jcf-depend.c: Include jcf.h.
15747
15748 * jcf-write.c (localvar_alloc): Returns `void'.
15749 (localvar_free): Removed unused variable.
15750
15751 * lang.c (OBJECT_SUFFIX): Define if not already defined.
15752 (init_parse): Use OBJECT_SUFFIX, not ".o".
15753
62c9aa5f 157541998-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
866e9df8
APB
15755
15756 * class.c (emit_register_classes): Renamed from
e64c46ce 15757 emit_register_class.
866e9df8 15758 * java-tree.h (emit_register_classes): Prototype renamed from
e64c46ce 15759 emit_register_class.
866e9df8 15760 * jcf-parse.c (yyparse): Call emit_register_classes once before
e64c46ce 15761 returning.
866e9df8
APB
15762 * parse.y (java_expand_classes): No longer register classes.
15763
62c9aa5f 157641998-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
b351b287
APB
15765
15766 * class.c (is_compiled_class): New local variable
e64c46ce
AJ
15767 seen_in_zip. Identify classes found in currently compiled source
15768 file(s).
b351b287
APB
15769 * decl.c (complete_start_java_method): Fixed typo.
15770 * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
e64c46ce 15771 HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
b351b287
APB
15772 (CLASS_P): Moved around.
15773 (java_parse_abort_on_error): Macro moved from jcf-parse.c
15774 * jcf-parse.c (java_parse_abort_on_error): Macro moved to
27e928ed 15775 java-tree.h
b351b287 15776 (jcf_parse_source): Changed leading comment. Removed unnecessary
e64c46ce 15777 fclose and CLASS_FROM_SOURCE_P marking.
b351b287 15778 (parse_source_file): New local variables remember_for_generation
e64c46ce
AJ
15779 and filename. Mark parsed file name identifier node. Removed block
15780 executed when parse_only was null. Set remember_for_generation.
b351b287
APB
15781 Use it as an argument to java_pop_parser_context.
15782 (yyparse): New local variables several_files, list, next node and
e64c46ce
AJ
15783 current_file_list. Split ampersand separated file names into
15784 current_file_list. Iterate through the list and parse accordingly.
b351b287
APB
15785 * parse.h (java_pop_parser_context): New function prototype.
15786 * parse.y (ctxp_for_generation): New static global variable.
15787 (java_pop_parser_context): New argument generate. Link popped ctxp
e64c46ce 15788 to ctxp_for_generation list accordingly.
b351b287
APB
15789 (java_complete_expand_methods): Fixed indentation.
15790 (java_expand_classes): New function.
f6bbde28 15791
62c9aa5f 157921998-10-17 Per Bothner <bothner@cygnus.com>
f9d48c82
PB
15793
15794 * Makefile.in: Link with libiberty.a instead of memmove.o.
15795
62c9aa5f 157961998-10-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
c583dd46
APB
15797
15798 * lex.c (setjmp.h): No longer included.
15799 * lex.h (setjmp.h): Included.
15800 * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
15801 (duplicate_declaration_error_p): Renamed from
e64c46ce 15802 duplicate_declaration_error.
c583dd46
APB
15803 (build_array_from_name): New function prototype.
15804 * parse.y (setjmp.h): No longer included.
15805 (variable_declarator_id): Define action.
15806 (build_array_from_name): New function.
15807 (duplicate_declaration_error_p): Renamed from
e64c46ce 15808 duplicate_declaration_error. Fixed leading comment.
c583dd46 15809 (register_fields): Main `for' loop reorganized. Uses
e64c46ce 15810 SET_TYPE_FOR_RESOLUTION and build_array_from_name.
c583dd46 15811 (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
e64c46ce 15812 build_array_from_name.
c583dd46 15813 (resolve_class): Set CLASS_LOADED_P on newly build array dimension
e64c46ce 15814 types.
c583dd46
APB
15815 (read_import_dir): Don't try to skip `.' and `..'.
15816 (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
e64c46ce 15817 build_array_from_name. Main `for' loop reorganized.
c583dd46 15818 (resolve_qualified_expression_name): When building access to a
e64c46ce 15819 field, use the type where the field was found, not its own type.
c583dd46 15820 (maybe_access_field): Use field DECL_CONTEXT if the type where the
e64c46ce 15821 field was found is null.
c583dd46 15822 (qualify_ambiguous_name): Sweep through all successive array
e64c46ce 15823 dimensions.
f6bbde28 15824
62c9aa5f 158251998-10-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
0a2138e2
APB
15826
15827 * java-tree.h (pop_labeled_block, lang_printable_name,
e64c46ce
AJ
15828 maybe_add_interface, set_super_info, get_access_flags_from_decl,
15829 interface_of_p, inherits_from_p, fix_classpath,
15830 complete_start_java_method, emit_handlers, init_outgoing_cpool,
15831 make_class_data, register_class, alloc_name_constant): New
15832 function prototypes.
0a2138e2 15833 * lang.c (lang_decode_option): Set argc argument unused. Fixed
e64c46ce 15834 indentation. Added cast to remove warning.
0a2138e2
APB
15835 (lang_printable_name): Set v argument unused.
15836 (lang_print_error): Added argument to lang_printable_name call.
15837 (java_dummy_print, print_lang_decl, print_lang_type,
e64c46ce
AJ
15838 print_lang_identifier, lang_print_xnode): All argument marked
15839 unused.
0a2138e2
APB
15840 * lex.c (java_unget_unicode): Removed unnecessary argument.
15841 (java_allocate_new_line): Unused local variable is gone.
15842 (java_read_char): Added parenthesis in expressions to remove
e64c46ce 15843 warnings. Added final return statement.
0a2138e2 15844 (java_read_unicode): Added parenthesis in expression to remove
e64c46ce 15845 warning.
0a2138e2
APB
15846 (java_parse_end_comment): Fixed java_unget_unicode invocation.
15847 (java_parse_escape_sequence): Likewise.
15848 (java_lex): Unused local variables are gone. Fixed
e64c46ce 15849 java_unget_unicode invocation.
0a2138e2 15850 * lex.h (set_float_handler): Prototype added when JC1_LITE not
e64c46ce 15851 defined.
0a2138e2 15852 * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
e64c46ce 15853 lang_printable_name invocation in macro.
0a2138e2 15854 (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
e64c46ce 15855 Likewise.
0a2138e2 15856 (duplicate_declaration_error): Suppressed unused argument in
e64c46ce 15857 prototype.
0a2138e2
APB
15858 (identical_subpath_p): Function declaration is gone.
15859 (patch_invoke): Suppressed unused argument in prototype.
15860 (patch_cast, build_labeled_block, check_thrown_exceptions):
e64c46ce 15861 Likewise.
0a2138e2
APB
15862 * parse.y (setjmp.h): Included
15863 (toplev.h): Likewise.
15864 (field_declaration:): Suppressed unused local
15865 (label_decl:): Fixed build_labeled_block invocation.
15866 (java_pop_parser_context): Put extra parenthesis around assignment
e64c46ce 15867 in if.
0a2138e2
APB
15868 (yyerror): Suppressed unused local variables.
15869 (variable_redefinition_error): Fixed lang_printable_name
e64c46ce 15870 invocation.
0a2138e2
APB
15871 (create_interface): Suppressed unused local variables.
15872 (create_class): Likewise.
15873 (duplicate_declaration_error): Suppressed unused argument. Fixed
e64c46ce 15874 lang_printable_name invocation.
0a2138e2 15875 (register_fields): Suppressed unused local variable. Fixed
e64c46ce 15876 duplicate_declaration_error invocation.
0a2138e2
APB
15877 (method_header): Suppressed unused local variable.
15878 (method_declarator, parser_check_super): Likewise.
15879 (java_complete_class): Suppressed unused local variable. Fixed
e64c46ce 15880 fatal error message.
0a2138e2
APB
15881 (complete_class_report_errors): Added default: in switch.
15882 (java_check_regular_methods): Fixed lang_printable_name
e64c46ce 15883 invocations.
0a2138e2
APB
15884 (check_throws_clauses): Likewise.
15885 (java_check_abstract_methods): Suppressed unused local
e64c46ce 15886 variable. Fixed lang_printable_name invocation.
0a2138e2
APB
15887 (read_import_entry): Added supplemental return statement.
15888 (read_import_dir): Suppressed unused local variables.
15889 (check_pkg_class_access, declare_local_variables): Likewise.
15890 (source_start_java_method): Suppressed unused extern variable
e64c46ce 15891 declarations
0a2138e2 15892 (expand_start_java_method): Suppressed unused extern and local
e64c46ce 15893 variable declarations.
0a2138e2
APB
15894 (java_complete_expand_methods): Likewise.
15895 (java_complete_expand_method): Suppressed unused local variables.
15896 (make_qualified_name): Likewise.
15897 (resolve_qualified_expression_name): Added default: in
e64c46ce 15898 switch. Fixed lang_printable_name invocation.
0a2138e2 15899 (class_instance_creation_expression): Added parenthesis around
e64c46ce 15900 expressions.
0a2138e2 15901 (patch_method_invocation_stmt): Fixed lang_printable_name and
e64c46ce 15902 patch_invoke invocations.
0a2138e2 15903 (check_for_static_method_reference): Fixed lang_printable_name
e64c46ce 15904 invocation.
0a2138e2
APB
15905 (patch_invoke): Suppressed unused arguments and local variables.
15906 (lookup_method_invoke): Suppressed unused local variables.
15907 (qualify_ambiguous_name): Added default: in switch.
15908 (identical_subpath_p): Function removed.
15909 (patch_assignment): Suppressed unused local variables. Suppressed
e64c46ce 15910 unnecessary if statement. Fixed lang_printable_name invocations.
0a2138e2
APB
15911 (try_builtin_assignconv): Fixed lang_printable_name invocations.
15912 (valid_ref_assignconv_cast_p): Parenthesis around
e64c46ce 15913 expression. Suppressed unused local variables.
0a2138e2 15914 (build_binop): Suppressed unused local variables. fixed
e64c46ce 15915 lang_printable_name invocations.
0a2138e2 15916 (string_constant_concatenation): Suppressed unused local
e64c46ce 15917 variables.
0a2138e2
APB
15918 (patch_unaryop): Fixed lang_printable_name invocation.
15919 (patch_cast): Suppressed unnecessary argument. Fixed
e64c46ce 15920 lang_printable_name invocation.
0a2138e2
APB
15921 (patch_array_ref): Fixed lang_printable_name invocation.
15922 (patch_newarray, patch_return, patch_if_else_statement): Likewise.
15923 (build_labeled_block): Suppressed unused argument.
15924 (generate_labeled_block): Fixed build_labeled_block invocation.
15925 (build_loop_body): Suppressed unused local variables.
15926 (patch_loop_statement): Likewise.
15927 (patch_exit): Fixed lang_printable_name invocation.
15928 (patch_switch_statement): Likewise.
15929 (case_identity): First argument marked unused.
15930 (patch_try_statement): Fixed lang_printable_name invocations.
15931 (patch_synchronized_statement, patch_throw_statement): Likewise.
15932 (check_thrown_exceptions): Fixed check_thrown_exceptions and
e64c46ce 15933 lang_printable_name invocations.
0a2138e2
APB
15934 (check_thrown_exceptions_do): Suppressed unused argument.
15935
fc45c7ef
TT
159361998-10-14 Tom Tromey <tromey@cygnus.com>
15937
15938 * jcf-write.c (write_classfile): Add output class file as target.
15939 * lang-options.h: Added -MD, -MMD, -M, and -MM.
15940 * jcf.h: Added declarations for dependency-tracking functions.
15941 * lang-specs.h: Handle -M, -MM, MD, and -MMD.
15942 * lang.c (lang_decode_option): Recognize -MD and -MMD.
15943 (finish_parse): Call jcf_dependency_write.
15944 (dependency_tracking): New global.
15945 (DEPEND_SET_FILE): New define.
15946 (DEPEND_ENABLE): New define.
15947 (init_parse): Enable dependency tracking if required.
15948 Include "flags.h".
15949 * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
15950 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
15951 (../gcjh$(exeext)): Likewise.
15952 (jcf-depend.o): New target.
15953 * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
15954 (GCJH_SOURCES): Likewise.
15955 * jcf-io.c (open_class): Call jcf_dependency_add_file. Added
15956 dep_name argument.
15957 (find_classfile): Added dep_name argument.
15958 (find_class): Compute name of dependency.
15959 (open_in_zip): Call jcf_dependency_add_file.
15960 * gjavah.c (output_file): No longer global.
15961 (usage): Don't mention "gjavah".
15962 (help): Likewise.
15963 (java_no_argument): Likewise.
15964 (version): Likewise.
15965 (main): Recognize and handle -M family of options.
15966 (print_mangled_classname): Return is void.
15967 (process_file): Handle case where output is suppressed.
15968 (HANDLE_END_FIELD): Likewise.
15969 (HANDLE_METHOD): Likewise.
15970 * jcf-depend.c: New file.
15971
62c9aa5f 159721998-10-13 Jeffrey A Law (law@cygnus.com)
bcf6c7e3
JL
15973
15974 * java-tree.def: Add missing newline at EOF.
15975
0a65887a
TT
159761998-10-13 Tom Tromey <tromey@cygnus.com>
15977
15978 * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
15979 (main): Likewise. Exit with SUCCESS_EXIT_CODE at end of
15980 function.
15981 Include <config.h> and "system.h".
15982 (disassemble_method): Undefine RET to avoid clash with
15983 config/i386/i386.h.
15984
62c9aa5f 159851998-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
b9f7e36c
APB
15986
15987 * decl.c (runtime_exception_type_node, error_exception_type_node):
e64c46ce 15988 New global variables.
b9f7e36c
APB
15989 (init_decl_processing): Initialized.
15990 * expr.c (java_lang_expand_expr): Set caught exception type to
e64c46ce 15991 null if catch handler argument doesn't exit.
b9f7e36c 15992 * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
e64c46ce 15993 tree codes.
b9f7e36c 15994 * java-tree.h (runtime_exception_type_node,
e64c46ce 15995 error_exception_type_node): Global variables declared.
b9f7e36c
APB
15996 (DECL_FUNCTION_THROWS): New macro.
15997 (DECL_FUNCTION_BODY): Modified comment.
15998 (DECL_SPECIFIC_COUNT): Likewise.
15999 (struct lang_decl): New field throws_list.
16000 (IS_UNCHECKED_EXPRESSION_P): New macro.
16001 * lex.c (java_lex): Generate location information for THROW_TK.
16002 * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
e64c46ce 16003 EXCEPTIONS_P): New macros.
b9f7e36c
APB
16004 (enum jdep_code): New value JDEP_EXCEPTION.
16005 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
e64c46ce
AJ
16006 BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
16007 PATCH_METHOD_RETURN_ERROR): New macros.
b9f7e36c
APB
16008 (patch_method_invocation_stmt): Added new argument to prototype.
16009 (patch_synchronized_statement, patch_throw_statement,
e64c46ce
AJ
16010 check_thrown_exceptions, check_thrown_exceptions_do,
16011 purge_unchecked_exceptions, check_throws_clauses): New function
16012 prototypes.
b9f7e36c
APB
16013 * parse.y Fixed typo in keyword section.
16014 (throw:): Rule tagged <node>.
16015 (THROW_TK): Keyword tagged <operator>.
16016 (method_header:): Last argument to call to method_header passed
e64c46ce 16017 from throws: rule.
b9f7e36c 16018 (throws:, class_type_list:, throw_statement:,
e64c46ce 16019 synchronized_statement:, synchronized:): Defined actions.
b9f7e36c 16020 (method_header): New local variable current. Register exceptions
e64c46ce 16021 from throws clause.
b9f7e36c 16022 (java_complete_tree): Complete and verify exceptions from throws
e64c46ce 16023 clause.
b9f7e36c 16024 (complete_class_report_errors): Error message on exceptions not
e64c46ce 16025 found
b9f7e36c 16026 (java_check_regular_methods): Fixed typo. Shortcut on private
e64c46ce
AJ
16027 overriding methods. Changed error message on method
16028 redefinition. Check for throws clause compatibility.
b9f7e36c
APB
16029 (check_throws_clauses): New function.
16030 (java_check_abstract_methods): Use DECL_NAME for wfl or current
e64c46ce 16031 method. Changed error message on method redefinition.
b9f7e36c
APB
16032 (currently_caught_type_list): New static variable.
16033 (java_complete_expand_methods): Purge unchecked exceptions from
e64c46ce
AJ
16034 throws clause list. Call PUSH_EXCEPTIONS before walk and
16035 POP_EXCEPTIONS after.
b9f7e36c 16036 (resolve_qualified_expression_name): Pass new argument as NULL to
e64c46ce 16037 patch_method_invocation_stmt.
b9f7e36c 16038 (patch_method_invocation_stmt): New argument ref_decl. Invoke
e64c46ce
AJ
16039 PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
16040 argument list when appropriate. Use new argument if non null to
16041 store selected method decl.
b9f7e36c 16042 (patch_invoke): Convert if necessary args of builtin types before
e64c46ce 16043 forming CALL_EXPR. Argument list no longer reversed here.
b9f7e36c
APB
16044 (invocation_mode): Treat final methods as static methods.
16045 (java_complete_tree): New cases for THROW_EXPR: and
e64c46ce
AJ
16046 SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
16047 function call.
b9f7e36c 16048 (complete_function_arguments): No more RECORD_TYPE
e64c46ce 16049 conversion. Function parameter nodes no longer saved.
b9f7e36c
APB
16050 (valid_ref_assignconv_cast_p): Avoid handling null type.
16051 (patch_binop): Fixed null constant reference handling.
16052 (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
e64c46ce 16053 BUILD_THROW macros.
b9f7e36c 16054 (patch_try_statement): Fixed comments. Record caught types in
e64c46ce 16055 list, push the list, expand try block and pop the list.
b9f7e36c 16056 (patch_synchronized_statement, patch_throw_statement,
e64c46ce
AJ
16057 check_thrown_exceptions, check_thrown_exceptions_do,
16058 purge_unchecked_exceptions): New functions.
b9f7e36c 16059 * typeck.c (lookup_argument_method): Allow WFL in place of method
e64c46ce 16060 DECL_NAME during method definition check
f6bbde28 16061
6d6044b0
PB
160621998-10-09 Tom Tromey <tromey@cygnus.com>
16063
16064 * gjavah.c (decode_signature_piece): New function.
16065 (print_c_decl): Use it. Added `name_override' argument.
16066 (print_method_info): Use name_override argument to print_c_decl.
16067 (seen_fields): Removed.
16068 (print_field_info): Don't update seen_fields.
16069 (struct method_name): New structure.
16070 (method_name_list): New global.
16071 (print_method_info): Add new method to list of methods.
16072 (name_is_method_p): New function.
16073 (print_field_info): If field name has same name as method, then
16074 change field name.
16075 (process_file): Parse methods before fields.
16076 (field_pass): New global.
16077 (HANDLE_END_FIELD): Take field_pass into account.
16078
62c9aa5f 160791998-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13abbf47
KG
16080
16081 * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
16082 (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
16083
62c9aa5f 160841998-10-03 Anthony Green <green@cygnus.com>
6d6044b0
PB
16085
16086 * jvspec.c: Fix bug in jvgenmain_spec patch.
16087
62c9aa5f 160881998-10-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16089
16090 * Makefile.in (lang.o:): Install dependency on java-tree.def.
16091 * decl.c (soft_exceptioninfo_call_node): New global variable.
16092 (init_decl_processing): Fixed indentation. soft_badarrayindex_node
e64c46ce
AJ
16093 takes extra integer argument. soft_exceptioninfo_call_node
16094 initialized.
6d6044b0
PB
16095 * except.c (java_set_exception_lang_code): New function
16096 (method_init_exceptions): Called here.
16097 (prepare_eh_table_type): New function.
16098 (expand_end_java_handler): Called here.
16099 * expr.c (build_java_throw_out_of_bounds_exception): Now features
e64c46ce
AJ
16100 one argument. Modified generation of call to
16101 soft_badarrayindex_node to use new argument.
6d6044b0 16102 (build_java_arrayaccess): Pass faulty index value to
e64c46ce 16103 build_java_throw_out_of_bounds_exception.
6d6044b0
PB
16104 (generate_name): New function.
16105 (java_lang_expand_expr): New local variables node, current,
e64c46ce 16106 has_finally_p. Expand TRY_EXPR node.
6d6044b0 16107 (process_jvm_instruction): Replace top of the stack with thrown
e64c46ce 16108 object reference when entering exception handler.
6d6044b0 16109 * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
e64c46ce 16110 specific tree codes.
6d6044b0 16111 * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
e64c46ce 16112 global.
6d6044b0
PB
16113 (DECL_SPECIFIC_COUNT): New macro.
16114 (prepare_eh_table_type, java_set_exception_lang_code,
e64c46ce 16115 generate_name): New function declarations.
6d6044b0
PB
16116 (match_java_method): Declaration deleted.
16117 (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
e64c46ce 16118 macros.
6d6044b0
PB
16119 * lex.c (TRY_TK, CATCH_TK): Generate location information.
16120 * parse.h (redefinition_error, refine_accessible_methods_list,
e64c46ce 16121 can_cast_to_p): Function declaration removed.
6d6044b0 16122 (classitf_redefinition_error, variable_redefinition_error,
e64c46ce
AJ
16123 parse_jdk1_1_error, find_applicable_accessible_methods_list,
16124 find_most_specific_methods_list, argument_types_convertible,
16125 enter_a_block, valid_builtin_assignconv_identity_widening_p,
16126 valid_cast_to_p, valid_method_invocation_conversion_p,
16127 try_reference_assignconv, add_stmt_to_compound,
16128 build_jump_to_finally, build_tree_list, patch_try_statement,
16129 java_get_catch_block): New function declarations.
6d6044b0
PB
16130 * parse.y (string_buffer_type): Global variable deleted.
16131 (group_of_labels, catches, catch_clause, catch_clause_parameter,
e64c46ce 16132 finally): Rules tagged <node>.
6d6044b0
PB
16133 (TRY_TK, CATCH_TK): Token tagged <operator>.
16134 (class_body_declaration:, class_member_declaration:,
e64c46ce
AJ
16135 formal_parameter:, explicit_constructor_invocation:,
16136 interface_member_declaration:, constant_declaration:,
16137 primary_no_new_array:, class_instance_creation_expression:,
16138 array_creation_expression:): Issue error on unsuported JDK1.1
16139 features.
6d6044b0
PB
16140 (try_statement:, catches:, finally:): Define actions.
16141 (catch_clause_parameter): New rule.
16142 (catch_clause:): Use new rule catch_clause_parameter.
16143 (parse_jdk1_1_error): New function.
16144 (redefinition_error): Renamed classitf_redefinition_error.
16145 (variable_redefinition_error): New function.
16146 (check_class_interface_creation): Call
e64c46ce 16147 classitf_redefinition_error.
6d6044b0
PB
16148 (java_complete_tree): Added error message on JDEP_TYPE: case.
16149 (complete_class_report_errors): Fixed indentation.
16150 (declare_local_variables): Call variable_redefinition_error.
16151 (source_end_java_method): Call java_set_exception_lang_code and
e64c46ce 16152 emit_handlers where appropriate.
6d6044b0
PB
16153 (java_method_add_stmt): Call add_stmt_to_block.
16154 (add_stmt_to_block): New function.
16155 (lookup_method_invoke): Fixed outside comment. new local variable
e64c46ce
AJ
16156 candicates. Call find_applicable_accessible_methods_list and
16157 find_most_specific_methods_list when searching for a
16158 method. Modified error report to list possible candidates when
16159 applicable.
6d6044b0 16160 (find_applicable_accessible_methods_list,
e64c46ce
AJ
16161 find_most_specific_methods_list, argument_types_convertible): New
16162 function.
6d6044b0
PB
16163 (refine_accessible_methods_list): Function deleted.
16164 (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
e64c46ce 16165 expr (if applicable) before calling patch_array_ref.
6d6044b0
PB
16166 (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
16167 (enter_block): Fixed comment.
16168 (enter_a_block): New function.
16169 (patch_assignment): Reorganized. Call try_reference_assignconv for
e64c46ce 16170 references. Call valid_cast_to_p instead of can_cast_to_p.
6d6044b0 16171 (try_reference_assignconv,
e64c46ce 16172 valid_builtin_assignconv_identity_widening_p): New functions.
6d6044b0
PB
16173 (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
16174 (valid_cast_to_p, valid_method_invocation_conversion_p): New
e64c46ce 16175 functions.
6d6044b0
PB
16176 (build_string_concatenation): Don't resolve StringBuffer.
16177 (patch_cast): Fixed inverted arguments.
16178 (patch_array_ref): Code to save array expr deleted. Call
e64c46ce 16179 valid_cast_to_p instead of can_cast_to_p.
6d6044b0
PB
16180 (generate_labeled_block): Call generate_name.
16181 (build_jump_to_finally, build_try_statement, java_get_catch_block,
e64c46ce 16182 patch_try_statement): New functions.
6d6044b0 16183 * typeck.c (match_java_method): Function deleted.
f6bbde28 16184
62c9aa5f 161851998-10-02 Anthony Green <green@cygnus.com>
6d6044b0
PB
16186
16187 * jvspec.c: jvgenmain_spec uses different temporary file names.
16188
62c9aa5f 161891998-10-02 Anthony Green <green@cygnus.com>
6d6044b0
PB
16190
16191 * jvspec.c (lang_specific_driver): Fail if user specifies
16192 --main= when not linking.
16193
62c9aa5f 161941998-09-28 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16195
16196 * class.c (make_class_data): Push value for `thread' field.
16197 * decl.c (init_decl_processing): Added `thread' field to class.
16198
16199 * class.c (add_field): Always make static fields externally
16200 visible.
16201
62c9aa5f 162021998-09-26 Anthony Green <green@cygnus.com>
6d6044b0
PB
16203
16204 * expr.c (build_java_athrow,
16205 build_java_throw_out_of_bounds_exception, expand_invoke,
16206 build_newarray, expand_java_multianewarray, build_java_monitor):
16207 Update comments to reflect _Jv_* function names.
16208
62c9aa5f 162091998-09-25 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16210
16211 * decl.c (complete_start_java_method): DECL_RESULT is always promoted.
16212 * decl.c (start_java_method): Handle PROMOTE_PROTOTYPES target macro.
16213 * parse.y (expand_start_java_method): Likewise.
16214
62c9aa5f 162151998-09-24 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16216
16217 * expr.c (pop_arguments): Handle PROMOTE_PROTOTYPES target macro.
16218
16219 * class.c (push_class): IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
16220 (add_field): No longer need to convert from RECORD_TYPE to pointer,
16221 * expr.c: Remove no-longer-needed calls to promote_type.
16222 * decl.c (give_name_to_locals): Liekwise.
16223 * jcf-parse.c (get_class_constant): Compensate for new signatures.
16224 * parse.y: Add/remove promote_type calls as appropriate.
16225 * typeck.c (parse_signature_type): Returns POINTER_TYPE for objects.
16226 (parse_signature_string): Likewise.
e64c46ce 16227 (build_java_array_type): Fix for now signature convenions.
6d6044b0
PB
16228
16229 * lex.c (java_lex): Fix (from Alex) for JC1_LITE problem.
16230
62c9aa5f 162311998-09-23 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16232
16233 * class.c (init_class_processing): libjava function renamed to
16234 _Jv_RegisterClass.
16235
62c9aa5f 162361998-09-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16237
16238 * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
16239 * java-tree.def: Fixed DEFTREECODE third argument.
16240 (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
e64c46ce 16241 CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
6d6044b0
PB
16242 * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
16243 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
e64c46ce 16244 JAVA_THIS_EXPR): Now replaced by tree code definitions.
6d6044b0
PB
16245 (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
16246 * lang.c (java_tree_code_type, java_tree_code_length,
e64c46ce 16247 java_tree_code_name): New arrays.
6d6044b0
PB
16248 (lang_init): Append Java tree node definitions to Gcc ones.
16249 * lex.c (expression_obstack): Declared as extern when JC1_LITE
e64c46ce 16250 defined.
6d6044b0 16251 (java_init_lex): Initialize wfl_append, wfl_string_buffer,
e64c46ce 16252 wfl_to_string.
6d6044b0 16253 (java_lex): Allow declaration of empty string constants. Retain
e64c46ce 16254 location information on CASE_TK and DEFAULT_TK.
6d6044b0 16255 * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
e64c46ce
AJ
16256 JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
16257 Modified to be more robust.
6d6044b0
PB
16258 (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
16259 (build_new_invocation, try_builtin_assignconv,
e64c46ce
AJ
16260 patch_switch_statement, string_constant_concatenation,
16261 build_string_concatenation, patch_string_cst, patch_string,
16262 java_expand_switch): New function declarations.
6d6044b0
PB
16263 * parse.y: Rules related to switch and EH tagged <node>.
16264 (label_id): Set to NULL_TREE
16265 (wfl_string_buffer, wfl_append, wfl_to_string): New static global
e64c46ce 16266 tree nodes.
6d6044b0
PB
16267 (this_or_super:): Fixed indentation.
16268 (statement:, statement_nsi:, statement_without_trailing_substatement:,
e64c46ce 16269 statement_expression:): Removed call to RULE on all sub-rules.
6d6044b0
PB
16270 (switch_expression:, switch_labels:): New rules.
16271 (switch_statement:, switch_block:, switch_block_statement_groups:,
e64c46ce
AJ
16272 switch_block_statement_group:, switch_labels:, switch_label:):
16273 Defined actions.
6d6044b0 16274 (throw_statement:, synchronized_statement:, try_statement:):
e64c46ce 16275 Defined temporary actions.
6d6044b0 16276 (class_instance_creation_expression:): Call
e64c46ce 16277 build_new_invocation. Fixed indentation.
6d6044b0
PB
16278 (field_access): Fixed indentation.
16279 (method_invocation): Likewise.
16280 (make_qualified_primary): Use THIS_EXPR.
16281 (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
e64c46ce 16282 resolving from SUPER, set *type_found.
6d6044b0
PB
16283 (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
16284 (java_complete_tree): Removed unused local variable `location'. Case
e64c46ce
AJ
16285 for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
16286 NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
16287 on MODIFY_EXPR: and all binary operator tree code cases. Removed
16288 STRING_CST: case. default: checks for patchable strings.
6d6044b0 16289 (complete_function_arguments): Transform string constant or
e64c46ce 16290 crafted StringBuffer if necessary.
6d6044b0
PB
16291 (build_method_invocation): Fixed comments.
16292 (build_new_invocation): New function.
16293 (patch_assignment): Call try_builtin_assignconv to figure a valid
e64c46ce 16294 assignment conversion between builtin types.
6d6044b0
PB
16295 (try_builtin_assignconv): New function.
16296 (build_binop): Use URSHIFT_EXPR directly to call build.
16297 (operator_string): Use UNARY_PLUS_EXPR.
16298 (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
e64c46ce 16299 operator.
6d6044b0 16300 (do_merge_string_cste, merge_string_cste,
e64c46ce
AJ
16301 string_constant_concatenation, build_string_concatenation,
16302 patch_string, patch_string_cst): New function.
6d6044b0
PB
16303 (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
16304 (patch_unaryop): Likewise. New test of valid ++/-- operands.
16305 (build_newarray_node): Use NEW_ARRAY_EXPR.
16306 (build_this): Use THIS_EXPR.
16307 (build_return): Enable debug information on return statement.
16308 (build_if_else_statement): Likewise.
16309 (complete_labeled_statement): Fixed related comment.
16310 (build_loop_body): Fixed comment.
16311 (build_bc_statement): Enable debug information on break/continue
e64c46ce 16312 statements.
6d6044b0 16313 (patch_bc_statement): Fixed typos. Handle SWITCH statement
e64c46ce 16314 context.
6d6044b0 16315 (patch_switch_statement, case_identity, java_expand_switch): New
e64c46ce 16316 functions.
6d6044b0 16317
62c9aa5f 163181998-09-21 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16319
16320 * buffer.h (BUFFER_INIT): New macro.
16321 * jcf-write.c (struct jcf_partial): New type. Put global stuff here.
16322 Pass (struct jcf_partial *state) to most functions.
16323 (jcf_block, jcf_relocation): New types.
16324 Support labels, branches, conditionals, loops.
16325
62c9aa5f 163261998-09-21 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16327
16328 * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
16329
62c9aa5f 163301998-09-21 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16331
16332 * decl.c (integer_type_node): Make it have INT_TYPE_SIZE.
16333 * verify.c (verify_jvm_instructions): Use int_type_not (32 bits),
16334 not integer_type_node (INT_TYPE_SIZ bits).
16335
16336 * parse.y (patch_if_else_statement): Accept promoted_boolean_type_node.
16337
16338 * jcf-reader.c (get_attribute): New HANDLE_EXCEPTION_TABLE hook.
16339 * jcf-dump.c (print_exception_table): New function.
16340 (disassemble_method): Better handling of wide instructions.
16341 Make more robust for bad input.
16342
62c9aa5f 163431998-09-30 Jeffrey A Law (law@cygnus.com)
4f01de5c
JL
16344
16345 * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
16346 FreeBSD.
16347
62c9aa5f 163481998-09-17 Jeffrey A Law (law@cygnus.com)
da4f7dc1
JL
16349
16350 * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
16351
62c9aa5f 163521998-09-17 Tom Tromey <tromey@cygnus.com>
4a4a4682
TT
16353
16354 * Makefile.in ($(PARSE_H)): Removed target.
16355
62c9aa5f 163561998-09-17 Jeffrey A Law (law@cygnus.com)
e6a480d3
JL
16357
16358 * Makefile.in (JAVA_OBJS): Add memmove.o
16359 (memmove.o): New target & rules.
16360
62c9aa5f 163611998-09-15 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16362
16363 * expr.c (expand_invoke): Don't generate a call to the class init
16364 code.
16365
62c9aa5f 163661998-09-14 Jeffrey A Law (law@cygnus.com)
1f43f4b4
JL
16367
16368 * Makefile.in: Add many missing dependencies.
16369 * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
16370 as appropriate.
16371 * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
16372 * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
16373
62c9aa5f 163741998-09-11 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16375
16376 * decl.c (complete_start_java_method): If method is static (and
16377 not private) call _Jv_InitClass.
16378 * expr.c (expand_invoke): Don't call build_class_init.
16379
16380 * jvspec.c (jvgenmain_spec): Fix spec for generated .o file.
16381
62c9aa5f 163821998-09-10 Jeffrey A Law (law@cygnus.com)
76f42086
JL
16383
16384 * Make-lang.in (GCJ): Define before using.
16385
62c9aa5f 163861998-09-09 Jeffrey A Law (law@cygnus.com)
71d05349
JL
16387
16388 * gjavah.c (java_no_argument): Renamed from no_argument to avoid
16389 losing due to namespace pollution in GNU getopt.h
16390
62c9aa5f 163911998-09-09 Tom Tromey <tromey@cygnus.com>
232e6c7c
TT
16392
16393 * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
16394 (java.all.cross): Likewise.
16395 (java.rest.encap): Likewise.
16396
62c9aa5f 163971998-09-08 Jeffrey A Law (law@cygnus.com)
e742fecc
JL
16398
16399 * gjavah.c (print_class_decls): Fix thinko in arglist
16400 * jcv-io.c (find_classfile): Similarly.
16401
62c9aa5f 164021998-09-07 Jeffrey A Law (law@cygnus.com)
5db17173
JL
16403
16404 * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
16405
62c9aa5f 164061998-09-05 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16407
16408 * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
16409 (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
16410 * Makefile.in (PARSE_C): New macro.
16411 (PARSE_H): Likewise.
16412 (PARSE_SCAN_C): Likewise.
16413 ($(PARSE_C)): Target renamed from parse.c.
16414 ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
16415 (clean): Remove parse-scan.c as well.
16416 (parse.o): Depend on $(PARSE_C).
16417
62c9aa5f 164181998-09-05 Anthony Green <green@cygnus.com>
6d6044b0
PB
16419
16420 * README, license.terms: Removed.
16421
16422 * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
16423 decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
16424 javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
16425 jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
16426 keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
16427 lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
16428 verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
16429 and Java trademark attribution.
16430
62c9aa5f 164311998-09-04 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16432
16433 * Makefile.in: Use gcjh, not gjavah.
16434 * config-lang.in (stagestuff): Use gcjh, not gjavah.
16435 * Make-lang.in: Changed gjavah to gcjh everywhere.
16436
62c9aa5f 164371998-09-03 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16438
16439 * gjavah.c: Support new -prepend -add -append flags.
f6bbde28 16440 (print_method_info): Method is not virtual if class is final.
6d6044b0 16441
62c9aa5f 164421998-09-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16443
16444 * jv-scan.c: Fixed copyright assignment.
16445 * keyword.gperf: Likewise.
16446 * keyword.h: Likewise.
16447 * lex.c: Fixed copyright assignment.
16448 (java_lex): Push unicode back when parsing '<'.
16449 * lex.h: Fixed copyright assignment.
16450 * parse-scan.y: Likewise.
16451 * parse.h: Fixed copyright assignment.
16452 (build_debugable_stmt, complete_for_loop): New function prototypes.
16453 * parse.y: Fixed copyright assignment.
16454 (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
e64c46ce 16455 size_zero_node when completing a loop with no exit condition.
6d6044b0
PB
16456 (for_statement_nsi:): Define action.
16457 (for_init:, for_update:): Return size_zero_node when empty.
16458 (declare_local_variables): Call build_debugable_stmt.
16459 (build_debugable_stmt): New function.
16460 (build_loop_body): Build debugable statement around loop
e64c46ce 16461 condition part.
6d6044b0
PB
16462 (complete_loop_body): Take into account the debugable statement
16463 around the EXIT_EXPR.
16464 (complete_loop_body): New function.
16465 (patch_exit_expr): Fixed condition inversion.
16466
62c9aa5f 164671998-09-02 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16468
16469 * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
16470 name of thread define.
16471 * jvspec.c (THREAD_NAME): New macro.
16472 (GCLIB): Likewise.
16473 (THREADLIB): Likewise.
16474 (lang_specific_driver): Recognize attempt to link with thread
16475 library or gc library. Recognize -ljava on command line so it
16476 isn't linked against more than once.
16477
62c9aa5f 164781998-09-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16479
16480 * parse-scan.y (report_main_declaration): Name of the class
e64c46ce 16481 containing `main' can be a qualified name.
6d6044b0 16482
62c9aa5f 164831998-08-31 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16484
16485 * config-lang.in: Changed gjavac to gjc everywhere.
16486 * Make-lang.in: Changed gjavac to gjc everywhere.
16487
62c9aa5f 164881998-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16489
16490 * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
16491 (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
16492 and install the files.
16493 * Makefile.in (JAVA_OBJS_LITE): New variable.
16494 (compiler:): Now include jv-scan as a dependency.
16495 (../jv-scan$(exeext), parse-scan.c): New targets.
16496 (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
16497 * config-lang.in (compilers): Removed gcj, gjavah from the list.
16498 * jcf-parse.c (parse_source_file): Call java_layout_classes and
e64c46ce 16499 check for errors even if parse_only.
6d6044b0 16500 * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
e64c46ce 16501 defined.
6d6044b0
PB
16502 (yylex): New function. Uses java_lex body.
16503 (java_lex): Removed commented out statement. Remove local variable
e64c46ce
AJ
16504 literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
16505 appropriate. Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
16506 DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
16507 SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
16508 if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
16509 SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
16510 where appropriate.
6d6044b0
PB
16511 (java_lex_error): Empty if JC1_LITE is defined.
16512 (java_get_line_col): Return 0 if JC1_LITE is defined.
16513 * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
e64c46ce
AJ
16514 SET_MODIFIER_CTX): Moved into the section containing the macros
16515 conditionally defined by JC1_LITE.
6d6044b0 16516 (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
e64c46ce 16517 argument if JC1_LITE is defined.
6d6044b0 16518 (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
e64c46ce
AJ
16519 REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
16520 is defined.
6d6044b0 16521 (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
e64c46ce
AJ
16522 FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
16523 SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
16524 to different values according to JC1_LITE.
6d6044b0 16525 * parse.h (int_fits_type_p, stabilize_reference): Prototype not
e64c46ce 16526 declared if JC1_LITE set.
6d6044b0 16527 (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
e64c46ce 16528 defined if JC1_LITE not set.
6d6044b0 16529 (struct parser_ctx): Reorganized and skip the jc1 front end part
e64c46ce 16530 if JC1_LITE set.
6d6044b0
PB
16531 (java_layout_classes): New function definition.
16532 (java_push_parser_context, java_init_lex, yyparse, yylex,
e64c46ce
AJ
16533 yyerror): Prototype always declared. All other static function
16534 prototypes declared only if JC1_LITE is not set.
6d6044b0 16535 * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
e64c46ce 16536 declared in parse.h.
6d6044b0 16537 (java_layout_classes): New function.
e64c46ce 16538 (java_complete_expand_methods): No longer layout the class here.
6d6044b0
PB
16539 * parse-scan.y: New file.
16540 * jv-scan.c: New file.
16541
62c9aa5f 165421998-08-25 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16543
16544 * gjavah.c (main): Handle -friend option.
16545 (friend_specs): New global.
16546 (generate_access): Handle friend_specs.
16547 (process_file): Likewise.
16548 (MAX_FRIENDS): New macro.
16549 (friend_count): New global.
16550 (print_cxx_classname): Added `prefix' argument. Ignore arrays.
16551 Changed all callers.
16552
62c9aa5f 165531998-08-24 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16554
16555 * jcf-dump.c (process_class): Move JCF_FINISH use to main,
16556 (main): Handle processing all the entries of a named .zip archive.
16557 * jcf-io.c (jcf_trim_old_input): New function.
16558 * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le): New macros.
16559
62c9aa5f 165601998-08-24 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16561
16562 * lang.c (flag_assume_compiled): Make default be on.
16563
62c9aa5f 165641998-08-21 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16565
16566 * jcf-dump.c: Add bunches of flags to control output more.
16567 (process_class): New function; support printing more than one class.
16568 (main): Support new --print-main and --javap flags.
16569 * jcf-reader.c (IGNORE_ATTRIBUTE): New hook.
16570 * jcf.h (CPOOL_INDEX_IN_RANGE): New macro.
16571
62c9aa5f 165721998-08-20 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16573
16574 Change mangling of dispatch table to match C++ vtable (w/thunks).
16575 * class.c (build_dtable_decl), java-tree.h: New function.
16576 (make_class_data): Call it.
16577 * decl.c (init_decl_processing): Likewise.
16578
62c9aa5f 165791998-08-19 Warren Levy <warrenl@cygnus.com>
6d6044b0
PB
16580
16581 * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
e64c46ce 16582 soft_anewarray; adjust args passed.
6d6044b0 16583 * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
e64c46ce 16584 match _Jv_NewObjectArray.
f6bbde28 16585
62c9aa5f 165861998-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16587
16588 * decl.c (push_labeled_block, pop_labeled_block): New functions.
16589 * expr.c (loopup_label): Call create_label_decl.
16590 (create_label_decl): New function.
16591 (java_lang_expand_expr): Call expand_start_bindings with argument
e64c46ce 16592 set to zero.
6d6044b0 16593 * java-tree.h Added space after PROTO in function declarations
e64c46ce 16594 when necessary.
6d6044b0
PB
16595 (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
16596 (create_label_decl, push_labeled_block): New function
e64c46ce 16597 declarations.
6d6044b0
PB
16598 * lex.c (label_id): Initialize.
16599 (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
e64c46ce 16600 switch.
6d6044b0 16601 * parse.h Added space after PROTO in function declarations when
e64c46ce 16602 necessary.
6d6044b0 16603 (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
e64c46ce
AJ
16604 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
16605 LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
16606 PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
16607 macros.
6d6044b0 16608 (struct parser_ctxt): New fields current_loop,
e64c46ce 16609 current_labeled_block.
6d6044b0 16610 (build_if_else_statement, patch_if_else_statement,
e64c46ce
AJ
16611 add_stmt_to_compound, patch_exit_expr, build_labeled_block,
16612 generate_labeled_block, complete_labeled_statement,
16613 build_bc_statement, patch_bc_statement, patch_loop_statement,
16614 build_new_loop, build_loop_body, complete_loop_body): New function
16615 declarations.
6d6044b0
PB
16616 * parse.y (java_warning_count): New global variable.
16617 (label_id): New static variable.
16618 (BREAK_TK, CONTINUE_TK): Token tagged <operator>.
16619 (block:): Return size_zero_node when block is empty.
16620 (empty_statement:): Return size_zero_node.
16621 (statement:): Implement supplemental action when for_statement: is
e64c46ce 16622 reduced.
6d6044b0
PB
16623 (label_decl:): New rule.
16624 (labeled_statement:): Rewritten using label_decl. Actions
e64c46ce 16625 implemented.
6d6044b0
PB
16626 (labeled_statement_nsi:): Likewise.
16627 (if_then_statement): Actions implemented.
16628 (while_expression): New rule.
16629 (while_statement:): Rewritten using while_expression. Actions
e64c46ce 16630 implemented.
6d6044b0
PB
16631 (while_statement_nsi:): Likewise.
16632 (do_statement_begin:): New rule.
16633 (do_statement:): Rewritten using do_statement_begin. Actions
e64c46ce 16634 implemented.
6d6044b0
PB
16635 (for_statement:): Rewritten using for_begin. Actions implemented.
16636 (for_statement_nsi:): Likewise.
16637 (for_header:, for_begin:): New rules.
16638 (for_init:): Actions implemented.
16639 (statement_expression_list:, break_statement:,
e64c46ce 16640 continue_statement:): Likewise.
6d6044b0
PB
16641 (yyerror): Count number of issued warning(s).
16642 (java_report_errors): Report error(s) and/or warning(s).
16643 (java_complete_class): Use build_java_argument_signature to
e64c46ce 16644 recompute completed method signature.
6d6044b0 16645 (java_check_regular_methods): New locals method_wfl and aflags.
e64c46ce
AJ
16646 Use method_wfl instead of lookup_cl during error reports. Fixed
16647 indentation and modified some error messages. Use
16648 lang_printable_name in method instead of the DECL_NAME. New code
16649 to issue warnings on methods not overriding corresponding methods
16650 private to a different package.
6d6044b0
PB
16651 (java_method_add_stmt): Call add_stmt_to_compound.
16652 (add_stmt_to_compound): New function.
16653 (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
e64c46ce 16654 LOOP_EXPR, EXIT_EXPR and COND_EXPR.
6d6044b0 16655 (build_if_else_statement, patch_if_else_statement,
e64c46ce
AJ
16656 build_labeled_block, generate_labeled_block,
16657 complete_labeled_statement, build_new_loop, build_loop_body,
16658 complete_loop_body, patch_loop_statement, build_bc_statement,
16659 patch_bc_statement, patch_exit_expr): New functions.
6d6044b0 16660 * typeck.c (build_java_signature): Build argument signature before
e64c46ce 16661 enclosing it in between parenthesis.
f6bbde28 16662
62c9aa5f 166631998-08-17 Warren Levy <warrenl@cygnus.com>
6d6044b0
PB
16664
16665 * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
e64c46ce 16666 (JAVA_OBJS): Added reminder comment
6d6044b0 16667
62c9aa5f 166681998-08-13 Nick Clifton <nickc@cygnus.com>
6d6044b0
PB
16669
16670 * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
16671 be interpreted as a long long.
16672
62c9aa5f 166731998-08-13 Warren Levy <warrenl@cygnus.com>
6d6044b0
PB
16674
16675 * decl.c (init_decl_processing): Use _Jv_InitClass, not
e64c46ce
AJ
16676 soft_initialise_class. Use _Jv_NewMultiArray, not
16677 soft_multianewarray. Use _Jv_ThrowBadArrayIndex, not
16678 soft_badarrayindex. Use _Jv_CheckCast, not soft_checkcast. Use
16679 _Jv_CheckArrayStore, not soft_checkarraystore. Use
16680 _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
f6bbde28 16681
62c9aa5f 166821998-08-12 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16683
16684 * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
16685 length_identifier_node): New global tree node constants.
16686 * parse.y (kw_super, kw_this, kw_length): Removed globals.
16687 Replace uses by super_identifier_node etc.
16688 * lex.c (kw_super, kw_this, kw_length): Don't initialize.
16689
16690 * parse.y (resolve_field_access): Don't special-case ".length" if
16691 flag_emit_class_files.
16692 (patch_array_ref): Leave as ARRAY_REF if flag_emit_class_files.
16693 * jcf-write.c (generate_bytecode_insns): Handle ARRAY_REF opcode
16694 and ARRAY.length.
16695
62c9aa5f 166961998-08-11 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16697
16698 * decl.c (init_decl_processing): Remove unused method_type_node fields.
16699 * class.c (make_method_value): Remove init for removed fields.
16700
16701 * class.c (layout_class): Use build_java_argument_signature.
16702 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): New macro.
16703
16704 * typeck.c (push_java_argument_signature): Removed. Merged into ...
16705 (build_java_argument_signature): Use TYPE_ARGUMENT_SIGNATURE cache.
16706 (build_java_signature): Don't use push_java_argument_signature.
16707
16708 * typeck.c (lookup_argument_method): New function.
16709 * parse.y (java_check_regular_methods): Use lookup_argument_method
16710 instead of lookup_java_method2 followed by lookup_java_method.
f6bbde28 16711
6d6044b0 16712 * parse.y (check_method_redefinition): Minor optimization.
f6bbde28 16713
6d6044b0
PB
16714 * jcf-write.c (generate_bytecode_insns): Handle RETURN_EXPR,
16715 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
16716
62c9aa5f 167171998-08-10 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16718
16719 * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
16720 c-pragma.o.
16721
16722 * gjavah.c (java_float_finite): Use K&R-style definition.
16723 (java_double_finite): Likewise.
16724 (generate_access): Now returns void. Changed all callers.
16725 (last_access_generated): Removed.
16726 (process_file): Only make a single pass over the .class file.
16727
62c9aa5f 167281998-07-29 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16729
16730 * class.c (get_dispatch_table): Add extra dummy vtable entry,
16731 for compatibility for G++ (with -fvtable-thunks).
16732 * expr.c (build_invokevirtual): Add one for extra dummy vtable entry.
16733
16734 * gjavah.c (process_file): Use public inheritance for super-class.
16735
62c9aa5f 167361998-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16737
16738 * lex.c (java_init_lex): Initialize ctxp->package.
16739 * parse.h (struct parser_ctxt): package and package_len replaced
e64c46ce
AJ
16740 by tree package, an identifier node. Field method_decl_list is
16741 gone. Fixed comments.
6d6044b0 16742 (lookup_field_wrapper, merge_qualified_name, not_accessible,
e64c46ce 16743 class_in_current_package): New function prototypes.
6d6044b0 16744 * parse.y (array_type:): Set class loaded flag on primitive type
e64c46ce 16745 arrays.
6d6044b0 16746 (package_declaration:): Assign ctxp->package to the
e64c46ce 16747 identifier node.
6d6044b0 16748 (method_invocation:): Handle invocation of method qualified by
e64c46ce 16749 `super'.
6d6044b0
PB
16750 (single_type_import_declaration:): Removed ambiguity check.
16751 (java_pop_parser_context): New local variable `next'. Reset and
e64c46ce
AJ
16752 set IMPORT_CLASSFILE_NAME flags on current and previous import
16753 list.
6d6044b0
PB
16754 (java_accstring_lookup): Use new local macro COPY_RETURN.
16755 (lookup_field_wrapper): New function.
16756 (parser_qualified_classname): Use merge_qualified_name.
16757 (parser_check_super_interface): Broaden error message.
16758 (do_resolve_class): Check for qualified class name in the current
e64c46ce 16759 compilation unit if appropriate.
6d6044b0
PB
16760 (process_imports): Check for already defined classes.
16761 (check_pkg_class_access): Got rid of call to
e64c46ce 16762 get_access_flags_from_decl.
6d6044b0 16763 (java_complete_expand_methods): Call safe_layout_class based on
e64c46ce 16764 the current class size.
6d6044b0 16765 (make_qualified_primary): Build a WFL qualification on primary if
e64c46ce 16766 none exists.
6d6044b0
PB
16767 (merge_qualified_name): New function.
16768 (make_qualified_name): Use merge_qualified_name.
16769 (resolve_expression_name): Use safe_lookup_field.
16770 (resolve_field_access): Got rid of call to get_access_flags_from_decl.
16771 (resolve_qualified_expression_name): Likewise. Check on resolved
e64c46ce 16772 element accessibility.
6d6044b0
PB
16773 (not_accessible_p, class_in_current_package): New functions.
16774 (maybe_access_field): Got rid of call to get_access_flags_from_decl.
16775 (patch_method_invocation_stmt): Merged common pieces. Check
e64c46ce 16776 accessibility of invoked method.
6d6044b0 16777 (check_for_static_method_reference): Add returned type in error
e64c46ce 16778 message.
6d6044b0
PB
16779 (invocation_mode): Get rid of bogus check on PRIVATE methods.
16780 (refine_accessible_methods_list): Merged two conditions in test.
16781 (java_complete_class): Sanity check on stabilize_ref gone.
16782 * zextract.c (read_zip_archive): Cast lseek second argument to long.
f6bbde28 16783
62c9aa5f 167841998-07-28 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16785
16786 * class.c (hashUtf8String): Fix - use new JavaSoft specification.
16787
62c9aa5f 167881998-07-24 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16789
16790 * gjavah.c (F_NAN): Removed.
16791 (F_NAN_MASK): New macro.
16792 (F_POSITIVE_INFINITY): Removed.
16793 (F_NEGATIVE_INFINITY): Likewise.
16794 (java_float_finite): Rewrote.
16795 (D_NAN_MASK): Renamed.
16796 (java_double_finite): Rewrote.
16797 (D_POSITIVE_INFINITY): Removed.
16798 (D_NEGATIVE_INFINITY): Likewise.
16799
16800 * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
16801 If verbose, print underlying representation of value in hex.
16802
62c9aa5f 168031998-07-24 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16804
16805 * buffer.h, buffer.c: New files.
16806 * Makefile.in (JAVA_OBJS): Add buffer.o.
16807
16808 Support locals variables and writing their debug entries to .class.
16809 * jcf-write.c: Simplify some by user new buffer type.
16810 (vode_buffer_grow): Removed.
16811 (struct localvar_info): New type.
16812 (localsvars, localvartable): New buffers.
16813 (localvar_alloc, localvar_free): New functions.
16814 (generate_bytecode_insns): Handle local variables.
16815 (generate_classfile): Write LocalVariableTable attribute.
16816
62c9aa5f 168171998-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16818
16819 * jcf-io.c (open_in_zip): Check the zipfile magic number.
16820 * zipfile.h (ZIPMAGIC): New macro.
16821
62c9aa5f 168221998-07-24 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16823
16824 * Makefile.in (gjavah.o): Updated dependencies.
16825 (jcf-dump.o): Likewise.
16826 (all.indirect): Use ../gjavah.
16827 (../gjavah$(exeext)): Likewise.
16828 (clean): Don't remove gjavah.
16829 (clean): Remove parse.c, not java/parse.c.
16830 * Make-lang.in (java): Added gjavah.
16831 (gjavah$(exeext)): New target.
16832 (GJAVAH_SOURCES): New macro.
16833 (java.all.build): Added gjavah.
16834 (java.all.cross): Likewise.
16835 (java.rest.encap): Likewise.
16836 * config-lang.in (compilers, stagestuff): Added gjavah.
16837
62c9aa5f 168381998-07-23 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16839
16840 * gjavah.c (java_float_finite): New function.
16841 (java_double_finite): Likewise.
16842 (F_POSITIVE_INFINITY): New macro.
16843 (F_NEGATIVE_INFINITY): Likewise.
16844 (F_NAN): Likewise.
16845 (D_POSITIVE_INFINITY): Likewise.
16846 (D_NEGATIVE_INFINITY): Likewise.
16847 (D_NAN): Likewise.
16848 (print_field_info): Use java_float_finite and java_double_finite.
16849
62c9aa5f 168501998-07-23 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16851
16852 * parse.y (method_header): Name "this" implicit argument.
16853
62c9aa5f 168541998-07-22 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16855
16856 * jcf-write.c: Write out LineNumberTable attribute in .class file.
e64c46ce 16857 (linenumber_buffer, linenumber_ptr, linenumber_limit): New statics.
6d6044b0
PB
16858 (put_linenumber): New function.
16859 (generate_bytecode_insns, generate_classfile): Write line numbers.
16860
62c9aa5f 168611998-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16862
16863 * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
16864 (lookup_name, build_known_method_ref, build_class_init,
e64c46ce
AJ
16865 build_invokevirtual, invoke_build_dtable, match_java_method,
16866 build_field_ref, pushdecl_force_head, build_java_binop,
16867 binary_numeric_promotion, build_decl_no_layout,
16868 build_java_arrayaccess, build_newarray, build_anewarray,
16869 build_java_array_length_access, build_java_arraynull_check): New
16870 extern function prototypes.
6d6044b0 16871 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
e64c46ce
AJ
16872 JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
16873 java-tree.h.
6d6044b0 16874 * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
f6bbde28 16875 to NULL
6d6044b0
PB
16876 * jcf.h (jcf_out_of_synch): New extern function prototype.
16877 * parse.h: Static/global function implemented in parse.y
e64c46ce 16878 prototyped and declarations moved at the end of the file.
6d6044b0
PB
16879 (DECL_P): Check that the argument isn't null.
16880 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
e64c46ce 16881 JAVA_THIS_EXPR): No longer defined here. See java-tree.h
6d6044b0
PB
16882 (QUAL_DECL_TYPE): New macro.
16883 (PARAMS): Macro definition removed.
16884 * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
16885 (return_statement:): Call build_return.
16886 (field_access:): Call make_qualified_primary in sub rule.
16887 (method_invocation:): Build method invocation and call
e64c46ce 16888 make_qualified_primary when processing primaries.
6d6044b0 16889 (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
e64c46ce 16890 get_type_from_signature.
6d6044b0 16891 (java_check_regular_method): Extra integer 0 argument when calling
e64c46ce 16892 lookup_java_method2.
6d6044b0 16893 (lookup_java_interface_method2): Extra method DECL argument when
e64c46ce 16894 calling lookup_java_interface_method2.
6d6044b0 16895 (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
e64c46ce 16896 COMPOUND_EXPR node.
6d6044b0 16897 (java_complete_expand_method): Layout current class iff not
e64c46ce 16898 already done. Don't process interface's methods.
6d6044b0 16899 (java_complete_expand_method): Use super class only if it
e64c46ce 16900 exists. Use current class otherwise.
6d6044b0
PB
16901 (make_qualified_primary): New function.
16902 (resolve_expression_name): Process qualified expression or
e64c46ce 16903 expression from primary the same way.
6d6044b0 16904 (resolve_expression_name): Two last arguments to
e64c46ce 16905 resolve_field_access are now NULL_TREEs.
6d6044b0 16906 (resolve_field_access): New variable is_static. Local field must
e64c46ce
AJ
16907 be DECLs. is_static computed on field DECLs only. Append code in
16908 where_found to the field access if necessary. Use QUAL_DECL_TYPE
16909 to initialize field_type.
6d6044b0 16910 (resolve_qualified_expression_name): New local variable,
e64c46ce
AJ
16911 previous_call_static and is_static. Handle primaries with function
16912 calls, casts, array references and `this'. `super' now handled as
16913 `(super_class)this'. Use is_static to clarify boolean expressions.
16914 Added code to handle case where a proper handle is required to
16915 access a field. Use QUAL_DECL_TYPE where applicable.
6d6044b0
PB
16916 (maybe_access_field): New function.
16917 (patch_method_invocation_stmt): New arguments primary, where,
e64c46ce
AJ
16918 is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
16919 deleted. Use `where' as a type to search from if specified. Check
16920 for static method reference where forbidden. Append primary or
16921 current_this to the argument list if not calling constructor nor
16922 static methods.
6d6044b0
PB
16923 (check_for_static_method_reference): New function.
16924 (patch_invoke): Layout the class on which new is done if
e64c46ce 16925 necessary.
6d6044b0 16926 (lookup_method_invoke): Changed format to report errors on
e64c46ce 16927 methods.
6d6044b0 16928 (qualify_ambiguous_name): New local variable this_found. Now
e64c46ce
AJ
16929 handle things from primaries. Method call are considered
16930 expression names.
6d6044b0 16931 (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
e64c46ce 16932 changed into NULLs.
6d6044b0
PB
16933 (not_initialized_as_it_should_p): Comply with the new DECL_P.
16934 (java_complete_tree): New case fo RETURN_EXPR. Process function
e64c46ce 16935 call arguments in separate function.
6d6044b0
PB
16936 (complete_function_arguments): New function.
16937 (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
e64c46ce 16938 anymore.
6d6044b0 16939 (patch_assignment): Take the return function slot into account as
e64c46ce 16940 a RHS. Distinguish assignment from a return.
6d6044b0 16941 (valid_ref_assignconv_cast_p): Use build_java_argument_signature
e64c46ce 16942 when checking methods in interfaces.
6d6044b0 16943 (resolve_type_during_patch): NULL argument to unresolve_type_p
e64c46ce 16944 instead of NULL_TREE.
6d6044b0
PB
16945 (patch_newarray): Fixed typo in comment.
16946 (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
16947 (build_return, patch_return): New functions.
16948 * typeck.c (lookup_java_constructor): Fixed typo in comment.
f6bbde28 16949
62c9aa5f 169501998-07-21 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
16951
16952 * constants.c (find_name_and_type_constant, find_fieldref_index,
16953 find_methodref_index): New methods.
16954 * expr.c (build_invoke_non_interface): If flag_emit_class_files,
16955 just return given method. Also, rename to build_known_method_ref.
16956 (expand_invoke): Rename call to build_invoke_non_interface.
16957 * java-tree.h, parse.h: Update prototype.
16958 * parse.y, decl.c, jcf-parse.c: Suppress calls to back-end functions
e64c46ce 16959 (such as expand_expr_stmt) if flag_emit_class_files.
6d6044b0
PB
16960 * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
16961 STACK_TARGET, IGNORE_TARGET): New macros.
e64c46ce 16962 (code_buffer, code_ptr, code_limit, code_S, code_SP_max): New globals.
6d6044b0
PB
16963 (generate_bytecode_insn): New function to generate method's bytecode.
16964 (generate_classfile): Node generate Code attribute for a method.
16965 (code_buffer_grow, push_constant1, push_constant2, push_int_const,
16966 push_long_const, field_op, adjust_typed_op, maybe_wide):
16967 New functions used by generate_bytecode_insn.
f6bbde28 16968
6d6044b0
PB
16969 * typeck.c (signature_include_return): Remove variable.
16970 (push_java_argument_signature, build_java_argument_signature): New.
16971 (build_java_signature): Use push_java_argument_signature.
16972 * parse.y: Use build_java_argument_signature instead of fiddling
16973 with signature_include_return.
16974
62c9aa5f 169751998-07-17 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
16976
16977 * gjavah.c (print_c_decl): Always generate JArray<>* for array
16978 types.
16979
16980 * Makefile.in (all.indirect): Added gjavah$(exeext).
16981 (gjavah$(exeext)): Added $(exeext).
16982 (clean): Likewise.
16983
62c9aa5f 169841998-07-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
16985
16986 * class.c (layout_class): Call to java_layout_parsed_class replace
e64c46ce 16987 by safe_layout_class.
6d6044b0 16988 * expr.c (build_java_array_length_access): Removed static storage
e64c46ce 16989 class in the function definition.
f6bbde28 16990 (build_java_arraynull_check): Likewise.
6d6044b0
PB
16991 Also fixed typos in two comments.
16992 * lex.c (java_init_lex): Initialize static global kw_length.
16993 (java_lex): Use BUILD_OPERATOR on RETURN_TK.
16994 * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
e64c46ce 16995 java_lex_error.
6d6044b0
PB
16996 (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
16997 * parse.h (resolve_no_layout): New static function declaration.
16998 (get_identifier_in_static): Declaration removed.
16999 (java_layout_parsed_class): Function name declaration changed to
e64c46ce 17000 safe_layout_class.
6d6044b0 17001 (build_newarray_node, patch_newarray, resolve_type_during_patch,
e64c46ce
AJ
17002 not_initialized_as_it_should_p, build_this): New static function
17003 declarations.
6d6044b0 17004 (pushdecl_force_head, build_java_binop, int_fits_type_p,
e64c46ce
AJ
17005 binary_numeric_promotion, stabilize_reference,
17006 build_decl_no_layout, build_java_arrayaccess): Extern function
17007 declarations moved into their own section.
6d6044b0 17008 (build_newarray, build_anewarray, build_java_array_length_access,
e64c46ce 17009 build_java_arraynull_check): New extern function declarations.
6d6044b0
PB
17010 (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
17011 (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
e64c46ce 17012 fake tree codes.
6d6044b0
PB
17013 (CALL_CONSTRUCTOR_P): New macro.
17014 * parse.y (kw_length): New static global tree node.
17015 (return_statement): Tagged <node>.
17016 (RETURN_TK): Tagged <operator>.
17017 (variable_declarator_id:): Build variable declaration with an
e64c46ce
AJ
17018 empty initialization value if a syntax error was found in the
17019 initialization part of the variable declaration.
6d6044b0 17020 (statement_without_trailing_substatement:): return_statement: now
e64c46ce 17021 uses the default rule.
6d6044b0
PB
17022 (return_statement:): Temporarily fixed to return NULL_TREE.
17023 (primary_no_new_array:): Call build_this when THIS_TK was parsed.
17024 (class_instance_creation_expression:): Class creation rules now
e64c46ce 17025 call build_method_invocation upon reduction.
6d6044b0 17026 (array_creation_expression:): Rules call build_newarray_node upon
e64c46ce 17027 reduction.
6d6044b0
PB
17028 (dim_exprs:): Build a list of dimension expressions.
17029 (dim_expr:): Store location of the OSB_TK in the dimension
e64c46ce 17030 expression node.
6d6044b0
PB
17031 (method_invocation:): Added a new error rule.
17032 (build_unresolved_array_type): WFL argument may also be an array
e64c46ce 17033 on a primitive type. Name of the argument changed to reflect this.
6d6044b0 17034 (method_declarator): Insert argument type at the beginning of the
e64c46ce 17035 argument type list and later reverse the list.
6d6044b0 17036 (unresolved_type_p): Argument 'returned' may be optionally
e64c46ce 17037 NULL_TREE.
6d6044b0 17038 (java_layout_class_from_source): Function renamed
e64c46ce 17039 safe_layout_class.
6d6044b0 17040 (resolve_and_layout): Now call resolve_no_layout and
e64c46ce 17041 safe_layout_class.
6d6044b0
PB
17042 (resolve_no_layout): New function.
17043 (purify_type_name): New function.
17044 (complete_class_report_errors): Call purify_type_name during error
e64c46ce 17045 report on a type not found.
6d6044b0 17046 (process_imports): error_found local variable doesn't need to be
e64c46ce 17047 initialized to zero.
6d6044b0 17048 (declare_local_variables): New local type_wfl. Fixed typo in error
e64c46ce
AJ
17049 message. type_wfl assigned to unresolved type and used to register
17050 incomplete type. Build a WFL around the variable initialization
17051 statement so that debug info can be generated on it.
6d6044b0 17052 (source_start_java_method): Reverse argument list after they've
e64c46ce 17053 been processed.
6d6044b0
PB
17054 (current_this): New static global variable.
17055 (java_complete_expand_methods): Set current_this when appropriate.
17056 (resolve_expression_name): Build correct static and non static
e64c46ce 17057 field access bearing a simple name.
6d6044b0 17058 (resolve_field_access): Resolve the length field of arrays. Handle
e64c46ce 17059 f.m() cases.
6d6044b0 17060 (patch_method_invocation_stmt): Set the type of the method
e64c46ce
AJ
17061 invocation to error_mark_node. This value is later overridden by a
17062 valid type, if any. Don't handle qualified constructor invocation
17063 as qualified method invocation. Call lookup_method_invoke with its
17064 new flag. It's no longer necessary to access the selected method
17065 as the value of a tree list. Handle constructor invocation.
6d6044b0 17066 (patch_invoke): Reverse argument list when invoking non interface
e64c46ce
AJ
17067 methods. Insert call to new as the first argument of the
17068 constructor.
6d6044b0 17069 (invocation_mode): Return a INVOKE_STATIC is the invoked method is
e64c46ce
AJ
17070 defined within a final class. Return INVOKE_STATIC if the invoked
17071 method is a constructor.
6d6044b0 17072 (lookup_method_invoke): New lc argument is a flag to indicate a
e64c46ce
AJ
17073 constructor lookup. Now handle constructor lookup. Choose the most
17074 specific method in case several were matching the invocation
17075 requirements. Return a method decl instead of a tree list featuring
17076 one single method decl element.
6d6044b0 17077 (refine_accessible_methods_list): New lc flag argument to
e64c46ce 17078 indicate that a constructor is being looked up.
6d6044b0
PB
17079 (not_initialized_as_it_should_p): New function.
17080 (java_complete_tree): Now process fake tree codes
e64c46ce
AJ
17081 JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
17082 save_expr on resolved function call arguments. Case on
17083 UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
6d6044b0 17084 (patch_assignment): LHS can be a field access expression. When
e64c46ce
AJ
17085 dealing with reference, lhs_type is the promoted type of the
17086 rhs_type, not the RHS. Use not_initialized_as_it_should_p where
17087 applicable.
6d6044b0
PB
17088 (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
17089 (patch_binop): Use not_initialized_as_it_should_p where
e64c46ce 17090 applicable.
6d6044b0
PB
17091 (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
17092 (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
e64c46ce 17093 where applicable.
6d6044b0
PB
17094 (resolve_type_during_patch): New function.
17095 (patch_cast): Call resolve_type_during_patch to resolve type and
e64c46ce 17096 report error accordingly.
6d6044b0 17097 (patch_array_ref): Use not_initialized_as_it_should_p where
e64c46ce
AJ
17098 applicable. Array base expression is saved before being
17099 used. Promote the type of an array elements if it contains non
17100 builtin types.
6d6044b0
PB
17101 (build_newarray_node, patch_newarray, build_this): New functions.
17102
62c9aa5f 171031998-07-16 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
17104
17105 * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
17106 increment it in `for' statement.
17107 (print_field_info): If number is inf or nan, don't print it.
17108 (print_method_info): If method name is `delete', just ignore it.
17109 (print_c_decl): Special-case jstringArray.
17110
17111 * gjavah.c (help): New function.
17112 (no_argument): New function.
17113 (usage): Changed text.
17114 (main): Rewrote argument handling. Now handles -v, --help,
17115 --version.
17116 (version): New function.
17117 (found_error): New global.
17118 (main): Return found_error.
17119 (generate_access): Set found_error.
17120 (print_c_decl): Likewise.
17121
62c9aa5f 171221998-07-15 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
17123
17124 * gjavah.c (print_c_decl): Don't print "," when examining field.
17125 Skip type name when looking at "[L" types.
17126 (process_file): Now static.
17127 (generate_access): Now returns int.
17128 (last_access_generated): New global.
17129 (process_file): Clear last_access_generated; make multiple passes
17130 over the class.
17131 (print_field_info): Just return if generate_access returns true.
17132 (print_method_info): Likewise. Also, allow <init> functions to
17133 pass through.
17134 (print_c_decl): Added is_init argument. Print constructors
17135 properly.
17136 (print_cxx_classname): Use UTF8_GET to extract characters from
17137 string.
17138 (print_base_classname): New function.
17139 (print_class_decls): New function.
17140 (process_file): Use it.
17141 (utf8_cmp): New function.
17142
62c9aa5f 171431998-07-13 Nick Clifton <nickc@cygnus.com>
6d6044b0
PB
17144
17145 * lang-options.h: Format changed to match changes in gcc/toplev.c
17146 to implement a --help option.
17147
171481998-07-10 Brendan Kehoe <brendan@cygnus.com>
17149
17150 * decl.c (init_decl_processing): Revert change to dtable_type.
17151
62c9aa5f 171521998-07-09 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17153
17154 * java-tree.h (CLASS_P): Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
17155
171561998-07-08 Brendan Kehoe <brendan@cygnus.com>
17157
17158 * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
17159
17160 * lang.c (lang_init): Default flag_exceptions to 1, without
17161 checking to see if it's 2 first.
17162
62c9aa5f 171631998-07-08 Jeffrey A Law (law@cygnus.com)
6d6044b0
PB
17164
17165 * constants.c: Include "system.h".
17166 * decl.c: Likewise.
17167 * lang.c (flag_new_exceptions): Get via extern now.
17168 (lang_init_options): New functions. Turn on flag_new_exceptions.
f6bbde28 17169
62c9aa5f 171701998-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17171
17172 * lex.c (java_lex): Return 0 when we see an invalid character in
e64c46ce 17173 the input.
6d6044b0
PB
17174
17175 * lex.c (java_read_char): Specify extra argument when calling
e64c46ce 17176 java_lex_error.
6d6044b0 17177 (java_read_unicode, java_parse_end_comment,
e64c46ce 17178 java_parse_escape_sequence): Likewise,
6d6044b0 17179 (java_lex): Specify extra argument when calling
e64c46ce
AJ
17180 java_lex_error. Test that IDs are beginning with a legal character
17181 for IDs. Handle invalid characters with an error message and a
17182 call to java_lex_error.
6d6044b0 17183 (java_lex_error): Adjust column position by new argument
e64c46ce
AJ
17184 `forward'. Issue an error even if in the middle of reporting an
17185 other error.
6d6044b0
PB
17186
171871998-07-07 Brendan Kehoe <brendan@cygnus.com>
17188
17189 * jcf-io.c (find_class): Zero out BUFFER before we use it, since
17190 we don't explicitly put a null pointer when we're copying it.
17191
62c9aa5f 171921998-07-07 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
17193
17194 * gjavah.c (print_cxx_classname): New function.
17195 (super_class_name): Likewise.
17196 (print_super_fields): Removed.
17197 (in_super): Removed.
17198 (print_field_info): Never generate #defines.
17199 (print_c_decl): Changed generated types to match JNI. No longer
17200 print class name before method name.
17201 (print_method_info): Print "static" before static methods.
17202 Print "virtual" before non-final methods.
17203 (usage): Use exit(1), not exit(-1).
17204 (main): Likewise.
17205 (print_field_info): Use %.17g to print a double.
17206 (last_access): New globals.
17207 (process_file): Initialize last_access.
17208 (usage): Now static.
17209 (ACC_VISIBILITY): New define.
17210 (generate_access): New function.
17211 (print_field_info): Call it.
17212 (print_method_info): Likewise. Also, generate information for all
17213 methods, not just native methods. Return void.
17214 (print_c_decl): Return void.
17215 (print_field_info): Return void.
17216
62c9aa5f 172171998-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17218
17219 * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
e64c46ce
AJ
17220 processing the jc1 grammar file. Prefix bison functions and
17221 variables with java_.
6d6044b0
PB
17222 (parse.c): Dependencies on parse.h and lex.h
17223 * expr.c (build_java_arrayaccess): Function now global.
17224 * java-tree.h: Comment reorganized to carry on previous
e64c46ce 17225 classification effort.
6d6044b0 17226 (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
e64c46ce 17227 RESOLVE_TYPE_NAME_P): New flags on WFLs.
6d6044b0 17228 * jcf-parse.c (parse_source_file): java_parse_source_file renamed
e64c46ce 17229 java_parse (new prefix java_ generated by bison).
6d6044b0 17230 (java_layout_parsed_class, java_register_parsed_class): Function
e64c46ce 17231 call removed.
6d6044b0
PB
17232 (yyparse): Removed unnecessary call to init_outgoing_cpool.
17233 * lex.c (static tree wfl_op): Variable deleted.
17234 (java_init_lex): Initialize kw_super and kw_this. Initialize more
e64c46ce 17235 ctxp fields to NULL_TREE.
6d6044b0 17236 (java_lex): No longer create WFL for operators. Filename caching
e64c46ce
AJ
17237 mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
17238 created as STRING_CST and later expanded. Removed extra argument
17239 to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
17240 and SUPER.
6d6044b0
PB
17241 (build_wfl_node): Removed code in comments.
17242 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
e64c46ce 17243 store token and location data in the current bison token.
6d6044b0 17244 * parse.h: Removed pre-processor based symbol prefixes hack. Moved
e64c46ce 17245 static/extern function declaration at the beginning of the file.
6d6044b0
PB
17246 (struct qualification): Data structure definition deleted.
17247 (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
17248 (qualify_ambiguous_name): Function declaration modified. Function
e64c46ce 17249 now returns nothing.
6d6044b0 17250 (build_array_ref, patch_array_ref, make_qualified_name,
e64c46ce
AJ
17251 resolve_qualified_expression_name, maybe_generate_clinit,
17252 resolve_field_access): New static function declarations.
6d6044b0
PB
17253 (build_java_arrayaccess): New extern function declaration.
17254 (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
17255 (CALL_EXPR_PRIMARY): Macro deleted.
17256 (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
17257 (struct parser_ctxt): Field initialized_final
e64c46ce 17258 removed. non_static_initialized, static_initialized: New fields.
6d6044b0 17259 * parse.y (static tree kw_super, static tree kw_this): New global
e64c46ce 17260 static.
6d6044b0 17261 (%union): tree wfl field of operator member replaced by int
e64c46ce 17262 location. WFLs are non longer created for operators.
6d6044b0
PB
17263 (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>.
17264 (qualified_name:): Now calls make_qualified_name to build the
e64c46ce 17265 identifier.
6d6044b0 17266 (type_declaration:): Consider generating <clinit> when class
e64c46ce 17267 parsing completed.
6d6044b0 17268 (variable_declarator:): Directly build an assignment node when the
e64c46ce 17269 variable is initialized when declared.
6d6044b0 17270 (this_or_super:): Build a WFL and set current location when THIS
e64c46ce 17271 or SUPER are parsed.
6d6044b0
PB
17272 (expression_statement:): Wrap statement around a WFL.
17273 (primary_no_new_array:): Fixed typo. Changed value returned by
e64c46ce 17274 THIS_TK because of its new type (temporary).
6d6044b0
PB
17275 (dim_exprs:): Temporary fix because of OSB_TK's new type.
17276 (field_access:): Build qualified name with SUPER.
17277 (method_invocation:): Fixed returned value because of SUPER's new
e64c46ce 17278 type.
6d6044b0
PB
17279 (array_access:): Use OSB_TK location information.
17280 (post_increment_expression:, post_decrement_expression:,
e64c46ce
AJ
17281 unary_expression:, pre_increment_expression:,
17282 pre_decrement_expression:, unary_expression_not_plus_minus:,
17283 cast_expression:, multiplicative_expression:,
17284 additive_expression:, shift_expression:, relational_expression:,
17285 equality_expression:, and_expression:, exclusive_or_expression:,
17286 inclusive_or_expression:, conditional_and_expression:,
17287 conditional_or_expression:, assignment:): Use new location/token
17288 information available on operators.
6d6044b0 17289 (create_class): Set super_decl_type to NULL_TREE when processing
e64c46ce 17290 java.lang.Object.
6d6044b0 17291 (register_fields): Field initialization is now a MODIFY_EXPR
e64c46ce 17292 node. Chain initialization code to the matching lists (according
fe0b9fb5 17293 to the field declaration modifiers).
6d6044b0
PB
17294 (maybe_generate_clinit): New function.
17295 (method_header): Don't set method's DECL_NAME to a WFL when adding
e64c46ce 17296 methods to java.lang.Object.
6d6044b0 17297 (resolve_and_layout): Now can return NULL_TREE if the type
e64c46ce
AJ
17298 resolution fails. Otherwise, return the class DECL instead of its
17299 TYPE.
6d6044b0 17300 (check_method_redefinition): Don't patch method DECL_NAME if it
e64c46ce 17301 belongs to java.lang.Object.
6d6044b0 17302 (process_imports): Simply assign error_found to the value returned
e64c46ce 17303 by check_pkg_class_access.
6d6044b0 17304 (declare_local_variables): Don't use their init statements (if
e64c46ce
AJ
17305 any) when parsing error were previously found. Reuse MODIFY_EXPR
17306 build during parsing as an init statement.
6d6044b0
PB
17307 (java_method_add_stmt): Now return the current method body.
17308 (java_layout_parsed_class, java_register_parsed_class): Functions
e64c46ce 17309 removed.
6d6044b0 17310 (java_complete_expand_methods): Initialize the constant pool on a
e64c46ce
AJ
17311 per class basis. Layout the classes before expanding their method
17312 bodies. Don't try expand artificial constructor code if error were
17313 found. Make the classes data and register them if no error were
17314 found.
6d6044b0 17315 (java_complete_expand_method): Retrieve an artificial constructor
e64c46ce
AJ
17316 argument list before entering its body. Assign the top block to
17317 the artificial constructor function body and set types of declared
17318 blocks and compound statements to void. Walk method body if not an
17319 artificial constructor.
6d6044b0
PB
17320 (make_qualified_name, cut_identifier_in_qualified): New functions.
17321 (resolve_expression_name): Fixed comments. Save/restore the
e64c46ce
AJ
17322 current class CLASS_LOADED_P flag value. Build non qualified
17323 static field access and handle qualified expression names.
6d6044b0 17324 (resolve_field_access, resolve_qualified_expression_name): New
e64c46ce 17325 functions.
6d6044b0 17326 (patch_method_invocation_stmt): Use the new expression resolution
e64c46ce
AJ
17327 scheme, calling resolve_field_access when the function call is
17328 resolved as an expression.
6d6044b0 17329 (qualify_ambiguous_name): Function rewritten to work on qualified
e64c46ce 17330 expression produced by make_qualified_name.
6d6044b0 17331 (java_complete_tree): Promote type when function's argument are
e64c46ce
AJ
17332 RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
17333 the assignment to discover further errors if RHS is a expression
17334 name that fails to evaluate. Declare LHS initialized even though
17335 the assignment failed. Don't use the location variable and removed
17336 extra argument in patch function calls. Now handle the ARRAY_REF
17337 case and build internal string representation when STRING_CSTs are
17338 walked.
6d6044b0
PB
17339 (build_method_invocation): Don't wrap function call around a WFL.
17340 (build_assignment): Likewise. Use the operator location
e64c46ce 17341 information.
6d6044b0 17342 (patch_assignment): Handle array access LHSs. Handle error
e64c46ce 17343 provenance, resulting in a better error report.
6d6044b0 17344 (build_binop): Use op_location from operator as binop location
e64c46ce 17345 information.
6d6044b0
PB
17346 (build_unaryop, build_incdec, build_cast): Likewise.
17347 (patch_binop): Extract location information from the node. Fixed
e64c46ce 17348 typo in error message.
6d6044b0
PB
17349 (patch_unary_op): Extract location information from the node.
17350 (build_array_ref, patch_array_ref): New functions.
f6bbde28 17351
62c9aa5f 173521998-07-01 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
17353
17354 * expr.c (expand_java_INSTANCEOF): Changed calling convention to
17355 match _Jv_IsInstanceOf.
17356 * decl.c (init_decl_processing): Use _Jv_NewArray, not
17357 soft_newarray. Use _Jv_IsInstanceOf, not soft_instanceof.
17358
62c9aa5f 173591998-06-30 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
17360
17361 * decl.c (init_decl_processing): Functions are now named
17362 _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
17363
62c9aa5f 173641998-06-29 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17365
17366 * java-tree.h (load_class): Add prototype.
e64c46ce 17367 * class.c (is_compiled_class): Add missing arg to load_class.
6d6044b0
PB
17368 * expr.c (expand_java_NEW): Call load_class.
17369 * parse.y (process_import): Removed bogus use of void return value.
17370
62c9aa5f 173711998-06-25 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17372
17373 * decl.c, java-tree.h (soft_athrow_node): Renamed to soft_node.
17374 Function name is "_Jv_Throw" instead of "soft_athrow".
17375 * decl.c, java-tree.h (soft_new_node): Renamed to alloc_object_node.
17376 Function name is "_Jv_AllocObject" instead of "soft_new".
17377 Takes an extra parameter (object size).
17378 * expr.c: Update calls.
17379
62c9aa5f 173801998-06-24 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17381
17382 * lex.c (java_get_line_col): Handle end-of-file.
17383 * except.c (expand_end_java_handler): Handle null type (i.e. finally).
17384
62c9aa5f 173851998-06-24 Andrew MacLeod <amacleod@cygnus.com>
6d6044b0
PB
17386
17387 * lang.c (lang_init): Make -fexceptions the default.
17388 * except.c (maybe_start_try, maybe_end_try): Don't do anything if
17389 exception handling is not turned on.
17390
62c9aa5f 173911998-06-23 Andrew MacLeod <amacleod@cygnus.com>
6d6044b0
PB
17392
17393 * lang.c (flag_new_exceptions): Make this this default.
17394 * decl.c (end_java_method): Call emit_handlers.
17395 * except.c (method_init_exceptions): Set language code and version.
f6bbde28 17396 (expand_start_java_handler): Enable exception, and call
6d6044b0
PB
17397 expand_eh_region_start.
17398 (expand_end_java_handler): Enable exception, and set up catch blocks.
17399 (emit_handlers): New routine to generate the saved handlers.
17400 * java-except.h (emit_handlers): Add prototype.
17401
62c9aa5f 174021998-06-12 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17403
17404 We used to have three different representations of the constant pool:
17405 the CPool structure, the tree_constant_pool, and the constructures
17406 used to build the Class object (which may need class and string
17407 constants) in compiled code. None were appropriate for compiling
17408 to .class files, so I did a major overhaul.
17409
17410 First, the tree_constant_pool array was removed. Things were
17411 modified to the CPool structure in the JCF could be used.
17412 Second, a "capacity" field was added to the CPool, and functions
17413 written to search for a matching constant, adding one if not found.
17414 The code that generated the Class object was changed to use a CPool.
17415 The actual TREE_LISTs used to build the CONSTRUCTORs used for
17416 the static Class object are now only in build_constants_constructor.
17417 Finally, I wrote code which can generate a .class file (including its
17418 constant pool) from the RECORD_TYPE of a class. This is a big step
17419 on the way to compiling Java source into .class files.
f6bbde28 17420
6d6044b0
PB
17421 * jcf-write.c: New file. Writes out a RECORD_TYPE as a .class file.
17422 * Makefile.in (JAVA_OBJS): Added jcf-write.o.
17423
17424 * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
17425 CONSTANT_ResolvedString, CONSTANT_ResolvedClass): New macros.
17426 (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
17427 COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
17428 (COMPONENT_REF_CLASS): Replaced by COMPONENT_REF_CLASS_INDEX.
17429 (lang_type): Removed constant_pool field.
17430 * jcf.h (CPool): Renamed size to count. Added field capacity.
17431 (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
17432 CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT): New macros.
17433 Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
17434
17435 * constants.c (current_constant_pool_tags, current_constant_pool_data,
17436 current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
17437 * constants.c (build_constants_constructor): Use new outgoing_cpool.
17438 (set_constant_entry, find_constant1, find_constant2,
17439 find_class_constant, count_constant_pool_bytes, write_constant_pool,
17440 find_utf8_constant, find_class_or_string_constant): New functions.
f6bbde28 17441
6d6044b0 17442 * jcf-parse.c (load_class): Don't save/restore tree-constant_pool.
e64c46ce 17443 (get_constant): Use current_jcf.cpool instead of tree_constant_pool.
6d6044b0
PB
17444 (give_name_to_class, get_class_constant): Likewise.
17445 * jcf-parse.c, java-tree.h (tree_constant_pool): Removed.
e64c46ce 17446 (get_name_and_type_constant, get_ref_constant): Removed.
6d6044b0
PB
17447 * parse.h (parser_ctxt): Remove field tree_constant_pool.
17448 * parse.y: Don't save/restore tree_constant_pool.
17449 * verify.c (verify_jvm_instructions): Update for new approach.
17450 * expr.c (expand_invoke, expand_java_field_op): Likewise.
17451
17452 * lang-options.h: Added -femit-class-file, -femit-class-files.
17453 * lang.c (flag_emit_class_files), java-tree.h: New flag.
17454 (lang_f_options): Added "emit-class-file(s)".
17455
17456 * expr.c (build_java_arrayaccess): Generate more efficient array
17457 bounds checking, by using unsigned compare.
17458
17459 * expr.c (expand_invoke): Re-arrange error checks to make more robust.
17460
62c9aa5f 174611998-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17462
17463 * parse.h: New comment on the handling of unresolved type
e64c46ce 17464 identifiers. JDEPs are now part of the jdep_code enum.
6d6044b0 17465 (typedef struct jdep): Now use enum jdep_code or int, depending on
e64c46ce 17466 availability. Both are narrowed down to an 8 bits bitfield.
6d6044b0
PB
17467 (CALL_EXPR_PRIMARY): Fixed comment.
17468
62c9aa5f 174691998-06-10 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
17470
17471 * Make-lang.in (java): Added gjavac and jvgenmain.
17472 (java.start.encap): Depend on gjavac.
17473 (java.rest.encap): Depend on jvgenmain.
17474
17475 * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
17476 (JAVA_CROSS_NAME): Likewise.
17477 (java.all.build): Depend on jvgenmain and gjavac.
17478 (java.all.cross): Depend on jvgenmain and gjavac-cross.
17479 (jvgenmain$(exeext)): New target.
17480 (java.install-common): Wrote.
17481 * config-lang.in (compilers, stagestuff): Added gjavac and
17482 jvgenmain.
17483
62c9aa5f 174841998-06-10 Dave Brolley <brolley@cygnus.com>
6d6044b0
PB
17485
17486 * lang.c (lang_decode_option): New argc/argv interface.
17487
62c9aa5f 174881998-06-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17489
17490 * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
17491 * decl.c (build_decl_no_layout): New function.
17492 * expr.c (java_lang_expand_expr): Layout declarations found in
e64c46ce 17493 blocks before they're pushed.
6d6044b0 17494 * jcf-parse.c (load_class): Save current line when parsing class
e64c46ce 17495 file.
6d6044b0 17496 (parse_source_file): Register class before expanding their
e64c46ce 17497 methods.
6d6044b0 17498 * lang.c (put_decl_node): Produce `null' when `void *' is
e64c46ce 17499 processed.
6d6044b0 17500 * lex.c (static tree wfl_op): New static global, for error report
e64c46ce 17501 on casts.
6d6044b0 17502 (java_init_lex): wfl_operator and wfl_op initialized
e64c46ce
AJ
17503 here. Filename caching added for wfl_op. Return wfl_op when `(' is
17504 parsed.
6d6044b0 17505 * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
e64c46ce
AJ
17506 patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
17507 build_unresolved_array_type): New static function definitions.
6d6044b0
PB
17508 (build_decl_no_layout): New extern function declared.
17509 (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
e64c46ce 17510 faulty modifier exists.
6d6044b0
PB
17511 (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
17512 (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
17513 (UNARY_PLUS_EXPR): New fake operator.
17514 (struct parser_ctxt): New field osb_number.
17515 * parse.y (static tree wfl_operator): New static WFL for operator
e64c46ce 17516 bound error messages.
6d6044b0
PB
17517 (DECR_TK, INCR_TK): Moved.
17518 (OP_TK): Tagged <operator>.
17519 (array_type:): Now call build_unresolved_array_type.
17520 (dim_expr:): Count the number of '[' seen.
17521 (post_increment_expression, post_decrement_expression,
e64c46ce
AJ
17522 pre_increment_expression, pre_decrement_expression,
17523 unary_expression_not_plus_minus, unary_expression:): Actions are
17524 now building the corresponding unary expressions.
6d6044b0
PB
17525 (cast_expression:): Actions are now building cast expressions.
17526 (build_unresolved_array_type): New function.
17527 (create_interface): Reset the number of declared interfaces.
17528 (create_class): Likewise.
17529 (method_header): Methods declared within the scope of an interface
e64c46ce 17530 are now implicitly set public and abstract.
6d6044b0 17531 (java_complete_class): Variable's and parameter's type are patched
e64c46ce 17532 with a promoted type.
6d6044b0 17533 (declare_local_variables): Resolved non builtin types are promoted
e64c46ce
AJ
17534 before being used to build a variable decl. Removed type patch
17535 posted on variable initialization statement.
6d6044b0 17536 (source_start_java_method): Use build_decl_no_layout to build the
e64c46ce 17537 decl of a parameter of incomplete type.
6d6044b0 17538 (java_register_parsed_class): Process interfaces too. Call
e64c46ce 17539 rest_of_decl_compilation on each processed class declarations.
6d6044b0 17540 (java_complete_expand_methods): Don't attempt to expand things in
e64c46ce 17541 interfaces.
6d6044b0 17542 (java_complete_tree): Process CONVERT_EXPR, even though it always
e64c46ce
AJ
17543 has a type. Propagate error_mark_node to node's type too. Promote
17544 method's call argument type and return error_mark_node if
17545 argument's completion didn't work. MODIFY_EXPR can have a WFL as a
17546 RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
17547 handle unary operator nodes.
6d6044b0
PB
17548 (build_assignment): Added comment.
17549 (print_int_node): New function.
17550 (patch_assignment): New second argument. New error handling. Use
e64c46ce
AJ
17551 print_int_node. Handle references. Use can_cast_to_p to issue
17552 different error message according to the context and check upon
17553 the initialization of the RHS.
6d6044b0
PB
17554 (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
17555 (operator_string): Handle more operators.
17556 (patch_binop): No longer use a function static
e64c46ce 17557 wfl_operator. Improved error message on shift distance.
6d6044b0 17558 (build_unaryop, build_incdec, build_cast, patch_unaryop,
e64c46ce 17559 patch_cast): New functions.
f6bbde28 17560
62c9aa5f 175611998-06-05 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17562
17563 * jvspec.c: New file.
17564 * Make-lang.in: New rules to build gjavac from jvspec.c and ../gcc.c.
17565
17566 * java-tree.h (identifier_subst): Add declaration.
17567
62c9aa5f 175681998-06-04 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
17569
17570 * jvgenmain.c (main): Generate call to JvRunMain.
17571
17572 * class.c (make_class_data): Push value for "sync_info" field.
17573 * decl.c (init_decl_processing): Push "sync_info" field.
17574
62c9aa5f 175751998-06-03 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17576
17577 * typeck.c (build_java_array_type): Set TYPE_NAME to actual
17578 Java (source) name, not signature.
17579 Set TYPE_ALIGN to (at least) that of element_type.
17580
62c9aa5f 175811998-06-02 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17582
17583 * class.c: Moved classname-mangling-rekated code to ...
17584 * mangle.c: ... this new file.
17585 * jvgenmain.c: New program (needs mangle.c) to generate main program.
f6bbde28 17586 * Makefile.in: Update for above changes.
6d6044b0 17587
62c9aa5f 175881998-06-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17589
17590 * expr.c (truthvalue_conversion): Convert integer and floating
e64c46ce 17591 point value to their truth value.
6d6044b0
PB
17592 * lex.c (java_lex): Handle the `null' literal.
17593 * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
17594 (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
e64c46ce
AJ
17595 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
17596 New macros.
6d6044b0
PB
17597
17598 * parse.y: Reorganization/documentation on token declaration.
17599 (binop_lookup[]): New added new tree codes.
17600 (relational_expression): Build corresponding binary operators.
17601 (equality_expression, conditional_and_expression,
e64c46ce 17602 conditional_or_expression): Likewise.
6d6044b0
PB
17603 (java_complete_class): Fix crash in debug message.
17604 (java_complete_tree): Check initialization of method call
e64c46ce
AJ
17605 arguments. Further bogus node evaluation to detect more error
17606 during assignments. Handles more binary operators.
6d6044b0
PB
17607 (patch_assignment): Use DECL_P.
17608 (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
e64c46ce 17609 code.
6d6044b0
PB
17610 (operator_string): Handle more case. Compacted source.
17611 (patch_binop): Changed function comment. Checking for
e64c46ce
AJ
17612 uninitialized first operand takes the compound assignment into
17613 account and uses DECL_P. Checking for uninitialized second operand
17614 delayed to routine's end. Use macros to issue type bound error
17615 messages and issue messages on both operands if their types are
17616 different. Force fixed type into node. Handle all binary
17617 operators.
f6bbde28 17618
62c9aa5f 176191998-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17620
17621 * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
f6bbde28
ZW
17622 * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
17623 build operator node and return tokens.
17624 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
6d6044b0
PB
17625 * parse.h (java_complete_tree): Changed returned type in prototype.
17626 (build_method_invocation, build_assignment, patch_assignment,
e64c46ce 17627 patch_binop): New static function declarations.
f6bbde28 17628 (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
e64c46ce 17629 BUILD_EXPR_WFL): New macros.
6d6044b0 17630 * parse.y (enum tree_code binop_lookup[]): New static for token to
e64c46ce 17631 TREE_CODE lookup.
6d6044b0 17632 (%union): Parser union has new sub-structure `operator'.
f6bbde28
ZW
17633 (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
17634 PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
17635 ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
17636 ASSIGN_ANY_TK): Tokens tagged `operator'.
6d6044b0 17637 (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
e64c46ce
AJ
17638 AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
17639 MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
17640 REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
f6bbde28 17641 (assignment_operator:): Rule tagged `operator'.
6d6044b0 17642 (expression_statement:): Re-installed default rule.
f6bbde28 17643 (method_invocation:): Sub rules call build_method_invocation.
6d6044b0 17644 (postfix_expression:): Don't attempt to resolve name here. Just
e64c46ce 17645 return an ID.
6d6044b0 17646 (multiplicative_expression:): Sub-rules build corresponding binop
e64c46ce 17647 expression node.
6d6044b0 17648 (additive_expression:, shift_expression:, and_expression:,
e64c46ce 17649 exclusive_or_expression:, inclusive_or_expression:): Likewise.
f6bbde28
ZW
17650 (assignment:): Sub rule invoke build_assignment.
17651 (assignment_operator:): Default rules on sub rules.
6d6044b0 17652 (force_error): Added documentation on this variable.
f6bbde28
ZW
17653 (declare_local_variables): Build initialization calling
17654 build_assignment.
17655 (expand_start_java_method): Removed unused rtx declaration. Mark
e64c46ce 17656 arguments as already initialized.
f6bbde28 17657 (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
6d6044b0 17658 (java_complete_expand_methods): Don't process next method if
e64c46ce 17659 completion of the previous one triggered errors.
6d6044b0 17660 (java_complete_expand_method): Call source_end_java_method if no
e64c46ce 17661 error were found during completion.
6d6044b0 17662 (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
e64c46ce
AJ
17663 locals declaratilon. Handle names found within a class. Return
17664 error_mark_node when things aren't found.
6d6044b0
PB
17665 (patch_method_invocation_stmt): Return error_mark_node on failures.
17666 (patch_invoke): Removed unused local. Return the correct node.
17667 (java_complete_tree): Now returns a value. The BLOCK section binds
e64c46ce
AJ
17668 local identifiers and the type of a BLOCK is now void. Assign the
17669 result of operand completion on COMPOUND_EXPR. Assign the
17670 encapsulated node of a WFL to the result of its completion, except
17671 when the node is an identifier. Now handle MODIFY_EXPR and several
17672 binary operators. Return error_mark_node on errors.
6d6044b0 17673 (build_method_invocation, build_assignment, patch_assignment,
e64c46ce 17674 build_binop, operator_string, patch_binop): New functions.
6d6044b0
PB
17675 * typeck.c (binary_numeric_promotion): New function.
17676
62c9aa5f 176771998-05-21 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17678
17679 * class.c (identifier_subst): New convenience wrapper for ident_subst.
17680 Replace most uses of ident_subst by identifier_subst.
17681
17682 * class.c (push_class_static_dummy_field): Removed function.
17683 (build_class_ref): Find Class object decl by looking up "CNAME.class",
17684 instead of looking got "class" static field. Create that decl here.
17685 (class_identifier_node): Removed; no longer needed.
17686 (init_class_processing): Don't init class_identifier_node.
17687 * jcf-parse.c (jcf_parse): Don't call push_class_static_dummy_field.
17688 Do nreverse 0 times (instead of twice) for Object and Class.
17689 * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
17690
62c9aa5f 176911998-05-20 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17692
17693 * jcf-parse.c (parse_class-file): Set lino to smallest line number,
17694 while initializing linenumber_count and linenumber_table.
17695 Do it before init_function_start (which calls emit_line_note).
17696 * expr.c (expand_byte_code): Don't need to clear lineno here.
17697
62c9aa5f 176981998-05-18 Tom Tromey <tromey@cygnus.com>
6d6044b0
PB
17699
17700 * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
17701 then mangle number as _N_.
17702
17703 * class.c (mangle_class_field): New function.
17704 (build_class_ref): Set assembler name of class reference using
17705 mangle_class_field.
17706 (push_class_static_dummy_field): Likewise.
17707
62c9aa5f 177081998-05-17 Michael Tiemann <tiemann@cygnus.com>
6d6044b0
PB
17709
17710 * parse.y (source_start_java_method): Use TREE_SET_CODE instead
17711 of assigning to TREE_CODE. The latter method exploits a feature
17712 of GCC that is not ANSI compliant.
17713
62c9aa5f 177141998-05-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17715
17716 * decl.c (pushdecl_force_head): New function.
17717 (pushlevel): Removed conditional printf.
17718 (complete_start_java_method): Don't enter local variable scope if
e64c46ce 17719 function is compiled from source code.
6d6044b0
PB
17720 * expr.c: parse.h now included
17721 (java_lang_expand_expr): New function.
17722 * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
e64c46ce 17723 printf. Terminate buffer when doing directories.
6d6044b0 17724 * jcf-parse.c (parse_source_file): Call lang_init_source before
e64c46ce 17725 parsing and before code generation.
6d6044b0 17726 * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
e64c46ce 17727 use printf if the macro is defined.
6d6044b0 17728 * lang.c (lang_init): Install lang_expand_expr hook on
e64c46ce 17729 java_lang_expand_expr.
6d6044b0
PB
17730 (java_dummy_print): New function.
17731 (lang_init_source): New function.
17732 * lex.c (java_lex): Remember location of an opening brace at the
e64c46ce 17733 second nesting level.
6d6044b0
PB
17734 (java_is_eol): Unget character seen after a CR if it is EOF.
17735 * parse.h: Now includes lex.h
17736 (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
e64c46ce 17737 printf if the macro is defined.
6d6044b0 17738 (expand_start_java_method, build_expr_block, enter_block,
e64c46ce
AJ
17739 exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
17740 New static function declarations.
6d6044b0
PB
17741 (pushdecl_force_head): New extern function declaration.
17742 (INCOMPLETE_TYPE_P): New macro.
17743 (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
17744 (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
e64c46ce 17745 BLOCK_EXPR_ORIGIN): New macros.
6d6044b0 17746 (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
e64c46ce 17747 DECL_SOURCE_LINE_LAST): New macros.
6d6044b0 17748 (struct parser_ctxt): Removed field current_method_decl, redundant
e64c46ce
AJ
17749 with the field current_function_decl. Added fields
17750 first_ccb_indent1 and pending_block.
6d6044b0 17751 * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
e64c46ce
AJ
17752 BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
17753 tagged <node>
6d6044b0
PB
17754 (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
17755 (compilation_unit:): Cosmetic on sub rule.
17756 (type_declaration:): Cosmetic on sub rules. Added an error rule.
17757 (variable_initializer:): Installed default rule on expression:.
17758 (method_declaration:): method_header: starts a new
e64c46ce
AJ
17759 method. method_body: installs the function body, absorbs blocks
17760 emitted for temporary variable scopings, pops function's body block
17761 and merges function's last statement lineno in DECL_SOURCE_LINE.
6d6044b0
PB
17762 (method_body:): Installed default rules.
17763 (block:): Call enter_block when an opening brace is seen. Absorb
e64c46ce 17764 scoping blocks and call exit_block when a closing brace is seen.
6d6044b0
PB
17765 (block_statement:): Cosmetic changes.
17766 (method_invocation:): Create WFL around CALL_EXPR node.
17767 (patch_stage): Added comment around definition.
17768 (method_header): Try to use first_ccb_indent1 as the first line of
e64c46ce
AJ
17769 the method, so BP debug info are emitted at the first opening
17770 brace of the function. If the function has no body, use the
17771 location of the function's name. Override currently defined method
17772 name with the matching WFL so we can point redefinition errors
17773 using the location where the function's name was declared.
6d6044b0 17774 (check_abstract_method_header): Interprets DECL_NAME as an
e64c46ce 17775 identifier or as a WFL, accordingly.
6d6044b0
PB
17776 (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
17777 (check_method_redefinition): Use DECL_NAME as a WFL. Extract
e64c46ce
AJ
17778 location and name information out of it and reinstall DECL_NAME to
17779 its original identifier node value.
6d6044b0 17780 (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
e64c46ce 17781 function's source code).
6d6044b0 17782 (read_import_dir): Test the value returned by find_class and issue
e64c46ce 17783 a fatal accordingly.
6d6044b0 17784 (declare_local_variables): Push a new block for the scope of the
e64c46ce
AJ
17785 new variable(s) if code has been already generated at that nesting
17786 level. Pinpoint redefinition errors using the variable id
17787 WFLs. Generate initialization code if necessary. If the variable
17788 type is incomplete, register a patch on its decl.
6d6044b0 17789 (source_start_java_method): Rewritten. Define a new block for the
e64c46ce
AJ
17790 function's parameters. Build parameter decl out of function's
17791 arguments and register them for a patch if their types are
17792 incomplete.
6d6044b0 17793 (expand_start_java_method): Includes the part of
e64c46ce
AJ
17794 source_start_java_method that was pushing the parameter decls and
17795 completing the method start code.
6d6044b0 17796 (source_end_java_method): Removed call the expand_end_bindings and
e64c46ce
AJ
17797 poplevel (already taken care of). Reinstall function's arguments
17798 and get function's last line of code before calling
17799 expand_function_end.
6d6044b0 17800 (java_method_add_stmt): New comment before the function's
e64c46ce
AJ
17801 code. Complement the second operand of the current COMPOUND_EXPR
17802 if necessary.
6d6044b0 17803 (java_complete_expand_methods): Don't generate debug info on line
e64c46ce 17804 zero when expanding a generated constructor.
6d6044b0 17805 (java_complete_expand_method): Set start and end line numbers for
e64c46ce
AJ
17806 a artificially generated constructor to one and manually call
17807 enter_block and exit_block when defining it. For all methods:
17808 expand function's start calling the new expand_start_java_method
17809 and invoke java_complete_tree on the effective method's body, if
17810 any.
6d6044b0 17811 (resolve_expression_name): Now use lookup_name_in_blocks to search
e64c46ce
AJ
17812 local variable decls and print out an error when variables are
17813 undefined.
6d6044b0 17814 (patch_method_invocation_stmt): Inserted comment before the
e64c46ce 17815 function's code.
6d6044b0 17816 (lookup_method_invoke): Chain method's arguments using chainon
e64c46ce
AJ
17817 with the current arg list as a second argument. Inserted missing
17818 IDENTIFIER_POINTER when reporting an error on methods not found.
6d6044b0
PB
17819 (refine_accessible_methods_list): Don't retain constructors.
17820 (patch_arguments): Function removed.
17821 (java_complete_tree): Inserted comment before the function's
e64c46ce
AJ
17822 code. New case for BLOCKs. Moved the WFL case a bit
17823 further. Complete function's arguments.
17824 (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
17825 maybe_absorb_scoping_blocks): New functions.
f6bbde28 17826
62c9aa5f 178271998-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17828
17829 * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
e64c46ce 17830 previously set.
6d6044b0 17831 * jcf-parse.c (parse_source_file, java_error_count): New forward
e64c46ce 17832 and extern declarations.
6d6044b0
PB
17833 (java_parse_abort_on_error): Macro moved.
17834 (jcf_parse_source): fatal called if fopen fails. Now calls
e64c46ce 17835 parse_source_file.
6d6044b0 17836 (parse_source_file): New parse_only parameter. Reflects the
e64c46ce 17837 elimination of the second pass.
6d6044b0
PB
17838 (yyparse): parse_source_file called with argument set to 0.
17839 * jcf.h (JCF_ZERO): Sets java_source to zero.
17840 * lex.c (java_init_lex): pass argument is gone. Function modified
e64c46ce 17841 to be called once during the analysis of a file.
6d6044b0
PB
17842 (java_unget_unicode): Fixed typo in fatal message.
17843 (java_get_line_col): Likewise.
17844 (java_lval): Likewise. String literals no longer built during
e64c46ce 17845 second pass.
6d6044b0 17846 * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
e64c46ce 17847 account.
6d6044b0
PB
17848 * parse.h (MODIFIER_WFL): New macro.
17849 (parse_check_super, parser_check_super_interface): Now return int.
17850 (parser_chain_incomplete_item, not_builtin_p,
e64c46ce 17851 complete_method_decl): Declarations removed.
6d6044b0 17852 (build_method_invocation_stmt, build_invoke): Renamed using the
e64c46ce 17853 `patch' instead of `build'
6d6044b0 17854 (register-incomplete_type, obtain_incomplete_type,
e64c46ce
AJ
17855 java_complete_tree, java_complete_expand_method,
17856 unresolved_type_p, create_jdep_list): New function declarations.
6d6044b0 17857 (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
e64c46ce 17858 END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
6d6044b0
PB
17859 (jdep): New typedef on new struct _jdep.
17860 (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
e64c46ce
AJ
17861 JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
17862 JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
17863 JDEP_RESOLVED_P): New macros.
6d6044b0 17864 (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
e64c46ce
AJ
17865 JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
17866 JDEP_VARIABLE): New enum values and jdep kinds.
6d6044b0
PB
17867 (jdeplist): New typedef on struct _jdeplist.
17868 (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
e64c46ce 17869 macros.
6d6044b0
PB
17870 (CALL_EXPR_PRIMARY): New macro.
17871 (struct parser_ctxt): Fields java_pass, current_method_decl,
e64c46ce 17872 method_decl_list deleted. New field jdeplist.
6d6044b0
PB
17873 (INCOMPLETE_P): Macro deleted.
17874 * parse.y (single_type_import_declaration:): Removed pass switch.
17875 (type_import_on_demand_declaration): Likewise.
17876 (field_declaration:): Removed pass switch on all sub rules.
17877 (class_declaration:): Call the complete_class_decl removed on
e64c46ce 17878 class_body rules.
6d6044b0 17879 (method_declaration:): Removed second pass switch. No longer chain
e64c46ce 17880 methods decl when method_header reduced.
6d6044b0
PB
17881 (method_header:): Sub rules no longer depend on pass switch.
17882 (method_declarator:): Likewise.
17883 (method_body:): Likewise.
17884 (abstract_method_declaration:): Likewise.
17885 (block_statement:): Likewise.
17886 (local_variable_declaration:): Likewise.
17887 (argument_list:): Likewise.
17888 (method_invocation:): Likewise. Call to build_method_invocation_stmt
17889 removed. Partial CLASS_EXPR tree node built instead.
17890 (postfix_expression:): Removed pass switch on all sub rules.
17891 (java_pop_parser_context): Free classd_list content.
17892 (yyerror): Call obstrack_grow0 to finalize error message.
17893 (check_class_interface_creation): Comment modified to reflect new
e64c46ce
AJ
17894 returned value meaning. Removed second pass switch. Return 1 if an
17895 error was found, 0 otherwise. Adjust pointer on filename if a
17896 leading path separator was found.
6d6044b0 17897 (maybe_create_class_interface_decl): Removed first pass switch
e64c46ce
AJ
17898 when linking the class decl to the class_list. Install a new
17899 jdep_list for the class.
6d6044b0 17900 (add_superinterfaces): List of unresolved interfaces is
e64c46ce
AJ
17901 gone. Unresolved interfaces are directly added to the current
17902 dependencies list.
f6bbde28 17903 (create_interface): Second pass shortcut removed.
6d6044b0
PB
17904 ctpx->modifier_ctx access through MODIFIER_WFL.
17905 (create_class): Second pass shortcut removed. Call to
e64c46ce
AJ
17906 register_incomplete_type replaces the call to
17907 parser_chain_incomplete_item.
6d6044b0
PB
17908 (complete_class_decl): Function removed.
17909 (duplicate_declaration_error): New way of retrieving redeclared
e64c46ce 17910 item type.
6d6044b0 17911 (register_fields): Call to lookup_modifier_cl replaced by
e64c46ce
AJ
17912 MODIFIER_WFL. New way of handling unresolved type, using
17913 unresolved_type_p and obtain_incomplete_type.
6d6044b0
PB
17914 register_incomplete_type replaces call to parser_chain_incomplete_item.
17915 (patch_stage): New static global variable.
17916 (method_header): New way of handling unresolved type, using
e64c46ce
AJ
17917 unresolved_type_p and obtain_incomplete_type. patch_stage used to
17918 indicates that the method decl needs to be patched.
6d6044b0 17919 (check_abstract_method_header): Call to lookup_modifier_cl
e64c46ce 17920 replaced by MODIFIER_WFL.
6d6044b0 17921 (method_declarator): Incomplete argument type are registered
e64c46ce
AJ
17922 calling register_incomplete_type. Patch on the declared method is
17923 issued in that case.
6d6044b0
PB
17924 (unresolved_type_p): New function.
17925 (parser_check_super_interface): New comment to reflect function's
e64c46ce
AJ
17926 modified returned type (int). Function and has a new argument
17927 this_wfl. Call to parse_error_context uses this_wfl instead of
17928 relying on lookup_cl.
6d6044b0 17929 (parser_check_super): Comment reflects function's new returned
ee142fe7 17930 type (int). Function returns nonzero value on error.
6d6044b0 17931 (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
e64c46ce
AJ
17932 register_incomplete_type, jdep_resolve_class): New functions to
17933 handle incomplete types in declarations.
6d6044b0 17934 (java_complete_class): Rewritten to work with the new incomplete
e64c46ce 17935 type handling scheme.
6d6044b0
PB
17936 (complete_class_report_errors): Likewise.
17937 (complete_method_decl): Removed: it jobs is now handled by
e64c46ce 17938 java_complete_class.
6d6044b0 17939 (do_resolve_class): Class loaded in not already loaded and not
e64c46ce 17940 found in Java source code.
6d6044b0 17941 (java_check_regular_methods, java_check_abstract_methods): Don't
e64c46ce 17942 call complete_method_decl anymore.
6d6044b0
PB
17943 (lookup_modifier_cl, not_builtin_p): Functions deleted.
17944 (read_import_dir): Got rid of the pass number dependency.
17945 (declare_local_variables): New handling of unresolved types (patch
e64c46ce 17946 issued).
6d6044b0 17947 (source_start_java_method): New parameter level. Function called
e64c46ce
AJ
17948 with level set to 1 when argument types are potentially
17949 unresolved. Called to complete the job with level set to 2 once
17950 types are complete.
6d6044b0 17951 (source_end_java_method): Call to permanent_allocation
e64c46ce
AJ
17952 removed. Waiting to be replaced by a more suitable obstack
17953 management.
6d6044b0 17954 (java_complete_expand_methods, java_complete_expand_method,
e64c46ce 17955 java_expand_finals): New functions.
6d6044b0 17956 (build_method_invocation_stmt): Renamed
e64c46ce
AJ
17957 patch_method_invocation_stmt. Extracts function call expression
17958 (wfl) and arguments (args) from CALL_EXPR tree operands.
6d6044b0 17959 (build_invoke): Renamed patch_invoke. Fixed typo in fatal
e64c46ce
AJ
17960 call. Patch the function and argument operand of the CALL_EXPR
17961 tree argument.
6d6044b0
PB
17962 (patch_argument, java_complete_tree): New functions.
17963
62c9aa5f 179641998-04-20 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
17965
17966 Recover from missing fields and methods (i.e. error instead of fatal).
17967 * decl.c, java-tree.h (TYPE_identifier_node): New global constant.
17968 * expr.c (expand_invoke): Recover from missing method.
17969 (expand_java_field_op): Recover from missing field.
17970 Inline references to java.lang.{Integer,Char,...}.TYPE.
17971 * typeck.c (get_type_from_signature), java-tree.h: New function.
17972 * class.c (add_method): Use get_type_from_signature.
17973 (build_class_ref): Handle a class that was not found.
17974 * typeck.c (convert): Handle conversion to pointers (for convenience).
17975 * verify.c (verify_jvm_instructions): Use get_type_from_signature
17976 instead of lookup_field to handle missing fields.
f6bbde28 17977
6d6044b0
PB
17978 * jcf-parse.c (process_zip_dir): Set java_source.
17979
179801998-04-20 Brendan Kehoe <brendan@cygnus.com>
17981
17982 * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
17983
62c9aa5f 179841998-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
17985
17986 * jcf-parse.c (load_class): Don't change input_filename before
e64c46ce
AJ
17987 calling jcf_parse_source (but still do it before calling
17988 jcf_parse).
6d6044b0 17989 (jcf_parse_source): Assign input_filename after having saved the
e64c46ce 17990 parser context.
6d6044b0 17991 * lex.c (java_init_lex): Chain a WFL node to the import on demand
e64c46ce
AJ
17992 list. ctxp->modifier_ctx zeroed according to its new
17993 definition. ctxp->filename initialized. Removed
6d6044b0
PB
17994 JAVA_MODIFIER_CTX_UNMARK.
17995 (java_unget_unicode): Update the character based column position.
17996 (java_allocate_new_line): ref_count not used anymore. Always free
e64c46ce 17997 ctxp->p_line. Initialize c_line->char_col to 0.
f6bbde28 17998 (java_get_unicode): Update the character based column position.
6d6044b0 17999 (java_lex): Use ctxp->elc to store current position in source
e64c46ce
AJ
18000 file, at the beginning of the parsed token. Set modifier_ctx entry
18001 corresponding to the parse modifier to a WFL node. Return a WFL
18002 node when an identifier is parsed.
6d6044b0 18003 (java_lex_error): Now uses ctxp->elc to store current position in
e64c46ce 18004 source.
6d6044b0
PB
18005 (build_wfl_node, java_is_eol, java_get_line_col): New functions.
18006 * lex.h (build_wfl_node): New function definitions.
18007 (struct java_line): ref_count and next fields are gone. New field
e64c46ce 18008 char_col.
6d6044b0 18009 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
e64c46ce 18010 JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
6d6044b0
PB
18011 (JAVA_COLUMN_DELTA): New macro.
18012 (java_lc): New typedef on new struct _java_lc.
18013 * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
18014 (parse_error_context, parse_warning_context): Changed prototypes.
18015 (java_get_line_col): Added as an available global function.
18016 (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
18017 (IC_DECL): Replaced by macro IC_TYPE
18018 (DEPEND_WFL): New macro.
18019 (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
18020 wrong modifier.
18021 (exit_java_complete_class): Removed a commented out statement.
18022 (struct parser_ctxt): Added comments on fields. modifier_ctx is
e64c46ce
AJ
18023 now an array of tree nodes. Deleted fields line_list and
18024 e_line. New field elc, to replace e_line.
f6bbde28 18025 * parse.y (array_type:): Build WFL node.
6d6044b0 18026 (qualified_name:): Build a single WFL node out of two. Retain
e64c46ce 18027 the location information of the first node in the resulting node.
f6bbde28 18028 (package_declaration:): Use package name as a WFL node
6d6044b0
PB
18029 (single_type_import_declaration:): Use imported name as a WFL node.
18030 (type_import_on_demand_declaration:): Use root of the imported
e64c46ce 18031 packages as a WFL node.
6d6044b0
PB
18032 (field_declaration:): Removed unused local variable cl.
18033 (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
18034 (yyerror): New static elc. Removed static error_line, error_pos.
e64c46ce
AJ
18035 New local code_from_source. Save ctxp->elc into elc at the first
18036 pass. Call java_get_line_col to get a string of the line where
a83f01f0 18037 the error occurred.
6d6044b0
PB
18038 (debug_line): Removed static function.
18039 (parse_error_context, parse_warning_context): Parameter cl is now
e64c46ce 18040 a WFL node. Use its value to initialize ctxp->elc.
6d6044b0
PB
18041 (redefinition_error): Parameter cl is now a WFL node.
18042 (parse_add_interface): New parameter wfl. No longer call
e64c46ce 18043 lookup_cl, use wfl instead.
6d6044b0
PB
18044 (check_class_interface_creation): Parameter cl is now a WFL node.
18045 (maybe_create_class_interface_decl): Likewise.
18046 (add_superinterfaces): New function.
18047 (create_interface): Removed local cl, node, super_decl,
e64c46ce
AJ
18048 super_decl_type. Function now uses id as a WFL node. Better
18049 warning/error report on obsolete or forbidden mix of
18050 modifiers. Now calls add_superinterfaces to register interfaces.
6d6044b0 18051 (create_class): Removed local cl, node. Local variable id is used
e64c46ce
AJ
18052 as a WFL node. Better error report on forbidden modifier
18053 mix. Uses add_superinterfaces to register interfaces.
6d6044b0 18054 (find_field): Argument cl is now a WFL node. Now store the WFL
e64c46ce
AJ
18055 node of a fields that needs to be checked for their
18056 initialization.
6d6044b0 18057 (method_header): Local variable node non longer used. Local
e64c46ce 18058 variable id replaces cl.
6d6044b0 18059 (check_modifiers_consistency): Local variable cl is now a WFL
e64c46ce 18060 node.
6d6044b0
PB
18061 (method_declarator): Local variable cl replaced by parameter id.
18062 (parser_qualified_name): Now uses parameter name as a WFL node.
18063 (parser_check_super_interface): New parameter wfl, for achieve
e64c46ce 18064 greater accuracy during error reports.
6d6044b0 18065 (parser_chain_incomplete_item): New parameter named location. Used,
e64c46ce 18066 along the decl, to construct the incomplete item node.
6d6044b0 18067 (java_complete_class): resolve_class now uses WFL node extracted
e64c46ce 18068 from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
6d6044b0
PB
18069 where appropriate.
18070 (complete_method_decl): Unresolved function's argument types are WFL.
18071 (resolve_class): Parameter cl is now a WFL node.
18072 (resolve_and_layout): Likewise.
18073 (do_resolve_class): Likewise. Try first to use cl and then do the
e64c46ce 18074 lookup on the decl when calling check_pkg_class_access.
6d6044b0 18075 (complete_class_report_errors): Use IC_TYPE in place of
e64c46ce
AJ
18076 TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
18077 instead of doing a lookup over the decl.
6d6044b0
PB
18078 (java_check_final): Use WFL info from field tree list.
18079 (lookup_cl): Rewritten and returns a statically defined WFL node.
18080 (lookup_modifier_cl): Now uses information from WFL nodes.
18081 (process_imports): Likewise.
18082 (read_import_dir): name and cl arguments replaced by a single WFL
e64c46ce 18083 node. Function modified accordingly.
6d6044b0
PB
18084 (find_in_imports_on_demand): Now uses WFL node.
18085 (check_pkg_class_access): cl argument is now a WFL node.
18086 (declare_local_variables): Fixed to use WFL nodes.
18087 (resolve_expression_name): Likewise.
18088 (build_method_invocation_stmt): name_combo argument renamed
e64c46ce 18089 wfl. Function modified to use WFL nodes.
6d6044b0
PB
18090 (build_invoke): cl used as a WFL node when calling build_expr_wfl.
18091 (lookup_method_invoke): cl is now a WFL node. Added missing
e64c46ce 18092 IDENTIFIER_POINTER to class type decl name.
f6bbde28 18093
62c9aa5f 180941998-04-14 Dave Brolley <brolley@cygnus.com>
6d6044b0
PB
18095
18096 * lang.c (init_parse): Now returns char* containing the filename.
18097
62c9aa5f 180981998-04-10 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18099
18100 * class.c (layout_class): Mangle repeated arg types to match cc1plus.
18101
18102 * decl.c, java-tree.h (integer_four_node): New INTEGER_CST node.
18103 * class.c (make_class_data): If flag_assume_compiled, initial class
18104 state is CSTATE_PREPARED; make superclass and interfaces direct
18105 references, rather than constant pool indexes.
18106
62c9aa5f 181071998-04-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18108
18109 * parser.y: Include flags.h. Removed debug variable pl.
18110 (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
18111 (block:): Likewise.
18112 (labeled_statement_nsi:): Generate debug info when reducing
e64c46ce 18113 expression_statement:.
67264b4f 18114 (check_pkg_class_access): get_access_flags_from_decl invocation
e64c46ce 18115 fixed for new CLASS_* flags location.
6d6044b0 18116 (source_end_java_method): Save/restore parser context when
e64c46ce
AJ
18117 entering/leaving this routine. Restore lineno to its right value
18118 before calling expand_end_bindings.
6d6044b0 18119 (build_method_invocation_stmt): build_invoke called with the
e64c46ce 18120 current line information.
6d6044b0 18121 (build_invoke): New argument cl. Wrap the function call around a
e64c46ce 18122 wfl node.
6d6044b0 18123 (refine_accessible_methods_list): Changed comment, removed
e64c46ce 18124 unnecessary code.
6d6044b0
PB
18125 * parse.h: Fixed typo in comments.
18126 (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
18127 (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
18128 (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
e64c46ce 18129 parser_ccb_indent.
6d6044b0 18130 * lex.c (java_lex): Record the last closing curly bracket of a
e64c46ce 18131 function.
6d6044b0 18132 * jcf-parse.c (jcf_parse_source): Now calls
e64c46ce 18133 java_check_methods. Clarified comment, fixed typo.
6d6044b0
PB
18134
181351998-04-09 Dave Brolley <brolley@cygnus.com>
18136
18137 * lang.c (init_parse): Expose for non USE_CPPLIB builds.
18138 (finish_parse): Expose for non USE_CPPLIB builds.
18139
62c9aa5f 181401998-04-08 Jeffrey A Law (law@cygnus.com)
6d6044b0
PB
18141
18142 * lang.c (lang_print_xnode): New function.
18143
62c9aa5f 181441998-04-03 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18145
18146 * decl.c (class_dtable_decl), java-tree.h: New tree node.
18147 * class.c (get_dispatch_vector, get_dispatch_table): New functions
18148 used to build a class's dispatch table.
18149 (make_class_data): Generate dispatch table if flag_assume_compiled.
18150 Set dtable of class object to address of class_dtable_decl.
18151
18152 * decl.c (int_decl_processing): Make soft_badarrayindex_node
18153 be volatile and have side effects - generates better code.
18154
18155 * class.c, expr.c, parse.y: CLASS_INTERFACE, CLASS_FINAL, etc:
18156 These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
18157
18158 * expr.c (expand_invoke): If class is final, method is
18159 effectively final, so can call it directly.
18160
18161 * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE): New macros.
18162
18163 * Makefile.in, Make-lang.in: Add missing $(exeext)s.
18164
62c9aa5f 181651998-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18166
18167 * parse.y (build_method_invocation_stmt): Removed extra argument
e64c46ce 18168 to build_invoke.
6d6044b0 18169
62c9aa5f 181701998-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18171
18172 * expr.c (dtable_indent): Now static global.
18173 (expand_invoke): Now call invoke_build_dtable and
e64c46ce 18174 build_invokevirtual.
6d6044b0
PB
18175 (invoke_build_dtable, build_invokevirtual): New functions.
18176 * jcf-io.c (find_class): Defer issuing a warning by setting
e64c46ce 18177 jcf->outofsynch to 1.
6d6044b0
PB
18178 * jcf-parse.c (jcf_out_of_synch): New function.
18179 (load_class): Test this_jcf.outofsynch flag and call
e64c46ce 18180 jcf_out_of_synch accordingly.
6d6044b0 18181 * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
e64c46ce 18182 comment indentation.
6d6044b0
PB
18183 * lex.c (java_get_unicode): Fixed code indentation.
18184 (java_lex): Create string literal. Fixed typo. Removed several
e64c46ce 18185 premature obstack_free.
6d6044b0
PB
18186 * parse.h: New enums for name resolution and invocation mode.
18187 (struct qualification): New data structure.
18188 (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
18189 (do_resolve_class, build_method_invocation_stmt,
e64c46ce
AJ
18190 breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
18191 debug_line, identical_subpath_p, invocation_mode,
18192 refine_accessible_methods_list, build_invoke,
18193 lookup_method_invoke): New functions declared.
6d6044b0 18194 (build_invokevirtual, invoke_build_dtable, match_java_method,
e64c46ce
AJ
18195 build_field_ref, jcf_out_of_synch): New references to external
18196 functions.
6d6044b0
PB
18197 (struct parse_ctxt): Removed artificial_constructor field.
18198 * parse.y: (array_type:): Type defined for this rule.
18199 (class_type:): Installed default rule for interface_type:.
18200 (array_type:): Now build Java array type.
18201 (qualified_name:): Now use obstack_grow0.
18202 (method_declaration:): Skip the artificial constructor added to
e64c46ce 18203 the list, if any.
6d6044b0
PB
18204 (abstract_method_declaration:): Execute the code only during pass 1.
18205 (block:): Installed default rule in block_statements:.
18206 (block_statement:): Add the statement to the method during pass 2.
18207 (statement_expression): Installed default rule for
e64c46ce 18208 method_invocation:.
6d6044b0 18209 (argument_list:): Added code to build the argument list.
e64c46ce
AJ
18210 (method_invocation:): Added call to create the method invocation
18211 node.
6d6044b0
PB
18212 (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
18213 (debug_line): New function for debug.
18214 (complete_class_decl): No longer do something during pass 1.
18215 (method_header): Use BUILD_PTR_FROM_NAME.
18216 (parser_qualified_classname): Use obstack_grow0. Removed bogus
e64c46ce 18217 obstack_free.
6d6044b0 18218 (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
e64c46ce 18219 function's main comment.
6d6044b0 18220 (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
e64c46ce 18221 classes.
6d6044b0
PB
18222 (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
18223 (resolve_class): Now works with arrays.
18224 (do_resolve_class, resolve_and_layout): New functions.
18225 (java_check_regular_methods): Reverse method list before and after
e64c46ce 18226 having processed it. No longer set ctxp->artificial_constructor.
6d6044b0 18227 (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
e64c46ce
AJ
18228 accordingly. Fixed typo in issued error message. Now use
18229 obstack_grow0.
6d6044b0
PB
18230 (find_in_imports_on_demand): Now use obstack_grow0.
18231 (declare_local_variables): Use BUILD_PTR_FROM_NAME.
18232 (source_end_java_method): Call expand_expr_stmt instead of
e64c46ce 18233 expand_expr. Calls it before calling expand_function_end.
6d6044b0 18234 (java_method_add_stmt): Do nothing if errors were found during
e64c46ce 18235 parsing.
6d6044b0
PB
18236 (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
18237 (build_method_invocation_stmt, build_invoke, invocation_mode,
e64c46ce
AJ
18238 lookup_method_invoke, refine_accessible_methods_list,
18239 qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
18240 New functions.
6d6044b0 18241 * typeck.c (build_java_signature): Properly end method signature
e64c46ce 18242 if return type skipped.
f6bbde28
ZW
18243 (match_java_method): New function.
18244
62c9aa5f 182451998-03-16 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18246
18247 * jcf-io.c (find_classfile): If USE_JCF_STDIO, fopen in binary mode.
18248
62c9aa5f 182491998-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18250
18251 * expr.c (build_invoke_non_interface): New function.
18252 (methods_ident, ncode_ident): Now static globals.
18253 (expand_invoke): Use build_invoke_non_interface.
18254 * java-tree.h (struct lang_decl): New field function_decl_body.
18255 (DECL_FUNCTION_BODY): New macro.
18256 * jcf-parse.c (jcf_parse_source): Deeper check before setting
e64c46ce 18257 CLASS_FROM_SOURCE_P.
6d6044b0
PB
18258 (parse_source_file): Fixed typos. Call java_layout_parsed_class
18259 before starting pass 2. Call to java_generate_parsed_class replaced
18260 by java_register_parsed_class.
18261 * lex.c: Fixed typo in header. Some line width related formating.
18262 * lex.h: Some line width related formating.
18263 * parse.h (source_end_java_method, resolve_expression_name,
e64c46ce
AJ
18264 complete_class_decl, maybe_create_class_interface_decl,
18265 check_class_interface_creation): New static function declarations.
6d6044b0 18266 (java_layout_parsed_class, java_method_add_stmt): New function
e64c46ce 18267 declarations.
6d6044b0 18268 (struct parser_ctxt): Field mark_class_generate removed. New
e64c46ce 18269 fields class_list and artificial_constructor.
6d6044b0
PB
18270 * parse.y: Fixed typo in header.
18271 (class_declaration:): Call complete_class_decl when class body
e64c46ce 18272 parsed.
6d6044b0
PB
18273 (method_declaration:): Call source_end_java_method in pass 2 when
18274 the method body is defined.
18275 (postfix_expression:): Do expression name resolution on sub-rule
e64c46ce 18276 name during pass 2.
6d6044b0 18277 (create_class, create_interface): Merged common pieces.
e64c46ce 18278 (check_class_interface_creation, maybe_create_class_interface_decl):
6d6044b0
PB
18279 New functions.
18280 (complete_class_decl): New function.
18281 (register_fields): Fixed line width related typo.
18282 (method_header): Correctly skip first argument when fixing
e64c46ce 18283 argument line. Changed the loop.
6d6044b0
PB
18284 (java_check_circular_reference): Now use ctxp->class_list.
18285 (java_complete_class): Removed start/stop marking.
18286 (java_check_regular_methods): Now takes a class decl as an
e64c46ce 18287 argument. Add default constructor if none were encountered.
6d6044b0 18288 (java_check_methods): Now use ctxp->class_list. Changed call to
e64c46ce 18289 java_check_regular_methods.
6d6044b0 18290 (source_start_java_method): Set DECL_ARG_TYPE for each function
e64c46ce 18291 arguments.
6d6044b0
PB
18292 (source_end_java_method, java_method_add_stmt): New functions.
18293 (java_generate_parsed_class): No longer exists.
e64c46ce 18294 (java_layout_parsed_class, java_register_parsed_class): New functions.
f6bbde28 18295 (resolve_expression_name): New function.
6d6044b0 18296
62c9aa5f 182971998-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18298
18299 * jcf-parse.c: (parse_source_file): Check on errors after init lex.
18300 * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
e64c46ce
AJ
18301 until pass initializations are done. Call read_import_dir with
18302 pass set to 0.
6d6044b0
PB
18303 * parse.h: (lookup_modifier_cl): New function declared.
18304 (INTERFACE_FIELD_MODIFIERS): New macro.
18305 (OBSOLETE_MODIFIER_WARNING): New macro.
18306 * parse.y: (register_fields): Class type and current field name in
e64c46ce 18307 local variables. Check modifier(s) if adding field(s) to an interface.
6d6044b0 18308 (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
e64c46ce 18309 and report errors using the faulty modifier line context.
6d6044b0
PB
18310 (lookup_modifier_cl): New function.
18311 (read_import_dir): Detect and report default import processing
e64c46ce 18312 failure.
6d6044b0
PB
18313
183141998-02-11 Brendan Kehoe <brendan@cygnus.com>
18315
18316 Add a pair of -fassume-compiled/-fno-assume-compiled options.
18317 * class.c (is_compiled_class): Return 1 after making sure it
18318 qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
18319 * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
18320 * java-tree.h (flag_assume_compiled): Add decl.
18321 * lang.c (lang_f_options): Add the flag.
18322 (flag_assume_compiled): Add decl, default to 0.
18323
62c9aa5f 183241998-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18325
18326 * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
18327 (is_compiled_class): Likewise.
18328 (layout_class): Likewise.
18329 (layout_class): Detect and lay out classes defined in source code.
18330 (interface_of_p, add_interface_do, may_add_interface): New
e64c46ce 18331 function.
6d6044b0
PB
18332 (add_interface): Now use add_interface_do.
18333 (add_method_1): New function.
18334 (add_method): Now use add_method_1.
18335 (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
18336 (complete_start_java_method): New function.
18337 (start_java_mehod): Now call complete_start_java_method.
18338 * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
18339 (expand_invoke): Likewise and fixed typo.
18340 *gjava.c: (print_super_field): Use new argument to find_class
e64c46ce 18341 DO_CLASS_FILE.
6d6044b0
PB
18342 (main): Likewise.
18343 *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
e64c46ce
AJ
18344 (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
18345 QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
18346 IDENTIFIER_NODE.
18347 (CLASS_COMPLETE_P): New flag on TYPE_DECL.
6d6044b0
PB
18348 (add_method_1, push_class): New prototypes.
18349 *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
18350 *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
e64c46ce 18351 directory where the class was found.
6d6044b0 18352 (find_class): New argument DO_CLASS_FILE. Function find_class
e64c46ce 18353 modified accordingly.
6d6044b0
PB
18354 *jcf-parse.c: (fix_class_path): New function.
18355 (load_class): Use new VERBOSE argument. load_class now finds and
e64c46ce 18356 loads/parses .class/.java files. Save read_state of current_jcf
6d6044b0
PB
18357 if necessary.
18358 (java_parser_abort_on_error): New macro.
18359 (jcf_parse_source, parse_source_file): New function.
18360 (jcf_parse): Fixed typo.
18361 (yyparse): Call parse_source_file () only.
18362 (process_zip_dir): Fixed typo, fix zdir->filename_length when
e64c46ce 18363 writing the real class name back in the zip directory entry.
6d6044b0
PB
18364 (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
18365 (jcf_figure_file_type): Fixed bogus alloc and bcopy.
18366 *jcf.h: (typedef struct JCF): New fields java_source and zipd.
18367 (find_class): Prototype fixed.
18368 *lex.c: Added 1998 time stamp.
18369 Removed all static global variables, moved into the parser
e64c46ce
AJ
18370 context data structure.. Now include unistd.h if SEEK_SET not
18371 defined.
6d6044b0
PB
18372 (java_init_lex): Rewritten.
18373 (java_sneak_unicode): Modified current unicode access in current line.
18374 (java_unget_unicode): Likewise.
18375 (java_allocate_new_line): New allocation management.
18376 (java_read_char): Modified access and storage of unget_utf8_value.
18377 New way of processing current unicode.
18378 (java_store_unicode, java_read_unicode): Fixed typo in declaration.
18379 (java_get_unicode): Now use the parser context.
18380 (java_lineterminator): Likewise.
18381 (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
e64c46ce
AJ
18382 of the reentrant parser implementation. Function now use the
18383 parser context data structure and java_lval. Fixed production of
18384 the float and double constant "out of range" error message. Fixed
18385 obstack use. Return integer value when hitting a modifier. Now
18386 return type for TRUE, FALSE and other predefined types. Return
18387 identifier as a TREE_LIST list containing the current line context
18388 as the TREE_VALUE sub-node.
6d6044b0
PB
18389 (java_unicode_2_utf8): Fixed typo in declaration.
18390 (java_lex_error): Now use the parser context data structure.
18391 *lex.h: Added 1998 time stamp.
18392 (struct java_line): New fields ref_count and next.
18393 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
e64c46ce 18394 JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
6d6044b0
PB
18395 (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
18396 *parse.h: Added 1998 time stamp.
18397 (java_parse_source_file): Renamed from parse_source_file.
18398 (YYERROR_NOW, YYNOT_TWICE): Fixed.
18399 (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
e64c46ce
AJ
18400 INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
18401 JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
18402 THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
18403 END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
18404 CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
6d6044b0
PB
18405 (struct parser_ctxt): New data structure to keep the parser context.
18406 *parse.y: Added 1998 time stamp, got rid of static global variables.
18407 (java_error_count, ctxp): New global variables.
18408 (%union): New value field.
18409 (numeric_type, integral_type): Rules removed.
18410 (primitive_type): Rule defined to handle integral, float, double and
e64c46ce 18411 boolean types.
6d6044b0 18412 (qualified_name, package_declaration,
e64c46ce
AJ
18413 single_type_import_declaration, type_import_on_demand_declaration,
18414 modifiers, class_declaration, super, interfaces,
18415 interface_type_list, class_body, field_declaration,
18416 field_declaration, variable_declarators, variable_declarator,
18417 variable_declarator_id, method_declaration, method_header,
18418 formal_parameter_list, formal_parameter, method_body, block,
18419 static, interface_declaration, extends_interfaces,
18420 abstract_method_declaration, local_variable_declarators): Rules now
18421 define actions.
6d6044b0
PB
18422 (force_error, do_warning): New global statics.
18423 (push_parser_context, parser_context_save_global,
e64c46ce 18424 parser_context_restore_global, pop_parser_context): New functions.
6d6044b0
PB
18425 (yyerror): Now uses the global parser context. Fixed use of obstack.
18426 (parse_error, parse_error_context, parse_warning_context,
e64c46ce
AJ
18427 java_accstring_lookup, redefinition_error, check_modifiers,
18428 parser_add_interface, create_interface, create_class, find_field,
18429 duplicate_declaration_error, register_fields, method_header,
18430 check_modifiers_consistency, check_abstract_method_header,
18431 method_declarator, parser_qualified_classname,
18432 parser_check_super_interface, parser_check_super,
18433 parser_chain_incomplete_item, java_check_circular_reference,
18434 layout_class_from_source, java_complete_class,
18435 complete_method_decl, resolve_class, complete_class_report_errors,
18436 java_check_final, check_method_redefinition,
18437 java_check_regular_methods, java_check_abstract_methods,
18438 java_check_methods, lookup_java_interface_method2,
18439 lookup_java_method2, lookup_cl, find_name_in_single_imports,
18440 process_imports, find_in_imports, read_import_entry,
18441 read_import_dir, find_in_imports_on_demand,
18442 check_pkg_class_access, not_builtin_p, declare_local_variables,
18443 source_start_java_method, java_generate_parsed_class): New
18444 functions.
6d6044b0
PB
18445 *typeck.c: (signature_include_return): New global variable.
18446 (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
e64c46ce 18447 to add the function returned type in the signature.
6d6044b0
PB
18448
184491998-02-09 Brendan Kehoe <brendan@cygnus.com>
18450
18451 * jcf-io.c (open_in_zip): Use strncmp and LEN.
18452
62c9aa5f 184531998-01-29 Dave Brolley <brolley@cygnus.com>
6d6044b0
PB
18454
18455 * Make-lang.in (java.info): Added.
18456 (java.install-info): Added
18457
184581998-01-27 Brendan Kehoe <brendan@cygnus.com>
18459
18460 * Makefile.in (clean): Also remove java/parse.c.
18461
184621998-01-26 Brendan Kehoe <brendan@cygnus.com>
18463
18464 Add a pair of -fbounds-check/-fno-bounds-check options.
18465 * lang.c (lang_decode_option): Add code to grok arguments.
18466 (flag_bounds_check): Add decl.
18467 (lang_f_options): New array w/ the option in it.
18468 * java-tree.h (flag_bounds_check): Add decl.
18469 * lang-options.h: New file.
18470 * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
18471 of a static macro value.
18472 (JAVA_ARRAY_EXCEPTION): Delete macro.
18473
62c9aa5f 184741998-01-23 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18475
18476 * typeck.c (build_java_array_type): Fix two bugs in previous change.
18477 * expr.c (build_anewarray): Add missing promote_type.
18478
62c9aa5f 184791998-01-22 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18480
18481 Add array types with known length to optimize bounds checking.
18482 * typeck.c (build_java_array_type): Take length parameter.
18483 (java_array_type_length, build_prim_array_type): New functions.
18484 * java-tree.h: Update for new functions.
18485 * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
18486 * class.c: Use build_prim_array_type.
18487 * expr.c (can_widen_reference_to): Handle known-length array types.
18488 (verify_jvm_instructions): Keep track of integer push instructions
18489 followed by newarray/anewarray, so we can build known-length arrays.
18490 (JAVA_ARRAY_DATA_OFFSET): Replace by ...
18491 (java_array_data_offset): New function.
18492 (build_java_array_length_access): New function. Optimize if constant.
18493 (build_java_arrayaccess): Constant fold bounds check.
18494 (expand_java_newarray, expand_java_anewarray): Replaced by ...
18495 (build_newarray, build_anewarray): New functions.
18496 (ARRAY_NEW_NUM, ARRAY_NEW_PTR): Use build_{a,}newarray.
18497 * verify.c (merge_types): Handle known-lengh array types.
18498
62c9aa5f 184991998-01-19 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18500
18501 * expr.c (expand_byte_code): Fix performace bug, which caused
18502 searching linenumber_table to be linear rather than constant.
18503
62c9aa5f 185041997-12-12 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18505
18506 * Makefile.in (BISON, BISONFLAGS): Add missing macros.
18507
18508 * decl.c, java-tree.h (soft_fmod_node): New global.
18509 * decl.c (init_decl_processing): Define __builtin_fmod.
18510 * expr.c (build_java_binop): Implement TRUNC_MOD_EXPR for REAL_TYPE
18511 using __builtin_fmod.
18512
62c9aa5f 185131997-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18514
18515 * keyword.h: New file, output of keyword.gperf as processed by
e64c46ce 18516 gperf.
6d6044b0
PB
18517 * lex.c (java_lex_init): Initialize java_error_flag.
18518 * parse.c (YYERROR_NOW): Uses java_error_flag.
18519 * parse.y: New static java_error_flag. Useless definition of
e64c46ce 18520 buffer_error gone.
6d6044b0 18521 * parse.y (java_error): Portable error recovery using
e64c46ce 18522 java_error_flag (not yet completely tuned).
6d6044b0
PB
18523
185241997-12-04 Brendan Kehoe <brendan@lisa.cygnus.com>
18525
18526 * Makefile.in (parse.c): Use $(srcdir) for parse.y.
18527
62c9aa5f 185281997-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18529
18530 * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
18531 (parse.c, lex.c, keyword.h): New rules for Java source code
e64c46ce 18532 front-end.
6d6044b0
PB
18533 * parse.c: Renamed into jcf-parse.c.
18534 * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
18535 * keyword.gperf: New file, Java keywords.
18536 * parse.y: New file, Java language grammar.
18537 * parse.h: New file, Java language grammar definitions.
18538 * lex.c: New file, Java language lexer.
18539 * lex.h: New file, Java language lexer definitions.
18540
62c9aa5f 185411997-12-03 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18542
18543 * decl.c (clinit_identifier_node), java-tree.h: New global.
18544 * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P): Removed.
18545 * verify.c (verify_jvm_instructions): Inline use of removed macros.
18546 * expr.c (expand_java_field_op): Check for invalid assignment
18547 to final field.
18548
18549 * jcf-reader.c (get_attribute): Test for wrong attribute length.
18550
62c9aa5f 185511997-10-27 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18552
18553 * verify.c (verify_jvm_instructions): When processing a handler,
18554 attempt to set the current_subr to the right value.
18555 (More complicated code combines Sep 17 and Oct 22 versions.)
18556
62c9aa5f 185571997-10-24 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18558
18559 * class.c (push_class): Figure out (guess) name of source file.
18560 * parse.c (set_source_filename): Set DECL_SOURCE_FILE of class decl.
18561 (give_name_to_class): Don't guess source name; use DECL_SOURCE_FILE.
18562 (parse_class_file): Change return type from int to void.
18563 Call debug_start_source_file/debug_end_source_file.
18564
18565 * expr.c (build_java_binop): Fix masking 2nd operand.
18566 * decl.c (init_decl_processing): Set sizetype first.
18567
62c9aa5f 185681997-10-22 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18569
18570 * verify.c (verify_jvm_instructions): Don't set current_subr to NULL.
18571 (Revert Sep 17 change.)
18572
62c9aa5f 185731997-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18574
18575 * parse.c (process_zip_dir): Skip ZIP entries not bearing the
e64c46ce
AJ
18576 .class extension in their name and fix thing so we don't process
18577 them parse_zip_file_entries().
6d6044b0
PB
18578 (parse_zip_file_entries): Cleaned unused local variables.
18579
62c9aa5f 185801997-10-20 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18581
18582 * expr.c (can_widen_reference_to): Allows equal array element types.
18583 (expand_byte_code): PRE_RET must expand OPERAND_VALUE (to get index).
18584 * jcf-dump.c (RET): Get (and print) index.
18585
18586 * verify.c (verify_jvm_instructions case OPCODE_anewarray):
18587 Promote element type to POINTER_TYPE.
18588
62c9aa5f 185891997-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18590
18591 * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
e64c46ce
AJ
18592 find_in_current_zip, jcf_figure_file_type): Moved from
18593 jcf-reader.c to parse.c.
6d6044b0
PB
18594 * zextract.c: (read_zip_archive): takes file_comment_length possible
18595 field into account.
18596
62c9aa5f 185971997-10-20 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18598
18599 * verify.c (verify_jvm_instructions): Var can also be promoted to int.
18600
18601 * verify.c (merge_types): Handle array types even better ...
18602
62c9aa5f 186031997-10-17 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18604
18605 * expr.c (java_stack_pop): Fix use of NULL_TREE for TYPE_SECOND.
18606
18607 * java-tree.h (PUSH_FIELD): Set DECL_ARTIFICIAL.
18608 * class.c (make_class_data): Don't build fields_decl if no fields.
a83f01f0 18609 When building fields_decl, skip if DECL_ARTIFICIAL.
6d6044b0
PB
18610
18611 * expr.c (java_stack_swap): Update stack_type_map.
18612 * verify.c (merge_types): Handle array types better.
18613
62c9aa5f 186141997-10-15 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18615
18616 * class.c (add_field): Don't promote short integral fields to
18617 int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
18618 * expr.c (push_value): Promote and convert short integral values.
18619
18620 * decl.c, java-tree.h (integer_two_node): New constant node.
18621 * verify.c (merge_types): Check for TYPE_RETURN_ADDR.
18622
62c9aa5f 186231997-10-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18624
18625 * class.c (append_gpp_mangled_type): Use function argument
e64c46ce 18626 unpromoted type to generate mangled name.
6d6044b0 18627
62c9aa5f 186281997-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18629
18630 * constants.c (build_constant_data_ref): Now uses current_class
e64c46ce 18631 instead of main_class.
6d6044b0 18632 (build_constants_constructor): Now uses current_class instead of
e64c46ce 18633 main_class.
6d6044b0 18634 * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
e64c46ce 18635 of the global variable SeepZipFiles done here.
6d6044b0 18636 * zextract.c (read_zip_archive): extra_field optional field taken
e64c46ce
AJ
18637 into account while computing the position of the class file in the
18638 archive.
6d6044b0 18639 * verify.c (verify_jvm_instructions): Use current_jcf to search
e64c46ce 18640 the constant pool.
6d6044b0 18641 * parse.c (load_class): First search for the class to load in the
e64c46ce
AJ
18642 current zip file. Saves current_jcf (restored before returning
18643 from that function). Don't call JCF_FINISH in the class was found
18644 in the current ZIP file.
6d6044b0 18645 (jcf_parse): If the class was found in the current ZIP file, save
e64c46ce 18646 its tree_constant_pool (for later reuse).
6d6044b0 18647 (parse_class_file): New function. Process each method defined in
e64c46ce 18648 the current class and record the class as to be later registered.
6d6044b0
PB
18649 (yyparse): Rewritten. Figure the type of the current file and switch
18650 accordingly.
18651 * lang.c: New global variable current_jcf.
18652 (lang_init): Removed compiling_from_source test (done later, in
e64c46ce 18653 yyparse). Removed call the jcf_parse ().
6d6044b0
PB
18654 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
18655 (typedef struct JCF): New fields seen_in_zip (to mark a class found
18656 in the current ZIP file) and zip_offset (offset to the class data in
18657 the current zip file).
18658 * jcf-reader.c: zipfile.h included.
18659 localToFile: New ZipFileCache static global variable
18660 (parse_zip_file_entries): New function. Browse the current ZIP
e64c46ce 18661 file directory and process each class found.
6d6044b0 18662 (process_zip_dir): New function. Register each class found in the
e64c46ce
AJ
18663 ZIP file directory. The class aren't parsed but a valid JCF is
18664 link to each of them.
6d6044b0 18665 (find_in_current_zip): New function. Search for a class in the
e64c46ce
AJ
18666 current ZIP file directory. If found, prepare the class so that it
18667 can be loaded.
6d6044b0 18668 (jcf_figure_file_type): New function. Examine the file structure
e64c46ce
AJ
18669 to figure a class file, a ZIP file. If none of these categories are
18670 matched, a source file is assumed.
6d6044b0 18671 * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
e64c46ce 18672 SeenZipFile: New global variable.
6d6044b0 18673 (open_in_zip): Use zipmember's length to accelerate the search for
e64c46ce
AJ
18674 a member. If zipmember was NULL and zip file successfully read,
18675 return 0.
6d6044b0 18676 * java-tree.h: New global variable current_jcf declared. Added
e64c46ce 18677 declaration for current_constant_pool_tags, current_constant_pool_data,
6d6044b0
PB
18678 current_constant_pool_length, current_constant_pool_data_ref.
18679 (struct lang_type): Augmented with two fields. struct JCF *jcf (to
e64c46ce 18680 store the JCF of classes seen in a zip file) and tree *constant_pool
6d6044b0
PB
18681 (to save a loaded class constant pool). current_class declared here.
18682 * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
e64c46ce 18683 retrieve method_ref_constant.
6d6044b0
PB
18684 (PUSHC): java_push_constant_from_pool now uses current_jcf.
18685 (OBJECT): get_class_constant now uses current_jcf.
18686 (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
18687 (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
18688 (expand_invoke): Now uses current_class instead of main_class
18689 (build_class_init): Now uses current_class instead of main_class
18690 * class.c: New static global variable registered_class.
18691 (register_class): New function.
18692 (emit_register_class): Modified to use registered_class instead of
e64c46ce 18693 main_class
6d6044b0
PB
18694 (is_compiled_class): Now take into account class seen in the archive.
18695
62c9aa5f 186961997-10-06 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18697
18698 * except.h: Renamed to: java-except.h.
18699 * parse.c, except.c, expr.c, verify.c: Update #include accordingly.
18700 * except.c: Add semi-working (commented out) implementation.
18701
18702 * expr.c (expand_iinc): Add needed flush_quick_stack.
18703 * parse.c (set_source_filename): New function.
18704 (give_name_to_class): Set input_filename from package.classname.java.
18705
18706 * jcf-io.c (find_class): Don't look first in ".".
18707
62c9aa5f 187081997-10-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18709
18710 * zextract.c (read_zip_archive): Now takes into account the
e64c46ce 18711 extra_field field.
6d6044b0 18712 * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
f6bbde28 18713
62c9aa5f 187141997-09-20 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18715
18716 * constants.c, java-tree.h (build_internal_class_name): New function.
18717 (alloc_class_constant): Re-implement using build_internal_class_name.
18718 * class.c (make_class_data): Likewise.
18719 * class.c (hashUtf8String): Make hash algorithm match String.hashCode.
18720
62c9aa5f 187211997-09-17 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18722
18723 * verify.c (verify_jvm_instructions): Temporarily set current_subr
18724 to NULL before pushing an exception handler target.
18725
18726 * expr.c (flush_quick_stack): Save from low stack indexes to high.
18727 (java_stack_swap, java_stack_dup): Re-write to be safe from
18728 clobbering registers.
18729 (build_class_init): New function.
18730
62c9aa5f 187311997-09-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18732
18733 * typeck.c (build_java_array_type): Temporary use
e64c46ce 18734 permanent_obstack to create the array 'length' field.
6d6044b0 18735 * expr.c (lookup_label): Temporay use permanent_obstack to create
e64c46ce 18736 label if not found.
6d6044b0
PB
18737 * class.c (push_super_field): Tempory use permanent_obstack.
18738
62c9aa5f 187391997-09-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18740
18741 * typeck.c (type_for_mode): Now handles double_type_node and
e64c46ce 18742 float_type_node.
6d6044b0 18743 * verify.c (verify_jvm_instructions): The instruction following
e64c46ce
AJ
18744 the wide bytecode is checked. OPCODE_ret added to the list of
18745 wide.
6d6044b0 18746
62c9aa5f 187471997-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18748
18749 * class.c (make_class): Temporary use permanent_obstack. Set the
e64c46ce 18750 class CLASS_P field to 1.
6d6044b0
PB
18751 (push_class): Temporary use permanent_obstack.
18752 (set_super_info): Temporary use permanent_obstack.
18753 (add_method): Temporary use permanent_obstack, set
e64c46ce 18754 METHOD_TRANSIENT().
6d6044b0 18755 (add_field): Temporary use permanent_obstack. Sets
e64c46ce 18756 FIELD_VOLATILE() and FIELD_TRANSIENT().
6d6044b0 18757 (build_class_ref): Temporary use permanent_obstack if the class
e64c46ce 18758 isn't compiled.
6d6044b0 18759 (build_static_field_ref): Temporary use permanent_obstack when
e64c46ce 18760 creating field's rtl.
6d6044b0 18761 (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
e64c46ce 18762 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
6d6044b0
PB
18763 and fields. Function finalized, as far as flag handling.
18764 (push_class_static_dummy_field): Temporary use permanent_obstack.
18765 (emit_register_class): Force generation of class registration at
e64c46ce 18766 -O3 or deeper.
6d6044b0
PB
18767 * decl.c (end_java_method): Call permanent_allocation() before
18768 returning.
18769 * expr.c (can_widen_reference_to): Added comment to interface
18770 handling, fixed typo.
18771 (lookup_field): Now uses CLASS_P() to correct FIXME
f6bbde28 18772 (expand_invoke): Verification on public && !static &&
6d6044b0
PB
18773 !abstract moved into soft_lookupinterfacemethod (kaffe).
18774 Use Object class dtable if objectref is an array when expanding
18775 invokeinterface.
18776 (java_push_constant_from_pool): Temporary use permanent_obstack
18777 for CONSTANT_string
18778 * parse.c (get_ref_constant): Temporary use permanent_obstack to
e64c46ce 18779 create constant references.
6d6044b0
PB
18780 (get_constant): Temporary use permanent_obstack to create constant.
18781 (load_class): Temporary use permanent_obstack to load class.
18782 (jcf_parse): Temporary use permanent_obstack to perform class
18783 layout.
18784 * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
18785 (build_java_signature): Temporary use permanent_obstack.
17126208 18786 * verify.c: (verify_jvm_instruction): removed unnecessary verification
6d6044b0
PB
18787 on ACC_SUPER flag.
18788 * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
18789 (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
18790 (CLASS_P): Defined
18791
62c9aa5f 187921997-09-11 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18793
18794 * class.c (append_gpp_mangled_type): Fix typo.
18795 (emit_register_class): Use main_class to get class object, rather
18796 than looking for no-longer-existing static decl starting with _CL.
18797 * typeck.c (parse_signature_type): Promote array element type
18798 if it is a RECORD_TYPE.
f6bbde28 18799
62c9aa5f 188001997-09-10 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18801
18802 * class.c (push_class_static_dummy_field): New function.
18803 (mangle_static_field): New. Do G++-style mangling of static fields.
18804 (layout_class): Mandle static fields here, not in add_field.
18805 (build_class_ref): The class object is now a dummy static field.
18806 * decl.c (find_local_variable): Look for best, instead of first match.
18807 * expr.c (push_type): Always promote_type, not just for RECORD_TYPE.
18808 (build_java_athrow): Don't check here if exception is Throwable.
18809 * java-tree.h (TYPE_UNSET): Renamed to TYPE_UNKNOWN.
18810 (TYPE_USED): Removed. No longer used ...
18811 * parse.c (jcf_parse): Call push_class_static_dummy_field.
18812 * verify.c (push_pending_label): New function.
18813 (push_pending_block): Renamed to check_pending_block.
18814 (merge_types): Remove unneeded suuport for TYPE_UNUSED.
18815 (verify_jvm_instructions): Only reset prev_eh_ranges (to force
18816 re-checking possible handlers) after a store (less wasted work).
e64c46ce 18817 Check for null handler (finally) before calling add_handler.
6d6044b0
PB
18818 Various changes to (finally?) correctly handle try/finally.
18819
188201997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
18821
18822 * class.c: Include stdio.h.
18823
62c9aa5f 188241997-09-04 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18825
18826 * expr.c (expand_invoke): Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
18827 to make sure class is initialized before static/special invoke.
18828
18829 * verify.c (verify_jvm_instructions): On a store instruction,
18830 call find_local_variable to force pre-allocation of decl and rtx.
18831 * decl.c (push_jvm_slot): Set DECL_REGISTER on stack slots.
18832
62c9aa5f 188331997-09-03 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18834
18835 * class.c (build_class_ref): Strip off "promoted_" if need be.
18836 (make_field_value): Call build_java_signature when needed.
18837 (layout_class): Don't make_function_rtl if METHOD_ABSTRACT.
18838 * expr.c (build_java_athrow): Don't push_value of exception.
18839 (build_java_binop): Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
18840 match specification of [fd]cmp[lg] for NaNs.
18841 (expand_byte_code): Add support for exception handler ranges.
18842 * except.c: Add skeleton for EH code-generation.
18843 * verify.c (merge_types): Treat all promoted integral types as equal.
18844 * constants.c (build_constants_constructor): To force creation of
e64c46ce 18845 current_constant_pool_data_ref, call build_constant_data_ref.
f6bbde28 18846
6d6044b0
PB
18847 * javaop.def (lload): Fix typo.
18848 * jcf-dump.c (main): Clear filename to prevent possibly-bad free.
f6bbde28 18849
62c9aa5f 188501997-09-02 Brendan Kehoe <brendan@lisa.cygnus.com>
6d6044b0
PB
18851
18852 * parse.c: Don't include function.h.
18853
62c9aa5f 188541997-08-27 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18855
18856 * except.[ch]: New files.
18857 * Makefile.in (JAVA_OBJS): Add except.o
18858 * expr.c: Temporary warning about unimplemented exceptions.
18859 * verify.c: Verify exception handlers.
f6bbde28 18860
6d6044b0
PB
18861 * jcf-dump.c (disassemble_method): Print exception table.
18862
62c9aa5f 188631997-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18864
18865 * expr.c (verify_jvm_instructions): Started a thorough
e64c46ce 18866 verification of invoke* bytecodes.
6d6044b0 18867 (expand_byte_code): flush quick stack if PC is the target of a
e64c46ce 18868 branch. and undef RET (conflicting with config/i386/i386.h).
6d6044b0 18869 (expand_java_arrayload): Fixed bogus cast, when Boolean type is
e64c46ce 18870 used.
6d6044b0 18871 (expand_invoke): Now handles invokeinterface and do more
e64c46ce 18872 verification according to the bytecode.
6d6044b0 18873 (lookup_field): Don't try to load the class if processing
e64c46ce 18874 dtable_type.
6d6044b0
PB
18875 (can_widen_reference_to): Now handles interfaces.
18876 * decl.c (init_decl_processing): New global variable
e64c46ce 18877 soft_lookupinterfacemethod_node, declared in java-tree.h.
6d6044b0
PB
18878 Call set_super_info on string_type_node.
18879 * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
18880 defined.
18881 * class.c (set_super_info): Fills the CLASS_* flags according to
18882 access_flags.
18883 (get_access_flags_from_decl): Handles all class flags.
18884
62c9aa5f 188851997-08-26 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18886
18887 * class.c (add_method): Zero out newly-allocated DECL_LANG_SPECIFIC.
18888 * parse.c (yyparse): Check for abstract method, and missing code.
18889 * expr.c (expand_byte_code): Change interface.
18890 * lang.c (put_decl_node): Print promoted types prettier.
18891 * verify.c (verify_jvm_instruction): Change interface.
18892 Partial support for scanning exception table.
18893 For load instructions, handle promoted integral types.
18894
62c9aa5f 188951997-08-21 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18896
18897 * verify.c: New file, with contents moved from expr.c.
18898 * expr.c: Bunch of stuff (mostly verification) moved to verify.c.
18899 * typeck.c (is_array_type_p): Moved here from expr.c.
18900 * java-tree.h: Add some now-needed function declarations.
18901 * Makefile.in (JAVA_OBJS): Added verify.o.
18902
62c9aa5f 189031997-08-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18904
18905 * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
18906 METHOD_ABSTRACT flag.
18907
18908 * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
18909 (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
18910 (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
18911
18912 * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
18913 variables.
18914 (start_java_method): Hook for SYNCHRONIZED methods.
18915
18916 * expr.c (build_java_jsr, build_java_ret): New functions
18917 (JSR,PRE): New macros
18918 (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
f6bbde28 18919 (verify_jvm_instructions): tableswitch, lookupswitch,
6d6044b0
PB
18920 monitorenter, monitorexit, goto_w: verified.
18921 (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
18922 (build_java_monitor): New function.
18923 (MONITOR_OPERATION): Modified to call build_java_monitor()
f6bbde28 18924 (verify_jvm_instructions): Started a thorough verification of
6d6044b0
PB
18925 invoke* bytecodes.
18926
62c9aa5f 189271997-08-19 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18928
18929 Support verification of jsr/ret subroutines (used for try/finally).
18930 * decl.c (return_address_type_node): New type node.
18931 * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
18932 RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
18933 LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED): New macros.
18934 (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
18935 TYPE_USED): New macros for special types in type_map.
18936
18937 * java-tree.h (BCODE_JUMP_TARGET): Renamed to BCODE_TARGET.
18938 (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET): Replaced by
18939 BCODE_JUMP_TARGET.
18940 * expr.c (expand_byte_code): Fix logic to warn of unused instructions.
18941
18942 * expr.c (can_widen_reference_to): New function.
18943 (pop_type): Use it.
18944 (merge_type_state): Support handling start of subroutine.
18945 (push_pending_block): Return char* error message, instead of calling
18946 fatal on an error. Also handle subroutines.
18947 (verify_jvm_instructions): Handle errors from push_poending_block.
18948 Support jsr and ret instructions.
f6bbde28 18949
62c9aa5f 189501997-08-19 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18951
18952 * jcf-io.c (find_classfile): Fix thinko.
18953 * jcf-dump.c: Add CONVERT2 (to match changed javaop.def).
18954
62c9aa5f 189551997-08-12 Jason Merrill <jason@yorick.cygnus.com>
6d6044b0
PB
18956
18957 * Makefile.in (BISON): Remove.
18958
62c9aa5f 189591997-08-07 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
18960
18961 * Makefile.in: Convert to autoconf.
18962 * config-lang.in (outputs): Added java/Makefile.
18963
18964 * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
18965 Rename cc1java to jc1.
18966
18967 * lang.c (init_parse, finihs_parse): New functions #ifdef USE_CPPLIB.
18968 * Makefile.in (INTERNAL_CFLAGS): Add @extra_c_flags.
18969
18970 * class.c (class_depth): Do load_class if needed.
18971
18972 Mostly better verification.
18973 * decl.c (pushdecl): Set TYPE_STUB_DECL for a type.
18974 (init_decl_processing): Change return type of soft_checkcast.
18975 * expr.c (expand_java_CHECKCAST): Do push_value of the "casted" value.
18976 * lang.c (put_decl_string, put_decl_node, lang_printable_name,
18977 lang_print_error): New functions.
18978 (lang_init): Set global hook print_error_function to lang_print_error.
18979 * expr.c: In the type_map ptr_type_node is only used for null now.
18980 (pop_type, merge_types): Hence ptr_type_node matches any reference.
18981 (merge_types): Dererence pointer to record types before comparing.
18982 (decode_newarray_type, merge_types): On error just return NULL.
18983 (build_java_binop): Add preliminary implementation (with warning)
18984 for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
18985 (lookup_label): Set DECL_IGNORED_P (for dwarf2out).
18986 (expand_compare, expand_java_goto, expand_java_call): Don't
18987 push_pending_block, since that only makes sense when verifying.
18988 (merge_type_state): Different return codes.
18989 (push_pending_block): A block may need to be verified more than once.
18990 (expand_byte_code): Warn about unused code at code generation time.
18991 (verify_jvm_instruction): Changed logic, since code may need to be
18992 re-verified if type-state has changed. Also, better error handling.
18993 Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
18994 Improve newarray, anewarray, ?aload, athrow,
18995 * java-tree.h (LABEL_CHANGED): New macro.
f6bbde28 18996
62c9aa5f 189971997-08-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
18998
18999 * decl.c (soft_athrow_node): New global variable initialized.
19000 * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
19001 * typeck.c (convert): Added support for REAL_TYPE.
19002 (convert_to_char): New function.
19003 (convert): Handle CHAR_TYPE.
19004 * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
19005 SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
19006 (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
19007 promoted type.
19008 (verify_jvm_instructions): Added break a the end of bogus unop: label.
19009 (OPCODE_<b|c|s>astore): Pop an int operand from the type stack
19010 (OPCODE_<b|c|s>astore): Push the promoted type onto the stack
19011 (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
19012 (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
19013 to Use The Right Things.
19014 (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
e64c46ce 19015 compatible with INT. BOOLEAN is made equivalent to BYTE.
f6bbde28 19016 (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
6d6044b0
PB
19017 OPCODE_ifnonnull): Now supported.
19018 (build_java_athrow): New function.
19019
62c9aa5f 190201997-08-04 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
19021
19022 Rename method name <init> to match G++ (and fix mangling).
19023 * class.c (layout_class): Replace method name of <init> by class name.
19024 (make_method_value): Do inverse renaming of constructor from <init>.
19025 * java-tree.h (DECL_CONSTRUCTOR_P): New macro.
19026 * typeck.c (lookup_java_constructor): New function.
19027 * expr.c (expand_invoke): If method_name is <init>, call
19028 lookup_java_constructor to find constructor.
19029
19030 * parse.c (get_constant): Handle CONSTANT_Float and CONSTANT_Double.
19031
62c9aa5f 190321997-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
6d6044b0
PB
19033
19034 * parse.c (get_class_constant): Modified to handle array "classes"
19035 * typeck.c (set_local_type): Bug fixed when filling type_map[] with
19036 wide type.
19037 (convert): Modified to handle real type.
19038 * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
19039 soft_multianewarray, soft_newarray_node, soft_throw_node): New global
19040 variables declared.
19041 * decl.c (soft_badarrayindex_node, soft_anewarray_node,
19042 soft_multianewarray, soft_newarray_node, soft_throw_node): New
19043 global variables initialized.
19044 (find_local_variable): Handles the case of a pointer
19045 (end_java_method): Restore the use of one more scope
19046 * expr.c (build_java_arraynull_check, build_java_arrayaccess,
19047 build_java_array_length_access, expand_java_arrayload,
19048 expand_java_arraystore, expand_java_array_length,
f6bbde28 19049 expand_java_multianewarray, expand_java_anewarray,
6d6044b0
PB
19050 build_java_check_indexed_type, is_array_type_p,
19051 build_java_throw_out_of_bound_exception): New functions.
19052 (STORE_INTERNAL): Now forces type of the decl to be type of the value.
19053 (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore,
19054 OPCODE_<t>aload): Implemented code for verification.
19055 (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
19056 ARRAY_NEW_MULTI): Macro defined.
19057 (CONVERT): Modified to invoke convert().
19058 (case OPCODE_aload2): Fixed index typo from 2 to 1.
19059
62c9aa5f 190601997-07-31 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
19061
19062 * class.c (push_class): Set DECL_ARTIFICIAL (for dbxout.c).
19063 (build_class_ref, is_compiled_class): Handle pointer-to-record types.
19064 (make_class_data): Field name needs '/' as package prefix.
19065 * expr.c (type_stack_dup, java_stack_dup): Fix fencepost errors.
19066
62c9aa5f 190671997-07-25 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
19068
19069 Implement debug information for local variables.
19070 * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
19071 DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
19072 DECL_LOCAL_SLOT_CHAIN): New macros.
19073 (struct lang_decl_var): New type.
19074 * parse.c (give_name_to_locals): Move to decl.c.
19075 * decl.c (give_name_to_locals): Re-written to Do The Right Thing.
19076 (start_java_method): Re-write parameter handling.
19077 (pending_local_decls): New global variable.
19078 (push_jvm_slot, maybe_pushlevels, maybe_poplevels): New functions.
19079 (find_local_variable): Accept pc so we can skips decls not in range.
19080 (struct binding_level): Add end_pc field.
19081 * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
19082 (various): Change so current pc gets passed to find_local_variable.
19083
19084 * decl.c (init_decl_processing): Re-arrange fields in
19085 class_type_node and and method_type_node to match kaffe 0.9.1.
19086 * class.c (make_method_value, make_class_data): Update
19087 initializations to match.
f6bbde28 19088
62c9aa5f 190891997-07-16 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
19090
19091 * class.c (unicode_mangling_length, emit_unicode_mangled_name,
19092 append_gpp_mangled_name, append_gpp_mangled_type): New functions.
19093 (push_super_field): New function.
19094 (make_class_data): Handle inheritance of class static initializer.
19095 (layout_class): New name mangling.
19096 * constants.c (build_constant_data_ref): Init type of data array
19097 to a one-element array.
19098 (build_constants_constructor): Set DECL_SIZE from complete array type.
19099 * decl.c: Rename class_type, object_type etc to class_type_node,
f6bbde28 19100 object_type_node etc. Make former inherit from latter.
6d6044b0
PB
19101 * expr.c (expand_invoke): Add cast of function address.
19102 * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE): New.
19103 * parse.c (yyparse): Don't call layout_class here.
19104 * typeck.c (build_java_array_type): Set TYPE_ARRAY_ELEMENT.
19105
62c9aa5f 191061997-06-14 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
19107
19108 * decl.c, class.c: Update method type to match latest Kaffe snapshot.
19109 * constants.c (lookup_name_constant): Renamed to alloc_name_constant.
19110 (alloc_class_constant): New.
19111 * expr.c (expand_invoke): Make sure method's class is initialized.
19112 * class.c (interits_from_p, emit_register_class): New functions.
19113 * parse.c (yyparse): Call emit_register_class.
19114
62c9aa5f 191151997-06-09 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
19116
19117 * constants.c: New file, to handle constant pool.
19118 * Makefile.in (JAVA_OBJS): Add constants.o.
19119 * decl.c (init_decl_processing): Update, fix, finish various structs.
19120 (pushdecl_top_level): New.
19121 * parse.c (layout_class): Moved to class.c.
19122 * expr.c (java_push_constant_from_pool): New function.
19123 * class.c (build_class_ref): Make work fully
19124 (make_class_data): Emit super-class, constant pool, interface vector.
19125
62c9aa5f 191261997-06-03 Per Bothner <bothner@cygnus.com>
6d6044b0
PB
19127
19128 java-tree.h (DECL_SIGNATURE, BCODE_EMITTED): Remove.
19129 (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P): New.
19130 * class.c (class_depth): New function.
19131 (lookup_named_class): Replaced by new function lookup_class.
19132 * decl.c (object_type_node, string_type_node): New.
19133 Remove various types that we no longer need.
19134 * expr.c (verify_jvm_instructions): New separate verifier pass.
19135 (push_type, pop_type): New functions for verifier.
19136 (type_stack_dup, pop_argument_types, merge_types): Likewise.
19137 (expand_byte_code): Simplify, since we assume already verified.
19138 (expand_invoke): Now mostly works.
19139 * javaop.def: Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
19140 * lang.c (main_class): Move to parse.c. Don't make_class yet.
19141 * parse.c: Wait to allocate class object until we know its name.
19142 (layout_class): Calculate DECL_VINDEX for each virtual method.
19143 * typeck.c (get_array_type): Rename to ...
19144 (build_java_array_type): ... and provide working implementation.
19145 (build_java_signature): New function - build Java signature of type.
19146 (set_java_signature): New function - cache signature with type.
19147 (lookup_java_method): New function.
f6bbde28 19148
62c9aa5f 191491997-05-06 Per Bothner <bothner@deneb.cygnus.com>
6d6044b0
PB
19150
19151 * class.c (ident_subst): Take extra SUFFIX parameter.
19152 (add_field): Set DECL_ASSEMBLER_NAME of static fields; more.
19153 (set_constant_value, build_static_field_ref, is_compiled_class): New.
19154 (build_class_ref): Actually implement.
19155 * decl.c, java-tree.h: Renamed some xx_type to xx_type_node.
19156 * decl.c (builtin_function): New.
19157 (init_decl_processing): Update for current Kaffe. Declare some
19158 builtin Kaffe functions.
19159 * expr.c (build_address_of): New.
19160 (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
19161 Renamed (from expand_java_new etc), and added working implementations.
19162 (build_field_ref): Now also handle static fields.
19163 (expand_invoke): Implement invokestatic, and start implement rest.
19164 * java-opcodes.h: Use javaop.def to avoid duplicated list.
19165 * javaop.def: Rename invokevirt -> invokevirtual.
19166 * lang.c (use_handles): Removed.
a83f01f0 19167 * parse.c: Add support for ConstantValue attribute.
6d6044b0
PB
19168 Handle nested loading of a class. (JPOOL_UTF): New.
19169
62c9aa5f 191701997-03-11 Per Bothner <bothner@deneb.cygnus.com>
6d6044b0
PB
19171
19172 * expr.c (expand_java_pushc): Support #ifndef REAL_ARITHMETIC case.
19173
62c9aa5f 191741997-02-27 Per Bothner <bothner@deneb.cygnus.com>
6d6044b0
PB
19175
19176 * Make-lang.in (java.install-man): New empty rule.
19177 * typeck.c (set_local_type): New function.
19178 * expr.c (STORE_INTERNAL): Call find_local_variable,
19179 not find_stack_slot. Call set_local_type.
19180
62c9aa5f 191811997-02-12 Per Bothner <bothner@kalessin.cygnus.com>
6d6044b0
PB
19182
19183 * java-tree.h: Various new macros for constructing RECORD_TYPEs,
19184 and building RECORD_TYPE CONSTRUCTORs.
19185 Also support for creating Utf8Const objects from an INDETIFIER_NODE.
19186
19187 * lang.c (use_handles): Change the default to 0.
19188 * decl.c: Define and build class_type, field_type, utf8const_type.
19189 * class.c (make_class_data, make_field_value,
19190 get_access_flags_from_decl, build_class_ref, build_utf8_ref,
19191 hashUtf8String, strLengthUtf8, mangled_classname:
19192 Functions to build reflective data structures.
19193 * parse.c (yyparse): Call make_class_data.
19194
19195 * jcf-io.c (open_class, find_classfile): New functions.
19196 * jcf-dump.c: Support reading classfile from explicitly-named
19197 class file (without CLASSPATH searching).
19198
62c9aa5f 191991996-10-24 Per Bothner <bothner@deneb.cygnus.com>
6d6044b0
PB
19200
19201 * jcf-reader.c: Add parameter list to HANDLE_CONSTANT_Utf8.
19202 * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
19203 Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
19204 (get_constant): Now trivial for CONSTANT_Utf8.
19205
19206 * jcf.h: Make NEW_CPOOL the default.
19207 * jcf.h, jcf-reader.c, parse.c: Remove support for !NEW_CPOOL.
f6bbde28 19208
62c9aa5f 192091996-10-24 Per Bothner <bothner@deneb.cygnus.com>
6d6044b0
PB
19210
19211 New directory.
This page took 4.329582 seconds and 5 git commands to generate.