OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [java/] [ChangeLog] - Blame information for rev 302

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 287 jeremybenn
2010-07-31  Release Manager
2
 
3
        * GCC 4.5.1 released.
4
 
5
2010-04-14  Release Manager
6
 
7
        * GCC 4.5.0 released.
8
 
9
2010-01-20  Joern Rennecke  
10
 
11
        * lang.c (java_post_options): Constify variable "dot".
12
 
13
        * jcf-parse.c (set_source_filename): Constify variable "dot".
14
        (load_class): Constify variable "separator".
15
        Use get_identifier_with_length.
16
 
17
        * jvspec.c (lang_specific_driver): Constify two variables named "p".
18
 
19
2010-01-09  Jakub Jelinek  
20
 
21
        * jcf-dump.c (version): Update copyright notice dates.
22
 
23
2009-11-28  Jakub Jelinek  
24
 
25
        * jvspec.c (lang_specific_driver): Remove unused
26
        saw_verbose_flag variable.
27
        * jcf-dump.c (main): Remove unused general_purpose_bits
28
        variable.
29
        * builtins.c (initialize_builtins): Remove unused float_ftype_float
30
        variable.
31
        * expr.c (java_stack_pop): Remove unused val variable.
32
        (build_jni_stub): Remove unused res_type variable.
33
        * verify-impl.c (check_field_constant): Remove unused len variable.
34
 
35
2009-10-20  Joel Dice 
36
 
37
        PR java/28474
38
        * mangle_name.c (append_unicode_mangled_name): Fix mangling
39
        of names with multiple underscores and "U".
40
        (unicode_mangling_length): Likewise.
41
 
42
2009-10-03  Simon Baldwin  
43
 
44
        * config-lang.in (lang_dirs): Remove zlib.
45
 
46
2009-09-28  Richard Henderson  
47
 
48
        * builtins.c (initialize_builtins): Update call to
49
        build_common_builtin_nodes.
50
        * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
51
 
52
2009-09-14  Richard Henderson  
53
 
54
        * builtins.c (initialize_builtins): Update call to
55
        build_common_builtin_nodes.
56
        * decl.c (java_init_decl_processing): Don't call
57
        default_init_unwind_resume_libfunc.
58
        * except.c: Include tree-iterator.h.
59
        (build_exception_object_var): New.
60
        (build_exception_object_ref): Use it.
61
        (expand_end_java_handler): Initialize it from __builtin_eh_pointer.
62
        Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR.
63
        * java-tree.h (DECL_FUNCTION_EXC_OBJ): New.
64
 
65
2009-09-13  Richard Guenther  
66
        Rafael Avila de Espindola  
67
 
68
        * decl.c (do_nothing): Remove.
69
        (java_init_decl_processing): Do not set lang_eh_runtime_type.
70
        * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency.
71
        * lang.c (java_eh_personality): New.
72
        (java_eh_personality_decl): Likewise.
73
        (LANG_HOOKS_EH_PERSONALITY): Define.
74
 
75
2009-09-03  Diego Novillo  
76
 
77
        * lang.c (lang_hooks): Remove const qualifier.
78
 
79
2009-09-01  Jakub Jelinek  
80
 
81
        * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT
82
        type.
83
 
84
2009-09-01  Richard Guenther  
85
 
86
        * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
87
        * java-tree.h (java_mark_addressable): Likewise.
88
        * typeck.c (java_mark_addressable): Likewise.
89
 
90
2009-08-17  Ralf Wildenhues  
91
 
92
        * Make-lang.in (java.install-pdf): Install gcj.pdf in
93
        $(pdfdir)/gcc, alongside the other manuals.
94
 
95
2009-08-12  Andrew Haley  
96
 
97
        * builtins.c (compareAndSwapInt_builtin): Use
98
        flag_use_atomic_builtins.
99
        (compareAndSwapLong_builtin): Likewise.
100
        (compareAndSwapObject_builtin): Likewise.
101
        * jvspec.c: Add flag_use_atomic_builtins.
102
        * gcj.texi: Likewise.
103
        * java-tree.h: Likewise.
104
        * lang.opt: Likewise.
105
 
106
2009-08-11  Dodji Seketeli  
107
 
108
        PR debug/40990
109
        * lang.c (put_decl_node): Outputs different level of information
110
        depending on the verbosity level.
111
 
112
2009-07-31  Andrew Haley  
113
 
114
        PR java/40867
115
        * decl.c (java_replace_references): Set EXPR_LOCATION on all
116
        generated expressions.
117
        (binding_level.loc): new field.
118
        (clear_binding_level): Initialize loc.
119
        (set_input_location): New function.
120
        (pushlevel): Set new binding_level.loc.
121
        (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY.
122
        (start_java_method): Set DECL_SOURCE_LOCATION of this new method.
123
        (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt.
124
 
125
2009-07-17  Richard Guenther  
126
 
127
        PR c/40401
128
        * java-gimplify.c (java_genericize): Do not gimplify here.
129
        But replace all local references.
130
        (java_gimplify_expr): Do not replace local references here.
131
        (java_gimplify_modify_expr): Likewise.
132
        * jcf-parse.c (java_parse_file): Do not finalize the CU or
133
        optimize the cgraph here.
134
        * decl.c (java_replace_reference): Make static.
135
        (java_replace_references): New function.
136
        (end_java_method): Clear base_decl_map.
137
        * java-tree.h (java_replace_references): Declare.
138
        (java_replace_reference): Remove.
139
 
140
2009-07-14  Taras Glek  
141
            Rafael Espindola  
142
 
143
        * Make-lang.in (java.install-plugin): New target for
144
        installing plugin headers.
145
 
146
2009-07-07  Manuel López-Ibáñez  
147
 
148
        * class.c: Replace %J by an explicit location. Update all calls.
149
 
150
2009-07-07  Manuel López-Ibáñez  
151
 
152
        * jcf-parse.c: Replace %H by an explicit location. Update all calls.
153
 
154
2009-06-29  Andrew Haley  
155
 
156
        PR java/40590
157
        * java-tree.h (cxx_keyword_p): New declaration.
158
        * mangle_name.c (utf8_cmp): Move here from mangle.c.
159
        (cxx_keywords): Likewise.
160
        (cxx_keyword_p): Likewise.
161
        (MANGLE_CXX_KEYWORDS): New macro.
162
        (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
163
        (append_gpp_mangled_name): Likewise.
164
        * mangle.c: Move code to mangle_name.c.
165
        (mangle_member_name): Don't call cxx_keyword_p.
166
 
167
2009-06-12  Aldy Hernandez  
168
 
169
        * java-gimplify.c (java_gimplify_block): New argument to
170
        build_empty_stmt.
171
        * expr.c (force_evaluation_order): Same.
172
        * typeck.c: Add location to build_decl or PUSH_FIELD calls.
173
        * class.c: Same.
174
        * decl.c: Same.
175
        * jcf-parse.c: Same.
176
        * constants.c: Same.
177
        * resource.c: Same.
178
        * except.c: Same.
179
        * builtins.c: Same.
180
        * expr.c: Same.
181
        * java-tree.h (PUSH_FIELD): Add location field.
182
 
183
2009-06-09  Ian Lance Taylor  
184
 
185
        * verify.h: Remove extern "C".
186
 
187
2009-06-07  Ian Lance Taylor  
188
 
189
        * jcf-parse.c (handle_constant): Change local variable 'kind' to
190
        unsigned int.
191
 
192
2009-06-01  Ian Lance Taylor  
193
 
194
        * jcf-io.c (find_class): Use CONST_CAST.
195
 
196
2009-05-27  Ian Lance Taylor  
197
 
198
        * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
199
        $(LINKER).
200
        (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
201
 
202
2009-05-26  Ian Lance Taylor  
203
 
204
        * Make-lang.in (jvspec.o): Use $(COMPILER).
205
        ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
206
        (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
207
 
208
2009-05-12  Alexandre Oliva  
209
 
210
        * Make-lang.in (GCJ): Renamed to...
211
        (XGCJ): ... this.
212
 
213
2009-04-27  Ian Lance Taylor  
214
 
215
        * builtins.c (java_builtins): Add casts to enum type.
216
        * verify-impl.c (check_class_constant): Add cast to enum type.
217
        (check_constant, check_wide_constant): Likewise.
218
 
219
2009-04-27  Richard Guenther  
220
 
221
        PR java/38374
222
        * constants.c (build_constants_constructor): Retain the old
223
        pointer type as valid TYPE_POINTER_TO after patching the
224
        type of the constant pool decl.
225
 
226
2009-04-24  Ian Lance Taylor  
227
 
228
        * jcf-parse.c (handle_constant): Add cast to enum type.
229
 
230
2009-04-21  Taras Glek 
231
 
232
        * builtins.c: Update GTY annotations to new syntax
233
        * decl.c: Likewise
234
        * java-tree.h: Likewise
235
        * jcf.h: Likewise
236
        * lang.c: Likewise
237
 
238
2009-04-21  Joseph Myers  
239
 
240
        * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
241
        license notices.
242
 
243
2009-04-18  Ian Lance Taylor  
244
 
245
        * verify-impl.c (verify_instructions_0): Add cast to enum type.
246
 
247
2009-04-09  Paolo Bonzini  
248
 
249
        * builtins.c (compareAndSwapLong_builtin,
250
        compareAndSwapInt_builtin, compareAndSwapObject_builtin,
251
        VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
252
 
253
2009-03-31  Richard Guenther  
254
 
255
        * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
256
        the first operand of binary and comaprison expressions.
257
 
258
2009-03-30  Joseph Myers  
259
 
260
        PR rtl-optimization/323
261
        * lang.c (java_post_options): Set flag_excess_precision_cmdline.
262
        Give an error for -fexcess-precision=standard for processors where
263
        the option is significant.
264
 
265
2009-03-18  Ralf Wildenhues  
266
 
267
        * lang.opt: Unify help text for -Wdeprecated.
268
 
269
2009-02-03  Jakub Jelinek  
270
 
271
        * jcf-dump.c (version): Update copyright notice dates.
272
 
273
2009-01-16  Richard Guenther  
274
 
275
        PR tree-optimization/38835
276
        PR middle-end/36227
277
        * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
278
 
279
2008-12-05  Sebastian Pop  
280
 
281
        PR bootstrap/38262
282
        * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
283
 
284
2008-11-04  Andrew Haley  
285
 
286
        PR java/37068
287
        * jcf-parse.c (java_emit_static_constructor): Don't call
288
        cgraph_build_static_cdtor.  Rewrite.
289
 
290
2008-10-24  Jakub Jelinek  
291
 
292
        * Make-lang.in (check-java-subtargets): New target.
293
 
294
2008-10-16  David Edelsohn  
295
 
296
        PR target/35483
297
        * Make-lang.in (class.o): Depend on $(TM_P_H).
298
        (expr.o): Same.
299
        * class.c: Include tm_p.h.
300
        * expr.c: Include tm_p.h.
301
 
302
2008-10-14  Andrew Haley  
303
 
304
        * constants.c (build_constant_data_ref): Make sure we only build
305
        one copy of the decl for the constant pool.
306
 
307
2008-09-22  Andrew Haley  
308
 
309
        * expr.c (rules): Add new rule for
310
        gnu.java.lang.VMCPStringBuilder.toString.
311
        (rewrite_rule.new_classname): New field.
312
        (maybe_rewrite_invocation): Use new_classname field instead of
313
        DECL_CONTEXT (*method_p).
314
        Allow rewrite_arglist to be NULL.
315
 
316
2008-09-17  Andrew Pinski  
317
 
318
        * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
319
        (java_get_callee_fndecl): Kill.
320
 
321
2008-09-17  Jan Hubicka  
322
 
323
        PR c++/18071
324
        * class.c (add_method_1): Do not initialize DECL_INLINE.
325
        (make_local_function_alias): Likewise.
326
        * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
327
        * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
328
 
329
2008-09-09  Richard Guenther  
330
 
331
        * decl.c (build_result_decl): Remove no longer applicable
332
        promotion.
333
 
334
2008-09-05  David Daney  
335
 
336
        * gcj.texi (-freduced-reflection): Clarify option's restrictions.
337
 
338
2008-08-21  David Daney  
339
 
340
        * class.c (make_class_data): Don't add field_index when
341
        flag_reduced_reflection set.
342
 
343
2008-08-12  Ulrich Weigand  
344
 
345
        * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
346
 
347
2008-08-08  Manuel Lopez-Ibanez  
348
 
349
        PR 28875
350
        * lang.c (java_handle_option): Replace set_Wunused with
351
        warn_unused.
352
 
353
2008-07-30  Ralf Wildenhues  
354
 
355
        * gcj.texi: Update copyright years.  Do not list GPL as
356
        Invariant Section.
357
 
358
2008-07-29  Jakub Jelinek  
359
 
360
        * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
361
        from ctype's sizes.
362
 
363
        * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
364
        alignment.
365
 
366
2008-07-29  Jan Hubicka  
367
 
368
        * lang.c (java_post_options): Remove handling of flag_no_inline.
369
 
370
2008-07-28  Richard Guenther  
371
 
372
        Merge from gimple-tuples-branch.
373
 
374
        2008-07-18  Richard Guenther  
375
 
376
        * expr.c: Include tree-iterator.h.
377
        * Make-lang.in (expr.o): Add tree-iterator.h dependency.
378
 
379
        2008-07-18  Aldy Hernandez  
380
 
381
        * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
382
        * expr.c: Same.
383
 
384
        2008-07-14  Aldy Hernandez  
385
 
386
        * java-gimplify.c (java_gimplify_expr): Same.
387
        (java_gimplify_modify_expr): Same.
388
        * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
389
 
390
        2008-05-02  Diego Novillo  
391
 
392
        * expr.c (build_java_throw_out_of_bounds_exception): Fix
393
        mixed declarations and code.
394
 
395
        2008-05-02  Doug Kwan  
396
 
397
        * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
398
        _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
399
 
400
        2008-02-19  Diego Novillo  
401
 
402
        http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
403
 
404
        * java-gimplify.c (java_gimplify_self_mod_expr): Change
405
        gimple_seq arguments to gimple_seq *.  Update all users.
406
 
407
        2007-11-26  Aldy Hernandez  
408
 
409
        * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
410
        sequences.
411
        (java_gimplify_self_mod_expr): Same.
412
        * java-tree.h (java_gimplify_expr): Make pre_p and post_p
413
        sequences.
414
 
415
2008-07-24  Jan Hubicka  
416
 
417
        * java/decl.c: Include cgraph.h
418
        (end_java_method): Remove non-unit-at-a-time code.
419
        (java_mark_decl_local): Likewise; sanity check that we don't touch
420
        finalized nodes.
421
 
422
2008-07-15  Jan Hubicka  
423
 
424
        * lang.c (java_init_options): Enable unit-at-a-time by default.
425
 
426
2008-07-14  Ralf Wildenhues  
427
 
428
        * Make-lang.in (jvspec.o): Fix dependencies.
429
 
430
2008-07-06  Tom Tromey  
431
 
432
        * Make-lang.in (java/parse.o-warn): Remove.
433
        (java/jcf-io.o-warn): Remove.
434
 
435
2008-07-05  Tom Tromey  
436
 
437
        * jcf-io.c: Don't include fnmatch.h.  Don't use JCF_USE_SCANDIR.
438
        (compare_path): Remove.
439
        (java_or_class_file): Likewise.
440
        (memoized_dirlist_entry): Likewise.
441
        (memoized_dirlist_hash): Likewise.
442
        (memoized_dirlist_lookup_eq): Likewise.
443
        (memoized_dirlists): Likewise.
444
        (caching_stat): Likewise.
445
        (find_class): Use stat.
446
        * jcf.h (JCF_USE_SCANDIR): Remove.
447
 
448
2008-06-30  Joshua Sumali  
449
 
450
        * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
451
        doc/rebuild-gcj-db.1
452
        (java.uninstall): Likewise.
453
        (java.maintainer-clean): Likewise.
454
        (aot-compile.pod): New rule.
455
        (rebuild-gcj-db.pod): New rule.
456
        (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
457
        * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
458
 
459
2008-06-29  Kaveh R. Ghazi  
460
 
461
        * Make-lang.in (java/jcf-io.o-warn): New.
462
 
463
2008-06-24  Tom Tromey  
464
 
465
        * jcf-path.c (jcf_path_init): Don't name variable 'try'.
466
        * expr.c (add_type_assertion): Rename argument.
467
        (build_java_arrayaccess): Don't name variable 'throw'.
468
        (ARRAY_NEW_MULTI): Don't name variable 'class'.
469
        * jcf-io.c (find_class): Don't name variable 'class'.
470
        * mangle.c (compression_table_add): Don't name variable 'new'.
471
        * constants.c (cpool_for_class): Rename argument.
472
        (alloc_constant_fieldref): Likewise.
473
        * jcf-parse.c (handle_innerclass_attribute): Don't name variable
474
        'class'.
475
        (read_class): Likewise.
476
        (parse_zip_file_entries): Likewise.
477
        (process_zip_dir): Likewise.
478
        * decl.c (java_mark_class_local): Rename argument.
479
        * class.c (GEN_TABLE): Use type_name, not typename.
480
        (gen_indirect_dispatch_tables): Likewise.
481
        (add_field): Rename argument.
482
        (is_compiled_class): Likewise.
483
        (safe_layout_class): Likewise.
484
        (emit_assertion_table): Likewise.
485
        * typeck.c (has_method): Rename argument.
486
 
487
2008-06-19  Kaveh R. Ghazi  
488
 
489
        * class.c (ident_subst, mangled_classname, unmangle_classname,
490
        gen_indirect_dispatch_tables, add_method_1,
491
        build_fieldref_cache_entry, make_local_function_alias,
492
        layout_class, java_treetreehash_find, java_treetreehash_new,
493
        split_qualified_name): Fix for -Wc++-compat.
494
        * constants.c (set_constant_entry, cpool_for_class): Likewise.
495
        * decl.c (make_binding_level, java_dup_lang_specific_decl,
496
        start_java_method): Likewise.
497
        * except.c (prepare_eh_table_type): Likewise.
498
        * expr.c (type_assertion_hash, note_instructions): Likewise.
499
        * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
500
        MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
501
        * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
502
        Likewise.
503
        * jcf-parse.c (reverse, java_read_sourcefilenames,
504
        annotation_grow, rewrite_reflection_indexes, java_parse_file,
505
        process_zip_dir): Likewise.
506
        * jcf-path.c (add_entry, add_path, jcf_path_init,
507
        jcf_path_extdirs_arg): Likewise.
508
        * jcf-reader.c (jcf_parse_constant_pool): Likewise.
509
        * jvgenmain.c (do_mangle_classname): Likewise.
510
        * lang.c (put_decl_string): Likewise.
511
        * verify-impl.c (make_state_copy, make_state, add_new_state):
512
        Likewise.
513
 
514
2008-06-15  Ralf Wildenhues  
515
 
516
        * gcj.texi: Expand TABs, remove whitespace from blank lines.
517
 
518
2008-06-14  Tom Tromey  
519
 
520
        PR java/36247:
521
        * class.c (build_class_ref): Initialize this_classdollar when
522
        needed.
523
 
524
2008-05-23  Andrew Haley  
525
 
526
        * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
527
        pathname of source file.
528
 
529
2008-05-12  Aaron W. LaFramboise  
530
 
531
        * jcf-dump.c (print_constant): Use
532
        HOST_LONG_LONG_FORMAT.
533
 
534
2008-05-07  Kenneth Zadeck 
535
 
536
        * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
537
        DECL_PURE_P.
538
 
539
2008-04-23  Paolo Bonzini  
540
 
541
        * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
542
        (build_classdollar_field): Don't set TREE_INVARIANT.
543
        (get_dispatch_table): Don't set TREE_INVARIANT.
544
        (make_class_data): Don't set TREE_INVARIANT.
545
        (build_symbol_entry): Don't set TREE_INVARIANT.
546
        (emit_symbol_table): Don't set TREE_INVARIANT.
547
        * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
548
        (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
549
        * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
550
        * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
551
 
552
2008-04-03  Tom Tromey  
553
 
554
        * Make-lang.in (java_OBJS): New variable.
555
 
556
2008-04-03  Paolo Bonzini  
557
 
558
        * java-tree.h (insert_block): Kill.
559
        * decl.c (insert_block): Kill.
560
 
561
2008-04-01  Joseph Myers  
562
 
563
        * gcj.texi: Include gpl_v3.texi instead of gpl.texi
564
        * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
565
        gpl.texi.
566
 
567
2008-03-27  Tom Tromey  
568
 
569
        * Make-lang.in: Revert automatic dependency patch.
570
 
571
2008-03-25  Tom Tromey  
572
 
573
        * Make-lang.in: Removed most explicit .o targets.
574
        (java/jvspec.o): Reduce to variable setting.  Moved to java/.
575
        ($(GCJ)$(exeext)): Update.
576
        (JAVA_OBJS): New variable.
577
        (JCFDUMP_OBJS): Reformat.
578
        (java_OBJS): New variable.
579
        (java/jvspec.o-warn): Update.
580
        (java/parse.o-warn): Remove.
581
        (JAVA_TREE_H): Remove.
582
        (java/jcf-io.o): Reduce to variable setting.
583
        (ALL_CPPFLAGS): Likewise.
584
 
585
2008-03-12  Paolo Bonzini  
586
 
587
        * mangle.c (java_mangle_decl): Remove dead check.
588
 
589
2008-03-11  Paolo Bonzini  
590
 
591
        * jcf-parse.c (java_parse_file): Assert binding levels are
592
        left in order.
593
        * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
594
        Delete.
595
 
596
2008-03-02  Jakub Jelinek  
597
 
598
        * jcf-dump.c (version): Update copyright notice dates.
599
 
600
2008-02-29  Tom Tromey  
601
 
602
        * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
603
        method.
604
        * java-tree.h (struct lang_decl_func): Remove obsolete comment.
605
 
606
2008-02-26  Tom Tromey  
607
 
608
        * lang.c (java_post_options): Remove conditional.
609
        * expr.c (expand_byte_code): Remove old location code.
610
        * jcf-parse.c (set_source_filename): Remove old location code.
611
        (give_name_to_class): Likewise.
612
        (jcf_parse): Likewise.
613
        (duplicate_class_warning): Likewise.
614
        (parse_class_file): Likewise.
615
        (java_parse_file): Likewise.
616
        * decl.c (finish_method): Remove old location code.
617
        * class.c (push_class): Remove old location code.
618
 
619
2008-02-06  Kaveh R. Ghazi  
620
 
621
        PR other/35107
622
        * Make-lang.in (jc1): Add $(GMPLIBS).
623
 
624
2008-01-23  David Daney  
625
 
626
        * class.c (hide)  Rename to...
627
        (java_hide_decl) ... this throughout, and make public.
628
        * resource.c (Jr_count): Remove.
629
        (compile_resource_data): Call java_mangle_resource_name to generate
630
        decl name.  Make resource decl public and hidden.
631
        * mangle.c (java_mangle_resource_name): New function.
632
        * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
633
        functions.
634
 
635
2008-01-04  Andrew Haley  
636
 
637
        PR java/17779
638
        * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
639
        C90.
640
 
641
2008-01-03  Andrew Haley  
642
 
643
        PR java/17779
644
        * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
645
        we're about to re-layout the type.
646
 
647
2007-12-20  Alexandre Oliva  
648
 
649
        * lang.c (java_classify_record): Don't return
650
        RECORD_IS_INTERFACE for now.
651
 
652
2007-12-18  Andrew Haley  
653
 
654
        PR java/27643
655
        * jcf-parse.c (java_parse_file): Remove call to
656
        java_mark_class_local.
657
        (parse_class_file): Reinstate call to java_mark_class_local here.
658
        * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
659
        already set, call java_mangle_decl() and make_decl_rtl() to
660
        rewrite its name as a hidden alias.
661
 
662
2007-12-15  Alexandre Oliva  
663
 
664
        PR debug/7081
665
        * lang.c (java_classify_record): New.
666
        (LANG_HOOKS_CLASSIFY_RECORD): Override.
667
 
668
2007-11-26  Andreas Krebbel  
669
 
670
        PR 34081/C++
671
        * decl.c (finish_method): Pass 'false' for the new
672
        allocate_struct_function parameter.
673
 
674
2007-11-26  Alexandre Oliva  
675
 
676
        * expr.c (build_jni_stub): Use the computed jni func type for
677
        variable meth.
678
 
679
2007-11-26  Alexandre Oliva  
680
 
681
        * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
682
 
683
2007-11-26  Alexandre Oliva  
684
 
685
        * expr.c (type_assertion_hash): Hash type uids rather than
686
        tree pointers.
687
 
688
2007-11-17  David Daney  
689
            Andrew Haley  
690
 
691
        * constants.c (build_constants_constructor):  Use POINTER_SIZE
692
        insead of BITS_PER_WORD in big-endian work around.
693
 
694
2007-11-07  Tom Tromey  
695
 
696
        PR java/34019:
697
        * gcj.texi (Input Options): Add missing noun.
698
 
699
2007-11-02  Tom Tromey  
700
 
701
        PR java/33765:
702
        * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
703
        * zipfile.h (ZIPEMPTYMAGIC): New define.
704
 
705
2007-11-01  Tom Tromey  
706
 
707
        * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
708
        (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
709
        (java/jcf-io.o): Depend on zipfile.h.
710
 
711
2007-10-17  Richard Guenther  
712
 
713
        * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
714
        dependencies.
715
 
716
2007-10-03  Andrew Haley  
717
 
718
        PR java/33639
719
        * class.c (mangled_classname): Detect and replace illegal
720
        characters in assembly language symbols.
721
        (gen_indirect_dispatch_tables): Call mangled_classname() on
722
        the type.
723
 
724
2007-09-27  Jakub Jelinek  
725
 
726
        * lang.c (java_print_error_function): Add third argument.
727
 
728
2007-09-15  Tom Tromey  
729
 
730
        * java-tree.h (struct lang_decl_func) :
731
        Remove.
732
        : Likewise.
733
        * lang.c (java_dump_tree): Update.
734
        * java-tree.h (DECL_FUNCTION_BODY): Remove.
735
 
736
2007-09-11  Jan Hubicka 
737
 
738
        * decl.c (java_expand_body): Kill.
739
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
740
 
741
2007-09-06  Tom Tromey  
742
 
743
        * jcf-parse.c (parse_class_file): Re-enter the current file.
744
 
745
2007-09-07  Roman Zippel  
746
 
747
        * boehm.c (mark_reference_fields): Move misaligned pointer check
748
        after JREFERENCE_TYPE_P test
749
 
750
2007-09-06  Roman Zippel  
751
 
752
        * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
753
        if pointer is misaligned.
754
 
755
2007-09-06  Tom Tromey  
756
 
757
        * lang.c (java_post_options): Update.
758
        * jcf-parse.c (set_source_filename): Update.
759
        (give_name_to_class): Update.
760
        (jcf_parse): Update.
761
        (duplicate_class_warning): Update.
762
        (parse_class_file): Update.
763
        (java_parse_file): Update.
764
        * expr.c (expand_byte_code): Update.
765
 
766
2007-09-05  Sandra Loosemore  
767
 
768
        * decl.c (finish_method): Use set_cfun.
769
 
770
2007-09-04  Andrew Haley  
771
 
772
        * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
773
        when using the ARM EABI.
774
 
775
2007-09-03  Daniel Jacobowitz  
776
 
777
        * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
778
 
779
2007-09-03  Kaveh R. Ghazi  
780
 
781
        * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
782
        CONST_CAST.
783
        * jcf.h (JCF_FINISH): Likewise.
784
 
785
2007-08-28  Tom Tromey  
786
 
787
        * Make-lang.in (java.tags): Don't tag '*.y' files.
788
 
789
2007-08-25  Kaveh R. Ghazi  
790
 
791
        * lang.c (java_decl_ok_for_sibcall): Likewise.
792
 
793
2007-08-21  Paul Brook  
794
            Nathan Sidwell  
795
            Mark Mitchell  
796
            Joseph Myers  
797
 
798
        * jcf-dump.c (version): Use pkgversion_string.  Update copyright
799
        date.
800
 
801
2007-08-20  Richard Guenther  
802
 
803
        * lang.c (java_tree_inlining_walk_subtrees): Remove.
804
        (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
805
 
806
2007-08-17  Tom Tromey  
807
 
808
        * typeck.c (find_method_in_interfaces): Update.
809
        * jcf-parse.c (load_class): Update.
810
        * java-gimplify.c (java_gimplify_component_ref): Removed.
811
        (java_gimplify_modify_expr): Update.  Removed pre_p and post_p
812
        arguments.
813
        (java_gimplify_expr): Update.
814
        * decl.c (java_init_decl_processing): Update.
815
        * class.c (set_constant_value): Update.
816
        (make_class_data): Update.
817
        (finish_class): Update.
818
        (build_static_field_ref): Update.
819
        (is_compiled_class): Update.
820
        (maybe_layout_super_class): Update.
821
        (layout_class): Update.
822
        (layout_class_method): Update.
823
        * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
824
        (lang_decl_var) : Removed fields.
825
        (lang_decl_func) : Removed field.
826
        (lang_type) : Removed fields.
827
        (FIELD_NESTED_ACCESS): Removed.
828
        (FIELD_NESTED_ACCESS_P): Removed.
829
        (DECL_FIELD_FINAL_IUD): Removed.
830
        (DECL_LOCAL_FINAL_IUD): Removed
831
        (LOCAL_FINAL_P): Removed.
832
        (FINAL_VARIABLE_P): Removed.
833
        (CLASS_FINAL_VARIABLE_P): Removed.
834
        (DECL_BIT_INDEX): Removed.
835
        (DECL_INIT_CALLS_THIS): Removed.
836
        (FIELD_LOCAL_ALIAS): Removed.
837
        (FIELD_LOCAL_ALIAS_USED): Removed.
838
        (FIELD_THISN): Removed.
839
        (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
840
        (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
841
        (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
842
        (TYPE_DOT_CLASS): Removed.
843
        (TYPE_VERIFY_METHOD): Removed.
844
        (ID_CLASSDOLLAR_P): Removed.
845
        (enum java_tree_index) :
846
        Removed.
847
        (classdollar_identifier_node): Removed.
848
        (TYPE_UNKNOWN): Removed.
849
        (CLASS_FROM_SOURCE_P): Removed.
850
        * expr.c (build_jni_stub): Update.
851
        (force_evaluation_order): Update.
852
        (build_java_empty_stmt): Update.
853
        (build_class_init): Update.
854
        (java_stack_swap): Update.
855
        (build_jni_stub): Update.
856
 
857
2007-08-17  Tom Tromey  
858
 
859
        * java-tree.h (LABEL_TYPE_STATE): Removed.
860
        (load_type_state): Removed.
861
        (LABEL_PC): Removed.
862
        (LABEL_VERIFIED): Removed.
863
        (type_states): Declare.
864
        * expr.c (type_states): New global.
865
        (load_type_state): Now static.  Use type_states.  Changed
866
        argument.
867
        (lookup_label): Don't set LABEL_PC.
868
        (expand_byte_code): Don't use LABEL_VERIFIED.
869
        (note_instructions): Initialize type_states.
870
        * verify-glue.c (vfy_note_stack_depth): Rewrote.
871
        (vfy_note_stack_type): Use type_states.
872
        (vfy_note_local_type): Likewise.
873
 
874
2007-08-10  Kaveh R. Ghazi  
875
 
876
        * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
877
        * jcf.h (JCF_FINISH): Likewise.
878
 
879
2007-07-31  Nick Clifton  
880
 
881
        * java-gimplify.c: Change copyright header to refer to version 3
882
        of the GNU General Public License and to point readers at the
883
        COPYING3 file and the FSF's license web page.
884
        * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
885
        decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
886
        resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
887
        javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
888
        jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
889
        verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
890
        parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
891
 
892
2007-07-30  Kaveh R. Ghazi  
893
 
894
        * jcf-io.c (find_class): Fix -Wcast-qual warnings.
895
 
896
2007-07-29  Kaveh R. Ghazi  
897
 
898
        * lang.c (java_get_callee_fndecl): Constify.
899
 
900
2007-07-27  Kaveh R. Ghazi  
901
 
902
        * mangle.c (set_type_package_list): Constify.
903
        * verify-glue.c (vfy_make_string): Delete.
904
        * verify.h (vfy_make_string): Likewise.
905
 
906
2007-07-26  Tom Tromey  
907
 
908
        * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
909
        (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
910
        EXIT_BLOCK_LABELED_BLOCK): Likewise.
911
        * lang.c (java_tree_inlining_walk_subtrees): Update.
912
        (java_dump_tree): Likewise.
913
        * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
914
        Remove.
915
        * decl.c (push_labeled_block, pop_labeled_block): Remove.
916
        * java-gimplify.c (java_gimplify_labeled_block_expr,
917
        java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
918
        (java_gimplify_expr): Update.
919
 
920
2007-07-25  Kaveh R. Ghazi  
921
 
922
        * class.c (java_treetreehash_hash, java_treetreehash_compare):
923
        Constify.
924
        * expr.c (type_assertion_eq): Likewise.
925
        * jcf-io.c (compare_path): Likewise.
926
        * jcf-parse.c (cmpstringp): Likewise.
927
        * verify-impl.c (get_one_type, compute_argument_types,
928
        compute_return_type): Likewise.
929
 
930
2007-07-16  Rainer Orth  
931
 
932
        PR target/32462
933
        PR libgcj/32465
934
        * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
935
 
936
2007-07-12  Richard Guenther  
937
 
938
        * expr.c (expand_java_return): RETURN_EXPR has void type.
939
        (build_jni_stub): Likewise.  Use a comparison against zero
940
        for null-pointer test in COND_EXPR.
941
        (build_field_ref): Build POINTER_PLUS_EXPR with correct
942
        type.  Convert result instead.
943
        (build_invokevirtual): Likewise.
944
 
945
2007-07-09  Geoffrey Keating  
946
 
947
        PR 32617
948
        * lang.c (java_init): Remove setting of force_align_functions_log.
949
        * class.c (add_method_1): Set DECL_ALIGN of non-static method
950
        to cope with ptrmemfunc_vbit_in_pfn.
951
 
952
2007-07-03  David Daney  
953
 
954
        * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to
955
        include path.
956
        (doc/gcj.dvi): Same.
957
        (doc/gcj.pdf): Same.
958
        (java/index.html): Same.
959
 
960
2007-06-15 Andrew Pinski  
961
 
962
        * class.c (make_class_data): Build the index in sizetype.
963
        Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
964
        adding to a pointer type.
965
        (build_symbol_entry): Likewise.
966
        * expr.c (build_java_arrayaccess): Likewise.
967
        (build_field_ref): Likewise.
968
        (build_known_method_ref): Likewise.
969
        (build_invokevirtual): Likewise.
970
        * except.c (build_exception_object_ref): Do a
971
        NEGATIVE and then a POINTER_PLUS_EXPR instead
972
        of a MINUS_EXPR.
973
 
974
2007-06-11  Rafael Ávila de Espíndola  
975
 
976
        * typeck.c (java_signed_type): Remove.
977
        * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
978
        * java-tree.h (java_signed_type): Remove.
979
 
980
2007-05-18  Geoffrey Keating  
981
 
982
        * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
983
        (print_constant): Likewise.
984
 
985
2007-05-14  Rafael Ávila de Espíndola  
986
 
987
        * expr.c (build_java_binop): Use unsigned_type_for instead of
988
        java_unsigned_type.
989
        * java-tree.h (java_unsigned_type): Remove.
990
        * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
991
        * typeck.c (java_unsigned_type): Remove.
992
 
993
2007-04-21  Andrew Pinski  
994
 
995
        * java-tree.h (lang_tree_node): Use GENERIC_NEXT
996
        instead of checking GIMPLE_STMT_P in chain_next.
997
 
998
2007-04-06  Colin Walters  
999
 
1000
        https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
1001
        * jcf-io.c (open_class): Copy 'filename'.
1002
 
1003
2007-04-03  Andrew Haley  
1004
 
1005
        * jvgenmain.c (main): Change main to use class$, not class$$.
1006
        (do_mangle_classname): Likewise.
1007
        * class.c (hide): New function.
1008
        (add_field): Hide everything that shouldn't be visible outside a
1009
        DSO.
1010
        (build_static_class_ref): Likewise.
1011
        (build_classdollar_field): Likewise.
1012
        (make_class_data): Likewise.
1013
        (layout_class_method): Likewise.
1014
        * expr.c (special_method_p): New function.
1015
 
1016
        * class.c (push_class): Don't bogusly guess the source filename.
1017
        * jcf-parse.c (give_name_to_class): Don't set input_location from
1018
        DECL_ARTIFICIAL decls.
1019
 
1020
2007-03-30  Rafael Ávila de Espíndola  
1021
 
1022
        * typeck.c (java_signed_or_unsigned_type): Removed.
1023
        (java_signed_type): use get_signed_or_unsigned_type instead of
1024
        java_signed_or_unsigned_type.
1025
        (java_unsigned_type): Ditto.
1026
        * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
1027
        * java-tree.h (java_signed_or_unsigned_type): Removed.
1028
 
1029
2007-03-26  Tom Tromey  
1030
 
1031
        * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
1032
        (java.maintainer-clean): Likewise.
1033
        (java.install-man): Likewise.
1034
        (.INTERMEDIATE): Removed grmiregistry.pod.
1035
        (grmiregistry.pod): Removed.
1036
        * gcj.texi (Invoking gcjh): Removed.
1037
        (Invoking gjnih): Likewise.
1038
        (Invoking grmiregistry): Likewise.
1039
        (direntry): Updated.
1040
        (Top): Likewise.
1041
        (which-gcj): Removed.
1042
 
1043
2007-03-01  Brooks Moses  
1044
 
1045
        * Make-lang.in: Add install-pdf target as copied from
1046
        automake v1.10 rules.
1047
 
1048
2007-02-27  Brooks Moses  
1049
 
1050
        * gcj.texi: Standardize title page.
1051
 
1052
2007-02-18  Kazu Hirata  
1053
 
1054
        * class.c: Fix a comment typo.
1055
 
1056
2007-02-15  Sandra Loosemore  
1057
            Brooks Moses  
1058
            Lee Millward  
1059
 
1060
        * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
1061
        of build3.
1062
        (BUILD_MONITOR_EXIT): Likewise.
1063
 
1064
        * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
1065
        (java_gimplify_modify_expr): Likewise.
1066
 
1067
        * class.c (cache_this_class_ref): Use build_call_expr.
1068
        (build_static_field_ref): Likewise.
1069
        (emit_indirect_register_classes): Likewise.
1070
        (emit_register_classes): Likewise.
1071
 
1072
        * resource.c (write_resource_constructor): Use build_call_expr.
1073
 
1074
        * builtins.c (builtin_creator_function): Change interpretation of
1075
        the second parameter to be the whole CALL_EXPR instead of the arglist.
1076
        (max_builtin): Tweak parameter list.  Use new CALL_EXPR accessors.
1077
        (min_builtin): Likewise.
1078
        (abs_builtin): Likewise.
1079
        (java_build_function_call_expr): Likewise.
1080
        (convert_real): Likewise.
1081
        (UNMARSHAL3): Likewise.
1082
        (UNMARSHAL4): Likewise.
1083
        (UNMARSHAL5): Likewise.
1084
        (build_arglist_for_builtin): Delete.  Fix callers to use
1085
        build_call_expr instead.
1086
        (putObject_builtin): Tweak parameter list.  Use new CALL_EXPR
1087
        accessors.
1088
        (compareAndSwapInt_builtin): Likewise.
1089
        (compareAndSwapLong_builtin): Likewise.
1090
        (compareAndSwapObject_builtin): Likewise.
1091
        (putVolatile_builtin): Likewise.
1092
        (getVolatile_builtin): Likewise.
1093
        (VMSupportsCS8_builtin): Likewise.
1094
        (check_for_builtin): Pass entire CALL_EXPR to builtin expander
1095
        instead of arglist.
1096
 
1097
        * expr.c (build_java_athrow): Use build_call_nary instead of build3.
1098
        (build_java_throw_out_of_bounds_exception): Likewise.
1099
        (java_check_reference): Likewise.
1100
        (build_java_arraystore_check): Likewise.
1101
        (build_newarray): Likewise.
1102
        (build_anewarray): Likewise.
1103
        (expand_java_multinewarray): Use build_call_list instead of build3.
1104
        (build_java_monitor): Use build_call_nary instead of build3.
1105
        (java_create_object): Likewise.
1106
        (expand_java_NEW): Likewise.
1107
        (build_instanceof): Likewise.
1108
        (expand_java_CHECKCAST): Likewise.
1109
        (build_java_soft_divmod): Likewise.
1110
        (build_java_binop): Likewise.
1111
        (build_field_ref): Likewise.
1112
        (build_class_init): Likewise.
1113
        (rewrite_arglist_getcaller): Use build_call_expr.
1114
        (build_invokeinterface):  Use build_call_nary instead of build3.
1115
        (expand_invoke): Use build_call_list instead of build3.
1116
        (build_jni_stub): Use build_call_nary, build_call_list, or
1117
        build_call_expr instead of build3.
1118
        (expand_java_field_op): Use build_call_expr instead of build3.
1119
        (force_evaluation_order): Use new CALL_EXPR accessors.
1120
 
1121
        * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
1122
 
1123
2007-02-15  David Daney  
1124
 
1125
        * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
1126
        (java.maintainer-clean):Add gc-analyze.1.
1127
        (.INTERMEDIATE): Add gc-analyze.pod.
1128
        (gc-analyze.pod): New rule.
1129
        (java.install-man): Install gc-analyze.1
1130
        * gcj.texi: Add new section for the gc-analyze program.
1131
 
1132
2007-02-07  Andrew Haley  
1133
 
1134
        * class.c (uncache_this_class_ref): New.
1135
        * expr.c (build_jni_stub): Initialize the class.
1136
        (expand_byte_code): Call uncache_this_class_ref after generating
1137
        code.
1138
 
1139
2007-02-06  Tom Tromey  
1140
 
1141
        PR java/30714:
1142
        * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
1143
 
1144
2007-02-03  Kazu Hirata  
1145
 
1146
        * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
1147
 
1148
2007-02-02  Andrew Haley  
1149
 
1150
        * expr.c (expand_byte_code): Call cache_this_class_ref() and
1151
        cache_cpool_data_ref().
1152
        Set TYPE_CPOOL_DATA_REF.
1153
        (cache_cpool_data_ref): New function.
1154
        * constants.c (build_ref_from_constant_pool): Remove special-case
1155
        code for flag_indirect_classes.
1156
        (build_constant_data_ref): Move special-case code for
1157
        flag_indirect_classes here from build_ref_from_constant_pool.
1158
        * decl.c (finish_method): Move class initialization from here to
1159
        cache_this_class_ref.
1160
        * class.c (cache_this_class_ref): New function.
1161
        (build_class_ref): Use this_classdollar for the ouput class.
1162
 
1163
2007-02-02  David Daney  
1164
 
1165
        * class.c (is_compiled_class): Move check to avoid reloading
1166
        current class.
1167
        (layout_class_method): Don't calculate DECL_EXTERNAL if it is
1168
        already set.
1169
 
1170
2007-02-01  Andrew Haley  
1171
 
1172
        PR java/30641
1173
        * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
1174
 
1175
2007-01-31  Kazu Hirata  
1176
 
1177
        * class.c, jcf-parse.c: Fix comment typos.
1178
 
1179
2007-01-30  Tom Tromey  
1180
 
1181
        * gcj.texi (Strings): Fix documentation for JvNewString.
1182
 
1183
2007-01-30  Ralf Wildenhues  
1184
 
1185
        * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
1186
        typos.
1187
 
1188
2007-01-30  Ben Elliston  
1189
 
1190
        * jvspec.c (lang_specific_driver): Remove unused classpath_args.
1191
 
1192
2007-01-29  Tom Tromey  
1193
 
1194
        PR java/30607:
1195
        * jvspec.c (lang_specific_driver): Handle separate -I argument.
1196
        * lang.opt (-I): Add 'Separate'.
1197
 
1198
2007-01-29  Andrew Haley  
1199
 
1200
        * class.c (add_method_1): Mark fndecl as external unless we are
1201
        compiling it into this object file.
1202
 
1203
2007-01-24  Andrew Haley  
1204
 
1205
        * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
1206
        type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
1207
 
1208
2007-01-22  Andrew Haley  
1209
 
1210
        * builtins.c (VMSupportsCS8_builtin): New function.
1211
 
1212
2007-01-23  Andrew Pinski  
1213
 
1214
        PR java/30454
1215
        * jcf-io.c (opendir_in_zip): Close the file
1216
        and free zipf before returning after an error.
1217
 
1218
2007-01-16  Tom Tromey  
1219
 
1220
        * java-tree.def: Added copyright header.
1221
 
1222
2007-01-15  Tom Tromey  
1223
 
1224
        * lang.c (dump_compound_expr) : Removed
1225
        case.
1226
        * java-gimplify.c (java_gimplify_expr) :
1227
        Removed case.
1228
        * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
1229
        (EXPR_WFL_NODE): Likewise.
1230
        (EXPR_WFL_LINECOL): Likewise.
1231
        (EXPR_WFL_FILENAME): Likewise.
1232
        (EXPR_WFL_LINENO): Likewise.
1233
        (build_expr_wfl, expr_add_location): Don't declare.
1234
        (build_unknown_wfl): Removed.
1235
        (EXPR_WFL_FILENAME_NODE): Removed.
1236
        (EXPR_WFL_COLNO): Removed.
1237
        (EXPR_WFL_SET_LINECOL): Removed.
1238
        (DECL_FUNCTION_WFL): Removed.
1239
        (DECL_FIELD_FINAL_WFL): Removed.
1240
        (struct lang_decl_func) : Removed field.
1241
        : Likewise.
1242
        : Likewise.
1243
        (struct lang_decl_var) : Removed field.
1244
        (DECL_CONSTRUCTOR_CALLS): Removed.
1245
        (DECL_FUNCTION_ACCESS_DECL): Likewise.
1246
        (DECL_FUNCTION_INNER_ACCESS): Likewise.
1247
        (DECL_SPECIFIC_COUNT): Likewise.
1248
        * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
1249
        * expr.c (build_expr_wfl): Removed.
1250
        (expr_add_location): Likewise.
1251
 
1252
2007-01-12  Tom Tromey  
1253
 
1254
        * jcf-dump.c (main): Updated call to find_class.
1255
        * lang.c (java_init): Removed dead code.
1256
        * jcf-parse.c (read_class): Don't use java_source field.  Removed
1257
        dead code.
1258
        (parse_zip_file_entries): Don't use java_source field.
1259
        (process_zip_dir): Likewise.
1260
        (jcf_parse): Removed dead code.
1261
        (java_parse_file): Likewise.
1262
        (read_class): Updated call to find_class.
1263
        * jcf-io.c (find_class): Don't use java_source field.  Removed
1264
        'source_ok' argument, .java logic.
1265
        * jcf.h (JCF) : Removed field.
1266
        (JCF_ZERO): Updated.    (find_class): Updated.
1267
        * decl.c: Removed dead code.
1268
        * class.c: Removed dead code.
1269
 
1270
2007-01-11  Tom Tromey  
1271
 
1272
        * typeck.c (convert): Don't use flag_emit_class_files.
1273
        * lang.c (java_post_options): Don't use flag_emit_class_files.
1274
        (java_handle_option): Don't use flag_extraneous_semicolon or
1275
        flag_redundant.
1276
        * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
1277
        flag_emit_class_files.
1278
        (load_class): Likewise.
1279
        * java-tree.h (flag_emit_class_files): Don't declare.
1280
        (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
1281
        (flag_extraneous_semicolon): Don't declare.
1282
        (flag_not_overriding): Likewise.
1283
        (flag_static_local_jdk1_1): Likewise.
1284
        (flag_redundant): Likewise.
1285
        * expr.c (build_newarray): Don't use flag_emit_class_files.
1286
        * class.c (DEFAULT_ENABLE_ASSERT): Don't use
1287
        flag_emit_class_files.
1288
        (build_class_ref): Likewise.
1289
        * builtins.c (check_for_builtin): Don't use
1290
        flag_emit_class_files.
1291
 
1292
2007-01-10  Tom Tromey  
1293
 
1294
        * lang.c (java_can_use_bit_fields_p): Removed.
1295
        (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
1296
 
1297
2007-01-09  Andrew Haley  
1298
 
1299
        * expr.c (build_java_arrayaccess): Rewrite to generate array
1300
        access in canonical form.
1301
        (expand_java_arraystore): Use build_fold_addr_expr() on address of
1302
        array access.
1303
 
1304
2007-01-03  Andrew Haley  
1305
 
1306
        PR java/28754
1307
        * expr.c (expand_java_field_op): If we're initializing a field's
1308
        declaring interface we should not also initialize the class
1309
        context in which it was referenced.
1310
 
1311
2007-01-02  Tom Tromey  
1312
 
1313
        * java-tree.h (compiling_from_source, current_encoding,
1314
        JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
1315
        JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
1316
        JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
1317
        JTI_WFL_OPERATOR): Removed
1318
        (finit_identifier_node, instinit_identifier_node,
1319
        length_identifier_node, super_identifier_node,
1320
        continue_identifier_node, access0_identifier_node, wfl_operator):
1321
        Removed.
1322
        (cyclic_inheritance_report,
1323
        DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
1324
        DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
1325
        DECL_FIXED_CONSTRUCTOR_P): Removed.
1326
        (struct lang_decl_func) :
1327
        Removed.
1328
        (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
1329
        TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
1330
        (struct lang_type) 
1331
        import_list, import_demand_list>: Removed.
1332
        (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
1333
        cxx_keyword_p): Removed.
1334
        (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
1335
        TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
1336
        CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
1337
        IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
1338
        IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
1339
        PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
1340
        CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
1341
        LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
1342
        RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
1343
        IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
1344
        NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
1345
        PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
1346
        CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
1347
        CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
1348
        FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
1349
        BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
1350
        java_parse_abort_on_error, extract_field_decl): Removed.
1351
        (finput): Declare.
1352
        * lang.c: (compiling_from_source, current_encoding): Removed.
1353
        (java_handle_option): Ignore -fencoding.
1354
        * parse.h: Don't include lex.h.
1355
        (java_error_count, int_fits_type_p, stabilize_reference, RULE,
1356
        RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
1357
        YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
1358
        INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
1359
        INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
1360
        MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
1361
        ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
1362
        CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
1363
        OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
1364
        BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
1365
        JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
1366
        JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
1367
        IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
1368
        MANGLE_OUTER_LOCAL_VARIABLE_NAME,
1369
        MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
1370
        MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
1371
        SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
1372
        UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
1373
        AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
1374
        AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
1375
        ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
1376
        ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
1377
        LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
1378
        LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
1379
        LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
1380
        PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
1381
        IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
1382
        ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
1383
        INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
1384
        INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
1385
        JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
1386
        JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
1387
        JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
1388
        jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
1389
        JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
1390
        STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
1391
        BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
1392
        EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
1393
        GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
1394
        COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
1395
        BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
1396
        PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
1397
        CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
1398
        CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
1399
        GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
1400
        GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
1401
        GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
1402
        PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
1403
        CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
1404
        CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
1405
        CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
1406
        SET_CPC_STATIC_INITIALIZER_STMT,
1407
        SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
1408
        java_complete_class, java_check_circular_reference,
1409
        java_fix_constructors, java_layout_classes, java_reorder_fields,
1410
        java_method_add_stmt, java_get_line_col, reset_report,
1411
        java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
1412
        java_finish_classes, ctxp, ctxp_for_generation,
1413
        ctxp_for_generation_last): Removed.
1414
        * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
1415
        * mangle.c (utf8_cmp): New function.
1416
        (cxx_keywords): New global.
1417
        (cxx_keyword_p): New function.
1418
        * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
1419
        * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
1420
        NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
1421
        CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
1422
        THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
1423
        CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
1424
        * Make-lang.in (java.srcextra): Do nothing.
1425
        (parse.c, keyword.h, gt-java-parse.h): Removed targets.
1426
        (JAVA_OBJS): Don't mention deleted files.
1427
        (java.mostlyclean): Likewise.
1428
        (java.clean): Likewise.
1429
        (JAVA_LEX_C): Removed.
1430
        (buffer.o, check-init.o, parse.o): Remove unused targets.
1431
        (typeck.o): Updated.
1432
        * jcf-parse.c (read_class): Comment out unused code.
1433
        (java_layout_seen_class_methods): New function.
1434
        (parse_source_file_1, parse_source_file_2, parse_source_file_3):
1435
        Removed.
1436
        (java_parse_file): Comment out unused code.  Don't use 'ctxp'.
1437
        (init_jcf_parse): Removed.
1438
        * config-lang.in (gtfiles): Remove deleted files.
1439
        * decl.c (java_init_decl_processing): Don't initialize
1440
        finit_identifier_node, instinit_identifier_node,
1441
        length_identifier_node, super_identifier_node,
1442
        continue_identifier_node, access0_identifier_node.  Don't call
1443
        init_jcf_parse.
1444
        * class.c (cyclic_inheritance_report): New global.
1445
        (add_method_1): Don't use
1446
        DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
1447
        (maybe_layout_super_class): Comment out code.
1448
        (safe_layout_class): New function.
1449
        * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
1450
        DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
1451
        UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
1452
        NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
1453
        INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
1454
        (java_gimplify_case_expr): Removed.
1455
        (java_gimplify_default_expr): Likewise.
1456
        (java_gimplify_new_array_init): Likewise.
1457
        * parse.y: Removed.
1458
        * keyword.gperf, keyword.h: Removed.
1459
        * chartables.h: Removed.
1460
        * check-init.c: Removed.
1461
        * buffer.c, buffer.h: Removed.
1462
        * convert.h: Removed.
1463
        * gen-table.pl: Removed.
1464
        * lex.c, lex.h: Removed.
1465
 
1466
2007-01-02  Andrew Haley  
1467
 
1468
        * expr.c (expand_java_arraystore): Make sure we perform a bounds
1469
        check at runtime before we perform a type check.
1470
 
1471
2006-12-19  Andrew Haley  
1472
 
1473
        * decl.c: Bump minor BC ABI version.
1474
 
1475
2006-12-13  Gary Benson  
1476
 
1477
        * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
1478
 
1479
2006-12-12  Tom Tromey  
1480
 
1481
        * lang-specs.h: Pass -M options to jc1.
1482
        * jcf-depend.c (jcf_dependency_add_file): Don't emit
1483
        dependencies.
1484
 
1485
2006-12-07  Mohan Embar  
1486
 
1487
        * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
1488
 
1489
2006-12-06  Mohan Embar  
1490
 
1491
        * lang-specs.h: Pass '%U'-based options as separate arguments.
1492
 
1493
2006-12-05  Tom Tromey  
1494
 
1495
        PR java/29495:
1496
        * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
1497
        classes as well.
1498
        * class.c (add_field): Handle ACC_SYNTHETIC.
1499
        (add_method_1): Likewise.  Handle bridge and varargs.
1500
        (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
1501
        annotation.
1502
        (set_class_decl_access_flags): Handle synthetic and annotation.
1503
        * java-tree.h (METHOD_BRIDGE): New macro.
1504
        (METHOD_VARARGS): Likewise.
1505
        (TYPE_SYNTHETIC): Likewise.
1506
        (TYPE_ANNOTATION): Likewise.
1507
        (lang_type): New fields 'synthetic' and 'annotation'.
1508
        (lang_decl_func): New fields 'varargs' and 'bridge'.
1509
 
1510
2006-12-04  Andrew Haley  
1511
 
1512
        * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
1513
        there's no map.
1514
 
1515
2006-11-29  Gary Benson  
1516
 
1517
        * expr.c (rewrite_arglist_getcaller): Reorder.
1518
 
1519
2006-11-29  Andrew Haley  
1520
 
1521
        * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
1522
        * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
1523
 
1524
2006-11-23  Andrew Haley  
1525
 
1526
        * expr.c (rewrite_arglist_getcaller): New.
1527
        (rewrite_arglist_getclass): Fix indentation.
1528
        (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and
1529
        gnu.classpath.VMStackWalker.getCallingClassLoader().
1530
        * builtins.c (initialize_builtins): Remove duplicate def'n of
1531
        __sync_synchronize.
1532
        Add __builtin_return_address.
1533
 
1534
2006-11-22  Andrew Haley  
1535
 
1536
        * jcf-reader.c (get_attribute): Mark attr_type unused.
1537
 
1538
        * builtins.c (compareAndSwapObject_builtin): Fix declaration.
1539
 
1540
2007-01-08  Richard Guenther  
1541
 
1542
        * lex.c (do_java_lex): Use build_int_cst_wide_type.
1543
        * jcf-parse.c (get_constant): Likewise.
1544
 
1545
2006-11-12  Jan Hubicka  
1546
 
1547
        * resource.c (compile_resource_data): Update for new varpool names.
1548
        * java/class.c (build_utf8_ref): Likewise.
1549
 
1550
2006-11-12  David Daney  
1551
 
1552
        PR java/29805
1553
        * typeck.c (build_java_array_type): Increase buffer sizes.
1554
 
1555
2006-11-11  Richard Guenther  
1556
 
1557
        * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
1558
        FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1559
 
1560
2006-11-06  Andrew Haley  
1561
 
1562
        * java-tree.h (CONSTANT_LazyFlag): New.
1563
        * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
1564
        * jcf-parse.c (handle_innerclass_attribute): Write attribute to
1565
        reflection_data.
1566
        (handle_constant): Return 0 for dummy cpool entries.
1567
        Handle constants of kind Class.
1568
        Handle constants of kind NameAndType.
1569
        (handle_enclosingmethod_attribute): New.
1570
        (handle_signature_attribute): New.
1571
        (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
1572
        (HANDLE_SIGNATURE_ATTRIBUTE): New.
1573
        (handle_constant): Use unmangle_classname()rather than calling
1574
        identifier_subst() directly.
1575
 
1576
2006-11-02  Andrew Haley  
1577
 
1578
        * java-tree.h (FIELD_ENUM): New.
1579
        (lang_decl_var.field_enum): New.
1580
        (lang_type.enum_class): New.
1581
        (CLASS_ENUM): New.
1582
        * class.c (set_class_decl_access_flags): Handle enum types.
1583
        (add_field): Handle enum fields.
1584
        (get_access_flags_from_decl): Likewise.
1585
 
1586
        * class.c (make_class_data): Put reflection_data into rodata.
1587
 
1588
2006-11-01  Andrew Haley  
1589
 
1590
        * jcf-parse.c (field_offsets, bit_obstack): New variables.
1591
        (jcf_parse): Write end marker to annotation_data.
1592
        (java_parse_file): Create field_offsets bitmap.  Destroy it.
1593
        (annotation_grow, annotation_rewrite_byte)
1594
        (annotation_rewrite_short, annotation_rewrite_int)
1595
        (annotation_read_short, annotation_write_byte)
1596
        (annotation_write_short, annotation_write_int)
1597
        (handle_long_constant, handle_constant, handle_element_value)
1598
        (handle_annotation, handle_annotations)
1599
        (handle_annotation_attribute, rewrite_reflection_indexes)
1600
        (handle_member_annotations, handle_parameter_annotations)
1601
        (handle_default_annotation): New functions.
1602
        (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE)
1603
        (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE)
1604
        (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
1605
        (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
1606
        (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
1607
        * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New.
1608
        (TYPE_REFLECTION_DATA): New.
1609
        (TYPE_REFLECTION_DATASIZE): New.
1610
        * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
1611
        an enum.
1612
        * jcf-reader.c (get_attribute): Pass field/method index and
1613
        attribute type to get_attribute().
1614
        * constants.c (find_class_or_string_constant): Make nonstatic.
1615
        (cpool_for_class): Likewise.
1616
        (build_constants_constructor): Separate string and scalar types.
1617
        * class.c (make_class_data): Generate field_indexes permutation.
1618
        Pass it to rewrite_reflection_indexes().
1619
        (make_class_data): Generate constructor for reflection_data field.
1620
 
1621
2006-10-20  Tom Tromey  
1622
 
1623
        * gcj.texi (Top): Don't mention jv-scan.
1624
        (Invoking gcj): Likewise.
1625
        (Invoking gcjh): Likewise.
1626
        (Invoking gjnih): Likewise.
1627
        (Invoking gij): Likewise.
1628
        (Invoking gcj-dbtool): Likewise.
1629
        (Invoking jv-scan): Removed.
1630
        * parse-scan.y: Removed.
1631
        * jv-scan.c: Removed.
1632
        * config-lang.in (stagestuff): Don't mention jv-scan.
1633
        * Make-lang.in (java): Removed jv-scan.
1634
        (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1635
        (JVSCAN_OBJS): Removed.
1636
        (jv-scan$(exeext)): Likewise.
1637
        (JAVA_MANFILES): Removed jv-scan.1.
1638
        (java.uninstall): Don't mention jv-scan.
1639
        (java.mostlyclean): Likewise.
1640
        (java.maintainer-clean): Likewise.
1641
        (.INTERMEDIATE): Likewise.
1642
        (java/jv-scan.o): Removed.
1643
        (jv-scan.pod): Likewise.
1644
        (java.srcextra): Don't mention parse-scan.c.
1645
        (java.mostlyclean): Likewise.
1646
        (java/parse-scan.c): Removed.
1647
        (java/parse-scan.o-warn): Removed.
1648
        (java/parse-scan.o): Removed.
1649
 
1650
2006-10-20  Tom Tromey  
1651
 
1652
        * lang.c (java_handle_option): Don't use
1653
        jcf_write_base_directory.
1654
        * jcf.h (jcf_write_base_directory): Removed.
1655
        * parse.y (java_expand_classes): Don't call write_classfile.
1656
        * config-lang.in (gtfiles): Removed jcf-write.c.
1657
        * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
1658
        (java/jcf-write.o): Removed.
1659
        * jcf-parse.c (parse_class_file): Don't call write_classfile.
1660
        * java-tree.h (write_classfile): Removed declaration.
1661
        * jcf-write.c: Removed.
1662
 
1663
2006-10-20  Tom Tromey  
1664
 
1665
        * Make-lang.in (java): Removed gjnih, gcjh.
1666
        (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1667
        (GCJH_OBJS): Removed.
1668
        (GJNIH_OBJS): Likewise.
1669
        (gjnih$(exeext)): Likewise.
1670
        (gcjh$(exeext)): Likewise.
1671
        (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
1672
        (java.install-common): Don't special case gcjh.
1673
        (java.uninstall): Don't mention gcjh, gjnih.
1674
        (java.mostlyclean): Likewise.
1675
        (java.maintainer-clean): Likewise.
1676
        (.INTERMEDIATE): Likewise.
1677
        (gcjh.pod): Removed.
1678
        (gjnih.pod): Likewise.
1679
        (GCJH_TARGET_INSTALL_NAME): Removed.
1680
        (java/gjavah-jni.o): Removed.
1681
        (java/gjavah.o): Likewise.
1682
        * config-lang.in (stagestuff): Removed gjnih, gcjh.
1683
        * gjavah.c: Removed.
1684
 
1685
2006-10-17  Tom Tromey  
1686
 
1687
        * jcf-dump.c (print_element_value): Expect a utf8 constant in the
1688
        "string" case.
1689
 
1690
2006-10-17  Tom Tromey  
1691
 
1692
        * jvgenmain.c (main): Handle -findirect-dispatch.
1693
        * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
1694
        jvgenmain.
1695
 
1696
2006-10-06  Andrew Haley  
1697
 
1698
        * builtins.c (compareAndSwapInt_builtin): Check that we really do
1699
        have a compare_and_swap builtin.
1700
        (compareAndSwapLong_builtin): Likewise.
1701
        (compareAndSwapObject_builtin): Likewise.
1702
 
1703
2006-10-04  Andrew Haley  
1704
 
1705
        * builtins.c (java_builtins): Add compareAndSwapInt,
1706
        compareAndSwapLong, compareAndSwapObject, putOrderedInt,
1707
        putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
1708
        putObjectVolatile, getObjectVolatile, getIntVolatile,
1709
        getLongVolatile, getLong.
1710
        (UNMARSHAL3): New macro.
1711
        (UNMARSHAL4): Likewise.
1712
        (UNMARSHAL5): Likewise.
1713
        (build_arglist_for_builtin): New function.
1714
        (build_addr_sum, build_check_this): New functions.
1715
        (putObject_builtin. compareAndSwapInt_builtin,
1716
        compareAndSwapLong_builtin, compareAndSwapObject_builtin,
1717
        putVolatile_builtin, getVolatile_builtin): New builtins.
1718
 
1719
2006-06-08  Andrew Haley  
1720
 
1721
        * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1722
        get_symbol_table_index().
1723
        (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1724
        private method.
1725
        (build_known_method_ref): New arg: special.  Pass it to
1726
        get_symbol_table_index.
1727
        (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1728
        the method list.
1729
        (build_invokevirtual): New arg: special.  Pass it to
1730
        get_symbol_table_index.
1731
        (expand_invoke): New variable: special.
1732
        Pass it to maybe_rewrite_invocation().
1733
        Pass it to build_known_method_ref().
1734
        * class.c (build_symbol_entry): Add new arg: special.  Use it to
1735
        build the symbol table conbstructor.
1736
        (emit_symbol_table): Extract SPECIAL from the method list and pass
1737
        it to build_symbol_entry().
1738
        * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
1739
        special accordingly.
1740
 
1741
2006-09-08  Andrew Haley  
1742
 
1743
        * class.c (layout_class_method): Use build_java_signature, not
1744
        build_java_argument_signature.  Use lookup_java_method, not
1745
        lookup_argument_method.
1746
 
1747
2006-08-16  Jakub Jelinek  
1748
            Bryce McKinlay  
1749
 
1750
        * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1751
 
1752
2006-07-18  Tom Tromey  
1753
 
1754
        * lang.opt: Added missing -W options.
1755
 
1756
2006-07-12  Tom Tromey  
1757
 
1758
        PR java/28329:
1759
        * lang-specs.h: Pass '%U'-based options as separate arguments.
1760
        Use -faux-classpath.
1761
        * lang.c (java_handle_option): Handle OPT_faux_classpath.
1762
        * lang.opt (faux-classpath): New option.
1763
 
1764
2006-07-07  Tom Tromey  
1765
 
1766
        * class.c (make_class_data): Set value for reflection_data field.
1767
        * decl.c (java_init_decl_processing): Add reflection_data field.
1768
 
1769
2006-07-07  Tom Tromey  
1770
 
1771
        * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
1772
        earlier.
1773
        (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
1774
 
1775
2006-07-07  Andrew Haley  
1776
 
1777
        * jcf-parse.c (set_source_filename): Don't check for
1778
        CLASS_FROM_CURRENTLY_COMPILED_P.
1779
        Remove // comments.
1780
 
1781
2006-07-07  Andrew Haley  
1782
 
1783
        * java-tree.h (java_read_sourcefilenames): Declare.
1784
        * lang.c (java_handle_option): Call java_read_sourcefilenames().
1785
        * lang.opt (fsource-filename): New opt.
1786
        * lang-specs.h: Add -fsource-filename.
1787
        * jcf-parse.c (num_files, filenames): New variables.
1788
        (reverse, cmpstringp, java_read_sourcefilenames,
1789
        find_sourcefile): New.
1790
        (set_source_filename): Call find_sourcefile to find the real name
1791
        of a source file.
1792
 
1793
2006-06-27  Tom Tromey  
1794
 
1795
        * jcf-reader.c (get_attribute): Handle EnclosingMethod,
1796
        Signature, LocalVariableTypeTable, annotation attributes.
1797
        * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
1798
        (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
1799
        (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
1800
        (HANDLE_METHOD): Likewise.
1801
        (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
1802
        (print_annotation): New function.
1803
        (print_element_value): Likewise.
1804
        (indent): Likewise.
1805
        (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
1806
        (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
1807
        (print_parameter_annotations): New function.
1808
        (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
1809
        (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
1810
        Likewise.
1811
        (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
1812
        (print_annotations): New function.
1813
 
1814
2006-06-23  Tom Tromey  
1815
 
1816
        * lang-specs.h: Default -fsource and -ftarget to 1.5.  If
1817
        emitting class files, always use 1.5.
1818
        * gcj.texi (Input Options): Document -fsource.
1819
        (Code Generation): Document -ftarget.
1820
 
1821
2006-06-21  Tom Tromey  
1822
 
1823
        PR java/28089:
1824
        * expr.c (expand_java_field_op): Initialize field's declaring
1825
        class.
1826
 
1827
2006-06-20  Tom Tromey  
1828
 
1829
        * expr.c (push_value): Always flush quick stack.
1830
 
1831
2006-06-19  Tom Tromey  
1832
 
1833
        * expr.c (push_value): Also flush quick stack if value is a
1834
        component_ref.
1835
 
1836
2006-06-19  Tom Tromey  
1837
 
1838
        * expr.c (push_value): Flush quick stack if value has side
1839
        effects.
1840
 
1841
2006-06-13  Tom Tromey  
1842
 
1843
        * class.c (is_compiled_class): Explicitly check for current
1844
        class.
1845
 
1846
2006-06-09  Tom Tromey  
1847
 
1848
        * gjavah.c (decompile_method): Don't decompile a static field
1849
        accessor method.
1850
 
1851
2006-06-06  Tom Tromey  
1852
 
1853
        * lang-specs.h : Add .jar file to command line if
1854
        -fsaw-java-file.  Also, remove -ffilelist-file in this case.
1855
 
1856
2006-06-05  Tom Tromey  
1857
 
1858
        * jcf-dump.c (print_access_flags): Handle varargs, bridge,
1859
        synthetic, enum, annotation.
1860
        * jcf.h (ACC_BRIDGE): New macro.
1861
        (ACC_VARARGS): Likewise.
1862
        (ACC_SYNTHETIC): Likewise.
1863
        (ACC_ENUM): Likewise.
1864
        (ACC_ANNOTATION): Likewise.
1865
 
1866
2006-06-04  Tom Tromey  
1867
 
1868
        * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
1869
        * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
1870
        and -ftarget.
1871
        (lang_specific_driver): Removed dead code.  Add -fsaw-java-file
1872
        when needed.  Handle classpath-setting.
1873
        * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
1874
        * lang-specs.h: Rewrote.
1875
 
1876
2006-06-04  Tom Tromey  
1877
 
1878
        * jcf-io.c (find_class): Set source_ok to 0.
1879
        * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
1880
        (parse_class_file): Don't call java_mark_class_local.
1881
        (java_parse_file): Skip .java files.  Call java_mark_class_local
1882
        before lowering any code.
1883
        (parse_zip_file_entries): Don't call duplicate_class_warning
1884
        here.
1885
        (process_zip_dir): ... call it here.
1886
        * class.c (add_field): Don't mark field external if it is being
1887
        compiled into this object.
1888
        (make_class_data): Handle situation where class_dtable_decl is
1889
        created before Class is compiled.
1890
        (is_compiled_class): Don't assume files in zip are compiled into
1891
        this object.
1892
        (layout_class_method): Don't mark method external if it is being
1893
        compiled into this object.
1894
 
1895
2006-06-04  Tom Tromey  
1896
 
1897
        * jcf-path.c (jcf_path_compute): New function.
1898
        * jcf.h (jcf_path_compute): Declare.
1899
 
1900
2006-10-23 Rafael Ávila de Espíndola  
1901
 
1902
        * decl.c: Include langhooks.h.
1903
        (builtin_function): Remove.
1904
        (java_init_decl_processing): Replace calls to builtin_function
1905
        with add_builtin_function.
1906
        * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
1907
        (java/decl.o): Depend on langhooks.h.
1908
        * java-tree.h (builtin_function): Remove.
1909
 
1910
2006-10-10  Brooks Moses  
1911
 
1912
        * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
1913
 
1914
2006-09-12  Tom Tromey  
1915
 
1916
        * expr.c (push_value): Always flush quick stack.
1917
 
1918
2006-09-12  Tom Tromey  
1919
 
1920
        PR java/29013:
1921
        * jcf-write.c (generate_bytecode_insns) : Always note
1922
        the push of the called method's return result.
1923
 
1924
2006-09-12  Tom Tromey  
1925
 
1926
        * jvspec.c (lang_specific_driver): Read spec file even if
1927
        -fsyntax-only.
1928
 
1929
2006-09-12  Tom Tromey  
1930
 
1931
        PR java/28754:
1932
        * expr.c (expand_java_field_op): Initialize field's declaring
1933
        interface if necessary.
1934
 
1935
2006-09-12  Tom Tromey  
1936
 
1937
        PR java/28892:
1938
        * expr.c (expand_java_field_op): No error for assignments not in
1939
        class initializer or constructor.
1940
 
1941
2006-08-22  Andrew Haley  
1942
 
1943
        * decl.c (java_add_stmt): Give the statement list a type.
1944
 
1945
2006-08-16  Jakub Jelinek  
1946
            Bryce McKinlay  
1947
 
1948
        * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1949
 
1950
2006-08-10  Simon Martin  
1951
 
1952
        PR java/8923
1953
        * parse.y (build_incdec): Emit an error instead of an ICE if '++'
1954
        or '--' is used with a constant operand.
1955
        (java_complete_lhs): When processing a '++' or '--' expression,
1956
        don't call java_complete_tree but java_complete_lhs, so that a
1957
        static final variable operand is never replaced by its value. This
1958
        avoids an ICE later on.
1959
        (patch_unaryop): Fixed typo in comment.
1960
 
1961
2006-07-28  Volker Reichelt  
1962
 
1963
        * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1964
 
1965
2006-07-12  Bryce McKinlay  
1966
 
1967
        * builtins.c (check_for_builtin): If a builtin could result in a
1968
        direct call being generated, don't use it if flag_indirect_dispatch
1969
        is set.
1970
 
1971
2006-07-12  Bryce McKinlay  
1972
 
1973
        * gcj.texi (Invocation): Corrections for Invocation API example.
1974
 
1975
2006-07-04  Andrew Haley  
1976
 
1977
        * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
1978
        entry.
1979
 
1980
2006-06-21  Andrew Haley  
1981
 
1982
        * java-tree.h (update_aliases): Remove
1983
        * expr.c (expand_iinc): Remove call to update_aliases().
1984
        (STORE_INTERNAL): Likewise.
1985
        * decl.c (update_aliases, initialize_local_variable)
1986
        (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
1987
 
1988
2006-06-19  Andrew Haley  
1989
 
1990
        PR java/1305
1991
        PR java/27908
1992
        * expr.c (java_modify_addr_for_volatile): New function.
1993
        (expand_java_field_op): Handle volatile fields.
1994
        * java-gimplify.c (java_gimplify_component_ref): Call
1995
        java_modify_addr_for_volatile to give the field_ref the correct
1996
        volatile type.
1997
        (java_gimplify_modify_expr): Likewise.
1998
        * java-tree.h (java_modify_addr_for_volatile): New decl.
1999
 
2000
2006-06-17  Karl Berry  
2001
 
2002
        * gcj.texi (@dircategory): Use "Software development" instead
2003
        of "Programming", following the Free Software Directory.
2004
 
2005
2006-06-16  Andrew Haley  
2006
 
2007
        * class.c (make_class_data): When using flag_indirect_classes,
2008
        don't initialize the vtable of Class instances.
2009
 
2010
2006-06-09  Andrew Haley  
2011
 
2012
        PR java/1305
2013
        PR java/27908
2014
        * builtins.c (initialize_builtins): Add __sync_synchronize().
2015
        * class.c (add_field): Mark volatile fields.
2016
        * java-gimplify.c (java_gimplify_expr): Call new functions to
2017
        handle self-modifying exprs and COMPONENT_REFs.
2018
        (java_gimplify_component_ref): New.
2019
        (java_gimplify_modify_expr): Add handling for volatiles.
2020
 
2021
2006-06-08  Tom Tromey  
2022
 
2023
        * gcj.texi (libgcj Runtime Properties): Document
2024
        gnu.gcj.user.realname.
2025
 
2026
2006-06-08  Andrew Haley  
2027
 
2028
        * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2029
        get_symbol_table_index().
2030
        (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2031
        private method.
2032
        (build_known_method_ref): New arg: special.  Pass it to
2033
        get_symbol_table_index.
2034
        (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2035
        the method list.
2036
        (build_invokevirtual): New arg: special.  Pass it to
2037
        get_symbol_table_index.
2038
        (expand_invoke): New variable: special.
2039
        Pass it to maybe_rewrite_invocation().
2040
        Pass it to build_known_method_ref().
2041
        * class.c (build_symbol_entry): Add new arg: special.  Use it to
2042
        build the symbol table conbstructor.
2043
        (emit_symbol_table): Extract SPECIAL from the method list and pass
2044
        it to build_symbol_entry().
2045
        * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2046
        special accordingly.
2047
 
2048
2006-06-06  David Daney  
2049
 
2050
        * gcj.texi (libgcj Runtime Properties): Document
2051
        gnu.gcj.runtime.NameFinder.show_raw and
2052
        gnu.gcj.runtime.NameFinder.remove_unknown.
2053
 
2054
2006-06-06  Tom Tromey  
2055
 
2056
        * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2057
        synthetic, enum, annotation.
2058
        * jcf.h (ACC_BRIDGE): New macro.
2059
        (ACC_VARARGS): Likewise.
2060
        (ACC_SYNTHETIC): Likewise.
2061
        (ACC_ENUM): Likewise.
2062
        (ACC_ANNOTATION): Likewise.
2063
 
2064
2006-06-06  Mike Stump  
2065
 
2066
        * Make-lang.in: Rename to htmldir to build_htmldir to avoid
2067
        installing during build.
2068
 
2069
2006-05-31  Thomas Fitzsimmons  
2070
 
2071
        * gcj.texi (Extensions): Document the new gcj-dbtool-based
2072
        classname-to-library resolution mechanism.
2073
        Declare the old gnu.gcj.runtime.VMClassLoader.library_control
2074
        mechanism deprecated.
2075
        (libgcj Runtime Properties): Document
2076
        gnu.gcj.runtime.VMClassLoader.library_control's new default.
2077
 
2078
2006-05-29  Jakub Jelinek  
2079
 
2080
        * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
2081
        bit wide type.
2082
        (jword): Define to uint64 on 64-bit arches.
2083
        * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
2084
 
2085
2006-05-28  Kazu Hirata  
2086
 
2087
        * class.c, except.c, expr.c, java-gimplify.c: Fix comment
2088
        typos.
2089
 
2090
2006-05-26  Tom Tromey  
2091
 
2092
        * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
2093
        * verify-glue.c (vfy_class_type): New function.
2094
        * verify-impl.c (check_constant): Allow 'ldc class'.
2095
        * verify.h (vfy_class_type): Declare.
2096
 
2097
2006-05-25  Andrew Haley  
2098
 
2099
        PR java/27756
2100
        * decl.c (maybe_pushlevels): When variable ranges are non-nested
2101
        update all lifetimes, not just the first one.
2102
 
2103
2006-05-24  Tom Tromey  
2104
 
2105
        * java-tree.h: Fixed flag documentation.
2106
 
2107
2006-05-24  Tom Tromey  
2108
 
2109
        PR libgcj/27729:
2110
        * jcf.h (ACC_INVISIBLE): Changed value.
2111
 
2112
2006-05-24  Andrew Haley  
2113
 
2114
        PR java/27754
2115
        * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
2116
        COMPOUND_EXPR.
2117
 
2118
2006-05-16  H.J. Lu  
2119
 
2120
        * lang.opt (femit-class-file): Remove VarExists.
2121
 
2122
2006-05-16  Tom Tromey  
2123
 
2124
        * verify-impl.c (verify_instructions_0) : Special case
2125
        for Object..
2126
 
2127
2006-05-16  H.J. Lu  
2128
 
2129
        PR driver/26885
2130
        * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
2131
        $(GCC_OBJS).
2132
 
2133
2006-05-14  H.J. Lu  
2134
 
2135
        * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
2136
        (java/expr.o): Replace target.h with $(TARGET_H).
2137
        (java/parse.o): Likewise.
2138
 
2139
2006-05-10  Andrew Haley  
2140
 
2141
        * class.c (emit_indirect_register_classes): Fix comment.
2142
 
2143
2006-05-04  Tom Tromey  
2144
 
2145
        * java-tree.h (uses_jv_markobj_p): Declare.
2146
        * class.c (uses_jv_markobj_p): Removed.
2147
        * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
2148
        (get_boehm_type_descriptor): Use it.
2149
        (uses_jv_markobj_p): Moved from class.c.  Return bool.
2150
 
2151
2006-05-04  Tom Tromey  
2152
 
2153
        * java-tree.def (THIS_EXPR): Now a tcc_expression.
2154
 
2155
2006-05-04  Andrew Haley  
2156
 
2157
        * class.c (make_field_value): Always build_address_of fdecl if
2158
        there is an initializer.
2159
 
2160
2006-05-03  Andrew Haley  
2161
 
2162
        PR libgcj/27352
2163
        * expr.c (maybe_rewrite_invocation): New function.
2164
        (rewrite_arglist_getclass): Likewise.
2165
        (rules): New.
2166
        (expand_invoke): Call maybe_rewrite_invocation.
2167
        * parse.y (patch_invoke): Likewise.
2168
        * java-tree.h: (maybe_rewrite_invocation): New function.
2169
 
2170
2006-04-21  Andrew Haley  
2171
 
2172
        * lang.c (java_init): Handle flag_indirect_classes.
2173
        * jvgenmain.c: Use "class$$" instead of "class$".
2174
        * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
2175
        DECLs.
2176
        (mangle_class_field): Special case "class$$" as well as "class$".
2177
        * constants.c (build_ref_from_constant_pool): If
2178
        flag_indirect_classes, generate a ref into the heap.
2179
        * decl.c (constants_field_decl_node,
2180
        constants_data_field_decl_node): New.
2181
        * class.c (build_static_class_ref): New.
2182
        (build_classdollar_field): Factor out from build_class_ref().
2183
        (make_field_value): Handle static fields in heap.
2184
        (make_class_data): Make sure we get a static ref to class.
2185
        Make class initializer const if flag_indirect_classes.
2186
        (register_class): Build a class_ref for initialization if
2187
        flag_indirect_classes.
2188
        (emit_indirect_register_classes): New.
2189
 
2190
2006-04-08  Kazu Hirata  
2191
 
2192
        * expr.c, gjavah.c: Fix comment typos.
2193
 
2194
2006-04-03  Andrew Haley  
2195
 
2196
        PR java/26858
2197
        * expr.c (build_field_ref): Don't check the field offset if
2198
        flag_syntax_only.
2199
 
2200
2006-03-30  Andrew Haley  
2201
 
2202
        PR java/26858
2203
        * lang.c (java_attribute_table): New.
2204
        (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
2205
        * expr.c (build_field_ref): Add a null pointer check for all
2206
        fields of offset > 4k.  Don't do so for accesses via the this
2207
        pointer, which we know can never be null.
2208
        * class.c (build_java_method_type): Mark arg 1 of all nonstatic
2209
        methods nonnull.
2210
 
2211
2006-03-30  Carlos O'Donell  
2212
 
2213
        * Make-lang.in: Rename docdir to gcc_docdir.
2214
 
2215
2006-03-30  Tom Tromey  
2216
 
2217
        PR java/26042:
2218
        * parse.y (java_reorder_fields): Reset superclass field's size as
2219
        well.
2220
 
2221
2006-03-28  Tom Tromey  
2222
 
2223
        PR java/26390:
2224
        * parse.y (find_most_specific_methods_list): Added 'class'
2225
        argument.
2226
        (lookup_method_invoke): Updated.
2227
 
2228
2006-03-15  Tom Tromey  
2229
 
2230
        * jcf-write.c (generate_bytecode_insns): Use qualifying type for
2231
        non-static method calls.
2232
 
2233
2006-03-15  David Daney  
2234
 
2235
        * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
2236
        declaration.
2237
 
2238
2006-03-15  David Daney  
2239
 
2240
        * lang.opt (-freduced-reflection): New option.
2241
        * lang.c (java_post_options): Generate an error if
2242
        -freduced-reflection used with -fjni or -findirect-dispatch.
2243
        * java-tree.h (flag_reduced_reflection): Declare new variable.
2244
        * boehm.c (get_boehm_type_descriptor): Indicate all pointers
2245
        if bitmap overflows and flag_reduced_reflection set.
2246
        * class.c (uses_jv_markobj_p): New function.
2247
        (make_class_data): Moved generation of vtable to before
2248
        reflection data, generate less reflection data if
2249
        flag_reduced_reflection set.
2250
        * gcj.texi: Document -freduced-reflection.
2251
 
2252
2006-03-15  Tom Tromey  
2253
 
2254
        PR java/26638:
2255
        * class.c (get_interface_method_index): Don't put  into
2256
        interface table.
2257
 
2258
2006-03-15  Tom Tromey  
2259
 
2260
        * parse.y (analyze_clinit_body): Ignore empty statements.
2261
 
2262
2006-03-08  David Daney  
2263
 
2264
        * gcj.texi: Document -static-libgcj option.
2265
 
2266
2006-02-20  Andrew Haley  
2267
 
2268
        * jcf-parse.c (parse_class_file): Set input_location from
2269
        current_class.
2270
 
2271
2006-02-15  Andrew Haley  
2272
 
2273
        * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
2274
        (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
2275
        TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
2276
 
2277
2006-02-09  Andrew Haley  
2278
 
2279
        PR java/26192
2280
        * expr.c (expand_invoke): Allow methods in arrays to be resolved
2281
        in their superclass.
2282
 
2283
        * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
2284
        array types.
2285
 
2286
2006-02-08  Tom Tromey  
2287
 
2288
        PR java/22578:
2289
        * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
2290
        * builtins.c (convert_real): New function.
2291
        (java_builtins): Handle Float.intBitsToFloat,
2292
        Float.floatToRawIntBits, Double.longBitsToDouble,
2293
        Double.doubleToRawLongBits.
2294
 
2295
2006-02-07  Andrew Haley  
2296
 
2297
        * expr.c (expand_invoke): (BC mode.)  If we find a method in a
2298
        class other than the one in which we expected to find it, ignore
2299
        the result.
2300
 
2301
        PR java/25535
2302
        * constants.c (build_constants_constructor): move initializer into
2303
        first halfword on a 64-bit big-endian machine.
2304
 
2305
2006-02-04  Tom Tromey  
2306
 
2307
        PR java/25676:
2308
        * builtins.c (max_builtin): Skip floating point 'max'.
2309
        (min_builtin): Skip floating point 'min'.
2310
        (check_for_builtin): Never return NULL_TREE.
2311
 
2312
2006-02-04  Tom Tromey  
2313
 
2314
        PR java/26097:
2315
        * expr.c (push_type): Avoid side effect in gcc_assert.
2316
 
2317
2006-02-04  Roger Sayle  
2318
 
2319
        * decl.c (java_init_decl_processing): Create char_type_node as a
2320
        regular INTEGER_TYPE node.
2321
        (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
2322
        * typeck.c (convert): No longer check for CHAR_TYPEs but instead
2323
        test for char_type_node and promoted_char_type_node as special
2324
        instances of INTEGER_TYPE tree codes.
2325
        (promote_type,build_java_signature): Likewise.
2326
        * jcf-write.c (adjust_typed_op): Likewise.
2327
        * mangle.c (mangle_type): Likewise.
2328
        * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
2329
        * parse.h (JINTEGRAL_TYPE_P): Likewise.
2330
 
2331
2006-02-04  Andreas Tobler  
2332
 
2333
        * expr.c (java_stack_swap): Revert gcc_assert patch.
2334
 
2335
2006-02-03  Ben Elliston  
2336
 
2337
        * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
2338
        * typeck.c: Likewise.
2339
        * verify-impl.c: Likewise.
2340
        * class.c: Likewise.
2341
        * decl.c: Likewise.
2342
        * jcf-parse.c: Likewise.
2343
        * constants.c: Likewise.
2344
        * check-init.c: Likewise.
2345
        * jcf-write.c: Likewise.
2346
        * verify-glue.c: Likewise.
2347
        * mangle.c: Likewise.
2348
        * expr.c: Likewise.
2349
        * lang.c: Likewise.
2350
        * boehm.c: Likewise.
2351
 
2352
2006-02-01  Jan Hubicka  
2353
 
2354
        * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
2355
        * lang.c (java_init_options): Set no_unit_at_a_time_default.
2356
 
2357
2006-01-30  Andrew Haley  
2358
 
2359
        PR java/21428
2360
        * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
2361
 
2362
2006-01-21  Joseph S. Myers  
2363
 
2364
        * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
2365
        Update copyright notice dates.
2366
 
2367
2006-01-16  Rafael Ávila de Espíndola  
2368
 
2369
        * jvspec.c (lang_specific_spec_functions): Remove.
2370
 
2371
2006-01-06  Tom Tromey  
2372
 
2373
        * gcj.texi (Arrays): Added more documentation for
2374
        JvNewObjectArray.
2375
        (Primitive types): Correct information about primitive classes.
2376
        (Reference types): New node.
2377
        (Index): New node.
2378
 
2379
2005-12-16  Alexandre Oliva  
2380
 
2381
        * jcf-parse.c (set_source_filename): Set the decl source location
2382
        even when returning early.
2383
 
2384
2005-12-15  Tom Tromey  
2385
            Andrew Haley  
2386
 
2387
        PR java/25429
2388
        * parse.y (resolve_expression_name): Don't generate accessor
2389
        methods for constant fields.
2390
 
2391
2005-12-13  Andrew Haley  
2392
 
2393
        PR java/25366
2394
        PR java/25368
2395
        * class.c (maybe_layout_super_class): Update current_class before
2396
        calling do_resolve_class.
2397
 
2398
2005-12-12  H.J. Lu  
2399
 
2400
        PR java/25330
2401
        * jcf-write.c (write_classfile): Use PID in temporary class
2402
        file. Save/restore errno when reporting error.
2403
 
2404
2005-12-10  Terry Laurenzo  
2405
 
2406
        PR java/9861
2407
        * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
2408
        to bare_function_type and including the return type
2409
        * builtins.c (initialize_builtins) : Change builtin mangled name
2410
        constants to conform to new mangling scheme
2411
 
2412
2005-12-08  Andrew Haley  
2413
 
2414
        PR libgcj/25265
2415
        * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
2416
        (soft_abstractmethod_node): New.
2417
        * expr.c (build_field_ref): Add in-line check for missing field.
2418
        * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
2419
 
2420
2005-12-07  Rafael Ávila de Espíndola  
2421
 
2422
        * Make-lang.in (java.all.build, java.install-normal): Remove.
2423
 
2424
2005-12-07  Rafael Ávila de Espíndola  
2425
 
2426
        * Make-lang.in: Remove all dependencies on s-gtype, except for
2427
        gt-java-parse.h.
2428
 
2429
2005-12-07  Richard Sandiford  
2430
 
2431
        * class.c (build_utf8_ref, emit_register_classes): Use
2432
        switch_to_section and get_section.
2433
 
2434
2005-12-06  Tom Tromey  
2435
 
2436
        PR java/25283:
2437
        * parse.y (patch_new_array_init): Revert previous patch.
2438
        (lookup_method_invoke): Use size-less array type when creating an
2439
        anonymous constructor.
2440
 
2441
2005-12-05  Tom Tromey  
2442
 
2443
        * parse.y (patch_new_array_init): Don't set length on array.
2444
 
2445
2005-12-02  Richard Guenther  
2446
 
2447
        * java-gimplify.c (java_gimplify_labeled_block_expr): Use
2448
        buildN instead of build.
2449
        * class.c (finish_class): Likewise.
2450
        * expr.c (java_create_object): Likewise.
2451
 
2452
2005-11-28  Tom Tromey  
2453
 
2454
        PR java/18278:
2455
        * expr.c (build_jni_stub): Unwrap the return value.
2456
        * java-tree.h (soft_unwrapjni_node): New define.
2457
        (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
2458
        * decl.c (java_init_decl_processing): Initialize
2459
        soft_unwrapjni_node.
2460
 
2461
2005-11-24  Bryce McKinlay  
2462
 
2463
        * gcj.texi (gij options): Add -Xss documentation.
2464
 
2465
2005-11-08  Wil Mahan  
2466
 
2467
        PR java/23617
2468
        * zextract.c (read_zip_archive): Fix out of memory error when
2469
        reading jar files with zip-style comments.
2470
 
2471
2005-11-07   Terry Laurenzo   
2472
 
2473
        * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
2474
        formats.
2475
        * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
2476
 
2477
2005-10-12  Nathan Sidwell  
2478
            Wil Mahan 
2479
 
2480
        PR java/23620
2481
        * class.c (make_class): Create empty binfo here.
2482
        (set_super_info): Only create binfo if we have superclasses.
2483
 
2484
2005-10-03  Ranjit Mathew  
2485
 
2486
        PR java/24127
2487
        * parse.y (method_header): Make the result of the rule a NULL_TREE
2488
        when a parsing error occurs.
2489
 
2490
2005-09-29  Tom Tromey  
2491
 
2492
        PR java/24120:
2493
        * jcf-io.c (memoized_dirlist_hash): New function.
2494
        (caching_stat): Use it.
2495
 
2496
2005-09-21  Ranjit Mathew  
2497
 
2498
        PR java/21418
2499
        * class.c (inherits_from_p): Try to lay out super class
2500
        if it is not already laid out.
2501
        (maybe_layout_super_class): Handle the case where SUPER_CLASS
2502
        is a NULL_TREE.
2503
 
2504
2005-09-18  James A. Morrison  
2505
 
2506
        * builtins.c (max_builtin, min_builtin, abs_builtin,
2507
        java_build_function_call_expr): Use fold_buildN.
2508
        * class.c (layout_class_method): Likewise.
2509
        * expr.c (java_truthvalue_conversion, build_java_jsr,
2510
        build_java_arrayaccess, expand_java_arrayload, expand_iinc,
2511
        build_java_binop, build_field_ref, expand_compare,
2512
        build_known_method_ref, build_invokevirtual,
2513
        process_jvm_instruction): Likewise.
2514
        * parse.y (patch_binop, patch_exit_expr): Likewise.
2515
        * typeck.c (convert_ieee_real_to_integer): Likewise.
2516
        (convert): Don't call fold after convert_ieee_real_to_integer.
2517
 
2518
2005-09-14  Bryce McKinlay  
2519
 
2520
        PR java/23891
2521
        * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
2522
        the newly created type. Set import lists here, not in create_class.
2523
        (jdep_resolve_class): Set current_class.
2524
        (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
2525
        the current package context, not ctxp->package.
2526
        (cicp_cache): Removed.
2527
        (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
2528
        * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
2529
        * java-tree.h (TYPE_PACKAGE): New macro.
2530
        (struct lang_type): New member 'package'.
2531
 
2532
2005-09-09  Andrew Haley  
2533
 
2534
        PR libgcj/23182
2535
        * expr.c (pop_type_0): If the expected type is object or ptr
2536
        (i.e. void*), return the type of the object we just popped from
2537
        the stack.
2538
 
2539
2005-09-06  Andrew Pinski  
2540
 
2541
        * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
2542
        BLOCK_EXPR_BODY before returning the new BIND_EXPR.
2543
 
2544
2005-09-06  Kazu Hirata  
2545
 
2546
        * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
2547
        jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
2548
        typos.  Follow spelling conventions.
2549
 
2550
2005-09-05  Ranjit Mathew  
2551
 
2552
        PR java/23431
2553
        * typeck.c (lookup_do): Look up interfaces for the original class,
2554
        not the base class.
2555
        * parse.y (java_check_regular_methods): Fix diagnostic message for
2556
        more restrictive overriding of a method from an interface.
2557
 
2558
2005-08-16  Tom Tromey  
2559
 
2560
        * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
2561
        class' initial state.
2562
 
2563
2005-08-16  Ranjit Mathew  
2564
 
2565
        PR java/22113
2566
        * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
2567
        `literal_token' for large numeric input tokens.
2568
 
2569
2005-08-16  Ranjit Mathew  
2570
 
2571
        PR java/19870
2572
        * parse.y (nested_field_access_p): Rename to nested_member_access_p
2573
        and expand to handle method accesses across nested classes.
2574
        (build_outer_method_access_method): Rename to
2575
        build_nested_method_access_method.  Minor adjustments to comments.
2576
        (resolve_expression_name): Use the newly-renamed
2577
        nested_member_access_p method.
2578
        (resolve_qualified_expression_name): Likewise.
2579
        (patch_method_invocation): Also consider static methods for access
2580
        method generation.  Minor adjustments to comments.
2581
        (maybe_use_access_method): Use the more general
2582
        nested_memeber_access_p to determine access across nested class
2583
        boundaries.  Allow THIS_ARG to be NULL (for static methods).
2584
 
2585
2005-08-15  Tom Tromey  
2586
 
2587
        PR java/23300.
2588
        * expr.c (build_field_ref): Don't generate otable reference when
2589
        DECL_FIELD_OFFSET is 0.
2590
        * class.c (maybe_layout_super_class): Pass outer class to
2591
        do_resolve_class.
2592
 
2593
2005-08-15  Tom Tromey  
2594
 
2595
        * java-tree.h (LABEL_IN_SUBR): Removed.
2596
        (LABEL_IN_SUBR): Likewise.
2597
        (LABEL_IS_SUBR_START): Likewise.
2598
        (LABEL_SUBR_START): Likewise.
2599
        (LABEL_SUBR_CONTEXT): Likewise.
2600
        (LABEL_CHANGED): Likewise.
2601
        (LABEL_RETURN_LABEL): Likewise.
2602
        (LABEL_RETURN_TYPE_STATE): Likewise.
2603
        (LABEL_RETURN_LABELS): Likewise.
2604
        (RETURN_MAP_ADJUSTED): Likewise.
2605
        (LABEL_PENDING_CHAIN): Likewise.
2606
 
2607
2005-08-15  Tom Tromey  
2608
 
2609
        * Make-lang.in (JAVA_OBJS): Removed verify.o
2610
        (java/verify.o): Removed.
2611
        * verify.c: Removed.
2612
        * lang.c (flag_new_verifier): Removed.
2613
        (java_post_options): Updated.
2614
        * java-tree.h (flag_new_verifier): Removed.
2615
        (verify_jvm_instructions): Removed.
2616
        * expr.c (pop_type_0): Assume flag_new_verifier is true.
2617
        (build_java_check_indexed_type): Likewise.
2618
        (expand_java_arraystore): Likewise.
2619
        (expand_java_arrayload): Likewise.
2620
        (pop_arguments): Likewise.
2621
        (expand_byte_code): Likewise.
2622
        (process_jvm_instruction): Likewise.
2623
 
2624
2005-08-10  Andrew Haley  
2625
 
2626
        * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
2627
        type mismatches to make legal GIMPLE.
2628
 
2629
2005-08-10  Robin Green 
2630
 
2631
        PR java/23230:
2632
        * parse.y (maybe_use_access_method): Generalize check from
2633
        java.lang.Object to any superclass of current_class
2634
 
2635
2005-08-08  Nathan Sidwell  
2636
 
2637
        * class.c (build_class_ref): Wrap the primary class type in a
2638
        NOP_EXPR.
2639
        * parse.y (java_complete_lhs) : Extract the
2640
        primary class type from the NOP_EXPR in which it was placed.
2641
 
2642
2005-07-28  Diego Novillo  
2643
 
2644
        * expr.c (expand_load_internal): Fix missing parens in
2645
        predicate.
2646
 
2647
2005-07-28  Andrew Haley  
2648
 
2649
        * expr.c (expand_load_internal): Convert to destination type.
2650
 
2651
2005-07-22  Manfred Hollstein  
2652
 
2653
        * verify-impl.c (check_class_constant): Fix uninitialised warnings.
2654
        (check_constant): Likewise.
2655
        (check_wide_constant): Likewise.
2656
 
2657
2005-07-20  Giovanni Bajo  
2658
 
2659
        Make CONSTRUCTOR use VEC to store initializers.
2660
        * check-init.c (check_init): Update to cope with VEC in
2661
        CONSTRUCTOR_ELTS.
2662
        * class.c (make_field_value, make_method_value, get_dispatch_table,
2663
        make_class_data, emit_symbol_table, emit_catch_table,
2664
        emit_assertion_table): Use build_constructor_from_list instead of
2665
        build_constructor.
2666
        * constants.c (build_constants_constructor): Likewise.
2667
        * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
2668
        VEC in CONSTRUCTOR_ELTS.
2669
        * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
2670
        PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
2671
        of a TREE_LIST.
2672
        * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
2673
        CONSTRUCTOR_ELTS.
2674
        * parse.y (build_new_array_init): Use build_constructor_from_list
2675
        instead of build_constructor.
2676
        (patch_new_array_init): Update to cope with VEC in
2677
        CONSTRUCTOR_ELTS.
2678
        (array_constructor_check_entry): Likewise.
2679
 
2680
2005-07-12  Tom Tromey  
2681
 
2682
        * jvspec.c (lang_specific_driver): Put filelist_filename first on
2683
        command line.
2684
 
2685
2005-07-12  Tom Tromey  
2686
 
2687
        PR java/19674:
2688
        * parse-scan.y (interface_member_declaration): Added
2689
        empty_statement.
2690
 
2691
2005-07-08  Daniel Berlin  
2692
 
2693
        * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
2694
        (LABEL_PENDING_CHAIN): Ditto.
2695
        (LABEL_PC): Ditto.
2696
        (DECL_BIT_INDEX): Ditto.
2697
 
2698
2005-07-07  Bryce McKinlay  
2699
 
2700
        PR java/18119
2701
        * parse.y (inner_class_accessible): New function. Logic moved from
2702
        check_inner_class_access.
2703
        (check_inner_class_access): Use inner_class_accessible.
2704
        (resolve_inner_class): Simplify arguments. Create circularity hash
2705
        here. Keep looking for classes if we found one that was inaccessible.
2706
        Return the inaccessible class only if there is no other match.
2707
        (do_resolve_class): Update for new resolve_inner_class arguments.
2708
        Don't create circularity_hash here.
2709
 
2710
2005-07-07  Bryce McKinlay  
2711
 
2712
        PR java/21045
2713
        * parse.y (add_exception_to_throws): New function.
2714
        (purge_unchecked_exceptions): Removed.
2715
        (get_constructor_super): Renamed from verify_constructor_super. Now
2716
        returns the super constructor after verification.
2717
        (java_complete_expand_method): Don't use purge_unchecked_exceptions
2718
        or save/restore the exception list.
2719
        (check_thrown_exceptions): Add uncaught exceptions in anonymous
2720
        class initializers and constructors to the throws clause of the method.
2721
 
2722
2005-07-05  Bryce McKinlay  
2723
 
2724
        PR java/19674
2725
        * parse.y (interface_member_declaration): Allow empty statements in
2726
        interface declarations.
2727
 
2728
2005-07-05  Paolo Bonzini  
2729
 
2730
        * Makefile.in (parse.o): Adjust dependencies.
2731
        * parse.y: Include tree-dump.h.
2732
 
2733
2005-07-02  Joseph S. Myers  
2734
 
2735
        * class.c, decl.c, expr.c: Use '+' flag instead of %J.  Use 'q'
2736
        flag for quoting.
2737
 
2738
2005-07-01  Andrew Pinski  
2739
 
2740
        * parse.y (issue_warning_error_from_context): Call
2741
        pp_output_formatted_text to be able to get the buffer.
2742
 
2743
2005-06-30  Andrew Pinski  
2744
 
2745
        * parse.y (issue_warning_error_from_context): Update for the
2746
        renaming of pp_format_text to pp_format.
2747
 
2748
2005-06-28  Paul Brook  
2749
 
2750
        * decl.c (java_init_decl_processing): Call
2751
        default_init_unwind_resume_libfunc.
2752
 
2753
2005-06-27  Tom Tromey  
2754
 
2755
        PR java/21540, PR java/13788:
2756
        * parse.y (java_complete_lhs) : Use
2757
        fold_constant_for_init.
2758
        (patch_binop): Added 'folding' argument.  Updated all callers.
2759
        (patch_unaryop) : New case.
2760
        (fold_constant_for_init) : Likewise.
2761
        (fold_constant_for_init) : Fix sense of test.
2762
 
2763
2005-06-25  Jan Hubicka  
2764
 
2765
        * builtins.c (define_builtin): Accept new flags parameter.
2766
        (initialize_builtins): Mark the builtins const and nothrow accordingly.
2767
 
2768
2005-06-25  Kelley Cook  
2769
 
2770
        * all files: Update FSF address in copyright headers.
2771
 
2772
2005-06-24  Tom Tromey  
2773
 
2774
        * verify-impl.c (verify_instructions_0): Correctly handle
2775
        situation where PC falls off end.
2776
 
2777
2005-06-23  Bryce McKinlay  
2778
 
2779
        PR java/20697
2780
        * parse.y (find_most_specific_methods_list): Remove special case for
2781
        inner classes.
2782
 
2783
2005-06-15  Tom Tromey  
2784
 
2785
        PR libgcj/21906:
2786
        * class.c (make_method_value): Use soft_abstractmethod_node for
2787
        abstract method.
2788
        * java-tree.h (soft_abstractmethod_node): New define.
2789
        (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
2790
        * decl.c (java_init_decl_processing): Initialize
2791
        soft_abstractmethod_node.
2792
 
2793
2005-06-13  Geoffrey Keating  
2794
 
2795
        * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
2796
 
2797
2005-06-13  Per Bothner  
2798
 
2799
        * expr.c (int highest_label_pc_this_method,
2800
        start_label_pc_this_method): New globals.
2801
        (lookup_label): Add start_label_pc_this_method to pc for label, and
2802
        update highest_label_pc_this_method.  This prevents conflicts between
2803
        labels from different methods.
2804
        * java-tree.h: Declare new globals.
2805
        * jcf-parse.c (parse_class_file): If needed bump
2806
        start_label_pc_this_method and reset highest_label_pc_this_method.
2807
 
2808
2005-06-13  Tom Tromey  
2809
 
2810
        PR java/21844:
2811
        * parse.y (nested_field_access_p): Handle case where outer field
2812
        is inherited by enclosing class.
2813
 
2814
2005-06-12  Per Bothner  
2815
 
2816
        * class.c (inherits_from_p): Do load_class if needed.
2817
 
2818
2005-06-09  Kaveh R. Ghazi  
2819
 
2820
        * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
2821
        * java-tree.h (parse_error_context): Move...
2822
        * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
2823
        * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
2824
        * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
2825
 
2826
2005-06-08  Roger Sayle  
2827
 
2828
        * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
2829
 
2830
2005-06-06  Jakub Jelinek  
2831
 
2832
        * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
2833
        msgid for argument name.
2834
        * gjavah.c (error): Likewise.
2835
        * java-tree.h (parse_error_context): Likewise.
2836
        * parse.y (parse_error_context, parse_warning_context,
2837
        issue_warning_error_from_context): Likewise.
2838
 
2839
2005-06-01  Tom Tromey  
2840
 
2841
        PR java/21722:
2842
        * class.c (build_static_field_ref): Don't fold constant fields if
2843
        current class is from a .class file and we're using indirect
2844
        dispatch.
2845
 
2846
2005-05-31  Kaveh R. Ghazi  
2847
 
2848
        * java/verify-glue.c: Don't include errors.h and include toplev.h.
2849
        * java/Make-lang.in: Updates dependencies.
2850
 
2851
2005-05-26  Ranjit Mathew  
2852
 
2853
        PR java/19870.
2854
        * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
2855
        NESTED_FIELD_ACCESS_IDENTIFIER_P.
2856
        (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
2857
        (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
2858
        * jcf-write.c (generate_classfile): Use
2859
        NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
2860
        OUTER_FIELD_ACCESS_IDENTIFIER_P.
2861
        * parse.y (build_outer_field_access): Rename to
2862
        build_nested_field_access. Support static fields and outer-to-inner
2863
        class accesses.
2864
        (outer_field_access_p): Rename to nested_field_access_p. Support
2865
        static fields and generalise to outer-to-inner class and sibling
2866
        inner class accesses.
2867
        (outer_field_expanded_access_p): Rename to
2868
        nested_field_expanded_access_p and support static fields.
2869
        (outer_field_access_fix): Rename to nested_field_access_fix and
2870
        support static fields.
2871
        (build_outer_field_access_expr): Rename to
2872
        build_nested_field_access_expr and support static fields.
2873
        (build_outer_field_access_methods): Rename to
2874
        build_nested_field_access_methods and support static fields. For
2875
        static fields, generate accessors without class instance parameters.
2876
        (build_outer_field_access_method): Rename to
2877
        build_nested_field_access_method and support static fields.
2878
        (build_outer_method_access_method): Use
2879
        NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
2880
        OUTER_FIELD_ACCESS_IDENTIFIER_P.
2881
        (resolve_expression_name): Consider static field accesses across
2882
        nested classes.
2883
        (resolve_qualified_expression_name): Likewise.
2884
        (java_complete_lhs): Use nested_field_access_fix instead of
2885
        outer_field_access_fix.
2886
        (patch_unary_op): Rename outer_field_flag to nested_field_flag.
2887
        Use nested_field_expanded_access_p instead of
2888
        outer_field_expanded_access_p. Use nested_field_access_fix instead
2889
        of outer_field_access_fix.
2890
        (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
2891
        instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
2892
 
2893
2005-05-26  Bryce McKinlay  
2894
 
2895
        * decl.c (GCJ_BINARYCOMPAT_ADDITION,
2896
        GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
2897
        (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
2898
        MINOR_BINARYCOMPAT_ABI_VERSION): New.
2899
        (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
2900
        (parse_version): Calculate version ID using new method. Use bit-flags
2901
        for flag_indirect_dispatch and flag_bootstrap_classes.
2902
 
2903
2005-05-25  Richard Henderson  
2904
 
2905
        PR libgcj/21692
2906
        * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
2907
        * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
2908
        DECL_CONTEXT; avoid pushdecl_top_level.
2909
        (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
2910
        (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
2911
        (layout_class_method): Likewise.
2912
        * decl.c (java_mark_cni_decl_local): New.
2913
        (java_mark_class_local): Use it.
2914
        * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
2915
        (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
2916
        (struct lang_decl_func): Add local_cni;
2917
        (struct lang_decl_var): Add class_field, vtable.
2918
        (java_mangle_decl): Declare.
2919
        * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
2920
        * mangle.c: Remove dup obstack.h; include langhooks-def.h.
2921
        (mangle_obstack_1): New.
2922
        (java_mangle_decl): Remove obstack argument.  Call mangle_class_field,
2923
        mangle_vtable, and mangle_local_cni_method_decl.  Fall back to
2924
        lhd_set_decl_assembler_name for things that don't need mangling.
2925
        (mangle_class_field): Rename from java_mangle_class_field, make
2926
        static, don't call init_mangling or finish_mangling.
2927
        (mangle_vtable): Similarly.
2928
        (mangle_local_cni_method_decl): New.
2929
        (init_mangling): Remove obstack argument.  Use &mangle_obstack_1,
2930
        gcc_assert, and MANGLE_RAW_STRING.
2931
        (finish_mangling): Use gcc_assert, remove if 0 debugging code.
2932
 
2933
2005-05-25  DJ Delorie  
2934
 
2935
        * class.c (set_constant_value): Move warning control from if() to
2936
        warning(OPT_*).
2937
 
2938
2005-05-24  Richard Henderson  
2939
 
2940
        * builtins.c (define_builtin): Don't call make_decl_rtl.
2941
        * constants.c (build_constant_data_ref): Likewise.
2942
        * class.c (build_utf8_ref): Likewise.
2943
        (build_fieldref_cache_entry, build_static_field_ref): Likewise.
2944
        (get_dispatch_table, layout_class_method): Likewise.
2945
        (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
2946
        by hand.
2947
        (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
2948
        (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
2949
        to determine if we need a non-zero address.
2950
        * decl.c (builtin_function): Don't call make_decl_rtl.
2951
        (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
2952
        * expr.c (build_known_method_ref): Don't call make_decl_rtl.
2953
        * resource.c (compile_resource_data): Likewise.
2954
        * parse.y (resolve_field_access): Re-word comment to avoid
2955
        building DECL_RTL.
2956
 
2957
2005-05-24  Richard Henderson  
2958
 
2959
        * class.c (registered_class): Take it out of class_roots; turn into
2960
        a vec of trees.
2961
        (register_class): Make static.  Don't duplicate decl node.  Use
2962
        VEC_safe_push.
2963
        (emit_register_classes): Use VEC_iterate.  Use output_constant
2964
        instead of assemble_integer.  Don't call mark_decl_referenced
2965
        directly.
2966
        * java-tree.h (register_class): Remove decl.
2967
 
2968
2005-05-19  Paolo Bonzini  
2969
 
2970
        PR java/17845
2971
 
2972
        * parse.y (register_package, package_list): Remove.
2973
        (package_declaration): Do not call register_package.
2974
        (do_resolve_class): Do not use package_list.
2975
 
2976
2005-05-15  Gerald Pfeifer  
2977
 
2978
        * jcf-write.c (generate_bytecode_insns) : Remove
2979
        unused variable.
2980
 
2981
2005-05-15  Tom Tromey  
2982
 
2983
        PR java/21519:
2984
        * jcf-write.c (generate_bytecode_insns) : Don't call
2985
        NOTE_PUSH.
2986
 
2987
2005-05-12  Aaron Luchko 
2988
 
2989
        * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
2990
 
2991
2005-05-11  Tom Tromey  
2992
 
2993
        * gcj.texi (Code Generation): Document -fbootstrap-classes.
2994
        * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
2995
        (parse_version): Use it.
2996
        * lang.opt (-fbootstrap-classes): New option.
2997
 
2998
2005-05-10  Paolo Bonzini  
2999
 
3000
        PR java/21436
3001
        * class.c (maybe_layout_super_class): Look for imports in this_class.
3002
        * parse.h (ctxp_for_generation_last): New.
3003
        (do_resolve_class): Add a parameter.
3004
        * parse.y (ctxp_for_generation_last): New.
3005
        (java_pop_parser_context): Add at end of list.
3006
        (find_in_imports, find_in_imports_on_demand): Look in ctxp
3007
        if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
3008
        the given type are NULL.
3009
        (do_resolve_class): Look into the imports of the new second parameter.
3010
        Adjust recursive calls.
3011
        (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
3012
        calls to do_resolve_class.
3013
        (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
3014
        (java_complete_class): Do not do that here.
3015
 
3016
2005-05-03  Thomas Fitzsimmons  
3017
 
3018
        PR java/20309
3019
        * Make-lang.in (java): Add gjnih.
3020
        (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
3021
        (GJNIH_OBJS): New variable.
3022
        (gjnih$(exeext)): New target.
3023
        (JAVA_MANFILES): Add gjnih.1.
3024
        (java.uninstall): Add gjnih.1.
3025
        (java.mostlyclean): Add gjnih.
3026
        (java.maintainer-clean): Add gjnih.1.
3027
        (java/gjavah-jni.o): New target.
3028
        (.INTERMEDIATE): Add gjnih.pod.
3029
        (gjnih.pod): New target.
3030
        * config-lang.in (stagestuff): Add gjnih.
3031
        * gcj.texi (Top): Add gjnih node.
3032
        (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
3033
        -bootclasspath options.
3034
        (Invoking gjnih): New node.
3035
        * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
3036
        (TOOLNAME): New macro.
3037
        (error): Replace hard-coded gcjh with TOOLNAME.
3038
        (process_file): Likewise.
3039
        (usage): Likewise.
3040
        (version): Likewise.
3041
        (help): Likewise.  Add help output for -force, -old, -trace and -J
3042
        options.
3043
        (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
3044
        (options): Add force, old, trace and J fields.
3045
        (main): Handle -force, -old, -trace and -J options.
3046
 
3047
2005-05-03  Tom Tromey  
3048
 
3049
        PR java/21245:
3050
        * gjavah.c (main): Unlink output file on error.
3051
 
3052
2005-05-03  Kazu Hirata  
3053
 
3054
        * constants.c, jvgenmain.c, lang.opt, resource.c: Update
3055
        copyright.
3056
 
3057
2005-04-29  Tom Tromey  
3058
 
3059
        * expr.c (build_jni_stub): Updated for change to build_block.
3060
 
3061
2005-04-29  Andrew Pinski  
3062
 
3063
        * expr.c (force_evaluation_order): Declare 'saved' earlier.
3064
 
3065
2005-04-28  Andrew Haley  
3066
 
3067
        PR java/19285
3068
        * java-tree.h (soft_resolvepoolentry_node): New.
3069
        (alloc_constant_fieldref): Declare.
3070
        * expr.c (expand_java_field_op): Don't call class_init for
3071
        accesses to static fields with indirect dispatch.
3072
        * builtins.c (initialize_builtins): Add "__builtin_expect".
3073
        * decl.c (soft_resolvepoolentry_node): New variable.
3074
        (java_init_decl_processing): Create a decl for
3075
        "_Jv_ResolvePoolEntry".
3076
        * class.c (build_fieldref_cache_entry): New function.
3077
        (build_static_field_ref): Rewrite for indirect dispatch.
3078
        * constants.c (find_name_and_type_constant_tree): New function.
3079
        (alloc_constant_fieldref): Likewise.
3080
        (build_constants_constructor): Handle CONSTANT_Fieldref and
3081
        CONSTANT_NameAndType.
3082
 
3083
        PR java/21115
3084
        * expr.c (force_evaluation_order): Convert outgoing args smaller
3085
        than integer.
3086
 
3087
2005-04-27  Bryce McKinlay  
3088
 
3089
        * gcj.texi (libgcj Runtime Properties): Remove obsolete
3090
        gnu.gcj.runtime.NameFinder.* system properties. Update documentation
3091
        for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
3092
 
3093
2005-04-25  Kaveh R. Ghazi  
3094
 
3095
        * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
3096
        to `unlock_stream' with `unlock_std_streams'.
3097
 
3098
2005-04-25  Jakub Jelinek  
3099
 
3100
        * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
3101
        instead of just expr.h.
3102
 
3103
2005-04-24  Kaveh R. Ghazi  
3104
 
3105
        * gjavah.c (main): Unlock the stdio streams.
3106
        * jcf-dump.c (main): Likewise.
3107
        * jv-scan.c (main): Likewise.
3108
        * jvgenmain.c (main): Likewise.
3109
 
3110
2005-04-23  DJ Delorie  
3111
 
3112
        * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
3113
        parse.y: Adjust warning() callers.
3114
 
3115
2005-04-21  Bryce McKinlay  
3116
 
3117
        * gcj.texi (Object fields): Change "Integer" to "Int" in example
3118
        contructor.
3119
 
3120
2005-04-20  Bryce McKinlay  
3121
 
3122
        * gcj.texi: Fix typos and bogus example.
3123
 
3124
2005-04-19  Kazu Hirata  
3125
 
3126
        * except.c: Fix a comment typo.
3127
 
3128
2005-04-19  Julian Brown  
3129
 
3130
        * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
3131
        indirect dispatch with PIC.
3132
 
3133
2005-04-18  Andrew Haley  
3134
 
3135
        * java-except.h (struct eh_range.handler): Remove unused field.
3136
        (handle_nested_ranges): Remove function declaration.
3137
        (sanity_check_exception_range): Add function declaration.
3138
        * verify.c (verify_jvm_instructions): Remove call to
3139
        handle_nested_ranges.
3140
        * verify-glue.c (verify_jvm_instructions_new): Call
3141
        sanity_check_exception_range.
3142
        * except.c (link_handler, eh_range_freelist, link_handler,
3143
        handle_nested_ranges): Remove.
3144
        (add_handler): Rewrite.
3145
        (sanity_check_exception_range): New function.
3146
        (print_ranges): New function.
3147
 
3148
2005-04-13  Julian Brown  
3149
 
3150
        * decl.c (finish_method): Give methods once-only linkage.
3151
 
3152
2005-04-11  Richard Sandiford  
3153
 
3154
        * lang.opt: Refer to the GCC internals documentation instead of c.opt.
3155
 
3156
2005-04-07  Kaveh R. Ghazi  
3157
 
3158
        * java-tree.h: Don't use PARAMS().
3159
 
3160
2005-04-07  Per Bothner  
3161
 
3162
        * class.c (push_class): By default, suppress debug output.
3163
        (finish_class): Enable debug output for classes we're emitting.
3164
 
3165
2005-04-07  Andrew Haley  
3166
 
3167
        * gcj.texi: Correct gcj-dbtool instructions.
3168
 
3169
2005-04-04  Kazu Hirata  
3170
 
3171
        * gcj.texi: Fix a typo.
3172
        * lang.c: Fix a comment typo.
3173
 
3174
2005-04-01  Thomas Fitzsimmons  
3175
 
3176
        * gcj.texi (Invoking gij): Add descriptions of new -X options.
3177
        Mention recognized-and-ignored compatibility options.
3178
        (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
3179
        JvFree.
3180
        (About CNI): Add Memory allocation section.
3181
 
3182
2005-04-01  Tom Tromey  
3183
 
3184
        * decl.c (java_init_decl_processing): Fix types of
3185
        _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
3186
        _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
3187
        _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
3188
 
3189
2005-03-31  Jan Hubicka  
3190
 
3191
        * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
3192
        * class.c: Include cgraph.h
3193
        (make_local_functoin_alias): Mark aslias as needed.
3194
        * resource.c: Include cgraph.h
3195
        (compile_resource_data): Go via cgraph interface.
3196
 
3197
2005-03-30  Ian Lance Taylor  
3198
 
3199
        * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
3200
 
3201
2005-03-30  Tom Tromey  
3202
 
3203
        * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
3204
        inner_class_info_index==0 or outer_class_info_index==0.
3205
 
3206
2005-03-29  Tom Tromey  
3207
 
3208
        * gcj.texi (libgcj Runtime Properties): Document
3209
        gnu.gcj.runtime.endorsed.dirs.
3210
 
3211
2005-03-24  Anthony Green  
3212
 
3213
        * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
3214
        'gcj-dbtool -p'.
3215
 
3216
2005-03-23  Tom Tromey  
3217
 
3218
        * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
3219
        (parse_version): Use it.
3220
 
3221
2005-03-23  Joseph S. Myers  
3222
 
3223
        * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3224
 
3225
2005-03-18  Andrew Haley  
3226
 
3227
        PR java/20522
3228
        * decl.c (update_aliases): Don't update variables that are about
3229
        to die.
3230
        (maybe_poplevels): Add comment.
3231
 
3232
2005-03-17  Bryce McKinlay  
3233
 
3234
        PR java/20502
3235
        * jcf-parse.c (duplicate_class_warning): New function.
3236
        (java_parse_file): Call duplicate_class_warning if
3237
        CLASS_FROM_CURRENTLY_COMPILED_P is already set.
3238
        (parse_zip_file_entries): Likewise. Also set
3239
        CLASS_FROM_CURRENTLY_COMPILED_P.
3240
 
3241
2005-03-16  Andrew Haley  
3242
 
3243
        * expr.c (expand_java_arrayload): Don't generate a
3244
        NullPointerException based on the type of the node.
3245
        (build_java_array_length_access): Likewise.
3246
 
3247
2005-03-15  Zack Weinberg  
3248
 
3249
        * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
3250
 
3251
2005-03-11  Tom Tromey  
3252
 
3253
        * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
3254
        (libgcj Runtime Properties): Document the default .db.
3255
 
3256
2005-03-10  Ranjit Mathew  
3257
 
3258
        PR java/20312
3259
        * parse.y (checks_throws_clauses): Check exceptions list even when
3260
        the base class does not come from a source file being compiled.
3261
        (java_complete_lhs): Remove unused variable 'wfl'.
3262
 
3263
2005-03-09  Ranjit Mathew  
3264
 
3265
        PR java/20338
3266
        * decl.c (finish_method): Emit _Jv_InitClass for private static
3267
        methods inside inner classes as well.
3268
 
3269
2005-03-08  Julian Brown  
3270
        * Revert patch from 2005-03-08 for causing bootstrap failure on
3271
        ppc-darwin.
3272
 
3273
2005-03-08  Julian Brown  
3274
 
3275
        * decl.c (finish_method): Give methods once-only linkage.
3276
 
3277
2005-03-07  Ranjit Mathew  
3278
 
3279
        * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
3280
 
3281
2005-03-07  Bryce McKinlay  
3282
 
3283
        * verify-glue.c (vfy_is_assignable_from): Perform static check using
3284
        can_widen_reference_to if the C++ ABI is in use.
3285
        (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
3286
        * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
3287
        type_isresolved, init_state, set_pc, state_get_pc,
3288
        _Jv_BytecodeVerifier): Clean up unused and disabled functions.
3289
        (verify_fail): Report the current PC from the verifier context.
3290
        (free_state): Remove #if 0 block to enable this function.
3291
        (free_verifier_context): Call free_state on state_list iterator
3292
        values before freeing them.
3293
        * expr.c (pop_type_0): Pop correct type for error message when stack
3294
        contains a multi-word type.
3295
 
3296
2005-03-07  Ranjit Mathew  
3297
 
3298
        * expr.c (build_java_array_length_access): Remove !flag_new_verifier
3299
        for known NULL array length access.
3300
 
3301
2005-03-07  Tom Tromey  
3302
 
3303
        * gcj.texi (Invoking gcj-dbtool): Document '-f'.
3304
 
3305
2005-03-06  Kazu Hirata  
3306
 
3307
        * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
3308
        typeck.c: Update copyright.
3309
 
3310
2005-03-06  Ranjit Mathew  
3311
 
3312
        Remove xref code.
3313
        * xref.c, xref.h: Remove file.
3314
        * Make-lang.in (java/xref.o): Remove.
3315
        * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
3316
        * lang.c (flag_emit_xref): Remove definition.
3317
        * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
3318
        * typeck.c (convert): Remove use of do_not_fold.
3319
        * parse.y (do_not_fold): Remove definition.
3320
        (parser grammar): Remove xref code.
3321
        (maybe_create_class_interface_decl, create_class): Likewise.
3322
        (register_fields, method_header, finish_method_declaration): Likewise.
3323
        (declare_local_variables, source_end_java_method): Likewise.
3324
        (java_complete_expand_classes): Do not set do_not_fold.
3325
        (java_complete_expand_method): Remove xref code.
3326
        (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
3327
        (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
3328
        (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
3329
        (patch_synchronized_statement, patch_throw_statement): Likewise.
3330
        (maybe_build_class_init_for_field): Likewise.
3331
 
3332
2005-03-05  Kazu Hirata  
3333
 
3334
        * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
3335
        instead of IS_NON_TYPE_CODE_CLASS.
3336
 
3337
2005-03-04  Andrew Haley  
3338
 
3339
        PR java/18362
3340
        * class.c (set_method_index): Don't set method_index if it is
3341
        NULL_TREE.
3342
        (layout_class_method): Don't complain about "non-static method foo
3343
        overrides static method" in the case of indirect dispatch.
3344
 
3345
2005-03-02  Kaveh R. Ghazi  
3346
 
3347
        * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
3348
        warning.
3349
        * Make-lang.in: Don't elide warnings in jcf-io.c.
3350
 
3351
2005-03-01  Per Bothner  
3352
 
3353
        PR java/8608
3354
        * check-init.c (wfl): Remove static.
3355
        (final_assign_error, check_init): Replace calls to parse_error_context
3356
        by plain error.
3357
        (check_init): Save, set, and restore input_location for each exp.
3358
 
3359
2005-03-01  Per Bothner  
3360
 
3361
        * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
3362
        if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
3363
        * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
3364
 
3365
2005-03-01  Per Bothner  
3366
 
3367
        * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
3368
 
3369
2005-02-23  Thomas Fitzsimmons  
3370
 
3371
        PR libgcj/16923
3372
        * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
3373
        JvVMOption.
3374
 
3375
2005-02-22  Tom Tromey  
3376
 
3377
        PR java/20056:
3378
        * verify-impl.c (EITHER): New define.
3379
        (types_compatible): Handle it.
3380
        (check_field_constant): Use it.
3381
 
3382
2005-02-18  Tom Tromey  
3383
 
3384
        PR java/20056:
3385
        * verify-impl.c (types_equal): Fixed test.
3386
 
3387
        PR java/20056:
3388
        * verify-glue.c (vfy_class_has_field): New function.
3389
        * verify.h (vfy_class_has_field): Declare.
3390
        * verify-impl.c (check_field_constant): Added 'putfield'
3391
        argument.
3392
        (verify_instructions_0): Updated.
3393
        (types_equal): New function.
3394
 
3395
2005-02-14  Tom Tromey  
3396
 
3397
        PR java/19921:
3398
        * jcf-write.c (generate_bytecode_insns) : Note the
3399
        stack effect of multianewarray.
3400
 
3401
2005-02-14  Andrew Haley  
3402
 
3403
        PR java/19907
3404
        * expr.c (expand_byte_code): Call promote_arguments().
3405
        (promote_arguments): New function.
3406
        * decl.c (check_local_unnamed_variable): Remove special case for
3407
        new verifier.
3408
        (find_local_variable): Promote all boolean types to int
3409
        when searching for local variable decls.
3410
 
3411
2005-02-12  Kazu Hirata  
3412
 
3413
        * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
3414
        parse-scan.y: Update copyright.
3415
 
3416
2005-02-11  Per Bothner  
3417
 
3418
        PR java/15543
3419
        * parse-scan.y (input_location): Remove variable.
3420
        (main_input_filename): New - replaces input_filename, which isn't
3421
        settable if USE_MAPPED_LOCATION.
3422
        * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
3423
        so we don't reference input_location or wfl_operator in that case.
3424
        * jv-scan.c (expand_location): Remove - no longer used.
3425
        (main): Set main_input_filename rather than input_filename.
3426
 
3427
2005-02-09  Richard Henderson  
3428
 
3429
        * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
3430
        * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
3431
 
3432
2005-02-08  Marcin Dalecki  
3433
 
3434
        * expr.c (add_type_assertion): Use the proper enumeration type,
3435
        since this is what htab_find_slot() is expecting.
3436
 
3437
2005-02-06  Joseph S. Myers  
3438
 
3439
        * gcj.texi: Update copyright dates.
3440
 
3441
2005-02-02  Tom Tromey  
3442
 
3443
        * gcj.texi (libgcj Runtime Properties): Default library_control
3444
        to 'cache'.
3445
 
3446
2005-02-02  Ranjit Mathew  
3447
 
3448
        PR java/15543
3449
        * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
3450
        (modifiers) when square brackets are present in a declaration for
3451
        a final paramter.
3452
        * jv-scan.c (main): Set input_filename and input_line.
3453
 
3454
2005-02-01  Tom Tromey  
3455
 
3456
        PR java/19742:
3457
        * gjavah.c (get_field_name): Don't override name for JNI header.
3458
 
3459
2005-02-01  Roger Sayle  
3460
 
3461
        * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
3462
        of unsigned types using iushr and lushr JVM bytecodes.
3463
 
3464
2005-02-01  Ranjit Mathew  
3465
 
3466
        PR java/19738
3467
        * gjavah.c (jni_print_float): Do not emit floating-point
3468
        initialiser for a static final field.
3469
        (jni_print_double): Likewise.
3470
 
3471
2005-02-01  Mark Mitchell  
3472
 
3473
        Revert:
3474
        2005-01-31  Mark Mitchell  
3475
        * gjavah.c (print_field_info): Mark static data members of
3476
        floating-point type with "__extension__".
3477
 
3478
2005-01-31  Mark Mitchell  
3479
 
3480
        * gjavah.c (print_field_info): Mark static data members of
3481
        floating-point type with "__extension__".
3482
 
3483
2005-02-01  Ranjit Mathew  
3484
 
3485
        PR java/9157
3486
        * parse.y (build_string_concatenation): Remove redundant if.
3487
        (patch_conditional_expr): Attempt to patch_string() the condition
3488
        of a ?: as well, in addition to its other operands.
3489
 
3490
2005-01-25  Tom Tromey  
3491
 
3492
        * Make-lang.in (java/java-tree-inline.o): Removed.
3493
 
3494
2005-01-25  Ranjit Mathew  
3495
 
3496
        PR java/19070
3497
        * parse.y (patch_binop): Allow comparisons against NULL only
3498
        if the other operand is of a reference type.
3499
 
3500
2005-01-24  Tom Tromey  
3501
 
3502
        * java-tree.h (gcj_abi_version): Declare.
3503
        * class.c (make_class_data): Push gcj_abi_version into "next"
3504
        field.  Renamed field.
3505
        * decl.c (gcj_abi_version): New global.
3506
        (parse_version): New function.
3507
        (java_init_decl_processing): Call it.  Renamed 'next' field.
3508
        Include version.h.
3509
        (GCJ_BINARYCOMPAT_ADDITION): New define.
3510
 
3511
2005-01-24  Roger Sayle  
3512
 
3513
        PR java/19295
3514
        * jcf-write.c (generate_bytecode_insns): Conversions between
3515
        integer types of the same precision shouldn't generate widening
3516
        or narrowing conversion bytecodes.
3517
 
3518
2005-01-22  Kazu Hirata  
3519
 
3520
        * java-except.h, java-tree.h: Remove unused prototypes.
3521
 
3522
2005-01-20  Andrew Pinski  
3523
 
3524
        PR java/18091:
3525
        * jcf-write.c (perform_relocations): Don't call memcpy if source
3526
        and destination are the same.
3527
 
3528
2005-01-17  Tom Tromey  
3529
 
3530
        * verify-impl.c (get_short): Sign extend.
3531
        (get_int): Likewise.
3532
 
3533
2005-01-12  Ranjit Mathew  
3534
 
3535
        * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
3536
        with TYPE_SIZE.
3537
 
3538
2005-01-10  Ranjit Mathew  
3539
 
3540
        * verify.c: Revert to the version before the BC-ABI merge.
3541
 
3542
2005-01-10  Ranjit Mathew  
3543
 
3544
        PR java/19277
3545
        * check-init.c (check_init): Take care of references that do not
3546
        have an explicit final variable declaration (e.g. array length
3547
        access) for pre/post in/de-crement operators.
3548
 
3549
2005-01-08  Mark Wielaard  
3550
 
3551
        * parse.y (process_imports): Allocate (and free) original_name only
3552
        when not already defined.
3553
        * jcf-parse.c (read_class): Free results of find_class() and
3554
        lrealpath().
3555
        (java_parse_file): Keep pointer to head of file_list and free when
3556
        done. Free result of lrealpath().
3557
 
3558
2005-01-05  Tom Tromey  
3559
 
3560
        * gcj.texi (Standard Properties): java.ext.dirs is now used.
3561
 
3562
2004-12-20  Andrew Haley  
3563
 
3564
        * typeck.c: Use fold_convert for ints and booleans.
3565
 
3566
2004-12-17  Andrew Haley  
3567
 
3568
        PR java/18931
3569
        * typeck.c (convert): Use a CONVERT_EXPR when converting to
3570
        BOOLEAN_TYPE or CHAR_TYPE.
3571
        (convert_to_boolean, convert_to_char) : Remove.
3572
        * convert.h (convert_to_boolean, convert_to_char) : Remove.
3573
        * expr.c (expand_load_internal): Do type conversion if type is not
3574
        as required.
3575
 
3576
2004-12-13  Danny Smith  
3577
 
3578
        PR target/18459
3579
        * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
3580
        Update comment.
3581
 
3582
2004-12-07  Andrew Haley  
3583
 
3584
        PR java/18811:
3585
        * jcf-parse.c (load_class): Remove sanity test for missing inner
3586
        class file.
3587
 
3588
2004-12-06  Tom Tromey  
3589
 
3590
        * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
3591
        (java.uninstall): Likewise.
3592
        (java.maintainer-clean): Likewise.
3593
        (.INTERMEDIATE): Likewise.
3594
        (java.install-man): Likewise.
3595
        (gcj-dbtool.pod): New target.
3596
        * gcj.texi (Code Generation): Document -findirect-dispatch.
3597
        (libgcj Runtime Properties): Document
3598
        gnu.gcj.precompiled.db.path.
3599
        (Top): Link to "Invoking gcj-dbtool".
3600
 
3601
2004-12-06  Tom Tromey  
3602
 
3603
        PR java/14853:
3604
        * java-tree.h (extract_field_decl): Declare.
3605
        * parse.y (extract_field_decl): Renamed from
3606
        strip_out_static_field_access_decl.  No longer static.
3607
        * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
3608
 
3609
2004-12-03  Tom Tromey  
3610
 
3611
        * lang.c (flag_new_verifier): Define.
3612
        (java_post_options): Set flag_new_verifier if indirect dispatch
3613
        is being used.
3614
        * lang.opt (fnew-verifier): Removed.
3615
 
3616
2004-12-03  Tom Tromey  
3617
 
3618
        PR bootstrap/14614:
3619
        * Make-lang.in (java.install-common): Only install transformed
3620
        gcjh if gcj-cross exists.
3621
 
3622
2004-12-03  Andrew Haley  
3623
 
3624
        PR java/18812
3625
        * except.c (link_handler): Patch 'outer' field of siblings of the
3626
        range we're demoting.
3627
 
3628
2004-12-03  Andrew Haley  
3629
 
3630
        PR java/18697
3631
        * class.c (layout_class_method): Don't fail to override a method
3632
        simply because it has DECL_ARTIFICIAL set.
3633
 
3634
2004-12-02  Tom Tromey  
3635
 
3636
        PR java/16675:
3637
        * parse.y (craft_constructor): Special case null_pointer_node.
3638
 
3639
2004-12-02  Tom Tromey  
3640
 
3641
        PR java/18741:
3642
        * java-gimplify.c (java_gimplify_expr): Don't call
3643
        SET_EXPR_LOCATION unless wrapped tree is an expression.
3644
 
3645
2004-11-27  Per Bothner  
3646
 
3647
        * jcf-parse.c (set_source_filename):  Improvement to Andrew's fix:
3648
        Fix fencepost error in 'i', which got executed one too many times.
3649
        Also, fold memcpy into explicit loop, as originally intended.
3650
        Also, free temporary 'buf' which otherwise leaks.
3651
 
3652
2004-11-27  Per Bothner  
3653
 
3654
        * expr.c (build_expr_wfl): Only declare last_file and last_filenode
3655
        local static variables if not USE_MAPPED_LOCATION.
3656
 
3657
2004-11-27  Kazu Hirata  
3658
 
3659
        * class.c, decl.c, expr.c: Fix comment typos.
3660
 
3661
2004-11-26  Andrew Pinski  
3662
 
3663
        PR java/18305
3664
        * decl.c (end_java_method): Call
3665
        attach_init_test_initialization_flags on all the init_decls.
3666
        * parse.y (attach_init_test_initialization_flags): Move to ...
3667
        * expr.c (attach_init_test_initialization_flags): here and
3668
        support BIND_EXPR also.
3669
        * java-tree.h (attach_init_test_initialization_flags): Prototype.
3670
        * jcf-parse.c (parse_class_file): Don't disable class init
3671
        optimization.
3672
 
3673
2004-11-25  Joseph S. Myers  
3674
 
3675
        * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
3676
        in diagnostics.
3677
 
3678
2004-11-24  Richard Henderson  
3679
 
3680
        * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
3681
        vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
3682
 
3683
2004-11-24  Tom Tromey  
3684
 
3685
        * verify.c (defer_merging): Don't use C++-style comment.
3686
        * verify.h (java_opcode): Added java_opcode_end.
3687
        * class.c (build_class_ref): Remove C++ comment and old FIXME.
3688
 
3689
        * verify-impl.c (vfy_push_type): Removed bogus "return".
3690
        (initialize_stack): Use vfy_alloc and vfy_free.
3691
        (verify_instructions_0): Likewise.
3692
 
3693
        * Merged gcj-abi-2-dev-branch to trunk.
3694
 
3695
2004-11-24  Andrew Haley  
3696
 
3697
        * jcf-parse.c (parse_class_file): Set file_start_location.
3698
 
3699
2004-11-10  Tom Tromey  
3700
 
3701
        * class.c (make_field_value): Don't call build_static_field_ref.
3702
        (build_static_field_ref): Don't emit direct references when using
3703
        indirect dispatch.
3704
 
3705
        * gcj.texi (Invoking gij): Document -verbose.  Put -verbose and
3706
        -verbose:class into man page synopsis.
3707
 
3708
2004-11-09  Tom Tromey  
3709
 
3710
        * expr.c (build_java_arraystore_check): Still generate check if
3711
        element type is itself an array.
3712
 
3713
2004-11-08  Tom Tromey  
3714
 
3715
        * java-tree.h (soft_check_assignment_node): Removed.
3716
        (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
3717
        * decl.c (java_init_decl_processing): Don't initialize
3718
        soft_check_assignment_node.
3719
 
3720
2004-11-05  Tom Tromey  
3721
 
3722
        * class.c (layout_class_methods): Don't add Miranda methods when
3723
        using indirect dispatch.
3724
 
3725
2004-11-05  Bryce McKinlay  
3726
 
3727
        * class.c (make_class_data): Call emit_assertion_table to set the
3728
        'assertion_table' field.
3729
        (build_signature_for_libgcj): Move here from expr.c.
3730
        (add_assertion_table_entry): New function. Callback for assertion
3731
        hashtable traversal.
3732
        (emit_assertion_table): New. Take class argument, and generate
3733
        assertion table DECL based on the TYPE_ASSERTIONS hashtable.
3734
        * decl.c (init_decl_processing): Define assertion_entry_type record.
3735
        Push 'assertion_table' class field instead of 'verify'.
3736
        * expr.c (type_assertion_eq): Compare 'assertion_code' field.
3737
        (type_assertion_hash): Include 'assertion_code' in hash.
3738
        (add_type_assertion): Rewritten. Take class and assertion_code
3739
        arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
3740
        (can_widen_reference_to): Use new add_type_assertion() arguments.
3741
        * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
3742
        JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
3743
        (verify_identifier_node): Removed.
3744
        (assertion_entry_type, assertion_table_type): New.
3745
        (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
3746
        assertion code definitions.
3747
        (struct type_assertion): Add assertion_code. Rename 'source_type' and
3748
        'target_type' to 'op1' and 'op2'.
3749
        (add_type_assertion): Declare.
3750
        (lang_printable_name_wls): Remove unused definition.
3751
        * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
3752
        to emit runtime assertion.
3753
        (vfy_note_stack_type): Clean up non-C90 declarations.
3754
        (vfy_note_local_type): Likewise.
3755
        * verify.h (vfy_is_assignable_from): Declare.
3756
        * verify-impl.c (is_assignable_from_slow): Remove unused function.
3757
        (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
3758
        instead of is_assignable_from_slow().
3759
        (types_compatible): Reinstate ref_compatible() call.
3760
 
3761
2004-11-04  Tom Tromey  
3762
 
3763
        * class.c (build_static_field_ref): Reverted previous patch.
3764
 
3765
        * class.c (build_static_field_ref): Don't emit direct references
3766
        when using indirect dispatch.
3767
 
3768
2004-11-03  Tom Tromey  
3769
 
3770
        * expr.c (expand_java_arrayload): Set lhs_type_node.
3771
        (expand_java_arraystore): Set rhs_type_node.
3772
 
3773
2004-11-02  Tom Tromey  
3774
 
3775
        * jcf-parse.c (compute_class_name): Use filename length from zip
3776
        directory, not strlen.
3777
 
3778
        * expr.c (expand_invoke): Mark new interface methods as abstract.
3779
 
3780
2004-11-01  Tom Tromey  
3781
 
3782
        * verify-impl.c (push_jump): Removed check for uninitialized
3783
        objects.
3784
        (push_exception_jump): Likewise.
3785
        (handle_ret_insn): Likewise.
3786
        (handle_jsr_insn): Likewise.
3787
        (state_check_no_uninitialized_objects): Removed.
3788
 
3789
        * decl.c (check_local_unnamed_variable): Recognize
3790
        promoted-to-int parameters when using the new verifier.
3791
        * expr.c (expand_java_arraystore): Explicitly request array type
3792
        when using new verifier.
3793
        (expand_java_arrayload): Likewise.
3794
        (invoke_build_dtable): Don't pass object_type_node as
3795
        expression argument to build_java_indirect_ref.
3796
        (build_java_check_indexed_type): Do nothing.
3797
        (build_java_arraystore_check): Handle case where array doesn't
3798
        have array type.
3799
        (build_java_array_length_access): Likewise.
3800
        (expand_invoke): Handle case where interface overrides a method
3801
        from Object.
3802
        (pop_type_0): Always succeed for reference types.
3803
        (process_jvm_instruction): Don't pop a value in a dead
3804
        exception handler.
3805
        (pop_arguments): Convert arguments to correct types.
3806
 
3807
2004-10-29  Andrew Haley  
3808
 
3809
        * jcf-parse.c (give_name_to_class): Remove line that was
3810
        incorrectly merged.
3811
 
3812
2004-10-29  Andrew Haley  
3813
 
3814
        * jcf-parse.c (set_source_filename): Add code to build new sfname.
3815
 
3816
2004-10-20  Andrew Haley  
3817
 
3818
        * decl.c (end_java_method): Don't expand if flag_syntax_only.
3819
 
3820
2004-10-26  Tom Tromey  
3821
 
3822
        * verify.h (vfy_notify_verified): Removed.
3823
        * verify-glue.c (vfy_notify_verified): Removed.
3824
 
3825
2004-10-26  Tom Tromey  
3826
 
3827
        * verify-impl.c (debug_print_state): Declare `i' before code.
3828
        (merge_types): Modify `t' when it is null_type.
3829
 
3830
2004-10-26  Tom Tromey  
3831
 
3832
        * verify-impl.c (type_print): Renamed from print.  Now static and
3833
        takes an argument.
3834
        (debug_print_state): Use type_print.
3835
 
3836
2004-10-25  Tom Tromey  
3837
 
3838
        * expr.c (build_invokeinterface): Compute correct offset for
3839
        index into interface methods.
3840
 
3841
2004-10-20  Tom Tromey  
3842
 
3843
        * java-tree.h (verify_jvm_instructions_new): Declare.
3844
 
3845
        * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
3846
        command line.
3847
 
3848
        * verify-impl.c (verify_instructions): Correctly handle wide
3849
        types on the stack.
3850
        * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
3851
        (vfy_get_component_type): Strip pointer types.
3852
        (vfy_find_class): Use get_type_from_signature.  Strip pointer
3853
        types.
3854
        Include java-except.h.
3855
 
3856
2004-10-20  Bryce McKinlay  
3857
 
3858
        * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
3859
        vfy_push_type_t, set_variable, add_new_state, merge_into,
3860
        handle_jsr_insn, branch_prepass, check_class_constant,
3861
        check_wide_constant, get_one_type, compute_static_types,
3862
        verify_instructions_0): Clean up C99 declarations after statements.
3863
 
3864
2004-10-20  Tom Tromey  
3865
 
3866
        * verify-impl.c (merge_refs): Compare reference against iterator,
3867
        not ref2.
3868
 
3869
        * verify-glue.c (vfy_tag): Mask off resolved flag.
3870
 
3871
2004-10-19  Tom Tromey  
3872
 
3873
        * verify-impl.c (verify_instructions): Call vfy_note_local_type.
3874
        (init_state_with_stack): Initialize `this_type' in state.
3875
        (verify_method): Use debug_print.
3876
        * verify-glue.c (vfy_is_primitive): Removed debugging print.
3877
        (vfy_note_stack_depth): Reverted last patch.
3878
        (vfy_note_stack_type): Note pointer to Object, not Object.
3879
        (vfy_note_local_type): Likewise.
3880
 
3881
        * verify.h (vfy_note_instruction_seen): Declare.
3882
        * verify-glue.c (verify_jvm_instructions_new): Set
3883
        BCODE_EXCEPTION_TARGET on target instruction.
3884
        (vfy_note_instruction_seen): New function.
3885
        * verify-impl.c (FLAG_INSN_SEEN): New define.
3886
        (verify_instructions_0): Set flag on instruction.  Save state for
3887
        PC=0 later.
3888
        (verify_instructions): Call vfy_note_instruction_seen.
3889
 
3890
        * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
3891
        (verify_jvm_instructions_new): Call method_init_exceptions,
3892
        add_handler, and handle_nested_ranges.
3893
        * verify-impl.c (verify_method): Return 1 on success.
3894
        (verify_instructions_0): Save the state at PC=0.
3895
 
3896
        * verify-impl.c (init_type_from_class): Set is_resolved and
3897
        ref_next on new ref_intersection.
3898
        (init_type_from_string): Likewise.
3899
 
3900
2004-10-15  Bryce McKinlay  
3901
 
3902
        * expr.c (expand_bytecode): Use verify_jvm_instructions_new
3903
        if flag_new_verifier is set.
3904
        * java-tree.h (flag_new_verifier): Declare.
3905
        * lang.opt (fnew-verifier): New option.
3906
        * verify-impl.c: Work around namespace pollution by undef'ing
3907
        'current_class'.
3908
        (struct verifier_context): Make 'bytecode' const.
3909
        (verify_fail_pc): Pass -1 PC argument to vfy_fail.
3910
        (types_compatible): For the BC-ABI, always consider reference types
3911
        compatible.
3912
        (check_class_constant): Use vfr->current_class.
3913
        (check_constant): Likewise.
3914
        (check_wide_constant): Likewise.
3915
        (check_field_constant): Check for 'L' at start of type name.
3916
        (get_one_type): Return pointer instead of type. Set type result in
3917
        caller via passed type pointer.
3918
        (compute_argument_types): Update to use new get_one_type arguments.
3919
        (compute_return_type): Likewise.
3920
        (make_verifier_context): New. Allocate and initialize 'vfr'.
3921
        (free_verifier_context): New. Free 'vfr' and its contents.
3922
        (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
3923
        and free_verifier_context.
3924
 
3925
2004-10-15  Tom Tromey  
3926
 
3927
        * verify-glue.c (vfy_note_local_type): Mark argument as unused.
3928
        * verify.h (vfy_fail): Fixed formatting.
3929
 
3930
        * verify-impl.c (vfr): Fixed comment formatting.
3931
        (collapse_type): New function.
3932
        (verify_instructions): Notify compiler about type map.
3933
        * verify.h (vfy_note_stack_depth): Updated.
3934
        (vfy_note_stack_type): Likewise.
3935
        (vfy_note_local_type): Likewise.
3936
        (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
3937
        Declare.
3938
        * verify-glue.c (vfy_note_stack_depth): Correctly size type
3939
        state.  Added `method' argument.
3940
        (vfy_note_stack_type): Renamed from vfy_note_type.  Added `method'
3941
        argument.
3942
        (vfy_note_local_type): New function.
3943
        (vfy_unsuitable_type): Likewise.
3944
        (vfy_return_address_type): Likewise.
3945
        (vfy_null_type): Likewise.
3946
 
3947
        * verify.h (VFY_IN_GCC): Removed.
3948
        (VFY_WANT_TYPEMAP): Removed.
3949
        * verify-impl.c (verify_instructions_0): Removed useless "\".
3950
        (struct state) : Uncomment.
3951
 
3952
2004-10-13  Bryce McKinlay  
3953
 
3954
        * verify-impl.c: Formatting fixes. Reformat C++-style comments to
3955
        C-style.
3956
 
3957
2004-10-06  Bryce McKinlay  
3958
 
3959
        * Make-lang.in (verify.o): Re-enabled this target.
3960
        * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
3961
        (vfy_get_interface): Likewise.
3962
        (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
3963
        * verify.h (verify_jvm_instructions_new): Declare.
3964
        * verify-impl.c (free_state): Temporarily comment out unused
3965
        function.
3966
 
3967
2004-10-06  Tom Tromey  
3968
 
3969
        * java-tree.h (JV_STATE_READ): New enum value.
3970
 
3971
2004-10-06  Bryce McKinlay  
3972
 
3973
        * verify.h: New file.
3974
 
3975
2004-10-05  Bryce McKinlay  
3976
 
3977
        * verify-impl.c, verify-glue.c, verify.h: New files.
3978
        * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
3979
 
3980
2004-09-24  Andrew Haley  
3981
 
3982
        * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
3983
        for a slot if it's of pointer type.
3984
 
3985
2004-09-14  Tom Tromey  
3986
 
3987
        * class.c (make_class_data): Correctly initialize "state" field.
3988
        Initialize "engine" field.
3989
        * decl.c (java_init_decl_processing): Add "engine" field.
3990
 
3991
2004-09-10  Andrew Haley  
3992
 
3993
        PR java/12760
3994
        * expr.c (build_invokeinterface): Use fast method for interface
3995
        dispatch.
3996
        * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
3997
        JTI_ITABLE_PTR_TYPE.
3998
        (struct lang_type): Add  itable_methods, itable_decl, itable_syms_decl.
3999
        (emit_symbol_table): Add new arg, element_size.
4000
        * decl.c (java_init_decl_processing): Initialize Class.itable.
4001
        * class.c (GEN_TABLE): New macro.
4002
        (gen_indirect_dispatch_tables): Use it.  Add itable.
4003
        (make_class_data): Add new arg for emit_symbol_table().
4004
        Emit itable.
4005
        (add_miranda_methods): Make sure search_class has been parsed.
4006
        (emit_symbol_table): Add new arg, element_size.
4007
 
4008
2004-09-06  Andrew Haley  
4009
 
4010
        * verify.c (merge_types): Return Object for all merges of
4011
        interfaces.
4012
        * expr.c (add_type_assertion): Don't generate assertions when
4013
        source type is array of Object.
4014
 
4015
2004-09-03  Andrew Haley  
4016
 
4017
        * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
4018
 
4019
        * lang.c (java_post_options): Force flag_verify_invocations if
4020
        we're not using indirect dispatch.
4021
 
4022
        * expr.c (pop_type_0): Move test for interfaces before call to
4023
        can_widen_reference_to().
4024
        (build_signature_for_libgcj): Remove generation of canonical array
4025
        type.
4026
        (add_type_assertion): Canonicalize both arrays.
4027
        Don't assert that type X can be assigned to Object.
4028
        Don't assert that type X an be assigned to type X.
4029
        Don't assert that Object can be assigned to type X.
4030
        (can_widen_reference_to): Warn whenever we generate an assertion.
4031
        (process_jvm_instruction): Use throwable_type_node for the type of
4032
        an exception class.
4033
 
4034
2004-09-01  Andrew Haley  
4035
 
4036
        * decl.c (java_init_decl_processing): Change
4037
        verify_identifier_node to "__verify".
4038
        * expr.c (add_type_assertion): Use verify_identifier_node for name.
4039
        * java-tree.h (verify_identifier_node): Change to "__verify".
4040
 
4041
        * expr.c (build_signature_for_libgcj): New function.
4042
        (add_type_assertion): Use it to construct signatures for
4043
        source_type and target_type.
4044
 
4045
2004-08-27  Andrew Haley  
4046
 
4047
        * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
4048
        (verify_identifier_node): New.
4049
        (TYPE_VERIFY_METHOD): New.
4050
        (struct type_assertion): New type.
4051
        * expr.c (type_assertion_eq): New function.
4052
        (type_assertion_hash): New function.
4053
        (add_type_assertion): New function.
4054
        (can_widen_reference_to): Call add_type_assertion().
4055
        * decl.c (java_init_decl_processing): Add verify_identifier_node.
4056
        * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
4057
        (finish_class): Output TYPE_VERIFY_METHOD (type).
4058
 
4059
        * decl.c (end_java_method): Nullify unused fields.
4060
 
4061
2004-08-17  Andrew Haley  
4062
 
4063
        * verify.c (defer_merging): Quieten.
4064
        * jcf-parse.c (load_class): Only try to open a class file if it's
4065
        java.lang.Object or if it's part of the current compilation.
4066
        Check that the class we just tried to load is the class we just
4067
        loaded.  Quieten.
4068
        (java_parse_file): Set flag_verify_invocations off if we're
4069
        compiling from .class.
4070
        (parse_zip_file_entries): Abort if we try to read a dummy class.
4071
        * expr.c (can_widen_reference_to): Quieten.
4072
        (build_invokevirtual): Abort if we try to invokevirtual an
4073
        interface.
4074
        (expand_invoke): Don't build a non-interface call to an interface.
4075
        (build_instanceof): Don't do premature optimization if
4076
        flag_verify_invocations is not set.
4077
        * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
4078
        from superclass.
4079
        (build_static_field_ref): Add correct type conversion for
4080
        field_address.
4081
        (add_miranda_methods): Disable generation of Miranda methods for
4082
        dummy classes.
4083
        (layout_class_method): Don't complain about non-static method
4084
        overrides static method with dummy classes.
4085
 
4086
2004-08-13  Tom Tromey  
4087
 
4088
        * class.c (build_static_field_ref): Re-enable atable lookups for
4089
        static fields.
4090
 
4091
        * parse.y (strip_out_static_field_access_decl): Indentation fix.
4092
 
4093
2004-08-11  Tom Tromey  
4094
 
4095
        * gcj.texi (libgcj Runtime Properties): Document new properties.
4096
 
4097
2004-08-06  Andrew Haley  
4098
 
4099
        * jcf-parse.c (load_class): Check that we really have loaded the
4100
        class we're looking for.
4101
 
4102
2004-07-19  Andrew Haley  
4103
 
4104
        * verify.c (verify_jvm_instructions): Comment change only.
4105
 
4106
        * typeck.c (build_java_array_type): Add size field to array name.
4107
 
4108
        * java-tree.h (LOCAL_SLOT_P): New.
4109
        (update_aliases): Add PC argument.
4110
        (pushdecl_function_level): New function.
4111
 
4112
        * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4113
        MODIFY_EXPR, and SAVE_EXPR.
4114
        (java_gimplify_modify_expr): New function.
4115
 
4116
        * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4117
        (expand_iinc): Pass PC to update_aliases().
4118
        (STORE_INTERNAL): Likewise.
4119
        (process_jvm_instruction): Likewise.
4120
 
4121
        * decl.c (base_decl_map): New variable.
4122
        (uniq): New variable.
4123
        (update_aliases): Rewrite with more thorough checking.
4124
        (debug_variable_p): New function.
4125
        (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
4126
        (check_local_named_variable): Delete whole function.
4127
        (initialize_local_variable): New function.
4128
        (check_local_unnamed_variable): Add checks and comments.
4129
        (find_local_variable): Rewrite.
4130
        (java_replace_reference): New function.
4131
        (function_binding_level): New variable.
4132
        (pushdecl_function_level): New function.
4133
        (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4134
        (maybe_pushlevels): Call pushdecl() on each of the new decls.
4135
        (start_java_method): Reset uniq.  Create base_decl_map.  Set
4136
        function_binding_level.
4137
        (end_java_method): Null unused fields to save memory.
4138
 
4139
2004-06-29  Andrew Haley  
4140
 
4141
        * except.c (expand_start_java_handler): Push a new binding level.
4142
        Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
4143
        register_exception_range() to register where we'll do it.
4144
        (expand_end_java_handler): Remove old bogus code.  Replace with
4145
        new logic that simply builds TRY_CATCH_EXPRs and inserts them at
4146
        the top of the expression we're curently building.
4147
        (maybe_end_try): Delete.
4148
        * decl.c (binding_level.exception_range): New field.
4149
        (clear_binding_level): Add field exception_range.  Reformat.
4150
        (poplevel): Call expand_end_java_handler().
4151
        (poplevel): Call java_add_stmt only if functionbody is false.
4152
        (maybe_poplevels): Don't call maybe_end_try() from here.
4153
        (end_java_method): Clear no longer used trees in function decl.
4154
        (register_exception_range): New function.
4155
        * java-tree.h (register_exception_range, struct eh_range): Declare.
4156
 
4157
2004-06-22  Andrew Haley  
4158
 
4159
        * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
4160
        the otable.
4161
        * check-init.c (get_variable_decl): Teach check-init about
4162
        FIELD_DECLs addressed via the otable.
4163
        * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
4164
        CLASS_PARSED_P.
4165
 
4166
2004-05-28  Andrew Haley  
4167
 
4168
        * jcf-parse.c (load_class): Don't try to read a class that we've
4169
        already read.
4170
 
4171
        * expr.c (build_invokeinterface): Use the old-fashioned way of
4172
        doing indirect dispatch: look up interfaces by name.
4173
        * java-tree.h (enum java_tree_index): Add
4174
        JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
4175
        * decl.c (java_init_decl_processing): Add
4176
        soft_lookupinterfacemethodbyname_node.
4177
 
4178
        * gjavah.c (print_method_info): Final methods have vtable entries,
4179
        so gjavah needs to output them.
4180
        * class.c (layout_class_method): Generate vtable entries for final
4181
        methods.
4182
        * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
4183
        dispatch, even if a method is final.
4184
 
4185
2004-05-25  Andrew Haley  
4186
 
4187
        * class.c (build_symbol_entry): Convert the names of constructors
4188
        to init_identifier_node when generating an entry for the indirect
4189
        dispatch table.
4190
 
4191
        * expr.c (build_known_method_ref): Generate indirect calls for
4192
        all methods marked DECL_EXTERNAL or TREE_PUBLIC.
4193
 
4194
2004-05-24  Andrew Haley  
4195
 
4196
        * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
4197
        atable element is of the right type.
4198
 
4199
        * class.c (build_static_field_ref): Cast pointer to correct type
4200
        for field.
4201
 
4202
2004-04-20  Bryce McKinlay  
4203
 
4204
        * Merged with HEAD as of 20040514. Diff against
4205
        gcj-abi-2-merge-20040514.
4206
 
4207
2004-04-16  Andrew Haley  
4208
 
4209
        * verify.c (check_pending_block): Disable subroutine checks.
4210
        (defer_merging): New function.
4211
        (merge_types): If types are dummy, use defer_merging to combine them.
4212
        (verify_jvm_instructions): If invocation is invokeinterface and
4213
        target is dummy, assume target really is an interface.
4214
 
4215
        * parse.y (patch_invoke): Break out call to java_create_object.
4216
 
4217
        * lang.c (flag_verify_invocations): New.
4218
 
4219
        * jcf-parse.c (load_class): If we've already failed to load a
4220
        class, don't try again.
4221
        (load_class): If we can't find a .class file, don't fail, but emit
4222
        a warning.
4223
        (parse_class_file): Don't act on dummy methods.
4224
 
4225
        * java-tree.h (flag_verify_invocations): New.
4226
        (TYPE_DUMMY): New.
4227
        (lang_type.dummy_class): New field.
4228
        (java_create_object): New function.
4229
        (METHOD_DUMMY): New.
4230
 
4231
        * expr.c (build_field_ref): Widen field offset.
4232
        (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
4233
        that each of its elements is compatible with the one we're
4234
        popping.
4235
        (pop_type_0): Issue a warning to say that we need to generate a
4236
        runtime check.
4237
        (java_create_object): New function.
4238
        (build_field_ref): Only generate hard refs if we're not using
4239
        indirect dispatch.
4240
        (expand_java_field_op): If we're using !verify_invocations and we
4241
        see a missing field, generate a decl for it.
4242
 
4243
        (expand_invoke): If a class doesn't have the method we seek and
4244
        we're using !flag_verify_invocations, generate a decl for the
4245
        method now.
4246
 
4247
        (build_known_method_ref): Always use indirect dispatch via the
4248
        atable for static methods.
4249
 
4250
        (expand_java_NEW): Break out object creation into new function,
4251
        java_create_object.
4252
 
4253
        (can_widen_reference_to): Issue a warning to say that we need to
4254
        generate a runtime check.
4255
 
4256
        * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
4257
        (make_method_value): Also use index for interfaces.
4258
        (make_class_data): Skip dummy field for inherited data.
4259
        Don't build method array for dummy methods.
4260
        Set size_in_byte to -1 when using inirect dispatch
4261
        Don't build a hard class ref if we don't have a hard ref to our
4262
        superclass, or if we're using inirect dispatch.
4263
        Null out dispatch tables.
4264
 
4265
        (layout_class_method): Don't complain about non-static method
4266
        overrides static method is method is artificial.
4267
 
4268
        (build_static_field_ref): Disable atable references to static
4269
        fields for the time being.
4270
 
4271
        (layout_class_methods): Check for CLASS_INTERFACE as
4272
        well as CLASS_ABSTRACT.
4273
 
4274
2004-11-24  Steven Bosscher  
4275
 
4276
        * class.c (make_class_data): Don't check flag_inline_functions.
4277
        * lang.c (flag_really_inline): Remove unused flag.
4278
        (java_handle_option): Don't set it here.  Remove special handling
4279
        of flag_inline_functions for Java.
4280
        (java_init): Don't set flag_inline_trees here.  Already done...
4281
        (java_post_options): ...here.  Don't clear flag_inline_functions.
4282
 
4283
2004-11-24  Steven Bosscher  
4284
 
4285
        * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
4286
        (java_gimplify_exit_block_expr): New function.
4287
        (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
4288
        LABELED_BLOCK_EXPR.
4289
        * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
4290
        (EXIT_BLOCK_EXPR): Likewise.
4291
        * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
4292
        (LABELED_BLOCK_BODY): Likewise.
4293
        (EXIT_BLOCK_LABELED_BLOCK): Likewise.
4294
        * jcf-write.c (generate_bytecode_insns): Don't handle the unused
4295
        EXIT_BLOCK_RETURN operand.  Use EXIT_BLOCK_LABELED_BLOCK instead of
4296
        TREE_OPERAND.
4297
        * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
4298
        (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
4299
        EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND.  Don't handle the
4300
        second operand of EXIT_BLOCK_EXPR.
4301
        * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
4302
        TREE_OPERAND.
4303
        (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
4304
 
4305
2004-11-23  Ben Elliston  
4306
 
4307
        * xref.h (xref_flag_value): Remove.
4308
        (xref_set_data, xref_get_data): Likewise.
4309
        (xref_set_current_fp): Likewise.
4310
        (XREF_NONE): Likewise.
4311
        (XREF_GET_DATA): Likewise.
4312
        * xref.c (xref_flag_value): Remove.
4313
        (xref_set_data, xref_get_data): Likewise.
4314
        (xref_set_current_fp): Likewise.
4315
 
4316
2004-11-23  Ben Elliston  
4317
 
4318
        * gjavah.c (output_directory): Make static.
4319
        (temp_directory): Likewise.
4320
 
4321
2004-11-15  Tom Tromey  
4322
 
4323
        * decl.c (instn_ptr_type_node): Removed.
4324
        (lineNumbers_ptr_type_node): Removed.
4325
        (jint_type): Removed.
4326
        (jint_ptr_type): Removed.
4327
 
4328
2004-11-09  Andrew Pinski  
4329
 
4330
        PR java/15576
4331
        * check-init.c (check_init): Ignore DECL_EXPR.
4332
        * expr.c (always_initialize_class_p): Reenable.
4333
        (build_class_init): Use a variable to store the decl.  Also use
4334
        boolean_false_node instead of integer_zero_node.
4335
        * parse.y (attach_init_test_initialization_flags): Add a decl_expr
4336
        to the block.
4337
 
4338
2004-11-08  Tom Tromey  
4339
 
4340
        PR java/16843:
4341
        * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
4342
        generating a JNI header.
4343
        (print_field_info): Handle JNI headers.
4344
        (jni_print_float): Likewise.
4345
        (jni_print_double): Likewise.
4346
 
4347
2004-11-08  Andrew Pinski  
4348
 
4349
        * decl.c (end_java_method): Remove duplicated code.
4350
 
4351
2004-11-06  Zack Weinberg  
4352
            Gerald Pfeifer  
4353
 
4354
        * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
4355
        as well.
4356
 
4357
2004-11-02  Bryce McKinlay  
4358
 
4359
        PR java/17265
4360
        * class.c: Reinstate 2004-08-18 patch.
4361
        (make_local_function_alias): Don't create an alias for extern (native)
4362
        functions.
4363
 
4364
2004-10-22  Eric Botcazou  
4365
 
4366
        PR java/17265
4367
        * class.c (make_local_function_alias): Revert 2004-08-18 change.
4368
        (make_method_value): Likewise.
4369
 
4370
2004-10-21  Andrew Haley  
4371
 
4372
        PR java/18091:
4373
        * jcf-parse.c (set_source_filename): Add code to build new sfname.
4374
 
4375
2004-10-20  Andrew Haley  
4376
 
4377
        * decl.c (end_java_method): Don't expand if flag_syntax_only.
4378
        Remove duplicated code block.
4379
 
4380
2004-10-18  Steven Bosscher  
4381
 
4382
        * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
4383
        New rules to work around old Bison warnings.
4384
 
4385
2004-10-17  Steven Bosscher  
4386
 
4387
        * class.c (ident_subst): Always alloca buffer.
4388
        * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
4389
        opcode after including javaop.def.
4390
        * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
4391
        conditional expression that exits, to avoid warnings.
4392
        * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
4393
        a user of an extension.
4394
        * win32-host.c: Move check down to have non-empty file when
4395
        WIN32 is not defined.
4396
 
4397
        * Make-lang.in (java-warn): Add STRICT_WARN.
4398
        (java/jcf-io.o-warn): Don't have Werror for this file.
4399
        * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
4400
 
4401
2004-10-16  Hans-Peter Nilsson  
4402
 
4403
        * expr.c (expr_add_location): Move declaration to before all
4404
        statements.
4405
        * parse.y (java_expand_classes): Ditto.
4406
        * lex.c (java_peek_unicode): Ditto.
4407
 
4408
2004-10-16  Ranjit Mathew  
4409
 
4410
        * check-init.c: Use %<, %> and %q for quoting in diagnostics,
4411
        if possible, else convert `foo' to 'foo'.
4412
        * class.c: Likewise.
4413
        * decl.c: Likewise.
4414
        * expr.c: Likewise.
4415
        * jcf-io.c: Likewise.
4416
        * jcf-parse.c: Likewise.
4417
        * lang.c: Likewise.
4418
        * lex.c: Likewise.
4419
        * parse.h: Likewise.
4420
 
4421
2004-10-16  Ranjit Mathew  
4422
 
4423
        * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
4424
        rename parameter 'msg' to 'msgid' in function declaration.
4425
        (issue_warning_error_from_context): Likewise.
4426
        (yyerror): Rename parameter 'msg' to 'msgid'.
4427
        (all over): Use new quoting style for diagnostics.
4428
 
4429
2004-10-15  Kazu Hirata  
4430
 
4431
        * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
4432
        jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
4433
        Update copyright.
4434
 
4435
2004-10-14  Matt Austern  
4436
 
4437
        * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
4438
        pointer_set_t* now.
4439
 
4440
2004-10-13  Tom Tromey  
4441
 
4442
        PR java/15578:
4443
        * lang.opt (--extdirs): Document.
4444
        * jvspec.c (lang_specific_driver): Recognize -encoding and
4445
        -extdirs.
4446
 
4447
2004-10-06  Ulrich Weigand  
4448
 
4449
        * parse.y (issue_warning_error_from_context): Use va_list *
4450
        instead of va_list parameter.
4451
        (parse_error_context): Update call.
4452
        (parse_warning_context): Likewise.
4453
 
4454
2004-10-05  Zack Weinberg  
4455
 
4456
        * parse.y, parse-scan.y: Add list of diagnostic messages to
4457
        insulate translation template from version of yacc/bison used
4458
        to compile the grammar.
4459
 
4460
2004-10-05  Ranjit Mathew  
4461
 
4462
        Prepare for %q, %< and %> in diagnostic message strings.
4463
        * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
4464
        Name second parameter 'msgid'.
4465
        * parse.y: Additionally include pretty-print.h and diagnostic.h.
4466
        (issue_warning_error_from_context): Use pretty-printer functions
4467
        instead of vsprintf for constructing formatted messages. Rename
4468
        parameter 'msg' to 'msgid'.
4469
        (parse_error_context): Rename parameter 'msg' to 'msgid'.
4470
        (parse_warning_context): Likewise.
4471
 
4472
2004-10-05  Andrew Haley  
4473
 
4474
        PR java/17779
4475
        * jcf-parse.c (parse_zip_file_entries): If a class has a
4476
        superclass and a TYPE_SIZE of zero, lay it out.
4477
 
4478
2004-09-30  Andrew Haley  
4479
 
4480
        PR java/17733
4481
        * jcf-parse.c (compute_class_name): Rewrite.
4482
 
4483
2004-10-01  Jan Hubicka  
4484
 
4485
        * java.c (java_expand_body): Update call of tree_rest_of_compilation.
4486
 
4487
2004-10-01  Kazu Hirata  
4488
 
4489
        * lex.c: Fix a comment typo.
4490
 
4491
2004-10-01  Kazu Hirata  
4492
 
4493
        * java-tree.h: Fix a comment typo.
4494
 
4495
2004-09-30  Per Bothner  
4496
 
4497
        Simplify lexer.  Implement --enable-mapped-location support.
4498
        * jcf-parse.c (parse_class_file):  Use linemap_line_start.
4499
        (parse_source_file_1): Pass filename as extra parameter, so we can call
4500
        linemap_add and set input_location here, rather than in both callers.
4501
        (read_class): Pass copied filename to parse_source_file_1.
4502
        Don't initialize wfl_operator - only needed for source compilation.
4503
        (read_class, jcf_parse):  Call linemap_add with LC_LEAVE.
4504
        * lex.h:  Remove a bunch of debugging macros.
4505
        * lex.h (struct_java_line, struct java_error):  Remove types.
4506
        (JAVA_COLUMN_DELTA):  Remove - use java_lexer.next_colums instead.
4507
        (struct java_lc_s):  Remove prev_col field.
4508
        (struct java_lexer):  New fields next_unicode, next_columns, and
4509
        avail_unicode.  New position field, and maybe token_start field.
4510
        Don't need hit_eof field - use next_unicode == -1 instead.
4511
        (JAVA_INTEGERAL_RANGE_ERROR):  Rename to JAVA_RANGE_ERROR.
4512
        (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR):  Update accordingly.
4513
        * parse.h:  Various changes for USE_MAPPED_LOCATION.
4514
        (EXPR_WFL_EMIT_LINE_NOTE): XXX
4515
        (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
4516
        (struct parser_ctxt):  New file_start_location field.
4517
        Remove p_line, c_line fields since we no longer save lines.
4518
        Remove elc, lineno, and current_jcf fields - no longer used.
4519
        * parse.y:  Updates for USE_MAPPED_LOCATION and new lexer.
4520
        Don't use EXPR_WFL_ADD_COL since that isn't trivial with
4521
        source_location and is probably not needed anymore anyway.
4522
        Use new expr_add_Location function.
4523
        (SET_EXPR_LOCATION_FROM_TOKEN):  New convenience macro.
4524
        (java_pop_parser_context):  Minor cleanup.
4525
        (java_parser_context_save_global, java_parser_context_restore_global,
4526
        java_pop_parser_context):  Save/restore input_location as a unit.
4527
        (issue_warning_error_from_context):  If USE_MAPPED_LOCATION take
4528
        a source_location instead of a wfl context node.
4529
        (check_class_interface_creation):  input_filename is not addressable.
4530
        (create_artificial_method):  Calling java_parser_context_save_global
4531
        and java_parser_context_restore_global is overkill.  Instead,
4532
        temporarily set input_location from class decl.
4533
        (java_layout_seen_class_methods): Set input_location from method decl.
4534
        (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
4535
        (finish_loop_body):  Likewise.
4536
        * lex.c: Updates for USE_MAPPED_LOCATION.  Use build_unknwon_wfl.
4537
        (java_sprint_unicode):  Take a character, not index in line.
4538
        (java_sneak_uncode):  Replaced by java_peek_unicode.
4539
        (java_unget_unicode):  No longer used.
4540
        (java_allocate_new_line. java_store_unicode):  Removed, since we
4541
        no longer remember "lines".
4542
        (java_new_lexer):  Update for new data structures.
4543
        (java_read_char):  Move unget_value checking to java_read_unicode.
4544
        (java_get_unicode, java_peek_unicode, java_next_unicode): New more
4545
        efficient functions that are used directly when lexing.
4546
        (java_read_unicode_collapsing_terminators):  No longer needed.
4547
        (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
4548
        Re-organize to use java_peek_unicode to avoid java_unget_unicode.
4549
        (java_parse_escape_sequence):  Rewrite to be simpler / more efficient.
4550
        (do_java_lex):  Lots of movings around to avoid java_unget_unicode,
4551
        combine switch branches, and test for common token kinds earlier.
4552
        (java_lex_error):  Rewrite.
4553
        * jv-scan.c (expand_location): New function, copied from tree.c.
4554
        (main): Set ctxp->filename instead of setting input_filename directly.
4555
 
4556
2004-09-30  Per Bothner  
4557
 
4558
        More cleanup for --enable-mapped-location.
4559
        * class.c (push_class):  If USE_MAPPED_LOCATION don't set
4560
        input_location here.  Instead do it in give_name_to_class.
4561
        (build_class_ref):  Set DECL_ARTIFICIAL, for the sake of dwarf2out.
4562
        * expr.c (expand_byte_code): Call linemap_line_start.
4563
        * expr.c (build_expr_wfl):  If USE_MAPPED_LOCATION, change final
4564
        parameters to a source_location.  Don't need EXPR_WFL_FILENAME_NODE.
4565
        (expr_add_location):  New function, if USE_MAPPED_LOCATION.
4566
        * class.c (maybe_layout_super_class):  Adjust build_expr_wfl call
4567
        to USE_MAPPED_LOCATION case.
4568
 
4569
        * java-tree.h (JAVA_FILE_P, ZIP_FILE_P):  Remove unused macros.
4570
        * jcf-parse.c (java_parse_file): Don't set input_filename.
4571
        Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
4572
        Create a list of TRANSLATION_UNIT_DECL.
4573
        (current_file_list):  Is now a TRANSLATION_UNIT_DECL chain.  The
4574
        reason is so we can set a DECL_SOURCE_LOCATION for each file.
4575
        (java_parse_file):  Don't set unused ZIP_FILE_P, JAVA_FILE_P..
4576
        Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
4577
        (file_start_location):  New static.
4578
        (set_source_filename):  Avoid extra access to input_filename macro.
4579
        Concatenate new name with class's package prefix.
4580
        (set_source_filename, give_name_to_class): Update.
4581
        (give_name_to_class):  Set class's "line 0" input_location here.
4582
        (parse_class_file):  Set input_location as a unit.
4583
 
4584
        * jcf-parse.c (load_class): Sanity test if missing inner class file.
4585
 
4586
2004-09-29  Per Bothner  
4587
 
4588
        * java-tree.h:  Redefine some macros and add some declaration
4589
        to handle the USE_MAPPED_LOCATION case.
4590
        * parse.h (EXPR_WFL_QUALIFICATION):  Use operand 1, not 2.
4591
        * java-tree.h (EXPR_WFL_FILENAME_NODE):  Use operand 2, not 1.
4592
        * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
4593
        USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
4594
 
4595
        * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
4596
        * decl.c (finish_method, java_add_stmt): Likewise.
4597
        * java-gimplify.c (java-gimplify.c):  Likewise.
4598
        * jcf-write.c (generate_bytecode_insns):  Likewise.
4599
        * lang.c (java_post_options): Likewise - call linemap_add.
4600
 
4601
2004-09-29  Andrew Haley  
4602
 
4603
        PR java/17007
4604
        * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
4605
        result of TRUNC_MOD_EXPR.
4606
        (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
4607
        * decl.c (java_init_decl_processing): Mark
4608
        soft_lookupinterfacemethod_node and soft_instanceof_node pure.
4609
 
4610
2004-09-28  Tom Tromey  
4611
 
4612
        PR java/15710:
4613
        * class.c (add_miranda_methods): Load superinterface if not
4614
        already loaded.
4615
 
4616
2004-09-28  Andrew Haley  
4617
 
4618
        PR java/17586
4619
        * jcf-parse.c (load_class): Don't try to read a class that we've
4620
        already read.
4621
 
4622
2004-09-28  Andrew Haley  
4623
 
4624
        * jcf-parse.c (load_class): Back out previous broken patch.
4625
 
4626
2004-09-28  Andrew Haley  
4627
 
4628
        PR java/17586
4629
        * jcf-parse.c (load_class): Don't try to read a class that we've
4630
        already read.
4631
        Check that we really did read the right class.
4632
 
4633
2004-09-25  Tom Tromey  
4634
 
4635
        PR java/17500:
4636
        * parse.y (create_artificial_method): Use add_method_1.
4637
 
4638
2004-09-25  Kazu Hirata  
4639
 
4640
        * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
4641
        comment typos.
4642
        * gcj.texi: Fix typos.
4643
 
4644
2004-09-24  Tom Tromey  
4645
 
4646
        PR java/15656:
4647
        * parse.y (class_instance_creation_expression): Set `$$' to NULL
4648
        in error parts of rule.
4649
        (unary_expression): Don't call error_if_numeric_overflow when $1
4650
        is NULL.
4651
 
4652
2004-09-24  Tom Tromey  
4653
 
4654
        PR java/16789:
4655
        * parse.y (resolve_qualified_expression_name): Set
4656
        CAN_COMPLETE_NORMALLY on first call when chaining static calls.
4657
        * expr.c (force_evaluation_order): Check for empty argument list
4658
        after stripping COMPOUND_EXPR.
4659
 
4660
2004-09-23  Andrew Haley  
4661
 
4662
        PR java/16927:
4663
        * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
4664
        COND_EXPRs.
4665
 
4666
2004-09-23  Tom Tromey  
4667
 
4668
        PR java/17329:
4669
        * java-gimplify.c (java_gimplify_expr) : Ignore case
4670
        where operand is null.
4671
 
4672
2004-09-23  Tom Tromey  
4673
 
4674
        PR java/17380:
4675
        * parse.y (not_accessible_p): Allow access to protected members
4676
        even when class is not static.
4677
 
4678
2004-09-22  Kelley Cook  
4679
 
4680
        * Make-lang.in: Revert the gcc-none.o change.
4681
 
4682
2004-09-22  Nathan Sidwell  
4683
 
4684
        * parse.y (patch_anonymous_class): VEC_space returns true if there
4685
        is space.
4686
 
4687
2004-09-21  Matt Austern  
4688
 
4689
        Fix bootstrap.
4690
        * gjavah.c (free_method_name_list): Fix function definition so
4691
        it's a proper C prototype.
4692
 
4693
2004-09-21  Tom Tromey  
4694
 
4695
        PR java/17575:
4696
        * gjavah.c (free_method_name_list): New method.
4697
        (main): Call it.
4698
 
4699
2004-09-17  Jeffrey D. Oldham  
4700
            Zack Weinberg  
4701
 
4702
        * java-tree.def: Use tree_code_class enumeration constants
4703
        instead of code letters.
4704
        * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
4705
        new tree-class enumeration constants.
4706
 
4707
2004-09-13  Tom Tromey  
4708
 
4709
        PR java/17216:
4710
        * class.c (layout_class_method): Put synthetic methods into the
4711
        vtable.
4712
 
4713
2004-09-11  Andrew Pinski  
4714
 
4715
        * Make-lang.in (java/ggc-none.c): Change dependency
4716
        for ggc.h into $(GGC_H).
4717
 
4718
2004-09-11  Mohan Embar  
4719
 
4720
        * Make-lang.in (java/win32-host.o): Add dependency on
4721
        coretypes.h.
4722
        * win32-host.c: Add includes for coretypes.h, jcf.h
4723
 
4724
2004-09-11  Mohan Embar  
4725
 
4726
        * Make-lang.in (GCJH_OBJS): Change dependency from
4727
        ggc-none.o to java/ggc-none.o
4728
        (JCFDUMP_OBJS): Likewise.
4729
        (java/ggc-none.o): New target.
4730
 
4731
2004-08-25  Nathan Sidwell  
4732
 
4733
        * boehm.c (get_boehm_type_descriptor):  Adjust build_int_cst calls.
4734
        * class.c (build_utf8_ref, build_static_field_ref,
4735
        make_field_value, make_method_value, get_dispatch_table,
4736
        make_class_data, emit_symbol_table, emit_catch_table): Likewise.
4737
        * constants.c (get_tag_node, build_ref_from_constant_pool,
4738
        build_constants_constructor): Likewise.
4739
        * decl.c (java_init_decl_processing): Likewise.
4740
        * expr.c (build_java_array_length_access, build_newarray,
4741
        expand_java_multianewarray, expand_java_pushc, expand_iinc,
4742
        build_java_binop, build_field_ref, expand_java_add_case,
4743
        expand_java_call, build_known_method_ref, build_invokevirtual,
4744
        build_invokeinterface, build_jni_stub): Likewise.
4745
        * java-gimplify.c (java_gimplify_new_array_init): Likewise.
4746
        * jcf-parse.c (get_constant): Likewise.
4747
        * lex.c (do_java_lex): Likewise.
4748
        * parse.y (patch_binop, patch_unaryop, patch_cast,
4749
        build_newarray_node, patch_newarray): Likewise.
4750
        * resource.c (compile_resource_data): Likewise.
4751
        * typeck.c (build_prim_array_type): Likewise.
4752
 
4753
2004-08-24  Nathan Sidwell  
4754
 
4755
        * decl.c (java_init_decl_processing): Adjust
4756
        initialize_sizetypes call.
4757
 
4758
2004-08-23  Nathan Sidwell  
4759
 
4760
        * jv-scan.c (fancy_abort): Add.
4761
 
4762
2004-08-20  Nathan Sidwell  
4763
 
4764
        * expr.c (build_java_arrayaccess): Use convert to change
4765
        len's type.
4766
 
4767
2004-08-19  Bryce McKinlay  
4768
 
4769
        * class.c (make_local_function_alias): Allocate extra space for 'L'
4770
        in name buffer. Reported by Thomas Neumann.
4771
 
4772
2004-08-19  Nathan Sidwell  
4773
 
4774
        * parse.h (JAVA_RADIX10_FLAG): Rename to ...
4775
        (JAVA_NOT_RADIX10_FLAG): ... here.  Invert meaning.
4776
        * lex.c (do_java_lex): Adjust.
4777
        (error_if_numeric_overflow): Likewise.
4778
 
4779
2004-08-18  Andrew Pinski  
4780
 
4781
        * class.c (make_local_function_alias): Only make a new decl if we
4782
        support alias attribute on all decls.
4783
 
4784
2004-08-18  Bryce McKinlay  
4785
 
4786
        * class.c (make_local_function_alias): New function. Create local
4787
        alias for public method DECL.
4788
        (make_method_value): Use make_local_function_alias.
4789
        * parse.y (craft_constructor): Don't special-case anonymous classes.
4790
        Always set ctor_name to init_identifier_node.
4791
        (lookup_method_invoke): Call layout_class_method when creating
4792
        anonymous class constructor.
4793
 
4794
2004-08-18  Richard Henderson  
4795
 
4796
        * java-gimplify.c (java_gimplify_expr): Move '2' handling into
4797
        default case.  Treat '<' similarly.  Update for
4798
        is_gimple_formal_tmp_var name change.
4799
 
4800
2004-08-17  Andrew Haley  
4801
 
4802
        * lang.c (lang_printable_name): Obey verbose flag.
4803
        * parse.y (constructor_circularity_msg): Set VERBOSE arg for
4804
        lang_printable_name().
4805
        (verify_constructor_circularity, get_printable_method_name,
4806
        check_abstract_method_definitions, java_check_regular_methods,
4807
        java_check_abstract_methods, check_inner_class_access,
4808
        fix_constructors, patch_method_invocation, patch_return):
4809
        Likewise.
4810
        * expr.c (pop_type_0): Likewise.
4811
 
4812
        * java-tree.h (lang_printable_name_wls): Delete.
4813
 
4814
2004-08-16  Tom Tromey  
4815
 
4816
        PR java/8473:
4817
        * parse.y (primary): Changed for initialized and uninitialized
4818
        array creations.
4819
        (array_access): Handle array_creation_initialized.
4820
        (array_creation_expression): Split into
4821
        array_creation_initialized and array_creation_uninitialized.
4822
 
4823
2004-08-16  Andrew Haley  
4824
 
4825
        * jcf-write.c (find_constant_index): Canonicalize NaNs when
4826
        generating bytecode.
4827
 
4828
2004-08-16  Elliot Lee 
4829
 
4830
        PR java/9677
4831
        * jcf-parse.c (java_parse_file): Handle filenames with embedded
4832
        spaces, and quoted filelists.
4833
 
4834
2004-08-15  Nathan Sidwell  
4835
 
4836
        * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
4837
        * class.c (build_utf8_ref, build_static_field_ref,
4838
        make_field_value, make_method_value, get_dispatch_table,
4839
        make_class_data, emit_symbol_table, emit_catch_table): Likewise.
4840
        * constants.c (get_tag_node,  build_ref_from_constant_pool,
4841
        build_constants_constructor): Likewise.
4842
        * decl.c (java_init_decl_processing): Likewise.
4843
        * expr.c (build_java_array_length_access, build_newarray,
4844
        expand_java_multianewarray, expand_java_pushc, expand_iinc,
4845
        build_java_binop, build_field_ref, expand_java_add_case,
4846
        expand_java_call, build_known_method_ref, build_invokevirtual,
4847
        build_invokeinterface, build_jni_stub): Likewise.
4848
        * java-gimplify.c (java_gimplify_new_array_init): Likewise.
4849
        * jcf-parse.c (get_constant): Likewise.
4850
        * lex.c (do_java_lex): Likewise.
4851
        * parse.y (patch_binop, patch_unaryop, patch_cast,
4852
        build_null_of_type, patch_newarray): Likewise.
4853
        * resource.c (compile_resource_data): Likewise.
4854
        * typeck.c (build_prim_array_type): Likewise.
4855
 
4856
2004-08-10  Bryce McKinlay  
4857
 
4858
        * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
4859
        Don't create BLOCK here or call java_gimplify_block.
4860
 
4861
2004-08-09  H.J. Lu  
4862
 
4863
        * java-tree.h (flag_deprecated): Removed.
4864
        * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
4865
        * parse.y (check_deprecation): Check warn_deprecated instead of
4866
        flag_deprecated.
4867
 
4868
2004-08-06  Kelley Cook  
4869
 
4870
        * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
4871
        flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
4872
        flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
4873
        flag_check_references, flag_extraneous_semicolon, flag_deprecated,
4874
        flag_force_classes_archive_check, flag_optimize_sci,
4875
        flag_indirect_dispatch): Remove explicit declarations.
4876
        * lang.opt: Add implicit declare/define/assign.  Remove obsolete
4877
        final comment.
4878
 
4879
2004-08-05  Michael Chastain  
4880
 
4881
        PR bootstrap/14893
4882
        * Make-lang.in (java.install-man): Install from either build
4883
        tree or source tree, whichever has the file first.
4884
 
4885
2004-08-05  Nathan Sidwell  
4886
 
4887
        * jcf-parse.c (get_constant): Adjust force_fit_type call.
4888
        * lex.h (SET_LVAL_NODE_TYPE): Remove.
4889
        * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
4890
        (do_java_lex): Likewise. Adjust force_fit_type call.
4891
 
4892
2004-08-04  Roger Sayle  
4893
            Andrew Haley  
4894
 
4895
        * typeck.c (convert_ieee_real_to_integer): Call fold on the range
4896
        checking trees as they're being built.
4897
        (convert): Call convert_ieee_real_to_integer if we're
4898
        converting a constant, even if we're writing a class file.
4899
 
4900
2004-08-02  Bryce McKinlay  
4901
 
4902
        PR java/16701
4903
        * parse.y (fold_constant_for_init): Call resolve_field_access with
4904
        correct current_class context.
4905
 
4906
2004-08-01  Roger Sayle  
4907
 
4908
        * decl.c (update_aliases, initialize_local_variable): Replace calls
4909
        to build with calls to buildN.
4910
        * java-gimplify.c (java_gimplify_modify_expr): Likewise.
4911
        * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
4912
        * parse.h (BUILD_THROW): Likewise.
4913
        * parse.y (switch_expression, synchronized_statement,
4914
        catch_clause_parameter, array_creation_expression,
4915
        conditional_expression, make_qualified_name,
4916
        resolve_qualified_expression_name, patch_method_invocation,
4917
        patch_invoke, build_method_invocation, build_new_invocation,
4918
        build_assignment, patch_assignment, build_binop, patch_binop,
4919
        build_string_concatenation, build_incdec, patch_unaryop,
4920
        patch_cast, build_array_ref, build_newarray_node, patch_newarray,
4921
        patch_return, build_if_else_statement, build_labeled_block,
4922
        build_new_loop, build_loop_body, build_bc_statement,
4923
        build_assertion, encapsulate_with_try_catch, build_try_statement,
4924
        build_try_finally_statement, patch_synchronized_statement,
4925
        emit_test_initialization): Likewise, replace build with buildN.
4926
 
4927
2004-07-28  Eric Christopher  
4928
 
4929
        * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
4930
        (java_unsafe_for_reeval): Ditto.
4931
 
4932
2004-07-26    
4933
 
4934
        * parse.y (build_super_invocation): Adjust declaration order to
4935
        avoid declaration after statement.
4936
 
4937
2004-07-25  Bernardo Innocenti  
4938
 
4939
        * decl.c: Rename all identifiers named `class' to `cl'.
4940
 
4941
2004-07-25  Richard Henderson  
4942
 
4943
        * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
4944
 
4945
2004-07-23  Mike Stump  
4946
 
4947
        * boehm.c (set_bit): Improve type safety wrt unsignedness.
4948
        * gjavah.c (throwable_p, decode_signature_piece,
4949
        print_full_cxx_name, print_include, add_namelet, add_class_decl,
4950
        process_file): Likewise.
4951
        * jcf-dump.c (main): Likewise.
4952
        * jcf-io.c (read_zip_member): Likewise.
4953
        * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
4954
        give_name_to_class, get_class_constant): Likewise.
4955
        * jcf-write.c (find_constant_wide, push_long_const,
4956
        generate_classfile): Likewise.
4957
        * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
4958
        * parse.y (read_import_dir): Likewise.
4959
        * typeck.c (parse_signature_type): Likewise.
4960
        * verify.c (verify_jvm_instructions): Likewise.
4961
        * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
4962
 
4963
2004-07-23  Thomas Fitzsimmons  
4964
 
4965
        * Make-lang.in: Replace rmic and rmiregistry references with
4966
        grmic and grmiregistry.
4967
        * gcj.texi: Likewise.
4968
 
4969
2004-07-20  Andrew Haley  
4970
 
4971
        PR java/16431.
4972
        * verify.c (verify_jvm_instructions): Comment change only.
4973
 
4974
        * typeck.c (build_java_array_type): Add size field to array name.
4975
 
4976
        * java-tree.h (LOCAL_SLOT_P): New.
4977
        (update_aliases): Add PC argument.
4978
        (pushdecl_function_level): New function.
4979
 
4980
        * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4981
        MODIFY_EXPR, and SAVE_EXPR.
4982
        (java_gimplify_modify_expr): New function.
4983
 
4984
        * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4985
        (expand_iinc): Pass PC to update_aliases().
4986
        (STORE_INTERNAL): Likewise.
4987
        (process_jvm_instruction): Likewise.
4988
 
4989
        * decl.c (base_decl_map): New variable.
4990
        (uniq): New variable.
4991
        (update_aliases): Rewrite with more thorough checking.
4992
        (debug_variable_p): New function.
4993
        (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
4994
        (check_local_named_variable): Delete whole function.
4995
        (initialize_local_variable): New function.
4996
        (check_local_unnamed_variable): Add checks and comments.
4997
        (find_local_variable): Rewrite.
4998
        (java_replace_reference): New function.
4999
        (function_binding_level): New variable.
5000
        (pushdecl_function_level): New function.
5001
        (maybe_pushlevels): Set DECL_LOCAL_END_PC.
5002
        (maybe_pushlevels): Call pushdecl() on each of the new decls.
5003
        (start_java_method): Reset uniq.  Create base_decl_map.  Set
5004
        function_binding_level.
5005
        (end_java_method): Null unused fields to save memory.
5006
 
5007
2004-07-20  Nathan Sidwell  
5008
 
5009
        * class.c (add_interface_do): Remove.
5010
        (set_super_info, interface_of_p, maybe_add_interface,
5011
        add_interface, make_class_data, layout_class,
5012
        add_miranda_methods): Adjust BINFO accessors and addition.
5013
        * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
5014
        accessors.
5015
        * jcf-write.c (generate_classfile): Likewise.
5016
        * parse.y (patch_anonymous_class, check_inner_circular_reference,
5017
        check_circular_reference, java_complete_class,
5018
        check_abstract_method_definitions,
5019
        java_check_abstract_method_definitions,
5020
        check_interface_throws_clauses, java_check_abstract_methods,
5021
        lookup_java_interface_method2,
5022
        find_applicable_accessible_methods_list): Adjust BINFO accessors
5023
        and addition.
5024
        * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
5025
 
5026
2004-07-18  Roger Sayle  
5027
 
5028
        * builtins.c (max_builtin, min_builtin,
5029
        java_build_function_call_expr): Replace calls to build with buildN.
5030
        * class.c (build_class_ref, build_static_field_ref,
5031
        get_dispatch_table, make_class_data, layout_class_method): Likewise.
5032
        * constants.c (build_ref_from_constant_pool): Likewise.
5033
        * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
5034
        add_stmt_to_compound): Likewise.
5035
        * except.c (build_exception_object_ref, expand_end_java_handler):
5036
        Likewise.
5037
        * java-gimplify.c (java_gimplify_case_expr,
5038
        java_gimplify_default_expr, java_gimplify_block,
5039
        java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
5040
        * jcf-write.c (generate_bytecode_insns): Likewise.
5041
        * typeck.c (convert_ieee_real_to_integer): Likewise.
5042
 
5043
2004-07-17  Joseph S. Myers  
5044
 
5045
        * java-tree.h (builtin_function): Declare.
5046
 
5047
2004-07-16  Steven Bosscher  
5048
 
5049
        * parse.y (java_complete_expand_methods, java_expand_classes): Don't
5050
        abuse restore_line_number_status.
5051
 
5052
2004-07-15  Frank Ch. Eigler  
5053
 
5054
        g++/15861
5055
        * jcf-parse.c (java_emit_static_constructor): Specify default
5056
        priority.
5057
 
5058
2004-07-13  Per Bothner  
5059
 
5060
        * java-tree.h (all_class_filename):  Remove useless macro.
5061
        (enum java_tree_index):  Remove JTI_ALL_CLASS_FILENAME constant.
5062
        (BUILD_FILENAME_IDENTIFIER_NODE):  Remove useless macro.
5063
        * parse.y (java_parser_context_restore_global):  Replace
5064
        BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
5065
        * jcf-parse.c (read_class, java_parse_file):  Likewise.
5066
 
5067
2004-07-12  Bryce McKinlay  
5068
 
5069
        PR java/16474
5070
        gjavah.c (print_field_info): Emit constant only if field is static.
5071
 
5072
2004-07-11  Roger Sayle  
5073
 
5074
        * expr.c (java_truthvalue_conversion, flush_quick_stack,
5075
        java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
5076
        build_java_ret, build_java_throw_out_of_bounds_exception,
5077
        build_java_array_length_access, java_check_reference,
5078
        build_java_arrayaccess, build_java_arraystore_check, build_newarray,
5079
        build_anewarray, expand_java_multianewarray, expand_java_arraystore,
5080
        expand_java_arrayload, build_java_monitor, expand_java_return,
5081
        expand_load_internal, expand_java_NEW, build_get_class,
5082
        build_instanceof, expand_java_CHECKCAST, expand_iinc,
5083
        build_java_soft_divmod, build_java_binop, build_field_ref,
5084
        expand_compare, expand_java_goto, expand_java_switch,
5085
        expand_java_add_case, build_class_init, build_known_method_ref,
5086
        invoke_build_dtable, build_invokevirtual, build_invokeinterface,
5087
        expand_invoke, build_jni_stub, expand_java_field_op,
5088
        java_expand_expr, expand_byte_code, STORE_INTERNAL,
5089
        force_evaluation_order, emit_init_test_initialization): Convert
5090
        calls to "build" into calls to the prefered "buildN" functions.
5091
 
5092
2004-07-11  Joseph S. Myers  
5093
 
5094
        * java-tree.h (set_block): Remove.
5095
        * lang.c (java_clear_binding_stack): New.
5096
        (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5097
        * decl.c (struct binding_level): Remove this_block.
5098
        (clear_binding_level): Likewise.
5099
        (poplevel): Don't handle this_block.
5100
        (set_block): Remove.
5101
 
5102
2004-07-10  Bryce McKinlay  
5103
 
5104
        * class.c (common_enclosing_context_p): Remove statement with no
5105
        side-effects.
5106
 
5107
2004-07-09  Bryce McKinlay  
5108
 
5109
        PR java/8618
5110
        * parse.y (create_anonymous_class): Remove 'location' argument. Use
5111
        the WFL from TYPE_NAME to get line number for the decl. Fix comment.
5112
        (craft_constructor): Inherit access flags for implicit constructor
5113
        from the enclosing class.
5114
        (create_class): Fix comment typo.
5115
        (resolve_qualified_expression_name): Pass type of qualifier to
5116
        not_accessible_p, not the type in which target field was found.
5117
        (not_accessible_p): Handle inner classes. Expand protected
5118
        qualifier-subtype check to enclosing instances, but don't apply this
5119
        check to static members. Allow protected access to inner classes
5120
        of a subtype. Allow private access within common enclosing context.
5121
        (build_super_invocation): Get WFL line number info from current
5122
        class decl.
5123
        (build_incomplete_class_ref): Update for new create_anonymous_class
5124
        signature.
5125
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
5126
        common_enclosing_instance_p.
5127
        * class.c (common_enclosing_context_p): New. Determine if types
5128
        share a common enclosing context, even across static contexts.
5129
        (common_enclosing_instance_p): Renamed from
5130
        common_enclosing_context_p. Determines if types share a common
5131
        non-static enclosing instance.
5132
        * java-tree.h (common_enclosing_instance_p): Declare.
5133
        * jcf-write.c (get_method_access_flags): New. Surpress private flag
5134
        for inner class constructors.
5135
        (generate_classfile): Use get_method_access_flags.
5136
 
5137
2004-07-09  Bryce McKinlay  
5138
 
5139
        * class.c (interface_of_p): Check for null TYPE_BINFO.
5140
 
5141
2004-07-09  Nathan Sidwell  
5142
 
5143
        * class.c (make_class): Do not create binfo here.
5144
        (set_super_info): Create it here.
5145
        * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
5146
 
5147
2004-07-08  Richard Henderson  
5148
 
5149
        * expr.c (case_identity, get_primitive_array_vtable,
5150
        java_expand_expr, emit_init_test_initialization): Remove.
5151
        * java-tree.h (java_expand_expr): Remove.
5152
        * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
5153
 
5154
2004-07-07  Per Bothner  
5155
 
5156
        * class.c (build_static_field_ref):  Add a NOP_EXPR; otherwise we
5157
        get internal error due to mismatched types.
5158
 
5159
        * gcj.texi (Invoking gij):  Document new -verbose:class flag.
5160
 
5161
        * gcj.texi (Linking):   New node.  Document -lgij usage.
5162
 
5163
2004-07-07  Nathan Sidwell  
5164
 
5165
        * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
5166
        (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
5167
        * java/class.c (set_super_info, class_depth, interface_of_p,
5168
        maybe_add_interface, add_interface, make_class_data,
5169
        layout_class, add_miranda_methods): Adjust BINFO macros.
5170
        * expr.c (can_widen_reference_to, lookup_field): Likewise.
5171
        * jcf-write.c (generate_classfile): Likewise.
5172
        * parse.y (patch_anonymous_class,
5173
        check_inner_circular_reference, check_circular_reference,
5174
        java_complete_class, check_abstract_method_definitions,
5175
        java_check_abstract_method_definitions,
5176
        check_interface_throws_clauses, java_check_abstract_methods,
5177
        lookup_java_interface_method2,
5178
        find_applicable_accessible_methods_list): Likewise.
5179
        * typeck.c (find_method_in_interface): Likewise.
5180
        * verify.c (merge_types): Likewise.
5181
 
5182
2004-07-06  Nathan Sidwell  
5183
 
5184
        * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
5185
        * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
5186
 
5187
2004-07-05  Nathan Sidwell  
5188
 
5189
        * class.c (make_class): Use make_tree_binfo.
5190
        (set_super_info, add_interface_do): Likewise.
5191
        * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
5192
 
5193
2004-07-04  Ranjit Mathew  
5194
 
5195
        * verify.c: Correct array element access formatting thinko.
5196
 
5197
2004-07-04  Ranjit Mathew  
5198
 
5199
        * verify.c: Insert a short blurb at the start referring to the JVMS.
5200
        (merge_type_state): Remove redundant nested if statement.
5201
        (verify_jvm_instructions): Ensure current_subr is initialised to
5202
        NULL_TREE.
5203
        Minor formatting fixes all over the place.
5204
 
5205
2004-07-02  Richard Henderson  
5206
 
5207
        * jcf-write.c (generate_bytecode_insns ): Rewrite.
5208
 
5209
2004-07-01  Richard Henderson  
5210
 
5211
        * class.c (registerClass_libfunc): Remove.
5212
        (init_class_processing): Don't set it.
5213
        (emit_register_classes): Take list_p parameter.  Fill it in
5214
        with _Jv_RegisterClass calls.
5215
        * decl.c (java_init_decl_processing): Don't call
5216
        init_resource_processing.
5217
        * jcf-parse.c (java_emit_static_constructor): New.
5218
        (java_parse_file): Call it.
5219
        * resource.c (registerResource_libfunc): Remove.
5220
        (init_resource_processing): Remove.
5221
        (write_resource_constructor): Take list_p parameter.  Fill it in
5222
        with _Jv_RegisterResource calls.
5223
        * java-tree.h: Update prototypes.
5224
 
5225
2004-06-29  Bryce McKinlay  
5226
 
5227
        PR java/1262
5228
        * class.c (layout_class_method): Do not override package-private
5229
        method if its in a different package.
5230
        (split_qualified_name): Move here from parse.y. Rename from
5231
        breakdown_qualified. Add comment.
5232
        (in_same_package): Move here from parse.y. Add comment.
5233
        * java-tree.h (break_down_qualified, in_same_package): Declare.
5234
        (in_same_package): Likewise.
5235
        * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
5236
        Callers updated.
5237
 
5238
2004-06-29  Andrew Haley  
5239
 
5240
        * except.c (expand_start_java_handler): Push a new binding level.
5241
        Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
5242
        register_exception_range() to register where we'll do it.
5243
        (expand_end_java_handler): Remove old bogus code.  Replace with
5244
        new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5245
        the top of the expression we're curently building.
5246
        (maybe_end_try): Delete.
5247
        * decl.c (binding_level.exception_range): New field.
5248
        (clear_binding_level): Add field exception_range.  Reformat.
5249
        (poplevel): Call expand_end_java_handler().
5250
        (poplevel): Call java_add_stmt only if functionbody is false.
5251
        (maybe_poplevels): Don't call maybe_end_try() from here.
5252
        (end_java_method): Clear no longer used trees in function decl.
5253
        (register_exception_range): New function.
5254
        * java-tree.h (register_exception_range, struct eh_range): Declare.
5255
 
5256
2004-06-28  Bryce McKinlay  
5257
 
5258
        * jcf-write.c (get_classfile_modifiers): Formatting fixes.
5259
 
5260
2004-06-27  Ranjit Mathew  
5261
 
5262
        Formatting fixes.
5263
        * expr.c (class_has_finalize_method): Fix method name indentation.
5264
        (expand_java_call): Remove K&R style parameter declaration.
5265
        (expand_invoke): Fix statement indentation.
5266
        (expand_java_field_op): Likewise.
5267
        * parse-scan.y: Fix typo.
5268
        (reset_report): Fix method name indentation.
5269
        * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
5270
        line. Fix typos.
5271
        * verify.c (verify_jvm_instructions): Document parameters, insert
5272
        page break.
5273
        * lang.c (lang_init_source): Fix method name indentation.
5274
        * class.c (common_enclosing_context_p): Likewise.
5275
        (emit_symbol_table): Fix parameter list indentation.
5276
        * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
5277
        parameter declaration.
5278
        * constants.c: Fix copyright notice indentation.
5279
        * typeck.c (find_method_in_superclasses): Fix parameter list
5280
        indentation.
5281
        (find_method_in_interfaces): Likewise.
5282
        * zextract.c (makelong): Fix method name indentation.
5283
 
5284
2004-06-26  Bryce McKinlay  
5285
 
5286
        PR java/15715.
5287
        * parse.y (create_interface): Set correct access modifiers for
5288
        interfaces.
5289
        * jcf-write.c (get_classfile_modifiers): New function.
5290
        (generate_classfile): Use get_classfile_modifiers, not
5291
        get_access_flags.
5292
 
5293
2004-06-26  Bryce McKinlay  
5294
 
5295
        * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
5296
        dependency to current parser context, not NULL_TREE, for top-level
5297
        classes.
5298
        (jdep_resolve_class): Enable member access check for all inner
5299
        class dependencies.
5300
 
5301
2004-06-26  Bryce McKinlay  
5302
 
5303
        * parse.y (qualify_and_find): Pass type decl, not identifier, to
5304
        load_class.
5305
 
5306
2004-06-26  Bryce McKinlay  
5307
 
5308
        PR java/15734
5309
        * expr.c (expand_java_field_op): Ensure that target class for static
5310
        field access has been loaded.
5311
 
5312
2004-06-26  Bryce McKinlay  
5313
            Ranjit Mathew  
5314
 
5315
        PR java/1207, java/16178
5316
        * jcf-parse.c (load_class): Return immediately if passed a type decl
5317
        where CLASS_FROM_SOURCE_P is set. Remove FIXME.
5318
        * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
5319
        before calling load_class.
5320
        (qualify_and_find): Likewise.
5321
        (find_in_imports_on_demand): Likewise.
5322
        (find_applicable_accessible_methods_list): Likewise.
5323
 
5324
2004-06-24  Bryce McKinlay  
5325
 
5326
        * parse.y (java_layout_seen_class_methods): Don't call load_class
5327
        on class defined by source parser.
5328
 
5329
2004-06-23  Bryce McKinlay  
5330
 
5331
        * parse.y (set_nested_class_simple_name_value): Removed.
5332
        (java_complete_expand_class): Remove calls to
5333
        set_nested_class_simple_name_value.
5334
 
5335
2004-06-22  Andrew Haley  
5336
            Ranjit Mathew  
5337
 
5338
        Fixes PR java/16113.
5339
        * decl.c (force_poplevels): Remove call to expand_end_bindings.
5340
 
5341
2004-06-22  Ranjit Mathew  
5342
 
5343
        * parse.y (create_class): Correct diagnostic message about
5344
        java.lang.Object extending anything else.
5345
 
5346
2004-06-21  Richard Kenner  
5347
 
5348
        * class.c (build_class_ref): Add new operand for COMPONENT_REF.
5349
        (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
5350
        * constants.c (build_ref_from_constant_pool): Likewise.
5351
        * expr.c (build_java_array_length_access): Likewise.
5352
        (build_get_class, build_field_ref, build_known_method_ref): Likewise.
5353
        (invoke_build_dtable, build_invokevirtual): Likewise.
5354
        (build_invokeinterface, java_expand_expr): Likewise.
5355
        (emit_init_test_initialization): Likewise.
5356
        * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5357
        * parse.y (make_qualifed_name, build_array_ref): Likewise.
5358
 
5359
2004-06-21  Andrew Haley  
5360
 
5361
        * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
5362
        block.
5363
 
5364
2004-06-21  Joseph S. Myers  
5365
 
5366
        * jcf.h (struct JCF): Change java_source, right_zip and finished
5367
        to unsigned int.
5368
        * lex.h (struct java_lexer): Change hit_eof, read_anything,
5369
        byte_swap and use_fallback to unsigned int.
5370
        * parse.h (struct _jdep): Change flag0 to unsigned int.
5371
 
5372
2004-06-17  Ranjit Mathew  
5373
 
5374
        Fixes PR java/13948
5375
        * parse.y (java_layout_seen_class_methods): Ensure class is loaded
5376
        before trying to lay out its methods.
5377
        * jcf-parse.c (read_class): Track parsed files using canonical paths
5378
        obtained via lrealpath from libiberty.
5379
        (java_parse_file): Likewise.
5380
        (parse_source_file_1): Rename formal parameter to reflect its
5381
        modified purpose. Minor formatting fix.
5382
 
5383
2004-06-15  Paolo Bonzini  
5384
 
5385
        * class.c (emit_register_classes): Make the function uninlinable,
5386
        do not set current_function_cannot_inline.
5387
        * resource.c (write_resource_constructor): Do not reset
5388
        flag_inline_functions around rest_of_compilation.
5389
 
5390
2004-06-08  Andrew Pinski  
5391
 
5392
        PR java/15769
5393
        * expr.c (java_truthvalue_conversion): Handle
5394
        UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5395
        ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5396
        i.e. return the expression.
5397
 
5398
2004-06-03 Mark G. Adams  
5399
 
5400
        * gjavah.c: Include version.h
5401
 
5402
2004-05-31  Bryce McKinlay  
5403
 
5404
        * jcf-write.c (generate_bytecode_conditional): Correct handling
5405
        of unordered conditionals. Add comment.
5406
 
5407
2004-05-29  Ranjit Mathew  
5408
            Per Bothner  
5409
 
5410
        * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
5411
        local variable was initialised upon declaration.
5412
        * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
5413
        variable was final and initialised upon declaration.
5414
        * check-init.c (check_final_reassigned): Give error only if a blank
5415
        final is not definitely unassigned or if an initialised final is
5416
        reassigned.
5417
        (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
5418
        assignment expressions. Remove case MODIFY_EXPR, label do_default.
5419
        (check_init): Perform initialised-variable-removing-optimisation
5420
        only on non-final local variables.
5421
 
5422
2004-05-28  Bryce McKinlay  
5423
 
5424
        * jcf-write.c (generate_bytecode_conditional): Handle binops
5425
        UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
5426
        and LTGT_EXPR.
5427
        (generate_bytecode_insns): Likewise.
5428
 
5429
2004-05-28  Bryce McKinlay  
5430
 
5431
        * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
5432
        UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
5433
 
5434
2004-05-28  Bryce McKinlay  
5435
 
5436
        * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
5437
        (Mixing with C++): Document JvAllocBytes and RawDataManaged.
5438
 
5439
2004-05-26  Bryce McKinlay  
5440
 
5441
        * decl.c (struct binding_level): Add GTY marker. Compile
5442
        binding_depth unconditionally.
5443
        (current_binding_level, free_binding_level, global_binding_level):
5444
        Likewise.
5445
        (clear_binding_level): Unconditionally set binding_depth.
5446
        (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
5447
 
5448
2004-05-26  Bryce McKinlay  
5449
 
5450
        * lex.c (java_new_lexer): Set 'encoding'.
5451
        (java_read_char): Improve error message for unrecognized characters.
5452
        * lex.h (struct java_lexer): New field 'encoding'.
5453
 
5454
2004-05-23  Paolo Bonzini  
5455
 
5456
        * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
5457
 
5458
2004-05-21  Mark Wielaard  
5459
 
5460
        * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
5461
        extern.
5462
 
5463
2004-05-19  Paolo Bonzini  
5464
 
5465
        * typeck.c: Remove non-printable character 160.
5466
 
5467
2004-05-17  Ranjit Mathew  
5468
 
5469
        * check-init.c: Correct minor typos.
5470
 
5471
2004-05-13  Diego Novillo  
5472
 
5473
        * Make-lang.in, expr.c, java-gimplify.c: Rename
5474
        tree-simple.[ch] to tree-gimple.[ch].
5475
 
5476
2004-05-14  Ranjit Mathew  
5477
 
5478
        * java-gimplify.c (java_gimplify_expr): Correct minor typos.
5479
 
5480
2004-05-13  Diego Novillo  
5481
 
5482
        Merge from tree-ssa-20020619-branch.  See
5483
        ChangeLog.tree-ssa for details.
5484
 
5485
        * Make-lang.in, builtins.c, check-init.c, class.c,
5486
        constants.c, decl.c, except.c, expr.c, java-except.h,
5487
        java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
5488
        lang.c, lang.opt, parse.y, resource.c: Merged.
5489
        * java-gimplify.c: New file.
5490
 
5491
2004-05-10  Andrew Haley  
5492
 
5493
        * parse.y (create_class): Set TYPE_VFIELD.
5494
        * decl.c (java_init_decl_processing): Likewise.
5495
 
5496
        * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
5497
        * class.c (make_method_value): Replace DECL_VINDEX with call to
5498
        get_method_index().
5499
        (get_dispatch_vector): Likewise.
5500
        (layout_class_method): Likewise.
5501
        Replace set of DECL_VINDEX with call to set_method_index().
5502
        (set_method_index): New function.
5503
        (get_method_index): New function.
5504
        * java-tree.h (set_method_index): New function decl.
5505
        (get_method_index): New function decl.
5506
 
5507
2004-05-10  Andrew Pinski  
5508
 
5509
        * parse.y (check_pkg_class_access): Add new argument
5510
        and use it when cl is NULL to call lookup_cl on it.
5511
        (parser_check_super_interface): Do not call lookup_cl.
5512
        Pass this_decl to check_pkg_class_access and NULL
5513
        instead of lookup_cl.
5514
        (parser_check_super): Update for change in
5515
        check_pkg_class_access.
5516
        (do_resolve_class): Likewise.
5517
        (process_imports): Likewise.
5518
        (find_in_imports_on_demand): Likewise.
5519
        (resolve_qualified_expression_name): Likewise.
5520
 
5521
2004-05-06  Ranjit Mathew  
5522
 
5523
        Fixes PR java/9685, PR java/15073
5524
        * parse.y (accessibility_string): New method.
5525
        (not_accessible_field_error): Use accessibility_string()
5526
        instead of java_accstring_lookup().
5527
        (resolve_qualified_expression_name): Check with
5528
        check_pkg_class_access() before allowing access using
5529
        qualified names.
5530
        Fix comment typo.
5531
        Use check_pkg_class_access() instead of not_accessible_p()
5532
        for unqualified types.
5533
        (not_accessible_p): Use DECL_CONTEXT (member) instead of
5534
        REFERENCE for package-private access checking.
5535
        (patch_method_invocation): Use accessibility_string() instead
5536
        of java_accstring_lookup().
5537
 
5538
2004-04-30  Ranjit Mathew  
5539
 
5540
        Fixes PR java/15133
5541
        * gjavah.c (struct method_name): Add member is_native.
5542
        (overloaded_jni_method_exists_p): Match candidate method only if
5543
        it is native.
5544
        (print_method_info): Initialise is_native flag from the method's
5545
        access flags.
5546
 
5547
2004-04-30  Roger Sayle  
5548
 
5549
        * builtins.c (java_builtins): Add acos, asin, ceil and floor.
5550
        (initialize_builtins): Likewise, define acos, asin, ceil and floor.
5551
 
5552
2004-04-22  Roger Sayle  
5553
 
5554
        * resource.c (write_resource_constructor): Guard call to possibly
5555
        NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
5556
 
5557
2004-04-19  Bryce McKinlay  
5558
 
5559
        * class.c (make_class_data): Add new field aux_info.
5560
        * decl.c (java_init_decl_processing): Push type and decl for
5561
        `aux_info'.
5562
 
5563
2004-04-15  Bryce McKinlay  
5564
 
5565
        * expr.c (expand_java_NEW): Don't use size argument for
5566
        _Jv_AllocObject calls.
5567
        * parse.y (patch_invoke): Likewise.
5568
 
5569
2004-04-12  Bryce McKinlay  
5570
 
5571
        * expr.c (build_invokeinterface): Remove unused variables to
5572
        fix warnings.
5573
 
5574
2004-04-12  Bryce McKinlay  
5575
 
5576
        * class.c (get_interface_method_index): New function. Return dispatch
5577
        index for interface method.
5578
        (make_method_value): For interface methods, set index field to
5579
        iface dispatch index, not DECL_VINDEX.
5580
        * expr.c (build_invokeinterface): Use get_interface_method_index.
5581
 
5582
2004-03-31  Richard Kenner  
5583
 
5584
        * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
5585
 
5586
2004-03-31  Andrew Haley  
5587
 
5588
        PR java/14104
5589
        * jcf-io.c (opendir_in_zip): Tidy up error handling.
5590
 
5591
2004-03-30  Zack Weinberg  
5592
 
5593
        * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
5594
        form of GTY markers.
5595
 
5596
2004-03-25  Marcus Meissner  
5597
 
5598
        PR java/14689:
5599
        * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
5600
 
5601
2004-03-23  Tom Tromey  
5602
 
5603
        PR java/14315:
5604
        * jcf-write.c (make_class_file_name): Don't report if mkdir
5605
        failed with EEXIST.
5606
 
5607
2004-03-23  Tom Tromey  
5608
 
5609
        * gcj.texi (Extensions): Document GCJ_PROPERTIES.
5610
 
5611
2004-03-20  Kazu Hirata  
5612
 
5613
        * class.c, gjavah.c, lang.c: Fix comment typos.
5614
        * gcj.texi: Fix typos.
5615
 
5616
2004-03-19  Per Bothner  
5617
 
5618
        * gcj.texi (Code Generation):  Document new flags and assert defaults.
5619
 
5620
        * class.c (assume_compiled_node_struct):  Rename type to
5621
        class_flag_node_struct, as it is now also used for enable_assertions.
5622
        Rename assume_compiled_node typedef.  Rename excludep field to value.
5623
        (find_assume_compiled_node):  Rename function to find_class_flag_node.
5624
        Minor optimization - avoid needless strlen.
5625
        (add_assume_compiled):  Some tweaking and optimization.
5626
        Rename and generalize to add_class_flag takem an extra parameter.
5627
        (add_assume_compled):  New just calls add_class_flag.
5628
        (add_enable_assert, enable_assertions):  New functions.
5629
        (enable_assert_tree):  New static.
5630
        * java-tree.h (add_enable_assert, enable_assertions): New declarations.
5631
        * lang.opt (fenable-assertions, fenable-assertions=,
5632
        fdisable-assertions, fdisable-assertions=):  New options.
5633
        * lang.c (java_handle_option):  Handle new options.
5634
        * parse.y (build_incomplete_class_ref):  Handle class$ in an inner
5635
        class in an interface - create helper class nested in outer interface.
5636
        (build_assertion):  Short-circuit if enable_assertions is false.
5637
 
5638
2004-03-18  Richard Kenner 
5639
 
5640
        * java-tree.h: Changes throughout to add checking to macros
5641
        and numerous whitespace changes.
5642
        (VAR_OR_FIELD_CHECK): New macro.
5643
        * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
5644
        FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
5645
 
5646
2004-03-16  Per Bothner  
5647
 
5648
        * jcf-jump.c (options):  New --print-constants option.
5649
        * gcj.texi (Invoking jcf-dump):  Document --print-constants.
5650
 
5651
        * jcf-dump.c (flag_print_constant_pool):  Default to off.
5652
        (print_constant_terse_with_index):  New helper function.
5653
        (various places):  Check flag_print_constant_pool where missing.
5654
        (main):  If verbose set flag_print_constant_pool.
5655
        (HANDLE_INNERCLASSES_ATTRIBUTE):  Null inner class name is anonymous.
5656
 
5657
2004-03-15  Andrew Haley  
5658
 
5659
        PR java/14581
5660
        * parse.y (java_complete_lhs): Check that final variable has an
5661
        initializer.
5662
 
5663
2004-03-12  Andrew Haley  
5664
 
5665
        PR java/14551
5666
        * typeck.c (convert): Clear TREE_OVERFLOW after an integer
5667
        conversion.
5668
 
5669
2004-02-29  Roger Sayle  
5670
 
5671
        * jcf-parse.c (java_parse_file): Handle the case that input_filename
5672
        is NULL.
5673
 
5674
2004-02-27  Per Bothner  
5675
 
5676
        * parse.y (build_assertion):  Re-do 02-25 change following Jeff Sturm
5677
        suggestion:  Use build_incomplete_class_ref.
5678
        This fixes PR java/13508, java/11714.
5679
 
5680
2004-02-27  Kazu Hirata  
5681
 
5682
        * java/parse.h: Update copyright.
5683
 
5684
2004-02-26  Andrew Haley  
5685
 
5686
        PR java/14231:
5687
        * parse.y (check_interface_throws_clauses): Check for
5688
        !METHOD_INVISIBLE (iface_method).
5689
        * class.c (layout_class_methods): Check for CLASS_INTERFACE as
5690
        well as CLASS_ABSTRACT.
5691
 
5692
2004-02-25  Per Bothner  
5693
 
5694
        * parse.y (build_assertion):  If we're in an inner class, create the
5695
        class$ helper routine in the outer class.
5696
 
5697
2004-02-19  Richard Henderson  
5698
 
5699
        * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
5700
 
5701
2004-02-16  Geoffrey Keating  
5702
 
5703
        * Make-lang.in (java.install-man): Add extra dependencies.
5704
 
5705
2004-02-13  Geoffrey Keating  
5706
 
5707
        * Make-lang.in: Install man pages under the same names
5708
        (possibly transformed) as the program they document.
5709
 
5710
2004-02-10  Joseph S. Myers  
5711
 
5712
        * gjavah.c: Include "intl.h".
5713
        (error): New function.
5714
        (main): Call gcc_init_libintl.
5715
        (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
5716
        print_stub_or_jni, process_file, main): Use error rather than
5717
        fprintf.
5718
        (print_method_info, usage, help, version, main): Mark strings for
5719
        translation with _.  Avoid splitting up sentences.  Send
5720
        information messages to stdout.
5721
        * jcf-dump.c: Include "intl.h".
5722
        (main): Call gcc_init_libintl.
5723
        (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
5724
        Mark error, usage and version messages for translation with _.
5725
        Avoid splitting up sentences.
5726
        * jv-scan.c: Include "intl.h".
5727
        (fatal_error, warning): Change parameter s to msgid.  Translate
5728
        messages.
5729
        (main): Call gcc_init_libintl.
5730
        (usage, help, version): Mark error, usage and version messages for
5731
        translation with _.  Avoid splitting up sentences.
5732
        * jvgenmain.c: Include "intl.h".
5733
        (main): Call gcc_init_libintl.
5734
        (usage, main): Mark error messages for translation with _.
5735
        * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
5736
        JVGENMAIN_OBJS): Add intl.o.
5737
        (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
5738
        java/jvgenmain.o): Update dependencies.
5739
 
5740
2004-02-08  Per Bothner  
5741
 
5742
        * parse.y (resolve_qualified_expression_name):  In case of inaccessible
5743
        class don't use not_accessible_field_error, which can get confused.
5744
 
5745
2004-02-05  Kelley Cook  
5746
 
5747
        Make-lang.in (po-generated):  Delete.
5748
 
5749
2004-02-05  Kazu Hirata  
5750
 
5751
        * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
5752
        Depend on target.h.
5753
        * decl.c: Include target.h.
5754
        (start_java_method): Replace PROMOTE_PROTOTYPES with
5755
        targetm.calls.promote_prototypes.
5756
        * expr.c: Include target.h.
5757
        (pop_arguments): Replace PROMOTE_PROTOTYPES with
5758
        targetm.calls.promote_prototypes.
5759
        * parse.y: Include target.h.
5760
        (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
5761
        with targetm.calls.promote_prototypes.
5762
 
5763
2004-02-04  Kazu Hirata  
5764
 
5765
        * typeck.c: Update copyright.
5766
 
5767
2004-02-02  Tom Tromey  
5768
 
5769
        * decl.c (java_init_decl_processing): Remove duplicate
5770
        gnu/gcj/RawData.
5771
 
5772
2004-01-30  Kelley Cook  
5773
 
5774
        * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
5775
 
5776
2004-01-28  Andrew Pinski  
5777
 
5778
        * expr.c (build_field_ref): Move variable
5779
        definition up.
5780
 
5781
2004-01-28  Andrew Haley  
5782
 
5783
        * expr.c (build_field_ref): Widen field offset.
5784
 
5785
2004-01-27  Andrew Haley  
5786
 
5787
        java/13273
5788
        * parse.y (check_interface_throws_clauses): Make sure class_decl
5789
        has been loaded.
5790
 
5791
2004-01-22  Jeff Sturm  
5792
 
5793
        PR java/13733
5794
        * parse.y (patch_assignment): Don't modify lhs_type for
5795
        reference assignments.
5796
 
5797
2004-01-20  Kelley Cook  
5798
 
5799
        * Make-lang.in: Replace $(docdir) with doc.
5800
        (java.info, java.srcinfo, java.man, java.srcman): New rules.
5801
        (java.install-man): Revamp rule.
5802
 
5803
2004-01-20  Kelley Cook  
5804
 
5805
        * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
5806
        GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
5807
        instead of deferred backquote.
5808
 
5809
2004-01-16  Andrew Pinski  
5810
 
5811
        * typeck.c (find_method_in_interfaces): Move variable
5812
        definition up.
5813
 
5814
2004-01-16  Andrew Haley  
5815
 
5816
        PR java/13273:
5817
        * typeck.c (shallow_find_method): New.
5818
        (find_method_in_superclasses): New.
5819
        (find_method_in_interfaces): New.
5820
        (lookup_do): Rewrite.
5821
        * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
5822
 
5823
        * jcf-parse.c (read_class): Save and restore output_class.
5824
        * decl.c (java_expand_body): Set output_class from fndecl.
5825
 
5826
2004-01-15  Michael Chastain  
5827
 
5828
        * class.c (gen_indirect_dispatch_tables): Fix string length
5829
        calculations.
5830
 
5831
2004-01-15  Kelley Cook  
5832
 
5833
        * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
5834
        (java.srcextra): Copy above back to source directory if requested.
5835
        (po-generated): Delete reference to $(parsedir).
5836
        (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
5837
        Use implicit rule.
5838
 
5839
2004-01-14  Jan Hubicka  
5840
 
5841
        * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
5842
        estimation.
5843
 
5844
2004-01-09  Mark Mitchell  
5845
 
5846
        * java-tree.h (java_expand_expr): Change prototype.
5847
        * expr.c (java_expand_expr): Add alt_rtl parameter.
5848
 
5849
2004-01-09  Andrew Haley  
5850
 
5851
        PR java/12755:
5852
        * parse.y (java_fix_constructors):  Set output_class.
5853
        (java_reorder_fields): Likewise.
5854
        (java_layout_classes): Likewise.
5855
        (java_expand_classes): Generate indirect dispatch tables.
5856
        (java_expand_classes): Set output_class.
5857
        (java_finish_classes): Likewise.
5858
        * lang.c (java_init): Turn on always_initialize_class_p if we're
5859
        using indirect dis[atch.
5860
        (java_decl_ok_for_sibcall): Use output_class, not current_class.
5861
        (java_get_callee_fndecl): Use class local atable.
5862
        * jcf-parse.c
5863
        (always_initialize_class_p): Decl moved to java-tree.h.
5864
        (HANDLE_CLASS_INFO): Set output_class.
5865
        (read_class): Likewise.
5866
        (parse_class_file): Call gen_indirect_dispatch_tables.
5867
        (parse_zip_file_entries): Set output_class.
5868
        (java_parse_file): Set output_class.  Don't emit symbol tables.
5869
        * java-tree.h (output_class): New.
5870
        Remove global declarations for otable, atable, and ctable.
5871
        (always_initialize_class_p): moved here from decl.c.
5872
        (DECL_OWNER): New.
5873
        (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
5874
        TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
5875
        TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
5876
        (struct lang_type): Add otable_methods, otable_decl,
5877
        otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
5878
        ctable_decl, catch_classes, type_to_runtime_map.
5879
        * expr.c (build_field_ref): Make otable, atable, and ctable class
5880
        local rather than global.
5881
        (build_known_method_ref): Likewise.
5882
        (build_invokeinterface): Likewise.
5883
        (java_expand_expr): Pass runtime type (rather than actual type) to
5884
        expand_start_catch.
5885
        * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
5886
        this class.  Look up each class in that map to delete duplicates.
5887
        (expand_end_java_handler): Pass runtime type (rather than actual
5888
        type) to expand_start_catch.
5889
        * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
5890
        (do_nothing): New.
5891
        (java_init_decl_processing): Rearrange things.  Remove global
5892
        declarations of otable, atable, and ctable.
5893
        (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
5894
        (java_expand_body): Set output_class.
5895
        * constants.c (build_constant_data_ref): Use output_class, not
5896
        current_class.
5897
        (alloc_name_constant): Likewise.
5898
        * class.c (gen_indirect_dispatch_tables): New.
5899
        (build_class_ref): Generate hard reference to superclass, even if
5900
        using indirect dispatch.
5901
        (build_static_field_ref): Use class local atable.
5902
        (make_class_data): Generate hard reference to superclass, even if
5903
        using indirect dispatch.
5904
        Generate symbolic references to interfaces when using indirect
5905
        dispatch.
5906
        (make_class_data): Emit otable, atable, and ctable.
5907
        Make otable, atable, and ctable class local rather than global.
5908
        (emit_catch_table): Make otable, atable, and ctable class local
5909
        rather than global.
5910
 
5911
2003-12-25  Andrew Pinski  
5912
 
5913
        * parse.y (catch_clause_parameter): Fix typo.
5914
 
5915
        PR java/13404
5916
        * parse.y: (catch_clause_parameter): Return early if $3, aka
5917
        formal_parameter, is null.
5918
 
5919
2003-12-20  Kazu Hirata  
5920
 
5921
        * class.c: Remove uses of "register" specifier in
5922
        declarations of arguments and local variables.
5923
        * decl.c: Likewise.
5924
        * expr.c: Likewise.
5925
        * gjavah.c: Likewise.
5926
        * jcf-dump.c: Likewise.
5927
        * jcf-io.c: Likewise.
5928
        * jcf-parse.c: Likewise.
5929
        * jcf-write.c: Likewise.
5930
        * keyword.h: Likewise.
5931
        * parse.y: Likewise.
5932
        * typeck.c: Likewise.
5933
        * verify.c: Likewise.
5934
 
5935
2003-12-06  Kelley Cook  
5936
 
5937
        * Make-lang.in (GCJ_CROSS_NAME): Delete.
5938
        (java.install_common, java.install-man): Adjust for above.
5939
        (java.uninstall): Likewise.
5940
 
5941
2003-12-03  Michael Koch  
5942
 
5943
        * class.c (make_class_data):
5944
        Push field value to 'hack_signers' instead of 'signers'.
5945
        * decl.c (java_init_decl_processing):
5946
        Push field 'hack_signers' instead of 'signers'.
5947
 
5948
2003-12-03  Zack Weinberg  
5949
 
5950
        * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
5951
        including iconv.h.
5952
 
5953
2003-12-03  Ralph Loader  
5954
 
5955
        PR java/12374:
5956
        * parse.y (qualify_ambiguous_name): Remove lots of broken
5957
        field access processing - there's no need to do that here,
5958
        because we have resolve_field_access.  Remove
5959
        RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
5960
        * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
5961
        used.
5962
 
5963
2003-12-01  Jeff Sturm  
5964
 
5965
        Fix PR java/13237
5966
        * parse.y (java_complete_lhs): Save location prior to patching
5967
        CALL_EXPR.
5968
 
5969
2003-11-25  Mohan Embar  
5970
 
5971
        PR java/12548
5972
        * resource.c (write_resource_constructor): Append
5973
        "_resource" to constructor identifier name.
5974
 
5975
2003-11-25  Jeff Sturm  
5976
 
5977
        Fix PR java/13183.
5978
        * constants.c (cpool_for_class): New function.
5979
        (outgoing_cpool): Remove global variable.
5980
        (alloc_name_constant): Use cpool_for_class.
5981
        (build_constants_constructor): Likewise.
5982
        * decl.c (java_expand_body): Set current_class.
5983
        * java-tree.h (outgoing_cpool) Remove declaration.
5984
        (init_outgoing_cpool): Likewise.
5985
        * jcf-parse.c (init_outgoing_cpool): Remove function.
5986
        (parse_class_file): Don't call init_outgoing_cpool.
5987
        * parse.y (java_complete_expand_methods): Don't call
5988
        init_outgoing_cpool.  Don't save outgoing_cpool.
5989
        (java_expand_classes): Don't restore outgoing_cpool.
5990
        (java_finish_classes): Likewise.
5991
 
5992
2003-11-24  Mohan Embar  
5993
 
5994
        * Make-lang.in: (java.install-common) Add
5995
        symlink for $(target_noncanonical)-gcjh for
5996
        native builds.
5997
 
5998
2003-11-20  Joseph S. Myers  
5999
 
6000
        * Make-lang.in (java.extraclean): Delete.
6001
 
6002
2003-11-20  Joseph S. Myers  
6003
 
6004
        * Make-lang.in (check-java): Add.
6005
 
6006
2003-11-19  Jeff Sturm  
6007
 
6008
        Fix PR java/13024.
6009
        * except.c (prepare_eh_table_type): Allocate variable-sized
6010
        buffer `buf' with alloca.
6011
 
6012
2003-11-17  Jeff Sturm  
6013
 
6014
        Fix PR java/12857.
6015
 
6016
        decl.c (java_init_decl_processing): Don't initialize
6017
        class_not_found_type_node, no_class_def_found_type_node.
6018
 
6019
        java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
6020
        JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
6021
        (class_not_found_type_node, no_class_def_found_type_node):
6022
        Don't define.
6023
 
6024
        parse.y (build_dot_class_method_invocation): Add this_class
6025
        argument.  Qualify method invocations to a different class.
6026
        (create_new_parser_context): Initialize saved_data_ctx to 0.
6027
        (java_parser_context_save_global): Initialize saved_data_ctx to 1.
6028
        (build_dot_class_method): Don't load classes.  Register
6029
        incomplete types.
6030
        (build_incomplete_class_ref): Special cases for interfaces
6031
        and inner classes.  Move build_dot_class_method call to here...
6032
        (patch_incomplete_class_ref): ...from here.  Pass current_class
6033
        to build_dot_class_method_invocation.
6034
        (build_assertion): Pass class_type to
6035
        build_dot_class_method_invocation.
6036
        (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
6037
 
6038
2003-11-17  Jeff Sturm  
6039
 
6040
        Fix PR java/12739.
6041
        * java-tree.h (BLOCK_EMPTY_P): Define.
6042
        * parse.y (java_complete_lhs): Check for empty blocks
6043
        in TRY_FINALLY_EXPR case.
6044
 
6045
2003-11-17  Andrew Haley  
6046
 
6047
        * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
6048
        (struct lang_decl_var:freed): New variable.
6049
        * decl.c (poplevel): Mark local vars that have gone out of scope.
6050
        (push_jvm_slot): Don't use the RTL of a var that has gone out of
6051
        scope.
6052
 
6053
2003-11-16  Jason Merrill  
6054
 
6055
        * Make-lang.in (java.tags): Create TAGS.sub files in each directory
6056
        and TAGS files that include them for each front end.
6057
 
6058
2003-11-15  Tom Tromey  
6059
 
6060
        * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
6061
 
6062
2003-11-12  Jason Merrill  
6063
 
6064
        PR optimization/12547
6065
        * lang.c (java_tree_inlining_walk_subtrees): Just walk
6066
        BLOCK_EXPR_BODY directly.
6067
 
6068
2003-11-12  Andrew Haley  
6069
 
6070
        PR java/11045
6071
        * parse.y (fold_constant_for_init): Check that we really do have a
6072
        constant.
6073
 
6074
        PR java/11533
6075
        * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
6076
        init_test_decls being inlined.
6077
 
6078
        PR java/12890:
6079
        * parse.y (do_resolve_class): Check return value from
6080
        breakdown_qualified().
6081
 
6082
2003-11-11  Tom Tromey  
6083
 
6084
        PR java/12915:
6085
        * parse.y (merge_string_cste): Handle case where we have a
6086
        pointer that happens to be zero, not null_pointer_node.
6087
 
6088
2003-11-10  Tom Tromey  
6089
 
6090
        * jcf-parse.c (classify_zip_file): Correctly compare
6091
        filename_length against length of manifest file's name.
6092
 
6093
2003-11-08  Tom Tromey  
6094
 
6095
        PR java/12894:
6096
        * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
6097
 
6098
2003-11-06  Andrew Haley  
6099
 
6100
        * expr.c (java_stack_swap): Make sure destination stack slots are
6101
        of the correct type.
6102
 
6103
2003-11-03  Kelley Cook  
6104
 
6105
        * Make-lang.in (dvi): Move targets to $(docobjdir).
6106
        (gcj.dvi): Simplify rule and adjust target.
6107
        (gcj.info): Simplify rule.
6108
        (gcj.pod): New intermediate rule.
6109
        (gcjh.pod): Likewise.
6110
        (jv-scan.pod): Likewise.
6111
        (jcf-dump.pod): Likewise.
6112
        (gij.pod): Likewise.
6113
        (jv-convert.pod): Likewise.
6114
        (rmic.pod): Likewise.
6115
        (rmiregistry.pod): Likewise.
6116
        (gcj.1): Delete.
6117
        (gcjh.1): Delete.
6118
        (jv-scan.1): Delete.
6119
        (jcf-dump.1): Delete.
6120
        (gij.1): Delete.
6121
        (jv-convert.1): Delete.
6122
        (rmic.1): Delete.
6123
        (rmiregistry.1): Delete.
6124
 
6125
2003-11-02  Jeff Sturm  
6126
 
6127
        Fixes PR java/12866.
6128
        * parse.y (resolve_qualified_expression_name): Move test
6129
        for outer field access methods from here...
6130
        (check_thrown_exceptions) ...to here.
6131
 
6132
2003-11-01  Kelley Cook  
6133
 
6134
        * .cvsignore: Delete.
6135
 
6136
2003-10-28  Frank Ch. Eigler  
6137
 
6138
        * verify.c (verify_jvm_instructions): Don't warn about legal
6139
        eh binding regions generated for example by jdk 1.4.1.
6140
 
6141
2003-10-24  David S. Miller  
6142
 
6143
        * jcf-parse.c (jcf_parse): Fix args to fatal_error().
6144
 
6145
2003-10-22  Andrew Haley  
6146
 
6147
        * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
6148
        (java_get_callee_fndecl): New.
6149
 
6150
        * jcf-parse.c (java_parse_file): Call emit_catch_table().
6151
 
6152
        * java-tree.h (ctable_decl): New.
6153
        (catch_classes):  New.
6154
        (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
6155
 
6156
        * decl.c (java_init_decl_processing): Add catch_class_type.
6157
        Add ctable_decl.
6158
        Add catch_classes field.
6159
 
6160
        * class.c (build_indirect_class_ref): Break out from
6161
        build_class_ref.
6162
        (make_field_value): Check flag_indirect_dispatch.
6163
        (make_class_data): Ditto.
6164
        Tidy uses of PUSH_FIELD_VALUE.
6165
        Add field catch_classes.
6166
        (make_catch_class_record): New.
6167
 
6168
        * java-tree.h (PUSH_FIELD_VALUE): Tidy.
6169
 
6170
2003-10-22  Kazu Hirata  
6171
 
6172
        * jcf-write.c: Follow spelling conventions.
6173
        * parse.y: Likewise.
6174
 
6175
2003-10-22  Kazu Hirata  
6176
 
6177
        * ChangeLog: Fix typos.
6178
        * expr.c: Fix comment typos.
6179
        * jcf-write.c: Likewise.
6180
        * lang.c: Likewise.
6181
        * lex.c: Likewise.
6182
        * mangle.c: Likewise.
6183
        * parse-scan.y: Likewise.
6184
        * parse.y: Likewise.
6185
 
6186
2003-10-22  Tom Tromey  
6187
 
6188
        * expr.c (expand_byte_code): Only warn about dead bytecode when
6189
        extra_warnings is set.
6190
 
6191
2003-10-22  Bryce McKinlay  
6192
 
6193
        Fix for PR java/12586.
6194
        * mangle.c (find_compression_record_match): Don't iterate through
6195
        package namespace elements unless they all match compression_table
6196
        entries.
6197
 
6198
2003-10-20  Kelley Cook  
6199
 
6200
        * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
6201
        (generate-manpages): Likewise.
6202
        (java.maintainer-clean): Likewise.
6203
        (gcj.info): Likewise.
6204
        (gcj.1): Likewise.
6205
        (gcjh.1): Likewise.
6206
        (jv-scan.1): Likewise.
6207
        (jcf-dump.1): Likewise.
6208
        (gij.1): Likewise.
6209
        (jv-convert.1): Likewise.
6210
        (rmic.1): Likewise.
6211
        (rmiregistry.1): Likewise.
6212
        (java.install-man): Likewise.
6213
        (parse-scan.o): Move and define complete compile line.
6214
        (parse.o): Likewise.
6215
        (jcf-tree-inline.o): Move.
6216
 
6217
2003-10-20  Mark Mitchell  
6218
 
6219
        * Make-lang.in (info): Update dependencies.
6220
        (java.install-info): Remove.
6221
        ($(srcdir)/java/gcj.info): Replace with ...
6222
        ($(docobjdir)/gcj.info): ... this.
6223
 
6224
2003-10-14  Nathanael Nerode  
6225
 
6226
        * Make-lang.in: Replace uses of $(target_alias) with
6227
        $(target_noncanonical).
6228
 
6229
2003-10-09  Tom Tromey  
6230
 
6231
        * decl.c (java_init_decl_processing): Declare signers field.
6232
        * class.c (make_class_data): Set signers field.
6233
 
6234
2003-10-09  Jason Merrill  
6235
 
6236
        * parse.y (patch_assignment): Use make_node to create a BLOCK.
6237
        * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
6238
        POINTER_TYPE.
6239
 
6240
2003-10-06  Mark Mitchell  
6241
 
6242
        * Make-lang.in (java.info): Replace with ...
6243
        (info): ... this.
6244
        (java.dvi): Replace with ...
6245
        (dvi): ... this.
6246
        (java.generated-manpages): Replace with ...
6247
 
6248
2003-10-03  Kelley Cook  
6249
 
6250
        * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
6251
 
6252
2003-10-01  Andrew Haley  
6253
 
6254
        * jcf-parse.c (java_parse_file): Write otable and atable.
6255
        * java-tree.h (atable_methods): New.
6256
        (atable_decl): New.
6257
        (atable_syms_decl): New.
6258
        (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
6259
        JTI_ATABLE_SYMS_DECL.  Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
6260
        (symbol_*type): Rename method_symbol* to symbol*type.
6261
        (emit_offset_symbol_table): Delete.
6262
        (emit_symbol_table): New.
6263
        (get_symbol_table_index): New.
6264
        (atable_type): New.
6265
        * expr.c (build_field_ref): Handle flag_indirect_dispatch.
6266
        (build_known_method_ref): Likewise.
6267
        (get_symbol_table_index): Rename from get_offset_table_index.
6268
        Parameterize to allow re-use by differing types of symbol table.
6269
        (build_invokevirtual): Pass table to get_offset_table_index.
6270
        * decl.c (java_init_decl_processing): Push types and decls for
6271
        atable and atable_syyms.
6272
        * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
6273
        (make_class_data): Add new fields atable and atable_syms.
6274
        (emit_symbol_table): Rename from emit_offset_symbol_table.
6275
        Parameterize to allow re-use by different types of symbol table.
6276
        (build_symbol_entry): Renamed from build_method_symbols_entry.
6277
 
6278
2003-09-30  Roger Sayle  
6279
 
6280
        * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
6281
        semantics for SAVE_EXPR, by caching the result in a temporary.
6282
 
6283
2003-09-28  Richard Henderson  
6284
 
6285
        * check-init.c (check_init): Save and restore input_location
6286
        instead of file and line separately.
6287
        * decl.c (java_expand_body): Likewise.
6288
        * jcf-write.c (generate_bytecode_insns): Likewise.
6289
        * parse.y (safe_layout_class): Likewise.
6290
        * jcf-parse.c (read_class, parse_class_file): Likewise.
6291
        (java_parse_file): Use %H for warning locator.
6292
 
6293
2003-09-28  Roger Sayle  
6294
 
6295
        * expr.c (java_check_reference): Use the semantics of COND_EXPRs
6296
        with void-type branches instead of using a COMPOUND_EXPR.
6297
 
6298
2003-09-28  Jeff Sturm  
6299
 
6300
        * decl.c (java_optimize_inline, dump_function): Remove.
6301
        * java-tree.h (java_optimize_inline): Remove declaration.
6302
        * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
6303
        * parse.y (source_end_java_method, java_expand_classes):
6304
        Likewise.  Remove dead code.
6305
 
6306
2003-09-27  Roger Sayle  
6307
 
6308
        * lang.c (java_init_options): Set flag_evaluation_order.
6309
        * expr.c (force_evaluation_order): Don't attempt to force
6310
        evaluation order of binary operations using save_expr.
6311
        * parse.y (java_complete_lhs): No longer need to call
6312
        force_evaluation_order when constructing binary operators.
6313
 
6314
2003-09-27  Alexandre Petit-Bianco  
6315
            Bryce McKinlay  
6316
 
6317
        PR java/1333:
6318
        * parse.y (not_accessible_field_error): New function.
6319
        (resolve_expression_name): Check field access permissions.
6320
        (resolve_qualified_expression_name): Use
6321
        not_accessible_field_error.
6322
        (resolve_qualified_expression_name): Likewise.
6323
 
6324
2003-09-24  Rainer Orth  
6325
 
6326
        * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
6327
 
6328
2003-09-23  Roger Sayle  
6329
 
6330
        * jcf-write.c (generate_bytecode_insns): Optimize binary operations
6331
        with equal operands without side-effects.
6332
 
6333
2003-09-22  Jeff Sturm  
6334
 
6335
        * decl.c (java_init_decl_processing): Don't emit otable decls
6336
        if flag_indirect_dispatch is not set.
6337
 
6338
2003-09-21  Richard Henderson  
6339
 
6340
        * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6341
        resource.c: Revert.
6342
 
6343
2003-09-21  Richard Henderson  
6344
 
6345
        * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6346
        resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
6347
 
6348
2003-09-20  Richard Henderson  
6349
 
6350
        * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
6351
 
6352
2003-09-18  Roger Sayle  
6353
 
6354
        * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
6355
        * check-init.c (check_init): Likewise.
6356
 
6357
2003-09-18  Roger Sayle  
6358
 
6359
        * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
6360
 
6361
2003-09-16  Andrew Haley  
6362
 
6363
        * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
6364
 
6365
2003-09-17  Ranjit Mathew  
6366
 
6367
        Fixes PR java/9577
6368
        * mangle.c (find_compression_record_match): Skip
6369
        over a "6JArray" (the array template mangled string)
6370
        IDENTIFIER_NODE.
6371
        (mangle_array_type): Correct minor typo.
6372
        (atms): Move definition to the beginning.
6373
 
6374
2003-09-16  Bryce McKinlay  
6375
 
6376
        * class.c (add_miranda_methods): Ensure super-interfaces are laid
6377
        out. Fix for PR java/12254.
6378
 
6379
2003-09-11  Richard Henderson  
6380
 
6381
        * parse.y (source_end_java_method): Update for new
6382
        cgraph_finalize_function argument.
6383
 
6384
2003-09-09  Richard Henderson  
6385
 
6386
        * parse.y (source_end_java_method): Update call to
6387
        cgraph_finalize_function.
6388
 
6389
2003-09-03  Jeff Sturm  
6390
 
6391
        * decl.c (java_expand_body): New function.
6392
        * expr.c (build_class_init): Set DECL_IGNORED_P.
6393
        * java-tree.h (start_complete_expand_method,
6394
        java_expand_body): Declare.
6395
        * jcf-parse.c (cgraph.h): Include.
6396
        (java_parse_file): Handle flag_unit_at_a_time.
6397
        * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
6398
        LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
6399
        (java_estimate_num_insns): Use walk_tree_without_duplicates.
6400
        (java_start_inlining): New function.
6401
        * parse.h (java_finish_classes): Declare.
6402
        * parse.y: Include cgraph.h.
6403
        (block): Don't special-case empty block production.
6404
        (craft_constructor): Set DECL_INLINE.
6405
        (source_end_java_method): Handle flag_unit_at_a_time.
6406
        Replace inline code with call to java_expand_body.
6407
        (start_complete_expand_method): Remove static modifier.
6408
        (java_expand_method_bodies): Patch function tree for
6409
        class initialization and/or synchronization as needed.
6410
        Don't begin RTL expansion yet.
6411
        (java_expand_classes): Check flag_unit_at_a_time before
6412
        calling finish_class.
6413
        (java_finish_classes): New function.
6414
        (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
6415
        (patch_assignment): Set DECL_CONTEXT on temporary variable.
6416
        (emit_test_initialization): Set DECL_IGNORED_P.
6417
 
6418
2003-09-03  Roger Sayle  
6419
 
6420
        * builtins.c (enum builtin_type): Delete unused enumeration.
6421
        * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
6422
 
6423
2003-08-28  Tom Tromey  
6424
 
6425
        * gcj.texi (Extensions): Document gcjlib URLs.
6426
 
6427
2003-08-20  Tom Tromey  
6428
 
6429
        * gcj.texi (Extensions): Added xref.
6430
        (libgcj Runtime Properties): Document
6431
        gnu.gcj.runtime.VMClassLoader.library_control.
6432
 
6433
2003-08-20  Andrew Haley  
6434
 
6435
        * except.c (prepare_eh_table_type): Use new encoding for exception
6436
        handlers when using -fno-assume-compiled.
6437
 
6438
2003-08-13  Tom Tromey  
6439
 
6440
        * gcj.texi (Invoking gij): Document -X and -?.
6441
 
6442
2003-08-13  Mohan Embar  
6443
 
6444
        * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
6445
        GCJH_OBJS, JCFDUMP_OBJS
6446
        * win32-host.c: Removed the unnecessary and broken dependency
6447
        on jcf.h
6448
 
6449
2003-08-11  Tom Tromey  
6450
 
6451
        * parse.y (java_check_regular_methods): Typo fixes.  Call
6452
        check_interface_throws_clauses.  Use
6453
        check_concrete_throws_clauses.
6454
        (check_interface_throws_clauses): New function.
6455
        (check_concrete_throws_clauses): New function.
6456
        (hack_is_accessible_p): New function.
6457
        (find_most_specific_methods_list): Added FIXME.
6458
        * typeck.c (lookup_do): Use `flags' argument to decide what to
6459
        do.  Reimplemented.
6460
        (lookup_argument_method_generic): New function.
6461
        (lookup_argument_method2): Removed.
6462
        * jcf.h (ACC_INVISIBLE): New define.
6463
        * jcf-write.c (generate_classfile): Skip invisible methods.
6464
        * class.c (add_miranda_methods): New function.
6465
        (layout_class_methods): Use it.
6466
        (get_access_flags_from_decl): Use ACC_INVISIBLE.
6467
        * java-tree.h (METHOD_INVISIBLE): New define.
6468
        (lang_decl_func) [invisible]: New field.
6469
        (lookup_argument_method_generic): Declare.
6470
        (SEARCH_INTERFACE): New define.
6471
        (SEARCH_SUPER): Likewise.
6472
        (SEARCH_ONLY_INTERFACE): Likewise.
6473
        (SEARCH_VISIBLE): Likewise.
6474
        (lookup_argument_method2): Removed declaration.
6475
 
6476
2003-08-05  Tom Tromey  
6477
 
6478
        Fix for PR java/11600:
6479
        * parse.y (java_complete_lhs): See whether we're calling a method
6480
        on an array.
6481
        (check_thrown_exceptions): Added `is_array_call' argument;
6482
        fixed `clone' checking; updated all callers.
6483
 
6484
2003-08-05  Steven Bosscher  
6485
 
6486
        * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
6487
 
6488
2003-08-03  Tom Tromey  
6489
 
6490
        * java-tree.h (METHOD_TRANSIENT): Removed.
6491
        * decl.c (pushdecl): Removed some dead code.
6492
        * class.c (get_access_flags_from_decl): Can't have transient
6493
        method.
6494
        (add_method_1): Can't have a transient method.
6495
 
6496
2003-07-28  Andreas Jaeger  
6497
 
6498
        * jvspec.c: Convert to ISO C90 prototypes.
6499
 
6500
2003-07-25  Nathan Sidwell  
6501
 
6502
        * decl.c (force_poplevels): Fix warning call.
6503
 
6504
2003-07-25  Gabriel Dos Reis  
6505
 
6506
        * expr.c (expand_java_field_op): Don't use xxx_with_decl
6507
        (expand_java_field_op): Likewise.
6508
        * class.c (layout_class_method): Likewise
6509
        (emit_register_classes): Likewise.
6510
        * decl.c (pushdecl): Likewise.
6511
        (poplevel): Likewise.
6512
        (force_poplevels): Likewise.
6513
        (give_name_to_locals): Likewise.
6514
        * check-init.c (check_for_initialization): Likewise.
6515
 
6516
2003-07-24  Jason Merrill  
6517
 
6518
        * java-tree.h: Move boolean_type_node et al to the back end.
6519
 
6520
2003-07-19  Kaveh R. Ghazi  
6521
 
6522
        * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
6523
        casts.
6524
 
6525
2003-07-19  Neil Booth  
6526
 
6527
        * lang.opt: Don't show -MD_ and -MDD_.
6528
 
6529
2003-07-18  Neil Booth  
6530
 
6531
        * lang-options.h: Remove.
6532
        * lang.opt: Add help text.
6533
 
6534
2003-07-15  Kazu Hirata  
6535
 
6536
        * expr.c: Remove the last argument to expand_assignment().
6537
 
6538
2003-07-09  Jan Hubicka  
6539
 
6540
        * java-tree.h (DECL_NUM_STMTS): Rename to...
6541
        (DECL_ESTIMATED_INSNS): ... this.
6542
        * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
6543
        New static functions.
6544
        (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
6545
        * parser.y (add_stmt_to_compound): Do not account statements.
6546
 
6547
2003-07-08  Mark Wielaard  
6548
 
6549
        * gcj.texi: CNI now expands to Compiled Native Interface.
6550
 
6551
2003-07-08  Rainer Orth  
6552
 
6553
        * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
6554
 
6555
2003-07-07  Nathan Sidwell  
6556
 
6557
        * expr.c (expand_byte_code): Adjist emit_line_note call.
6558
 
6559
2003-07-06  Neil Booth  
6560
 
6561
        * lang.c (java_handle_option): Don't handle filenames.
6562
 
6563
2003-07-02  Zack Weinberg  
6564
 
6565
        * jcf-path.c: Don't default-define PATH_SEPARATOR nor
6566
        DIR_SEPARATOR.
6567
        Use FILENAME_CMP.
6568
        * jcf-write.c: Don't default-define DIR_SEPARATOR.
6569
        * jcf.h: Delete COMPARE_FILENAMES definition.
6570
 
6571
2003-07-02  Neil Booth  
6572
 
6573
        * lang.c (java_init_options): Update prototype.
6574
 
6575
2003-07-01  Nathan Sidwell  
6576
 
6577
        * decl.c (poplevel): Adjust define_label call.
6578
 
6579
2003-06-27  Zack Weinberg  
6580
 
6581
        * gjavah.c (flag_jni): Make non-static.
6582
        * parse-scan.y (ctxp): Make non-static.
6583
 
6584
        * class.c (build_method_symbols_entry)
6585
        * expr.c (get_offset_table_index)
6586
        * jcf-parse.c (jcf_parse):
6587
        Mark the definition static, matching the forward declaration.
6588
 
6589
2003-06-26  Neil Booth  
6590
 
6591
        * lang.c (java_handle_option): Don't check for missing arguments.
6592
 
6593
2003-06-20  Nathan Sidwell  
6594
 
6595
        * class.c (push_class): Use a location_t to save place.
6596
        (emit_register_classes): Set input_location. Adjust
6597
        expand_function_end call.
6598
        * resource.c (write_resource_constructor): Likewise.
6599
        * decl.c (end_java_method): Adjust expand_function_end call.
6600
        * parse.y (source_end_java_method): Likewise.
6601
 
6602
2003-06-17  Robert Abeles  
6603
 
6604
        * lang.c (java_handle_option): Likewise.
6605
 
6606
2003-06-16  Neil Booth  
6607
 
6608
        * lang.c (java_handle_option): Special-casing of optional
6609
        joined arguments no longer needed.
6610
        * lang.opt: Update switches that take optional argument.
6611
 
6612
2003-06-15  Neil Booth  
6613
 
6614
        * lang.opt: Declare Java.
6615
        * lang.c (java_init_options): Update.
6616
 
6617
2003-06-15  Neil Booth  
6618
 
6619
        * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
6620
 
6621
2003-06-14  Neil Booth  
6622
 
6623
        * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
6624
        * lang.c (java_handle_option): -MD and -MMD have an underscore.
6625
        * lang.opt: -MD and -MMD have an underscore.
6626
 
6627
2003-06-14  Nathan Sidwell  
6628
 
6629
        * class.c (emit_register_classes): Adjust init_function_start
6630
        call.
6631
        * decl.c (complete_start_java_method): Likewise.
6632
        * resource.c (write_resource_constructor): Likewise.
6633
 
6634
2003-06-14  Neil Booth  
6635
 
6636
        * Make-lang.in: Update to use options.c and options.h.
6637
        * lang.c: Include options.h not j-options.h.
6638
        (java_handle_option): Abort on unrecognized option.
6639
        (java_init_options): Request Java switches.
6640
 
6641
2003-06-11  Neil Booth  
6642
 
6643
        * Make-lang.in: Handle mostlyclean.
6644
 
6645
2003-06-11  Tom Tromey  
6646
 
6647
        * lang.c (java_handle_option): Update dependency_tracking for
6648
        OPT_MF case.
6649
 
6650
        * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
6651
        empty argument.
6652
 
6653
2003-06-10  Andrew Haley  
6654
 
6655
        * resource.c (write_resource_constructor): Use expand_expr to
6656
        generate the address of the label attached to a resource.
6657
        * Make-lang.in (java/resource.o): Add expr.h
6658
 
6659
2003-06-10  Andrew Haley  
6660
 
6661
        * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
6662
        (java_decl_ok_for_sibcall): New.
6663
 
6664
2003-06-09  Neil Booth  
6665
 
6666
        * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
6667
        (java/j-options.c, java/j-options.h): New.
6668
        * java-tree.h (resource_name, compile_resource_file,
6669
        compile_resource_data): Constify.
6670
        * jcf-write.c (jcf_write_base_directory): Similarly.
6671
        * jcf.h (jcf_write_base_directory): Similarly.
6672
        * lang.c: Include j-options.h.
6673
        (cl_options_count, cl_options, string_option, java_decode_option,
6674
        lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
6675
        process_option_with_no): Remove.
6676
        (resource_name): Constify.
6677
        (LANG_HOOKS_HANDLE_OPTION): Override.
6678
        (java_handle_option): New.
6679
        (java_init): Don't call jcf_path_init.
6680
        (java_init_options): Call jcf_path_init.
6681
        * lang.opt: New.
6682
        * resource.c (compile_resource_data, compile_resource_file): Constify.
6683
 
6684
2003-06-09  Nathan Sidwell  
6685
 
6686
        * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
6687
        (struct lang_decl_func): Add last_line field.
6688
        * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
6689
        DECL_SOURCE_LINE_LAST): Remove.
6690
        * parse.y (missing_return_error, finish_method_declaration,
6691
        lookup_cl, start_artificial_method_body, source_end_java_method,
6692
        start_complete_expand_method): Adjust.
6693
 
6694
2003-06-08  Tom Tromey  
6695
 
6696
        * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
6697
        fno-assume-compiled.
6698
 
6699
2003-06-08  Roger Sayle  
6700
 
6701
        * builtins.c (define_builtin_type, builtin_types): Delete.
6702
        (define_builtin): Rewritten to take just the built-in code,
6703
        the function's name, type and fallback library function name.
6704
        All built-ins used by Java are implicit and BUILT_IN_NORMAL.
6705
        (initialize_builtins): Overhaul to define the GCC builtins
6706
        used by gcj manually, providing the Java run-time's
6707
        implementations as the fallback library function.
6708
 
6709
2003-06-08  Anthony Green  
6710
 
6711
        * parse.y (patch_cast): Fix conversions from floating-point to
6712
        integral types.
6713
 
6714
2003-06-08  Neil Booth  
6715
 
6716
        * Make-lang.in: Update.
6717
        * lang.c: Include opts.h. Define cl_options_count and cl_options.
6718
 
6719
2003-06-07  Neil Booth  
6720
 
6721
        * lang.c (java_init_options): Update.
6722
 
6723
2003-06-05  Jan Hubicka  
6724
 
6725
        * Make-lang.in:  Add support for stageprofile and stagefeedback
6726
 
6727
2003-05-31  Roger Sayle  
6728
 
6729
        * lang.c (java_init_options): Prescribe wrap-around two's
6730
        complement arithmetic overflow by setting flag_wrapv.
6731
 
6732
2003-05-29  Roger Sayle  
6733
 
6734
        * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
6735
        (builtin_record): Add an additional builtin_code field to
6736
        record which GCC built-in corresponds to the Java function.
6737
        (java_builtins):  Add new entries for atan, atan2, exp, log,
6738
        pow and tan.
6739
        (max_builtin, min_builtin, abs_builtin): Perform constant
6740
        folding on the resulting tree.
6741
        (java_build_function_call_expr): Likewise, perform constant
6742
        folding on the resulting tree.
6743
        (initialize_builtins): The NULL creators are now allowed in
6744
        the java_builtins table, which is now terminated by an entry
6745
        with builtin_code == END_BUILTINS.
6746
        (check_for_builtin): Likewise.  If the matching creator is
6747
        NULL, construct the call using java_build_function_call_expr
6748
        directly with the decl for the corresponding builtin_code.
6749
 
6750
2003-05-23  Nathanael Nerode  
6751
 
6752
        * win32-host.c: Normalize copyright boilerplate.
6753
 
6754
2003-05-16  Kaveh R. Ghazi  
6755
 
6756
        * parse.y (print_int_node): Use string concatentation on
6757
        HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
6758
        function calls into one.
6759
 
6760
2003-05-13  Zack Weinberg  
6761
 
6762
        * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
6763
        fatal_io_error with calls to fatal_error; add ": %m" to the end of
6764
        all the affected error messages.
6765
 
6766
2003-05-13  Richard Henderson  
6767
 
6768
        * class.c (layout_class_method): Set DECL_EXTERNAL.
6769
        * decl.c (java_mark_decl_local, java_mark_class_local): New.
6770
        * java-tree.h (java_mark_class_local): Declare.
6771
        * jcf-parse.c (parse_class_file): Use it.
6772
        * parse.y (java_expand_classes): Likewise.
6773
 
6774
2003-05-04  Nathan Sidwell  
6775
 
6776
        * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
6777
        * lex.h: #include input.h.
6778
        * jv-scan.c (input_filename): Remove.
6779
 
6780
2003-05-02  Tom Tromey  
6781
 
6782
        PR java/10491:
6783
        * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
6784
        (handle_inner_classes): New function.
6785
 
6786
2003-05-01  Tom Tromey  
6787
 
6788
        PR java/10459:
6789
        * parse.y (finish_for_loop): Do nothing if update expression is a
6790
        EXPR_WFL_NODE wrapping nothing.
6791
        (java_complete_lhs) : Likewise.
6792
 
6793
2003-05-02  Nathan Sidwell  
6794
 
6795
        * lex.h (input_lineno): Remove declaration.
6796
        * parse-scan.y: #include input.h.
6797
        (input_filename): Remove declaration.
6798
        (input_location): Add definition.
6799
        (input_line): Remove definition.
6800
 
6801
2003-05-01  Nathan Sidwell  
6802
 
6803
        * lex.h (lineno): Rename to ...
6804
        (input_line): ... here
6805
        * parse-scan.y (lineno): Rename to ...
6806
        (input_line): ... here.
6807
        (reset_report): Rename lineno to input_line.
6808
        * check-init.c (check_init): Likewise.
6809
        * class.c (push_class): Likewise.
6810
        * decl.c (complete_start_java_method, end_java_method): Likewise.
6811
        * expr.c (expand_byte_code): Likewise.
6812
        * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
6813
        * jcf-write.c (generate_bytecode_insns): Likewise.
6814
        * lex.c (java_init_lex, java_allocate_new_line,
6815
        do_java_lex): Likewise.
6816
        * parse.h (YYNOT_TWICE): Likewise.
6817
        * parse.y (empty_statement, expression_statement,
6818
        java_pop_parser_context, java_parser_context_save_global,
6819
        yyerror, register_fields, method_header, safe_layout_class,
6820
        find_in_imports_on_demand, create_artificial_method,
6821
        source_end_java_method, start_complete_expand_method,
6822
        build_thisn_assign, java_complete_lhs,
6823
        maybe_absorb_scoping_block): Likewise.
6824
 
6825
2003-04-20  Mohan Embar  
6826
 
6827
        * jcf-io.c (find_class): use DIR_SEPARATOR instead of
6828
        '/' when computing java source filename
6829
 
6830
2003-04-13  Tom Tromey  
6831
 
6832
        * gjavah.c (print_c_decl): Indentation fix.
6833
 
6834
2003-04-12  Zack Weinberg  
6835
 
6836
        * class.c (make_field_value, make_method_value, get_dispatch_table)
6837
        (make_class_data, emit_offset_symbol_table)
6838
        * constants.c (build_constants_constructor)
6839
        * java-tree.h (START_RECORD_CONSTRUCTOR)
6840
        * parse.y (maybe_build_array_element_wfl):
6841
        Use build_constructor.
6842
 
6843
2003-04-10  Eric Blake  
6844
 
6845
        PR java/10253:
6846
        * parse.y (string_convert_int_cst): Always use at least one digit
6847
        in string conversion. Remove ASCII dependence.
6848
        (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
6849
 
6850
2003-03-16  Mohan Embar  
6851
 
6852
        * Make-lang.in: added win32-host.c
6853
        * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
6854
        resolves to open() on non-Win32 platforms and
6855
        Win32-specific jcf_open_exact_case() on Win32
6856
        * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
6857
        when trying .java and .class files
6858
        * win32-host.c: added to repository. Defines
6859
        Win32-specific jcf_open_exact_case()
6860
 
6861
2003-04-10  Andrew Haley  
6862
 
6863
        * jcf-write.c (struct jcf_partial): num_jsrs: new field.
6864
        (maybe_free_localvar): Renamed from localvar_free.
6865
        Add new arg, really.
6866
        (generate_bytecode_insns): Set new variable, jsrs.
6867
        Only free local vars if no jsr insns have been emittted.
6868
        Call maybe_free_localvar, not localvar_free.
6869
 
6870
2003-03-30  Joseph S. Myers  
6871
 
6872
        * gcj.texi: Remove @ at start of file.
6873
 
6874
2003-03-25  Tom Tromey  
6875
 
6876
        * parse.y (create_interface): Call CHECK_DEPRECATED.
6877
 
6878
2003-03-23  Zack Weinberg  
6879
 
6880
        * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
6881
 
6882
2003-03-21  Zack Weinberg  
6883
 
6884
        * javaop.h (jfloat, jdouble): Make them structures mirroring
6885
        the bit fields of IEEE float and double respectively.
6886
        (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
6887
        JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
6888
        (union Word, union DWord): Delete.
6889
        (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
6890
 
6891
        * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
6892
        D_NAN_MASK): Delete.
6893
        (jni_print_float, jni_print_double): New.  Generate
6894
        hexadecimal floating constants.
6895
        (print_field_info): Use jni_print_float/double.
6896
 
6897
        * jcf-dump.c: Include math.h.  Use ldexp/frexp to assemble
6898
        finite floating point numbers for output; special case
6899
        non-finite floats.
6900
 
6901
2003-03-19  Nathanael Nerode  
6902
 
6903
        * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
6904
        Replace 0 and 1 with true and false in return statements.
6905
 
6906
2003-03-19  Tom Tromey  
6907
 
6908
        * lex.c (do_java_lex): Renamed from java_lex.
6909
        (java_lex): New function.
6910
        Include timevar.h.
6911
 
6912
2003-03-13  Tom Tromey  
6913
 
6914
        * parse.y (resolve_inner_class): Error if qualifier is a primitive
6915
        type.
6916
 
6917
2003-03-04  Andrew Haley  
6918
 
6919
        * gjavah.c (is_first_data_member): New global variable.
6920
        (print_c_decl): If it's the first data member, align it as the
6921
        superclass.
6922
        (process_file): Set is_first_data_member.
6923
 
6924
2003-03-11  Tom Tromey  
6925
 
6926
        * parse.y (resolve_field_access): Initialize class if field is
6927
        found in another static field.
6928
        * expr.c (build_class_init): Don't optimize out initialization of
6929
        implemented interface.
6930
 
6931
2003-03-11  Andrew Haley  
6932
 
6933
        * jcf-io.c (caching_stat): Initialize origsep to remove compiler
6934
        warning.
6935
 
6936
2003-03-10  Ranjit Mathew  
6937
 
6938
        * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
6939
        and DIR_SEPARATOR_2 for a target.
6940
        Correct minor typos.
6941
 
6942
        * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
6943
        and DIR_SEPARATOR_2 for a target into account.
6944
 
6945
2003-03-08  Neil Booth  
6946
 
6947
        * lang.c (java_init): Update prototype, move code to java_post_options.
6948
        (java_post_options): Similarly.
6949
 
6950
2003-03-05  Ranjit Mathew  
6951
 
6952
        * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
6953
        compare file name components depending on the case-sensitivity
6954
        or otherwise of the host file system.
6955
 
6956
        * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
6957
        "strcmp" to compare file name components.
6958
        Use IS_DIR_SEPARATOR instead of comparing directly against
6959
        DIR_SEPARATOR.
6960
        (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
6961
        comparing directly against DIR_SEPARATOR.
6962
 
6963
2003-03-04  Tom Tromey  
6964
 
6965
        * Make-lang.in (java.tags): New target.
6966
 
6967
2003-03-01  Roger Sayle  
6968
 
6969
        * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
6970
        (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
6971
 
6972
2003-03-01  Tom Tromey  
6973
 
6974
        * parse.y (jdep_resolve_class): Only check deprecation if we found
6975
        a decl.
6976
 
6977
2003-02-28  Tom Tromey  
6978
 
6979
        PR java/9695:
6980
        * class.c (maybe_layout_super_class): Always pass a WFL to
6981
        do_resolve_class.
6982
        * parse.y (do_resolve_class): Updated comment to explain
6983
        parameters.
6984
 
6985
2003-02-26  Tom Tromey  
6986
 
6987
        * jcf-write.c (generate_classfile): Check whether class is
6988
        deprecated before writing attribute count.
6989
 
6990
2003-02-25  Roger Sayle  
6991
 
6992
        * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
6993
        built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
6994
 
6995
2003-02-23  Tom Tromey  
6996
 
6997
        * lang-options.h: Added -Wdeprecated.
6998
        * gcj.texi (Warnings): Document -Wdeprecated.
6999
        * java-tree.h (flag_deprecated): Declare.
7000
        * lang.c (lang_W_options): Added deprecated.
7001
        (flag_deprecated): New global.
7002
        * chartables.h: Rebuilt.
7003
        * gen-table.pl (process_one): Look at whitespace.
7004
        (print_tables): Define LETTER_SPACE, LETTER_MASK.
7005
        * parse.h (CLEAR_DEPRECATED): New macro.
7006
        (CHECK_DEPRECATED_NO_RESET): New macro.
7007
        * jcf-parse.c (handle_deprecated): New function.
7008
        (HANDLE_DEPRECATED_ATTRIBUTE): New define.
7009
        * jcf-reader.c (get_attribute): Handle Deprecated attribute.
7010
        * parse.y (resolve_type_during_patch): Check deprecation.
7011
        (jdep_resolve_class): Likewise.
7012
        (process_imports): Likewise.
7013
        (resolve_expression_name): Likewise.
7014
        (check_deprecation): Strip arrays from decl.  Check
7015
        flag_deprecated.
7016
        (patch_method_invocation): Also check the particular constructor
7017
        for deprecation.
7018
        (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
7019
        * jcf-write.c (append_deprecated_attribute): New function.
7020
        (generate_classfile): Generate deprecated attribute when
7021
        appropriate.
7022
        * lex.c (java_parse_doc_section): Return type now void.  Rewrote.
7023
        (java_lex) [case '*']: Simplify logic.
7024
        (java_start_char_p): Use LETTER_MASK.
7025
        (java_part_char_p): Likewise.
7026
        (java_space_char_p): New function.
7027
 
7028
2003-02-20  Nathan Sidwell  
7029
 
7030
        Change base class access representation.
7031
        * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
7032
        (add_interface_do): Likewise.
7033
 
7034
2003-02-12  Ranjit Mathew  
7035
 
7036
        * decl.c (java_init_decl_processing): Change
7037
        soft_lookupjnimethod_node to reflect the change in
7038
        signature of _Jv_LookupJNIMethod in libjava/jni.cc
7039
        * expr.c (build_jni_stub): Calculate and pass the size
7040
        on the stack of the arguments to a JNI function. Use
7041
        new target macro MODIFY_JNI_METHOD_CALL to allow a
7042
        target to modify the call to a JNI method.
7043
 
7044
2003-02-08  Roger Sayle  
7045
 
7046
        * jcf-io.c (java_or_class_file): Use libiberty's lbasename
7047
        instead of basename to avoid compiler warnings on Tru64.
7048
 
7049
2003-02-04  Joseph S. Myers  
7050
 
7051
        * gcj.texi: Update to GFDL 1.2.
7052
 
7053
2003-01-31  Andrew Haley  
7054
 
7055
        * parse.y (java_expand_classes): Scan the whole class list looking
7056
        for access methods that haven't yet been expanded.
7057
 
7058
2003-01-31 Adrian Bunk 
7059
 
7060
        Fix for java/4269:
7061
 
7062
        * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
7063
        to fix bootstrap on sparc-unknown-netbsdelf1.5.
7064
        * jcf-parse.c: Likewise.
7065
 
7066
2003-01-31  Mark Wielaard  
7067
 
7068
        * gjavah.c (throwable_p): Allocate 1 more byte for string.
7069
 
7070
2003-01-31  Nathan Sidwell  
7071
 
7072
        * class.c (make_class): Use BINFO_ELTS.
7073
        (set_super_info): Likewse.
7074
        (add_interface_do): Likewise.
7075
 
7076
2003-01-30  Tom Tromey  
7077
 
7078
        * jcf-parse.c (read_class): Update identifier's class value if it
7079
        changed during parsing.
7080
 
7081
2003-01-30  Loren James Rittle  
7082
 
7083
        * Make-lang.in (po-generated): Find the targets in $(parsedir).
7084
        Propagate change to all other rules as required.
7085
        (java/parse-scan.o): Add explicit dependency on
7086
        $(parsedir)/java/parse-scan.c .
7087
 
7088
2003-01-29  Tom Tromey  
7089
 
7090
        * parse.y (patch_assignment): Only transform the rhs of an
7091
        assignment when compiling to native.
7092
 
7093
2003-01-28  Tom Tromey  
7094
 
7095
        * jcf-write.c (generate_bytecode_conditional): Typo fixes.
7096
 
7097
2003-01-28  Tom Tromey  
7098
 
7099
        * lex.c (java_lex): Don't include UEOF as part of token.
7100
        (java_read_unicode): Error if \u sequence prematurely terminated.
7101
 
7102
2003-01-27  Tom Tromey  
7103
 
7104
        * parse.y (java_check_regular_methods): Check for construct after
7105
        checking types in throws clause.
7106
 
7107
2003-01-24  Tom Tromey  
7108
 
7109
        * class.c (build_static_field_ref): Only a String or numeric field
7110
        can fold to a constant.
7111
 
7112
2003-01-23  Tom Tromey  
7113
 
7114
        * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
7115
        file name in resource buffer.
7116
 
7117
2003-01-23  Tom Tromey  
7118
 
7119
        * expr.c (build_known_method_ref): Use method's context to find
7120
        method table index.
7121
 
7122
2003-01-23  Tom Tromey  
7123
 
7124
        * constants.c (set_constant_entry): Allocated cleared memory.
7125
 
7126
2003-01-22  Tom Tromey  
7127
 
7128
        * java-tree.h: Don't use PARAMS.
7129
        * resource.c: Add prototypes for all functions.
7130
        (write_resource_constructor): Use `const char *' to avoid
7131
        warning.
7132
 
7133
2003-01-22 Nathanael Nerode  
7134
 
7135
        * jcf-parse.c (process_zip_dir): Remove unused variable.
7136
 
7137
2003-01-22  Tom Tromey  
7138
 
7139
        * expr.c (build_invokeinterface): Abort if method's context is not
7140
        an interface.
7141
 
7142
2003-01-22  Tom Tromey  
7143
 
7144
        * gcj.texi (Input and output files): Mention non-class entries.
7145
        * decl.c (java_init_decl_processing): Call
7146
        init_resource_processing.
7147
        * java-tree.h (compile_resource_data, write_resource_constructor,
7148
        compile_resource_file, init_resource_processing): Declare.
7149
        * config-lang.in (gtfiles): Added resource.c.
7150
        * Make-lang.in (gt-java-resource.h): New target.
7151
        (JAVA_OBJS): Added resource.o.
7152
        (java/resource.o): New target.
7153
        * resource.c: New file.
7154
        * class.c (compile_resource_file): Moved to resource.c.
7155
        (registerResource_libfunc): Likewise.
7156
        (utf8_decl_list): Mark with GTY; now static.
7157
        * jcf-parse.c (classify_zip_file): New function.
7158
        (parse_zip_file_entries): Use it; compile .properties files.
7159
        (process_zip_dir): Use classify_zip_file and compute_class_name.
7160
        Don't write class name into zip directory.
7161
        (java_parse_file): Call write_resource_constructor.
7162
        (compute_class_name): New function.
7163
        * jcf-io.c (read_zip_member): Reindented.
7164
 
7165
2003-01-21  Tom Tromey  
7166
 
7167
        * class.c (supers_all_compiled): New function.
7168
        (make_class_data): Use it.
7169
 
7170
2003-01-21  Tom Tromey  
7171
 
7172
        * parse.y (method_header): Native method can't be strictfp.
7173
        No method can be transient or volatile.
7174
 
7175
2003-01-21  Kaveh R. Ghazi  
7176
 
7177
        Make-lang.in (jvspec.o-warn): Add -Wno-error.
7178
 
7179
2003-01-18  Kazu Hirata  
7180
 
7181
        * check-init.c: Fix comment typos.
7182
        * class.c: Likewise.
7183
        * constants.c: Likewise.
7184
        * decl.c: Likewise.
7185
        * except.c: Likewise.
7186
        * expr.c: Likewise.
7187
        * java-except.h: Likewise.
7188
        * java-tree.h: Likewise.
7189
        * javaop.h: Likewise.
7190
        * jcf-dump.c: Likewise.
7191
        * jcf-io.c: Likewise.
7192
        * jcf-parse.c: Likewise.
7193
        * jcf-write.c: Likewise.
7194
        * lang.c: Likewise.
7195
        * mangle.c: Likewise.
7196
        * typeck.c: Likewise.
7197
        * verify.c: Likewise.
7198
 
7199
2003-01-18  Kaveh R. Ghazi  
7200
 
7201
        * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
7202
        * jcf-write.c: Include "tm_p.h".
7203
 
7204
2003-01-17  Kaveh R. Ghazi  
7205
 
7206
        * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
7207
 
7208
2003-01-16  Kaveh R. Ghazi  
7209
 
7210
        * builtins.c (java_build_function_call_expr): Renamed from
7211
        build_function_call_expr.  All callers changed.
7212
 
7213
        * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
7214
        * jcf-parse.c: Include tm_p.h.
7215
 
7216
        * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
7217
        warning.
7218
 
7219
2003-01-14  Tom Tromey  
7220
 
7221
        * class.c (make_class_data): Check that super is compiled before
7222
        building class reference to it.
7223
 
7224
2003-01-14  Andrew Haley  
7225
 
7226
        * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7227
        varargs function -- correct.
7228
 
7229
2003-01-14  Andrew Haley  
7230
 
7231
        * decl.c (java_init_decl_processing): Temporarily back out previous patch.
7232
 
7233
2003-01-14  Andrew Haley  
7234
 
7235
        * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7236
        varargs function -- correct.
7237
 
7238
        * parse.y (patch_assignment): Copy the rhs of an assignment into a
7239
        temporary if the RHS is a reference.
7240
 
7241
2003-01-11  Kaveh R. Ghazi  
7242
 
7243
        * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
7244
        * keyword.h: Regenerated.
7245
 
7246
        * All Files: Convert to ISO C style function definitions.
7247
 
7248
2003-01-09  Nathanael Nerode  
7249
 
7250
        * parse.y (check_pkg_class_access): ANSIfy definition.
7251
 
7252
2003-01-09  Kaveh R. Ghazi  
7253
 
7254
        * decl.c, parse-scan.y, parse.y: Don't cast return value of
7255
        xmalloc et al.
7256
 
7257
        * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
7258
 
7259
2003-01-09  Geoffrey Keating  
7260
 
7261
        Merge from pch-branch:
7262
 
7263
        2002-12-02  Geoffrey Keating  
7264
 
7265
        * Make-lang.in (java/gjavah.o): Update dependencies.
7266
        * gjavah.c: Include ggc.h.
7267
 
7268
        2002-08-16  Geoffrey Keating  
7269
 
7270
        * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
7271
        (JCFDUMP_OBJS): Add ggc-none.o.
7272
        (java/jcf-dump.o): Depend on GGC_H.
7273
        * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
7274
        CPool substructures.
7275
        * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
7276
        * jcf-dump.c: Include ggc.h.
7277
 
7278
        2002-08-08  Geoffrey Keating  
7279
 
7280
        * jcf.h (union cpool_entry): New.
7281
        (struct CPool): Use gengtype to mark.  Change field 'data' to be
7282
        an array of unions.
7283
        (struct JCF): Use gengtype to mark.
7284
        (CPOOL_UINT): Update for new cpool_entry type.
7285
        (CPOOL_USHORT1): Likewise.
7286
        (CPOOL_USHORT2): Likewise.
7287
        (CPOOL_FINISH): Use GC to free cpool subfields.
7288
        * parse.h (struct parser_ctxt): Mark field current_jcf.
7289
        * lex.c (java_init_lex): Use GC to allocate struct JCF.
7290
        * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
7291
        (main_jcf): Use gengtype to mark.
7292
        (ggc_mark_jcf): Delete.
7293
        (get_constant): Update for new cpool_entry type.
7294
        (give_name_to_class): Likewise.
7295
        (get_class_constant): Likewise.
7296
        (init_outgoing_cpool): Use GGC to allocate struct CPool.
7297
        (java_parse_file): Use GGC to allocate struct JCF.
7298
        (init_jcf_parse): Don't call ggc_add_root.
7299
        * jcf-reader.c (jcf_parse_constant_pool): Update for new
7300
        cpool_entry type.
7301
        * java-tree.h (current_jcf): Use gengtype to mark.
7302
        (CPOOL_UTF): Update for new cpool_entry type.
7303
        (outgoing_cpool): Use gengtype to mark.
7304
        (struct lang_type): GC struct JCF and struct CPool.
7305
        * config-lang.in (gtfiles): Add jcf.h.
7306
        * constants.c (find_tree_constant): New.
7307
        (set_constant_entry): Allocate cpool subfields using GGC.  Update
7308
        for new cpool_entry type.
7309
        (find_constant1): Update for new cpool_entry type.
7310
        (find_constant2): Likewise.
7311
        (find_utf8_constant): Use find_tree_constant.
7312
        (find_class_or_string_constant): Remove unnecessary cast to jword.
7313
        Update for new cpool_entry type.
7314
        (count_constant_pool_bytes): Update for new cpool_entry type.
7315
        (write_constant_pool): Likewise.
7316
        (alloc_name_constant): Use find_tree_constant.
7317
        (build_constants_constructor): Update for new cpool_entry type.
7318
 
7319
        2002-08-08  Geoffrey Keating  
7320
 
7321
        * parse.y (mark_parser_ctxt): Delete.
7322
        (goal): Don't use ggc_add_root.
7323
        (create_new_parser_context): Use GC to allocate struct parser_ctxt.
7324
        (java_pop_parser_context): Let GC free parser_ctxt.
7325
        (java_parser_context_resume): Likewise.
7326
        * parse.h (struct parser_ctxt): Use gengtype to mark.
7327
        (ctxp): Likewise.
7328
        (ctxp_for_generation): Likewise.
7329
        * lex.h (struct java_lc_s): Mark for gengtype.
7330
        (java_lexer): Rearrange for gengtype.
7331
        * config-lang.in (gtfiles): Add lex.h, parse.h.
7332
 
7333
2003-01-09  Kaveh R. Ghazi  
7334
 
7335
        * All Files: Remove PARAMS macro.
7336
 
7337
        * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
7338
        jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
7339
        `__STDC__' macros.
7340
 
7341
        * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
7342
        VA_CLOSE.
7343
 
7344
2003-01-09  Christian Cornelssen  
7345
 
7346
        * Make-lang.in (java.install-common, java.uninstall,
7347
        java.install-info, java.install-man): Prepend $(DESTDIR)
7348
        to destination paths in all (un)installation commands.
7349
        (java.install-common): Rewrite $(LN) command to support
7350
        DESTDIR with "ln" as well as with "ln -s".
7351
 
7352
2003-01-08  Nathanael Nerode  
7353
 
7354
        * java-tree.h: Protect against multiple inclusion.
7355
 
7356
2003-01-07  Tom Tromey  
7357
 
7358
        * class.c (add_assume_compiled): Don't adjust parent if we're
7359
        already at the root of tree.
7360
 
7361
2003-01-05  Kaveh R. Ghazi  
7362
 
7363
        * lang.c (dump_compound_expr): Prototype.
7364
 
7365
2003-01-03  Tom Tromey  
7366
 
7367
        Fix for PR java/8712:
7368
        * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
7369
        when simply checking against `null'.
7370
 
7371
2003-01-03  Tom Tromey  
7372
 
7373
        * gcj.texi (Standard Properties): Document http.proxyHost and
7374
        http.proxyPort.
7375
 
7376
        * gcj.texi (GNU Classpath Properties): Document new properties.
7377
 
7378
2003-01-02  Steven Bosscher 
7379
 
7380
        * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
7381
        java/lang-options.h, java/mangle.c, java/mangle_name.c,
7382
        java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
7383
 
7384
2003-01-01  Steven Bosscher  
7385
 
7386
        * Make-lang.in, boehm.c, buffer.c,
7387
          buffer.h, builtins.c, class.c,
7388
          config-lang.in, constants.c,
7389
          convert.h, decl.c, except.c,
7390
          expr.c, java-except.h,
7391
          java-tree.h, javaop.def,
7392
          jcf-parse.c, jcf-write.c,
7393
          jv-scan.c, jvgenmain.c,
7394
          jvspec.c, keyword.gperf,
7395
          keyword.h, lang-options.h,
7396
          lang-specs.h, lang.c, lex.c,
7397
          lex.h, mangle.c, mangle_name.c,
7398
          parse-scan.y, parse.h, parse.y,
7399
          typeck.c, verify.c, xref.c,
7400
          xref.h: Replace "GNU CC" with
7401
          "GCC" in the copyright header.
7402
 
7403
        * check-init.c, gjavah.c, javaop.h,
7404
          jcf-depend.c, jcf-dump.c, jcf-io.c,
7405
          jcf-path.c, jcf-reader.c, jcf.h,
7406
          zextract.c, zipfile.h: These files are
7407
          "part of GCC". Also say "GCC" not "GNU CC".
7408
 
7409
2002-12-30  DJ Delorie  
7410
 
7411
        * Make-lang.in: Protect against texi2pod/pod2man failing.
7412
 
7413
2002-12-28  Joseph S. Myers  
7414
 
7415
        * gcj.texi: Use @copying.
7416
 
7417
2002-12-27  Mark Mitchell  
7418
 
7419
        * gjavah.c (print_name_for_stub_or_jni): Adjust call to
7420
        print_cxx_classname.
7421
        (print_cxx_classname): Add add_scope parameter.
7422
        (print_class_decls): Do not emit a semicolon after the extern
7423
        "Java" block.
7424
        (process_file): Adjust calls to print_cxx_classname.
7425
 
7426
2002-12-23  Joseph S. Myers  
7427
 
7428
        * gcj.texi: Include Cover Texts in man page.
7429
 
7430
2002-12-23  Jeff Sturm  
7431
 
7432
        * class.c (build_static_field_ref): Check FIELD_FINAL.
7433
 
7434
        * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
7435
        instead of current_constant_pool_data_ref.
7436
        * java-tree.h (current_constant_pool_data_ref): Undefine.
7437
        (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
7438
        * jcf-parse.c (init_outgoing_cpool): Don't initialize
7439
        current_constant_pool_data_ref.
7440
 
7441
        * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
7442
        not build_internal_class_name.
7443
 
7444
        * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
7445
        Use it when class ref isn't certain to be compiled.
7446
 
7447
2002-12-23  Joseph S. Myers  
7448
 
7449
        * gcj.texi: Include gcc-common.texi.
7450
        * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
7451
        $(srcdir)/doc/include/gcc-common.texi.
7452
 
7453
2002-12-22  Anthony Green  
7454
 
7455
        * gcj.texi (Limitations): Add note about org.xml.sax and
7456
        org.w3c.dom.
7457
 
7458
2002-12-20  Tom Tromey  
7459
 
7460
        * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
7461
        where minimum case value is Integer.MIN_VALUE.
7462
        Fixes PR java/8955.
7463
 
7464
2002-12-18  Andrew Haley  
7465
 
7466
        * parse.y (patch_invoke): Force evaluation order when `check' is
7467
        set.  For PR libgcj/8945.
7468
 
7469
2002-12-16  Mark Mitchell  
7470
 
7471
        * gcj.texi: Change version number to 3.4.
7472
 
7473
2002-12-05  Ranjit Mathew 
7474
        Andrew Haley 
7475
 
7476
        * parse.y (source_end_java_method): Remove custom encoding of line
7477
        numbers for a function decl before passing it to the back end.
7478
 
7479
2002-12-03  Andrew Haley  
7480
 
7481
        * class.c (make_class_data): New field, "chain".
7482
        * decl.c (java_init_decl_processing): Likewise.
7483
 
7484
2002-12-02  Tom Tromey  
7485
 
7486
        For PR java/8740:
7487
        * parse.y (do_resolve_class): Handle qualified name via
7488
        recursion.
7489
 
7490
2002-11-30  Zack Weinberg  
7491
 
7492
        * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
7493
        constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
7494
        jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
7495
        jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
7496
        parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
7497
        Include coretypes.h and tm.h.
7498
        * Make-lang.in: Update dependencies.
7499
 
7500
2002-11-27  Kaveh R. Ghazi  
7501
 
7502
        * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
7503
 
7504
2002-11-25  Diego Novillo  
7505
 
7506
        * jcf-reader.c: Don't expand JCF_readu4 inside the
7507
        expansion of JCF_SKIP.
7508
 
7509
2002-11-25  Diego Novillo  
7510
 
7511
        * jcf-reader.c: Don't expand JCF_readu4 inside the
7512
        expansion of JCF_SKIP.
7513
 
7514
2002-11-22  Tom Tromey  
7515
 
7516
        * parse.y (patch_binop): Cast right hand side of shift expression
7517
        to `int'.  Fixes PR java/8676.
7518
 
7519
2002-11-22  Ranjit Mathew 
7520
            Andrew Haley 
7521
 
7522
        * gcc/java/jcf-write.c (write_classfile): Remove target
7523
        class file, if it exists, before renaming the temporary
7524
        class file to it.
7525
 
7526
2002-11-19  Jason Thorpe  
7527
 
7528
        * jvspec.c (lang_specific_spec_functions): New.
7529
 
7530
2002-11-18  Tom Tromey  
7531
 
7532
        Fix for PR java/7912:
7533
        * expr.c (can_widen_reference_to): Allow cast of array to
7534
        Cloneable or Serializable.
7535
        * java-tree.h (java_lang_cloneable_identifier_node): Declare.
7536
        (java_io_serializable_identifier_node): Likewise.
7537
        * parse.y (java_lang_cloneable, java_io_serializable): Removed.
7538
        (valid_ref_assignconv_cast_p): Use new identifier nodes.
7539
        * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
7540
        java_io_serializable.
7541
        * decl.c (java_init_decl_processing): Initialize
7542
        java_lang_cloneable_identifier_node and
7543
        java_io_serializable_identifier_node.
7544
        (java_lang_cloneable_identifier_node): New global.
7545
        (java_io_serializable_identifier_node): Likewise.
7546
 
7547
2002-11-14  Jens-Michael Hoffmann  
7548
 
7549
        * buffer.c: Remove unnecessary casts.
7550
        * check-init.c: Likewise.
7551
        * class.c: Likewise.
7552
        * constants.c: Likewise.
7553
        * decl.c: Likewise.
7554
        * except.c: Likewise.
7555
        * gjavah.c: Likewise.
7556
        * jcf-io.c: Likewise.
7557
        * jcf-parse.c: Likewise.
7558
        * jcf-path.c: Likewise.
7559
        * jvspec.c: Likewise.
7560
        * lang.c: Likewise.
7561
        * lex.c: Likewise.
7562
        * verify.c: Likewise.
7563
 
7564
2002-11-06  Tom Tromey  
7565
 
7566
        * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
7567
        a JNI header.
7568
 
7569
2002-11-05  Tom Tromey  
7570
 
7571
        Fix for PR java/6388.
7572
        * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
7573
        * java-tree.h (enum java_tree_index): New values
7574
        JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
7575
        (decimal_int_max, decimal_long_max): New defines.
7576
        * lex.c (yylex): Rewrote range checking.  Sign extend literals.
7577
        (error_if_numeric_overflow): Rewrote range checking.
7578
        * decl.c (java_init_decl_processing): Initialize decimal_int_max,
7579
        decimal_long_max.
7580
 
7581
2002-11-02  Tom Tromey  
7582
 
7583
        * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
7584
 
7585
        * class.c (make_method_value): Put class name, not signature, into
7586
        `throws' field.  For PR java/8415.
7587
 
7588
2002-10-24  Tom Tromey  
7589
 
7590
        * gcj.texi (Invoking gij): Document --showversion.
7591
        (Standard Properties): java.library.path now set.
7592
 
7593
2002-10-23  Tom Tromey  
7594
 
7595
        * gjavah.c (decode_signature_piece): In JNI mode, print
7596
        `jobjectArray' when array depth is nonzero.
7597
        Fixes PR java/8296.
7598
 
7599
2002-10-15  Andrew Haley  
7600
 
7601
        * parse.y (patch_invoke): Call force_evaluation_order on a static
7602
        arg list.
7603
        (resolve_qualified_expression_name): Call force_evaluation_order
7604
        on a arg list that is part of a Qualified Expression Name.
7605
 
7606
        * lang.c (dump_compound_expr): New.
7607
        (java_dump_tree): New.
7608
 
7609
2002-10-20  Ranjit Mathew 
7610
 
7611
        * gcj.texi: Added item describing the GCJ runtime property
7612
        "gnu.gcj.progname".
7613
 
7614
2002-10-15  Richard Henderson  
7615
 
7616
        * jcf-parse.c (get_constant): Fix type warning.
7617
 
7618
2002-10-15  Andrew Haley  
7619
 
7620
        * java-tree.h (java_inlining_merge_static_initializers): Declare.
7621
        (java_inlining_map_static_initializers): Declare.
7622
 
7623
2002-10-14  Andrew Haley  
7624
 
7625
        * tree-inline.c (remap_block): All local class initialization
7626
        flags go in the outermost scope.
7627
        (expand_call_inline): Call java_inlining_map_static_initializers.
7628
        (expand_call_inline): Call java_inlining_merge_static_initializers.
7629
        * java/lang.c (merge_init_test_initialization): New.
7630
        (java_inlining_merge_static_initializers): New.
7631
        (inline_init_test_initialization): New.
7632
        (java_inlining_map_static_initializers): New.
7633
 
7634
2002-10-11  Mark Wielaard  
7635
 
7636
        * gcj.texi (Compatibility): Add Limitations and Extensions section.
7637
 
7638
2002-10-10  Kaveh R. Ghazi  
7639
 
7640
        * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
7641
 
7642
2002-10-09  Kaveh R. Ghazi  
7643
 
7644
        * parse.y (merge_string_cste): Add parentheses around & within |.
7645
 
7646
2002-10-08  Tom Tromey  
7647
 
7648
        * parse.y (variable_declarator_id): Simplify error path for
7649
        array declarator error.  For PR java/8003.
7650
 
7651
2002-10-08  Zack Weinberg  
7652
 
7653
        * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
7654
        bug_report_url.
7655
 
7656
2002-10-08  Andrew Haley  
7657
 
7658
        * parse.y (attach_init_test_initialization_flags): Check for
7659
        error_mark_node.
7660
 
7661
2002-10-07  Anthony Green  
7662
 
7663
        * parse.y (merge_string_cste): Fix bug in string concatenation.
7664
 
7665
2002-10-03  Michael Koch  
7666
 
7667
        * gcj.texi (Standard properties):
7668
        Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
7669
 
7670
2002-10-02  Roger Sayle  
7671
 
7672
        PR optimization/6627
7673
        * lang.c (java_init): If storing the vbit in function
7674
        pointers, ensure that force_align_functions_log is atleast
7675
        one to aid compatability with g++ vtables.
7676
 
7677
2002-10-01  Nathan Sidwell  
7678
 
7679
        * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
7680
        foul of type-based aliasing.
7681
 
7682
2002-09-30  Anthony Green  
7683
 
7684
        * gcj.texi (Invoking jv-scan): Fix texinfo.
7685
 
7686
2002-09-28  Anthony Green  
7687
 
7688
        * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
7689
        (Code Generation): Add -fno-assert documentation.
7690
        * jv-scan.c (flag_assert): New global.
7691
        (options): Add assert option.
7692
        (help): Add --no-assert documentation.
7693
        * parse-scan.y (flag_assert): New global.
7694
        * lang.c (lang_f_options): Add -fassert/-fno-assert support.
7695
        (flag_assert): New global.
7696
        * java-tree.h (flag_assert): New global.
7697
        * lex.c (java_lex): Obey flag_assert.
7698
        * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
7699
        calling cc1.
7700
 
7701
2002-09-26  Andrew Haley  
7702
 
7703
        * expr.c (build_java_array_length_access): Check for null pointer.
7704
        * expr.c (expand_java_arrayload): Likewise.
7705
 
7706
2002-09-21  Richard Henderson  
7707
 
7708
        * jcf-parse.c (get_constant): Decode from IEEE no matter
7709
        what the target format.
7710
 
7711
2002-09-20  Kazu Hirata  
7712
 
7713
        * ChangeLog: Follow spelling conventions.
7714
        * class.c: Likewise.
7715
        * decl.c: Likewise.
7716
        * expr.c: Likewise.
7717
        * gjavah.c: Likewise.
7718
        * java-tree.h: Likewise.
7719
        * jcf-dump.c: Likewise.
7720
        * jcf-parse.c: Likewise.
7721
        * jvspec.c: Likewise.
7722
        * lang.c: Likewise.
7723
        * mangle.c: Likewise.
7724
        * parse.y: Likewise.
7725
 
7726
2002-09-17  Tom Tromey  
7727
 
7728
        * lex.c (java_read_unicode_collapsing_terminators): Handle case
7729
        where \r appears at EOF.  Fixes PR java/7950.
7730
 
7731
2002-09-16  Volker Reichelt  
7732
 
7733
        * jvspec.c (lang_specific_driver): Remove unused variable.
7734
 
7735
2002-09-16  Geoffrey Keating  
7736
 
7737
        * java-tree.h (union lang_tree_node): Add chain_next option.
7738
 
7739
2002-09-16  Richard Henderson  
7740
 
7741
        * jcf-parse.c (get_constant): Runtime check for IEEE format;
7742
        use new real.h interface.
7743
        * jcf-write.c (find_constant_index): Use new real.h interface.
7744
        * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
7745
 
7746
2002-09-15  Kazu Hirata  
7747
 
7748
        * lang.c: Follow spelling conventions.
7749
 
7750
2002-09-11  Per Bothner  
7751
 
7752
        * parse.y (fold_constant_for_init):  If a VAR_DECL, convert numerical
7753
        constant to the type of the field.
7754
        (java_complete_tree):  Remove now-redundant code.
7755
 
7756
        * parse.y (fold_constant_for_init):  'null' is not a constant expr.
7757
 
7758
2002-09-03  Jesse Rosenstock  
7759
 
7760
        For PR java/5794:
7761
        * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
7762
        return label if a ret instruction for the jsr has been reached.
7763
 
7764
2002-09-09  Ranjit Mathew  
7765
 
7766
        * parse.y (DIR_SEPARATOR): Don't define.
7767
        (check_class_interface_creation): Use IS_DIR_SEPARATOR.
7768
 
7769
2002-08-28  Andrew Haley  
7770
 
7771
        * verify.c (verify_jvm_instructions): Allow exception handler
7772
        inside code that is being protected, but generate a warning.
7773
        * except.c (link_handler): Initialize `expanded' in new eh_range.
7774
        (binding_depth, is_class_level, current_pc): Declare extern.
7775
 
7776
2002-09-01  Mark Wielaard 
7777
 
7778
        * gcj.texi: Add chapter about system properties.
7779
        Fixed some typos.
7780
 
7781
2002-08-26  Tom Tromey  
7782
 
7783
        * parse.y (try_builtin_assignconv): Allow narrowing primitive
7784
        conversion if RHS_TYPE is byte, short, or char.
7785
 
7786
2002-08-22  Tom Tromey  
7787
 
7788
        * gcj.texi (Invoking gij): Document -cp and -classpath.
7789
 
7790
2002-08-21  Tom Tromey  
7791
 
7792
        * Make-lang.in (java/jcf-path.o): Use $(datadir), not
7793
        $(prefix)/share.  For PR libgcj/7633.
7794
 
7795
        For PR java/6005 and PR java/7611:
7796
        * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
7797
        (java_can_use_bit_fields_p): New function.
7798
 
7799
2002-08-16  Tom Tromey  
7800
 
7801
        * gcj.texi (Class Initialization): Mention class initialization of
7802
        arrays.
7803
 
7804
2002-07-30  Andrew Haley  
7805
 
7806
        * Make-lang.in (java-tree-inline.o): New.
7807
        (JAVA_OBJS): Add java-tree-inline.o.
7808
        * parse.y (source_end_java_method): Call java_optimize_inline.
7809
        (java_expand_method_bodies): Save method's tree in
7810
        DECL_SAVED_TREE.
7811
        (add_stmt_to_compound): Keep track of the number of statments.
7812
        * lang.c (java_init): Enable flag_inline_trees.
7813
        (java_post_options): If flag_inline_functions is on, enable
7814
        flag_inline_trees instread.
7815
        (decl_constant_value): New.
7816
        (java_tree_inlining_walk_subtrees): New.
7817
        * java-tree.h (DECL_NUM_STMTS): New macro.
7818
        (java_optimize_inline): Declare.
7819
        * expr.c (java_expand_expr): Allow a BLOCK to return a value.
7820
        Handle a LABEL_EXPR.
7821
        * decl.c (build_result_decl): If we already have a DECL_RESULT
7822
        don't make another.
7823
        (dump_function): New.
7824
        (java_optimize_inline): New.
7825
        (dump_function): New.
7826
 
7827
2002-08-13  Jesse Rosenstock  
7828
 
7829
        For PR java/7483:
7830
        * parse.y (build_assertion): Invert return from
7831
        desiredAssertionStatus.
7832
 
7833
2002-08-08  Bryce McKinlay  
7834
 
7835
        * jcf-write.c (get_access_flags): Return correct access flags for
7836
        private and protected inner classes.
7837
 
7838
2002-08-08  Nathan Sidwell  
7839
 
7840
        * java/Make-lang.in (java.mostlyclean): Remove coverage files.
7841
 
7842
2002-08-05  Geoffrey Keating  
7843
 
7844
        * mangle_name.c: Don't include obstack.h twice.
7845
        * xref.c: Don't include obstack.h.
7846
 
7847
2002-08-04  Geoffrey Keating  
7848
 
7849
        * class.c: (permanent_obstack): Delete declaration.
7850
        * constants.c: (permanent_obstack): Delete declaration.
7851
        * except.c: (permanent_obstack): Delete declaration.
7852
        * expr.c: (permanent_obstack): Delete declaration.
7853
        * jcf-parse.c: (permanent_obstack): Delete declaration.
7854
        (saveable_obstack): Delete declaration.
7855
        * parse.h: (permanent_obstack): Delete declaration.
7856
        * typeck.c: (permanent_obstack): Delete declaration.
7857
 
7858
2002-08-04  Joseph S. Myers  
7859
 
7860
        * gcj.texi (version-gcc): Increase to 3.3.
7861
 
7862
2002-07-22  Tom Tromey  
7863
 
7864
        * lex.c (java_lex): Check for `e' or `E' after 0.
7865
 
7866
2002-07-21  Richard Henderson  
7867
 
7868
        * lang.c (java_unsafe_for_reeval): New.
7869
        (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
7870
 
7871
2002-07-21  Neil Booth  
7872
 
7873
        * jcf-path.c (GET_ENV_PATH_LIST): Remove.
7874
        (jcf_path_init): Use GET_ENVIRONMENT.
7875
 
7876
2002-07-10  Roger Sayle  
7877
            Zack Weinberg 
7878
 
7879
        * builtins.c (initialize_builtins): Remove defines that
7880
        handled C/C++ specific junk hereby removed from builtins.def.
7881
 
7882
2002-07-07  Neil Booth  
7883
 
7884
        * lang.c (java_post_options): Update prototype.
7885
 
7886
2002-07-05  Roger Sayle  
7887
 
7888
        * builtins.c (initialize_builtins): Ignore the additional
7889
        parameter to DEF_BUILTIN.  Handle more C/C++ specific junk in
7890
        the builtins.def file.
7891
 
7892
2002-07-01  Tom Tromey  
7893
 
7894
        For PR libgcj/7073:
7895
        * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
7896
        specially.
7897
 
7898
2002-07-01  Roger Sayle  
7899
 
7900
        * java/decl.c (builtin_function): Accept additional parameter.
7901
        (java_init_decl_processing): Pass an additional NULL_TREE
7902
        argument to builtin_function.
7903
 
7904
2002-06-29  T.J. Mather  
7905
 
7906
        * gcj.texi: Fixed gcj invocation example so that it compiles.
7907
 
7908
2002-06-26  Kaveh R. Ghazi  
7909
 
7910
        * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
7911
        * parse.y (mark_parser_ctxt): Likewise.
7912
        (check_modifiers, declare_local_variables): Avoid incorrect
7913
        hardcoded constant 10.
7914
 
7915
        * lex.c (java_read_char): Avoid "comparison is always true"
7916
        warning.
7917
 
7918
2002-06-25  Andreas Schwab  
7919
 
7920
        * expr.c (JSR): Avoid undefined operation on PC.
7921
 
7922
2002-06-21  Kaveh R. Ghazi  
7923
 
7924
        * decl.c (clear_binding_level): Const-ify.
7925
 
7926
2002-06-13  Akim Demaille  
7927
 
7928
        * parse.y (class_declaration, interface_declaration): Make sure
7929
        all their rules have an action, in order to avoid meaningless `$$
7930
        = $1' and their type clashes.
7931
 
7932
2002-06-11  Tom Tromey  
7933
 
7934
        * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
7935
        * parse-scan.y (statement_without_trailing_substatement): Added
7936
        assert_statement.
7937
        (assert_statement): New rule.
7938
        * java-tree.h (struct lang_type) [assertions]: New field.
7939
        (TYPE_USES_ASSERTIONS): New macro.
7940
        (CLASS_USES_ASSERTIONS): Likewise.
7941
        (FIELD_SYNTHETIC): New define.
7942
        * lex.c (java_lval;): Added ASSERT_TK.
7943
        * parse.y (ASSERT_TK): Added.
7944
        (statement_without_trailing_substatement): Added assert_statement.
7945
        (assert_statement): New rule.
7946
        (build_assertion): New function.
7947
        (maybe_generate_pre_expand_clinit): Create and initialize
7948
        $assertionsDisabled.
7949
        (lookup_package_type): Removed decl.
7950
        * keyword.h: Rebuilt.
7951
        * keyword.gperf (assert): New token.
7952
 
7953
2002-06-10  Akim Demaille  
7954
 
7955
        * parse.y (interface_type_list, class_member_declaration)
7956
        (unary_expression_not_plus_minus): Remove duplicate %type.
7957
        Whitespace changes.
7958
 
7959
2002-06-09  Tom Tromey  
7960
 
7961
        * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
7962
 
7963
        * parse.y (method_header): Give error message in all cases.
7964
        Fixes PR java/6865.
7965
 
7966
2002-06-10  Bryce McKinlay  
7967
 
7968
        Don't use RTL inlining. Fix for PR java/6820.
7969
        * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
7970
        (flag_really_inline): New.
7971
        (java_decode_option): Set flag_really_inline if -finline-functions
7972
        is seen.
7973
        (java_post_options): New function. Turn off inlining unless
7974
        flag_really_inline is set.
7975
 
7976
2002-06-10  Bryce McKinlay  
7977
 
7978
        * gjavah.c (throwable_p): Accept argument as either a classname or
7979
        signature fragment. Create null-terminated classname string for super
7980
        when calling itself recursively.
7981
        (decode_signature_piece): Skip first character from class name
7982
        signature when calling throwable_p.
7983
 
7984
2002-06-08  H.J. Lu  (hjl@gnu.org)
7985
 
7986
        * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
7987
 
7988
2002-06-04  Tom Tromey  
7989
 
7990
        * jcf-write.c (perform_relocations): Optmize a goto to a goto.
7991
 
7992
2002-06-04  Michael Koch  
7993
 
7994
        * gcj.texi (Input Options): Fixed typo.
7995
 
7996
2002-06-04  Zack Weinberg  
7997
 
7998
        * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
7999
        typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
8000
        all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
8001
        and all now-pointless local variables.  Rename other local
8002
        variables to reflect their not being handles.
8003
 
8004
        * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
8005
        #if JCF_USE_STDIO blocks.
8006
 
8007
        * parse.y: Add missing semicolon at end of rule.
8008
 
8009
2002-06-03  Geoffrey Keating  
8010
 
8011
        * check-init.c (attach_initialized_static_class): Delete, unused.
8012
        * parse.y: Use htab_t instead of struct hashtable, update
8013
        all uses.
8014
        * java-tree.h: Include hashtab.h instead of hash.h.
8015
        (struct lang_decl_func): Use htab_t, set up for gengtype.
8016
        (struct init_test_hash_entry): Delete.
8017
        (struct treetreehash_entry): New.
8018
        (java_treetreehash_find): New
8019
        (java_treetreehash_new): New prototype.
8020
        (java_treetreehash_create): New prototype.
8021
        (java_mark_tree): Delete prototype.
8022
        (java_hash_hash_tree_node): Delete prototype.
8023
        (java_hash_compare_tree_node): Delete prototype.
8024
        (attach_initialized_static_class): Delete prototype.
8025
        * expr.c (build_class_init): Update to use java_treetreehash
8026
        functions.
8027
        (java_expand_expr): Update to use htab_t.
8028
        (emit_init_test_initialization): Likewise.
8029
        * decl.c (java_mark_tree): Delete.
8030
        * class.c (init_test_hash_newfunc): Delete.
8031
        (java_hash_hash_tree_node): Delete.
8032
        (java_hash_compare_tree_node): Delete.
8033
        (add_method_1): Update to use java_treetreehash functions.
8034
        (JAVA_TREEHASHHASH_H): New macro.
8035
        (java_treetreehash_hash): New function.
8036
        (java_treetreehash_compare): New function.
8037
        (java_treetreehash_find): New function.
8038
        (java_treetreehash_new): New function.
8039
        (java_treetreehash_create): New function.
8040
        * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
8041
 
8042
        * Make-lang.in (java/parse.o): Depend on debug.h.
8043
        * java-tree.h (struct lang_identifier): Use gengtype.
8044
        (union lang_tree_node): New.
8045
        (struct lang_decl_func): Use gengtype.
8046
        (struct lang_decl_var): Likewise.
8047
        (struct lang_decl): Likewise.
8048
        * parse.y: Include debug.h.
8049
        * lang.c (LANG_HOOKS_MARK_TREE): Delete.
8050
 
8051
        * lang.c (struct language_function): New dummy structure.
8052
 
8053
        * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
8054
        descriminator for DECL_LANG_SPECIFIC.
8055
        (struct lang_decl_func): Rename from struct lang_decl.
8056
        (enum lang_decl_desc): New.
8057
        (struct lang_decl): Make it a union.  Update all the accessor macros.
8058
        (struct lang_type): Use gengtype.
8059
        * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
8060
        * decl.c (java_dup_lang_specific_decl): All lang_decl structures
8061
        are now the same size.
8062
        (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
8063
        use discriminator to mark DECL_LANG_SPECIFIC.
8064
 
8065
        * Make-lang.in (gt-java-builtins.h): New rule.
8066
        (java/builtins.o): Add dependency on gt-.h.
8067
        * builtins.c: Use gengtype for roots.
8068
        (union string_or_tree): Use gengtype.
8069
        (struct builtin_record): Use gengtype.
8070
        * config-lang.in (gtfiles): Add builtins.c.
8071
 
8072
        * Make-lang.in (gt-java-class.h, gt-java-constants.h,
8073
        gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
8074
        gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
8075
        gt-java-parse.h, gtype-java.h): Add rules to generate.
8076
        (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
8077
        (class.o): Add dependency on gt-*.h.
8078
        (constants.o): Likewise.
8079
        (decl.o): Likewise.
8080
        (expr.o): Likewise.
8081
        (jcf-parse.o): Likewise.
8082
        (jcf-write.o): Likewise.
8083
        (lang.o): Likewise.
8084
        * config-lang.in (gtfiles): New.
8085
        * class.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8086
        * constants.c: Replace uses of ggc_add_* with GTY markers.
8087
        Include gt-*.h.
8088
        * decl.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8089
        * expr.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8090
        * java-tree.h: Replace uses of ggc_add_* with GTY markers.
8091
        * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
8092
        Include gt-*.h.
8093
        * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
8094
        Include gt-*.h.
8095
        * lang.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8096
        * mangle.c: Replace uses of ggc_add_* with GTY markers.  Include
8097
        gt-*.h.
8098
        * parse.y: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8099
        Include gtype-java.h.
8100
 
8101
2002-06-02  Tom Tromey  
8102
 
8103
        Fix for PR java/5913:
8104
        * parse.y (patch_binop): Call patch_string on op1.
8105
 
8106
2002-06-02  Tom Tromey  
8107
 
8108
        Fix for PR java/1343, PR java/6336:
8109
        * parse.y (make_nested_class_name): Remove extraneous `else'; fix
8110
        formatting.  Changed return type.
8111
        (anonymous_class_counter): Moved to top of file.
8112
        (maybe_make_nested_class_name): Append number to class name for
8113
        function-local classes.
8114
 
8115
2002-05-28  Zack Weinberg  
8116
 
8117
        * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
8118
        * Make-lang.in: Update dependency lists.
8119
 
8120
2002-05-18  Mark Mitchell  
8121
 
8122
        * gjavah.c (throwable_p): Do not free the name of the class after
8123
        passing it to find_class.
8124
        * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
8125
        * jcf-io.c (dirent.h): Include it.
8126
        (fnmatch.h): Likewise.
8127
        (compare_path): New function.
8128
        (java_or_class_file): Likewise.
8129
        (memoized_dirlist_entry): New type.
8130
        (memoized_dirlist_lookup_eq): New function.
8131
        (memoized_dirlists): New variable.
8132
        (caching_stat): New function.
8133
        (memoized_class_lookup_eq): New function.
8134
        (memoized_class_lookups): Likewise.
8135
        (find_class): Use memoized_class_lookups and caching_stat.
8136
        * jcf.h (JCF_USE_SCANDIR): Define.
8137
        * parse.y (java_expand_classes): Write the class files in reverse
8138
        order.
8139
 
8140
2002-05-16  Rainer Orth  
8141
 
8142
        * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
8143
 
8144
2002-05-13  Mark Mitchell  
8145
 
8146
        * jcf-write.c (write_classfile): Unlink the temporary file if it
8147
        cannot be renamed.  Use concat to build up the name of the
8148
        temporary file.
8149
 
8150
2002-05-08  Mark Mitchell  
8151
 
8152
        * jcf-write.c (write_classfile): Write the file to a
8153
        temporary file and then rename it.
8154
 
8155
2002-05-07  Tom Tromey  
8156
 
8157
        * gjavah.c (throwable_p): Use xstrdup, not strdup.
8158
 
8159
        Fix for PR java/1200:
8160
        * gjavah.c (throwable_p): New function.
8161
        (decode_signature_piece): Use it.  A `WeakReference' isn't the
8162
        same as a `jweak'.
8163
        Include hashtab.h.
8164
        (gcjh_streq): New function.
8165
 
8166
2002-05-07  Andreas Jaeger  
8167
 
8168
        * parse.y (finish_for_loop): Fix if statement.
8169
 
8170
2002-05-06  Tom Tromey  
8171
 
8172
        Fix for PR java/5941:
8173
        * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
8174
        loop update expression.
8175
        (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
8176
        * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
8177
 
8178
2002-05-04  Mark Wielaard  
8179
 
8180
        For PR java/6519:
8181
        * parse.y (build_string_concatenation): Return just op1 only when op2
8182
        is null and op1 is a STRING_CST, otherwise always construct a
8183
        StringBuffer.
8184
 
8185
2002-04-27  Tom Tromey  
8186
 
8187
        For PR java/6382:
8188
        * parse.y (string_convert_int_cst): New function.
8189
        (merge_string_cste): Use it.
8190
 
8191
2002-04-25  Neil Booth  
8192
 
8193
        * java-tree.h (java_parse_file): Update.
8194
        (java_set_yydebug): Remove.
8195
        * jcf-parse.c (yydebug): Remove.
8196
        (java_set_yydebug): Die.
8197
        (java_parse_file): Update.
8198
        * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8199
 
8200
2002-04-24  Tom Tromey  
8201
 
8202
        For PR java/6425:
8203
        * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
8204
        EXPR_WFL_QUALIFICATION of qual_wfl.
8205
 
8206
2002-04-23  Per Bothner  
8207
 
8208
        * expr.c (PRE_JSR):  Call NOTE_LABEL for return address.
8209
        * java-tree.h (BCODE_RETURN_TARGET):  Removed - never set.
8210
        (BCODE_TARGET):  Remove BCODE_RETURN_TARGET.
8211
 
8212
2002-04-23  Tom Tromey  
8213
 
8214
        For PR java/6314:
8215
        * jvspec.c (lang_specific_driver): Use --resource, not -R.  Also
8216
        recognize `-fcompile-resource='.
8217
        * gcj.texi (Invoking gcj): Use --resource, not -R.  Expanded text
8218
        a bit.
8219
 
8220
2002-04-22  Alexandre Petit-Bianco  
8221
 
8222
        * jcf-parse.c: (yyparse): Don't prepend "./" to relative
8223
        paths. Fixes PR java/2791.
8224
 
8225
2002-04-19  Andrew Haley  
8226
 
8227
        * jcf-write.c (push_long_const): lo, hi: New variables.
8228
        Use rshift_double to extract the high part of a 64-bit long.
8229
        Use WORD_TO_INT to extract the low part.
8230
 
8231
        * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
8232
        HOST_WIDE_INT for num.  Use JPOOL_UINT to get it.
8233
        CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
8234
 
8235
2002-04-18  Neil Booth  
8236
 
8237
        * typeck.c (incomplete_type_error): Remove.
8238
 
8239
2002-04-18  Bryce McKinlay  
8240
 
8241
        * class.c (make_class_data): Set DECL_ALIGN on static class data,
8242
        for hash synchronization.
8243
        * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
8244
        * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
8245
        class_type_node.
8246
 
8247
2002-04-16  Mark Wielaard  
8248
 
8249
        * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
8250
        negative zero.
8251
 
8252
2002-04-16  Bryce McKinlay  
8253
 
8254
        Fix for PR java/6294:
8255
        * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
8256
        interfaces.
8257
 
8258
2002-04-15  Bryce McKinlay  
8259
 
8260
        Fix for PR java/6085:
8261
        * parse.y (patch_method_invocation): Always use build_access_to_thisn
8262
        to get enclosing "this" argument for inner-class constructor
8263
        invocation. Pass correct arguments to build_access_to_thisn.
8264
 
8265
2002-04-10  Andreas Jaeger  
8266
 
8267
        * gcj.texi (Input Options): Fix extdirs patch.
8268
 
8269
2002-04-10  Anthony Green  
8270
 
8271
        * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
8272
 
8273
2002-04-09  Anthony Green  
8274
 
8275
        * gcj.texi (Input Options): Add --extdirs documentation.
8276
        * jcf-dump.c (OPT_extdirs): New macro.
8277
        (options): Add extdirs option.
8278
        (help): Describe --extdirs.
8279
        (main): Handle OPT_extdirs.
8280
        * gjavah.c (OPT_extdirs): New macro.
8281
        (options): Add extdirs option.
8282
        (help): Describe --extdirs.
8283
        (main): Handle OPT_extdirs.
8284
        * jcf-path.c (jcf_path_init): Add extdirs support.
8285
        (jcf_path_extdirs_arg): New function.
8286
        (extensions): New variable to hold extensions path entries.
8287
        * jvspec.c: Remove -fextdirs= when compiling main().
8288
        * lang.c (java_decode_option): Handle -fextdirs=.
8289
        * jcf.h (jcf_path_extdirs_arg): Declare new function.
8290
        * Make-lang.in: Compile jcf-path with version info for use in
8291
        identifying the appropriate libgcj.jar.
8292
 
8293
2002-04-08  Tom Tromey  
8294
 
8295
        For PR libgcj/5303:
8296
        * .cvsignore: Added rmic.1 and rmiregistry.1.
8297
        * gcj.texi (Top): Link to new nodes.
8298
        (Invoking rmic): New node.
8299
        (Invoking rmiregistry): Likewise.
8300
        * Make-lang.in (java.generated-manpages): Added rmic.1 and
8301
        rmiregistry.1.
8302
        (java.maintainer-clean): Likewise.
8303
        ($(srcdir)/java/rmic.1): New target.
8304
        ($(srcdir)/java/rmiregistry.1): Likewise.
8305
        (java.install-man): Handle rmic.1 and rmiregistry.1.
8306
 
8307
2002-04-08  Bryce McKinlay  
8308
 
8309
        * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
8310
        Add note about handling uncaught exceptions. Add an exception handler
8311
        to example.
8312
 
8313
2002-04-08  Bryce McKinlay  
8314
 
8315
        * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
8316
        after using it to patch CALL_EXPR.
8317
 
8318
2002-04-08  Bryce McKinlay  
8319
 
8320
        * gcj.texi (Invocation): Document CNI invocation API.
8321
 
8322
2002-04-04  Neil Booth  
8323
 
8324
        * expr.c (truthvalue_conversion): Rename.  Update.
8325
        (expand_compare): Update.
8326
        * java-tree.h (java_truthvalue_conversion): New.
8327
        * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
8328
 
8329
2002-04-01  Neil Booth  
8330
 
8331
        * java-tree.h (java_mark_addressable): New.
8332
        * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
8333
        * typeck.c (mark_addressable): Rename, update.
8334
 
8335
2002-04-01  Neil Booth  
8336
 
8337
        * expr.c (build_java_binop): Update.
8338
        * java-tree.h (java_signed_type, java_unsigned_type,
8339
        java_signed_or_unsigned_type): Update.
8340
        * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
8341
        LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
8342
        * parse.y (patch_binop): Update.
8343
        * typeck.c (signed_or_unsigned_type, unsigned_type,
8344
        signed_type): Update.
8345
 
8346
2002-03-31  Neil Booth  
8347
 
8348
        * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
8349
        (java_dummy_print): Remove.
8350
        (lang_print_error): Rename.  Exit early if inhibiting output.
8351
        (inhibit_error_printing_function): New.
8352
        (java_init): Don't set hook.
8353
        (lang_init_source): Use new boolean.
8354
 
8355
2002-03-29  Martin Kahlert  
8356
 
8357
        * parse.y (do_resolve_class): Fix infinite recursion.
8358
 
8359
2002-03-29  Tom Tromey  
8360
 
8361
        * parse.y (check_inner_circular_reference): Ignore incomplete
8362
        types.
8363
 
8364
2002-03-29  Neil Booth  
8365
 
8366
        * Make-lang.in (builtins.o): Update.
8367
        * boehm.c (get_boehm_type_descriptor): Update.
8368
        * builtins.c: Include langhooks.h.
8369
        * decl.c (java_init_decl_processing): Update.
8370
        * java-tree.h (java_type_for_mode, java_type_for_size): New.
8371
        * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
8372
        Redefine.
8373
        * typeck.c (type_for_mode, type_for_size): Update.
8374
 
8375
2002-03-29  Martin Kahlert  
8376
 
8377
        * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
8378
 
8379
2002-03-28  Tom Tromey  
8380
 
8381
        * except.c (expand_end_java_handler): If the handler type is NULL,
8382
        use java.lang.Throwable.  Fixes PR java/5986.
8383
 
8384
2002-03-28  Alexandre Petit-Bianco  
8385
 
8386
        Fix for PR java/4715:
8387
        * jcf-parse.c (parse_source_file_3): New function.
8388
        (read_class): Call it.
8389
        (java_parse_file): Likewise.
8390
 
8391
2002-03-28  Jan Hubicka  
8392
 
8393
        * java/lang.c (java_init_options): Set flag_trapping_math to 0.
8394
 
8395
2002-03-28  Bryce McKinlay  
8396
 
8397
        * parse.y (resolve_package): Initialize "decl".
8398
        (lookup_package_type): Remove unused function.
8399
 
8400
2002-03-28  Bryce McKinlay  
8401
 
8402
        Fix for PR java/5993:
8403
        * parse.y (resolve_package): Return the decl if resolution was
8404
        successful. Don't special case "java.lang" and "java.lang.reflect"
8405
        packages. Set type_name to the merged identifier.
8406
        (resolved_qualified_expression_name): Print error using "name" if
8407
        resolve_package returns NULL_TREE.
8408
 
8409
2002-03-27  Tom Tromey  
8410
 
8411
        * expr.c (expand_invoke): Don't generate null pointer check if
8412
        we're calling .
8413
 
8414
2002-03-27  Neil Booth  
8415
 
8416
        * expr.c (java_lang_expand_expr): Rename java_expand_expr,
8417
        fix prototype.
8418
        * java-tree.h (java_lang_expand_expr): Similarly.
8419
        * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8420
        (java_init): Don't set hook.
8421
 
8422
2002-03-27  Bryce McKinlay  
8423
 
8424
        Fix for PR java/5850:
8425
        * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
8426
        context if field was not found in the current scope.
8427
        * expr.c (lookup_field): Don't look in enclosing contexts.
8428
 
8429
2002-03-26  Tom Tromey  
8430
 
8431
        Fix for PR java/5942:
8432
        * parse.y (init_src_parse): Added sanity check.
8433
        * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
8434
        elements, not 11.
8435
 
8436
2002-03-26  Neil Booth  
8437
 
8438
        * decl.c (lang_mark_tree): Rename java_mark_tree.
8439
        * java-tree.h (java_mark_tree): New.
8440
        * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8441
 
8442
2002-03-25  Zack Weinberg  
8443
 
8444
        * lex.c: Change java_perform_atof to take normal parameters
8445
        instead of a pointer to a parameter block.  Call it directly
8446
        from java_lex.
8447
 
8448
2002-03-22  Mark Wielaard  
8449
 
8450
        Fix for PR java/5368:
8451
        * parse.y (resolve_qualified_expression_name): Use decl not field_decl
8452
        when printing error message.
8453
 
8454
2002-03-25  Neil Booth  
8455
 
8456
        * decl.c (maybe_build_cleanup): Remove.
8457
 
8458
2002-03-22  Tom Tromey  
8459
 
8460
        Andrew Haley  
8461
 
8462
        * expr.c (build_field_ref): Don't build a check if the field is a
8463
        member of `this'.
8464
 
8465
2002-03-21  Eric Blake  
8466
 
8467
        Fix for PR java/6026:
8468
        * lex.c (java_lex): Fix parsing of consecutive floats.
8469
 
8470
2002-03-21  Tom Tromey  
8471
 
8472
        * parse.y (build_access_to_thisn): Stop when FROM is not an inner
8473
        class.
8474
 
8475
2002-03-21  Neil Booth  
8476
 
8477
        * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
8478
        insert_block, getdecls, kept_level_p, global_bindings_p): New.
8479
 
8480
2002-03-20  Nic Ferrier  
8481
 
8482
        * gcj.texi: @code{gcj} becomes @command{gcj}.
8483
        @code{gcc} becomes @command{gcc}.
8484
        GcjRaw changed to gnu.gcc.RawData.
8485
 
8486
2002-03-20  Neil Booth  
8487
 
8488
        * decl.c (start_java_method): Use new hook.
8489
        * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
8490
        (java_init): Remove old hook.
8491
 
8492
2002-03-18  Alexandre Petit-Bianco  
8493
 
8494
        * builtins.c (define_builtin): Do nothing if `type' is null.
8495
        Fixes PR java/5876.
8496
 
8497
2002-03-18  Bryce McKinlay  
8498
 
8499
        * parse.y (parser_check_super_interface): Fix error message
8500
        grammar/order.
8501
 
8502
2002-03-17  Kaveh R. Ghazi  
8503
 
8504
        * jcf-parse.c (get_constant): Delete unused variables.
8505
 
8506
2002-03-17  Neil Booth  
8507
 
8508
        * java-tree.h (java_parse_file): New.
8509
        * jcf-parse.c (yyparse): Rename java_parse_file.
8510
        * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8511
 
8512
2002-03-16  Bryce McKinlay  
8513
 
8514
        * parse.y (craft_constructor): Return the constructor decl.
8515
        (java_expand_classes): Update comments.
8516
        (lookup_method_invoke): Call fix_constructors immediately for
8517
        anonymous class. Fixes PR java/5935.
8518
 
8519
2002-03-15  Anthony Green  
8520
 
8521
        * jcf-parse.c (yyparse): Don't emit class registration
8522
        constructor when compiling resource files.
8523
 
8524
2002-03-12  Kaveh R. Ghazi  
8525
 
8526
        * lang.c (java_tree_code_type, java_tree_code_length,
8527
        tree_code_name): Delete.
8528
        (tree_code_type, tree_code_length, tree_code_name): Define.
8529
        (java_init): Don't try to copy into the various tree_code
8530
        arrays.
8531
 
8532
2002-03-12  Tom Tromey  
8533
 
8534
        * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
8535
        UTF-8, not UCS-2.  Fixes PR java/5923.
8536
 
8537
        * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
8538
        a call_expr wrapped in a convert.  Fixes PR java/5848.
8539
 
8540
2002-03-12  Bryce McKinlay  
8541
 
8542
        * jcf-write.c (write_classfile): Improve error strings.
8543
 
8544
2002-03-11  Eric Blake  
8545
 
8546
        * lex.c: Adjust comments to GNU standards.
8547
 
8548
2002-03-11  Eric Blake  
8549
 
8550
        Fix for PR java/5902:
8551
        * lex.c (java_lex): Fix parsing of literals.
8552
 
8553
2002-03-11  Bryce McKinlay  
8554
 
8555
        * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
8556
        to prevent it getting evaluated twice in the store checking case.
8557
        * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
8558
        examining OBJECT.
8559
 
8560
2002-03-09  Bryce McKinlay  
8561
 
8562
        * decl.c (java_init_decl_processing): Make sure class_type_node
8563
        alignment is not less than 64 bits if hash synchronization is enabled.
8564
 
8565
2002-03-08  Per Bothner  
8566
 
8567
        * parse.y (java_complete_lhs):  Check if patch_assignment
8568
        returned an error-mark.
8569
 
8570
        * parse.y (try_builtin_assignconv):  Don't special-case zero.
8571
 
8572
2002-03-08  Per Bothner  
8573
 
8574
        Fix for PR java/5812.
8575
        * expr.c (build_java_jsr):  Take pc arguments, and do lookup_label
8576
        here instead of in JSR macro.  Likewise with load_type_state call.
8577
        Do the latter on if the return_pc has been verified (the jsr returns).
8578
        (JSR):  Now just call build_java_jsr.
8579
 
8580
2002-03-07  Jeff Sturm  
8581
 
8582
        * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
8583
        (java.install-common): Link native driver to
8584
        JAVA_TARGET_INSTALL_NAME.
8585
 
8586
2002-03-05  David Billinghurst 
8587
 
8588
        * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
8589
        * builtins.c(sin_builtin): Likewise
8590
        * builtins.c(sqrt_builtin): Likewise
8591
 
8592
2002-03-03  Zack Weinberg  
8593
 
8594
        * java/expr.c, java/jcf-parse.c, java/lex.c:
8595
        Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
8596
        REAL_ARITHMETIC blocks unconditional.  Delete some further
8597
        #ifdef blocks predicated on REAL_ARITHMETIC.
8598
 
8599
2002-03-03  Kaveh R. Ghazi  
8600
 
8601
        * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
8602
        explicit sizeof/sizeof.
8603
        * decl.c (java_init_decl_processing): Likewise.
8604
        * jcf-parse.c (init_jcf_parse): Likewise.
8605
        * parse.y (init_src_parse): Likewise.
8606
 
8607
2002-03-02  Per Bothner  
8608
 
8609
        Make --CLASSPATH by a synonym for --classpath and -classpath.
8610
        Implement --bootclasspath.
8611
        * jcf-path.c (classpath_u):  Rename static variable to classpath_user.
8612
        (classpath_l):  Remove.
8613
        (jcf_path_CLASSPATH_arg):  Remove.
8614
        (jcf_path_bootclasspath_arg):  New function.
8615
        (jcf_path_seal):  Simplify accordingly.
8616
 
8617
        * jcf.h (jcf_path_bootclasspath_arg):  New declarations.
8618
        (jcf_path_CLASSPATH):  Remove declaration.
8619
        * jvspec.c (jvgenmain_spec):  Also accept -fbootclasspath*.
8620
        (lang_specific_driver):  Translate -bootclasspath.
8621
        * lang-options.h:  Add --bootclasspath.  Update --CLASSPATH.
8622
        * lang.c (decode_lang_options):  Do jcf_path_init first.
8623
        Handle -fCLASSPATH same as -fclasspath.  Also process -fbootclasspath.
8624
        * gjavah.c:  Also handle --bootclasspath.
8625
        Handle --CLASSPATH as a synonum for --classpath.
8626
        * jcf-dump.c: Likewise.
8627
 
8628
        "." is not part of system path, but is the default for --classpath.
8629
        * jcf-path.c (jcf_path_init):  Don't add "." to sys_dirs.
8630
        (jcf_path_seal):  Add "." if no CLASSPATH specified.
8631
 
8632
        * gcj.texi:  Document changes.
8633
 
8634
2002-03-01  Bryce McKinlay  
8635
 
8636
        * expr.c (build_java_arraystore_check): Fix formatting.
8637
 
8638
2002-02-28  Alexandre Petit-Bianco  
8639
 
8640
        Fix for PR java/5758, java/5632:
8641
        * jcf-parse.c (load_class): Renamed local variable, consider `.' an
8642
        inner-class separator too.
8643
        * parse.y (do_resolve_class): New local `decl_result.'
8644
        Progressively build a name for what can have been loaded.
8645
 
8646
2002-02-28  Bryce McKinlay  
8647
 
8648
        * expr.c (java_array_data_offset): Removed function.
8649
        (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
8650
        (build_java_array_length_access): Obtain "length" value using a
8651
        COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
8652
        (build_java_arrayaccess): Correct comment. Access "data" using a
8653
        COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
8654
        (build_java_arraystore_check): New function.
8655
        (expand_java_arraystore): Use build_java_arraystore_check.
8656
        * parse.y (patch_assignment): Simplify code to insert a store check
8657
        when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
8658
        * check-init.c (check_init): Update to reflect that an array length
8659
        access is now a COMPONENT_REF.
8660
        * gcj.texi (Code Generation): Improve documentation of
8661
        -fno-bounds-check. Add documentation for -fno-store-check.
8662
        * java-tree.h (flag_store_check): Declare.
8663
        (build_java_arraystore_check): Declare.
8664
        * lang.c (flag_store_check): Initialize to 1.
8665
        (lang_f_options): Add store-check option.
8666
        * jvspec.c: Don't pass store-check option to jvgenmain.
8667
        * lang-options.h: Add help string for -fno-store-check.
8668
 
8669
2002-02-28  Neil Booth  
8670
 
8671
        * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
8672
        * java-tree.h (java_dup_lang_specific_decl): New.
8673
        * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
8674
 
8675
2002-02-27  Zack Weinberg  
8676
 
8677
        * builtins.c, decl.c: Delete traditional-mode-related code
8678
        copied from the C front end but not used, or used only to
8679
        permit the compiler to link.
8680
 
8681
2002-02-22  Tom Tromey  
8682
 
8683
        Fix for PR java/2369:
8684
        * jvspec.c (verify_class_name): New function.
8685
        (lang_specific_driver): Call it.
8686
        (JAVA_START_CHAR_P): New macro.
8687
        (JAVA_PART_CHAR_P): Likewise.
8688
 
8689
2002-02-22  Per Bothner  
8690
 
8691
        * class.c:  Change vtable to be more compatible with g++ v3 abi.
8692
        (get_dispatch_table):  Prepend offset-to-top (always 0) and
8693
        type_info pointer (currently unimplemented hence NULL) to vtable.
8694
        Specifically, prepend offset-to-top and typeinfo ptr (currently null).
8695
        (make_class_data):  Variable dtable_start_offset is sizeof 2 pointers.
8696
        Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
8697
        (build_dtable_decl):  Add declarations for new fields.
8698
 
8699
2002-02-20  Per Bothner  
8700
 
8701
        * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
8702
        to finit$ (otherwise generate_bytecode_insns drops it). However, we
8703
        don't need to set it on the COMPOUND_EXPR - the caller does that.
8704
 
8705
2002-02-20  Nic Ferrier  
8706
 
8707
        * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
8708
        `--CLASSPATH' becomes `--classpath.'
8709
        * gjavah.c: Likewise.
8710
        * jcf-dump.c: Likewise.
8711
        * lang-options.h: Likewise.
8712
        * lang.c: Likewise.
8713
        * jcf-path.c: Updated comment.
8714
        (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
8715
        (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
8716
        * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
8717
        (jcf_path_CLASSPATH_arg): Ditto.
8718
        (classpath_u): Updated leading comment.
8719
 
8720
2002-02-20  Per Bothner  
8721
 
8722
        * builtins.c (check_for_builtin):  New function.
8723
        (build_call_or_builtin):  Remove.
8724
        * java-tree.h:  Update accordingly.
8725
        * expr.c (expand_invoke):  Use build + check_for_builtin instead
8726
        of build_call_or_builtin.
8727
        * parse.y (patch_invoke):  Likewise.  This avoids needlessly creating
8728
        a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
8729
        flag (which had caused jcf-write to incorrectly emit invokevirtual).
8730
 
8731
2002-02-17  Tom Tromey  
8732
 
8733
        * java-tree.h (TYPE_STRICTFP): New macro.
8734
        (struct lang_type) [strictfp]: New field.
8735
        (CLASS_STRICTFP): New macro.
8736
        (METHOD_STRICTFP): New macro.
8737
        (struct lang_decl) [strictfp]: New field.
8738
        * parse.y (method_header): Disallow strictfp constructor or
8739
        abstract method.
8740
        (STRICT_TK): Move before MODIFIER_TK.
8741
        * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
8742
        (METHOD_MODIFIERS): Likewise.
8743
        (INTERFACE_MODIFIERS): Likewise.
8744
        * jcf-write.c (get_access_flags): Likewise.
8745
        * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
8746
        (add_method_1): Likewise.
8747
        (get_access_flags_from_decl): Likewise.
8748
        * jcf-dump.c (print_access_flags): Print in standard order.  Also,
8749
        recognize strictfp flag.
8750
        * jcf.h (ACC_STRICT): New define.
8751
 
8752
2002-02-12  David Billinghurst 
8753
 
8754
        * class.c(build_utf8_ref): Move declaration of decl_size
8755
 
8756
2002-02-07  Tom Tromey  
8757
 
8758
        * gcj.texi (Input Options): --CLASSPATH does not suppress system
8759
        path.
8760
 
8761
2002-02-04  Anthony Green  
8762
 
8763
        * class.c (build_utf8_ref): Put UTF-8 constants into merged
8764
        sections if available.
8765
 
8766
2002-02-04  Bryce McKinlay  
8767
 
8768
        * parse.y (java_expand_classes): Fix typo in static field loop.
8769
 
8770
2002-02-02  Richard Henderson  
8771
 
8772
        * class.c (add_field): Mark static fields external.
8773
        (build_class_ref): Remove redundant set.
8774
        * parse.y (java_expand_classes): Mark static fields of classes
8775
        to be compiled as local.
8776
        * jcf-parse.c (parse_class_file): Likewise.
8777
 
8778
2002-02-02  Nic Ferrier  
8779
 
8780
        * gcj.texi (About CNI): New node.
8781
 
8782
2002-02-01  Craig Rodrigues  
8783
 
8784
        PR java/5080
8785
        * jcf-parse.c : Check for HAVE_LOCALE_H before using
8786
        setlocale() with LC_CTYPE as a parameter.
8787
        * jv-scan.c: Same.
8788
 
8789
2002-01-31  Joseph S. Myers  
8790
 
8791
        * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
8792
        Follow GNU Coding Standards for --version.
8793
 
8794
2002-01-28  Tom Tromey  
8795
 
8796
        * expr.c (build_jni_stub): Ensure storage for `meth' is
8797
        generated.
8798
        * parse.y (java_complete_expand_methods): Set
8799
        current_function_decl before building JNI stub.
8800
 
8801
2002-01-26 Andreas Tobler 
8802
 
8803
        * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
8804
        BUILT_IN_SQRTF.
8805
 
8806
2002-01-22  Tom Tromey  
8807
 
8808
        * decl.c (java_init_decl_processing): Use add_predefined_file.
8809
        Predefine RawData.java.
8810
        (predef_filenames): Removed.
8811
        (java_init_decl_processing): Don't register predef_filenames.
8812
        * jcf-parse.c (add_predefined_file): New function.
8813
        (predefined_filename_p): Rewrote.
8814
        (predefined_filename_p): No longer static.
8815
        * decl.c (java_init_decl_processing): Call initialize_builtins.
8816
        * Make-lang.in (JAVA_OBJS): Added builtins.o.
8817
        (java/builtins.o): New target.
8818
        * builtins.c: New file.
8819
        * parse.y (patch_invoke): Use build_call_or_builtin.
8820
        * java-tree.h (build_call_or_builtin): Declare.
8821
        (initialize_builtins): Declare.
8822
        (java_set_exception_lang_code): Removed unused declaration.
8823
        (PREDEF_FILENAMES_SIZE): Removed.
8824
        (java_tree_index): Added JTI_PREDEF_FILENAMES.
8825
        (predef_filenames): New define.
8826
        (add_predefined_file): Declare.
8827
        (predefined_filename_p): Declare.
8828
        * expr.c (expand_invoke): Use build_call_or_builtin.
8829
 
8830
2002-01-22  Kaveh R. Ghazi  
8831
 
8832
        * parse.y (patch_switch_statement): Fix format specifier.
8833
 
8834
2002-01-16  Tom Tromey  
8835
 
8836
        More for PR java/5365:
8837
        * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
8838
        default.
8839
        (process_file): Generate include for
8840
        java.lang.UnsupportedOperationExceptions.
8841
 
8842
2002-01-15  Andreas Jaeger  
8843
 
8844
        * .cvsignore: Add man pages.
8845
 
8846
2002-01-15  Tom Tromey  
8847
 
8848
        Fix for PR java/5365:
8849
        * gjavah.c (process_file): Turn class name into a file name.
8850
 
8851
2002-01-14  Matthias Klose  
8852
 
8853
        * gcj.texi: Fix whitespace and formatting errors in the
8854
        synopsis of the man pages. Update copyright.
8855
 
8856
2002-01-14  Tom Tromey  
8857
 
8858
        For PR libgcj/5303:
8859
        * Make-lang.in (java.install-man): Handle jv-convert man page.
8860
        (java.generated-manpages): Added jv-convert.1.
8861
        (java.uninstall): Remove jv-convert.1.
8862
        (java.maintainer-clean): Likewise.
8863
        ($(srcdir)/java/jv-convert.1): New target.
8864
        * gcj.texi (Top): Link to jv-convert node.
8865
        (Individual utilities): Likewise.
8866
        (Invoking jv-convert): New node.
8867
 
8868
2001-01-10  Jeff Sturm  
8869
            Martin Kahlert  
8870
 
8871
        * jcf-parse.c (get_constant): Don't swap lo/hi for big
8872
        endian targets when HOST_BITS_PER_WIDE_INT >= 64.
8873
 
8874
2002-01-03  Graham Stott  
8875
 
8876
        * class.c (compile_resource_file): Update copyright date.
8877
        Constify filename parameter.
8878
        (java-tree.h): Update copyright date.
8879
        (compile_resource_file): Constify filename parameter.
8880
 
8881
2002-01-03  Graham Stott  
8882
 
8883
        * gcc/jcf-parse.c: Update copyright date.
8884
        (yyparse): Constify resource_filename.
8885
 
8886
2002-01-02  Kaveh R. Ghazi  
8887
 
8888
        * parse.y (src_parse_roots): Don't needlessly zero init.
8889
 
8890
2001-12-31  Tom Tromey  
8891
 
8892
        * parse.y (dump_java_tree): New function.
8893
        (source_end_java_method): Call it.
8894
        (end_class_declaration): Likewise.
8895
        * lang.c (java_decode_option): Call dump_switch_p.
8896
 
8897
2001-12-28  Tom Tromey  
8898
 
8899
        * gen-table.pl: Don't process characters after \uffff.  Added
8900
        comment pointing to input file.
8901
 
8902
2001-12-28  Kaveh R. Ghazi  
8903
 
8904
        * gen-table.pl: Const-ify output.  Document the location of a
8905
        suitable unicode input file.
8906
 
8907
        * chartables.h: Regenerate.
8908
 
8909
2001-12-26  Kaveh R. Ghazi  
8910
 
8911
        * chartables.h: Const-ify.
8912
        * gjavah.c (options): Likewise.
8913
        * jcf-dump.c (options): Likewise.
8914
        * jv-scan.c (options): Likewise.
8915
        * lex.c (java_start_char_p, java_part_char_p): Likewise.
8916
        * parse.y (binop_lookup): Likewise.
8917
 
8918
2001-12-23  Kaveh R. Ghazi  
8919
 
8920
        * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
8921
        the static arrays that are output.
8922
        * jvspec.c (jvgenmain_spec): Make static.
8923
        * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
8924
        * keyword.h: Regenerate.
8925
        * lang.c (string_option, process_option_with_no, lang_f_options,
8926
        lang_W_options): Const-ify.
8927
        * lex.c (java_lex): Likewise.
8928
 
8929
2001-12-21  Richard Henderson  
8930
 
8931
        * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
8932
        (get_boehm_type_descriptor): ... here.  Arrange for the
8933
        TREE_TYPE to get set properly.
8934
 
8935
2001-12-21  Richard Henderson  
8936
 
8937
        * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
8938
        only if the target requires collect2.
8939
 
8940
        * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
8941
 
8942
2001-12-20  Tom Tromey  
8943
 
8944
        For PR java/4509:
8945
        * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
8946
        CAN_COMPLETE_NORMALLY for the node.
8947
        * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
8948
        generate code for second branch if first branch can't complete
8949
        normally.
8950
        (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
8951
        the loop head if the loop body can't complete normally.
8952
 
8953
2001-12-20  Tom Tromey  
8954
 
8955
        For PR java/4766:
8956
        * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
8957
        case where `finally' clause can't complete normally.
8958
 
8959
2001-12-20  Tom Tromey  
8960
 
8961
        Fixes PR java/5057:
8962
        * parse.y (analyze_clinit_body): Added this_class parameter.
8963
        Check for more cases where we must keep .
8964
        (maybe_yank_clinit): Cleaned up flow control.
8965
 
8966
2001-12-20  Bryce McKinlay  
8967
 
8968
        * decl.c (java_init_decl_processing): Don't initialize
8969
        finit_leg_identifier_node.
8970
        * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
8971
        (finit_leg_identifier_node): Remove.
8972
        (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
8973
 
8974
2001-12-20  Bryce McKinlay  
8975
 
8976
        * mangle.c (mangle_member_name): Don't special-case for
8977
        NO_DOLLAR_IN_LABEL.
8978
        * mangle_name.c (unicode_mangling_length): Likewise.
8979
        (append_unicode_mangled_name): Likewise.
8980
        * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
8981
        code.
8982
 
8983
2001-12-20  Bryce McKinlay  
8984
 
8985
        * expr.c (build_java_array_length_access): Don't force null pointer
8986
        check unless flag_check_references is set.
8987
 
8988
2001-12-20  Tom Tromey  
8989
 
8990
        Fix for PR java/3417:
8991
        * parse.y (patch_assignment): Added special processing for
8992
        `return'.
8993
        (patch_return): Don't convert booleans to integers, and don't
8994
        special-case `null'.
8995
 
8996
2001-12-20  Joseph S. Myers  
8997
 
8998
        * config-lang.in (diff_excludes): Remove.
8999
 
9000
2001-12-17  Joseph S. Myers  
9001
 
9002
        * gcj.texi: Update link to GCC manual.
9003
 
9004
2001-12-17  Tom Tromey  
9005
 
9006
        * parse.y (link_nested_class_to_enclosing): Removed useless
9007
        statement.
9008
 
9009
2001-12-16  Tom Tromey  
9010
 
9011
        * mangle.c (mangle_method_decl): Never emit `C2' constructor.
9012
        Fixes PR java/5088.
9013
 
9014
2001-12-16  Joseph S. Myers  
9015
 
9016
        * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
9017
        jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
9018
        spelling errors.
9019
 
9020
2001-12-16  Kaveh R. Ghazi  
9021
 
9022
        * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
9023
 
9024
2001-12-16  Bryce McKinlay  
9025
 
9026
        * decl.c (java_init_decl_processing): Build otable_type correctly.
9027
        otable_decl is an otable_type.
9028
 
9029
2001-12-15  Bryce McKinlay  
9030
 
9031
        * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
9032
        otable_type, otable_ptr_type, method_symbol_type,
9033
        method_symbols_array_type, method_symbols_array_ptr_type): New
9034
        field/global tree definitions.
9035
        (flag_indirect_dispatch): New flag.
9036
        * decl.c (java_init_decl_processing): Initialize new otable and
9037
        otable_syms type nodes and decls. Add new field "index" to
9038
        method_type_node.
9039
        * class.c (build_method_symbols_entry): New function.
9040
        (make_method_value): Set "index" to to method's vtable index for
9041
        virtual methods when indirect-dispatch is not used.
9042
        (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
9043
        and set vtable_method_count to -1. Set otable and otable_syms field
9044
        if indirect-dispatch is used and there was something to put in them.
9045
        (build_method_symbols_entry): New function.
9046
        (emit_offset_symbol_table): New function.
9047
        * expr.c (get_offset_table_index): New function.
9048
        (build_invokevirtual): Build array reference to otable at the index
9049
        returned by get_offset_table_index, and use the result as the vtable
9050
        offset.
9051
        (build_invokeinterface): Similar.
9052
        * jcf-parse.c (yyparse): If indirect-dispatch, call
9053
        emit_offset_symbol_table at the end of compilation, after all classes
9054
        have been generated.
9055
        * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
9056
        * lang.c (flag_indirect_dispatch): Define.
9057
        (lang_f_options): Add indirect-dispatch flag.
9058
 
9059
2001-12-14  Matthias Klose  
9060
 
9061
        * gcj.texi: Markup for man page generation. Document missing
9062
        options printed by  --help.
9063
        Terminate description of gij's -ms option with a dot.
9064
        * Make-lang.in ($(srcdir)/java/*.1): New targets.
9065
        (java.generated-manpages java.install-man, java.uninstall,
9066
        java-maintainer-clean) Updated.
9067
 
9068
2001-12-14  Hans Boehm  
9069
 
9070
        * class.c (get_dispatch_table): Fix java vtable layout
9071
        for TARGET_VTABLE_USES_DESCRIPTORS.
9072
        * decl.c (java_init_decl_processing): Initialize
9073
        alloc_no_finalizer_node, finalize_identifier_node.
9074
        * expr.c (class_has_finalize_method): New function.
9075
        (expand_java_NEW): Generate calls for finalizer-free allocation.
9076
        (build_invokevirtual): Fix java vtable layout for
9077
        TARGET_VTABLE_USES_DESCRIPTORS.
9078
        * java-tree.h (enum java_tree_index): New entries:
9079
        JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
9080
        (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
9081
        (class_has_finalize_method): declare.
9082
        (HAS_FINALIZER_P): New macro.
9083
        * parse.y (patch_invoke): Generate calls for finalizer-free
9084
        allocation.
9085
 
9086
2001-12-12  Matthias Klose  
9087
 
9088
        * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
9089
        whitespace at end of line.
9090
 
9091
2001-12-11  Tom Tromey  
9092
 
9093
        * lex.c (java_init_lex): Define wfl_to_string as
9094
        gnu.gcj.runtime.StringBuffer unless generating bytecode.
9095
 
9096
2001-12-11  Jeff Sturm  
9097
 
9098
        * class.c (make_method_value): Use null_pointer_node to
9099
        represent empty exception table.
9100
 
9101
2001-12-10  Tom Tromey  
9102
 
9103
        * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
9104
 
9105
2001-12-10  Douglas B. Rupp  
9106
 
9107
        * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
9108
 
9109
2001-12-09  Per Bothner  
9110
 
9111
        * check-init.c (current_switch_has_default):  New static field.
9112
        (check_init):  Case DEFAULT_EXPR: Set current_switch_has_default.
9113
        Case SWITCH_EXPR:  Save/restore current_switch_has_default.  If no
9114
        DEFAULT_EXPR seen, simulate a default alternative that copies state.
9115
 
9116
2001-12-09  Tom Tromey  
9117
 
9118
        * check-init.c (check_init): Don't allow pre- or post- increment
9119
        or decrement of final variable.
9120
        (final_assign_error): Minor error message rewording.
9121
 
9122
2001-12-08  Tom Tromey  
9123
 
9124
        * java-tree.h: Fixed typo.
9125
 
9126
        * gjavah.c (decompile_method): Don't decompile to `return this'
9127
        for static methods.
9128
 
9129
        * gjavah.c (cxx_keywords): Re-sorted.
9130
        * lex.c (cxx_keywords): Re-sorted.
9131
 
9132
        * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
9133
        else.
9134
 
9135
        * gjavah.c (print_namelet): Clear subnamelets.
9136
        (HANDLE_METHOD): Set `method_printed' earlier.
9137
 
9138
2001-12-07  Tom Tromey  
9139
 
9140
        * lang.c (lang_f_options): Added
9141
        optimize-static-class-initialization.
9142
        (java_decode_option): Removed special case.
9143
 
9144
2001-12-07  Per Bothner  
9145
 
9146
        * check-init.c (check_init):  Fix typo freeing memory twice.
9147
 
9148
2001-12-05  Per Bothner  
9149
 
9150
        Restore support for static class initialization optimization.
9151
        * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
9152
        * check-init.c (check_int):  At end of BLOCK handle initialization
9153
        blocks, which used to be done in java_complete_expand_method but did
9154
        not handle the case where check_for_initialization might allocate
9155
        more than a word of bits.
9156
        * decl.c (lang_make_tree):  The smic field is now a tree.
9157
        * expr.c (build_class_init):  Set DECL_FUNCTION_INIT_TEST_CLASS field.
9158
        * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE):  New macro.
9159
 
9160
        * parse.y (emit_test_initialization):  Combine hash_lookup calls.
9161
 
9162
        * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
9163
        Change from a hash table to a list.
9164
        (struct_lang_decl):  Change field 'smic' to match.
9165
        * class.c (add_method_1):  Initialize
9166
        DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
9167
        * parse.y (adjust_init_test_initialization):  Removed - inlined into -
9168
        (java_expand_method_bodies): -here, since 'smic' is now a list.
9169
        (patch_invoke):  Add to 'smic' list, instead of hash_lookup.
9170
 
9171
        * check-init.c (WORD_SIZE):  Use BITS_PER_UNIT.
9172
 
9173
        * class.c (java_hash_compare_tree_node):  Fix casts.
9174
 
9175
2001-12-04  Per Bothner  
9176
 
9177
        * check-init.c:   Handle definite unassignment to finals in addition
9178
        to definite assignment.
9179
        (loop_current_locals):  New field.
9180
        (num_current_locals, int start_current_locals, num_current_words):
9181
        Make static.
9182
        (SET_P, CLEAR_P, SET_BIT):  Add needed but missing parentheses.
9183
        (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
9184
        CLEAR_ASSIGNED, CLEAR_UNASSIGNED):  New macros.
9185
        (get_variable_decl, check_final_reassigned):  New functions.
9186
        (check_init, check_bool_init):  Modify as needed for checking finals.
9187
        (check_for_initialization):  Take extra parameter and return void.
9188
        Do extra start-up logic to check final fields for assignment.
9189
        * parse.y (check_static_final_variable_assignment_flag,
9190
        reset_static_final_variable_assignment_flag, check_final_assignment,
9191
        check_final_variable_local_assignment_flag,
9192
        reset_final_variable_indirect_assignment_flag,
9193
        reset_final_variable_global_assignment_flag):  Remove functions.
9194
        (java_complete_expand_methods, outer_field_access_fix,
9195
        patch_assignment): Remove no-longer used logic.
9196
        * java-tree.h (DECL_FIELD_FINAL_IUD):  Change usage and comments.
9197
        * parse.y (register_fields, java_complete_tree):  Update accordingly.
9198
 
9199
        * check-init.c (ALLOC_WORDS/FREE_WORDS):  Use xmalloc/free, not alloca.
9200
        (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER):  New.
9201
        (check_cond_init, check_bool2_init):  Use DECLARE_BUFFERS.
9202
 
9203
        * java-tree.h (STATIC_CLASS_INIT_OPT_P):  Temporarily turn off.
9204
 
9205
        * java-tree.h (DECL FINAL):  New bit-field.
9206
        (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL):  Define as DECL_FINAL.
9207
        (LOCAL_FINAL_P):  Use DECL_FINAL rather than old LOCAL_FINAL.
9208
        (DECL_INIT_CALLS_THIS):  New macro.
9209
        (struct lang_decl):  New bit-field init_calls_this.
9210
        (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
9211
        DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
9212
        (DECL_BIT_INDEX):  Change to use pointer_alias_set since we now
9213
        use it for both local variables and final fields.
9214
        (struct lang_decl_var):  Remove bit-fields final_liic, final_ierr,
9215
        and local_final.
9216
        (struct lang_type):  Remove hfv bit-field.
9217
        (check_for_initialization):  Change to return void.
9218
 
9219
        * java-tree.h (IS_ARRAY_LENGTH_ACCESS):  New macros.
9220
        * expr.c (build_java_array_length_access):  Set IS_ARRAY_LENGTH_ACCESS.
9221
        * check-init.c (final_assign_error):  New helper function.
9222
        (check_final_reassigned, check_init):  Use it.
9223
        (check_init):  Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
9224
 
9225
        * java-tree.h (struct lang_decl, struct lang_decl_var):  Change all
9226
        bit-fields to unsigned.
9227
 
9228
2001-12-03  Per Bothner  
9229
 
9230
        * parse.y (patch_binop):  Minor constant folding.
9231
 
9232
        * parse.y (build_current_thisn):  Shorter 'buffer'.
9233
 
9234
2001-12-03  Per Bothner  
9235
 
9236
        * decl.c (complete_start_java_method):  Now generate TRY_FINALLY_EXPR
9237
        instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
9238
        * jcf-write.c (generate_bytecode_insns):  Remove support for
9239
        CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
9240
        * check-init.c (check_init):  Likewise.
9241
 
9242
2001-12-03  Per Bothner  
9243
 
9244
        * verify.c (subroutine_nesting):  New function.
9245
        (verify_jvm_instructions):  Use it to fix logic for checking that
9246
        we're done with the current subroutine.
9247
 
9248
        * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
9249
        OPCODE_instanceof use POP_TYPE macro for better diagnostics.
9250
 
9251
2001-12-03  Per Bothner  
9252
 
9253
        * jcf.h:  Fix obvious typo in comment.
9254
        * typeck.c (build_null_signature):  Add comment.
9255
 
9256
2001-12-03  Neil Booth  
9257
 
9258
        * expr.c: Remove leading capital from diagnostic messages, as
9259
        per GNU coding standards.
9260
        * jcf-io.c: Similarly.
9261
        * jcf-parse.c: Similarly.
9262
        * jv-scan.c: Similarly.
9263
        * jvspec.c: Similarly.
9264
        * mangle.c: Similarly.
9265
 
9266
2001-12-02  Tang Ching-Hui  
9267
            Alexandre Petit-Bianco  
9268
 
9269
        * expr.c (build_java_arrayaccess): Call save_expr on array for
9270
        correct evaluation order, modified comment, fixed indentation.
9271
        * parse.y: (patch_assignment): Correctly extract the array base
9272
        from the tree generate by build_java_arrayaccess, added comments.
9273
        (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
9274
        Fixes PR java/3096, PR java/3803, PR java/3965.
9275
 
9276
2001-12-01  Neil Booth  
9277
 
9278
        * expr.c (expand_byte_code): Remove trailing periods from messages.
9279
        * jcf-parse.c (load_class, jcf_parse): Similarly.
9280
        * jcf-write.c (generate_classfile): Similarly.
9281
        * lex.c (java_lex): Similarly.
9282
 
9283
2001-11-30  Bryce McKinlay  
9284
 
9285
        * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
9286
 
9287
2001-11-29  Joseph S. Myers  
9288
 
9289
        * Make-lang.in (java.generated-manpages): New dummy target.
9290
 
9291
2001-11-27  Rainer Orth  
9292
 
9293
        * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9294
        ASM_FINAL_SPEC.
9295
        (lang_specific_pre_link): Use set_input to set input_filename.
9296
        Append `main' here.
9297
        * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9298
        (main): Fix definition.
9299
        Strip `main' from classname.
9300
        Fixes PR java/227.
9301
 
9302
2001-11-18  Roger Sayle 
9303
 
9304
        * parse.h (java_expand_switch): Remove old prototype.
9305
 
9306
2001-11-18  Tom Tromey  
9307
 
9308
        Fix for PR java/1401:
9309
        * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
9310
        arg0 is null.
9311
        (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
9312
        correctly.
9313
 
9314
2001-11-18  Neil Booth  
9315
 
9316
        * lang.c (finish_parse): Rename to java_finish.
9317
        (LANG_HOOKS_FINISH, java_finish): New.
9318
 
9319
2001-11-15  Neil Booth  
9320
 
9321
        * decl.c (init_decl_processing): Rename java_init_decl_processing.
9322
        * java-tree.h: New prototype.
9323
        * lang.c (java_init): Update prototype.  Combine with old init_parse.
9324
 
9325
2001-11-13  Tom Tromey  
9326
 
9327
        * gjavah.c (method_signature): New global.
9328
        (HANDLE_METHOD): Set it.
9329
        (decompile_return_statement): New function.
9330
        (decompile_method): Use it.
9331
        (print_method_info): Removed `synth' argument.
9332
 
9333
2001-11-09  Neil Booth  
9334
 
9335
        * java-tree.h (java_set_yydebug): New.
9336
        * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
9337
        * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
9338
        (print_lang_decl, print_lang_type, print_lang_identifier,
9339
        print_lang_statistics, lang_print_xnode): Remove.
9340
 
9341
2001-11-09  Neil Booth  
9342
 
9343
        * jcf-parse.c (init_lex): Remove.
9344
        * lang.c (language_string, lang_identify): Remove.
9345
        (struct lang_hooks): Constify.
9346
        (LANG_HOOKS_NAME): Override.
9347
        (init_parse): Update.
9348
 
9349
2001-11-08  Andreas Franck  
9350
 
9351
        * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
9352
        program_transform_name the way suggested by autoconf.
9353
        (java.install-common): Also transform auxiliary program names with
9354
        program_transform_name.
9355
 
9356
2001-11-08  Tom Tromey  
9357
 
9358
        * parse.y (trap_overflow_corner_case): New rule.
9359
        (unary_expression): Use it.
9360
        * lex.c (java_init_lex): Don't set minus_seen.
9361
        (yylex): Don't use minus_seen.  Communicate overflow to parser for
9362
        it to handle.
9363
        (error_if_numeric_overflow): New function.
9364
        * parse.h (minus_seen): Removed field.
9365
        (JAVA_RADIX10_FLAG): New define.
9366
 
9367
2001-11-07  Tom Tromey  
9368
 
9369
        Patch for PR java/1414:
9370
        * parse.y (case_label_list): New global.
9371
        (goal): Register case_label_list with GC.
9372
        (java_complete_lhs): Save new case on case_label_list.
9373
        (patch_switch_statement): Check for duplicate case labels.
9374
 
9375
2001-11-07  Alexandre Petit-Bianco  
9376
 
9377
        * parse.y (patch_assignment): Removed unused third argument.
9378
        (java_complete_lhs): Removed unused third argument to patch_assignment.
9379
 
9380
2001-11-06  Neil Booth  
9381
 
9382
        * lang.c: Include langhooks-def.h.
9383
        * Make-lang.in: Update.
9384
 
9385
2001-10-31  Zack Weinberg  
9386
 
9387
        * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
9388
 
9389
2001-10-29  Bryce McKinlay  
9390
 
9391
        * mangle.c (find_compression_record_match): Don't match compression
9392
        records for package name elements unless they occur at the start of
9393
        the name. Fix for PR java/4717.
9394
 
9395
2001-10-25  Bryce McKinlay  
9396
 
9397
        * expr.c (expand_java_field_op): Don't special-case references to
9398
        java.lang.PRIMTYPE.TYPE.
9399
        (build_primtype_type_ref): Removed.
9400
        * java-tree.h (build_primtype_type_ref): Remove prototype.
9401
        * parse.y (maybe_build_primttype_type_ref): Removed.
9402
        (complete_function_arguments): Don't special-case references to
9403
        java.lang.PRIMTYPE.TYPE.
9404
        (patch_assignment): Likewise.
9405
        (array_constructor_check_entry): Likewise.
9406
 
9407
2001-10-24  Alexandre Petit-Bianco  
9408
 
9409
        * mangle.c (static tree compression_table): Fixed leading comment.
9410
        * parse.h (struct parser_ctxt): Fixed field comment.
9411
        * parse.y (check_pkg_class_access): New prototype, fixed leading
9412
        comment, new parameter used to emit error only if passed as true.
9413
        (parse_check_super): Pass extra argument to check_pkg_class_access.
9414
        (do_resolve_class): Likewise.
9415
        (process_imports): Likewise.
9416
        (read_import_dir): Fixed indentation.
9417
        (find_in_imports_on_demand): New local class_type_name. Local
9418
        node_to_use deleted. while loop changed into for loop. Report
9419
        multiple definition only for accessible classes. Improved error
9420
        message.
9421
        (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
9422
        assigned to parameter list, fixed indentation. while loop changed
9423
        into for loop, restore TREE_CHAIN on local `tem' before the next
9424
        iteration.
9425
 
9426
2001-10-23  Richard Kenner  
9427
 
9428
        * lang.c (lang_get_alias_set): Deleted.
9429
 
9430
2001-10-21  Kaveh R. Ghazi  
9431
 
9432
        * gjavah.c (jni_print_char): Fix thinko in last change.
9433
 
9434
        * gjavah.c (jni_print_char, decode_signature_piece): Use
9435
        safe-ctype macros and/or fold extra calls into fewer ones.
9436
        * lex.c (java_read_unicode, java_lex): Likewise.
9437
        * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
9438
        JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
9439
        * mangle_name.c (append_unicode_mangled_name,
9440
        unicode_mangling_length): Likewise.
9441
 
9442
2001-10-17  Richard Henderson  
9443
 
9444
        * Make-lang.in (java/lang.o): Depend on langhooks.h.
9445
 
9446
2001-10-15  Alexandre Petit-Bianco  
9447
 
9448
        * lang.c (langhooks.h): Included.
9449
        (LANG_HOOKS_INIT): Redefined.
9450
        (LANG_HOOKS_INIT_OPTIONS): Likewise.
9451
        (LANG_HOOKS_DECODE_OPTION): Likewise.
9452
        (struct lang_hooks lang_hooks): New initialization.
9453
 
9454
2001-10-11  Per Bothner  
9455
 
9456
        * parse.y (patch_synchronized_statement):  Use a TRY_FINALLY_EXPR
9457
        rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
9458
        The former is simpler, and jcf-write.c handles it better.
9459
        (java_complete_lhs):  No longer need to handle CLEANUP_POINT_EXPR
9460
        or WITH_CLEANUP_EXPR.
9461
        * jcf-write.c:  Revert Alex's change from 2000-10-18.  It is no
9462
        longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
9463
 
9464
        * parse.y (patch_if_else_statement):  If the condition is constant,
9465
        optimize away the test.
9466
 
9467
2001-10-09  Alexandre Petit-Bianco  
9468
 
9469
        * parse.y (patch_cast): Call patch_string on the first operand of
9470
        the incoming node, update it if necessary. Fixes PR java/4510.
9471
 
9472
2001-10-09  Bryce McKinlay  
9473
 
9474
        * parse.y (find_as_inner_class): Don't disregard the enclosing scope
9475
        when name qualifier matches a package name.
9476
 
9477
2001-10-08  Tom Tromey  
9478
 
9479
        Fix for PR java/4489:
9480
        * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
9481
        force a new label when computing `body_block'.
9482
 
9483
2001-10-07  Kaveh R. Ghazi  
9484
 
9485
        * jcf-io.c (format_uint): Const-ify.
9486
        * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
9487
        * lex.c (java_get_line_col): Likewise.
9488
        * parse.y (build_incdec): Likewise.
9489
 
9490
2001-10-05  Alexandre Petit-Bianco  
9491
 
9492
        * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
9493
        a NULL enclosing context if appropriate. Fixes PR java/4466.
9494
 
9495
2001-10-03  Alexandre Petit-Bianco  
9496
 
9497
        * parse.y (patch_assignment): Use lvalue's original TYPE when
9498
        building the final COMPOUND_EXPR.
9499
        (try_reference_assignconv): Fixed leading comment.
9500
 
9501
2001-09-26  Alexandre Petit-Bianco  
9502
 
9503
        * parse.y (check_final_variable_indirect_assignment): For
9504
        COMPOUND_EXPR, return only if finals were found initialized
9505
        properly, if not, keep on checking.
9506
        (check_final_variable_global_assignment_flag): New local
9507
        error_found, set when appropriate and used to decide whether to
9508
        report uninitialized finals. Fixed typo in comment.
9509
 
9510
2001-09-22  Alexandre Petit-Bianco  
9511
 
9512
        * decl.c (init_decl_processing): Fixed typo in predef_filenames
9513
        last three initializations. Fixes PR java/4360.
9514
 
9515
2001-09-21  Richard Henderson  
9516
 
9517
        * class.c (get_dispatch_table): Handle function descriptors.
9518
        (build_dtable_decl): Likewise.
9519
        * expr.c (build_invokevirtual): Likewise.
9520
 
9521
2001-09-20  Alexandre Petit-Bianco  
9522
 
9523
        * parse.y (patch_method_invocation): Build class initialization
9524
        when static finals are used to qualify method invocation.
9525
        Fixes PR java/4366.
9526
 
9527
2001-09-19  Alexandre Petit-Bianco  
9528
 
9529
        * parse.h: (WFL_STRIP_BRACKET): Re-written using
9530
        build_type_name_from_array_name.
9531
        (STRING_STRIP_BRACKETS): New macro.
9532
        * parse.y (build_type_name_from_array_name): New function.
9533
        (array_creation_expression:): Accumulate []s instead of [s.
9534
        (cast_expression:): Accumulate []s instead of [s after cast type
9535
        name.
9536
        (build_array_from_name): Local string deleted, use
9537
        build_type_name_from_array_name.
9538
        (build_unresolved_array_type): Accumulate []s instead of [s after
9539
        type name.
9540
        (register_fields): Fixed comment.
9541
        (resolve_class): Local name, base deleted, new locals tname and
9542
        array_dims. Use build_type_name_from_array_name. Use array_dims to
9543
        build array type.
9544
        (purify_type_name): Use STRING_STRIP_BRACKETS.
9545
 
9546
2001-09-18  Andreas Jaeger  
9547
 
9548
        * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
9549
        * jv-scan.c: Likewise.
9550
 
9551
2001-09-17  Alexandre Petit-Bianco  
9552
 
9553
        * parse.y (patch_method_invocation): Inner class creation context
9554
        check not enforced within constructors. Fixes PR java/1873.
9555
 
9556
2001-09-16  Tom Tromey  
9557
 
9558
        * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
9559
        NOTE_PUSH for single-case push.  Fixes PR java/4189.
9560
 
9561
2001-09-13  Alexandre Petit-Bianco  
9562
 
9563
        * java-tree.h (TYPE_IMPORT_LIST): New macro.
9564
        (TYPE_IMPORT_DEMAND_LIST): Likewise.
9565
        (struct lang_type): New fields import_list and import_demand_list.
9566
        * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
9567
        TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
9568
        (do_resolve_class): New local saved_enclosing_type, initialized,
9569
        passed as parameter to find_in_imports and find_in_imports_on_demand.
9570
        (find_in_imports): Added paramater enclosing_type, use its
9571
        TYPE_IMPORT_LIST when applicable.
9572
        (find_in_imports_on_demand): Added parameter enclosing_type, use
9573
        its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
9574
        declaration and initialization.
9575
        (fold_constant_for_init): Switch/restore current_class to the
9576
        appropriate context.
9577
 
9578
2001-09-13  Mark Mitchell  
9579
 
9580
        * verify.c (verify_jvm_instructions): Fix typo.
9581
 
9582
2001-09-13  Kaveh R. Ghazi  
9583
 
9584
        * expr.c (expand_invoke): Const-ification.
9585
        * parse.y (patch_method_invocation): Likewise.
9586
 
9587
2001-09-12  Kaveh R. Ghazi  
9588
 
9589
        * gjavah.c (cxx_keywords): Const-ification.
9590
        * keyword.gperf (java_keyword): Likewise.
9591
        * lang.c (java_tree_code_name): Likewise.
9592
        * lex.c (cxx_keywords): Likewise.
9593
        * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
9594
 
9595
2001-09-11  Richard Henderson  
9596
 
9597
        * parse.h (ctxp_for_generation): Mark extern.
9598
 
9599
2001-09-10  Richard Henderson  
9600
 
9601
        * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
9602
 
9603
2001-09-07  Matt Kraai  
9604
 
9605
        * typeck.c (java_array_type_length, build_prim_array_type):
9606
        Represent empty arrays by NULL index.
9607
 
9608
2001-09-06  Alexandre Petit-Bianco  
9609
 
9610
        * java-tree.h (compile_resource_file): Grouped with other prototypes.
9611
        * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
9612
 
9613
2001-09-06  Anthony Green  
9614
 
9615
        * class.c (O_BINARY): Define if necessary.
9616
        (registerResource_libfunc): Declare.
9617
        (init_class_processing): Initilize registerResource_libfunc.
9618
        (compile_resource_file): New function.
9619
        * java-tree.h (resource_name): Declare.
9620
        (compile_resource_file): Declare.
9621
        * jcf-parse.c (yyparse): Handle compiling java resource files.
9622
        * lang.c (java_decode_option): Handle -fcompile-resource option.
9623
        * jvspec.c (lang_specific_driver): Handle -R flag for compiling
9624
        resource files.
9625
        * gcj.texi (Code Generation): Add documentation for -R flag.
9626
 
9627
2001-09-05 Alexandre Petit-Bianco  
9628
 
9629
        * jcf-write.c (generate_classfile): Issue an error in case of
9630
        field/initial value mismatch.
9631
        * parse.y (analyze_clinit_body): Keep  if an array is
9632
        being initialized and we're generating bytecode.
9633
        (java_complete_lhs): In MODIFY_EXPR section: added comments,
9634
        set DECL_INITIAL properly when appropriate.
9635
        Fixes PR java/4230
9636
        Fixes PR java/4204
9637
 
9638
2001-09-01  Per Bothner  
9639
 
9640
        * parse.y (maybe_yank_clinit):  A field without an initializer is not
9641
        relevant.  All initializers except static final and constant require
9642
        , regardless of flag_emit_class_files.
9643
 
9644
2001-08-31  Per Bothner  
9645
 
9646
        * class.c (set_constant_value):  When not emitting class files, then a
9647
        String ConstantValue is a utf8const_ptr_type.
9648
 
9649
2001-08-30  Per Bothner  
9650
 
9651
        * jcf-write.c (generate_classfile):  Check that field is primitive
9652
        or string before emitting ConstantValue attribute.
9653
 
9654
2001-08-30  Per Bothner  
9655
 
9656
        * parse.y (resolve_qualified_expression_name):  If creating a
9657
        COMPOUND_EXPR, set it's type correctly.
9658
 
9659
2001-08-30  Per Bothner  
9660
 
9661
        * jcf-io.c (open_class):  Set filename field.
9662
 
9663
        * jcf-parse,c (parse_class_file):  Set current_function_decl
9664
        for better error message when Code attribute is missing.
9665
 
9666
        * lang.c (put_decl_node, lang_print_error):  Re-arrange for
9667
        better diagnostics, especially for constructors.
9668
 
9669
2001-08-30  Per Bothner  
9670
 
9671
        * jcf-write.c (generate_classfile):  Don't write ConstantValue
9672
        attribute if field is not final, for compatibility with jdk.
9673
 
9674
        * jcf-write.c (generate_classfile):  Convert ConstantValue values
9675
        to correct type.  Work-around for front-end bug.
9676
        * class.c (set_constant_value):  Error if constant has wrong type.
9677
 
9678
2001-08-30  Per Bothner  
9679
 
9680
        * jcf-dump.c (print_constant):  Fix fencepost error so "Float" and
9681
        "Double" are printed at verbosity 1.
9682
 
9683
        * jcf-dump.c (main):  Disable flag_print_attributes if --javap.
9684
 
9685
        * jcf-dump.c (SPECIAL_IINC):  Remove unneeded casts to long.
9686
 
9687
2001-08-30  Alexandre Petit-Bianco  
9688
 
9689
        * parse.y (patch_assignment): Don't verify final re-assignment here.
9690
        (java_complete_lhs): Verify assignments to finals calling
9691
        patch_assignment. Verify re-assignments to finals before calling
9692
        patch_assignment.
9693
 
9694
2001-08-29  Alexandre Petit-Bianco  
9695
 
9696
        * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
9697
        Fixes PR java/1413
9698
 
9699
2001-08-28  Alexandre Petit-Bianco  
9700
 
9701
        * lex.c (java_lex): new local found_hex_digits. Set and then used
9702
        in test to reject invalid hexadecimal numbers.
9703
        * parse.y (java_complete_tree): Prevent unwanted cast with
9704
        initialized floating point finals.
9705
        (patch_binop): Emit a warning when detecting a division by zero,
9706
        mark result not constant, don't simplify non integer division.
9707
 
9708
2001-08-28  Per Bothner  
9709
 
9710
        * jcf-write.c  (generate_bytecode_insns):  For increments and
9711
        decrements just recurse to push constant.  Improvement on Mark's patch.
9712
 
9713
2001-08-28  Mark Mitchell  
9714
 
9715
        * jcf-write.c (generate_bytecode_insns): Generate an integer to
9716
        real conversion for increments and decrements of reals.
9717
 
9718
2001-08-27  Alexandre Petit-Bianco  
9719
 
9720
        * parse.y (resolve_qualified_expression_name): Handle unresolved
9721
        qualified expressions, prevent numerical qualifiers, fixed typo.
9722
        Fixes PR java/4141
9723
 
9724
2001-08-24  Alexandre Petit-Bianco  
9725
 
9726
        * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
9727
        don't report anything but deprecated class when marked so. Handle
9728
        VAR_DECL.
9729
        (patch_method_invocation): Check deprecation on methods and types.
9730
        (patch_binop): code becomes an enum tree_code, added default: to
9731
        switch to handle that. Detect division by zero, try to fold and
9732
        return before using a subroutine.
9733
 
9734
2001-08-23  Alexandre Petit-Bianco  
9735
 
9736
        * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
9737
        file smaller than 4 bytes.
9738
        * parse.y (check_inner_circular_reference): New function.
9739
        (check_circular_reference): Likewise.
9740
        (array_initializer:): Accept {,}.
9741
        (java_check_circular_reference): Rewritten using
9742
        check_circular_reference and check_inner_circular_reference.
9743
        (java_complete_expand_method): Unconditionally save and restore
9744
        the unpurged exception list.
9745
        (build_dot_class_method_invocation): Unmangle signature parameter.
9746
 
9747
2001-08-21  Tom Tromey  
9748
 
9749
        * decl.c (init_decl_processing): Add `throws' field to method
9750
        descriptor.
9751
        * class.c (make_method_value): Compute `throws' field for method.
9752
 
9753
2001-08-22  Alexandre Petit-Bianco  
9754
 
9755
        * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
9756
        circularity is detected.
9757
        (ctors_unchecked_throws_clause_p): Fixed leading comment.
9758
 
9759
2001-08-17  Richard Henderson  
9760
 
9761
        * class.c (emit_register_classes): Add align parameter to
9762
        call to assemble_integer.
9763
 
9764
2001-08-16  Alexandre Petit-Bianco  
9765
 
9766
        * jcf-parse.c (load_class): New locals saved and class_loaded. If
9767
        loading a class_or_name fails, try considering an innerclass name
9768
        and load the enclosing context.
9769
        * parse.y (resolve_inner_class): New function.
9770
        (find_as_inner_class): Added leading comment.
9771
        (register_incomplete_type): Keep the current context as enclosing
9772
        context for JDEP_FIELD dependencies.
9773
        (do_resolve_class): Locals new_class_decl and super initialized to
9774
        NULL. Call resolve_inner_class, explore the enclosing context
9775
        superclass if necessary.
9776
        Fixes PR java/4007
9777
 
9778
2001-08-16  Tom Tromey  
9779
 
9780
        * jcf-dump.c (main): Updated for change to jcf_path_seal.
9781
        * gjavah.c (main): Updated for change to jcf_path_seal.
9782
        * lang.c (version_flag): New global.
9783
        (java_decode_option): Recognize `-version'.
9784
        (java_init): Update for change to jcf_path_seal.
9785
        * jcf.h (jcf_path_seal): Added `print' argument.
9786
        * jcf-path.c (jcf_path_seal): Added `print' argument.
9787
 
9788
2001-08-13  Zack Weinberg  
9789
 
9790
        * Make-lang.in (java/decl.o): Update dependencies.
9791
        * decl.c: Include libfuncs.h, don't include toplev.h.
9792
 
9793
2001-08-12  Alexandre Petit-Bianco  
9794
 
9795
        * decl.c (init_decl_processing): exception_type_node,
9796
        class_not_found_type_node, and no_class_def_found_type_node
9797
        initialized. predef_filenames augmented accordingly.
9798
        instinit_identifier_node initialized.
9799
        * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
9800
        * java-tree.h (enum java_tree_index): New entries
9801
        JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
9802
        JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
9803
        (exception_type_node): New macro.
9804
        (class_not_found_type_node): Likewise.
9805
        (no_class_def_found_type_node): Likewise.
9806
        (instinit_identifier_node): Likewise.
9807
        (PREDEF_FILENAMES_SIZE): Adjusted.
9808
        (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
9809
        (struct lang_type): Fixed typo in bitfield name.
9810
        (DECL_INSTINIT_P): New macro.
9811
        (ID_INSTINIT_P): Likewise.
9812
        * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
9813
        attribute.
9814
        * parse.y (encapsulate_with_try_catch): New function.
9815
        (generate_instinit): Likewise.
9816
        (build_instinit_invocation): Likewise.
9817
        (ctors_unchecked_throws_clause_p): Likewise.
9818
        (add_instance_initializer): Deleted.
9819
        (build_instance_initializer): Likewise.
9820
        (in_instance_initializer): Likewise.
9821
        (check_method_redefinition): instinit$ not to be verified.
9822
        (java_complete_expand_methods): Generate instinit$, simplified code.
9823
        (build_dot_class_method): Eliminated unnecessary locals. Use
9824
        encapsulate_with_try_catch, removed unnecessary code.
9825
        (fix_constructors): New local iii. Use build_instinit_invocation.
9826
        (patch_method_invocation): Added comment.
9827
        (maybe_use_access_method): Don't consider instinit$.
9828
        (find_applicable_accessible_methods_list): Shorten the search for
9829
        instinit$ too.
9830
        (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
9831
        (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
9832
        (patch_throw_statement): Likewise. Fixed typo.
9833
 
9834
2001-08-12  David Edelsohn  
9835
 
9836
        Revert:
9837
        2001-08-02  Rainer Orth  
9838
        * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9839
        ASM_FINAL_SPEC.
9840
        (lang_specific_pre_link): Use set_input to set input_filename.
9841
        Append `main' here.
9842
        * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9843
        (main): Fix definition.
9844
        Strip `main' from classname.
9845
        Fixes PR java/227.
9846
 
9847
2001-08-11  Zack Weinberg  
9848
 
9849
        * lex.h: Don't include setjmp.h.  Don't define
9850
        SET_FLOAT_HANDLER or prototype set_float_handler.
9851
 
9852
2001-08-09  Alexandre Petit-Bianco  
9853
 
9854
        * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
9855
        `poplevel' in the right order.
9856
 
9857
2001-08-09  Richard Henderson  
9858
 
9859
        * Make-lang.in (class.o): Depend on TARGET_H.
9860
        * class.c (emit_register_classes): Use target hooks instead of
9861
        assemble_constructor and assemble_destructor.
9862
 
9863
2001-08-08  Alexandre Petit-Bianco  
9864
 
9865
        * check-init.c (flags.h): Include
9866
        (check_init): Don't report uninitialized static class
9867
        initialization flags, don't free bit index when doing static class
9868
        initialization optimization.
9869
        (check_for_initialization): Return type changed to `unsigned int.'
9870
        (attach_initialized_static_class): New function.
9871
        * class.c (add_method_1): Create the initialized static class
9872
        table if necessary.
9873
        (finish_class): Always emit deferred inline methods.
9874
        * decl.c (emit_init_test_initialization): Moved to expr.c
9875
        (complete_start_java_method): Don't traverse
9876
        DECL_FUNCTION_INIT_TEST_TABLE.
9877
        (lang_mark_tree): Mark hash tables in function decls.
9878
        * expr.c (emit_init_test_initialization): Moved from decl.c.
9879
        (build_class_init): Create LAG_DECL_SPECIFIC for the static class
9880
        initialization flag, set DECL_CONTEXT and
9881
        LOCAL_CLASS_INITIALIZATION_FLAG.
9882
        (java_lang_expand_expr): Emit initialization code for static class
9883
        initialized flags when entering block, if necessary.
9884
        * gcj.texi (-fno-optimize-static-class-initialization): Documented.
9885
        * java-tree.h (flag_optimize_sci): New global variable declaration.
9886
        (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
9887
        (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
9888
        (LOCAL_FINAL_P): Fixed typo in comment.
9889
        (FINAL_VARIABLE_P): Likewise.
9890
        (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
9891
        (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
9892
        (struct lang_decl): New fields `ict', `smic' and `cif.'
9893
        (check_for_initialization): New returned value for global.
9894
        (attach_initialized_static_class): New global function.
9895
        (STATIC_CLASS_INIT_OPT_P): New macro.
9896
        * lang-options.h (-fno-optimize-static-class-initialization): New flag.
9897
        * lang.c (java_decode_option): Handle
9898
        `-fno-optimize-static-class-initialization'
9899
        * parse.y (start_complete_expand_method): New function.
9900
        (java_expand_method_bodies): Likewise.
9901
        (attach_init_test_initialization_flags): Likewise.
9902
        (adjust_init_test_initialization): Likewise.
9903
        (emit_test_initialization): Likewise.
9904
        (java_complete_expand_methods): Nullify abstract and native method
9905
        bodies.
9906
        (java_complete_expand_method): New locals `fbody', `block_body'
9907
        and `exception_copy.' Reorganized: directly return on empty method
9908
        bodies, call `start_complete_expand_method', remember definitely
9909
        initialized static class in function, don't expand method bodies.
9910
        (java_expand_classes): Call `java_expand_method_bodies' before
9911
        `finish_class' when compiling to native.
9912
        (resolve_expression_name): Use `orig' after building outer class
9913
        field access.
9914
        (patch_invoke): Remember static method invocations.
9915
 
9916
2001-08-06  Richard Henderson  
9917
 
9918
        * class.c (emit_register_classes): Pass a symbol_ref and priority
9919
        to assemble_constructor.
9920
 
9921
2001-08-02  Alexandre Petit-Bianco  
9922
 
9923
        * java-tree.h (all_class_filename): New macro.
9924
        (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
9925
        (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
9926
        newly created IDENTIFIER_NODE to `all_class_filename.'
9927
 
9928
2001-08-01  Jeff Sturm  
9929
 
9930
        * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
9931
        Use ggc_add_tree_root to register roots.
9932
 
9933
2001-07-31  Alexandre Petit-Bianco  
9934
 
9935
        * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
9936
        second operand calling check_init.
9937
        * decl.c (complete_start_java_method): Swaped second and third
9938
        arguments while creating WITH_CLEANUP_EXPR node.
9939
        * jcf-write.c (generate_bytecode_insns): Use second operand
9940
        instead of third when handling WITH_CLEANUP_EXPR.
9941
        * parse.y (java_complete_lhs): Expand second operand of
9942
        WITH_CLEANUP_EXPR nodes.
9943
        (patch_synchronized_statement): Swaped second and third arguments
9944
        while creating WITH_CLEANUP_EXPR node.
9945
 
9946
2001-07-18  Alexandre Petit-Bianco  
9947
 
9948
        * parse.y (create_interface): Avoid cyclic inheritance report when
9949
        syntax error encountered during class definition.
9950
        Fixes PR java/2956
9951
 
9952
2001-08-02  Rainer Orth  
9953
 
9954
        * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9955
        ASM_FINAL_SPEC.
9956
        (lang_specific_pre_link): Use set_input to set input_filename.
9957
        Append `main' here.
9958
        * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9959
        (main): Fix definition.
9960
        Strip `main' from classname.
9961
        Fixes PR java/227.
9962
 
9963
2001-07-18  Tom Tromey  
9964
 
9965
        For PR java/2812:
9966
        * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
9967
        * lex.c (java_new_lexer): Use ICONV_CONST.
9968
        (java_read_char): Likewise.
9969
        * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
9970
        (jv-scan$(exeext)): Likewise.
9971
 
9972
2001-07-17  Alexandre Petit-Bianco  
9973
 
9974
        * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
9975
        * parse.y (check_class_interface_creation): Allow `private' if the
9976
        enclosing is not an interface.
9977
        (create_interface): Interface tagged public if the enclosing
9978
        context is an interface.
9979
        (create_class): Class tagged public if the enclosing context
9980
        is an interface.
9981
        Fixes PR java/2959
9982
 
9983
2001-07-17  Alexandre Petit-Bianco  
9984
 
9985
        * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
9986
        Fixes PR java/2665
9987
 
9988
2001-07-14  Tim Josling  
9989
 
9990
        * check-init.c (check_init): Remove references to EXPON_EXPR.
9991
 
9992
2001-07-13  Alexandre Petit-Bianco  
9993
 
9994
        * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
9995
        TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
9996
        Fixes PR java/3602
9997
 
9998
2001-07-13  Tom Tromey  
9999
 
10000
        * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
10001
        invocation.
10002
 
10003
2001-07-12  Alexandre Petit-Bianco  
10004
 
10005
        * parse.y (patch_method_invocation): Don't override primary if one
10006
        is already provided, but let this$ be built. Fixed comment.
10007
 
10008
2001-07-12  Alexandre Petit-Bianco  
10009
 
10010
        * parse.y (empty_statement:): Report empty statement error only
10011
        when found at class declaration level.
10012
        Fixes PR java/3635
10013
 
10014
2001-07-12  Tom Tromey  
10015
 
10016
        * expr.c (expand_load_internal): New function.
10017
        (LOAD_INTERNAL): Use it.
10018
 
10019
2001-07-11  Alexandre Petit-Bianco  
10020
 
10021
        * parse.y (verify_constructor_super): Compare anonymous class ctor
10022
        args with `valid_method_invocation_conversion_p.'
10023
        Fixes PR java/3285
10024
 
10025
2001-07-10  Alexandre Petit-Bianco  
10026
 
10027
        * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
10028
        `-fsyntax-only.' Fixes PR java/3248
10029
 
10030
2001-07-10  Alexandre Petit-Bianco  
10031
 
10032
        * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
10033
 
10034
2001-07-10  Alexandre Petit-Bianco  
10035
 
10036
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
10037
        current function is static. Fixes PR java/1970
10038
 
10039
2001-07-09  Alexandre Petit-Bianco  
10040
 
10041
        * parse.y (patch_method_invocation): Add enclosing context to ctor
10042
        calls if necessary. Fixes PR java/2953
10043
 
10044
2001-07-09  Alexandre Petit-Bianco  
10045
 
10046
        * parse.y (resolve_package): Abort if qualified expression member
10047
        isn't right.
10048
        (qualify_ambiguous_name): Don't qualify as type if `this' in use.
10049
        Fixes PR java/1391
10050
 
10051
2001-07-07  Zack Weinberg  
10052
 
10053
        * verify.c: Don't use // comments.
10054
 
10055
2001-07-05  Tom Tromey  
10056
 
10057
        * lang.c (flag_assume_compiled): Removed.
10058
        * java-tree.h (flag_assume_compiled): Removed.
10059
        * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
10060
        -fhash-synchronization, -fuse-divide-subroutine,
10061
        -fcheck-references, -femit-class-file, -femit-class-files,
10062
        -fassume-compiled.  Updated --encoding information.  Changed
10063
        -foutput-class-dir to `-d'.
10064
 
10065
2001-07-04  Daniel Berlin  
10066
 
10067
        * jcf-parse.c (parse_class_file): Add lineno parameter to
10068
        debug_start_source_file call.
10069
 
10070
2001-07-04  Joseph S. Myers  
10071
 
10072
        * gcj.texi: Use gpl.texi.
10073
        * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
10074
        dependencies and use doc/include in search path.
10075
 
10076
2001-07-03  Jeff Sturm  
10077
 
10078
        * parse.y (fix_constructors): Test if a CALL_EXPR invokes
10079
        `this'.  If so, don't build instance initializers.
10080
 
10081
2001-07-03  Alexandre Petit-Bianco  
10082
 
10083
        * parse.y (resolve_expression_name): Improved error message for
10084
        inner class cases. Fixes PR java/1958
10085
 
10086
2001-06-28  Gabriel Dos Reis  
10087
 
10088
        * lang.c: #include diagnostic.h
10089
        (lang_print_error): Add a `diagnostic_context *' parameter.
10090
        (java_dummy_print): Likewise.
10091
        * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
10092
 
10093
2001-06-27  Alexandre Petit-Bianco  
10094
 
10095
        * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
10096
        * jcf.h (typedef struct JCF): New bitfield `finished.'
10097
        (JCF_FINISH): Set `finished.'
10098
        (JCF_ZERO): Reset `finished.'
10099
        Fixes PR java/2633
10100
 
10101
2001-06-27  Alexandre Petit-Bianco  
10102
 
10103
        * parse.y (class_body_declaration:): Don't install empty instance
10104
        initializers.
10105
        Fixes PR java/1314
10106
 
10107
2001-06-27  Alexandre Petit-Bianco  
10108
 
10109
        * class.c (set_super_info): Call `set_class_decl_access_flags.'
10110
        (set_class_decl_access_flags): New function.
10111
        * java-tree.h (set_class_decl_access_flags): New prototype.
10112
        * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
10113
        (parse_class_file): New local `decl_max_locals.' Take wide types
10114
        into account to compute DECL_MAX_LOCALS.
10115
        * parse.y (type_import_on_demand_declaration:): Ignore duplicate
10116
        imports on demand.
10117
 
10118
2001-06-22  Jan van Male  
10119
 
10120
        * zipfile.h: Use GCC_JCF_H instead of JCF_H.
10121
 
10122
2001-06-20  Alexandre Petit-Bianco  
10123
 
10124
        * class.c (java_hash_tree_node): Fixed indentation in leading comment.
10125
        * parse.y (do_resolve_class): Moved comments out to leading comment
10126
        section. Removed local `start', New local `_ht' and
10127
        `circularity_hash.'  Record `enclosing' in hash table and search
10128
        it to detect circularity.  Use `enclosing' as an argument to
10129
        `lookup_cl.' Free the hash table when done.
10130
 
10131
2001-06-19  Tom Tromey  
10132
 
10133
        * lex.c (java_read_char): Disallow invalid and overlong
10134
        sequences.  Fixes PR java/2319.
10135
 
10136
2001-06-05  Jeff Sturm  
10137
 
10138
        * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
10139
 
10140
2001-06-04  Alexandre Petit-Bianco  
10141
 
10142
        * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
10143
        arguments accordingly.
10144
 
10145
2001-06-02  Joseph S. Myers  
10146
 
10147
        * gcj.texi: Move contents to just after title page.
10148
 
10149
2001-06-01  Alexandre Petit-Bianco  
10150
 
10151
        * parse.y (type_literals:): Use `build_incomplete_class_ref' with
10152
        builtin type.
10153
        (patch_incomplete_class_ref): Build the class ref, build the class
10154
        init if necessary, complete the tree.
10155
        Fixes PR java/2605
10156
 
10157
2001-05-31  Alexandre Petit-Bianco  
10158
 
10159
        * parse.y (lookup_field_wrapper): Test `name' code.
10160
        (resolve_qualified_expression_name): Test `qual_wfl' code.
10161
        (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
10162
        handle `qual_wfl' by code.
10163
        (maybe_build_primttype_type_ref): Test `wfl' code.
10164
 
10165
2001-05-23  Theodore Papadopoulo  
10166
 
10167
        * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
10168
        fdl.texi.
10169
        (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls.  Create
10170
        the dvi file in the java directory.
10171
 
10172
2001-05-25  Sam TH  
10173
 
10174
        * gen-table.pl javaop.h jcf.h lex.h,
10175
        parse.h: Fix header include guards.
10176
 
10177
2001-05-23  Joseph S. Myers  
10178
 
10179
        * jv-scan.c (version): Update copyright year.
10180
 
10181
2001-05-21  Per Bothner  
10182
 
10183
        * jcf-parse.c (read_class):  If class is from .class or .zip file
10184
        and it's already been read, don't push/pop parser context.
10185
 
10186
2001-05-18  Per Bothner  
10187
 
10188
        * jvspec.c (lang_specific_pre_link):  Re-arrange the linker
10189
        command line so the jvgenmain-generated main program comes first.
10190
 
10191
2001-05-15  Tom Tromey  
10192
 
10193
        * class.c (build_utf8_ref): Don't generate identifier based on
10194
        utf8const contents.
10195
 
10196
2001-05-12  Richard Henderson  
10197
 
10198
        * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
10199
        * expr.c (java_lang_expand_expr): Expand it.
10200
        (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
10201
        calling build_exception_object_ref.
10202
        * parse.y (catch_clause_parameter): Likewise.
10203
        (build_dot_class_method): Likewise.
10204
        (try_reference_assignconv): Likewise.
10205
        * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
10206
        * jcf-write.c (generate_bytecode_insns): Likewise.
10207
 
10208
2001-05-07  Alexandre Petit-Bianco  
10209
 
10210
        * parse.y (build_unresolved_array_type): Set
10211
        EXPR_WFL_QUALIFICATION on the newly created wfl.
10212
        Fixes PR java/2538. Fixes PR java/2535.
10213
 
10214
2001-05-07  Alexandre Petit-Bianco  
10215
 
10216
        * parse.y (fix_constructors): Removed unnecessary assignment to
10217
        local. Moved assignment to `this$', fixed comments and
10218
        indentation.
10219
        (build_wfl_wrap): Fixed indentation.
10220
        Fixes PR java/2598, java/2579 and java/2658.
10221
 
10222
2001-05-03  Mo DeJong  
10223
 
10224
        * lex.c (java_new_lexer): Call iconv_close on temp handle used to
10225
        check for byte swap.
10226
 
10227
2000-05-02  Jeff Sturm  
10228
 
10229
        * expr.c (build_class_init): Move MODIFY_EXPR
10230
        outside of COND_EXPR.  Remove variable `call'.
10231
 
10232
2001-05-02  Kaveh R. Ghazi  
10233
 
10234
        * decl.c: NULL_PTR -> NULL.
10235
        * jcf-write.c: Likewise.
10236
 
10237
2001-05-01  Tom Tromey  
10238
 
10239
        * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
10240
        (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
10241
        * gcj.texi: Updated copyright text.  Include fdl.texi.
10242
        (Top): Link to new node.
10243
 
10244
2001-05-01  Per Bothner  
10245
 
10246
        * parse.h (REGISTER_IMPORT):  Use tree_cons instead of chainon.
10247
 
10248
2001-05-01  Per Bothner  
10249
 
10250
        * parse.y (java_pop_parser_context):  The TREE_VALUE of a link in the
10251
        import_list contains the name, not the TREE_PURPOSE.
10252
 
10253
2001-04-29  Kaveh R. Ghazi  
10254
 
10255
        * jcf-io.c (read_zip_member): Cast to long in comparison with
10256
        signed value.
10257
 
10258
        * jvspec.c (lang_specific_driver): Initialize variables.
10259
 
10260
        * mangle.c (find_compression_record_match): Likewise.
10261
 
10262
        * typeck.c (build_null_signature): Provide static prototype.  Mark
10263
        parameter with ATTRIBUTE_UNUSED.
10264
 
10265
        * verify.c (verify_jvm_instructions): Initialize variable.
10266
 
10267
2001-04-27  Bryce McKinlay  
10268
 
10269
        * parse.y (do_resolve_class): Check for cyclic inheritance during
10270
        inner class resolution.
10271
 
10272
2001-04-27  Per Bothner  
10273
 
10274
        * parse.y (java_expand_classes):  Don't change ctxp_for_generation
10275
        while iterating, since that could cause gc to lose stuff.
10276
 
10277
2001-04-26  Per Bothner  
10278
 
10279
        Fix method search wrt scope of inner classes to match JLS2.
10280
        * typeck.c (build_null_signature):  New static function.
10281
        (has_method):  New function.  Uses build_null_signature and lookup_do.
10282
        * java-tree.h (has_method):  New declaration.
10283
        * parse.y (find_applicable_accessible_methods_list):  Do not search
10284
        context of inner classes here.
10285
        (patch_method_invocation):  Search scope, ie. current and outer clases,
10286
        for method matching simple name, to find class.
10287
 
10288
2001-04-26  Per Bothner  
10289
 
10290
        * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
10291
        Fix thinko:  If a single case, use if_icmpeq, not ifeq.
10292
 
10293
        * constants.c (find_methodref_with_class_index):  New function.
10294
        (find_methodref_index):  Use find_methodref_with_class_index.
10295
        * java-tree.h (find_methodref_with_class_index):  New declaration.
10296
        * jcf-write.c (generate_bytecode_insns case CALL_EXPR):  Don't change
10297
        DECL_CONTEXT, instead use new find_methodref_with_class_index function.
10298
        If context changed from interface to class, don't use invokeinterface.
10299
 
10300
2001-04-25  Per Bothner  
10301
 
10302
        * verify.c (verify_jvm_instructions):  For field instructions,
10303
        check that field index is valid.  For invoke instructions, check that
10304
        method index is valid.
10305
 
10306
2001-04-25  Alexandre Oliva  
10307
 
10308
        * config-lang.in (target_libs): Copy from $libgcj_saved.
10309
 
10310
2001-04-25  Bryce McKinlay  
10311
 
10312
        * decl.c (init_decl_processing): Add new class "protectionDomain"
10313
        field.
10314
        * class.c (make_class_data): Set initial value for "protectionDomain".
10315
 
10316
2001-04-22  Kaveh R. Ghazi  
10317
 
10318
        * jvspec.c (lang_specific_driver): Fix memory allocation
10319
        deficit, by using concat in lieu of xmalloc/sprintf.
10320
 
10321
2001-04-20  Per Bothner  
10322
 
10323
        Fixes to compile multiple .class files at once.
10324
        * decl.c (init_decl_processing):  Don't set CLASS_LOADED_P.
10325
        * java-tree.h (CLASS_PARSED_P):  New macro.
10326
        (CLASS_LOADED_P):  Re-define to use TYPE_SIZE and CLASS_PARSED_P.
10327
        * jcf-parse.c (jcf_parse_source):  Inline into read_class.
10328
        (read_class):  Avoid some code duplication.
10329
        Don't call JCF_FINISH for a .class file - might be needed later.
10330
        (jcf_parse):  Don't call layout_class here.  Check/set CLASS_PARSED_P
10331
        rather than CLASS_LOADED_P, since latter implies class laid out.
10332
        (yyparse):  Do layout_class and JCF_FINISh here instead, in pass 2.
10333
        * parse.y:  Don't need to set CLASS_LOADED_P for array types.
10334
 
10335
2001-04-11  Kaveh R. Ghazi  
10336
 
10337
        * Make-lang.in (java/boehm.o): Depend on toplev.h.
10338
 
10339
        * boehm.c: Include toplev.h.
10340
 
10341
2001-04-06  Tom Tromey  
10342
            Alexandre Petit-Bianco  
10343
 
10344
        Fix for PR gcj/1404 and PR gcj/2332:
10345
        * parse.y (build_array_from_name): If we use the type_wfl then
10346
        accumulate dimensions from the original type as well.
10347
        (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
10348
 
10349
2001-04-06  Tom Tromey  
10350
 
10351
        * parse.y (analyze_clinit_body): Return true if the second operand
10352
        of a METHOD_EXPR is nonzero.
10353
 
10354
2001-04-06  Tom Tromey  
10355
 
10356
        * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
10357
        directory.
10358
        ($(srcdir)/java/parse.c): Likewise.
10359
 
10360
2001-04-05  Alexandre Petit-Bianco  
10361
 
10362
        * gcj.texi: Use `which-gcj' instead of `which-g77.'
10363
        (version-gcc): Initialized.
10364
        (which-gcj): Likewise.
10365
 
10366
2001-04-04  Alexandre Petit-Bianco  
10367
 
10368
        * java-tree.h (struct lang_decl): New macro
10369
        `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
10370
        * parse.y (build_instance_initializer): New function.
10371
        (add_instance_initializer): Use it.
10372
        (java_fix_constructors): Set `current_class' before fix pass.
10373
        (fix_constructors): Just return if already fixed. Move `super()'
10374
        invocation ahead. Use `build_instance_initializer.'
10375
        Fixes PR java/1315.
10376
 
10377
2001-04-04  Alexandre Petit-Bianco  
10378
 
10379
        * parse.y (resolve_qualified_expression_name): Pass field's
10380
        DECL_CONTEXT to `not_accessible_p.'
10381
        (not_accessible_p): Changed parameters order in `inherits_from_p'
10382
        invocation.
10383
 
10384
2001-03-27  Andrew Haley  
10385
 
10386
        * lang-options.h: Add flag_check_references.
10387
 
10388
2001-04-04  Per Bothner  
10389
 
10390
        * java-tree.h (CONSTANT_VALUE_P):  New macro.
10391
        * jcf-write.c (generate_classfile):  Use CONSTANT_VALUE_P.
10392
        * parse.y (maybe_build_class_init_for_field):  New static function.
10393
        (resolve_expression_name, resolve_field_access):  Use
10394
        maybe_build_class_init_for_field instead of build_class_init
10395
        This does not do the init if the field is compile-time-constant.
10396
        (resolve_field_access):  Simplify.
10397
 
10398
        * parse.y (fold_constant_for_init):  Merge test into switch.
10399
 
10400
2001-04-03  Zack Weinberg  
10401
 
10402
        * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
10403
        on gansidecl.h.
10404
        * buffer.c, jvgenmain.c: Don't include gansidecl.h.
10405
 
10406
2001-04-02  Zack Weinberg  
10407
 
10408
        * expr.c (pop_type_0): Save the result of the first
10409
        lang_printable_name call in a scratch buffer, so it
10410
        won't be clobbered by the second call.
10411
 
10412
2001-03-30  Alexandre Petit-Bianco  
10413
 
10414
        * parse-scan.y (array_type:): Rewritten.
10415
        (type_declaration:): `empty_statement' replaces `SC_TK.'
10416
        (class_member_declaration:): `empty statement' added.
10417
        (method_body:): Simplified.
10418
        (static_initializer:): Likewise.
10419
        (primary_no_new_array:): Use `type_literals.'
10420
        (type_literals:): New rule.
10421
        (dims:): Set and update `bracket_count.'
10422
        Fixes PR java/1074. Fixes PR java/2412.
10423
 
10424
2001-03-28  Hans Boehm  
10425
 
10426
        * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
10427
        (get_boehm_type_descriptor): Set type on returned value to be a
10428
        pointer length integer.
10429
 
10430
2001-03-28  Kaveh R. Ghazi  
10431
 
10432
        * expr.c (pop_type_0): Call `concat' rather than building the
10433
        string manually.
10434
        (pop_type): Add format specifier in call to `error'.
10435
 
10436
        * parse.y (patch_method_invocation): Avoid casting away
10437
        const-ness.
10438
 
10439
2001-03-28  Jeffrey Oldham  
10440
 
10441
        * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
10442
 
10443
2001-03-28  Richard Henderson  
10444
 
10445
        IA-64 ABI Exception Handling:
10446
        * Make-lang.in (except.o): Don't depend on eh-common.h.
10447
        * check-init.c (check_init): Handle EXC_PTR_EXPR.
10448
        * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
10449
        [soft_exceptioninfo_call_node]: Remove.
10450
        [eh_personality_libfunc, lang_eh_runtime_type]: New.
10451
        (end_java_method): No emit_handlers.
10452
        * except.c (java_set_exception_lang_code): Remove.
10453
        (method_init_exceptions): Don't call it.
10454
        (prepare_eh_table_type): No CATCH_ALL_TYPE.
10455
        (build_exception_object_ref): New.
10456
        (expand_end_java_handler): Update for except.h name changes.
10457
        (emit_handlers, expand_resume_after_catch): Remove.
10458
        * expr.c (java_lang_expand_expr): Update for except.h name changes.
10459
        (process_jvm_instruction): Use build_exception_object_ref.
10460
        * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
10461
        (soft_exceptioninfo_call_node): Remove.
10462
        (build_exception_object_ref): Declare.
10463
        * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
10464
        soft_exceptioninfo_call_node.  Move processing ...
10465
        [EXC_PTR_EXPR]: ... here.
10466
        * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
10467
        * parse.y (catch_clause_parameter): Use build_exception_object_ref.
10468
        (source_end_java_method): No java_set_exception_lang_code or
10469
        emit_handlers.
10470
        (build_dot_class_method): Use build_exception_object_ref.
10471
        (try_reference_assignconv): Check EXC_PTR_EXPR not
10472
        soft_exceptioninfo_call_node.
10473
 
10474
2001-03-28  Richard Henderson  
10475
 
10476
        * java-tree.h (throw_node): Define as a single member of
10477
        java_global_trees instead of a separate array.
10478
        (JTI_THROW_NODE): New.
10479
        * decl.c (throw_node): Don't declare.
10480
        (init_decl_processing): Init a scalar throw_node.
10481
        Don't register it for gc.
10482
        * check-init.c (check_init): Reference scalar throw_node.
10483
        * expr.c (build_java_athrow): Likewise.
10484
        * jcf-write.c (generate_bytecode_insns): Likewise.
10485
        * parse.h (BUILD_THROW): Likewise.
10486
 
10487
2001-03-28  Richard Henderson  
10488
 
10489
        * decl.c (end_java_method): Do not save and restore
10490
        flag_non_call_exceptions.
10491
        * parse.y (source_end_java_method): Likewise.
10492
        * lang.c (flag_exceptions): Don't declare.
10493
        (java_init_options): Set flag_non_call_exceptions.  Set
10494
        flag_exceptions here ...
10495
        (java_init): ... not here.
10496
 
10497
2001-03-27  Richard Henderson  
10498
 
10499
        * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
10500
        exceptions_via_longjmp.
10501
 
10502
        * lang.c (flag_new_exceptions): Don't declare it.
10503
        (java_init_options): Or set it.
10504
 
10505
2001-03-27  Richard Henderson  
10506
 
10507
        * decl.c (end_java_method): Rename asynchronous_exceptions to
10508
        flag_non_call_exceptions.
10509
        * parse.y (source_end_java_method): Likewise.
10510
 
10511
2001-03-27  Kaveh R. Ghazi  
10512
 
10513
        * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
10514
 
10515
2001-03-26  Mark Mitchell  
10516
 
10517
        * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
10518
 
10519
2001-03-26  Alexandre Petit-Bianco  
10520
 
10521
        * parse.y (find_as_inner_class): Follow current package
10522
        indications not to mistakingly load an unrelated class.
10523
 
10524
2001-03-25  Kaveh R. Ghazi  
10525
 
10526
        * constants.c (PUTN): Use memcpy, not bcopy.
10527
 
10528
        * lex.c (java_read_char): Use memmove, not bcopy.
10529
 
10530
        * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
10531
 
10532
2001-03-23  Per Bothner  
10533
 
10534
        * verify.c (verify_jvm_instructions):  Replace 3 pop_type by POP_TYPE
10535
        macro for better error pin-pointing.
10536
        * java-tree.h:  Fix typo in comment.
10537
 
10538
        * jcf-write.c (generate_bytecode_insns):  Changes to TRY_FINALLY_EXPR.
10539
        Don't include jsr/goto in exception range.
10540
        Check if start and end of exception range are the same (also TRY_EXPR).
10541
        Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
10542
        However, do emit the following goto even if try_block is empty.
10543
        Defer freeing exception_decl until after the finalizer, to make
10544
        sure the local isn't reused in the finalizer.  Fixes PR java/1208.
10545
 
10546
        * parse.y (java_complete_lhs):  If the try-clause is empty, just
10547
        return the finally-clause and vice versa.
10548
 
10549
2001-03-23  Alexandre Petit-Bianco  
10550
 
10551
        * gcj.texi (Input Options): documented the check for attribute
10552
        `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
10553
        * java-tree.h (flag_force_classes_archive_check): Declared extern.
10554
        * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
10555
        (jcf_parse): Check for the right classes archive if necessary.
10556
        * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
10557
        (jcf_parse_fields): Fixed indentation.
10558
        * jcf-write.c (append_gcj_attribute): New function.
10559
        (generate_classfile): Compute the attribute count, invoke
10560
        `append_gcj_attribute'.
10561
        * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
10562
        turned into bit-fields. New bit-field `right_zip.'
10563
        (JCF_ZERO): Set `right_zip' to zero.
10564
        * lang-options.h (-fforce-classes-archive-check): Added flag.
10565
        * lang.c (flag_force_classes_archive_check): New flag.
10566
        (lang_f_options): New entry `force-classes-archive-check.'
10567
        Fixes PR java/1213.
10568
 
10569
2001-02-07  Andrew Haley  
10570
 
10571
        * gcj.texi (Configure-time Options): Add -fcheck-references.
10572
        * expr.c (build_java_indirect_ref): New function.
10573
        (java_check_reference): New function.
10574
        (build_java_array_length_access): Use build_java_indirect_ref to
10575
        check for null references.
10576
        (build_java_arrayaccess): Likewise.
10577
        (build_get_class): Likewise.
10578
        (build_field_ref): Likewise.
10579
        (invoke_build_dtable): Likewise.
10580
        (build_invokeinterface): Likewise.
10581
        * lang.c (lang_f_options): Add flag_check_references.
10582
        * jvspec.c (jvgenmain_spec): Add flag_check_references.
10583
        * java-tree.h (flag_check_references): New variable.
10584
        * lang.c (flag_check_references): Likewise.
10585
        * parse.y (patch_invoke): Use java_check_reference.
10586
        (patch_assignment): Allow for extra nesting in
10587
        _Jv_CheckArrayStore.
10588
 
10589
2001-03-23  Bryce McKinlay  
10590
 
10591
        * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
10592
        * lex.c (cxx_keywords): Likewise.
10593
 
10594
2001-03-21  Alexandre Petit-Bianco  
10595
 
10596
        * parse.y (qualify_ambiguous_name): Broaden `length'
10597
        recognition. Help MODIFY_EXPR be resolved as expression names.
10598
        Fixes PR java/2066. Fixes PR java/2400.
10599
 
10600
2001-03-21  Bryce McKinlay  
10601
 
10602
        * gjavah.c (process_file): Mark interface definitions with
10603
        "__attribute__ ((java_interface))".
10604
 
10605
2001-03-21  Alexandre Petit-Bianco  
10606
 
10607
        * class.c (layout_class): Fixed push_super_field's second
10608
        argument. Fixes PR java/2333.
10609
        (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
10610
        too early to lay innerclasses out.
10611
 
10612
2001-03-20  Tom Tromey  
10613
            Alexandre Petit-Bianco 
10614
 
10615
        * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
10616
        inside an array reference. Insertion of the array store check
10617
        rewritten. Fixes PR java/2299.
10618
 
10619
2001-03-20  Tom Tromey  
10620
 
10621
        * lex.c (java_read_unicode): Only accept leading `u's.
10622
 
10623
2001-03-20  Tom Tromey  
10624
 
10625
        * jcf-parse.c (read_class): Initialize `class'.
10626
 
10627
2001-03-20  Matt Kraai  
10628
 
10629
        * jcf_parse.c (jcf_parse): Eliminate unused variable.
10630
 
10631
2001-03-19  Mark Mitchell  
10632
 
10633
        * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
10634
        (layout_class): Likewise.
10635
        (layout_class_method): Likewise.
10636
        (emit_register_classes): Likewise.
10637
        * decl.c (builtin_function): Likewise.
10638
        (give_name_to_locals): Likewise.
10639
 
10640
2001-03-19  Per Bothner  
10641
 
10642
        * jcf-parse.c (load_inner_classes):  Check CLASS_LOADED_P
10643
        before trying to load an inner class.
10644
 
10645
        Fixes to process to command-line .class files in two passes.
10646
        * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P):  New flags.
10647
        (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P):  Rename to ..
10648
        (CLASS_FROM_CURRENTLY_COMPILED_P):  ... because it is more general now.
10649
        * class.c (is_compiled_class):  Fix for renamed flag.
10650
        * parse.y (maybe_create_class_interface_decl):  Likewise.
10651
        * jcf-parse.c (yyparse):  Also set if compiling .class files.
10652
        * jcf-parse.c (read_class);  Read current_class.
10653
        (jcf_parse):  Make static.
10654
        (load_inner_classes):  New function, with code moved from jcf_parse,
10655
        because we need to inner classes after the command-line files are read.
10656
        (yyparse):  Set finput to NULL when it doesn't need to be closed.
10657
        Reduce use of main_jcf (basically only for archive) and
10658
        use finput instead of main_jcf->read_state.
10659
        Inline jcf_figure_file_type into yyparse.
10660
        Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
10661
        Defer load_inner_classes and parse_class_file to a second pass,
10662
        after we've correctly mapped command-line .clas fiels to classes.
10663
        (jcf_figure_file_type):  Removed.
10664
        * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE):  Removed flags.
10665
        (JCF_ZERO):  Also clear zipd field.
10666
        * zipfile.h:  Conditionalize on JCF_H insread of JCF_ZIP.
10667
 
10668
2001-03-18  Matt Kraai  
10669
 
10670
        * jcf-parse.c (yyparse): Change ch from char * to char.
10671
 
10672
2001-03-19  Per Bothner  
10673
 
10674
        * jvspec.c (lang_specific_driver):  Check for .zip and .jar files.
10675
        Add constructed filelist-file at end, following -xjava.  Thus any .o
10676
        and library files are not affected by the -xjava.  Also wrap
10677
        explicit @FILE with -xjava and -xnone.
10678
 
10679
2001-03-19  Andrew Haley  
10680
 
10681
        * class.c (build_static_field_ref): Call make_decl_rtl() after
10682
        setting the DECL_EXTERNAL flag.
10683
 
10684
2001-03-17  Per Bothner  
10685
 
10686
        * decl.c (clear_binding_level):  Fix initializer (broke 03-15).
10687
 
10688
        * jcf-write.c (generate_bytecode_insns):  Handle emitting iinc
10689
        when result is is needed (target is STACK_TARGET).
10690
 
10691
        * parse.h (JDEP_SOLV):  Removed.
10692
        * parse.y (register_incomplete_type):  Use JDEP_TO_RESOLVE instead.
10693
 
10694
        * parse.y (incomplete_class_list): Removed.
10695
        (obtain_incomplete_type): Don't use or set incomplete_class_list.
10696
        It doesn't work if resolve_class changes the name of an array type
10697
        that is on the list and then someone else looks for the modified name.
10698
        Also, seems liable to break when compiling multiple source files at
10699
        once.  So the simplest is to just remove incomplete_class_list -
10700
        it is only a minor space win and it is not even clear it saves time.
10701
 
10702
        * parse.y (resolve_class):  Remove unneeded promote_type.
10703
 
10704
2001-03-15  Per Bothner  
10705
 
10706
        * java-tree.h (BLOCK_IS_IMPLICIT):  New flag.
10707
        * parse.h (BLOCK_EXPR_ORIGIN):  Removed macro.
10708
        * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
10709
        Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
10710
 
10711
        * jcf-parse.c (yyparse):  Set/reset input_filename for source file.
10712
        * parse.y (java_expand_classes):  Likewise.
10713
 
10714
        * parse.y (expand_start_java_method):  Was only called once and had a
10715
        misleading name, so inline in caller java_complete_expand_method.
10716
        (enter_a_block):  Likewise inline in enter_block and remove.
10717
 
10718
        Remove junk from when gcc/java was created (by copying from C/C++).
10719
        * decl.c (keep_next_level_flag, keep_next_if_subblocks):  Remove.
10720
        (struct binding_level):  Remove fields keep, keep_if_subblocks,
10721
        more_cleanups_ok, have_cleanups (which have never been used).
10722
        (pushlevel, poplevel):  Remove related useless code.
10723
 
10724
        * class.c (make_class_data):  The class_dtable_decl (i.e. the
10725
        vtable for Class) should be external, except when compiling Class.
10726
 
10727
        * jvspec.c (lang_specific_driver):  Fix -C handling.
10728
        Check -save-temps to see if temp @FILE should be deleted.
10729
        Follow-up to/fix for February 16 patch.
10730
 
10731
        * verify.c (verify_jvm_instructions):  Better error msgs for dup.
10732
        (type_stack_dup):  Remove no-longer neded error check.
10733
 
10734
2001-03-15  Bryce McKinlay  
10735
 
10736
        * mangle.c (mangle_record_type): Rename 'from_pointer' argument
10737
        to 'for_pointer'. If this type is for a pointer (argument) mangling,
10738
        don't surround the element with 'N..E' if the type name is
10739
        unqualified.
10740
 
10741
2001-03-14  Mark Mitchell  
10742
 
10743
        * class.c (build_static_field_ref): Use COPY_DECL_RTL,
10744
        DECL_RTL_SET_P, etc.
10745
        (make_method_value): Likewise.
10746
        (get_dispatch_table): Likewise.
10747
 
10748
        * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
10749
 
10750
2001-03-07  Tom Tromey  
10751
 
10752
        * config-lang.in (lang_requires): Define.
10753
 
10754
2001-03-07  Brad Lucier  
10755
 
10756
        * typeck.c (convert): Check flag_unsafe_math_optimizations,
10757
        not flag_fast_math.
10758
 
10759
2001-03-05  Per Bothner  
10760
 
10761
        Fix a problem where rest_of_decl_compilation applied to
10762
        class_dtable_decl causes problems because it was done too early,
10763
        before output file was opened.
10764
        * decl.c (init_decl_processing):  Remove init of class_dtable_decl.
10765
        * class.c (class_dtable_decl):  Add macro - element of class_roots.
10766
        (make_class_data):  Define class_dtable_decl.
10767
        * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl):  Removed.
10768
 
10769
2001-03-01  Zack Weinberg  
10770
 
10771
        * java/class.c, java/decl.c, java/java-tree.h: Replace all
10772
        uses of 'boolean' with 'bool'.
10773
 
10774
2001-03-01  Zack Weinberg  
10775
 
10776
        * lang-specs.h: Add zero initializer for cpp_spec field to all
10777
        array elements.
10778
 
10779
2001-02-16  Per Bothner  
10780
 
10781
        Handle compiling multiple input files at once, and @FILE syntax.
10782
        * gcj.texi:  Updated documentation to match.
10783
        * java-tree.h (flag_filelist_file, init_src_parse):  New declarations.
10784
        * jcf-parse.c (parse_source_file):  Split into ...
10785
        (parse_source_file_1):  New function - and:
10786
        (parse_source_file_2):  New function.
10787
        (yyparse):  On -ffilelist-file, open and scan named file.
10788
        On first pass over files, only do parse_source_file_1.
10789
        A new second pass calls parse_source_file_2 for each file to compile.
10790
        (init_jcf_parse):  Call init_src_parse.
10791
        * jvspec.c (INDIRECT_FILE_ARG):  New flag.
10792
        (lang_specific_driver):  Support @FILELIST-FILE syntax, as well
10793
        as multiple input file combined in one compilation.
10794
        * lang-options.h:  Add -ffilelist-file
10795
        * lang.c (flag_filelist_file):  New flag variable.
10796
        (lang_f_options):  Handle -ffilelist-file.
10797
        * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
10798
        * parse.h (struct parse_ctxt):  Remove fields incomplete_class and
10799
        gclass_list - use global fields of src_parse_roots instead.
10800
        * parse.y (src_parse_roots):  New array.
10801
        (incomplete_class_list, gclass_list):  New macros.
10802
        (push_parser_context, java_pop_parser_context,
10803
        java_parser_context_resume):  Don't fiddle with deleted fields.
10804
        (various):  Use incomplete_class gclass_list and global macros
10805
        instead of parse_ctxt fields - the lists are global.
10806
        (init_src_parse):  New function.
10807
 
10808
2001-02-23  Richard Kenner  
10809
 
10810
        * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
10811
 
10812
2001-02-20  Alexandre Petit-Bianco  
10813
 
10814
        * parse.y (check_inner_class_access): Moved declaration of local
10815
        `enclosing_decl_type' to the right location.
10816
 
10817
2001-02-19  Bryce McKinlay  
10818
 
10819
        * parse.y (parser_check_super_interface): Don't call
10820
        check_pkg_class_access for an inner interface.
10821
        (parser_check_super): Don't call check_pkg_class_access for inner
10822
        class.
10823
        (do_resolve_class): Simplify enclosing type loop. Don't call
10824
        check_pkg_class_access if CL and DECL are not set.
10825
        (find_in_imports_on_demand): Set DECL if class_type needed to be
10826
        loaded. Don't call check_pkg_class_access for an inner class.
10827
        (check_inner_class_access): Rewritten to implement member access
10828
        rules as per spec 6.6.1.
10829
        (check_pkg_class_access): Handle the empty package correctly.
10830
        (in_same_package): New function. Determine if two classes are in the
10831
        same package.
10832
 
10833
2001-02-18  Bryce McKinlay  
10834
 
10835
        * typeck.c (build_java_array_type): Don't try to poke a public `clone'
10836
        method into array types.
10837
        * parse.y (patch_method_invocation): Bypass access check on clone call
10838
        to array instance.
10839
 
10840
2001-02-15  Alexandre Petit-Bianco  
10841
 
10842
        * expr.c (build_instanceof): Check for arrays when trying fold to
10843
        false.
10844
 
10845
2001-02-15  Jim Meyering  
10846
 
10847
        * Make-lang.in (java.install-common): Depend on `installdirs'.
10848
        (java.install-info): Likewise.
10849
 
10850
2001-02-15  Bryce McKinlay  
10851
 
10852
        * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
10853
 
10854
2001-02-14  Tom Tromey  
10855
            Alexandre Petit-Bianco  
10856
 
10857
        Fix for PR java/1261.
10858
        * typeck.c (build_java_array_type): Add public `clone' method to
10859
        arrays.
10860
        * parse.y (resolve_qualified_expression_name): Use current_class
10861
        when checking for inaccessibility.
10862
        (patch_method_invocation): Fixed error message when accessibility
10863
        denied.  Added `from_super' argument.
10864
 
10865
2001-02-14  Alexandre Petit-Bianco  
10866
 
10867
        * parse.y (resolve_class): Don't build a fake decl. Use the one
10868
        already built.
10869
        * typeck.c (build_java_array_type): Build and assign decl to array
10870
        type.
10871
 
10872
2001-02-14  Alexandre Petit-Bianco  
10873
 
10874
        * parse.y (not_accessible_p): Changed leading comment. Added extra
10875
        `where' argument. Use it to enforce protected access rules.
10876
        (resolve_qualified_expression_name): Added extra argument to
10877
        not_accessible_p.
10878
        (patch_method_invocation): Use argument `primary' to provide
10879
        not_accessible_p with an extra argument.
10880
        (lookup_method_invoke): Added extra argument to not_accessible_p.
10881
        (search_applicable_method_list): Likewise.
10882
 
10883
2001-02-13  Alexandre Petit-Bianco  
10884
 
10885
        * parse.y (resolve_qualified_expression_name): Try to resolve as
10886
        an inner class access only if `decl' is a TYPE_DECL.
10887
 
10888
2001-02-13  Alexandre Petit-Bianco  
10889
 
10890
        * decl.c (classdollar_identifier_node): Initialize.
10891
        * java-tree.h (enum java_tree_index): New entry
10892
        `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
10893
        (classdollar_identifier_node): New macro.
10894
        (ID_CLASSDOLLAR_P): Likewise.
10895
        * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
10896
        (build_dot_class_method_invocation): Likewise.
10897
        (find_applicable_accessible_methods_list): `class$' can't be
10898
        inherited.
10899
 
10900
2001-02-09  Raja R Harinath  
10901
 
10902
        * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
10903
 
10904
2001-02-09  Alexandre Petit-Bianco  
10905
 
10906
        * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
10907
        * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
10908
        gone.
10909
 
10910
2001-02-09  Alexandre Petit-Bianco  
10911
 
10912
        * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
10913
        outside of the `__U' sequence too.
10914
        (unicode_mangling_length): Count `_' or `U' outside of the `__U'
10915
        sequence too.
10916
 
10917
2001-02-09  Alexandre Petit-Bianco  
10918
 
10919
        * jvgenmain.c (error): Reversed 2001-02-01 deletion.
10920
 
10921
2001-02-08  Alexandre Petit-Bianco  
10922
 
10923
        * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
10924
        (JVGENMAIN_OBJS): Likewise.
10925
        * java-tree.h (append_gpp_mangled_name): New prototype.
10926
        * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
10927
        Removed cast calling `gcc_add_root.'
10928
        * jvgenmain.c (mangle_obstack): New global, initialized.
10929
        (main): Use it.
10930
        (do_mangle_class): Constify local `ptr.'
10931
        Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
10932
        append_gpp_mangle_name and update `count' if necessary.
10933
        Use `mangle_obstack.'
10934
        * mangle.c (append_unicode_mangled_name): Removed.
10935
        (append_gpp_mangled_name): Likewise.
10936
        (unicode_mangling_length): Likewise.
10937
        (mangle_member_name): Return type set to `void.'
10938
        (mangle_field_decl): Don't append `U' in escaped names.
10939
        (mangle_method_decl): Likewise.
10940
        (mangle_member_name): Just use `append_gpp_mangled_name.'
10941
        * mangle_name.c: New file.
10942
 
10943
2001-02-07  Per Bothner  
10944
 
10945
        * check-init.c (check_init):  Fix TRY_FINALLY_EXPR logic.
10946
 
10947
        * check-init.c (check_init):  Don't call done_alternative after
10948
        processing loop code, as a LOOP_EXPR never terminates normally.
10949
 
10950
2001-02-08  Joseph S. Myers  
10951
 
10952
        * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
10953
 
10954
2001-02-07  Alexandre Petit-Bianco  
10955
 
10956
        * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
10957
        DECLs.
10958
 
10959
2001-02-06  Tom Tromey  
10960
 
10961
        * lex.c (java_new_lexer): Longer error message.
10962
 
10963
2001-02-05  Jeff Sturm  
10964
            Alexandre Petit-Bianco  
10965
 
10966
        * typeck.c (build_prim_array_type): Added leading comment.
10967
        (build_java_array_type): Moved locals out of
10968
        block. Always create the `data' field, fixed alignment to match
10969
        C++.
10970
 
10971
2001-02-04  Tom Tromey  
10972
 
10973
        * expr.c (java_lang_expand_expr): Don't bother recomputing
10974
        `length'.  Use rest_of_decl_compilation, not make_decl_rtl.
10975
        Fixes PR java/1866.
10976
 
10977
2001-02-05  Alexandre Petit-Bianco  
10978
 
10979
        * parse.y (process_imports): Save the original name of the import
10980
        for better error report.
10981
 
10982
2001-02-04  Bryce McKinlay  
10983
 
10984
        * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
10985
        of macros used when compiling jvspec.c.
10986
        * jvspec.c (lang_specific_driver): Link with the shared
10987
        libgcc by default.
10988
 
10989
2001-02-04  Richard Kenner  
10990
 
10991
        * check-init.c (check_init): Call internal_error instead of fatal.
10992
        * expr.c (java_lang_expand_expr): Likewise.
10993
        * jcf-parse.c (get_constant): Likewise.
10994
        * mangle.c (java_mangle_decl): Likewise.
10995
        * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
10996
        (operator_string): Likewise.
10997
        * check-init.c (check_init): Call abort instead of fatal.
10998
        * class.c (build_class_ref): Likewise.
10999
        * constants.c (write_constant_pool): Likewise.
11000
        * decl.c (start_java_method): Likewise.
11001
        * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
11002
        (java_stack_dup, encode_newarray_type): Likewise.
11003
        (build_java_array_length_access): Likewise.
11004
        (build_java_check_indexed_type, expand_java_pushc): Likewise.
11005
        (build_java_soft_divmod, build_invokeinterface): Likewise.
11006
        * java-tree.h (INNER_CLASS_P): Likewise.
11007
        * jcf-parse.c (parse_signature, get_name_constant): Likewise.
11008
        (give_name_to_class, get_class_constant): Likewise.
11009
        * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
11010
        (find_constant_index, generate_bytecode_conditional): Likewise.
11011
        (generate_bytecode_insns, perform_relocations): Likewise.
11012
        * lex.c (java_unget_unicode, java_lex): Likewise.
11013
        * mangle.c (mangle_type, mangle_record_type): Likewise.
11014
        (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
11015
        (finish_mangling): Likewise.
11016
        * parse.h (MARK_FINAL_PARMS): Likewise.
11017
        * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
11018
        (obtain_incomplete_type, java_complete_class): Likewise.
11019
        (java_check_regular_methods, java_complete_expand_method): Likewise.
11020
        (cut_identifier_in_qualified, check_deprecation): Likewise.
11021
        (patch_invoke, find_applicable_accessible_methods_list): Likewise.
11022
        (java_complete_lhs, lookup_name_in_blocks): Likewise.
11023
        (check_final_variable_indirect_assignment, build_unaryop): Likewise.
11024
        * typeck.c (set_local_type, parse_signature_type): Likewise.
11025
        (parse_signature_string, build_java_signature): Likewise;
11026
        (set_java_signature): Likewise.
11027
        * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
11028
        * class.c (add_method): Call fatal_error instead of fatal.
11029
        (build_static_field_ref): Likewise.
11030
        * expr.c (build_known_method_ref, expand_invoke): Likewise.
11031
        * jcf-parse.c (get_constant, jcf_parse): Likewise.
11032
        * lex.c (java_new_new_lexer): Likewise.
11033
        * jv-scan.c (main): Likewise.
11034
        (fatal_error): Renamed from fatal.
11035
        * jcf-parse.c (yyparse): Call fatal_io_error instead of
11036
        pfatal_with_name.
11037
        * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
11038
        (yyparse): Likewise.
11039
        * jcf-write.c (make_class_file_name, write_classfile): Likewise.
11040
        * lex.c (java_get_line_col): Likewise.
11041
        * jcf-parse.c (load_class): Make errors non-fatal.
11042
        * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
11043
 
11044
2001-02-01  Bryce McKinlay  
11045
 
11046
        * jvgenmain.c (class_mangling_suffix): Remove unused string.
11047
        (error): Remove unused function.
11048
        (main): Don't use "__attribute__ alias" on generated class symbol.
11049
 
11050
2001-01-30  Alexandre Petit-Bianco  
11051
 
11052
        * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
11053
        argument.
11054
        * parse.y (finish_method_declaration): Code accounting for WFLed
11055
        method DECL_NAMEs deleted.
11056
        (check_abstract_method_definitions): Likewise.
11057
        (resolve_type_during_patch): Layout resolved type.
11058
        * typeck.c (lookup_do): Removed unused local.
11059
 
11060
2001-01-30  Bryce McKinlay  
11061
 
11062
        * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
11063
        * decl.c (init_decl_processing): Use integer_minus_one_node, not
11064
        integer_negative_one_node.
11065
        * expr.c (build_java_binop): Likewise.
11066
 
11067
2001-01-24  Jeff Sturm  
11068
 
11069
        * zextract.c (read_zip_archive): Read file_offset before writing
11070
        zipd and consequently clobbering the header contents.
11071
 
11072
2001-01-27  Kaveh R. Ghazi  
11073
 
11074
        * Make-lang.in: Remove all dependencies on defaults.h.
11075
        * decl.c: Don't include defaults.h.
11076
        * expr.c: Likewise.
11077
        * parse.y: Likewise.
11078
 
11079
2001-01-25  Alexandre Petit-Bianco  
11080
 
11081
        * ChangeLog (2001-01-21): Fixed typo.
11082
        * class.c (layout_class_method): Code accounting for WFLed
11083
        method DECL_NAMEs deleted.
11084
        * constant.c (find_methodref_index): Likewise.
11085
        * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
11086
        * java-tree.h (DECL_FUNCTION_WFL): New macro.
11087
        (struct lang_decl): New field `wfl'.
11088
        (java_get_real_method_name): Prototype deleted.
11089
        * mangle.c (mangle_method_decl): Code accounting for WFLed
11090
        method DECL_NAMEs deleted.
11091
        * parse.h (GET_METHOD_NAME): Macro deleted.
11092
        * parse.y (reset_method_name): Deleted.
11093
        (method_header): Set DECL_FUNCTION_WFL.
11094
        (check_abstract_method_header): Code accounting for WFLed method
11095
        DECL_NAMEs deleted.
11096
        (java_get_real_method_name): Deleted.
11097
        (check_method_redefinition): Code accounting for WFLed method
11098
        DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
11099
        (java_check_regular_methods): Likewise.
11100
        (java_check_abstract_methods): Likewise.
11101
        (java_expand_classes): Don't call `reset_method_name.'
11102
        (search_applicable_method_list): Use DECL_NAMEs instead of
11103
        GET_METHOD_NAME.
11104
        * typeck.c (lookup_do): Code accounting for WFLed method
11105
        DECL_NAMEs deleted.
11106
 
11107
2001-01-25  Richard Earnshaw  
11108
 
11109
        * lex.c (java_read_char): Check for EOF from getc first.
11110
 
11111
2001-01-23  Alexandre Petit-Bianco  
11112
 
11113
        * class.c (layout_class): Don't lay the superclass out if it's
11114
        already being laid out.
11115
        * jcf-parse.c (handle_innerclass_attribute): New function.
11116
        (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
11117
        handle_innerclasses_attribute.
11118
        (jcf_parse): Don't load an innerclasses if it's already being
11119
        laid out.
11120
        * jcf-write.c (append_innerclass_attribute_entry): Static
11121
        `anonymous_name' and its initialization deleted. `ocii' and `ini'
11122
        to be zero for anonymous classes.
11123
 
11124
2001-01-23  Alexandre Petit-Bianco  
11125
 
11126
        * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
11127
        necessary.
11128
        * jcf-parse.c (set_source_filename): Use
11129
        MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
11130
 
11131
2001-01-23  Alexandre Petit-Bianco  
11132
 
11133
        * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
11134
        gets a unique asm name.
11135
 
11136
2001-01-23  Alexandre Petit-Bianco  
11137
 
11138
        * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
11139
        (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11140
        if necessary.
11141
        (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
11142
        * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
11143
        * parse.y (lookup_package_type_and_set_next): Deleted.
11144
        (resolve_package): Removed unnecessary code.
11145
        (find_applicable_accessible_methods_list): `finit$' can't be
11146
        inherited.
11147
        * verify.c (pop_argument_types): Added missing prototype.
11148
 
11149
2001-01-23  Bryce McKinlay  
11150
 
11151
        * config-lang.in: Disable java by default.
11152
 
11153
2001-01-23  Tom Tromey  
11154
 
11155
        * gcj.texi (Copying): New node.
11156
        Added copyright information.
11157
 
11158
2001-01-21  Per Bothner  
11159
 
11160
        Various fixes to allow compiling a compressed .jar/.zip archive.
11161
        * zipfile.h (struct ZipFileCache):  Replace by struct ZipFile.
11162
        (struct ZipFile):  Add fields name and next (from  ZipFileCache).
11163
        (struct ZipDirectory):  New field zipf points to owning ZipFile.
11164
        * jcf.h (struct ZipDirectory):  Add forward declaration.
11165
        (struct JCF):   Declare zipd field to have type struct ZipDirectory.
11166
        Remove seen_in_zip and zip_offset fields.
11167
        (JCF_SEEN_IN_ZIP):  New macro.
11168
        * zextract.c (read_zip_archive):  Set ZipDirectory's zipf field.
11169
        * jcf-io.c:  Change all ZipFileCache to ZipFile.
11170
        (read_zip_member):  New function.
11171
        (open_in_zip):  Call read_zip_member.
11172
        * jcf-parse.c (find_in_current_zip):  Remove function.
11173
        (read_class):  Merge in find_in_current_zip functionality.
11174
        Call read_zip_member if needed.
11175
        (parse_zip_file_entries):  Use read_zip_member.
11176
        (process_zip_dir):  Update for removed and added JCF fields.
11177
        (jcf_figure_file_type):  Re-use, don't copy initial ZipFile struct.
11178
 
11179
2001-01-21  Per Bothner  
11180
 
11181
        Minor optimization of static ggc roots.
11182
        * jcf-parse.c (parse_roots):  New static field.
11183
        (current_field, current_method, current_file_list):  Replace by macros
11184
        naming fields of parse_roots.
11185
        (init_jcf_parse):  Combine 3 ggc_add_tree_root calls to 1.
11186
        * class.c (class_roots):  New static field.
11187
        (registered_class, fields_ident, info_ident, class_list):
11188
        New macros naming fields of parse_roots.
11189
        (build_static_field_ref):  Don't register roots here.
11190
        (layout_class):  Static field list replaced by macro class_list.
11191
        (init_class_processing):  Call ggc_add_tree_root for 4 roots.
11192
        Initialize fields_ident and info_ident here.
11193
 
11194
2001-01-21  Per Bothner  
11195
 
11196
        * jcf-parse.c (ggc_mark_jcf):  New function.
11197
        (init_jcf_parse):  Register current_jcf as ggc root.
11198
 
11199
2001-01-21  Per Bothner  
11200
 
11201
        * lang.c (put_decl_node):  Print method's name.
11202
 
11203
2001-01-21  Per Bothner  
11204
 
11205
        * verify.c (VERIFICATION_ERROR_WITH_INDEX):  New macro.
11206
        (verify_jvm_instructions):  Use it, for better error messages on loads.
11207
 
11208
2001-01-21  Per Bothner  
11209
 
11210
        * verify.c (merge_type_state):  Still may have to merge even if
11211
        LABEL_VERIFIED (label).
11212
 
11213
2001-01-21  Per Bothner  
11214
 
11215
        * parse.y (method_header):  Don't set the DECL_NAME of a FUNCTION_DECL
11216
        to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
11217
 
11218
2001-01-19  Per Bothner  
11219
 
11220
        * expr.c (pop_type_0):  Only return object_ptr_type_node on mismatch
11221
        if expeting an interface type.  Refines Tom's change of 2000-09-12.
11222
 
11223
2001-01-18  Per Bothner  
11224
 
11225
        * gcj.texi (Input Options): Mention .java files.
11226
 
11227
2001-01-17  Alexandre Petit-Bianco  
11228
 
11229
        * lang-options.h (-Wunsupported-jdk11): Removed.
11230
        * lang.c (flag_not_overriding): Deleted.
11231
        (flag_static_local_jdk1_1): Likewise.
11232
        (lang_W_options): Removed "unsupported-jdk11" entry.
11233
        * parse.y (java_check_methods): Removed dead code.
11234
 
11235
2001-01-17  Tom Tromey  
11236
 
11237
        Changes suggested by Per Bothner:
11238
        * gcj.texi (Input Options): Don't mention input files.
11239
        (Code Generation): Updated --main information.
11240
        (Invoking jcf-dump): Mention that --javap is incomplete.
11241
        From Alexandre Petit-Bianco:
11242
        (Warnings): Don't mention -Wunsupported-jdk11.
11243
        My stuff:
11244
        (Compatibility): Mention JDK 1.2-ness of libraries.
11245
        (Resources): Mention resources used when writing gcj.
11246
 
11247
2001-01-17  Tom Tromey  
11248
 
11249
        * gcj.texi: New file.
11250
        * Make-lang.in ($(srcdir)/java/gcj.info): New target.
11251
        (java.info): Depend on gcj.info.
11252
        (java/gcj.dvi): New target.
11253
        (java.dvi): Depend on gcj.dvi.
11254
        (java.install-info): Wrote.
11255
 
11256
2001-01-16  Jeff Sturm  
11257
 
11258
        * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
11259
        having called make_decl_rtl.
11260
 
11261
2001-01-14  Per Bothner  
11262
 
11263
        Various patches to emit better messages on verification errors.
11264
        * expr.c (push_type_0):  Return error indication on stack overflow,
11265
        instead of callinfg fatal.
11266
        (push_type):  Now just call push_type_0 (nd fatal on overflow).
11267
        (pop_type_0):  Return detailed error message (in a char** argument).
11268
        (pop_type):  If pop_type_0 fails, print error message.
11269
        (pop_argument_types):  Moved to verify.c.
11270
        * verify.c (pop_argument_types):  Moved from expr.c.
11271
        Return a (possible) error message, rather than void.
11272
        (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING):  New macros.
11273
        (verify_jvm_instruction):  Use new macros, improving error messages.
11274
        For case OPCODE_astore use object_ptr_type_node.
11275
        * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED):  New macros.
11276
        (pop_type_0, push_type_0, pop_argument_types):  Update accordingly.
11277
 
11278
        * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
11279
        constant, return body without wrapper.  (Improves constant folding.)
11280
        * lex.c (build_wfl_node):  Clear TREE_TYPE from returned node.
11281
 
11282
2001-01-13  Per Bothner  
11283
 
11284
        * expr.c (expand_java_field_op):  Assigning to a final field outside
11285
        an initializer does not violate JVM spec, so should be warning, not
11286
        error.  (Sun's verifier does not complain - though MicroSoft's does.)
11287
 
11288
2001-01-12  Joseph S. Myers  
11289
 
11290
        * gjavah.c (version), jcf-dump.c (version): Update copyright year
11291
        to 2001.
11292
 
11293
2001-01-11  Bryce McKinlay  
11294
 
11295
        * parse.y (resolve_expression_name): Permit instance variables from
11296
        enclosing context in super constructor call.
11297
        (resolve_qualified_expression_name): Permit enclosing class's qualified
11298
        "this" in super constructor call.
11299
 
11300
2001-01-10  Mark Mitchell  
11301
 
11302
        * class.c (build_utf8_ref): Remove last argument in call to
11303
        make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
11304
        (build_class_ref): Likewise.
11305
        (build_static_field_ref): Likewise.
11306
        (get_dispatch_table): Likewise.
11307
        (layout_class_method): Likewise.
11308
        (emit_register_classes): Likewise.
11309
        * constants.c (build_constant_data_ref): Likewise.
11310
        * decl.c (builtin_function): Likewise.
11311
        (create_primitive_vtable): Likewise.
11312
        * expr.c (build_known_method_def): Likewise.
11313
        (build_jni_stub): Likewise.
11314
        (java_lang_expand_expr): Likewise.
11315
 
11316
2001-01-10  Tom Tromey  
11317
 
11318
        * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
11319
 
11320
2001-01-08  Alexandre Petit-Bianco  
11321
 
11322
        * java-tree.h (lang_printable_name_wls): New prototype.
11323
        * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
11324
        rather than `current_class' to print type name. Don't prepend type
11325
        names when printing constructor names.
11326
        (lang_printable_name_wls): New function.
11327
        * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
11328
        `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
11329
        * parse.y (patch_method_invocation): Message tuned for constructors.
11330
        (not_accessible_p): Grant `private' access from within
11331
        enclosing contexts.
11332
 
11333
2001-01-07  Alexandre Petit-Bianco  
11334
 
11335
        All files with updated copyright when applicable.
11336
        * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
11337
        * class.c (mangle_class_field): Function removed.
11338
        (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
11339
        (utf8_cmp, cxx_keyword_p): Moved to lex.c.
11340
        (build_class_ref): Call `java_mangle_class_field' instead of
11341
        `mangle_class_field.'
11342
        (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
11343
        (layout_class): Call `java_mangle_decl' instead of
11344
        `mangle_static_field.'
11345
        (cxx_keywords): Initialized static array moved to `lex.c.'
11346
        (layout_class_method): Changed leading comment. Simplified to
11347
        call `java_mangle_decl.' Local `ptr' moved in for loop body.
11348
        * decl.c (lang_mark_tree): Mark field `package_list.'
11349
        * java-tree.h (TYPE_PACKAGE_LIST): New macro.
11350
        (struct lang_type): New field `package_list.'
11351
        (unicode_mangling_length): Prototype removed.
11352
        (append_gpp_mangled_name, append_gpp_mangled_classtype,
11353
        emit_unicode_mangled_name): Likewise.
11354
        (cxx_keyword_p): New prototype.
11355
        (java_mangle_decl, java_mangle_class_field,
11356
        java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
11357
        * jcf-parse.c (jcf_parse_source): Constify `file' argument to
11358
        `build_expr_wfl.'
11359
        * jvgenmain.c (main_method_prefix): Global variable removed.
11360
        (main_method_suffix): Likewise.
11361
        (do_mangle_classname): New function.
11362
        (main): Call it. Format changed to accommodate new mangling scheme.
11363
        * lex.c: (utf8_cmp): Conditionally prototyped.
11364
        (cxx_keywords): Moved from class.c, conditionally defined.
11365
        (utf8_cmp, cxx_keyword_p): Likewise.
11366
        * mangle.c (obstack.h, ggc.h): Included.
11367
        (mangle_field_decl): New function.
11368
        (mangle_method_decl, mangle_type, mangle_pointer_type,
11369
        mangle_array_type, mangle_record_type,
11370
        find_compression_pointer_match, find_compression_array_match,
11371
        find_compression_record_match,
11372
        find_compression_array_template_match, set_type_package_list,
11373
        entry_match_pointer_p, emit_compression_string, init_mangling,
11374
        finish_mangling, compression_table_add, mangle_member_name): Likewise.
11375
        (mangle_obstack): New global.
11376
        (MANGLE_RAW_STRING): New macro.
11377
        (unicode_mangling_length): Turned static.
11378
        (append_unicode_mangled_name): Renamed from
11379
        `emit_unicode_mangled_name.'  Turned static. `mangle_obstack'
11380
        replaces `obstack', removed from the parameter list.
11381
        (append_gpp_mangled_name): Turned static. `mangle_obstack'
11382
        replaces parameter `obstack', removed from the parameter list. Call
11383
        `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
11384
        (append_gpp_mangled_classtype): Removed.
11385
        (compression_table, compression_next): New static variables.
11386
        * parse.y (temporary_obstack): Extern declaration removed.
11387
 
11388
2001-01-05  Alexandre Petit-Bianco  
11389
 
11390
        * parse.y (patch_binop): Compute missing type in error situations.
11391
 
11392
2001-01-05  Bryce McKinlay  
11393
 
11394
        * class.c (make_class_data): Push initial value for "arrayclass".
11395
        * decl.c (init_decl_processing): Add new class field "arrayclass".
11396
 
11397
2001-01-05  Bryce McKinlay  
11398
 
11399
        From patha@softlab.ericsson.se:
11400
        * parse.y (switch_label): Use build, not build1, to construct
11401
        DEFAULT_EXPR.
11402
 
11403
2001-01-04  Neil Booth  
11404
 
11405
        * lang.c (lang_decode_option): Change -MA to -MP.
11406
        * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
11407
        Update to new prototype; do quote targets.
11408
        (jcf_dependency_write): Update.
11409
 
11410
2000-12-22  Bryce McKinlay  
11411
 
11412
        Shorten primitive array allocation path:
11413
        * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
11414
        to create new primitive arrays.
11415
        * expr.c (build_newarray): If generating native code, call
11416
        soft_newarray_node with a reference to the primitive TYPE identifier
11417
        instead of type_value.
11418
 
11419
2000-12-17  Bryce McKinlay  
11420
 
11421
        Fix for PRs gcj/312 and gcj/253:
11422
        * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
11423
        dest if they arn't already.
11424
        * class.c (layout_class): Call maybe_layout_super_class on
11425
        superinterfaces also, but only if compiling from bytecode.
11426
 
11427
        Fix for PR gcj/373:
11428
        * parse.y (create_class): Set ACC_STATIC if class is declared in an
11429
        interface.
11430
 
11431
2000-12-15  Tom Tromey  
11432
 
11433
        * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
11434
        set.
11435
 
11436
2000-12-14  Andrew Haley  
11437
 
11438
        * boehm.c (mark_reference_fields): Change test to correctly detect
11439
        bitmap overflow.
11440
 
11441
2000-12-15  Andreas Jaeger  
11442
 
11443
        * config-lang.in (lang_dirs): Added.
11444
 
11445
2000-12-15  Alexandre Petit-Bianco  
11446
 
11447
        * parse.y (end_artificial_method_body): Fixed undefined behavior.
11448
        Credits go to rth for finding it.
11449
 
11450
2000-12-13  Mike Stump  
11451
 
11452
        * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
11453
 
11454
2000-11-07  Tom Tromey  
11455
 
11456
        * Make-lang.in (JAVA_LEX_C): Added chartables.h.
11457
        * lex.c (java_ignorable_control_p): Removed.
11458
        (java_letter_or_digit_p): Removed.
11459
        (java_start_char_p): New function.
11460
        (java_read_char): Return `int', not `unicode_t'.  Changed
11461
        callers.
11462
        (java_read_unicode): Likewise.
11463
        (java_read_unicode_collapsing_terminators): Likewise.
11464
        (java_get_unicode): Likewise.
11465
        (java_new_lexer): Initialize hit_eof.
11466
        (java_parse_end_comment): Take `int' argument.
11467
        (java_parse_doc_section): Likewise.
11468
        (java_parse_escape_sequence): Don't allow backlash-newline.
11469
        Return `int'.
11470
        * lex.h (JAVA_DIGIT_P): Removed.
11471
        (_JAVA_LETTER_OR_DIGIT_P): Removed.
11472
        (_JAVA_IDENTIFIER_IGNORABLE): Removed.
11473
        (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
11474
        (JAVA_PART_CHAR_P): New macro.
11475
        (UEOF): Now -1.
11476
        (JAVA_CHAR_ERROR): Now -2.
11477
        (java_lexer): New field `hit_eof'.
11478
        * chartables.h: New file.
11479
        * gen-table.pl: new file.
11480
 
11481
2000-11-20  Tom Tromey  
11482
            Alexandre Petit-Bianco  
11483
 
11484
        * parse.y (java_complete_lhs): Only allow compound assignment of
11485
        reference type if type is String.
11486
 
11487
2000-12-09  Alexandre Petit-Bianco  
11488
 
11489
        * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
11490
        jcf-path.c: Likewise.
11491
 
11492
2000-12-09  Anthony Green  
11493
 
11494
        * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
11495
        filestart and filename_length as int values.
11496
 
11497
2000-12-07  Mo DeJong  
11498
 
11499
        * jcf-io.c (find_class): Correct the logic that tests to see if a
11500
        .java file is newer than its .class file. The compiler was
11501
        incorrectly printing a warning when file mod times were equal.
11502
 
11503
2000-12-07  Zack Weinberg  
11504
 
11505
        * jvgenmain.c: Use ISPRINT not isascii.
11506
 
11507
2000-12-06  Alexandre Petit-Bianco  
11508
 
11509
        * parse.y (end_artificial_method_body): Fixed typo.
11510
 
11511
2000-12-04  Alexandre Petit-Bianco  
11512
 
11513
        * parse.y (patch_method_invocation): Pick the correct enclosing
11514
        context when creating inner class instances.
11515
        Fixes gcj/332.
11516
 
11517
2000-11-26  Joseph S. Myers  
11518
 
11519
        * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
11520
        Update copyright year to 2000.
11521
 
11522
2000-11-23  Anthony Green  
11523
 
11524
        * jcf-parse.c (init_jcf_parse): Register current_file_list root.
11525
        Move current_file_list out of yyparse and make it static.
11526
 
11527
        * expr.c: Declare quick_stack and tree_list_free_list as static
11528
        (init_expr_processing): Register quick_stack and
11529
        tree_list_free_list roots.
11530
 
11531
2000-11-22  Alexandre Petit-Bianco  
11532
 
11533
        * parse.y (build_outer_field_access): New local `decl_ctx', use
11534
        it. Check for field's context and current class immediate outer
11535
        context inheritance.
11536
        (outer_field_access_p): Consider fields inherited from the last
11537
        enclosing context.
11538
        (build_access_to_thisn): Stop at the last enclosing context if
11539
        necessary.
11540
        Fixes gcj/367.
11541
 
11542
2000-11-23  J"orn Rennecke 
11543
 
11544
        * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
11545
 
11546
2000-11-22  Bryce McKinlay  
11547
 
11548
        * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
11549
        scratch buffer.
11550
 
11551
2000-11-20  Tom Tromey  
11552
 
11553
        * jv-scan.c (help): Document --complexity.
11554
        (options): Added --complexity.
11555
        (flag_complexity): New global.
11556
        (main): Call `report'.
11557
        * parse-scan.y (complexity): New global.
11558
        (if_then_statement, if_then_else_statement,
11559
        if_then_else_statement_nsi, switch_block_statement_group,
11560
        while_expression, do_statement, for_begin, continue_statement,
11561
        throw_statement, catch_clause, finally, method_invocation,
11562
        conditional_and_expression, conditional_or_expression,
11563
        conditional_expression): Update complexity.
11564
        (reset_report): Reset complexity.
11565
        (report): New function.
11566
 
11567
2000-11-20  Tom Tromey  
11568
 
11569
        * lex.c (yylex): Added STRICT_TK case.
11570
        * parse.y (STRICT_TK): Added.
11571
        * parse-scan.y (STRICT_TK): Added.
11572
        * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
11573
        `;'.  Use 4, not 3, with -k option.  Correctly rename resulting
11574
        file.
11575
        * keyword.h: Rebuilt.
11576
        * keyword.gperf (strictfp): Added.
11577
 
11578
2000-11-20  Tom Tromey  
11579
 
11580
        * lex.c (yylex): Recognize floating point constants with leading
11581
        0.
11582
 
11583
2000-11-19  Kaveh R. Ghazi  
11584
 
11585
        * java-tree.h (cyclic_inheritance_report): Constify.
11586
        * parse.y (cyclic_inheritance_report): Likewise.
11587
 
11588
2000-11-17  Zack Weinberg  
11589
 
11590
        * parse.y (goal): Remove call to ggc_add_string_root.
11591
 
11592
2000-11-16  Zack Weinberg  
11593
 
11594
        * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
11595
        Create string in scratch buffer, then pass to build_string.
11596
 
11597
2000-11-13  Joseph S. Myers  
11598
 
11599
        * parse.y (issue_warning_error_from_context): Add
11600
        ATTRIBUTE_PRINTF.
11601
 
11602
2000-11-11  Anthony Green  
11603
 
11604
        * jcf-parse.c (process_zip_dir): Add finput parameter.
11605
        (jcf_figure_file_type): Call process_zip_dir with appropriate
11606
        argument.
11607
 
11608
2000-11-10  Kaveh R. Ghazi  
11609
 
11610
        * decl.c (copy_lang_decl): Use memcpy, not bcopy.
11611
        * jcf-parse.c (jcf_figure_file_type): Likewise.
11612
 
11613
2000-11-09  Joseph S. Myers  
11614
 
11615
        * parse.y (create_new_parser_context): Use memset () instead of
11616
        bzero ().
11617
 
11618
2000-11-08  Tom Tromey  
11619
 
11620
        * gjavah.c (process_file): Only include gcj/cni.h when generating
11621
        CNI stubs.
11622
 
11623
2000-11-07  Joseph S. Myers  
11624
 
11625
        * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
11626
        (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
11627
        instead of bzero ().
11628
 
11629
2000-11-05  Tom Tromey  
11630
 
11631
        * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
11632
        * lex.c (IS_ZERO): New define.
11633
        (java_perform_atof): Error on floating point underflow.
11634
 
11635
2000-11-04  Tom Tromey  
11636
 
11637
        * lex.c (java_parse_escape_sequence): Only read two octal
11638
        characters if the first one is greater than 3.  Don't allow
11639
        "octal" numbers to include the digits 8 or 9.
11640
 
11641
2000-11-05  Joseph S. Myers  
11642
 
11643
        * Make-lang.in (java.distdir): Remove.
11644
 
11645
2000-11-03  Tom Tromey  
11646
 
11647
        * Make-lang.in (java.dvi): New target.
11648
        Partial fix for PR other/567.
11649
 
11650
        * lang-options.h: Mention -Wout-of-date.
11651
        * jcf-dump.c (flag_newer): New global.
11652
        * gjavah.c (flag_newer): New global.
11653
        * jcf-io.c (find_class): Only warn when flag_newer set.
11654
        * lang.c (flag_newer): New global.
11655
        (struct string_option): New declaration.
11656
        (lang_W_options): New global.
11657
        (process_option_with_no): New function.
11658
        (lang_decode_option): Use it.
11659
 
11660
        * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
11661
        * gjavah.c (cxx_keyword_subst): Handle any number of trailing
11662
        `$'.
11663
 
11664
        * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
11665
        (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
11666
        * lex.c (java_read_unicode): Removed `term_context' argument.
11667
        Recognize any number of `u' in `\u'.
11668
        (java_read_unicode_collapsing_terminators): New function.
11669
        (java_get_unicode): Use it.
11670
        (java_lineterminator): Removed.
11671
        (yylex): Produce error if character literal is newline or single
11672
        quote.  Return if eof found in middle of `//' comment.  EOF in
11673
        `//' comment is only an error if pedantic.
11674
        (java_ignorable_control_p): New function.
11675
        (java_parse_end_comment): Return if eof found in middle of
11676
        comment.
11677
        Include flags.h.
11678
        * jv-scan.c (pedantic): New global.
11679
 
11680
2000-10-31  Alexandre Petit-Bianco  
11681
 
11682
        * parse.y (outer_field_access_p): Inherited fields aren't
11683
        consider outer fields.
11684
        (maybe_build_thisn_access_method): Use
11685
        PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
11686
        (resolve_expression_name): Trigger an error if a static field
11687
        is being accessed as an outer field.
11688
 
11689
2000-10-29  Alexandre Petit-Bianco  
11690
 
11691
        * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
11692
        Fixes gcj/365.
11693
 
11694
2000-10-27  Zack Weinberg  
11695
 
11696
        * Make-lang.in: Move all build rules here from Makefile.in,
11697
        adapt to new context.  Wrap all rules that change the current
11698
        directory in parentheses.  Expunge all references to $(P).
11699
        When one command depends on another and they're run all at
11700
        once, use && to separate them, not ;.  Add OUTPUT_OPTION to
11701
        all object-file generation rules.  Delete obsolete variables.
11702
 
11703
        * Makefile.in: Delete.
11704
        * config-lang.in: Delete outputs= line.
11705
 
11706
2000-10-25  Alexandre Petit-Bianco  
11707
 
11708
        * parse.y (patch_method_invocation): NULLify this_arg when already
11709
        inserted.
11710
        (maybe_use_access_method): Handle call to methods unrelated to the
11711
        current class. Fixed comment.
11712
        Fixes gcj/361.
11713
 
11714
2000-10-24  Alexandre Petit-Bianco  
11715
 
11716
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
11717
        scope.
11718
 
11719
2000-10-24  Tom Tromey  
11720
 
11721
        * lex.c (java_new_lexer): Initialize new fields.  Work around
11722
        broken iconv() implementations.
11723
        (java_read_char): Swap bytes if required.  Use fallback decoder if
11724
        required.
11725
        (byteswap_init, need_byteswap): New globals.
11726
        (java_destroy_lexer): Only close iconv handle if it is in use.
11727
        * lex.h (java_lexer): New fields read_anything, byte_swap,
11728
        use_fallback.
11729
        Made out_buffer unsigned.
11730
 
11731
2000-10-24  Alexandre Petit-Bianco  
11732
 
11733
        * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
11734
        where an enclosing context can be set on the jdep.
11735
        (do_resolve_class): Fixed identation.
11736
 
11737
2000-10-21  Kaveh R. Ghazi  
11738
 
11739
        * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
11740
 
11741
        * jcf-reader.c (peek_attribute, skip_attribute): Only define
11742
        when requested.
11743
 
11744
        * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
11745
 
11746
        * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
11747
 
11748
2000-10-18  Alexandre Petit-Bianco  
11749
 
11750
        * jcf-write.c (OP1): Update `last_bc'.
11751
        (struct jcf_block): Fixed indentation and typo in comments.  New
11752
        field `last_bc'.
11753
        (generate_bytecode_insns): Insert `nop' if `jsr' immediately
11754
        follows `monitorenter'.
11755
        * parse.y (patch_synchronized_statement): New local `tmp'. Call
11756
        `patch_string'.
11757
        Fixes gcj/232.
11758
 
11759
2000-10-16  Tom Tromey  
11760
 
11761
        * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
11762
        * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
11763
        * lang-options.h: Added -MA, -MT, -MF..
11764
        * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
11765
        (DEPEND_TARGET_SET): New macro.
11766
        (DEPEND_FILE_ALREADY_SET): Likewise.
11767
        (init_parse): Handle new flags.
11768
        * jcf.h (jcf_dependency_print_dummies): Declare.
11769
        * Make-lang.in (s-java): Added mkdeps.o.
11770
        * Makefile.in (BACKEND): Added mkdeps.o.
11771
        (../gcjh$(exeext)): Added mkdeps.o.
11772
        (../jcf-dump$(exeext)): Added mkdeps.o.
11773
        * jcf-depend.c: Include mkdeps.h.
11774
        (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
11775
        add_entry): Removed.
11776
        (jcf_dependency_reset): Rewrote.
11777
        (dependencies): New global.
11778
        (jcf_dependency_set_target): Rewrote.
11779
        (jcf_dependency_add_target): Likewise.
11780
        (jcf_dependency_add_file): Likewise.
11781
        (munge): Removed.
11782
        (print_ents): Removed.
11783
        (jcf_dependency_write): Rewrote.
11784
        (print_dummies): New global.
11785
        (jcf_dependency_print_dummies): New function
11786
        (jcf_dependency_write): Call deps_dummy_targets if required.
11787
 
11788
2000-10-18  Alexandre Petit-Bianco  
11789
 
11790
        * gjavah.c (add_class_decl): Removed unused variables `tname',
11791
        `tlen' and `name_index'.
11792
        * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
11793
        * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
11794
        in `wfl_operator' with value.
11795
        (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
11796
        (jcf_figure_file_type): Fixed identation.
11797
        * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
11798
        * parse.y (analyze_clinit_body): New function.
11799
        (static_initializer:): Reset `current_static_block'.
11800
        (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
11801
        `wfl_operator' with new value.
11802
        (lookup_cl): Use EXPR_WFL_FILENAME.
11803
        (maybe_yank_clinit): Handle bogus  bodies, call
11804
        analyze_clinit_body.
11805
        (build_outer_field_access): Access to this$ built from
11806
        current_class, not its outer context.
11807
        (build_access_to_thisn): Fixed leading comment. Tidied things up.
11808
        (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
11809
        (patch_method_invocation): Use `is_static_flag' when already
11810
        initialized.
11811
        (patch_newarray): Removed assignment in ternary operator.
11812
 
11813
2000-10-17  Alexandre Petit-Bianco  
11814
 
11815
        * except.c (free_eh_ranges): Don't free `whole_range'.
11816
 
11817
2000-10-15  Anthony Green  
11818
 
11819
        * decl.c (init_decl_processing): Call init_class_processing before
11820
        anything else.
11821
 
11822
2000-10-13  Alexandre Petit-Bianco  
11823
 
11824
        * check-init.c (check_init): Fixed leading comment. Use
11825
        LOCAL_FINAL_P.
11826
        * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11827
        (give_name_to_locals): Likewise.
11828
        (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
11829
        fields in lang_decl_var.
11830
        * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
11831
        DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
11832
        (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
11833
        (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
11834
        DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
11835
        (LOCAL_FINAL): Rewritten.
11836
        (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
11837
        MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
11838
        (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
11839
        `init_final' fields.
11840
        (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
11841
        `final_uid', `final_liic', `final_ierr' and `local_final' fields.
11842
        (TYPE_HAS_FINAL_VARIABLE): New macro.
11843
        (struct lang_type): Added `afv' field.
11844
        * parse.y (check_static_final_variable_assignment_flag): New function.
11845
        (reset_static_final_variable_assignment_flag): Likewise.
11846
        (check_final_variable_local_assignment_flag): Likewise.
11847
        (reset_final_variable_local_assignment_flag): Likewise.
11848
        (check_final_variable_indirect_assignment): Likewise.
11849
        (check_final_variable_global_assignment_flag): Likewise.
11850
        (add_inner_class_fields): Use LOCAL_FINAL_P.
11851
        (register_fields): Handle local finals and final variables.
11852
        (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
11853
        (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11854
        (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11855
        on local finals.
11856
        (java_complete_expand_methods): Loop to set
11857
        TYPE_HAS_FINAL_VARIABLE. Call
11858
        `reset_final_variable_local_assignment_flag' and
11859
        `check_final_variable_local_assignment_flag' accordingly before
11860
        and after constructor expansion. Call
11861
        `reset_static_final_variable_assignment_flag'
11862
        before expanding  and after call
11863
        `check_static_final_variable_assignment_flag' if the
11864
        current_class isn't an interface. After all methods have been
11865
        expanded, call `check_final_variable_global_assignment_flag' and
11866
        `check_static_final_variable_assignment_flag' if the current class
11867
        is an interface.
11868
        (maybe_yank_clinit): Fixed typo in comment.
11869
        (build_outer_field_access_methods): Removed old sanity check. Use
11870
        FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11871
        Don't create access methods for finals.
11872
        (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
11873
        (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
11874
        existing DECL_INIT has been processed.
11875
        (java_complete_lhs): Likewise.
11876
        (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
11877
        Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
11878
        logic.
11879
        (patch_assignment): Use LOCAL_FINAL_P.
11880
        (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
11881
        DECL_INITIAL is nullified.
11882
        Fixes gcj/163.
11883
 
11884
2000-10-13  Kaveh R. Ghazi  
11885
 
11886
        * Make-lang.in (parse.c, parse-scan.c): Create atomically.
11887
 
11888
        * Makefile.in (parse.c, parse-scan.c): Likewise.
11889
 
11890
2000-10-12  Mark Mitchell  
11891
 
11892
        * class.c (temporary_obstack): Remove.
11893
        (make_class): Don't mess with obstascks.
11894
        (push_class): Likewise.
11895
        (set_super_info): Likewise.
11896
        (add_method_1): Likewise.
11897
        (add_method): Likewise.
11898
        (add_field): Likewise.
11899
        (build_utf8_ref): Likewise.
11900
        (build_class_ref): Likewise.
11901
        (build_static_field_ref): Likewise.
11902
        (finish_class): Likewise.
11903
        (push_super_field): Likewise.
11904
        (layout_class): Likewise.
11905
        (layout_class_methods): Likewise.
11906
        (init_class_processing): Likewise.
11907
        * constants.c (get_tag_node): Likewise.
11908
        (build_constant_data_ref): Likewise.
11909
        * decl.c (ggc_p): Remove.
11910
        (copy_lang_decl): Use ggc_alloc.
11911
        (complete_start_java_method): Don't mess with obstacks.
11912
        (start_java_method): Likewise.
11913
        (end_java_method): Likewise.
11914
        * except.c (link_handler): Use xmalloc.
11915
        (free_eh_ranges): New function.
11916
        (method_init_exceptions): Use it.
11917
        (add_handler): Use xmalloc.
11918
        (expand_start_java_handler): Don't mess with obstacks.
11919
        (prepare_eh_table_type): Likewise.
11920
        (expand_end_java_handler): Likewise.
11921
        * expr.c (push_value): Likewise.
11922
        (create_label_decl): Likewise.
11923
        (build_jni_stub): Likewise.
11924
        (java_lang_expand_expr): Likewise.
11925
        (note_instructions): Use xrealloc.
11926
        (java_push_constant_from_pool): Don't mess with obstacks.
11927
        (process_jvm_instruction): Likewise.
11928
        * java-tree.h (cyclic_inheritance_report): Remove duplicate
11929
        declaration.
11930
        * jcf-parse.c (get_constant): Don't mess with obstacks.
11931
        (read_class): Likewise.
11932
        (jcf_parse): Likewise.
11933
        * lex.c (expression_obstack): Remove.
11934
        (java_lex): Don't use obstack_free.
11935
        * parse.h (exit_java_complete_class): Don't mess with obstacks.
11936
        (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
11937
        (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
11938
        (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
11939
        * parse.y (gaol): Add more GC roots.
11940
        (add_inner_class_fields): Adjust calls to MANGLE_* macros.
11941
        (lookup_field_wrapper): Likewise.
11942
        (obtain_incomplete_type): Don't mess with obstacks.
11943
        (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
11944
        macros.
11945
        (craft_constructor): Don't mess with obstacks.
11946
        (safe_layout_class): Likewise.
11947
        (java_complete_class): Likewise.
11948
        (source_end_java_method): Likewise.
11949
        (build_outer_field_access_methods): Likewise.
11950
        (build_outer_method_access_method): Likewise.
11951
        (maybe_build_thisn_access_method): Likewise.
11952
        (build_dot_class_method_invocation): Likewise.
11953
        (java_complete_tree): Likewise.
11954
        (java_complete_lhs): Likewise.
11955
        (do_merge_string_cste): Likewise.
11956
        (patch_string_cst): Likewise.
11957
        (array_constructor_check_entry): Likewise.
11958
        * typeck.c (build_java_array_type): Likewise.
11959
        (parse_signature_string): Likewise.
11960
        (build_java_signature): Likewise.
11961
 
11962
2000-10-12  Tom Tromey  
11963
 
11964
        Fix for PR gcj/356:
11965
        * gjavah.c (add_class_decl): Don't special-case inner classes.
11966
        (add_namelet): Likewise.
11967
 
11968
2000-10-11  Rodney Brown  
11969
 
11970
        * java-tree.h: Constify current_encoding.
11971
        * lang.c: Constify current_encoding.
11972
 
11973
2000-10-10  Jeff Sturm  
11974
 
11975
        * jvgenmain.c (class_mangling_suffix): Omit `.'.
11976
        (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
11977
 
11978
2000-10-10  Alexandre Petit-Bianco  
11979
 
11980
        * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
11981
        patch. Fixes gcj/340.
11982
 
11983
2000-10-10  Tom Tromey  
11984
 
11985
        * lex.c (java_new_lexer): Initialize out_first and out_last
11986
        fields.
11987
        * lex.h (java_lexer): Added out_buffer, out_first, out_last.
11988
 
11989
2000-10-09  Alexandre Petit-Bianco  
11990
 
11991
        * parse.y (pop_current_osb): New function.
11992
        (array_type:): Use `dims:', changed actions
11993
        accordingly. Suggested by Anthony Green.
11994
        (array_creation_expression:): Used pop_current_osb.
11995
        (cast_expression:): Likewise.
11996
        (search_applicable_method_list): Fixed indentation.
11997
 
11998
2000-10-08  Anthony Green  
11999
 
12000
        * parse.y (array_type_literal): Remove production.
12001
        (type_literals): Refer to array_type, not array_type_literal.
12002
 
12003
2000-10-07  Alexandre Petit-Bianco  
12004
 
12005
        Patch contributed by Corey Minyard.
12006
        * decl.c (check_local_named_variable): New function.
12007
        (tree check_local_unnamed_variable): Likewise.
12008
        (find_local_variable): Splitted. Call check_local_{un}named_variable.
12009
 
12010
2000-10-07  Anthony Green  
12011
 
12012
        * class.c (layout_class): Handle case where superclass can't be
12013
        layed out yet.
12014
 
12015
2000-10-07  Joseph S. Myers  
12016
 
12017
        * Makefile.in (keyword.h): Refer to GNU FTP site for updated
12018
        gperf.
12019
 
12020
2000-10-05  Tom Tromey  
12021
 
12022
        * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
12023
        * jvgenmain.c (class_mangling_prefix): Removed.
12024
        (class_mangling_suffix): New global.
12025
        (main): Use it.
12026
        * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
12027
        `$'.
12028
        (print_method_info): Handle overrides for static and final
12029
        methods.
12030
        (process_file): Generate declaration for class object field.
12031
        * class.c (cxx_keywords): New array.
12032
        (utf8_cmp): New function.
12033
        (cxx_keyword_p): New function.
12034
        (layout_class_method): Mangle C++ keywords by appending `$'.
12035
        (mangle_field): New function.
12036
        (mangle_class_field): Use mangle_field.  Mangle class name as
12037
        `class$'.
12038
        (mangle_static_field): Use mangle_field.
12039
 
12040
2000-10-03  Alexandre Petit-Bianco  
12041
 
12042
        * decl.c (find_local_variable): Removed uncessary type check and
12043
        fixed range check typo. From Corey Minyard.
12044
 
12045
2000-09-13  Alexandre Petit-Bianco  
12046
 
12047
        * decl.c (give_name_to_locals): New local `code_offset'. Call
12048
        `maybe_adjust_start_pc'.
12049
        * expr.c (note_instructions): New function.
12050
        (expand_byte_code): Don't collect insn starts here.
12051
        (peek_opcode_at_pc): New function.
12052
        (maybe_adjust_start_pc): Likewise.
12053
        * java-tree.h (maybe_adjust_start_pc): Declare.
12054
        (note_instructions): Likewise.
12055
        * jcf-parse.c (parse_class_file): Call `note_instructions'.
12056
 
12057
2000-09-13  Alexandre Petit-Bianco  
12058
 
12059
        * parse.y (field_access:): Fixed indentation.
12060
        (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
12061
 
12062
2000-09-07  Tom Tromey  
12063
 
12064
        Fix for PR gcj/307:
12065
        * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
12066
        JPRIMITIVE_TYPE_P, for arithmetic operators.
12067
        (patch_method_invocation): Indentation fix.
12068
        (try_builtin_assignconv): Handle boolean specially.  Fixed typo.
12069
        (valid_builtin_assignconv_identity_widening_p): Handle boolean.
12070
        (do_unary_numeric_promotion): Cleaned up code.
12071
        (valid_cast_to_p): Handle boolean correctly.
12072
 
12073
2000-09-27  Tom Tromey  
12074
 
12075
        * lex.c (java_read_unicode): Reset bs_count when finished with
12076
        `\u' sequence.
12077
 
12078
2000-10-01  Mark Mitchell  
12079
 
12080
        Convert to GC.
12081
        * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
12082
        * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
12083
        (typeck.o): Depend on ggc.h.
12084
        * class.c (add_method_1): Use GC functions for allocation.
12085
        (init_class_processing): Register roots.
12086
        * decl.c (ggc_p): Set to 1.
12087
        (pending_local_decls): Make it static.
12088
        (push_jvm_slot): Use GC functions for allocation.
12089
        (init_decl_processing): Register roots.
12090
        (give_name_to_locals): Use GC functions for allocation.
12091
        (lang_mark_tree): New function.
12092
        * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
12093
        functions for allocation.
12094
        * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
12095
        * lex.c (java_lex): Use build_string, rather than replicating it
12096
        inline.
12097
        * parse.y (goal): Add more roots.
12098
        (mark_parser_ctxt): New function.
12099
        * typeck.c: Include ggc.h.
12100
 
12101
2000-09-29  Alexandre Petit-Bianco  
12102
 
12103
        * parse.y (maybe_yank_clinit): Also keep  if its body
12104
        contains something else than MODIFY_EXPR.
12105
 
12106
2000-09-23  Mark Mitchell  
12107
 
12108
        * Make-lang.in (JAVA_SRCS): Include java-tree.h.
12109
        * Makefile.in (parse.o): Depend on ggc.h.
12110
        (class.o): Likewise.
12111
        (constants.o): Likewise.
12112
        (decl.o): Likewise.
12113
        (expr.o): Likewise.
12114
        (jcf-parse.o): Likewise.
12115
        (jcf-write.o): Likewise.
12116
        (mangle.o): Likewise.
12117
        * class.c: Include ggc.h.
12118
        (build_static_field_ref): Register GC roots.
12119
        (layout_class): Likewise.
12120
        (init_class_processing): Likewise.
12121
        * constants.c: Include ggc.h.
12122
        (current_constant_pool_data_ref): Remove.
12123
        (tag_nodes): Move it to ...
12124
        (get_tag_node): ... here.  Register GC roots.
12125
        * decl.c: Include ggc.h.  Remove many global tree definitions.
12126
        (throw_node): Define.
12127
        (java_global_trees): Likewise.
12128
        (predef_filenames): Make the size a constant.
12129
        (init_decl_processing): Adjust accordingly.
12130
        (init_decl_processing): Call init_jcf_parse.  Register GC roots.
12131
        * expr.c: Include ggc.h.
12132
        (init_expr_processing): Register GC roots.
12133
        (build_invokeinterface): Likewise.
12134
        * java-tree.h: Replace extern tree declarations with macros.
12135
        (java_global_trees): New variable.
12136
        (java_tree_index): New enumeration.
12137
        (init_jcf_parse): Declare.
12138
        * jcf-parse.c: Include ggc.h.
12139
        (current_class): Remove declaration.
12140
        (main_class): Likewise.
12141
        (all_class_list): Likewise.
12142
        (predefined_filename_p): Adjust for constant size of
12143
        predef_filenames.
12144
        (init_jcf_parse): New function.
12145
        * jcf-write.c: Include ggc.h.
12146
        (generate_classfile): Register GC roots.
12147
        (append_synthetic_attribute): Likewise.
12148
        (append_innerclass_attribute_entry): Likewise.
12149
        * lang.c: Include ggc.h.
12150
        (lang_print_error): Register GC roots.
12151
        * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
12152
        with macros.
12153
        * parse.y: Include ggc.h.
12154
        (wfl_operator): Remove.
12155
        (goal): Register GC roots.
12156
        (java_pop_parser_context): Adjust for new field names.
12157
        (java_parser_context_save_global): Likewse.
12158
        (java_parser_context_restore_global): Likewise.
12159
        (java_parser_context_suspend): Likewise.
12160
        (java_parser_context_resume): Likewise.
12161
        (verify_constructor_circularity): Register GC roots.
12162
        (lookup_cl): Likewise.
12163
        (java_reorder_fields): Likewise.
12164
        (build_current_this): Likewise.
12165
        (class_in_current_package): Likewise.
12166
        (argument_types_convertible): Likewise.
12167
        (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
12168
 
12169
2000-09-14  Tom Tromey  
12170
 
12171
        * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
12172
 
12173
2000-09-13  Tom Tromey  
12174
 
12175
        * jcf-parse.c: Include .
12176
        * jv-scan.c: Include .
12177
 
12178
2000-09-12  Tom Tromey  
12179
 
12180
        * expr.c (pop_type_0): Return `Object' if trying to merge two
12181
        interface types.
12182
        * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
12183
        interface types; `Object' is always a valid supertype.
12184
 
12185
2000-09-12  Tom Tromey  
12186
 
12187
        Fix for PR gcj/33:
12188
        * jv-scan.c (help): Document --encoding.
12189
        (options): Added `encoding' entry.
12190
        (OPT_ENCODING): New define.
12191
        (main): Handle --encoding.
12192
        Include  if nl_langinfo exists.
12193
        * lang-options.h: Document --classpath, --CLASSPATH, --main, and
12194
        --encoding.
12195
        * jcf-parse.c Include  if we have nl_langinfo.
12196
        (parse_source_file): Correctly call java_init_lex.  Added `finput'
12197
        argument.  Use nl_langinfo to determine default encoding.
12198
        * java-tree.h (current_encoding): Declare.
12199
        * parse.y (java_parser_context_restore_global): Don't restore
12200
        `finput'.
12201
        (java_parser_context_save_global): Don't set `finput' field.
12202
        (java_pop_parser_context): Don't restore `finput'.  Free old lexer
12203
        if required.
12204
        * lang.c (current_encoding): New global.
12205
        (lang_decode_option): Recognize `-fencoding='.
12206
        (finish_parse): Don't close finput.
12207
        * parse.h (struct parser_ctxt): Removed `finput' and
12208
        `unget_utf8_value' fields.  Added `lexer' field.
12209
        (java_init_lex): Fixed declaration.
12210
        * lex.c (java_new_lexer): New function.
12211
        (java_destroy_lexer): Likewise.
12212
        (java_read_char): Added `lex' argument.  Handle iconv case.
12213
        (java_read_unicode): Added `lex' argument.  Count backslashes in
12214
        lexer structure.
12215
        (java_init_lex): Added `finput' and `encoding' arguments.  Set
12216
        `lexer' field in ctxp.
12217
        (BAD_UTF8_VALUE): Removed.
12218
        (java_lex): Handle seeing UEOF in the middle of a string literal.
12219
        * lex.h: Include  if HAVE_ICONV defined.
12220
        (java_lexer): New structure.
12221
        (UNGETC): Removed.
12222
        (GETC): Removed.
12223
        (DEFAULT_ENCODING): New define.
12224
        (java_destroy_lexer): Declare.
12225
 
12226
2000-09-12  Tom Tromey  
12227
 
12228
        Fix for PR gcj/343:
12229
        * lex.c (java_init_lex): Initialize java_io_serializable.
12230
        * parse.y (java_io_serializable): New global.
12231
        (valid_ref_assignconv_cast_p): An array can be cast to
12232
        serializable.
12233
 
12234
2000-09-10  Zack Weinberg  
12235
 
12236
        * decl.c, expr.c: Include defaults.h if not already included.
12237
        Don't define the *_TYPE_SIZE macros.
12238
 
12239
2000-09-09  Geoffrey Keating  
12240
 
12241
        * typeck.c (build_java_array_type): Correct first parameter
12242
        in ADJUST_FIELD_ALIGN invocation.
12243
 
12244
2000-09-06  Tom Tromey  
12245
 
12246
        * lang-specs.h: Also recognize `-femit-class-files'.
12247
 
12248
2000-09-05  Alexandre Petit-Bianco  
12249
 
12250
        * verify.c (merge_types): Load the types to merge if necessary.
12251
 
12252
2000-09-02  Anthony Green  
12253
 
12254
        * jcf-io.c: Include zlib.h.
12255
        (open_in_zip): Read compressed class file archives.
12256
        * zipfile.h (ZipDirectory): Add uncompressed_size and
12257
        compression_method fields.
12258
        * zextract.c (read_zip_archive): Collect file compression info.
12259
 
12260
2000-08-15  Bryce McKinlay  
12261
 
12262
        * parse.y (do_resolve_class): Also explore superclasses of
12263
        intermediate enclosing contexts when searching for inner classes.
12264
 
12265
2000-08-11  Alexandre Petit-Bianco  
12266
 
12267
        * parse.y (variable_declarator_id:): Better error message.
12268
        (expression_statement:): Use YYNOT_TWICE.
12269
        (cast_expression:): Likewise.
12270
        (assignment:): Likewise.
12271
 
12272
2000-08-11  Alexandre Petit-Bianco  
12273
 
12274
        * parse.y (do_merge_string_cste): New locals. Create new
12275
        STRING_CSTs each time, use memcpy. Fixes gcj/311.
12276
 
12277
2000-08-07  Hans Boehm  
12278
 
12279
        * boehm.c (mark_reference_fields): Set marking bits for all words in
12280
        a multiple-word record.
12281
        (get_boehm_type_descriptor): Use the procedure marking descriptor for
12282
        java.lang.Class.
12283
 
12284
2000-08-31  Mike Stump  
12285
 
12286
        * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
12287
        jcf-dump$(exeext)): Make parallel safe.
12288
 
12289
2000-08-29  Zack Weinberg  
12290
 
12291
        * jcf-parse.c (set_source_filename): Constify a char *.
12292
        * jcf-write.c (append_innerclasses_attribute,
12293
        make_class_file_name): Constify a char *.  Don't recycle a
12294
        variable for an unrelated purpose.
12295
        * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
12296
        (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
12297
 
12298
2000-08-29  Alexandre Petit-Bianco  
12299
 
12300
        * expr.c (can_widen_reference_to): Fixed indentation.
12301
        * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
12302
        * parse.y: `finit$' replaces `$finit$' in comments.
12303
        (try_builtin_assignconv): Fixed leading comment.
12304
 
12305
2000-08-25  Greg McGary  
12306
 
12307
        * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
12308
 
12309
2000-08-24  Greg McGary  
12310
 
12311
        * lang.c (lang_decode_option): Use ARRAY_SIZE.
12312
        * parse.y (BINOP_LOOKUP): Likewise.
12313
 
12314
2000-08-22  Andrew Haley  
12315
 
12316
        * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
12317
        sign extending. Fixes gcj/321.
12318
        * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
12319
        combining to make a jlong. Fixes gcj/321.
12320
 
12321
2000-08-21  Nix  
12322
 
12323
        * lang-specs.h: Do not process -o or run the assembler if
12324
        -fsyntax-only.
12325
 
12326
2000-08-16  Andrew Haley  
12327
 
12328
        * typeck.c (build_java_array_type): Rewrite code to do array
12329
        alignment.  Take into account back-end macros when aligning array
12330
        data.  Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
12331
        user to set alignment. Fixes gcj/252 and 160.
12332
 
12333
2000-08-09  Tom Tromey  
12334
 
12335
        * parse.y (check_abstract_method_definitions): Now return `int'.
12336
        Check implemented interfaces.  Fixes PR gcj/305.
12337
 
12338
        * parse.y (patch_switch_statement): Disallow `long' in switch
12339
        expressions.  Fixes PR gcj/310.
12340
 
12341
2000-08-15  Alexandre Petit-Bianco  
12342
 
12343
        * decl.c (finit_leg_identifier_node): New global.
12344
        (init_decl_processing): Use `finit$' to initialize
12345
        finit_identifier_node. Use `$finit$' to initialize
12346
        finit_leg_identifier_node.
12347
        * expr.c (expand_java_field_op): Use ID_FINIT_P.
12348
        * java-tree.h (finit_identifier_node): Changed attached comment.
12349
        (finit_leg_identifier_node): New declaration.
12350
        (ID_FINIT_P): Take finit_identifier_node and
12351
        finit_leg_identifier_node into account. This is a backward
12352
        compatibility hack.
12353
 
12354
2000-08-14  Alexandre Petit-Bianco  
12355
 
12356
        * jcf-write.c (generate_bytecode_conditional): Re-installed lost
12357
        Jan 6 2000 patch.
12358
        (generate_bytecode_insns): Check `nargs' before emitting it.
12359
        * verify.c (merge_type_state): Fixed typo.
12360
        * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
12361
        generate_bytecode_{conditional,insns}.
12362
 
12363
2000-08-13  Anthony Green  
12364
 
12365
        * check-init.c (check_init): Add case for BIT_FIELD_REF (required
12366
        for -pg builds).
12367
 
12368
2000-08-10  Alexandre Petit-Bianco  
12369
 
12370
        * class.c (maybe_layout_super_class): Fixed indentation.
12371
        * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
12372
        (java_check_methods): New function declaration.
12373
        * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
12374
        instead of `str_ptr'.
12375
        * jcf-write.c (generate_bytecode_insns): Emit number the of args
12376
        of a `invokeinterface' at the right time.
12377
        * parse.h (WFL_STRIP_BRACKET): New macro.
12378
        (SET_TYPE_FOR_RESOLUTION): Use it.
12379
        * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
12380
        (check_class_interface_creation): Don't check for cross package
12381
        innerclass name clashes.
12382
        (method_header): Behave properly if MDECL is `error_mark_node'.
12383
        (method_declarator): Return `error_mark_node' if bogus current
12384
        class.
12385
        (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
12386
        (resolve_and_layout): New local `decl_type', set and used. Call
12387
        java_check_methods.
12388
        (java_check_methods): New method.
12389
        (java_layout_classes): Use it.
12390
        (resolve_qualified_expression_name): No EH check necessary in
12391
        access$.
12392
        (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
12393
        `case' statement.
12394
        (patch_assignment): Set DECL_INITIAL on integral final local.
12395
 
12396
2000-08-08  Alexandre Petit-Bianco  
12397
 
12398
        * java-tree.h (flag_extraneous_semicolon): New extern.
12399
        * lang-options.h: (-Wextraneous-semicolon): New option.
12400
        * lang.c (flag_redundant): Fixed typo in leading comment.
12401
        (flag_extraneous_semicolon): New global.
12402
        (lang_decode_option): Set `flag_extraneous_semicolon' when
12403
        -Wall. Decode `-Wextraneous-semicolon'.
12404
        * parse.y (type_declaration:): Removed `SC_TK' hack, added
12405
        `empty_statement' rule.
12406
        (class_body_declaration): Likewise.
12407
        (method_body:): Accept `;' as a method body.
12408
        (static_initializer:): Removed `SC_TK' hack.
12409
        (constructor_block_end:): Likewise.
12410
        (empty_statement:): Report deprecated empty declaration. Fixes
12411
        gcj/295
12412
 
12413
2000-08-07  Alexandre Petit-Bianco  
12414
 
12415
        * parse.y (build_dot_class_method_invocation): Changed parameter
12416
        name to `type'. Build signature from `type' and convert it to a
12417
        STRING_CST if it's an array.
12418
        (patch_incomplete_class_ref): `build_dot_class_method_invocation'
12419
        to use `ref_type' directly.
12420
 
12421
2000-08-06  Ovidiu Predescu  
12422
 
12423
        * lang-options.h: Added a comma after the last element to avoid
12424
        syntax errors when other languages define additional options.
12425
 
12426
2000-08-04  Zack Weinberg  
12427
 
12428
        * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
12429
        * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
12430
        (jc1): Link with $(BACKEND).
12431
        (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
12432
 
12433
2000-08-02  Zack Weinberg  
12434
 
12435
        * jvspec.c: Adjust type of second argument to
12436
        lang_specific_driver, and update code as necessary.
12437
 
12438
        * class.c (build_dtable_decl): Initialize dummy.
12439
 
12440
2000-08-01  Alexandre Petit-Bianco  
12441
 
12442
        * parse.y (maybe_yank_clinit): When generating bytecode: non empty
12443
        method bodies not to rule out discarding `'; don't use
12444
         to initialize static fields with constant initializers.
12445
 
12446
2000-08-01  Alexandre Petit-Bianco  
12447
 
12448
        * gjavah.c (print_method_info): Added `synth' parameter. Skip
12449
        synthetic methods.
12450
        (method_synthetic): New global.
12451
        (HANDLE_METHOD): Recognize synthetic method and tell
12452
        `print_method_info' about it.
12453
        (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
12454
        processing a synthetic method.
12455
        * jcf-reader.c (skip_attribute): New function.
12456
        ( skip_attribute): Likewise.
12457
 
12458
2000-08-01  Alexandre Petit-Bianco  
12459
 
12460
        * parse.y (build_outer_field_access): Fixed comments.
12461
        (fix_constructors): Emit the initialization of this$ before
12462
        calling $finit$.
12463
        (resolve_qualified_expression_name): Build an access to `decl' if
12464
        necessary.
12465
 
12466
2000-07-31  Alexandre Petit-Bianco  
12467
 
12468
        * parse-scan.y (curent_class): Non longer const.
12469
        (inner_qualifier, inner_qualifier_length): Deleted.
12470
        (current_class_length): New global.
12471
        (bracket_count): Fixed typo in leading comment.
12472
        (anonymous_count): New global.
12473
        (class_instance_creation_expression:): Handle anonymous classes.
12474
        (anonymous_class_creation:): New rule.
12475
        (push_class_context): Rewritten.
12476
        (pop_class_context): Likewise.
12477
        (INNER_QUALIFIER): Macro deleted.
12478
        (report_class_declaration): call `push_class_context' when
12479
        entering the function. `fprintf' format modified not to use
12480
        INNER_QUALIFIER.
12481
        (report_class_declaration): Assign `package_name' and
12482
        `current_class' to NULL separately.
12483
 
12484
2000-07-31  Alexandre Petit-Bianco  
12485
 
12486
        * expr.c (build_invokeinterface): Call layout_class_methods on
12487
        target interface.
12488
 
12489
2000-07-27  Tom Tromey  
12490
            Anthony Green  
12491
            Alexandre Petit-Bianco  
12492
 
12493
        * class.c (make_class_data): Create vtable for abstract classes.
12494
        (get_dispatch_table): Changed to cope with abstract classes.
12495
 
12496
2000-07-27  Tom Tromey  
12497
 
12498
        * parse.y (patch_method_invocation): Don't reverse the argument
12499
        list when dealing with anonymous class constructors. Fixed typo in
12500
        comment.
12501
 
12502
2000-07-27  Alexandre Petit-Bianco  
12503
 
12504
        * parse.y (build_alias_initializer_parameter_list): Reverse
12505
        crafted list when building aliases for anonymous class
12506
        constructors.
12507
 
12508
2000-07-25  Alexandre Petit-Bianco  
12509
 
12510
        * parse.y (jdep_resolve_class): Don't bother checking potential
12511
        innerclass access if `decl' is NULL.
12512
        (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
12513
        WFL.
12514
 
12515
2000-07-25  Alexandre Petit-Bianco  
12516
 
12517
        * parse.c: Remove (again.)
12518
 
12519
2000-07-24  Alexandre Petit-Bianco  
12520
 
12521
        * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
12522
        * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
12523
        outside the `if' statement, alias to innerclass removed, `decl'
12524
        used to mark the class complete.
12525
 
12526
2000-07-21  Alexandre Petit-Bianco  
12527
 
12528
        * parse.y (simple_name:): Fixed typo in error message.
12529
 
12530
2000-07-21  Alexandre Petit-Bianco  
12531
 
12532
        * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
12533
        or its first operand can be error marks.
12534
 
12535
2000-07-20  Alexandre Petit-Bianco  
12536
 
12537
        * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
12538
        * parse.y (method_header): Likewise.
12539
 
12540
2000-07-19  Alexandre Petit-Bianco  
12541
 
12542
        * parse.y (process_imports): Consider that one might be trying to
12543
        import an innerclass. Fixes gcj/254
12544
 
12545
2000-07-19  Alexandre Petit-Bianco  
12546
 
12547
        * parse.y (find_as_inner_class): Handle the case where the
12548
        enclosing context of an innerclass has been loaded as bytecode.
12549
 
12550
2000-07-19  Alexandre Petit-Bianco  
12551
 
12552
        * parse.y (simple_name:): Reject `$' in type names.
12553
        (resolve_type_during_patch): Use `type' as a second
12554
        argument to resolve_no_layout. Fixes gcj/257.
12555
 
12556
2000-07-18  Bryce McKinlay  
12557
 
12558
        * parse.y (find_most_specific_methods_list): Select the only
12559
        non-abstract method even if max has been set.
12560
        Fixes gcj/285, gcj/298.
12561
 
12562
2000-07-18  Jeff Sturm  
12563
 
12564
        * lang-specs.h: Added %(jc1) to java compiler options.
12565
 
12566
2000-07-14  Zack Weinberg  
12567
 
12568
        * .cvsignore: New file.
12569
 
12570
2000-07-13  Alexandre Petit-Bianco  
12571
 
12572
        * parse.y (not_accessible_p): Access granted to innerclasses
12573
        (indirectly) extending the reference type. Fixes gcj/249.
12574
 
12575
2000-07-13  Alexandre Petit-Bianco  
12576
 
12577
        * parse.y (patch_method_invocation): Fixed comment.
12578
        (maybe_use_access_method): Build this$s to the context of the
12579
        target method, or a type that extends it. Fixes gcj/242.
12580
 
12581
2000-07-13  Mark Mitchell  
12582
 
12583
        * parse.c: Remove.
12584
 
12585
2000-07-13  Alexandre Petit-Bianco  
12586
 
12587
        * parse.y (fold_constant_for_init): Avoid bullish conversion.
12588
 
12589
2000-07-13  Tom Tromey  
12590
 
12591
        * lang-specs.h: Added %{I*}.
12592
 
12593
2000-07-13  Zack Weinberg  
12594
 
12595
        * lang-specs.h: Use the new named specs.  Remove unnecessary braces.
12596
 
12597
2000-07-12  Mark Mitchell  
12598
 
12599
        * parse-scan.c: Remove.
12600
 
12601
2000-07-10  Alexandre Petit-Bianco  
12602
 
12603
        * class.c (set_super_info): Handled protected inner classes.
12604
        (common_enclosing_context_p): Bail early if arguments aren't both
12605
        inner classes.
12606
        (get_access_flags_from_decl): Handle private and protected inner
12607
        classes.
12608
        * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
12609
        (CLASS_PROTECTED): Likewise.
12610
        (struct lang_type): New bitfield `poic'.
12611
        * parse.y (jdep_resolve_class): Call check_inner_class_access on
12612
        inner classes only.
12613
        (check_inner_class_access): Renamed arguments, added
12614
        comments. Handles protected inner classes (fixes gcj/225)
12615
        (not_accessible_p): Fixed comments. Avoid handling inner classes.
12616
 
12617
2000-07-10  Alexandre Petit-Bianco  
12618
 
12619
        * parse.y (resolve_qualified_expression_name): Verify qualified
12620
        access to `this'. Fixes gcj/239.
12621
 
12622
2000-07-10  Alexandre Petit-Bianco  
12623
 
12624
        * jcf-write.c (generate_classfile): Don't install ConstantValue
12625
        for null pointers.
12626
 
12627
2000-07-07  Alexandre Petit-Bianco  
12628
 
12629
        * parse.y (resolve_qualified_expression_name): Handle inner class
12630
        access. Fixes gcj/256.
12631
 
12632
2000-07-07  Alexandre Petit-Bianco  
12633
 
12634
        * jcf-write.c (generate_classfile): Properly install the
12635
        ConstantValue attribute and the initial value constant pool index
12636
        on string constants.
12637
        * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
12638
        class files.
12639
 
12640
2000-07-06  Alexandre Petit-Bianco  
12641
 
12642
        * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
12643
        construct.
12644
        * parse.y (find_as_inner_class): Fixed typo.
12645
        (do_resolve_class): Explore enclosing contexts when searching for
12646
        innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
12647
        (check_inner_class_access): Check `decl' which can be null in case
12648
        of previous errors.
12649
 
12650
2000-07-05  Alexandre Petit-Bianco  
12651
 
12652
        * java-tree.h (java_debug_context): Declared `extern'.
12653
        (safe_layout_class): Likewise.
12654
        * parse.y (resolve_field_access): Field must be `static' in order
12655
        to be replaced by its initial value. Added comments.
12656
        (find_applicable_accessible_methods_list): Fixed typo.
12657
        (find_most_specific_methods_list): Methods found in innerclasses
12658
        take over methods founds in the enclosing contexts.
12659
        (java_complete_tree): Loosen restrictions on the type of DECLs
12660
        that can be replaced by their initialization values.
12661
        (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
12662
 
12663
2000-07-05  Tom Tromey  
12664
 
12665
        * Make-lang.in (PARSE_DIR): New macro.
12666
        (PARSE_RELDIR): Likewise.
12667
        (PARSE_C): Likewise.
12668
        (PARSE_SCAN_C): Likewise.
12669
        ($(PARSE_C)): New target.
12670
        ($(PARSE_SCAN_C)): Likewise.
12671
        (SET_BISON): New macro.
12672
        (BISONFLAGS): Likewise.
12673
        (JAVABISONFLAGS): Likewise.
12674
 
12675
2000-07-02  Bryce McKinlay  
12676
 
12677
        * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
12678
        argument on the first pass for CNI as well as JNI.
12679
        (print_method_info): Set up method name on the first pass only.
12680
 
12681
2000-07-01  Alexandre Petit-Bianco  
12682
 
12683
        * parse.y (parser_qualified_classname): Removed parameter
12684
        `is_static'.
12685
        (create_interface): Removed first passed parameter to
12686
        parser_qualified_classname.
12687
        (create_class): Likewise. Don't install alias on static
12688
        innerclasses. Fixes gcj/275.
12689
 
12690
2000-07-01  Alexandre Petit-Bianco  
12691
 
12692
        * parse.y (maybe_generate_pre_expand_clinit): Don't build a
12693
        debugable statement with empty_stmt_node. Fixes gcj/272
12694
 
12695
2000-07-01  Alexandre Petit-Bianco  
12696
 
12697
        * expr.c (build_instanceof): Layout type after it's loaded. Fixes
12698
        gcj/271.
12699
 
12700
2000-06-29  Alexandre Petit-Bianco  
12701
 
12702
        * jcf-write.c (push_long_const): Appropriately cast short negative
12703
        constant to jword.
12704
 
12705
2000-06-29  Alexandre Petit-Bianco  
12706
 
12707
        * parse.y (verify_constructor_super): Use loop variable
12708
        `m_arg_type' initialized with `mdecl_arg_type'.
12709
 
12710
2000-06-29  Tom Tromey  
12711
 
12712
        * parse.y (resolve_field_access): Handle case where `type_found'
12713
        is NULL.
12714
 
12715
2000-06-27  Alexandre Petit-Bianco  
12716
 
12717
        * expr.c (lookup_field): The same field can be found through two
12718
        different interface. Don't declare it ambiguous in that case.
12719
 
12720
2000-06-27  Tom Tromey  
12721
 
12722
        * lex.c (java_lineterminator): Don't recognize \r after \n.  If \r
12723
        follows \r, then unget it at a lower level.
12724
 
12725
2000-06-26  Tom Tromey  
12726
 
12727
        * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
12728
        java_complete_tree.
12729
 
12730
2000-06-25  Tom Tromey  
12731
 
12732
        * parse.y (for_statement): Wrap expression in a WFL if it is a
12733
        constant.  For PR gcj/268.
12734
 
12735
2000-06-25  Alexandre Petit-Bianco  
12736
 
12737
        * parse.y (do_resolve_class): Minor optimiztion in the package
12738
        list search. Removed unnecessary test and return statement.
12739
        (valid_ref_assignconv_cast_p): Order of arguments to
12740
        enclosing_context_p fixed.
12741
 
12742
2000-06-24  Tom Tromey  
12743
 
12744
        * expr.c (lookup_field): Print error and return error_mark_node if
12745
        field reference is ambiguous.
12746
 
12747
        * parse.y (check_abstract_method_definitions): Also check if
12748
        `other_method' is abstract.
12749
 
12750
2000-06-23  Alexandre Petit-Bianco  
12751
 
12752
        * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
12753
        classes.
12754
        * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
12755
        (struct lang_type): New field `pic'.
12756
        (CLASS_PRIVATE): New macro.
12757
        * parse.y (check_inner_class_access): New function.
12758
        (jdep_resolve_class): Call it.
12759
 
12760
2000-06-23  Tom Tromey  
12761
 
12762
        * parse.y (patch_incomplete_class_ref): Initialize the returned
12763
        class.  For PR gcj/260.
12764
 
12765
2000-06-21  Alexandre Petit-Bianco  
12766
 
12767
        * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
12768
 
12769
2000-06-20  Alexandre Petit-Bianco  
12770
 
12771
        * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
12772
        Java specific checks.
12773
        * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
12774
        screened by DECL_P.
12775
        * java-tree.def (CASE_EXPR): Marked 'e'.
12776
        (DEFAULT_EXPR): Likewise.
12777
        * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
12778
        screened by DECL_P.
12779
        * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
12780
        Java specific checks.
12781
        (generate_bytecode_insns): Test try_block for BLOCK before using
12782
        BLOCK_EXPR_BODY.
12783
        * parse.y (build_wfl_wrap): Added `location' argument. Set
12784
        EXPR_WFL_LINECOL accordingly.
12785
        (dim_expr:): Wrap constants with WFLs.
12786
        (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
12787
        (resolve_package): Check for `stmt' not being a BLOCK before
12788
        building a debuggable statement with it.
12789
        (make_qualified_primary): Added extra parameter to build_wfl_wrap
12790
        invocation.
12791
        (resolve_field_access): Make sure `decl' is a DECL before treating
12792
        it as such.
12793
        (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
12794
        IDENTIFIER_NODE before treating it as such.
12795
        (patch_new_array_init): Make sure `elt' is a TREE_LIST before
12796
        treating it as such.
12797
        (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
12798
        to be applied only on non array types.
12799
 
12800
2000-06-16  Per Bothner  
12801
 
12802
        * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN):  Don't
12803
        define in terms of DECL_RESULT, as that fails when --enable-checking.
12804
 
12805
2000-06-15  Kaveh R. Ghazi  
12806
 
12807
        * jcf-write.c (CHECK_PUT): Add static prototype.  Make pointer
12808
        types the same in comparison.
12809
        (CHECK_OP): Add static prototype.
12810
 
12811
2000-06-13  Jakub Jelinek  
12812
 
12813
        * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
12814
        * parse.y (java_complete_class): Set DECL_USER_ALIGN.
12815
        * parse.c: Rebuilt.
12816
 
12817
2000-06-11  Kaveh R. Ghazi  
12818
 
12819
        * decl.c (create_primitive_vtable): Prototype.
12820
 
12821
        * jcf-write.c (generate_bytecode_insns): Initialize variable
12822
        `saved_context'.
12823
 
12824
        * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
12825
 
12826
2000-06-09  Bryce McKinlay  
12827
 
12828
        * parse.y (find_applicable_accessible_methods_list): Use a hashtable
12829
        to track searched classes, and do not search the same class more than
12830
        once. Call find_applicable_accessible_methods_list on immediate
12831
        superclass, instead of search_applicable_method_list on all ancestors.
12832
        Fix for PR gcj/238.
12833
 
12834
2000-06-09  Bryce McKinlay  
12835
 
12836
        * parse.y (register_fields): Permit static fields in inner classes
12837
        if they are final. Fix for PR gcj/255.
12838
 
12839
2000-06-06  Alexandre Petit-Bianco  
12840
 
12841
        * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
12842
        * parse.y (find_in_imports): Returned type changed to void,
12843
        leading comment fixed.
12844
        (register_package): New function.
12845
        (qualify_and_find): Likewise.
12846
        (package_declaration:): Use `register_package'.
12847
        (single_type_import_declaration:): Removed local variable
12848
        `node'. Added missing `;' for consistency.
12849
        (type_import_on_demand_declaration:): Use `chainon' to link new
12850
        entries.
12851
        (lookup_field_wrapper): Lookup local variables defined in outer
12852
        contexts first.
12853
        (java_complete_class): Don't reverse the list of imported on demand.
12854
        (do_resolve_class): Reorganized. Removed local variable
12855
        `original_name'. Call `qualify_and_find' with the current package
12856
        name, invoke `find_in_imports_on_demand' right after. Call
12857
        `qualify_and_find' with the packages we've seen so far. Fixed
12858
        operations numbering in comments.
12859
        (java_expand_class): Don't reverse `package_list'.
12860
        (find_most_specific_methods_list): New local variables `abstract'
12861
        and `candidates'. Use them to pick the right method.
12862
 
12863
2000-06-06  Tom Tromey  
12864
 
12865
        * parse.y (check_modifiers_consistency): Don't subtract out
12866
        `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
12867
 
12868
2000-06-04  Philipp Thomas  
12869
 
12870
        * Makefile.in (INTLLIBS): New.
12871
        (LIBS): Add above.
12872
        (DEPLIBS): Ditto.
12873
 
12874
2000-06-02  Alexandre Petit-Bianco  
12875
 
12876
        * class.c (get_dispatch_table): Build the vtable dummy entry list
12877
        element with a null purpose. Fixed leading comment.
12878
        (build_dtable_decl): Build an accurate dtable type when appropriate
12879
        and use it.
12880
 
12881
2000-06-02  Richard Henderson  
12882
 
12883
        * lang.c (lang_get_alias_set): New.
12884
 
12885
2000-05-31  Alexandre Petit-Bianco  
12886
 
12887
        * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
12888
        before using it as the accessed field.
12889
 
12890
2000-05-31  Tom Tromey  
12891
 
12892
        * java-tree.h (boolean_array_vtable, byte_array_vtable,
12893
        char_array_vtable, short_array_vtable, int_array_vtable,
12894
        long_array_vtable, float_array_vtable, double_array_vtable):
12895
        Declare.
12896
        * expr.c (get_primitive_array_vtable): New function.
12897
        (create_primitive_vtable): New function.
12898
        (java_lang_expand_expr): Enable code to statically generate
12899
        arrays.
12900
        * decl.c (init_decl_processing): Create primitive vtables.
12901
        (boolean_array_vtable, byte_array_vtable, char_array_vtable,
12902
        short_array_vtable, int_array_vtable, long_array_vtable,
12903
        float_array_vtable, double_array_vtable): Define.
12904
 
12905
2000-05-26  Zack Weinberg  
12906
 
12907
        * java/parse.y (find_applicable_accessible_methods_list):
12908
        Don't add an uninitialized value to the list.
12909
 
12910
2000-05-25  Tom Tromey  
12911
 
12912
        * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
12913
        when trying to see if field's class should be initialized.  Always
12914
        initialize field's declaring class, not qualified class.
12915
        For PR gcj/162.
12916
 
12917
        * parse.y (array_constructor_check_entry): Pass `wfl_value', not
12918
        `wfl_operator', to maybe_build_primttype_type_ref.
12919
        Fixes PR gcj/235.
12920
 
12921
2000-05-23  Bryce McKinlay  
12922
 
12923
        * parse.y (patch_method_invocation): Don't try to lookup methods
12924
        in primitive types.
12925
 
12926
2000-05-02  Alexandre Petit-Bianco  
12927
 
12928
        * parse.y (resolve_field_access): Call the appropriate 
12929
        before accessing the length of a static array. Craft a decl for
12930
        the field while its time. Fixes PR gcj/129.
12931
 
12932
2000-05-01  Alexandre Petit-Bianco  
12933
 
12934
        * parse.y (resolve_package): Correctly set `*next' (was off by
12935
        one.)
12936
        (resolve_qualified_expression_name): Fixed comment.
12937
 
12938
2000-04-27  Alexandre Petit-Bianco  
12939
 
12940
        * jcf-parse.c (jcf_parse_source): Reset current_class and
12941
        current_function_decl to NULL before parsing a new file.
12942
 
12943
2000-04-27  Alexandre Petit-Bianco  
12944
 
12945
        * parse.y (block_end:): If the collected block doesn't feature a
12946
        statement, insert an empty statement.
12947
 
12948
2000-04-17  Alexandre Petit-Bianco  
12949
 
12950
        * parse.y (maybe_yank_clinit): New function.
12951
        (maybe_generate_pre_expand_clinit): Always link  at the
12952
        end of the list of methods belonging to a class.
12953
        (java_complete_expand_method): Check whether  is really
12954
        necessary and expand it accordingly.
12955
 
12956
2000-04-17  Alexandre Petit-Bianco  
12957
 
12958
        * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
12959
        processed by the method's switch statement.
12960
 
12961
2000-05-19  Tom Tromey  
12962
 
12963
        * java-tree.h: Added init state enum.
12964
        * decl.c (emit_init_test_initialization): Initialize class
12965
        initialization check variable by looking at class' state.
12966
 
12967
2000-05-19  Tom Tromey  
12968
 
12969
        * java-tree.h (build_instanceof): Declare.
12970
        (build_get_class): Declare.
12971
        * parse.y (patch_binop): Use build_instanceof.
12972
        * expr.c (build_instanceof): New function.  If class is final,
12973
        don't make a function call.
12974
        (expand_java_INSTANCEOF): Use it.
12975
        (build_get_class): New function.
12976
 
12977
2000-05-18  Alexandre Oliva  
12978
 
12979
        * jcf-write.c (generate_classfile): Scan the source_file for
12980
        slashes with the right pointer variable.
12981
 
12982
2000-05-17  Andrew Cagney  
12983
 
12984
        * lang.c (lang_decode_option): Update -Wunused flags by calling
12985
        set_Wunused.
12986
        * decl.c (poplevel): Replace warn_unused with warn_unused_label.
12987
 
12988
2000-05-09  Zack Weinberg  
12989
 
12990
        * check_init.c (check_init): Constify local char *.
12991
        * class.c (push_class): Constify local char *.
12992
        * java_tree.h: Update prototypes.
12993
        * jcf-io.c (open_class): Constify filename parameter and
12994
        return value.
12995
        (find_class): Remove redundant string copy.  Cast return from
12996
        open_class.
12997
        * jcf-parse.c (read_class, parse_class_file, yyparse):
12998
        Constify local char *.
12999
        * jcf-write.c (generate_bytecode_insns, generate_classfile):
13000
        Constify local char *.
13001
        * jcf.h (JCF): Constify filename and classname.
13002
        (JCF_FINISH): Cast args to FREE to char * when appropriate.
13003
        * lang.c (init_parse): Constify parameter and return value.
13004
        * lex.c (java_get_line_col): Constify filename parameter.
13005
        * parse.h: Constify parser_ctxt.filename.  Update prototypes.
13006
        * parse.y (java_parser_context_suspend,
13007
        issue_warning_error_from_context, safe_layout_class): Constify
13008
        local char *.
13009
        * parse.c: Regenerate.
13010
 
13011
2000-05-08  Tom Tromey  
13012
 
13013
        * expr.c (build_jni_stub): Cache the result of
13014
        _Jv_LookupJNIMethod.
13015
 
13016
2000-05-05  Alexandre Petit-Bianco  
13017
 
13018
        * decl.c (predef_filenames_size): Now 7.
13019
        (predef_filenames): New seventh entry.
13020
 
13021
2000-05-04  Tom Tromey  
13022
 
13023
        * boehm.c (mark_reference_fields): Don't mark RawData fields.
13024
        Keep track of when we've seen a reference field after a
13025
        non-reference field.
13026
        (get_boehm_type_descriptor): Handle case where we see
13027
        non-reference fields but no trailing reference field.
13028
        * decl.c (rawdata_ptr_type_node): Define.
13029
        (init_decl_processing): Initialize rawdata_ptr_type_node.
13030
        * java-tree.h (rawdata_ptr_type_node): Declare.
13031
 
13032
2000-05-04  Kaveh R. Ghazi  
13033
 
13034
        * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
13035
        specifiers in calls to fprintf.
13036
 
13037
2000-05-03  Andrew Haley  
13038
 
13039
        * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
13040
 
13041
        * javaop.h (WORD_TO_INT): New function.
13042
        (IMMEDIATE_s4): Use WORD_TO_INT.
13043
        * jcf.h (JPOOL_INT): Ditto.
13044
 
13045
        * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
13046
        separator.
13047
 
13048
2000-04-19  Tom Tromey  
13049
 
13050
        * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
13051
        on native function.
13052
        * jcf-parse.c (parse_class_file): Call build_jni_stub for native
13053
        JNI methods.
13054
        * expr.c (build_jni_stub): New function.
13055
        * lang-specs.h: -fjni and -femit-class-file are incompatible.
13056
        * parse.c: Rebuilt.
13057
        * parse.y (java_complete_expand_methods): Expand a native method
13058
        and call build_jni_stub if -fjni given.
13059
        * lang-options.h: Document -fjni.
13060
        * lang.c (flag_jni): New global.
13061
        (lang_f_options): Added `jni' entry.
13062
        * java-tree.h (soft_lookupjnimethod_node,
13063
        soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
13064
        Declare.
13065
        (flag_jni): Declare.
13066
        (build_jni_stub): Declare.
13067
        (struct lang_decl): Added `native' flag.
13068
        (METHOD_NATIVE): Redefined to use `native' field of lang specific
13069
        structure.
13070
        * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
13071
        soft_jnipopsystemframe_node): New globals.
13072
        (init_decl_processing): Set them.  _Jv_InitClass only takes one
13073
        argument.
13074
 
13075
        * java-tree.def: Put into `C' mode.
13076
 
13077
2000-04-27  Tom Tromey  
13078
 
13079
        Fix for PR gcj/2:
13080
        * expr.c (expand_invoke): Generate check to see if object pointer
13081
        is null in nonvirtual invocation case.
13082
        * java-tree.h (soft_nullpointer_node): Declare.
13083
        * decl.c (soft_nullpointer_node): New global.
13084
        (init_decl_processing): Initialize soft_nullpointer_node.
13085
        * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13086
        or `private' methods.
13087
        (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13088
 
13089
2000-04-26  Alexandre Petit-Bianco  
13090
 
13091
        * decl.c (complete_start_java_method): Don't call _Jv_InitClass
13092
        from 
13093
 
13094
2000-04-26  Tom Tromey  
13095
 
13096
        * zextract.c (find_zip_file_start): New function.
13097
        (read_zip_archive): Use it.
13098
 
13099
2000-04-25  Alexandre Petit-Bianco  
13100
 
13101
        * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
13102
 
13103
2000-04-24  Alexandre Petit-Bianco  
13104
 
13105
        * class.c (common_enclosing_context_p): New function.
13106
        * java-tree.h (common_enclosing_context_p): Added prototype.
13107
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
13108
        classes sharing an outer context with the current instance.
13109
        * parse.y (build_access_to_thisn): Fixed leading comment.
13110
        (verify_constructor_super): New local `supper_inner'. Skip
13111
        enclosing context argument in the case of inner class constructors.
13112
        (patch_method_invocation): Insert proper context as second
13113
        parameter to pure inner class constructor super invocations.
13114
 
13115
2000-04-24  Alexandre Petit-Bianco  
13116
 
13117
        * parse.y (end_class_declaration): Reset the interface number
13118
        counter.
13119
 
13120
2000-04-24  Alexandre Petit-Bianco  
13121
 
13122
        * parse.y (source_start_java_method): Deleted unnecessary code.
13123
        (patch_method_invocation): Fixed comment.
13124
 
13125
2000-04-24  Robert Lipe 
13126
 
13127
        * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
13128
 
13129
2000-04-23  Tom Tromey  
13130
 
13131
        * boehm.c (mark_reference_fields): Use int_byte_position.
13132
 
13133
2000-04-22  Tom Tromey  
13134
 
13135
        * boehm.c (mark_reference_fields): Only call byte_position on
13136
        non-static fields.
13137
 
13138
2000-04-22  Tom Tromey  
13139
 
13140
        * boehm.c (mark_reference_fields): Added `last_view_index'
13141
        argument.  Use DECL_FIELD_OFFSET to determine field's offset.
13142
 
13143
2000-04-20  Mo DeJong  
13144
 
13145
        * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
13146
        * parse.y (check_class_interface_creation): Fixed comments. Select
13147
        permitted modifiers for (inner) interfaces. Changed error message
13148
        to report rejected modifiers used with local classes.
13149
 
13150
2000-04-20  Alexandre Petit-Bianco  
13151
 
13152
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
13153
        of directly inherited type considered in scope.
13154
        * parse.y (do_resolve_class): Search inherited classes for inner
13155
        classes.
13156
 
13157
2000-04-20  Tom Tromey  
13158
 
13159
        * parse.y (not_accessible_p): Use member's class, not current
13160
        class, when doing inheritance check for protected reference.
13161
        Fixes PR gcj/124.
13162
 
13163
2000-04-20  Jason Schroeder  
13164
 
13165
        * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
13166
 
13167
2000-04-19  Alexandre Petit-Bianco  
13168
 
13169
        * parse.y (lookup_field_wrapper): Search for final local aliases.
13170
        (resolve_expression_name): Let lookup_field_wrapper search for
13171
        final local aliases. Force the value of `name' if one is found.
13172
        (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
13173
        an expression name. Fixed comments.
13174
 
13175
2000-04-19  Alexandre Petit-Bianco  
13176
 
13177
        * parse.y (yyerror): `msg' can be null, don't use it in that case.
13178
 
13179
2000-04-19  Tom Tromey  
13180
 
13181
        * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
13182
 
13183
2000-04-18  Alexandre Petit-Bianco  
13184
 
13185
        * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
13186
 
13187
2000-04-18  Tom Tromey  
13188
 
13189
        PR gcj/211:
13190
        * gjavah.c (utf8_cmp): Changed return value.
13191
        (cxx_keyword_subst): Handle all C++ keywords.  Allocate new return
13192
        result.
13193
        (cxx_keywords): New global.
13194
        (get_field_name): Handle new result of cxx_keyword_subst.
13195
        (print_method_info): Likewise.
13196
 
13197
2000-04-17  Bryce McKinlay  
13198
 
13199
        * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
13200
        with a newline, for CNI.
13201
        (print_stub_or_jni): Print a space or newline before method name for
13202
        CNI as well as JNI.
13203
        (print_cxx_classname): Don't write leading "::" in CNI stub method.
13204
        (process_file): Include gcj/cni.h if generating CNI stubs.
13205
 
13206
2000-04-16  Tom Tromey  
13207
 
13208
        * gjavah.c (decompile_method): Use print_field_name.
13209
        Fixes PR gcj/205.
13210
 
13211
2000-04-14  Alexandre Petit-Bianco  
13212
 
13213
        * parse.y (java_expand_classes): Reverse the package list once.
13214
        (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
13215
        reduction.
13216
        (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
13217
        the `==' and `!=' operators.
13218
 
13219
2000-04-05  Alexandre Petit-Bianco  
13220
 
13221
        * jcf-write.c (generate_bytecode_insns): At invocation time,
13222
        always relate an interface method to the type of its selector.
13223
 
13224
2000-04-05  Tom Tromey  
13225
 
13226
        Fix for PR gcj/2:
13227
        * expr.c (expand_invoke): Generate check to see if object pointer
13228
        is null in nonvirtual invocation case.
13229
        * java-tree.h (soft_nullpointer_node): Declare.
13230
        * decl.c (soft_nullpointer_node): New global.
13231
        (init_decl_processing): Initialize soft_nullpointer_node.
13232
        * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13233
        or `private' methods.
13234
        (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13235
 
13236
2000-04-05  Tom Tromey  
13237
 
13238
        Fix for PR gcj/140:
13239
        * parse.y (check_final_assignment): Recognize assignments to the
13240
        `length' field of an array when generating class files.
13241
 
13242
2000-04-05  Alexandre Petit-Bianco  
13243
 
13244
        * class.c (decl_hash): Prototype removed.
13245
        (decl_compare): Likewise.
13246
 
13247
2000-04-05  Tom Tromey  
13248
 
13249
        * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
13250
        * parse.y (check_modifiers_consistency): Check for final/volatile
13251
        clash.  Fixes PR gcj/164.
13252
 
13253
2000-04-05  Alexandre Petit-Bianco  
13254
 
13255
        * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
13256
        made global.
13257
        (java_hash_compare_tree_node): Renamed from `decl_compare, made
13258
        global.
13259
        (add_method_1): Use `java_hash_hash_tree_node' and
13260
        `java_hash_compare_tree_node'.
13261
        * java-tree.h: (java_hash_hash_tree_node): Prototyped.
13262
        (java_hash_compare_tree_node): Likewise.
13263
        * parse.y (find_applicable_accessible_methods_list): Create,
13264
        delete and use a hash table to remember already searched interfaces.
13265
 
13266
2000-04-03  Matt Welsh  
13267
 
13268
        * jcf-depend.c (add_entry): Fixed bug where list was always replaced
13269
        with latest entry.
13270
 
13271
2000-04-04  Kaveh R. Ghazi  
13272
 
13273
        * boehm.c (mark_reference_fields, set_bit): Prototype.
13274
        (set_bit): Un-ANSI-fy definition.
13275
 
13276
        * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
13277
        Prototype.
13278
 
13279
        * decl.c (emit_init_test_initialization): Likewise.
13280
 
13281
        * gjavah.c (jni_print_char): Likewise.
13282
 
13283
        * parse.y (create_new_parser_context): Likewise.
13284
 
13285
2000-03-30  Alexandre Petit-Bianco  
13286
 
13287
        * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
13288
        patch missing hunk. Fixed indentation.
13289
 
13290
2000-03-30  Tom Tromey  
13291
 
13292
        * gjavah.c (D_NAN_MASK): Only define as word-reversed when
13293
        HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
13294
 
13295
2000-03-28  Alexandre Petit-Bianco  
13296
 
13297
        * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13298
        when negative *before* using it as an array index.
13299
        * ChangeLog: Fixed typo.
13300
 
13301
2000-03-28  Alexandre Petit-Bianco  
13302
 
13303
        * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13304
        to 0 when it reaches -1.
13305
 
13306
2000-03-27  Alexandre Petit-Bianco  
13307
 
13308
        * jcf-parse.c (get_constant): Properly cast `num' during the
13309
        invocation of `add_double'.
13310
        * jcf-write.c (push_long_const): Properly cast `lo' before
13311
        comparing it to short bounds.
13312
        * parse-scan.y (interface_declaration:): Rule re-arrange so that
13313
        `interface_body:' is reduced after the current interface is
13314
        pushed.
13315
 
13316
2000-03-26  Tom Tromey  
13317
 
13318
        * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
13319
        Java-specific `-f' option.
13320
 
13321
2000-03-26  Richard Kenner  
13322
 
13323
        * decl.c (init_decl_processing): Only call initialize_sizetypes once.
13324
        Adjust order of making types.
13325
        Make bitsize_*_node values.
13326
 
13327
2000-03-25  Richard Kenner  
13328
 
13329
        * class.c (make_field_value): Use byte_position.
13330
        * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
13331
        (java_array_data_offset): Likewise.
13332
        * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
13333
        bzero call.
13334
 
13335
2000-03-22  Alexandre Petit-Bianco  
13336
 
13337
        * parse.y (check_abstract_method_definitions): New local
13338
        `end_type_reached'. Make sure we also consider `end_type'.
13339
        (java_check_abstract_method_definitions): Make sure we eventually
13340
        consider `java.lang.Object'.
13341
        (maybe_use_access_method): Don't use access method if not in the
13342
        context of a pure inner class or if the method's context is right.
13343
        (find_applicable_accessible_methods_list): New static flag
13344
        `object_done'. Don't search abstract classes as interfaces. Fixed
13345
        indentation. Fixed the `java.lang.Object' only search. Search
13346
        class interface(s) first, then fully search enclosing contexts.
13347
        (find_most_specific_methods_list): Pick the closest candidate when
13348
        they're all abstract.
13349
 
13350
2000-03-20  Alexandre Petit-Bianco  
13351
 
13352
        * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13353
        properly initialize `finished_label'. Don't emit gotos for empty
13354
        try statements.
13355
 
13356
2000-03-19  Martin v. Löwis  
13357
 
13358
        * except.c (emit_handlers): Clear catch_clauses_last.
13359
 
13360
2000-03-17  Alexandre Petit-Bianco  
13361
 
13362
        * parse.y (check_method_types_complete): New function.
13363
        (create_class): Reset anonymous class counter only when seeing an
13364
        non inner classe.
13365
        (java_complete_class): JDEP_METHOD: Don't recompute signature
13366
        if incomplete.
13367
 
13368
2000-03-17  Alexandre Petit-Bianco  
13369
 
13370
        * class.c (build_static_ref): Fixed indentation in comment.
13371
        * java-tree.def (TRY_EXPR): Fixed typo in name.
13372
        (CLASS_LITERAL): Likewise.
13373
        * java-tree.h: (TYPE_DOT_CLASS): New macro.
13374
        (struct lang_type): New field `dot_class'.
13375
        * jcf-write.c (generate_bytecode_insns): Fixed error message.
13376
        (generate_classfile): Method `class$' is synthetic.
13377
        * parse.y (build_do_class_method): New function.
13378
        (build_dot_class_method_invocation): Likewise.
13379
        (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
13380
        (resolve_qualified_expression_name): Handle CLASS_LITERAL.
13381
        (qualify_ambiguous_name): Likewise.
13382
        (patch_incomplete_class_ref): Invoke synthetic method if necessary.
13383
        (build_try_statement): Fixed leading comment.
13384
 
13385
2000-03-17  Richard Kenner  
13386
 
13387
        * class.c (make_field_value): Properly handle sizes.
13388
        (get_dispatch_vector): Use tree_low_cst and host_integerp.
13389
        (layout_class_method): Count using trees.
13390
        * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
13391
        * expr.c (java_array_data_offset): Use int_bit_position.
13392
        (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
13393
        (build_invokevirtual): Use tree_low_cst and do computations with trees.
13394
 
13395
2000-03-16  Tom Tromey  
13396
 
13397
        * lang.c (flag_hash_synchronization): New global.
13398
        (lang_f_options): Added `hash-synchronization'.
13399
        * lang-options.h: Mention -fhash-synchronization.
13400
        * java-tree.h (flag_hash_synchronization): Declare.
13401
        * expr.c (java_lang_expand_expr): Only push `sync_info' value when
13402
        hash table synchronization is disabled.
13403
        * decl.c (init_decl_processing): Only push `sync_info' value when
13404
        hash table synchronization is disabled.
13405
        * class.c (make_class_data): Only push `sync_info' field when hash
13406
        table synchronization is disabled.  Removed dead code.
13407
 
13408
2000-03-16  Tom Tromey  
13409
 
13410
        * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
13411
 
13412
2000-03-15  Alexandre Petit-Bianco  
13413
 
13414
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
13415
        classes.
13416
        * parse.y (patch_method_invocation): Handle anonymous classes
13417
        creation in static context.
13418
 
13419
2000-03-15  Alexandre Petit-Bianco  
13420
 
13421
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
13422
        * parse.y (resolve_qualified_expression_name): Use it.
13423
        (patch_method_invocation): Likewise.
13424
 
13425
2000-03-15  Alexandre Petit-Bianco  
13426
 
13427
        * parse.y (register_incomplete_type): JDEP_ENCLOSING set
13428
        depending on the type of dependency which dictates what the
13429
        current class is.
13430
        (unresolved_type_p): Resolved types limited to the current class.
13431
 
13432
2000-03-15  Tom Tromey  
13433
 
13434
        * decl.c (init_decl_processing): Set type of `sync_info' to be
13435
        pointer to Object.
13436
 
13437
        * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
13438
        Correctly compute bit number for current slot.  Zero `high' and
13439
        `low' in DS_LENGTH case.  Don't skip inherited fields.  Use
13440
        mark_reference_fields.
13441
        (mark_reference_fields): New function.
13442
 
13443
2000-03-14  Alexandre Petit-Bianco  
13444
 
13445
        * parse.y (register_incomplete_type): Fixed initialization of
13446
        JDEP_ENCLOSING.
13447
 
13448
2000-02-28  Alexandre Petit-Bianco  
13449
 
13450
        * parse-scan.y (inner_qualifier, inner_qualifier_length): New
13451
        static globals.
13452
        (push_class_context, pop_class_context): New function.
13453
        (class_body:): Call pop_class_context.
13454
        (interface_body:): Likewise.
13455
        (INNER_QUALIFIER): New macro.
13456
        (report_class_declaration): Changed output format and use
13457
        INNER_QUALIFIER. Call push_class_context.
13458
 
13459
2000-02-14  Andrew Haley  
13460
 
13461
        * check-init.c (check_init): Add new cases for unary and binary
13462
        tree nodes.
13463
 
13464
2000-03-13  Alexandre Petit-Bianco  
13465
 
13466
        * parse.y (resolve_package): Set `next' once a type name has been
13467
        progressively discovered.
13468
        (resolve_qualified_expression_name): Propagate resolution only if
13469
        there are remaining qualifiers. Take into account `q' might have
13470
        been cleared after re-qualification.
13471
        * parse.y (patch_method_invocation): New local `resolved'.
13472
        Section dealing with qualified expression rewritten to use
13473
        resolve_field_access.
13474
 
13475
2000-03-13  Alexandre Petit-Bianco  
13476
 
13477
        * parse.h (PUSH_CPC): Fixed indentation.
13478
        (DEBUG_CPC): New macro.
13479
        (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
13480
        SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
13481
        * parse.y (class_body_declaration:): Use
13482
        SET_CPC_INSTANCE_INITIALIZER_STMT.
13483
        (method_declaration:): Check for null current_function_decl.
13484
        (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
13485
        (java_parser_context_pop_initialized_field): Better handling of
13486
        empty lists.
13487
        (maybe_make_nested_class_name): Mark nested class name as
13488
        qualified when necessary.
13489
        (end_class_declaration): Don't call java_parse_context_resume when
13490
        one or more error occurred.
13491
        (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
13492
        (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
13493
        SET_CPC_INITIALIZER_STMT.
13494
        (method_header): Check for inner classes declaring static methods.
13495
        (resolve_qualified_expression_name): Handle situation where `this'
13496
        is implied.
13497
 
13498
2000-03-13  Hans Boehm 
13499
 
13500
        * typeck.c (build_prim_array_type): Correctly set the high word too.
13501
 
13502
2000-03-09  Alexandre Petit-Bianco  
13503
 
13504
        * parse.y (java_complete_expand_methods): Leave  out of
13505
        ordinary methods.
13506
        (maybe_generate_pre_expand_clinit): Put  at the end of the
13507
        list of methods for interfaces.
13508
 
13509
2000-03-07  Alexandre Petit-Bianco  
13510
 
13511
        * parse.y (qualify_ambiguous_name): Properly handle expressions
13512
        using `null'.
13513
 
13514
2000-03-07  Alexandre Petit-Bianco  
13515
 
13516
        * parse.y (check_final_assignment): Extended to process
13517
        COMPOUND_EXPR.
13518
        (patch_assignment): Have check_final_assignment called only once.
13519
 
13520
2000-03-07  Alexandre Petit-Bianco  
13521
 
13522
        * java-tree.h (IS_INIT_CHECKED): New flag.
13523
        * check-init.c (check_init): Test and set IS_INIT_CHECKED.
13524
        * parse.y (patch_string): Call force_evaluation_order on the
13525
        completed string concatenation tree.
13526
        * expr.c (force_evaluation_order): Call force_evaluation_order on
13527
        function's arguments too.
13528
 
13529
2000-03-06  Richard Kenner  
13530
 
13531
        * decl.c (emit_init_test_initialization): Mark KEY as unused.
13532
        * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13533
        (build_anewarray): Likewise.
13534
        * parse.y (patch_newarray): Likewise.
13535
        * parse.c: Regenerated.
13536
 
13537
2000-03-06  Bryce McKinlay  
13538
 
13539
        * decl.c (init_decl_processing): Added new class fields `depth',
13540
        `ancestors', and `idt' to class_type_node. Use
13541
        _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
13542
        * class.c (make_class_data): Push initial values for new fields.
13543
        * java-tree.h: Updated prototype for `build_invokeinterface'.
13544
        * expr.c (build_invokeinterface): Changed parameters to accept
13545
        `method' tree. Calculate index of `method' in its declaring
13546
        interface. Build call to _Jv_LookupInterfaceMethodIdx.
13547
        (expand_invoke): Call `build_invokeinterface' with new parameters.
13548
        * parse.y (patch_invoke): Call `build_invokeinterface' with new
13549
        parameters.
13550
 
13551
2000-03-06  Bryce McKinlay 
13552
 
13553
        * typeck.c (lookup_do): Search superinterfaces first
13554
        when looking up an interface method. From Godmar Back
13555
        
13556
 
13557
2000-03-06  Tom Tromey  
13558
 
13559
        * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
13560
 
13561
2000-03-02  Alexandre Petit-Bianco  
13562
 
13563
        * java-tree.h (lookup_argument_method2): Declared.
13564
        (safe_layout_class): Prototype moved from parse.h.
13565
        * parse.h (safe_layout_class): Prototype moved to java-tree.h.
13566
        * parse.y (java_check_regular_methods): Local `super_class' gone.
13567
        Call lookup_argument_method2 instead of lookup_argument_method.
13568
        Perform modifier match for methods found declared in implemented
13569
        interfaces. Fixed indentation problem. Overriding/hiding error
13570
        report to take place only for methods found in classes.
13571
        * typeck.c (lookup_argument_method): Changed leading
13572
        comment. Re-written by calling lookup_do.
13573
        (lookup_argument_method2): New function.
13574
        (lookup_java_method): Re-written by calling lookup_do.
13575
        (lookup_do): New function.
13576
 
13577
2000-03-02  Alexandre Petit-Bianco  
13578
 
13579
        * check-init.c (check_init): Removed dead code. Handle (blank)
13580
        final variables.
13581
        * parse.y (declare_local_variables): New local `final_p', set it
13582
        and use it to initialize LOCAL_FINAL.
13583
        (check_final_assignment): Only check FIELD_DECLs.
13584
 
13585
2000-02-17  Tom Tromey  
13586
 
13587
        * Makefile.in (JAVA_OBJS): Added boehm.o.
13588
        (boehm.o): New target.
13589
        * Make-lang.in (JAVA_SRCS): Added boehm.c.
13590
        * java-tree.h (flag_use_boehm_gc): Declare.
13591
        (get_boehm_type_descriptor): Declare.
13592
        * lang.c (lang_f_options): Added `use-boehm-gc'.
13593
        (flag_use_boehm_gc): New global.
13594
        * lang-options.h: Added -fuse-boehm-gc.
13595
        * boehm.c: New file.
13596
        * class.c (get_dispatch_table): If class uses a Boehm type
13597
        descriptor, put it in the vtable.
13598
        (make_class_data): Removed dead code.
13599
 
13600
2000-03-03  Per Bothner  
13601
 
13602
        * decl.c (init_decl_processing):  Initialize sizetype properly.
13603
 
13604
2000-03-01  Alexandre Petit-Bianco  
13605
 
13606
        * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
13607
        (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
13608
        * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13609
        * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
13610
        (jcf_parse): New local `current'. Load innerclasses seen in outer
13611
        context being processed.
13612
        * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13613
        * jcf-write.c (append_innerclasses_attribute): New function.
13614
        (append_innerclasses_attribute_entry): Likewise.
13615
        (get_access_flags): Handle static classes. Set anonymous and local
13616
        classes to be private.
13617
        (generate_classfile): Attribute count adjusted. Call
13618
        append_innerclasses_attribute.
13619
        * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
13620
        PURE_INNER_CLASS_TYPE_P.
13621
        * parse.y (parser_qualified_classname): New parameter `is_static',
13622
        produce non qualified name accordingly.
13623
        (block_statement:): Set LOCAL_CLASS_P when declaring local class.
13624
        (create_interface): Added argument to parser_qualified_classname.
13625
        (create_class): Added argument to parser_qualified_classname. Setup
13626
        alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
13627
        (add_inner_class_fields): Fixed indentation.
13628
        (method_declarator): Use PURE_INNER_CLASS_DECP_P.
13629
        (method_declarator): Fixed typo in comment.
13630
        (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
13631
        (build_current_thisn): Likewise.
13632
        (patch_method_invocation): Likewise.
13633
 
13634
2000-03-01  Martin von Löwis  
13635
 
13636
        * decl.c (current_function_decl): Move to toplev.c.
13637
 
13638
2000-02-28  Richard Kenner  
13639
 
13640
        * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
13641
        (DECL_BIT_INDEX): Use underlying representation.
13642
        * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
13643
 
13644
2000-02-27  Richard Kenner  
13645
 
13646
        * expr.c (build_java_ret): Pass proper type to size_binop.
13647
 
13648
2000-02-25  Anthony Green  
13649
 
13650
        * expr.c (build_class_init): Mark the decl to be ignored by
13651
        check_init.
13652
        * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
13653
        * check-init.c: Move DECL_BIT_INDEX to java-tree.h
13654
        * class.c (init_test_hash_newfunc): New function.
13655
        (decl_hash): New function.
13656
        (decl_compare): New function.
13657
        * decl.c (emit_init_test_initialization): New function.
13658
        (complete_start_java_method): Traverse the init test hashtable,
13659
        calling emit_init_test_initialization.
13660
        (always_initialize_class_p): Define.
13661
        * expr.c (build_class_init): Use initialization tests when
13662
        emitting class initialization code.
13663
        (always_initialize_class_p): Declare.
13664
        * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
13665
        1.
13666
        * java-tree.h: Include hash.h.
13667
        (DECL_FUNCTION_INIT_TEST_TABLE): Define.
13668
        (struct lang_decl): Add init_test_table field.
13669
        (init_test_hash_entry): Define.
13670
 
13671
2000-02-25  Alexandre Petit-Bianco  
13672
 
13673
        * gjavah.c (main): Avoid using `argi' to report unimplemented
13674
        options.
13675
 
13676
2000-02-25  Alexandre Petit-Bianco  
13677
 
13678
        * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13679
        initialize locals to avoid warnings. Local `exception_type' moved
13680
        into if statement.
13681
 
13682
2000-02-25  Alexandre Petit-Bianco  
13683
 
13684
        * parse.y (resolve_expression_name): Use `orig' as a second
13685
        argument to resolve_field_access.
13686
        (resolve_field_access): Removed unnecessary code when dealing with
13687
        static fields.
13688
 
13689
2000-02-23  Alexandre Petit-Bianco  
13690
 
13691
        * class.c (push_super_field): Don't push the field twice.
13692
        * jcf-parse.c (parse_source_file): Call java_reorder_fields.
13693
        * parse.h (java_reorder_fields): Prototyped.
13694
        * parse.y (java_reorder_fields): New function.
13695
        (java_layout_class): Simplified not to worry about re-ordering.
13696
 
13697
2000-02-23  Tom Tromey  
13698
 
13699
        * gjavah.c (print_name): In JNI case, correctly quote string.
13700
        (print_method_info): Don't handle overrides in JNI mode.
13701
 
13702
2000-02-22  Alexandre Petit-Bianco  
13703
 
13704
        * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
13705
        value type set to `boolean_type_node'.
13706
 
13707
2000-01-18  Joerg Brunsmann  
13708
 
13709
        * jcf-dump.c (main): Test for correct condition after
13710
        output file creation.
13711
 
13712
2000-02-19  Anthony Green  
13713
 
13714
        * jcf-depend.c (add_entry): Fix test for first list entry.
13715
 
13716
2000-02-19  Richard Kenner  
13717
 
13718
        * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
13719
        * constants.c (build_constants_constructor): Likewise.
13720
 
13721
2000-02-19  Anthony Green  
13722
 
13723
        * jcf-depend.c (add_entry): Add entries to the end of the list.
13724
 
13725
1999-11-03  Pekka Nikander  
13726
 
13727
        * decl.c (INT_TYPE_SIZE): Define if necessary.
13728
        (expand_java_return): Handle the case of a native integer smaller
13729
        than a JVM integer.
13730
 
13731
2000-02-18  Martin von Löwis  
13732
 
13733
        * gjavah.c (help): Use GCCBUGURL.
13734
        * jv-scan.c (help): Likewise.
13735
        * jcf-dump.c (help): Likewise.
13736
 
13737
2000-02-17  Alexandre Petit-Bianco  
13738
 
13739
        * jcf-write.c (generate_bytecode_insns): Don't generate empty
13740
        `finally' clauses.
13741
 
13742
2000-02-17  Alexandre Petit-Bianco  
13743
 
13744
        * jcf-parse.c (load_class): Call `fatal' if no file containing
13745
        the target class are found.
13746
 
13747
2000-02-16  Zack Weinberg  
13748
 
13749
        * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
13750
        lex.c, lex.h, and PARSE_H to...
13751
        (parse.o, parse-scan.o): ...here, respectively.
13752
 
13753
        * lex.c: Split out code that may trigger SIGFPE from yylex()
13754
        to its own function.
13755
        * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
13756
 
13757
2000-02-16  Kaveh R. Ghazi  
13758
 
13759
        * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
13760
 
13761
2000-02-15  Alexandre Petit-Bianco  
13762
 
13763
        * parse.y (outer_field_access_p): Stop in time when outer contexts
13764
        are exhausted.
13765
        (resolve_qualified_expression_name): Properly qualify *everything*
13766
        after a package.type to be resoled as expression names.
13767
        (find_applicable_accessible_methods_list): Save/restore `class' to
13768
        isolate it from a possible outer context search.
13769
 
13770
2000-02-15  Tom Tromey  
13771
 
13772
        * gjavah.c (jni_print_char): New function.
13773
        (print_full_cxx_name): Use it.
13774
        (decode_signature_piece): Likewise.
13775
        (print_cxx_classname): Likewise.
13776
 
13777
2000-02-15  Kaveh R. Ghazi  
13778
 
13779
        * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
13780
        version.o.
13781
        (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
13782
 
13783
        * gjavah.c: Include version.h.
13784
 
13785
        * jcf-dump.c: Likewise.
13786
 
13787
        * jv-scan.c: Likewise.
13788
 
13789
2000-02-12  Alexandre Petit-Bianco  
13790
 
13791
        * parse.y (outer_field_access_fix): First parameter now a tree
13792
        node. Check for assignment to final. First argument to
13793
        build_outer_field_access_fix modified to accommodate prototype.
13794
        (build_outer_field_access): Don't check for assignment to final
13795
        here.
13796
        (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
13797
        possibly returned by outer_field_access_fix. Changed
13798
        outer_field_access_fix's first argument.
13799
        (check_final_assignment): $finit$'s context is OK.
13800
        (patch_unaryop): Use node instead of its line/column value when
13801
        calling outer_field_access_fix.
13802
 
13803
2000-02-11  Alexandre Petit-Bianco  
13804
 
13805
        * parse.y (interface_declaration:): No longer tagged
13806
        . Re-installed default action.
13807
        (class_member_declaration:): Handle inner interfaces.
13808
        (interface_member_declaration): Handle inner interfaces and
13809
        classes.
13810
        (create_interface): Push error if one seen. Suspend parsing
13811
        context when processing an inner interface.
13812
        (register_fields): Inner class static field limitations not to
13813
        apply to inner interfaces.
13814
 
13815
2000-02-10  Alexandre Petit-Bianco  
13816
 
13817
        * jcf-parse.c (load_class): Update `java_error_count' when a
13818
        class' file can't be found.
13819
        (parse.y): Avoid (byte)code generation when errors seen.
13820
 
13821
2000-02-10  Alexandre Petit-Bianco  
13822
 
13823
        * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
13824
        decodes a valid node.
13825
        (patch_binop): Handle TRUNC_DIV_EXPR.
13826
 
13827
2000-02-10  Alexandre Petit-Bianco  
13828
 
13829
        * parse.y (resolve_package): New local `acc'. Try to progressively
13830
        build and guess a package and type name.
13831
 
13832
2000-02-10  Alexandre Petit-Bianco  
13833
 
13834
        * parse.y (find_applicable_accessible_methods_list): Load and
13835
        layout the search class if necessary.
13836
        (java_complete_tree): Keep to original type of the folded initial
13837
        value.
13838
 
13839
2000-02-09  Alexandre Petit-Bianco  
13840
 
13841
        * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
13842
        Generate error message if circularity is detected. New static
13843
        local `list'.
13844
        * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro.  *
13845
        * jcf-write.c (generate_bytecode_insns): Very simply handle
13846
        SAVE_EXPR.
13847
        * parse.y (java_check_circular_reference): Use
13848
        `cyclic_inheritance_report' during report, if necessary.
13849
        (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
13850
        walking NEW_ARRAY_INIT twice.
13851
 
13852
2000-02-09  Tom Tromey  
13853
 
13854
        * parse.y (check_class_interface_creation): Allow inner classes to
13855
        be `private' or `protected', check modifiers' consistency. Prevent
13856
        block local classes from bearing any modifiers.
13857
 
13858
2000-02-10  Kaveh R. Ghazi  
13859
 
13860
        * except.c (check_start_handlers): Re-add prototype lost in last
13861
        patch.
13862
        (maybe_start_try): Remove excess argument to `check_start_handlers'.
13863
 
13864
2000-02-09  Andrew Haley  
13865
 
13866
        * decl.c (clear_binding_level): Remove excess initializer.
13867
        (maybe_poplevels): Remove unused variable.
13868
        (force_poplevels): Ditto.
13869
        (struct binding_level): Add comment.
13870
 
13871
2000-02-07  Alexandre Petit-Bianco  
13872
 
13873
        * jcf-write.c (generate_classfile): Don't consider
13874
        pre-initialization with reference value (use  instead.)
13875
        * parse.y (java_fix_constructors): No generated constructor for
13876
        interfaces.
13877
        (build_outer_field_access): Removed debug message.
13878
        (outer_field_expanded_access_p): Adapted to bytecode generation.
13879
        (build_outer_field_access_method): Use fix_method_argument_names.
13880
        (build_outer_method_access_method): Fixed indentation. Added
13881
        comment. Handle access method generation for static and also void
13882
        methods.
13883
        (build_access_to_thisn): Inserted debug message.
13884
        (maybe_build_thisn_access_method): Use fix_method_argument_names.
13885
        (resolve_qualified_expression_name): Fixed comment.
13886
        (not_accessible_p): Adapted to bytecode generation. Added comment.
13887
        (patch_method_invocation): Added comment.
13888
        (maybe_use_access_method): Fixed leading comment. Handle static
13889
        methods.
13890
        (java_complete_lhs): Don't shortcut handling of initialized upon
13891
        declaration String type static fields when generating bytecode.
13892
        (patch_unaryop): Handle outer field access when generating
13893
        bytecode.
13894
 
13895
2000-02-03  Alexandre Petit-Bianco  
13896
 
13897
        * java-tree.h (FIELD_THISN): New macro.
13898
        * jcf-write.c (append_synthetic_attribute): New function.
13899
        (generate_classfile): Set "Synthetic" attribute on this$,
13900
        val$ fields, access$ and $finit$ methods. Fixed indentation.
13901
        * parse.y (add_inner_class_fields): Set FIELD_THISN for created
13902
        this$ fields.
13903
        (build_outer_field_access): Turned on access functions usage and
13904
        generation when compiling to bytecode.
13905
        (maybe_use_access_method): Likewise.
13906
 
13907
2000-01-25  Andrew Haley  
13908
 
13909
        * java-except.h (struct eh_range): Add `expanded' field.
13910
        (maybe_start_try): Add end_pc arg.
13911
        (maybe_end_try): Ditto.
13912
        * java-tree.h (force_poplevels): new function.
13913
        * expr.c (expand_byte_code): Don't call maybe_start_try or
13914
        maybe_end_try.
13915
        * except.c (add_handler): Reset expanded.
13916
        (expand_start_java_handler): Set expanded.
13917
        (check_start_handlers): Don't expand a start handler that's
13918
        already been expanded.
13919
        (maybe_start_try): Add end_pc arg.  Only expand a handler which
13920
        ends after end_pc.
13921
        (expand_end_java_handler): call force_poplevels.
13922
        (force_poplevels): new function.
13923
        * decl.c (binding_level): Add start_pc of binding level.
13924
        (maybe_pushlevels): Call maybe_start_try when pushing binding
13925
        levels.
13926
        (maybe_poplevels): Call maybe_end_try when popping binding levels.
13927
        (LARGEST_PC): Define.
13928
        (clear_binding_level): Use LARGEST_PC.
13929
 
13930
        * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
13931
        * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
13932
        (binding_depth, is_class_level, current_pc): new variables.
13933
        (struct binding_level): ditto.
13934
        (indent): new function.
13935
        (push_jvm_slot): add debugging info.
13936
        (maybe_pushlevels): ditto.
13937
        (maybe_poplevels): ditto.
13938
        (pushlevel): ditto.
13939
        (poplevel): ditto.
13940
        (start_java_method): ditto.
13941
        (give_name_to_locals): comment only.
13942
        * except.c (binding_depth, is_class_level, current_pc):
13943
        new variables.
13944
        (expand_start_java_handler): add debugging info.
13945
        (expand_end_java_handler): ditto.
13946
 
13947
2000-02-05  Kaveh R. Ghazi  
13948
 
13949
        * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
13950
        (print_name_for_stub_or_jni, process_file): Constify a char*.
13951
 
13952
2000-02-03  Tom Tromey  
13953
 
13954
        * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
13955
 
13956
2000-01-31  Scott Bambrough  
13957
 
13958
        * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
13959
        assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
13960
        defined to be 1.
13961
 
13962
2000-02-02  Alexandre Petit-Bianco  
13963
 
13964
        * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
13965
        * java-tree.h (TYPE_II_STMT_LIST): New macro.
13966
        (struct lang_type): New field `ii_block'.
13967
        * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
13968
        CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
13969
        * parse.h (struct parser_ctxt): New field `instance_initializers'.
13970
        (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
13971
        CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
13972
        CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
13973
        macros.
13974
        * parse.y (add_instance_initializer): New function.
13975
        (in_instance_initializer): New static global.
13976
        (class_body_declaration:): Link instance initializer block.
13977
        (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
13978
        (array_creation_expression:): Remove unused local.
13979
        (java_parser_context_push_initialized_field): Fixed leading
13980
        comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
13981
        CPC_INSTANCE_INITIALIZER_LIST.
13982
        (java_parser_context_pop_initialized_field): Likewise.
13983
        (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
13984
        (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
13985
        CPC_INITIALIZER_STMT.
13986
        (fix_constructors): New local `class_type'. Use it. Call
13987
        add_instance_initializer.
13988
        (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
13989
        (patch_return): Forbid return in instance initializers.
13990
        (patch_throw_statement): Enforce exception handling in the context
13991
        of instance initializers.
13992
 
13993
2000-02-03  Tom Tromey  
13994
 
13995
        * Make-lang.in (java.mostlyclean): Remove executables in
13996
        `mostlyclean'.
13997
 
13998
2000-01-31  Scott Bambrough  
13999
 
14000
        * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
14001
        HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
14002
        (java_float_finite): Convert to use union Word from javaop.h.
14003
        (java_double_finite): Convert to use union DWord from javaop.h.
14004
 
14005
2000-02-02  Tom Tromey  
14006
 
14007
        * gjavah.c (options): Added `jni' entry.
14008
        (help): Document -jni.
14009
        (flag_jni): New global.
14010
        (process_file): Handle JNI output.  Don't print text from
14011
        -prepend, -add, etc, when generating stubs.  Only remove `.class'
14012
        suffix if it actually exists.
14013
        (main): Create a `.c' file when run with `--jni --stubs'.  Create
14014
        correct output file name with `--jni'.
14015
        (print_include): Mangle header name differently in JNI case.
14016
        (HANDLE_METHOD): In JNI mode, call print_method_info to generate
14017
        method list.
14018
        (print_method_info): Handle JNI case.  Put signature info into
14019
        method name.  Handle case when STREAM is NULL.
14020
        (print_name_for_stub_or_jni): New function.
14021
        (print_stub_or_jni): Renamed from `print_stub'.  Handle JNI.
14022
        (print_cxx_classname): Handle JNI.
14023
        (print_full_cxx_name): Likewise.
14024
        (decode_signature_piece): Likewise.
14025
        (overloaded_jni_method_exists_p): New function.
14026
        (struct method_name): Added `signature' and `sig_length' fields.
14027
        (HANDLE_END_FIELD): Do nothing in JNI mode.
14028
 
14029
2000-02-02  Tom Tromey  
14030
 
14031
        * jv-scan.c: Include version.c, .
14032
        (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
14033
        (options): New array.
14034
        (usage): New function.
14035
        (version): New function.
14036
        (main): Use getopt_long to parse command line.
14037
        * jcf-dump.c: Include version.c, .
14038
        (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
14039
        OPT_JAVAP): New macros.
14040
        (options): New array.
14041
        (usage): Return `void'.  Changed message.
14042
        (help): New function.
14043
        (version): New function.
14044
        (main): Use getopt_long_only to parse command line.
14045
        * gjavah.c: Include .
14046
        (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
14047
        OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
14048
        OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
14049
        (options): New array.
14050
        (java_no_argument): Removed.
14051
        (help): Updated with missing options.
14052
        (main): Use getopt_long_only to parse command line.
14053
        (usage): Changed message.
14054
 
14055
2000-02-01  Alexandre Petit-Bianco  
14056
 
14057
        * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
14058
        * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
14059
        ANONYMOUS_ARRAY_INITIALIZER): New access macros.
14060
        * parse.y (array_creation_expression:): Handle anonymous arrays.
14061
        (build_array_from_name): Don't set `ret_name' if null.
14062
        (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
14063
        (qualify_ambiguous_name): Likewise.
14064
        (java_complete_expand_class): Likewise.
14065
 
14066
2000-02-01  Alexandre Petit-Bianco  
14067
 
14068
        * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
14069
        * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
14070
        (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
14071
        (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
14072
        (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
14073
        AIPL_FUNCTION_COMPLETED_INVOCATION.
14074
        (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
14075
        AIPL_FUNCTION_INVOCATION_READY.
14076
        (AIPL_FUNCTION_DECLARATION): New enum entry.
14077
        * parse.y (reorder_static_initialized): New function.
14078
        (java_parser_context_pop_initialized_field): Use it.
14079
        (add_inner_class_fields): Use
14080
        MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
14081
        augmented. Install marker after last alias initializer, if any.
14082
        (generate_finit): Fixed typo. Don't try to retain only the used
14083
        fields.
14084
        (method_header): Compute and set DECL_FUNCTION_NAP.
14085
        (method_declarator): Fixed comment. Insert alias initializer in
14086
        parameter list.
14087
        (build_alias_initializer_parameter_list): Fixed leading
14088
        comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
14089
        replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
14090
        (java_complete_expand_class): Code to retain only used aliases
14091
        removed.
14092
        (java_complete_expand_methods): New local `first_decl'. Generate
14093
        $finit$ first, then expand the constructors, regular methods and
14094
        .
14095
        (java_complete_expand_method): Don't report error on missing
14096
        return statement if previously detected bogus.
14097
        (fix_constructors): Don't patch constructor parameters list.
14098
        (patch_method_invocation): Use new AIPL enum values. Reverse
14099
        alias initializer list for anonymous classes.
14100
 
14101
2000-01-30  Anthony Green  
14102
 
14103
        * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
14104
        determine how many stack slots to pop.
14105
 
14106
2000-01-29  Alexandre Petit-Bianco  
14107
 
14108
        * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
14109
        error handling/recovery.
14110
        * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
14111
 
14112
2000-01-28  Alexandre Petit-Bianco  
14113
 
14114
        * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
14115
        FIELD_LOCAL_ALIAS_USED): New macros.
14116
        (DECL_FUNCTION_NAP): New macro.
14117
        (struct lang_decl): New field `nap'.
14118
        (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
14119
        (struct lang_type): New fields `finit_stmt_list' and
14120
        `clinit_stmt_list'.
14121
        (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
14122
        * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
14123
        (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
14124
        UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
14125
        (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
14126
        AIPL_FUNCTION_INVOCATION_READY): New enum fields.
14127
        (BUILD_THROW): Macro line separator re-indented.
14128
        * parse.y (end_class_declaration): New function.
14129
        (maybe_generate_pre_expand_clinit): New name for
14130
        java_pre_expand_clinit. Create  off TYPE_CLINIT_STMT_LIST,
14131
        pre-expand static fields.
14132
        (maybe_generate_clinit): Function deleted.
14133
        (check_for_static_method_reference): Prototype's parameter list
14134
        indented.
14135
        (generate_finit): New name for maybe_generate_finit. Changed
14136
        leading comment. Function rewritten to use
14137
        TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
14138
        (build_alias_initializer_parameter_list): New function.
14139
        (java_parser_context_pop_initialized_field): Likewise.
14140
        (add_inner_class_fields): Likewise.
14141
        (type_declaration:): Call end_class_declaration.
14142
        (class_member_declaration:): Likewise.
14143
        (formal_parameter_list:): Fixed typos.
14144
        (formal_parameter:): Use ARG_FINAL_P to mark created tree list
14145
        element. Improved error handling.
14146
        (block_statement:): Call end_class_declaration.
14147
        (anonymous_class_creation:): Likewise.
14148
        (create_anonymous_class): Fixed comments.
14149
        (create_class): Call add_inner_class_fields.
14150
        (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
14151
        (method_header): Use MARK_FINAL_PARMS.
14152
        (finish_method_declaration): Use UNMARK_FINAL_PARMS.
14153
        (method_declarator): Propagate final argument flag.
14154
        (craft_constructor): New local `artificial'. Call
14155
        build_alias_initializer_parameter_list. Use
14156
        CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
14157
        (source_start_java_method): Mark parm decls with LOCAL_FINAL if
14158
        necessary.
14159
        (complete_expand_class): Get rid of unused outer context local
14160
        alias fields.
14161
        (java_complete_expand_methods): Fixed leading
14162
        comment. Generate/pre-expand  first. Changed method
14163
        expansion order to regular, $finit$, constructors, .
14164
        (java_complete_expand_method): Set current_function_decl.
14165
        (fix_constructors): Fix constructor parameter list to account for
14166
        outer context local alias initializers.
14167
        (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14168
        (resolve_expression_name): Lookup outer context local aliases. New
14169
        local `access', use it.
14170
        (patch_method_invocation): Patch inner class ctor invocation with
14171
        outer context local aliases initialization values. $finit$
14172
        invocation patching now includes things generated with
14173
        build_alias_initializer_parameter_list.
14174
        (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14175
        (build_super_invocation): Likewise.
14176
        (patch_assignment): Changed comment.
14177
 
14178
2000-01-27  Andrew Haley  
14179
 
14180
        * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
14181
        (emit_if): Ditto.
14182
        (emit_jsr): Ditto.
14183
 
14184
2000-01-25  Kaveh R. Ghazi  
14185
 
14186
        * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
14187
        concatenation.
14188
        (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
14189
 
14190
        * parse.y (register_fields): Don't pass a format specifier to
14191
        OBSOLETE_MODIFIER_WARNING.
14192
        (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
14193
        instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
14194
        specifier.
14195
        (check_modifiers): Change function into a macro.
14196
        (check_class_interface_creation): Pass a literal format string.
14197
 
14198
2000-01-21  Kaveh R. Ghazi  
14199
 
14200
        * buffer.h: PROTO -> PARAMS.
14201
        * check-init.c: Likewise.
14202
        * class.c: Likewise.
14203
        * constants.c: Likewise.
14204
        * convert.h: Likewise.
14205
        * decl.c: Likewise.
14206
        * except.c: Likewise.
14207
        * expr.c: Likewise.
14208
        * gjavah.c: Likewise.
14209
        * java-except.h: Likewise.
14210
        * java-tree.h: Likewise.
14211
        * jcf-depend.c: Likewise.
14212
        * jcf-dump.c: Likewise.
14213
        * jcf-parse.c: Likewise.
14214
        * jcf-path.c: Likewise.
14215
        * jcf-reader.c: Likewise.
14216
        * jcf-write.c: Likewise.
14217
        * jcf.h: Likewise.
14218
        * jv-scan.c: Likewise.
14219
        * jvgenmain.c: Likewise.
14220
        * jvspec.c: Likewise.
14221
        * lang.c: Likewise.
14222
        * lex.c: Likewise.
14223
        * lex.h: Likewise.
14224
        * parse-scan.y: Likewise.
14225
        * parse.h: Likewise.
14226
        * parse.y: Likewise.
14227
        * typeck.c: Likewise.
14228
        * verify.c: Likewise.
14229
        * xref.c: Likewise.
14230
        * xref.h: Likewise.
14231
        * zextract.c: Likewise.
14232
        * zipfile.h: Likewise.
14233
 
14234
2000-01-18  Alexandre Petit-Bianco  
14235
 
14236
        * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14237
        (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
14238
        * constants.c (build_constant_data_ref): Check for cached
14239
        current_constant_pool_data_ref. Cache current_constant_pool_data_ref
14240
        in TYPE_CPOOL_DATE_REF.
14241
        * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
14242
        MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
14243
        (struct lang_type): New fields `cpool' and `cpool_data_ref'.
14244
        (LOCAL_FINAL): New macro.
14245
        * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
14246
        constant pool -- don't try to reuse.
14247
        (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
14248
        TYPE_LANG_SPECIFIC.
14249
        (find_in_current_zip): Use TYPE_JCF.
14250
        * parse.h (java_check_final): Prototype removed.
14251
        * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
14252
        (maybe_create_class_interface_decl,
14253
        check_class_interface_creation): Likewise.
14254
        (java_expand_finals): Function removed.
14255
        (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
14256
        (block_statement:): Fixed comment.
14257
        (anonymous_class_creation:): Likewise.
14258
        (check_class_interface_creation): Reversed Jan 12, 2000 extra
14259
        argument patch.
14260
        (check_class_interface_creation): Loosened error report on (inner)
14261
        public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
14262
        (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
14263
        (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
14264
        argument patch.
14265
        (create_interface): Likewise.
14266
        (anonymous_class_counter): New static global.
14267
        (create_anonymous_class): Reversed Jan 12, 2000 extra argument
14268
        patch. Fixed comments.
14269
        (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
14270
        anonymous_class_counter when declaring a toplevel class.
14271
        (craft_constructor): Fixed constructor name when handling
14272
        anonymous classes. Anonymous class constructors to feature hidden
14273
        this$ parameter.
14274
        (java_fix_constructors): Added comment.
14275
        (java_check_final): Function removed.
14276
        (java_complete_expand_methods): Fixed comment. Don't generate
14277
        class data, save its outgoing constant pool instead.
14278
        (verify_constructor_super): Skip anonymous class constructor
14279
        hidden this$ parameter.
14280
        (java_expand_classes): New local `saved_ctxp'. Removed call to
14281
        java_expand_finals and java_check_final. Expand anonymous class
14282
        constructors. Generate class data.
14283
        (build_super_invocation): Skip anonymous class hidden this$
14284
        parameter.
14285
        * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
14286
        MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14287
        (set_java_signature): Likewise.
14288
 
14289
2000-01-18  Joerg Brunsmann  
14290
 
14291
        * gjavah.c: Delete ACC_VISIBILITY define.
14292
        * jcf.h: Add ACC_VISIBILITY define.
14293
        * parse.y: final: rule tagged .
14294
        (java_check_regular_methods): Use ACC_VISIBILITY define for
14295
        default package access check.
14296
        (local_variable_declaration_statement): Use final: rule.
14297
 
14298
2000-01-17  Joerg Brunsmann  
14299
 
14300
        * parse.y (format_parameter:): Use final: rule instead of modifiers:.
14301
        (final:): New rule.
14302
 
14303
2000-01-17  Tom Tromey  
14304
 
14305
        * gjavah.c (print_field_info): Allow non-static final fields.
14306
 
14307
2000-01-14  Alexandre Petit-Bianco  
14308
 
14309
        * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
14310
        * parse.y (patch_anonymous_class): New function.
14311
        (create_anonymous_class): Register incomplete type when the
14312
        class/interface to extends/implement isn't known yet.
14313
        (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
14314
        (verify_constructor_super): Tuned error message.
14315
 
14316
2000-01-14  Alexandre Petit-Bianco  
14317
 
14318
        * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
14319
        (ANONYMOUS_CLASS_P): New macro.
14320
        (TYPE_SIGNATURE, TYPE_JCF): New macros.
14321
        (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
14322
        * parse.y (create_class): Added leading argument.
14323
        (maybe_create_class_interface_decl,
14324
        check_class_interface_creation): Likewise.
14325
        (craft_constructor): New function.
14326
        (verify_constructor_super): Added argument in prototype.
14327
        (class_declaration:): Inserted leading argument.
14328
        (for_begin:): Use FOR_LOOP_P.
14329
        (anonymous_class_creation): Create WFL of the anonymous class to
14330
        instantiate. Call build_new_invocation. Added comments.
14331
        (check_class_interface_creation): Handle parameter `anonymous' in
14332
        verbose mode class creation announce.
14333
        (link_nested_class_to_enclosing): Exclude anonymous classes.
14334
        (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
14335
        anonymous class, even though they appear to have an enclosing
14336
        context.
14337
        (create_interface): Pass extra argument to
14338
        check_class_interface_creation.
14339
        (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
14340
        (create_class): Call check_class_interface_creation and
14341
        maybe_create_class_interface_decl with extra new argument. Don't
14342
        add private this$ to anonymous classes.
14343
        (method_declarator): Insert hidden this$ to anonymous class
14344
        constructors.
14345
        (java_fix_constructors): Deleted code creating default
14346
        constructor. Call craft_constructor instead.
14347
        (java_check_regular_methods): Set `saw_constructor' to 1 for
14348
        anonymous classes.
14349
        (fix_constructors): Pass extra argument to verify_constructor_super.
14350
        (verify_constructor_super): New local `sdecl', use it. Search for
14351
        matching constructor (possibly featuring arguments) in super
14352
        class.
14353
        (lookup_method_invoke): Craft constructor according to arguments
14354
        list when dealing with anonymous class constructors.
14355
        (build_super_invocation): Pass arguments to anonymous class super
14356
        constructors.
14357
        (search_loop): Use FOR_LOOP_P.
14358
        (labeled_block_contains_loop_p): Likewise.
14359
 
14360
2000-01-12  Alexandre Petit-Bianco  
14361
 
14362
        * class.c (set_super_info): Set CLASS_STATIC when appropriate.
14363
        (enclosing_context_p): New function.
14364
        (get_access_flags_from_decl): Handle CLASS_STATIC.
14365
        (maybe_layout_super_class): Extra first argument passed to
14366
        do_resolve_class.
14367
        (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
14368
        ID_INIT_P.
14369
        * decl.c (access0_identifier_node): New global.
14370
        (init_decl_processing): access0_identifier_node initialized.
14371
        (pushdecl): Set DECL_CONTEXT only on non type decls.
14372
        * expr.c (lookup_field): Lookup inner class fields in enclosing
14373
        contexts.
14374
        (expand_invoke): Use ID_INIT_P.
14375
        (expand_java_field_op): Use DECL_CLINIT_P.
14376
        * java-tree.def (CLASS_LITERAL): New tree code.
14377
        * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
14378
        DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
14379
        (struct lang_decl): New field `inner_access'.
14380
        (enclosing_context_p): Prototyped.
14381
        (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
14382
        ID_CLINIT_P): New macros.
14383
        (CLASS_STATIC): New macro.
14384
        (CLASS_ACCESS0_GENERATED_P): New macro.
14385
        (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
14386
        TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
14387
        INNER_CLASS_P): New macros.
14388
        (DECL_INNER_CLASS_LIST): New macro.
14389
        * jcf-parse.c (yyparse): Avoid the use of ANSI string
14390
        concatenation.
14391
        * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14392
        the shift value to int. Fixed typo in comment.
14393
        * lex.c (inst_id, wpv_id): Initialize.
14394
        * mangle.c (unicode_mangling_length): Take `$' into account.
14395
        * parse.h (DRECOVER, RECOVER): Terminate properly.
14396
        (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
14397
        (typedef struct _jdep): New field `enclosing'.
14398
        (JDEP_ENCLOSING): New macro.
14399
        (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
14400
        (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
14401
        (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
14402
        GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
14403
        GET_ENCLOSING_CPC_CONTEXT): New macros.
14404
        (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
14405
        (do_resolve_class): Added extra argument in prototype.
14406
        * parse.y (resolve_class): Added extra argument in prototype.
14407
        (maybe_create_class_interface_decl): Likewise.
14408
        (maybe_use_access_method, build_wfl_wrap): New functions.
14409
        (java_complete_expand_classes, java_complete_expand_class):
14410
        Likewise.
14411
        (java_parser_context_push_initialized_field,
14412
        java_parser_context_suspend, java_parser_context_resume):
14413
        Likewise.
14414
        (maybe_make_nested_class_name, make_nested_class_name,
14415
        set_nested_class_simple_name_value,
14416
        link_nested_class_to_enclosing, find_as_inner_class,
14417
        find_as_inner_class_do, check_inner_class_redefinition,
14418
        build_thisn_assign, build_current_thisn, build_access_to_thisn,
14419
        maybe_build_thisn_access_method, build_outer_field_access,
14420
        build_outer_field_access_methods, build_outer_field_access_expr,
14421
        build_outer_method_access_method, build_new_access_id,
14422
        build_outer_field_access_method, outer_field_access_p,
14423
        outer_field_expanded_access_p, outer_field_access_fix,
14424
        build_incomplete_class_ref, patch_incomplete_class_ref,
14425
        create_anonymous_class): Likewise.
14426
        (inst_id, wpv_id): New static global variables.
14427
        (synchronized:): New rule, tagged .
14428
        (type_declaration:): No longer tagged . Call POP_CPC in sub
14429
        rules.
14430
        (anonymous_class_creation:): New rule, tagged .
14431
        (NEW_TK): Tagged .
14432
        (type_literals, array_type_literal): New rules, tagged .
14433
        (class_declaration:): Removed action when reducing by class_body:
14434
        (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
14435
        using GET_CPC in sub-rules.
14436
        (class_member_declaration): Handle inner classes.
14437
        (method_declaration): When reducing method_header:, reset
14438
        current_function_decl when appropriate.
14439
        (method_declarator:): Set the number of formal parameter to 0 for
14440
        method declared without arguments.
14441
        (constructor_declarator:): Likewise.
14442
        (static_initializer:): List of elements kept in a list.
14443
        (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
14444
        use of the keyword `static' for type declarations.
14445
        (block_statement:): Handle inner class declarations.
14446
        (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
14447
        type qualified `this'.
14448
        (class_instance_creation_expression): Use anonymous_class_creation:
14449
        to handle inner class instances creation. Handle qualified `new'.
14450
        (something_dot_new): Added appropriate actions.
14451
        (create_new_parser_context): New function.
14452
        (java_push_parser_context, java_parser_context_save_global,
14453
        java_parser_context_suspend): Use create_new_parser_context.
14454
        (check_modifiers): Changed leading comment.
14455
        (check_class_interface_creation): Handle interclasses.
14456
        (add_superinterfaces): Fixed comment.
14457
        (create_interface): Build qualified name from the raw_name instead
14458
        of its matching WFL. Push the initialized fields list. raw_name added
14459
        as an extra argument to maybe_create_class_interface_decl.
14460
        (create_class): Build qualified name from the raw_name instead of
14461
        its matching WFL. Removed assignment to current_parsed_class_un.
14462
        Call PUSH_ERROR before returning an error. Suspend the current
14463
        parser context when processing an inner class. Push the
14464
        initialized fields list. raw_name added as an extra argument to
14465
        maybe_create_class_interface_decl. Add the private this$
14466
        field.
14467
        (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
14468
        (register_fields): Get the class type from GET_CPC and handle
14469
        previous errors.  Added code to handle the creation of static
14470
        fields in inner classes. Initialized fields initialization
14471
        statements kept in a list of lists.
14472
        (maybe_generate_finit): Initialized fields initialization
14473
        statements kept in a list of lists. Use GET_CPC.
14474
        (maybe_generate_clinit): Likewise.
14475
        (method_header): Use GET_CPC and GET_CPC_UN.
14476
        (parser_qualified_classname): Handle inner classes.
14477
        (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
14478
        (java_fix_constructors): Hide pointer to enclosing context
14479
        instance in constructor list when dealing with inner classes.
14480
        (jdep_resolve_class): Call resolve_class with extra first argument
14481
        JDEP_ENCLOSING.
14482
        (resolve_class): Add enclosing context as a first extra argument
14483
        to do_resolve_class.
14484
        (do_resolve_class): Call find_as_inner_class. Handle WFLs
14485
        properly.
14486
        (resolve_no_layout): Extra argument added to resolve_class
14487
        invocation.
14488
        (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
14489
        (java_get_real_method_name): Use GET_CPC_UN.
14490
        (check_abstract_method_definitions): Use DECL_CLINIT_P.
14491
        (java_check_abstract_methods): Handle static method declared in
14492
        inner classes by an error.
14493
        (java_check_regular_methods): Use DECL_CLINIT_P.
14494
        (source_start_java_method): Also set DECL_MAX_LOCALS.
14495
        (create_artificial_method): Call java_parser_context_save_global
14496
        and java_parser_context_restore_global instead of saving/restoring
14497
        the context by hand.
14498
        (expand_start_java_method): Improved verbose mode message.
14499
        (java_complete_expand_methods): Fixed leading comment. Use
14500
        DECL_CLINIT_P.
14501
        (fix_constructors): Added assignment to this$ if necessary.
14502
        (java_expand_classes): Call java_complete_expand_classes instead
14503
        of java_complete_expand_methods.
14504
        (make_qualified_primary): Simplified.
14505
        (merge_qualified_name): Optimized for missing left or right parts.
14506
        (resolve_expression_name): Handle access to outer class fields from
14507
        interclasses.
14508
        (resolve_qualified_expression_name): New macro
14509
        RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
14510
        classes. Report error on non appropriate qualification of
14511
        `new'. Handle qualified `this'.
14512
        (not_accessible_p): Allow access to outer class private fields from
14513
        inner classes.
14514
        (patch_method_invocation): Handle method invocations through
14515
        access methods and inner class constructor invocations.
14516
        (find_applicable_accessible_methods_list): Search enclosing
14517
        contexts of an inner class.
14518
        (search_applicable_methods_list): Fixed typo.
14519
        (argument_types_convertible): Handle inner class constructors'
14520
        hidden outer context reference argument.
14521
        (qualify_ambiguous_name): Handle qualified `this'.
14522
        (java_complete_lhs): Handle use of field accessed through
14523
        artificial access methods in various cases of assignments. Handle
14524
        CLASS_LITERAL node.
14525
        (check_final_assignment): Use DECL_CLINIT_P.
14526
        (valid_ref_assignconv_cast_p): Handle the destination being an
14527
        enclosing context of the source.
14528
        (patch_unaryop): Handle use of field accessed through artificial
14529
        access methods.
14530
        (patch_return): Use DECL_CLINIT_P.
14531
        (patch_throw_statement): Use DECL_CLINIT_P.
14532
        (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
14533
        * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
14534
        ID_INIT_P.
14535
 
14536
2000-01-16  Anthony Green  
14537
 
14538
        * parse.y (build_string_concatenation): Only use
14539
        StringBuffer(String) shortcut if String arg is constant.
14540
 
14541
2000-01-12  Alexandre Petit-Bianco  
14542
 
14543
        * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14544
        the shift value to int. Fixed typo in comment.
14545
 
14546
2000-01-11  Mumit Khan  
14547
 
14548
        * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
14549
        * jcf-write.c: Likewise.
14550
        * parse.y: Likewise.
14551
        * parse.c: Regenerate.
14552
 
14553
2000-01-09  Anthony Green  
14554
 
14555
        * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
14556
        bytecodes in the correct order.
14557
 
14558
2000-01-09  Kaveh R. Ghazi  
14559
 
14560
        * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
14561
 
14562
2000-01-06  Anthony Green  
14563
 
14564
        * expr.c (java_lang_expand_expr): Switch to permanent obstack
14565
        before building constant array decl.
14566
 
14567
2000-01-06  Alexandre Petit-Bianco  
14568
 
14569
        * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
14570
        method invocation and typo in conditional expression.
14571
        (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
14572
        the appropriate NOTE_POP.
14573
        * parse.y (patch_binop): Shift value mask to feature the right
14574
        type.
14575
 
14576
1999-12-30  Kaveh R. Ghazi  
14577
 
14578
        * class.c (assume_compiled, assume_compiled_node): Add static
14579
        prototype.
14580
        (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
14581
 
14582
        * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
14583
 
14584
        * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
14585
 
14586
        * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
14587
        to `__modifier' to avoid stringifying it.
14588
 
14589
        * parse.y (verify_constructor_circularity): Don't call a variadic
14590
        function with a non-literal format string.
14591
        (java_check_abstract_methods): Move unreachable code inside
14592
        `continue' statement.
14593
        (lookup_method_invoke): Call xstrdup, not strdup.
14594
 
14595
        * expr.c (expand_java_field_op): Avoid the use of ANSI string
14596
        concatenation.
14597
 
14598
        * jcf-parse.c (yyparse): Likewise.
14599
 
14600
        * jv-scan.c (main): Likewise.
14601
 
14602
1999-12-30  Kaveh R. Ghazi  
14603
 
14604
        * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
14605
        ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
14606
        ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
14607
        concatenation.
14608
 
14609
        * parse.y (synchronized, variable_redefinition_error,
14610
        check_class_interface_creation, create_interface, create_class,
14611
        method_header, finish_method_declaration,
14612
        check_modifiers_consistency, method_declarator,
14613
        complete_class_report_errors, check_abstract_method_definitions,
14614
        java_check_regular_methods, check_throws_clauses,
14615
        java_check_abstract_methods, read_import_dir,
14616
        check_pkg_class_access, declare_local_variables, fix_constructors,
14617
        cut_identifier_in_qualified, resolve_expression_name,
14618
        resolve_qualified_expression_name, patch_method_invocation,
14619
        java_complete_lhs, patch_assignment, try_builtin_assignconv,
14620
        patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
14621
        patch_exit_expr, patch_exit_expr, patch_switch_statement,
14622
        patch_try_statement, patch_synchronized_statement,
14623
        patch_throw_statement, check_thrown_exceptions,
14624
        patch_conditional_expr): Likewise.
14625
 
14626
1999-12-24  Alexandre Petit-Bianco  
14627
 
14628
        * Makefile.in (LIBDEPS): Added gcc's errors.o
14629
        (../jcf-dump$(exeext):): Link with gcc's errors.o
14630
        (../gcjh$(exeext):): Likewise.
14631
        * expr.c (expand_java_NEW): Layout the entire target type instead of
14632
        laying out its methods only.
14633
        (lookup_field): Layout the class after having loaded it.
14634
        * java-tree.h (java_debug_context): Declared.
14635
        * jcf-io.c (toplev.h): Included.
14636
        (find_class): Removed assignment to jcf's outofsynch
14637
        field. Force source file to be read if newer than its matching
14638
        class file. Tweaked debug messages.
14639
        * jcf-parse.c (jcf_out_of_synch): Deleted.
14640
        (read_class): Call to jcf_out_of_synch removed.
14641
        * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
14642
        (jcf_out_of_synch): Prototype deleted.
14643
        * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
14644
        `deprecated' and `class_err': integer turned into bit-fields.
14645
        New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
14646
        * parse.y (package_list): New global.
14647
        (package_declaration:): Record newly parsed package name.
14648
        (extra_ctxp_pushed_p): Static global deleted.
14649
        (java_parser_context_save_global): Create buffer context for the
14650
        purpose of saving globals, if necessary.
14651
        (java_parser_context_restore_global): Pop context pushed for the
14652
        purpose of saving globals, if necessary.
14653
        (java_debug_context_do): New prototype and function.
14654
        (java_debug_context): Likewise.
14655
        (do_resolve_class): Use already parsed package names to qualify
14656
        and lookup class candidate.
14657
        (java_pre_expand_clinit): Removed unnecessary local variable.
14658
 
14659
1999-12-17  Tom Tromey  
14660
 
14661
        * gjavah.c (decode_signature_piece): Print "::" in JArray<>.  This
14662
        fixes PR gcj/119.
14663
        (process_file): Use `\n\' at end of each line in string.
14664
 
14665
1999-12-16  Alexandre Petit-Bianco  
14666
 
14667
        * expr.c (expand_invoke): Layout the loaded class before
14668
        attempting to use it.
14669
        (expand_java_field_op): Allow final field assignments to take
14670
        place in $finit$.
14671
        * typeck.c (convert): Return error_mark_node if expr is null.
14672
 
14673
1999-12-14  Alexandre Petit-Bianco  
14674
 
14675
        * class.c (class_depth): Return -1 if the class doesn't load
14676
        properly.
14677
        * expr.c (can_widen_reference_to): Check for errors during depth
14678
        computation and return 0 accordingly.
14679
        * jcf-parse.c (parse_source_file): Call java_fix_constructors to
14680
        create default constructors and add an other error check.
14681
        * parse.h (java_fix_constructors): Prototyped.
14682
        * parse.y (java_pre_expand_clinit): Likewise.
14683
        (build_super_invocation): Re-prototyped to feature one argument.
14684
        (java_check_circular_reference): Directly use `current'.
14685
        (java_fix_constructors): New function.
14686
        (java_check_regular_methods): Don't create default constructors
14687
        here, but abort if none were found.
14688
        (java_complete_expand_methods): Pre-process  calling
14689
        java_pre_expand_clinit.
14690
        (java_pre_expand_clinit): New function.
14691
        (fix_constructors): build_super_invocation invoked with the
14692
        current method declaration as an argument.
14693
        (build_super_invocation): Use the context of the processed method
14694
        decl argument instead of current_class.
14695
        * typeck.c (lookup_java_method): Take WFLs in method names into
14696
        account.
14697
 
14698
1999-12-14  Per Bothner  
14699
 
14700
        * class.c (make_class_data): flag_keep_inline_functions to keep
14701
        private methods in the method array.
14702
 
14703
1999-12-15  Anthony Green  
14704
 
14705
        * check-init.c (check_init): Take into account both types of
14706
        `throw's when checking for uninitialized variables.
14707
 
14708
1999-12-10  Alexandre Petit-Bianco  
14709
 
14710
        * parse.y (java_complete_lhs): Force conversion of array
14711
        dimensions to int_type_node, that's what runtime's ABI expects.
14712
 
14713
1999-12-10  Alexandre Petit-Bianco  
14714
 
14715
        * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
14716
        operand of a WFL, until the Java front-end gets fixed with regard
14717
        to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
14718
 
14719
1999-12-10  Andrew Haley  
14720
 
14721
        * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
14722
        decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
14723
        expr.c (build_java_athrow): Add support for sjlj-exceptions.
14724
        java-tree.h: Ditto.
14725
        jcf-write.c: Ditto.
14726
 
14727
1999-12-08  Alexandre Petit-Bianco  
14728
 
14729
        * expr.c (java_lang_expand_expr): Switch to permanent obstack
14730
        before calling expand_eh_region_start and expand_start_all_catch.
14731
        * except.c (expand_start_java_handler): Switch to permanent
14732
        obstack before calling expand_eh_region_start.
14733
        (expand_end_java_handler): Switch to permanent obstack before
14734
        calling expand_start_all_catch.
14735
 
14736
1999-12-5  Anthony Green  
14737
 
14738
        * decl.c (init_decl_processing): Mark throw_node as a noreturn
14739
        function with side effects.
14740
        (init_decl_processing): Mark all memory allocating DECLs with
14741
        DECL_IS_MALLOC.
14742
 
14743
1999-12-01  Alexandre Petit-Bianco  
14744
 
14745
        * except.c (expand_end_java_handler): Call
14746
        expand_resume_after_catch and end_catch_handler.
14747
 
14748
1999-11-30  Anthony Green  
14749
 
14750
        * verify.c (verify_jvm_instructions): Create new return label
14751
        chain if non existent (don't rely on the verified state of the jsr
14752
        target.)
14753
 
14754
1999-11-30  Alexandre Petit-Bianco  
14755
 
14756
        * jcf-write.c (generate_bytecode_insns): Fixed indentation for
14757
        COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
14758
 
14759
        * parse.y (patch_assignment): Removed bogus final class test on
14760
        lhs when checking on whether to emit an ArrayStoreException runtime
14761
        check.
14762
        * expr.c (expand_java_arraystore): Likewise.
14763
 
14764
1999-11-28 Anthony Green 
14765
 
14766
        * decl.c (find_local_variable): Reuse single slot decls when
14767
          appropriate.
14768
 
14769
1999-11-24  Alexandre Petit-Bianco  
14770
 
14771
        * jcf-parse.c (saw_java_source): Global variable removed.
14772
        (read_class): Don't use `saw_java_source'. Added extra braces.
14773
        (yyparse): Code setting `saw_java_source' removed.
14774
 
14775
1999-11-24  Mark Mitchell  
14776
 
14777
        * except.c (emit_handlers): Zero catch_clauses after emitting them.
14778
 
14779
1999-11-23  Alexandre Petit-Bianco  
14780
 
14781
        * verify.c (merge_type_state): Non verified subroutines being
14782
        considered more than once to trigger passive type merge.
14783
 
14784
1999-11-23  Alexandre Petit-Bianco  
14785
 
14786
        * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
14787
        in case of error. Error message tuned.
14788
 
14789
1999-11-21  Anthony Green  
14790
 
14791
        * constants.c (find_methodref_index): Unwrap method names before
14792
        inserting them in the constant pool.
14793
 
14794
        * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
14795
 
14796
        * class.c (assume_compiled_node): New typedef.
14797
        (assume_compiled_tree): New static data.
14798
        (find_assume_compiled_node): New function.
14799
        (add_assume_compiled): New function.
14800
        (assume_compiled): New function.
14801
        * class.c (make_class_data): Use assume_compiled.
14802
        (is_compiled_class): Use assume_compiled.
14803
 
14804
        * java-tree.h (add_assume_compiled): Declare.
14805
 
14806
        * lang.c (lang_decode_option): Parse new options.
14807
 
14808
1999-11-17  Alexandre Petit-Bianco  
14809
 
14810
        * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
14811
        int_type_node: that's what `_Jv_AllocObject' expects.
14812
 
14813
1999-11-11  Alexandre Petit-Bianco  
14814
 
14815
        * parse.y (lookup_method_invoke): Use lang_printable_name to
14816
        reliably build the type name during error report. Fixes PR gcj/97.
14817
 
14818
1999-11-09  Tom Tromey  
14819
 
14820
        * jcf-path.c: Include .
14821
        (jcf_path_init): Search for libjava.zip.  Fixes PR gcj/84.
14822
        (DIR_UP): New macro.
14823
 
14824
1999-11-09  Alexandre Petit-Bianco  
14825
 
14826
        * parse.y (source_end_java_method): Resume permanent allocation,
14827
        reversing Apr 27 1998 patch.
14828
        (patch_string_cst): Pop obstacks after having pushed the permanent
14829
        ones.
14830
 
14831
1999-11-05  Tom Tromey  
14832
 
14833
        * class.c (finish_class): Emit inlined methods if any native
14834
        methods exist in the class.  Fixes PR gcj/85.
14835
 
14836
1999-11-04  Alexandre Petit-Bianco  
14837
 
14838
        * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
14839
        (qualify_ambiguous_name): Likewise.
14840
 
14841
1999-11-03  Godmar Back 
14842
 
14843
        * typeck.c: (lookup_java_method):  search all inherited
14844
        interfaces when looking up interface method.
14845
 
14846
1999-11-01  Alexandre Petit-Bianco  
14847
 
14848
        * parse.y (method_header:): Issue error message for rule `type
14849
        error'.
14850
        (synchronized:): Error report when not using synchronized.
14851
 
14852
1999-11-01  Alexandre Petit-Bianco  
14853
 
14854
        * parse.y (resolve_qualified_expression_name): Prevent `this' from
14855
        being used before the superclass constructor has been called.
14856
        (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
14857
        instead of `CALL_THIS_CONSTRUCTOR_P'.
14858
 
14859
1999-10-30  Todd T. Fries 
14860
 
14861
        * check-init.c: Fix typo in comment.
14862
 
14863
1999-10-29  Alexandre Petit-Bianco  
14864
 
14865
        * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
14866
        and final method.
14867
 
14868
1999-10-29  Alexandre Petit-Bianco  
14869
 
14870
        * parse.y (expression_statement:): Call function to report
14871
        improper invocation of a constructor.
14872
        (parse_ctor_invocation_error): New function.
14873
 
14874
1999-10-26  Mark Mitchell  
14875
 
14876
        * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
14877
        remember_end_note.
14878
 
14879
1999-10-21  Tom Tromey  
14880
 
14881
        * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
14882
        in generated `main'.
14883
 
14884
1999-10-21  Alexandre Petit-Bianco  
14885
 
14886
        * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
14887
        (qualify_ambiguous_name): Likewise.
14888
 
14889
1999-10-20  Alexandre Petit-Bianco  
14890
 
14891
        * parse.y (java_complete_tree): fold_constant_for_init to work on
14892
        permanent_obstack.
14893
        (java_complete_lhs): Likewise.
14894
        (array_constructor_check_entry): Complete an initializer element
14895
        on permanent_obstack.
14896
 
14897
1999-10-19  Tom Tromey  
14898
 
14899
        * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
14900
        From Mike Moreton .
14901
 
14902
1999-10-15  Greg McGary  
14903
 
14904
        * java-tree.h (flag_bounds_check): Remove extern decl.
14905
        * lang.c (flag_bounds_check): Remove global variable.
14906
        (lang_f_options): Remove "bounds-check" entry.
14907
        (lang_init_options): Default flag_bounds_check to "on".
14908
 
14909
1999-10-14  Tom Tromey  
14910
 
14911
        * jvgenmain.c (usage): New function.
14912
        (main): Use it.  Also, handle `-D' options.
14913
        * jvspec.c (lang_specific_driver): Recognize -D.
14914
        (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
14915
 
14916
        * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
14917
 
14918
1999-10-14  Kaveh R. Ghazi  
14919
 
14920
        * jcf-dump.c (print_constant, disassemble_method): Don't call a
14921
        variadic function with a non-literal format string.
14922
 
14923
        * parse-scan.y (report_main_declaration): Likewise.
14924
 
14925
        * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
14926
 
14927
        * parse.y (read_import_dir, patch_assignment, patch_binop,
14928
        patch_array_ref): Likewise.
14929
 
14930
        * typeck.c (build_java_array_type): Likewise.
14931
 
14932
        * verify.c (verify_jvm_instructions): Likewise.
14933
 
14934
1999-10-12  Alexandre Petit-Bianco  
14935
 
14936
        * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
14937
 
14938
1999-10-07  Anthony Green  
14939
 
14940
        * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
14941
        where CHECK_PUT may fail for valid reasons.
14942
 
14943
        * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
14944
        UNSAFE_PUTN): New macros.
14945
 
14946
1999-10-04  Tom Tromey  
14947
 
14948
        * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
14949
        well.  Fixes Java PR gcj/59.
14950
        * parse-scan.y (yyerror): Report errors.
14951
 
14952
1999-09-24  Glenn Chambers  
14953
 
14954
        * decl.c (insert_block): Remove unconditional `abort'.
14955
 
14956
1999-09-24  Bernd Schmidt  
14957
 
14958
        * decl.c (builtin_function): No longer static.  New arg CLASS.  Arg
14959
        FUNCTION_CODE now of type int.  All callers changed.
14960
        Set the builtin's DECL_BUILT_IN_CLASS.
14961
 
14962
1999-09-23  Tom Tromey  
14963
 
14964
        * jvspec.c (lang_specific_driver): Don't read spec file if
14965
        -fsyntax-only given.
14966
 
14967
1999-09-22  Tom Tromey  
14968
 
14969
        * lang-specs.h: Added `%(jc1)' to the jc1 spec.
14970
 
14971
        * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
14972
        (WORDS_TO_LONG): Likewise.
14973
        (WORDS_TO_DOUBLE): Likewise.
14974
 
14975
1999-09-14  Alexandre Petit-Bianco  
14976
 
14977
        * jcf-write.c (RELOCATION_VALUE_0): New macro.
14978
        (RELOCATION_VALUE_1): Likewise.
14979
        (emit_iinc, emit_reloc, push_constant1, push_constant2,
14980
        push_in_const, push_long_const): Prototyped.
14981
        (push_constant1): Argument `index' is of type HOST_WIDE_INT.
14982
        (push_constant2): Likewise.
14983
        (push_int_const): Cast find_constant1's integer arguments to `jword'.
14984
        (find_constant_wide): Cast find_constant2's integer arguments to
14985
        `jword'.
14986
        (find_constant_index): Cast find_constant2's and find_constant2's
14987
        integer arguments to `jword'.
14988
        (emit_pop): Argument `value' is of type HOST_WIDE_INT.
14989
        (emit_switch_reloc): Use RELOCATION_VALUE_0.
14990
        (emit_if): Use RELOCATION_VALUE_1.
14991
        (emit_goto): Likewise.
14992
        (emit_jsr): Likewise.
14993
        (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
14994
        argument to push_long_const to HOST_WIDE_INT.
14995
 
14996
1999-09-15  Andreas Schwab  
14997
 
14998
        * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
14999
 
15000
1999-09-20  Nick Clifton  
15001
 
15002
        * lang.c (lang_decode_option): Extend comment.
15003
 
15004
1999-09-16  Alexandre Petit-Bianco  
15005
 
15006
        * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
15007
        instead of fndecl.
15008
 
15009
1999-09-16  Kaveh R. Ghazi  
15010
 
15011
        * gjavah.c (get_field_name, print_method_info, print_include,
15012
        add_namelet): Use xmalloc, not malloc.
15013
 
15014
        * jcf-depend.c (add_entry): Likewise.  Use xstrdup, not strdup.
15015
        (munge): Use xrealloc, not realloc, trust xrealloc to handle a
15016
        NULL pointer.
15017
 
15018
        * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
15019
 
15020
        * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
15021
 
15022
        * jcf-path.c (add_entry): Likewise.
15023
 
15024
        * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
15025
 
15026
        * jv-scan.c (xmalloc): Remove definition.
15027
 
15028
        * jvgenmain.c (xmalloc): Likewise.
15029
 
15030
        * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
15031
 
15032
        * lex.c (java_store_unicode): Use xrealloc, not realloc.
15033
 
15034
        * parse-scan.y: Use concat, not of xmalloc/assign/strcpy.  Use
15035
        concat, not xmalloc/sprintf.
15036
        (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
15037
        (xstrdup): Remove definition.
15038
 
15039
        * parse.y (duplicate_declaration_error_p,
15040
        constructor_circularity_msg, verify_constructor_circularity,
15041
        check_abstract_method_definitions, java_check_regular_methods,
15042
        java_check_abstract_methods, patch_method_invocation,
15043
        check_for_static_method_reference, patch_assignment, patch_binop,
15044
        patch_cast, array_constructor_check_entry, patch_return,
15045
        patch_conditional_expr): Use xstrdup, not strdup.
15046
 
15047
        * zextract.c (ALLOC): Use xmalloc, not malloc.
15048
 
15049
1999-09-12  Kaveh R. Ghazi  
15050
 
15051
        * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
15052
 
15053
        * jvspec.c: Include gcc.h.  Don't include gansidecl.h.
15054
        (do_spec, lang_specific_pre_link, lang_specific_driver,
15055
        input_filename, input_filename_length): Don't declare.
15056
        (main_class_name, jvgenmain_spec, lang_specific_driver):
15057
        Constify a char*.
15058
        (lang_specific_driver): All calls to the function pointer
15059
        parameter now explicitly call `fatal'.
15060
 
15061
1999-09-11  Alexandre Petit-Bianco  
15062
 
15063
        * parse.y (find_applicable_accessible_methods_list): Search
15064
        abstract classes as interfaces.
15065
 
15066
1999-09-09  Alexandre Petit-Bianco  
15067
 
15068
        * class.c (finish_class): We're now outside a valid method
15069
        declaration. Tell the rest of gcc so.
15070
 
15071
1999-09-08  Bruce Korb  autogen@linuxbox.com
15072
 
15073
        * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
15074
 
15075
1999-09-07  Tom Tromey  
15076
 
15077
        * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
15078
        java-array.h.
15079
        (decode_signature_piece): Don't emit "::" in JArray<>.
15080
        (print_namelet): Only print trailing `;' when printing a class.
15081
 
15082
1999-09-10  Bernd Schmidt  
15083
 
15084
        * java-tree.h: Delete declarations for all tree nodes now moved to
15085
        global_trees.
15086
        * decl.c: Delete their definitions.
15087
 
15088
1999-09-04  Mark Mitchell  
15089
 
15090
        * Make-lang.in (jc1): Depend on ggc-callbacks.o.
15091
        * Makefile.in (OBJS): Add ggc-callbacks.o.
15092
        (OBJDEPS): Likewise.
15093
 
15094
1999-09-03  Tom Tromey  
15095
 
15096
        * parse.y (strip_out_static_field_access_decl): Return operand if
15097
        it satisfies JDECL_P.
15098
 
15099
1999-09-02  Tom Tromey  
15100
 
15101
        * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
15102
        Handle nested arrays, like `[[I'.
15103
 
15104
1999-09-02  Kaveh R. Ghazi  
15105
 
15106
        * class.c (finish_class): Remove unused parameter, all callers
15107
        changed.
15108
 
15109
        * expr.c (build_java_athrow): Change return type to void.
15110
        (java_lang_expand_expr): Make sure each case in switch returns a
15111
        value.
15112
 
15113
        * java-tree.h (finish_class): Fix prototype to take void args.
15114
 
15115
        * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
15116
        (main): Issue return from main, not exit.
15117
 
15118
        * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
15119
 
15120
        * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
15121
 
15122
        * jv-scan.c (main): Issue return from main, not exit.
15123
 
15124
        * parse.y (check_abstract_method_definitions,
15125
        java_check_abstract_method_definitions): Add static prototypes.
15126
        (java_complete_expand_methods): Fix call to `finish_class'.
15127
 
15128
        * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
15129
        and `prevpc'.
15130
 
15131
1999-08-30  Kaveh R. Ghazi  
15132
 
15133
        * lang.c (language_string): Constify.
15134
 
15135
1999-08-30  Kaveh R. Ghazi  
15136
 
15137
        * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
15138
        Remove hacks for stuff which comes from libiberty.
15139
 
15140
        * Make-lang.in: Likewise.
15141
 
15142
1999-08-30  Hans-Peter Nilsson  
15143
 
15144
        * Makefile.in (xref.o): Depend on xref.c explicitly.
15145
 
15146
1999-08-29  Kaveh R. Ghazi  
15147
 
15148
        * java-tree.h (lang_printable_name): Constify a char*.
15149
 
15150
        * lang.c (lang_printable_name): Likewise.
15151
 
15152
1999-08-27  Jeffrey A Law  (law@cygnus.com)
15153
 
15154
        * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
15155
        comments in C code.
15156
 
15157
1999-08-26  Tom Tromey  
15158
 
15159
        * gjavah.c (print_cxx_classname): Print "::" before qualified
15160
        name.
15161
 
15162
1999-08-26  Alexandre Petit-Bianco  
15163
 
15164
        * parse.y (lookup_cl): Changed leading comment. Now does its best
15165
        to set the column number.
15166
        (qualify_ambiguous_name): Take WFL wrappers into account.
15167
 
15168
1999-08-25  Gregg Townsend  
15169
 
15170
        * verify.c (verify_jvm_instructions): Don't check instruction
15171
        validity beyond end of method.
15172
 
15173
1999-08-25  Tom Tromey  
15174
 
15175
        * jvspec.c (lang_specific_driver): Correctly handle --help again.
15176
 
15177
1999-08-25  Kaveh R. Ghazi  
15178
 
15179
        * gjavah.c (print_name, print_base_classname, utf8_cmp,
15180
        cxx_keyword_subst, generate_access, name_is_method_p,
15181
        get_field_name, print_field_name, super_class_name, print_include,
15182
        decode_signature_piece, print_class_decls, usage, help,
15183
        java_no_argument, version, add_namelet, print_namelet): Add static
15184
        prototype.
15185
        (print_base_classname, utf8_cmp, cxx_keyword_subst,
15186
        name_is_method_p): Constify a char*.
15187
        (get_field_name): Likewise.  Prefer xstrdup over malloc/strcpy.
15188
        Provide a final else clause in an if-else-if.
15189
        (print_field_info): Add missing final arg in function call to
15190
        `print_field_name'.
15191
        (print_method_info, decompile_method, decode_signature_piece,
15192
        print_c_decl, print_full_cxx_name, print_stub,
15193
        print_mangled_classname, super_class_name, print_include,
15194
        add_namelet, add_class_decl, print_class_decls, process_file,
15195
        help): Constify a char*.
15196
 
15197
        * jcf-write.c (jcf_handler, push_constant1, push_constant2,
15198
        push_int_const, find_constant_wide, find_constant_index,
15199
        push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
15200
        emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
15201
        emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
15202
        emit_if, emit_goto, emit_jsr, call_cleanups,
15203
        make_class_file_name): Add static prototypes.
15204
        (generate_bytecode_return, generate_bytecode_insns): Pass a
15205
        NULL_PTR, not a NULL_TREE.
15206
 
15207
        * jv-scan.c: Include "jcf.h".
15208
        (main): Declare using DEFUN macro.
15209
 
15210
        * jvspec.c (find_spec_file, lang_specific_pre_link,
15211
        lang_specific_driver): Add prototypes.
15212
        (find_spec_file): Constify a char*.
15213
 
15214
        * keyword.gperf (hash, java_keyword): Add prototypes.
15215
 
15216
        * lang.c (lang_print_error): Add static prototype.
15217
        (lang_init): Prefer memcpy over bcopy to avoid casts.
15218
 
15219
        * lex.c (yylex): Add static prototype.
15220
 
15221
        * parse-scan.y: Include "lex.c" earlier.
15222
 
15223
        * parse.h: Remove redundant declaration for `yylex'.
15224
 
15225
        * parse.y (java_decl_equiv, binop_compound_p, search_loop,
15226
        labeled_block_contains_loop_p): Add static prototypes.
15227
        (not_accessible_p): Make static to match prototype.
15228
 
15229
        * verify.c (start_pc_cmp): Don't needlessly cast away const.
15230
 
15231
1999-08-22  Alexandre Petit-Bianco  
15232
 
15233
        * parse.y (check_method_redefinition): Changed leading comment.
15234
        (check_abstract_method_definitions): New function.
15235
        (java_check_abstract_method_definitions): New function.
15236
        (java_check_regular_methods): Call it.
15237
        (verify_constructor_super): Fixed indentation.
15238
        (lookup_method_invoke): Likewise.
15239
 
15240
1999-08-19  Alexandre Petit-Bianco  
15241
 
15242
        * parse.y (method_header): Return a null pointer if the current
15243
        class node is null.
15244
        (finish_method_declaration): Return if the current function decl
15245
        is null.
15246
        (source_start_java_method): Likewise.
15247
        (java_method_add_stmt): Likewise.
15248
 
15249
1999-08-18  Alexandre Petit-Bianco  
15250
 
15251
        * class.c (emit_register_class): Removed unnecessary call to
15252
        start_sequence.
15253
        * parse.y (labeled_block_contains_loop_p): Removed unused local
15254
        variable.
15255
 
15256
1999-08-17  Alexandre Petit-Bianco  
15257
 
15258
        * parse.y (java_refold): Added prototype.
15259
 
15260
1999-08-17  Alexandre Petit-Bianco  
15261
 
15262
        * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
15263
        (java_stabilize_reference): Removed unnecessary `else'.
15264
        (java_complete_lhs): Set flag to remember boolean. Call
15265
        java_refold. Added comments.
15266
        (java_decl_equiv): New function.
15267
        (binop_compound_p): Likewise.
15268
        (java_refold): Likewise.
15269
        (patch_unaryop): Striped static field access assigned to decl and
15270
        op. Changed promotion scheme for ++/-- operators.
15271
        (search_loop): New function.
15272
        (labeled_block_contains_loop_p): Likewise.
15273
        (patch_loop_statement): Call labeled_block_contains_loop_p. Added
15274
        comment.
15275
        (patch_bc_statement): Call search_loop. Fixed comment.
15276
 
15277
1999-08-14  Anthony Green  
15278
 
15279
        * expr.c (java_lang_expand_expr): Mark static array data as
15280
        referenced.
15281
 
15282
1999-08-10  Rainer Orth  
15283
 
15284
        * jvgenmain.c (main): NUL-terminate name_obstack.
15285
 
15286
1999-08-10  Kaveh R. Ghazi  
15287
 
15288
        * check-init.c (check_bool2_init, done_alternative): Add static
15289
        prototypes.
15290
 
15291
        * class.c (add_interface_do, maybe_layout_super_class): Likewise.
15292
        (add_method, build_utf8_ref, build_class_ref,
15293
        append_gpp_mangled_type, layout_class_method): Constify a char*.
15294
 
15295
        * decl.c (push_promoted_type, make_binding_level): Add static
15296
        prototypes.
15297
        (push_promoted_type, pushdecl): Constify a char*.
15298
 
15299
        * except.c (find_handler_in_range, link_handler,
15300
        check_start_handlers): Add static prototypes.
15301
 
15302
        * expr.c (process_jvm_instruction): Constify a char*.
15303
 
15304
        * gjavah.c (main): Constify a char*.
15305
 
15306
        * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
15307
        Constify a char*.
15308
 
15309
        * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
15310
        static prototypes.
15311
        (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
15312
        munge, print_ents): Constify a char*.
15313
 
15314
        * jcf-dump.c (disassemble_method): Constify a char*.
15315
        (print_constant_pool, print_exception_table): Add static prototypes.
15316
        (print_constant, print_exception_table, main, disassemble_method):
15317
        Constify a char*.
15318
 
15319
        * jcf-io.c (find_classfile, find_class): Likewise.
15320
 
15321
        * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
15322
        (set_source_filename, predefined_filename_p): Add static prototypes.
15323
        (set_source_filename, get_constant, get_class_constant,
15324
        find_in_current_zip): Constify a char*.
15325
 
15326
        * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
15327
        static prototypes.
15328
        (add_entry, add_path, jcf_path_classpath_arg,
15329
        jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15330
 
15331
        * jcf-reader.c (get_attribute, jcf_parse_preamble,
15332
        jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
15333
        jcf_parse_one_method, jcf_parse_methods,
15334
        jcf_parse_final_attributes): Add static prototypes.
15335
        (get_attribute): Constify a char*.
15336
 
15337
        * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
15338
        jcf_dependency_add_target, jcf_path_classpath_arg,
15339
        jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15340
 
15341
        * jv-scan.c (main): Constify a char*.
15342
        (gcc_obstack_init): Add prototype arguments.
15343
 
15344
        * jvgenmain.c (gcc_obstack_init): Likewise.
15345
        (main): Constify a char*.
15346
 
15347
        * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
15348
        static prototypes.
15349
        (put_decl_string, lang_print_error): Constify a char*.
15350
        (lang_init): Remove redundant extern prototype.
15351
 
15352
        * mangle.c (emit_unicode_mangled_name): Constify a char*.
15353
 
15354
        * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
15355
        Add static prototypes.
15356
        (get_type_from_signature): Constify a char*.
15357
 
15358
        * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
15359
        Add static prototypes.
15360
        (start_pc_cmp): Prefer PTR over GENERIC_PTR.
15361
        (verify_jvm_instructions): Constify a char*.
15362
 
15363
        * xref.c (xref_flag_value): Likewise.
15364
 
15365
        * xref.h (xref_flag_value): Likewise.
15366
 
15367
        * zextract.c (makeword, makelong): Add static prototypes.
15368
        (makeword, makelong): Constify a uch*.
15369
 
15370
1999-08-09  Kaveh R. Ghazi  
15371
 
15372
        * lang.c (java_dummy_print): Constify a char*.
15373
        (lang_print_error): Likewise.
15374
        (lang_init): Remove redundant prototype for `print_error_function'.
15375
        (lang_init_source): Likewise.
15376
        (lang_identify): Constify a char*.
15377
 
15378
1999-08-09  Tom Tromey  
15379
 
15380
        * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
15381
        (WORDS_TO_LONG): Likewise.
15382
        (WORDS_TO_DOUBLE): Likewise.
15383
 
15384
1999-08-04  Kaveh R. Ghazi  
15385
 
15386
        * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
15387
 
15388
        * expr.c (java_stack_pop, java_array_data_offset,
15389
        build_java_throw_out_of_bounds_exception, case_identity,
15390
        build_java_check_indexed_type): Add static prototypes.
15391
        (linenumber_table, expand_invoke, expand_java_field_op,
15392
        build_primtype_type_ref, expand_byte_code): Constify a char*.
15393
 
15394
        * java-tree.h (build_primtype_type_ref, linenumber_table):
15395
        Constify a char*.
15396
        (java_lang_expand_expr): Add prototype.
15397
 
15398
        * lang.c: Include rtl.h and expr.h.  Remove extern prototype for
15399
        `java_lang_expand_expr'.
15400
 
15401
        * lex.c (java_lex_error): Constify a char*.
15402
        (java_get_unicode, java_read_char, java_allocate_new_line,
15403
        java_unget_unicode, java_sneak_unicode): Prototype.
15404
 
15405
        * parse-scan.y (current_class, package_name, method_declarator,
15406
        report_class_declaration, yyerror): Constify a char*.
15407
 
15408
        * parse.h (java_report_errors): Prototype.
15409
        (yyerror): Constify a char*.
15410
 
15411
        * parse.y (classitf_redefinition_error, check_modifiers,
15412
        parse_jdk1_1_error, lookup_package_type,
15413
        lookup_package_type_and_set_next, get_printable_method_name,
15414
        purify_type_name): Constify a char*.
15415
        (build_super_invocation, maybe_generate_finit,
15416
        verify_constructor_super, parser_add_interface,
15417
        add_superinterfaces, jdep_resolve_class, note_possible_classname,
15418
        java_complete_expand_methods, java_expand_finals,
15419
        cut_identifier_in_qualified, java_stabilize_reference,
15420
        do_unary_numeric_promotion, operator_string, do_merge_string_cste,
15421
        merge_string_cste): Prototype.
15422
        (single_type_import_declaration, yyerror,
15423
        variable_redefinition_error, build_array_from_name,
15424
        build_unresolved_array_type, check_class_interface_creation,
15425
        resolve_class, complete_class_report_errors,
15426
        note_possible_classname, read_import_dir,
15427
        find_in_imports_on_demand, resolve_package, fix_constructors,
15428
        check_deprecation, lookup_method_invoke,
15429
        maybe_build_primttype_type_ref, array_constructor_check_entry):
15430
        Constify a char*.
15431
        (java_complete_expand_methods, java_expand_finals): Make static.
15432
        (convert_narrow): Remove static prototype.
15433
 
15434
1999-08-03  J"orn Rennecke 
15435
 
15436
        * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
15437
 
15438
1999-08-02  Richard Henderson  
15439
 
15440
        * decl.c: Include defaults.h instead of expr.h.
15441
        * parse.y: Likewise.
15442
 
15443
1999-08-02  Jakub Jelinek  
15444
 
15445
        * java/decl.c (start_java_method): Change all uses of
15446
        PROMOTE_PROTOTYPES, so that it tests it as a C expression.
15447
        Ensure expr.h is included.
15448
        * java/expr.c (pop_arguments): Ditto.
15449
        * java/parse.y (expand_start_java_method): Ditto.
15450
 
15451
1999-08-01  Kaveh R. Ghazi  
15452
 
15453
        * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
15454
 
15455
1999-07-31  Bernd Schmidt  
15456
 
15457
        * decl.c: Include "function.h".
15458
        * except.c: Likewise.
15459
        * parse.y: Likewise.
15460
        * Makefile.in: Update dependencies.
15461
 
15462
1999-07-30  Kaveh R. Ghazi  
15463
 
15464
        * expr.c (build_java_soft_divmod): Provide a default case in switch.
15465
        (java_lang_expand_expr): Mark parameters `target', `tmode' and
15466
        `modifier' with ATTRIBUTE_UNUSED.
15467
 
15468
        * gjavah.c (process_file): Add braces around ambiguous `else'.
15469
 
15470
        * jcf-dump.c (print_access_flags, localvar_free): Change return
15471
        type to void.
15472
 
15473
        * parse.y (java_complete_expand_method): Initialize variable
15474
        `exception_copy'.
15475
        (resolve_qualified_expression_name): Likewise for `field_decl'.
15476
        (patch_method_invocation): Likewise for `class_to_search'.
15477
        (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
15478
        (patch_assignment): Likewise for `lhs_type'.
15479
 
15480
        * verify.c (verify_jvm_instructions): Remove unused variable
15481
        `caller'.
15482
 
15483
1999-07-25  Richard Henderson  
15484
 
15485
        * decl.c (va_list_type_node): New.
15486
 
15487
1999-07-25  Anthony Green  
15488
 
15489
        * gjavah.c (print_stub): New function.
15490
        (METHOD_IS_NATIVE): New macro.
15491
        (print_mangled_classname): Make static.
15492
        (HANDLE_END_FIELD): Don't emit fields during stub generation.
15493
        (process_file): Perform stub generation.
15494
        (HANDLE_METHOD): Don't emit class decls during stub
15495
        generation.
15496
        (HANDLE_END_METHOD): Take into account stub generation.
15497
        (print_method_info): Handle stub generation.
15498
        (print_stub): New function.
15499
        (print_cxx_classname): Make signature consistant with others.
15500
        (help): Describe -stubs option.
15501
        (main): Create stub file.
15502
        (version): Use version.c.
15503
        (print_full_cxx_name): New function.
15504
        (print_c_decl): Use print_full_cxx_name.
15505
 
15506
1999-07-22  Alexandre Petit-Bianco  
15507
 
15508
        * check-init.c (check_init): Handle MAX_EXPR.
15509
 
15510
1999-07-15  Andrew Haley  
15511
 
15512
        * lang.c (flag_use_divide_subroutine): New variable.
15513
        * typeck.c: (convert_ieee_real_to_integer): Bounds check
15514
        fp-to-integer conversion.
15515
        (convert): Call convert_ieee_real_to_integer when flag_fast_math
15516
        is not set.
15517
 
15518
        * expr.c (build_java_soft_divmod): New function.
15519
        (build_java_binop): Call build_java_soft_divmod if
15520
        flag_use_divide_subroutine is set.
15521
        * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15522
        soft_lrem_node: new builtin functions.
15523
        (init_decl_processing) Initialize the new builtins.
15524
        * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15525
        soft_lrem_node: new builtin functions.
15526
        (build_java_soft_divmod): New function.
15527
        * parse.y: Call build_java_soft_divmod if
15528
        flag_use_divide_subroutine is set.
15529
        * parse.c: Rebuilt.
15530
 
15531
        * jvspec.c (lang_specific_driver): Always allow an extra arg (for
15532
        a --specs= arg) even if not linking.
15533
        * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
15534
        -fuse-divide-subroutine
15535
 
15536
1999-07-20  Alexandre Petit-Bianco  
15537
 
15538
        * parse.y (resolve_and_layout): Check methods only once.
15539
        (resolve_qualified_expression_name): Verify thrown exceptions
15540
        compatibility.
15541
        (check_thrown_exceptions): Reject exceptions thrown in
15542
        initializer. Error message tuned.
15543
 
15544
1999-07-14  Andrew Haley  
15545
 
15546
        * expr.c (expand_expr): Do not return the last statement in a
15547
        block as the block's value.
15548
 
15549
1999-07-03  Alexandre Petit-Bianco  
15550
 
15551
        * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
15552
        CALL_EXPR, to avoid order of evaluation changes.
15553
 
15554
1999-07-02  Alexandre Petit-Bianco  
15555
 
15556
        * parse.y (qualify_ambiguous_name): Do not use
15557
        IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
15558
 
15559
1999-07-01  Alexandre Petit-Bianco  
15560
 
15561
        * check-init.c (check_init): Handle MAX_EXPR.
15562
        * expr.c (force_evaluation_order): Force method call arguments to
15563
        be evaluated in left-to-right order.
15564
        * parse.y (qualify_ambiguous_name): Loop again to qualify
15565
        NEW_ARRAY_EXPR properly.
15566
 
15567
1999-06-30  Alexandre Petit-Bianco  
15568
 
15569
        * parse.y (patch_invoke): Resolve unresolved invoked method
15570
        returned type.
15571
        (qualify_ambiguous_name): STRING_CST to qualify expression for
15572
        type name resolution.
15573
 
15574
1999-06-24  Andrew Haley  
15575
 
15576
        * class.c (finish_class): Whenever a deferred method is
15577
        output, rescan the list of methods to see if a new candidate for
15578
        output can be found.
15579
 
15580
1999-06-28  Tom Tromey  
15581
 
15582
        * jvspec.c (lang_specific_driver): Recognize --help.
15583
 
15584
1999-06-25  Alexandre Petit-Bianco  
15585
 
15586
        * parse.y (resolve_package): Fixed bogus return statement.
15587
        (patch_method_invocation): Resolve method invocation beginning with
15588
        a package name qualifier.
15589
 
15590
1999-06-25  Kaveh R. Ghazi  
15591
 
15592
        * Make-lang.in (java.stage1): Depend on stage1-start.
15593
        (java.stage2): Likewise for stage2-start.
15594
        (java.stage3): Likewise for stage3-start.
15595
        (java.stage4): Likewise for stage4-start.
15596
 
15597
1999-06-24  Alexandre Petit-Bianco  
15598
 
15599
        * parse.y (java_complete_lhs): When doing cross referencing, don't
15600
        try to keep file location on a WFL expanded as a CALL_EXPR.
15601
 
15602
1999-06-23  Alexandre Petit-Bianco  
15603
 
15604
        * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
15605
        compiling to class file a void method with an empty method body.
15606
        As a side effect, the bytecode backend will generate the
15607
        appropriate `return' instruction.
15608
 
15609
1999-06-22  Alexandre Petit-Bianco  
15610
 
15611
        * parse.y (lookup_package_type_and_set_next): New function prototype.
15612
        (resolve_package): Search current and imported packages.
15613
        (lookup_package_type_and_set_next): New function.
15614
 
15615
1999-06-22  Andrew Haley  
15616
 
15617
        * verify.c (verify_jvm_instructions): Check for pending blocks
15618
        before invalid PC test and opcode switch, not after.
15619
 
15620
1999-06-21  Andrew Haley  
15621
 
15622
        * except.c (find_handler_in_range): The upper limit for exception
15623
        ranges is exclusive, not inclusive: (start <= pc < end).
15624
        (link_handler): find child pointer which points to outer by
15625
        searching sibling list: previous code incorrectly assumed that
15626
        outer->outer->first_child must point to outer.
15627
        * verify.c (verify_jvm_instructions): FIXME added to code for
15628
        `athrow'.
15629
        (verify_jvm_instructions): Do not assume that the last block
15630
        processed in a subroutine is a block which ends with a `ret'
15631
        instruction.  With some control flows it is possible that the last
15632
        block ends with an `athrow'.
15633
 
15634
1999-06-14  Alexandre Petit-Bianco  
15635
 
15636
        * parse.y (qualify_ambiguous_name): Reorganized the post
15637
        evaluation of non WFL leading expression nodes.
15638
 
15639
1999-06-11  Alexandre Petit-Bianco  
15640
 
15641
        * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
15642
        CONVERT_EXPR.
15643
 
15644
1999-06-10  Alexandre Petit-Bianco  
15645
 
15646
        * parse.y (qualify_ambiguous_name): Handle qualified expression
15647
        beginning with a STRING_CST.
15648
 
15649
1999-06-10  Alexandre Petit-Bianco  
15650
 
15651
        * parse.y (register_fields): Set DECL_INITIAL on both
15652
        pre-initialized static and public fields.
15653
        (resolve_field_access): Static field access expressions to always
15654
        use pointer types.
15655
        (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
15656
        qualification. CONVERT_EXPR to be resolved as an expression name.
15657
        (java_complete_lhs): Identify and access qualified final
15658
        initialized field in switch statement case expression.
15659
        (fold_constant_for_init): Pre-initialized field decl constant to
15660
        be folded.
15661
 
15662
1999-06-07  Alexandre Petit-Bianco  
15663
 
15664
        * parse.y (note_possible_classname): Mark returned node with
15665
        QUALIFIED_P only if the original class name contained a '/'.
15666
 
15667
1999-06-05  Anthony Green  
15668
 
15669
        * Make-lang.in (gcjh): More parallel build fixes.
15670
 
15671
1999-06-03  Mike Stump  
15672
 
15673
        * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
15674
 
15675
1999-06-02  Anthony Green  
15676
 
15677
        * except.c (link_handler): Chain exception handlers in order.
15678
 
15679
1999-06-02  Anthony Green  
15680
 
15681
        * expr.c (expand_byte_code): Fill unreachable bytecode regions
15682
        with nops and process as usual in order to always set correct EH
15683
        ranges.  Emit detailed warnings about unreachable bytecodes.
15684
 
15685
1999-06-02  Anthony Green  
15686
 
15687
        * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
15688
        constant.
15689
 
15690
1999-05-28  Alexandre Petit-Bianco  
15691
 
15692
        * parse.y (lookup_field_wrapper): Unified returned value to NULL
15693
          or the searched field decl.
15694
 
15695
1999-05-28  Alexandre Petit-Bianco  
15696
 
15697
        * parse.y (fold_constant_for_init): Convert numerical constant
15698
        values to the type of the assigned field.
15699
 
15700
1999-05-27  Alexandre Petit-Bianco  
15701
 
15702
        * expr.c (lookup_field): Relaxed the test on class loading error
15703
        detection.
15704
        * parse.y (fold_constant_for_init): Enabeled old code.
15705
 
15706
1999-05-26  Alexandre Petit-Bianco  
15707
 
15708
        * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
15709
        decide the validity of the cast of a java.lang.Cloneable reference
15710
        to an array.
15711
        (patch_conditional_expr): Fixed first argument passed to
15712
        binary_numeric_promotion.
15713
 
15714
1999-05-26  Alexandre Petit-Bianco  
15715
 
15716
        * parse.y (qualify_ambiguous_name): Take into account that a
15717
        CONVERT_EXPR might specify a type as a WFL.
15718
 
15719
1999-05-25  Alexandre Petit-Bianco  
15720
 
15721
        * parse.y (patch_assignment): Save the rhs before using it as an
15722
        argument to _Jv_CheckArrayStore.
15723
 
15724
1999-05-25  Alexandre Petit-Bianco  
15725
 
15726
        * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
15727
 
15728
1999-05-24  Alexandre Petit-Bianco  
15729
 
15730
        * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
15731
        floating point literal only when the exponent indicator has been
15732
        parsed.
15733
 
15734
1999-05-22  Alexandre Petit-Bianco  
15735
 
15736
        * parse.y (formal_parameter:): Construct argument tree list
15737
        element even if a yet unsupported final parameter was encountered.
15738
 
15739
1999-05-18  Alexandre Petit-Bianco  
15740
 
15741
        * parse.y (finish_method_declaration): Issue errors for native or
15742
        abstract methods declared with a method body, as well as for non
15743
        native or non abstract methods with no method body.
15744
 
15745
1999-05-19  Kaveh R. Ghazi  
15746
 
15747
        * class.c (build_utf8_ref): Initialize variable `field'.
15748
 
15749
        * decl.c (init_decl_processing): Initialize variable `field'.
15750
 
15751
        * expr.c (build_known_method_ref): Mark parameters `method_type',
15752
        `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
15753
        (process_jvm_instruction): Likewise for parameter `length'.
15754
 
15755
        * jvspec.c (lang_specific_driver): Mark variables `saw_math',
15756
        `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
15757
        ATTRIBUTE_UNUSED.
15758
 
15759
        * parse.y (maybe_generate_clinit): Remove unused variable
15760
        `has_non_primitive_fields'.
15761
        (find_in_imports_on_demand): Initialize variables `node_to_use'
15762
        and `cl'.
15763
        (patch_binop): Likewise for variable `prom_type'.
15764
        (patch_unaryop): Likewise for variable `prom_type'.
15765
 
15766
        * verify.c (verify_jvm_instructions): Likewise for variable `last'.
15767
 
15768
        * xref.c (xref_table): Add missing initializer.
15769
 
15770
1999-05-14  Tom Tromey  
15771
 
15772
        * java-except.h (struct eh_range): Removed unused `next' member.
15773
        * verify.c (verify_jvm_instructions): Call check_nested_ranges
15774
        after adding all exception handlers.  Sort exception ranges in
15775
        order of start PC.
15776
        (struct pc_index): New structure.
15777
        (start_pc_cmp): New function.
15778
        * except.c (add_handler): Return `void'.  Don't call link_handler;
15779
        instead construct an ordinary linked list and do range
15780
        coalescing.
15781
        (check_nested_ranges): New function.
15782
        (link_handler): Changed interface to allow merging of eh_ranges.
15783
        Split overlapping ranges.  Return `void'.
15784
 
15785
1999-05-17  Alexandre Petit-Bianco  
15786
 
15787
        * parse.y (constructor_block_end:): New rule, tagged .
15788
        (constructor_body:): Use `constructor_block_end' instead of
15789
        `block_end'.
15790
 
15791
1999-05-17  Alexandre Petit-Bianco  
15792
 
15793
        * parse.y (statement_nsi:): Pop `for' statement block.
15794
        (java_complete_lhs): Labeled blocks containing no statement are
15795
        marked as completing normally.
15796
 
15797
1999-05-14  Alexandre Petit-Bianco  
15798
 
15799
        * xref.c (xref_set_current_fp): New function, defined.
15800
        * xref.h (xref_set_current_fp): New function, prototyped.
15801
 
15802
1999-05-14  Alexandre Petit-Bianco  
15803
 
15804
        * check-init.c (check_init): Take into account that
15805
        LABELED_BLOCK_STMT can be empty.
15806
 
15807
1999-05-13  Alexandre Petit-Bianco  
15808
 
15809
        * parse.y (java_check_regular_methods): Warning check on not
15810
        overriding methods with default access in other packages does not
15811
        apply to `'.
15812
        (java_complete_lhs): If block body is an empty_stmt_node, replace
15813
        it by NULL_TREE. This prevents gcc from generating an irrelevant
15814
        warning.
15815
 
15816
1999-05-13  Alexandre Petit-Bianco  
15817
 
15818
        * check-init.c (check_init): Removed code accepting to see things
15819
        falling through default:, when doing xrefs.
15820
        * java-tree.h (do_not_fold): New global variable, declared.
15821
        * parse.y (do_not_fold): New global variable, defined.
15822
        (java_complete_expand_method): Set `do_not_fold' to the value of
15823
        `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
15824
        and reinstall them after them have been purged; do not check for
15825
        initializations; do not issue missing return errors.
15826
        (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
15827
        when doing xrefs.
15828
        (patch_binop): Skip the fold part when doing xrefs.
15829
        (build_string_concatenation): Skip the concatenation part when
15830
        doing xrefs.
15831
        (patch_synchronized_statement): Do not generate a try-finally when
15832
        doing xrefs.
15833
        (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
15834
        and keep the location where the throw was seen.
15835
        * typeck.c (convert): When `do_not_fold' is set, do not attempt
15836
        any treatment on the converted node an simply return a NOP_EXPR of
15837
        the targeted type.
15838
        * xref.c (xref_get_data): New function, defined.
15839
        * xref.h (xref_get_data): New function, declared.
15840
        (XREF_GET_DATA): Use xref_get_data.
15841
 
15842
1999-05-13  Kaveh R. Ghazi  
15843
 
15844
        * gjavah.c (print_include): Cast the result of `strlen' to int
15845
        when comparing against a signed value.
15846
        (add_namelet): Likewise.
15847
 
15848
1999-05-12  Kaveh R. Ghazi  
15849
 
15850
        * expr.c (expand_invoke): Mark parameter `nargs' with
15851
        ATTRIBUTE_UNUSED.
15852
        (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
15853
 
15854
        * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
15855
        ATTRIBUTE_UNUSED.
15856
 
15857
        * jcf-reader.c (get_attribute): Cast a value to long
15858
        when comparing against a signed expression.  Likewise.
15859
 
15860
        * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
15861
        HOST_BITS_PER_CHAR.
15862
 
15863
1999-05-11  Andrew Haley  
15864
 
15865
        * parse.y (source_end_java_method): If the current method contains
15866
        any exception handlers, force asynchronous_exceptions: this is
15867
        necessary because signal handlers in libjava may throw exceptions.
15868
        * decl.c (end_java_method): Ditto.
15869
 
15870
1999-05-11  Tom Tromey  
15871
 
15872
        * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
15873
        flags.
15874
        * jvspec.c (THREAD_NAME): Removed.
15875
        (GC_NAME): Likewise.
15876
        (MATHLIB): Likewise.
15877
        (WITHLIBC): Likewise.
15878
        (GCLIB): Likewise.
15879
        (THREADLIB): Likewise.
15880
        (MATH_LIBRARY): Likewise.
15881
        (lang_specific_driver): Don't add `-l' options to command line.
15882
        Instead, add a single --specs option.  Recognize `-L' options and
15883
        use them to search for spec file.
15884
        (find_spec_file): New function.
15885
        (SPEC_FILE): New define.
15886
 
15887
1999-05-11  Dave Brolley  
15888
 
15889
        * lang-options.h: -MD, -MMD, -M and -MM not needed here for
15890
        cpplib-enabled build.
15891
 
15892
1999-05-05  Per Bothner  
15893
 
15894
        * class.c (make_field_value):  DECL_INITIAL may be a string literal;
15895
        temporarily zero it while calling rest_of_decl_compilation.
15896
 
15897
        * java-tree.h (string_ptr_type_node):  Add declaration.
15898
        * decl.c:  Define and initialize string_ptr_type_node.
15899
        * parse.y (patch_string_cst):  Use string_ptr_type_node.
15900
 
15901
        * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P):  Removed.
15902
        * parse.y (for_statement):  Now unconditionally exit_block.
15903
        (finish_labeled_statement):  No longer exit_block if for-loop.
15904
        (patch_loop_statement):  Check harder if the loop is already labeled.
15905
 
15906
        * parse.y (patch_initialized_static_field):  Removed function.
15907
        (maybe_generate_clinit):  Removed special handling for interfaces.
15908
        (java_complete_expand_methods):  Do a preliminary java_complete_tree
15909
        on  to determine if it can be removed.
15910
        (java_complete_expand_method):  Remove special handling for .
15911
        (java_complete_lhs):  For BLOCK and EXPR_WITH_FILE_LOCATION
15912
        optimize if we get back empty_stmt_node.
15913
        For MODIFY_EXPR, re-do checking of static initializers.
15914
        (fold_constant_for_init):  Don't return immediate if VAR_DECL.
15915
        For VAR_DECL, pass correct context.
15916
 
15917
        * verify.c (verify_jvm_instructions):  Better error messages.
15918
 
15919
1999-05-03  Tom Tromey  
15920
 
15921
        * parse-scan.y (interface_declaration): Call
15922
        report_class_declaration for interfaces.
15923
 
15924
1999-04-30 20:54 -0400  Zack Weinberg  
15925
 
15926
        * Makefile.in: Remove -v from bison command lines.
15927
 
15928
1999-04-30  Alexandre Petit-Bianco  
15929
 
15930
        * check-init.c (check_init): Exclude a case of error when doing
15931
        xrefs.
15932
        * class.c (layout_class_method): Don't generate the error message
15933
        twice when compiling from source.
15934
        * lang-options.h: Added `-Wredundant-modifers' and
15935
        `-Wunusupported-jdk11' flags and help text.
15936
        * lang.c (lang_decode_option): Added support for
15937
        `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
15938
        flag_static_local_jdk11 and flag_redundant set accordingly.
15939
        * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
15940
        * parse.h (EXPR_WFL_ADD_COL): New macro.
15941
        (DECL_END_SOURCE_LINE): Likewise.
15942
        (DECL_INHERITED_SOURCE_LINE): Likewise.
15943
        * parse.y (static_ref_err): New function, prototyped.
15944
        (CCB_TK): Now tagged .
15945
        (class_body:): Remember the location of the closing '}' of a class
15946
        definition when doing xrefs.
15947
        (block:): Likewise.
15948
        (block_end:): Likewise.
15949
        (create_class): Remember the location of the inherited class
15950
        identifier when doing xrefs.
15951
        (register_fields): Added test on first operand of `init' before
15952
        testing it TREE_CODE.
15953
        (method_header): Store the location of the class identifier in the
15954
        class decl when doing xrefs.
15955
        (finish_method_declaration): Don't combine first/last method line
15956
        when doing xref.
15957
        (java_check_regular_methods): Warning check on not overriding
15958
        methods with default access on other packages move before check on
15959
        static methods. Initialization of `aflags' also moved up.
15960
        (resolve_expression_name): Call static_ref_err to report the error.
15961
        (static_ref_err): New function, implemented.
15962
        (resolve_field_access): Returned simplified static field access
15963
        when doing xrefs.
15964
        (resolve_qualified_expression_name): Check for illegal use of
15965
        static fields in a non static context. Call static_ref_err to
15966
        report error in various places.
15967
        (java_complete_tree): Do not fold initialized static fields when
15968
        doing xrefs.
15969
        (java_complete_lhs): Likewise.
15970
 
15971
1999-04-29  Anthony Green  
15972
 
15973
        * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
15974
        create internal labels.
15975
        (lookup_label): Ditto.
15976
 
15977
1999-04-24  Alexandre Petit-Bianco  
15978
 
15979
        * class.c (layout_class_method): Generate 's rtl for
15980
        interfaces.
15981
        * decl.c (complete_start_java_method): Don't call _Jv_InitClass
15982
        for interfaces' .
15983
        * expr.c (lookup_field): Search for fields in interfaces.
15984
        (expand_invoke): Fixed indentation.
15985
        (expand_java_field_op): Likewise. Use IS_CLINIT.
15986
        * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
15987
        (IS_CLINIT): New macro.
15988
        * parse.y (type_declaration:): Call maybe_generate_clinit after an
15989
        interface was parsed.
15990
        (maybe_generate_clinit): Don't generate if the current class is an
15991
        interface with only fields of primitive types.
15992
        (reset_method_name): Use IS_CLINIT.
15993
        (java_complete_expand_method): Expand  when it exists for
15994
        interfaces. Use IS_CLINIT.
15995
        (resolve_expression_name): Use DECL_CONTEXT instead of
15996
        current_class to build static field references.
15997
        (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
15998
        ARRAY_REF when doing xreferencing.
15999
        (check_final_assignment): Fixed typo in leading comment. Use
16000
        IS_CLINIT.
16001
        (patch_array_ref): Don't fully expand array references when
16002
        xreferencing.
16003
        (patch_return): Use IS_CLINIT.
16004
        (patch_throw_statement): Likewise.
16005
 
16006
1999-04-22  Tom Tromey  
16007
 
16008
        * Make-lang.in (JAVA_SRCS): Added check-init.c.
16009
 
16010
1999-04-21  Alexandre Petit-Bianco  
16011
 
16012
        * decl.c (predef_filenames, predef_filenames_size): New globals
16013
        (init_decl_processing): predef_filenames and predef_filenames_size
16014
        initialized.
16015
        * java-tree.h (predef_filenames, predef_filenames_size): Declared
16016
        extern.
16017
        * jcf-parse.c (predefined_filename_p): New function.
16018
        (yyparse): Check that files on the command line are specified only
16019
        once and issue a warning otherwise.
16020
        * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
16021
        * parse.y (source_end_java_method): Nullify NOP method bodies, to
16022
        avoid a gcc warning with -W -Wall turned on.
16023
        (java_expand_classes): Abort if errors were encountered.
16024
        (java_complete_lhs): If the cross reference flag is set, wrap
16025
        field DECL node around a WFL when resolving expression name.
16026
 
16027
1999-04-19  Alexandre Petit-Bianco  
16028
 
16029
        * lang.c (lang_decode_option): Fixed returned value when parsing
16030
        `-fxref=...' and `-Wall'.
16031
        * parse.y (source_end_java_method): Do not generate code when
16032
        flag_emit_xref is set.
16033
        (resolve_expression_name): Do not build static field access when
16034
        flag_emit_xref is set.
16035
        (resolve_field_access): No special treatment on `length' when
16036
        flag_emit_xref is set. Do not build qualified static field access
16037
        when flag_emit_xref is set.
16038
        (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
16039
        when flag_emit_xref is set.
16040
        (patch_assignment): Do not generate array store runtime check when
16041
        flag_emit_xref is set.
16042
        * xref.c (xref_flag_value): Fixed function declaration
16043
        indentation.
16044
        (xset_set_data): New function.
16045
        * xref.h (xref_set_data): Added prototype for new function.
16046
        (typedef struct xref_flag_table): New field data.
16047
        (XREF_GET_DATA): New macro.
16048
 
16049
1999-04-19  Tom Tromey  
16050
 
16051
        * xref.h (enum): Removed trailing comma.
16052
 
16053
        * parse.y (resolve_qualified_expression_name): Added missing
16054
        `break'.
16055
 
16056
1999-04-15  Anthony Green  
16057
 
16058
        * gjavah.c: New prototypes for java_float_finite and
16059
        java_double_finite.
16060
 
16061
1999-04-12  Alexandre Petit-Bianco  
16062
 
16063
        * parse.y (patch_unaryop): Fixed ++/-- operator check on array
16064
        references.
16065
 
16066
1999-04-06  Jeffrey A Law  (law@cygnus.com)
16067
 
16068
        * Makefile.in (TREE_H): Add tree-check.h.
16069
        (RTL_H): Add genrtl.h.
16070
 
16071
1999-04-06  Alexandre Petit-Bianco  
16072
 
16073
        * parse.y (patch_assignment): Added ArrayStoreException runtime
16074
        check.
16075
 
16076
1999-04-06  Per Bothner  
16077
 
16078
        * expr.c (pop_type_0):  New function.
16079
        (pop_type):  Use pop_type_0.
16080
        * java-tree.h (pop_type_0):  New declaration.
16081
        * verify.c (verify_jvm_instructions):  Check return instructions.
16082
 
16083
        * parse.y (patch_binop):  Don't fold if non-constant and emiting
16084
        class files.
16085
 
16086
1999-04-05  Kaveh R. Ghazi  
16087
 
16088
        * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
16089
 
16090
        * gjavah.c: Include math.h earlier.  Include tree.h/java-tree.h.
16091
        (main_jcf): Don't define.
16092
        (process_file): Don't set `main_jcf'.
16093
 
16094
        * java-tree.h (main_jcf): Don't declare.
16095
 
16096
        * jcf-parse.c (main_jcf): Add static definition.
16097
 
16098
        * lang.c (main_jcf): Don't define.
16099
 
16100
1999-04-05  Kaveh R. Ghazi  
16101
 
16102
        * class.c (add_method_1): Cast the argument of `bzero' to PTR.
16103
 
16104
        * decl.c (copy_lang_decl): Likewise for `bcopy'.
16105
 
16106
        * jcf-depend.c: Include "config.h", not .
16107
 
16108
        * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
16109
        `bcopy' to PTR.
16110
 
16111
        * jcf-path.c: Include "config.h", not .
16112
 
16113
        * lex.c: Don't include various system header files.
16114
        (java_init_lex): Cast the argument of `bzero' to PTR
16115
 
16116
        * parse-scan.y (java_push_parser_context): Likewise.
16117
 
16118
        * parse.y (java_push_parser_context): Likewise.
16119
        (patch_bc_statement): Match format specifier to variable argument.
16120
 
16121
        * xref.c: Don't include .
16122
 
16123
1999-04-05  Alexandre Petit-Bianco  
16124
 
16125
        * parse.y (struct parser_ctxt *ctxp): Now global.
16126
        (declare_local_variables): Use WFL compound value for the
16127
        declaration source line value, when doing cross-referencing.
16128
 
16129
1999-03-31  Tom Tromey  
16130
 
16131
        * gjavah.c (print_field_info): Allow constants of other types.
16132
        (print_include): Generate include when new name is proper prefix
16133
        of already printed name.
16134
        (add_namelet): Likewise.
16135
        (cxx_keyword_subst): New function.
16136
        (print_method_info): Use it.
16137
        (print_field_name): New function.
16138
        (get_field_name): New function.
16139
        (print_field_info): Use get_field_name and print_field_name.
16140
 
16141
1999-03-31  Kaveh R. Ghazi  
16142
 
16143
        * Makefile.in (keyword.h): Generate using gperf language 'C', not
16144
        'KR-C', so gperf uses the `const' keyword on strings.
16145
 
16146
        * keyword.gperf (java_keyword): Const-ify a char*.
16147
 
16148
1999-03-30  Alexandre Petit-Bianco  
16149
 
16150
        * parse.y (patch_bc_statement): Fixed identation and a bogus
16151
        `printf' format.
16152
 
16153
1999-03-30  Alexandre Petit-Bianco  
16154
 
16155
        * parse.y (patch_assignment): Allow static variables in other
16156
        classes to be assigned.
16157
 
16158
1999-03-28  Kaveh R. Ghazi  
16159
 
16160
        * class.c (maybe_add_interface): Remove unused variable
16161
        `interface_binfo'.
16162
        (make_class_data): Use = for assignment, not ==.  Likewise.
16163
        (emit_register_classes): Remove unused variable `decl'.
16164
 
16165
        * lex.c: Fix comment so as not to contain an embedded `/*'.
16166
 
16167
        * verify.c (verify_jvm_instructions): Remove unused variable
16168
        `self_type'.
16169
 
16170
1999-03-27  Per Bothner  
16171
 
16172
        * parse.y (complete_loop_body):  Rename to finish_loop_body.
16173
        (complete_labeled_statement):  Rename to finish_labeled_statement.
16174
        (complete_for_loop):  Rename to finish_for_loop.
16175
        (complete_method_declaration):  Rename to finish_method_declaration.
16176
 
16177
        * java-tree.h (continue_identifier_node):  New global node.
16178
        * decl.c:  Define and initialize continue_identifier_node.
16179
        * parse.y (generate_labeled_block):  Remove - no longer needed.
16180
        (build_loop_body):  Use continue_identifier_node for continue block.
16181
        (finish_labeled_statement):  Also do pop_labeled_block actions.
16182
        (java_complete_lhs):  POP_LOOP even if error.
16183
        (build_labeled_block):  Special handling for continue_identifier_node.
16184
        (patch_loop_statement):  Re-organize.
16185
        (patch_bc_statement):  Re-write.
16186
 
16187
1999-03-27  Alexandre Petit-Bianco  
16188
 
16189
        * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
16190
        using a WFL compound value.
16191
        * parse.y (xref.h): Include.
16192
        (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
16193
        WFL compound value.
16194
        (register_fields): Set WFL compound value to lineno if doing
16195
        xrefs.
16196
        (java_complete_expand_method): Call expand_xref if flag_emit_xref
16197
        is set.
16198
        * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
16199
        * xref.h (expand_xref): Prototype renamed from xref_generate.
16200
 
16201
1999-03-27  Alexandre Petit-Bianco  
16202
 
16203
        * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
16204
        (GET_CURRENT_BLOCK): New macro.
16205
        * parse.y (current_static_block): New global variable.
16206
        (method_body:): Define action.
16207
        (complete_method_declaration): Set current_function_decl to NULL
16208
        when work on the current method is done.
16209
        (declare_local_variables): Use GET_CURRENT_BLOCK.
16210
        (java_method_add_stmt): Likewise.
16211
        (java_complete_expand_method): Disable the use of `this' when
16212
        expanding .
16213
        (enter_a_block): If no current method exist, use
16214
        current_static_block to link static initializer blocks.
16215
        (exit_block): Rewritten to use current_static_block when no current
16216
        method decl exists.
16217
        (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
16218
        (patch_return): Forbid the use of `return' in static initializers.
16219
        (patch_throw_statement): Fixed indentation. Issue specific error
16220
        for uncaught thrown checked exception in static initializer
16221
        blocks. Removed FIXME.
16222
 
16223
1999-03-25  Zack Weinberg  
16224
 
16225
        * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
16226
        Link gcj from gcc.o.
16227
 
16228
1999-03-23  Alexandre Petit-Bianco  
16229
 
16230
        * parse.y (find_applicable_accessible_methods_list): When dealing
16231
        with interface: ensure that a given interface or java.lang.Object
16232
        are searched only once.
16233
 
16234
1999-03-23  Kaveh R. Ghazi  
16235
 
16236
        * gjavah.c (print_c_decl): Remove unused argument `flags'.
16237
 
16238
        * jcf-dump.c (print_access_flags): Add braces around if-else.
16239
 
16240
        * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
16241
        COMBINE_INPUTS.
16242
 
16243
        * lex.c (build_wfl_node): Add static prototype.
16244
 
16245
        * lex.h (build_wfl_node): Remove static prototype.
16246
 
16247
        * parse.y: Include lex.c early enough to declare everything needed.
16248
        Ensure calls to `build_wfl_node' pass the proper arguments.
16249
        (create_class): Remove unused variable `super_decl'.
16250
        (get_printable_method_name): Initialize variable `name'.
16251
 
16252
1999-03-22  Alexandre Petit-Bianco  
16253
 
16254
        * Changelog: Fixed 1999-03-22 typos.
16255
        * lang.c (lang_decode_option): Fixed typo in error string in the
16256
        XARG section.
16257
 
16258
1999-03-22  Alexandre Petit-Bianco  
16259
 
16260
        * Makefile.in (JAVA_OBJS): Added entry xref.o.
16261
        (xref.o): New rule.
16262
        * java-tree.h (flag_emit_xref): Declared extern.
16263
        * lang.c (xref.h): Included.
16264
        (flag_emit_xref): New global variable.
16265
        (lang_decode_option): Added support for -fxref.
16266
        * xref.c: Created.
16267
        * xref.h: Likewise.
16268
 
16269
1999-03-21  Manfred Hollstein  
16270
 
16271
        * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
16272
        linked with.
16273
 
16274
1999-03-21  Kaveh R. Ghazi  
16275
 
16276
        * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
16277
        $(srcdir)/../system.h and $(JAVA_TREE_H).
16278
        (jcf-io.o): Depend on $(JAVA_TREE_H).
16279
        (mangle.o): Likewise.
16280
 
16281
        * check-init.c (check_cond_init): Add static prototype.
16282
 
16283
        * class.c (build_java_method_type, hashUtf8String,
16284
        make_field_value, get_dispatch_vector, get_dispatch_table,
16285
        append_gpp_mangled_type, mangle_static_field): Likewise.
16286
        (strLengthUtf8): Hide unused definition.
16287
        (hashUtf8String): Const-ify.
16288
        (make_field_value): Un-ANSI-fy.
16289
 
16290
        * constants.c: Move inclusion of jcf.h above java-tree.h.
16291
        (set_constant_entry, find_class_or_string_constant,
16292
        find_name_and_type_constant, get_tag_node,
16293
        build_constant_data_ref): Add static prototype.
16294
 
16295
        * decl.c (push_jvm_slot, builtin_function,
16296
        lookup_name_current_level): Likewise.
16297
        (builtin_function): Const-ify.
16298
 
16299
        * except.c (expand_start_java_handler, expand_end_java_handler):
16300
        Add static prototype.
16301
 
16302
        * expr.c (flush_quick_stack, push_value, pop_value,
16303
        java_stack_swap, java_stack_dup, build_java_athrow,
16304
        build_java_jsr, build_java_ret, expand_java_multianewarray,
16305
        expand_java_arraystore, expand_java_arrayload,
16306
        expand_java_array_length, build_java_monitor, expand_java_pushc,
16307
        expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
16308
        expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
16309
        expand_compare, expand_test, expand_cond, expand_java_goto,
16310
        expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
16311
        expand_java_field_op, java_push_constant_from_pool): Likewise.
16312
 
16313
        (decode_newarray_type, expand_iinc): Un-ANSI-fy.
16314
        (build_java_arraynull_check): Mark parameters `node' and `type'
16315
        with ATTRIBUTE_UNUSED.
16316
        (note_label): Likewise for parameter `current_pc'.
16317
        (expand_java_call, expand_java_ret): Hide unused definition.
16318
 
16319
        * java-tree.h (make_class, build_constants_constructor,
16320
        java_set_exception_lang_code, pop_labeled_block, emit_handlers,
16321
        init_outgoing_cpool, register_class, emit_register_classes,
16322
        java_layout_seen_class_methods): Prototype.
16323
        (unicode_mangling_length): Const-ify.
16324
        (append_gpp_mangled_name, append_gpp_mangled_classtype,
16325
        emit_unicode_mangled_name, format_int, format_uint,
16326
        jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
16327
        jcf_print_utf8_replace, open_class): Prototype.
16328
 
16329
        * jcf-dump.c: Include "config.h", not .  Don't include
16330
        .  Include tree.h/java-tree.h.
16331
        (utf8_equal_string usage, process_class): Add static prototype.
16332
        (open_class): Don't prototype this here.
16333
        (utf8_equal_string): Match arguments to format specifiers.
16334
        (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
16335
        TABLE_SWITCH, disassemble_method): Likewise.
16336
 
16337
        * jcf-io.c: Include tree.h/java-tree.h.
16338
        (open_class, find_classfile, jcf_print_utf8,
16339
        jcf_print_utf8_replace): Const-ify.
16340
 
16341
        * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
16342
        parse_class_file): Add static prototype.
16343
        (find_in_current_zip): Match definition to existing static
16344
        prototype.
16345
 
16346
        * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
16347
        (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
16348
        finish_jcf_block, define_jcf_label, get_jcf_label_here,
16349
        put_linenumber, localvar_alloc, localvar_free, get_access_flags,
16350
        write_chunks, adjust_typed_op, generate_bytecode_conditional,
16351
        generate_bytecode_return, perform_relocations, init_jcf_state,
16352
        init_jcf_method, release_jcf_state, generate_classfile):
16353
        Add static prototype.
16354
        (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
16355
        (make_class_file_name): Const-ify.
16356
 
16357
        * jcf.h (find_classfile): Const-ify.
16358
 
16359
        * jv-scan.c (reset_report): Remove prototype.
16360
 
16361
        * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
16362
        (error): Rewrite to allow varargs.
16363
 
16364
        * lang.c (lang_f_options): Const-ify.
16365
 
16366
        * lex.c (java_parse_escape_sequence): Add static prototype.
16367
        (java_allocate_new_line): Match definition to existing static
16368
        prototype.
16369
 
16370
        * mangle.c Include tree.h/java-tree.h.
16371
        (unicode_mangling_length, emit_unicode_mangled_name,
16372
        append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
16373
 
16374
        * parse.h (jdep_code): Remove trailing comma in enumeration.
16375
        (java_get_line_col): Move prototype outside of !JC1_LITE test.
16376
        (reset_report): Add prototype.
16377
 
16378
        * verify.c (push_pending_label, merge_types): Add static
16379
        prototypes.
16380
 
16381
        * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
16382
 
16383
1999-03-19  Alexandre Petit-Bianco  
16384
 
16385
        * parse.y (find_applicable_accessible_methods_list): Extend the
16386
        search to superinterfaces when relevant.
16387
        (search_applicable_methods_list): New function.
16388
 
16389
1999-03-18  Alexandre Petit-Bianco  
16390
 
16391
        * class.c (unmangle_classname): Implemented stricter testing
16392
        before setting the QUALIFIED_P flag on an identifier.
16393
 
16394
1999-03-16  Per Bothner  
16395
 
16396
        * parse.y (java_complete_lhs):  Call force_evaluation_order
16397
        after patch_newarray.
16398
        (patch_binop):  Don't call fold if there are side effects.
16399
 
16400
1999-03-16  Alexandre Petit-Bianco  
16401
 
16402
        * parse.y (java_stabilize_reference): Use save_expr instead of
16403
        building a SAVE_EXPR node.
16404
        (java_complete_lhs): Patch the resulting string of the `+='
16405
        operator (if necessary) and complete the RHS after having built
16406
        the cast.
16407
 
16408
1999-03-15  Per Bothner  
16409
 
16410
        * class.c (make_class):  Don't set CLASS_P here (because
16411
        this function is also called by build_java_array_type).
16412
        (push_class):  Set CLASS_P here instead.
16413
        * parse.h (TYPE_CLASS_P):  Check for TYPE_ARRAY_P is redundant.
16414
 
16415
        * jcf-dump.c (print_access_flags):  Take extra parameter to indicate
16416
        context.  If the context is class, perfer "super" over "synchronized".
16417
        * jcf-write.c (generate_classfile):  Don't add ACC_SUPER if interface.
16418
 
16419
        * parse.y (create_class):  Don't call parser_check_super here;
16420
        it is not robust.  Always wait until later.
16421
 
16422
        * parse.y (method_header):  For interfaces, set ACC_ABSTRACT (to
16423
        match what JDK 1.2 does), but don't set ACC_PUBLIC.
16424
 
16425
1999-03-13  Per Bothner  
16426
 
16427
        * lex.c (java_read_char):  UNGET invalid non-initial utf8 character.
16428
        * lex.h (UNGETC):  Change misleading macro.
16429
 
16430
1999-03-12  Alexandre Petit-Bianco  
16431
 
16432
        * parse.y (java_stabilize_reference): Return NODE when patching a
16433
        COMPOUND_EXPR.
16434
        (java_complete_lhs): Put parenthesis around truth values.
16435
 
16436
1999-03-12  Alexandre Petit-Bianco  
16437
 
16438
        * class.c (layout_class_method): Don't make rtl for interface
16439
        methods.
16440
        * parse.h (GET_TYPE_NAME): New macro.
16441
        * parse.y (if_then_statement:): Fixed indentation.
16442
        (if_then_else_statement:): Likewise.
16443
        (for_statement:): Fixed spacing.
16444
        (try_statement:): Fixed indentation.
16445
        (create_interface): Don't force interfaces to be abstract.
16446
        (method_header): Abstract methods are OK in interfaces.
16447
        (declare_local_variables): Fixed typo in comment.
16448
        (java_complete_expand_method): Fixed indentation.
16449
        (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
16450
        non accessible fields.
16451
        (java_stabilize_reference): New function.
16452
        (java_complete_lhs): Fixed indentation. Use
16453
        java_stabilize_reference in compound assignment. Insert the
16454
        cast. If not processing `+' fix string constants before processing
16455
        binop.
16456
 
16457
1999-03-12  Kaveh R. Ghazi  
16458
 
16459
        * constants.c (find_class_or_string_constant): Cast variable `j'
16460
        to a `jword' when comparing against one.
16461
 
16462
        * expr.c (java_lang_expand_expr): Remove unused variables
16463
        `has_finally_p' and `op0'.
16464
 
16465
        * gjavah.c (print_field_info): Cast a value to jint when comparing
16466
        against one.  Likewise for a jlong.
16467
        (add_namelet): Likewise cast a `sizeof' to an int when comparing
16468
        against a signed quantity.
16469
 
16470
        * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
16471
        (print_signature): Don't needlessly dereference variable `str'
16472
 
16473
        * jcf-reader.c (get_attribute): Mark variables `max_stack' and
16474
        `max_locals' with ATTRIBUTE_UNUSED.
16475
        (jcf_parse_class): Likewise for variable `index'.
16476
 
16477
        * parse.h (reverse_jdep_list): Remove static prototype.
16478
 
16479
        * parse.y (build_jump_to_finally): Remove prototype and definition.
16480
        (reverse_jdep_list): Add static prototype.
16481
 
16482
        * typeck.c (convert_ieee_real_to_integer): Remove unused variables
16483
        `assignment' and `expr_decl'.
16484
 
16485
        * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
16486
 
16487
1999-03-12  Andrew Haley  
16488
 
16489
        * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
16490
        we'll need a directory separator and a null character.
16491
 
16492
1999-03-10  Per Bothner  
16493
 
16494
        * jcf-write.c (generate_bytecode_insns):  Handle __builtin_fmod, for %.
16495
 
16496
Tue Mar  9 11:52:08 1999  Alexandre Petit-Bianco  
16497
 
16498
        * parse.y (method_header): Don't set ACC_ABSTRACT flags on
16499
        interfaces.
16500
 
16501
1999-03-05  Per Bothner  
16502
 
16503
        * lex.c (java_parse_end_comment):  Take extra parameter (next char).
16504
 
16505
        * class.c (build_utf8_ref):  Fix possible name class/ambiguity.
16506
 
16507
        * class.c (layout_class_method):  A static method in a base class
16508
        is never overridden, so treat it like it doesn't exist.
16509
        However, do complain about private non-static method overriding
16510
        public static method.
16511
 
16512
        * parse.y:  Don't set unused INITIALIZED_P flag.
16513
        * java-tree.h (INITIALIZED_P):  Removed no-longer needed flag.
16514
 
16515
        * parse.y (find_expr_with_wfl):  Optimize tail-calls.
16516
        (build_array_from_name):  Re-order &index[string] to &string[index].
16517
 
16518
        * parse.y (java_complete_lhs):  Don't call patch_assignment if rhs is
16519
        error_mark (it might catch more errors, but it is more likely to lose).
16520
 
16521
1999-03-06  Kaveh R. Ghazi  
16522
 
16523
        * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
16524
        (parse-scan.o): Depend on toplev.h.
16525
 
16526
        * class.c (make_method_value): Add prototype.  Make it static.
16527
        Remove unused second argument, caller changed.
16528
 
16529
        * expr.c (java_lang_expand_expr): Remove unused variable
16530
        `return_label'.
16531
 
16532
        * java-tree.h: Don't prototype find_in_current_zip.
16533
        Add prototypes for verify_constant_pool, start_java_method,
16534
        end_java_method, give_name_to_locals, expand_byte_code,
16535
        open_in_zip, set_constant_value, find_constant1, find_constant2,
16536
        find_utf8_constant, find_string_constant, find_class_constant,
16537
        find_fieldref_index, find_methodref_index, write_constant_pool,
16538
        count_constant_pool_bytes and encode_newarray_type.
16539
 
16540
        * jcf-dump.c: Remove unused variable `LONG_temp'.
16541
 
16542
        * jcf-parse.c: Include parse.h.
16543
        (jcf_parse_source): Remove unused parameter, all callers changed.
16544
        (jcf_figure_file_type): Add static prototype.
16545
        (find_in_current_zip): Likewise.  Also remove unused parameter,
16546
        all callers changed.
16547
        (read_class): Initialize variable `saved_pos'.
16548
 
16549
        * jcf-reader.c (jcf_parse_preamble): Mark variables
16550
        `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
16551
 
16552
        * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
16553
        (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
16554
        (java_parse_doc_section): Initialize variable `seen_star'.
16555
        (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
16556
        (java_lex_error): Mark parameters `msg' and `forward' with
16557
        ATTRIBUTE_UNUSED.
16558
        (java_get_line_col): Mark parameters `filename' and `line' with
16559
        ATTRIBUTE_UNUSED.
16560
 
16561
        * parse-scan.y: Include toplev.h.
16562
        (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
16563
 
16564
        * parse.h: use `struct JCF', not plain `JCF'.
16565
        (java_parser_context_save_global, java_expand_classes
16566
        java_parser_context_restore_global, java_parse): Add prototypes.
16567
 
16568
        * typeck.c (convert_ieee_real_to_integer): Remove unused variable
16569
        `node'.
16570
 
16571
1999-02-24  Per Bothner  
16572
 
16573
        *  check-init.c (check_init):  COPYN takes word count, not bit count.
16574
 
16575
1999-02-26  Per Bothner  
16576
 
16577
        * typeck.c (convert_ieee_real_to_integer):  Use save_expr instead of
16578
        explicit build_decl.  (Avoids crash in reload when optimizing.)
16579
 
16580
1999-02-25  Per Bothner  
16581
 
16582
        * decl.c (complete_start_java_method):  Handle synchronized method
16583
        even when compiling from bytecode.
16584
 
16585
1999-02-26  Tom Tromey  
16586
 
16587
        * gjavah.c (add_class_decl): Only generate `#include' if outer
16588
        class is not the name of the class we are processing.  Correctly
16589
        append `.h' in #include.
16590
        (process_file): Clean up newlines around generated `#include's.
16591
        (decode_signature_piece): Correctly handle inner classes.
16592
        (struct include): New structure.
16593
        (all_includes): New global.
16594
        (print_include): New function.
16595
        (add_class_decl): Use it.
16596
        (process_file): Likewise.
16597
        (add_class_decl): Generate include for java-array.h if array
16598
        seen.
16599
        (process_file): Don't generate java-array.h include.
16600
 
16601
        * gjavah.c (add_namelet): Check for standard package names here.
16602
        (add_class_decl): Don't check for standard package names here.
16603
 
16604
1999-02-25  Tom Tromey  
16605
 
16606
        * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
16607
        When reading a zip file, only use strncmp if both strings are
16608
        bigger than the buffer length.  Initialize `k' when looping
16609
        through zip file.
16610
 
16611
1999-02-24  Tom Tromey  
16612
 
16613
        * gjavah.c (struct namelet): New structure.
16614
        (add_namelet): New function.
16615
        (print_namelet): New function.
16616
        (print_class_decls): Use add_namelet and print_namelet to generate
16617
        namespaces and not classes.
16618
        (method_printed): New global.
16619
        (HANDLE_END_METHOD): Examine method_printed.
16620
        (print_method_info): Set method_printed when required.  Print
16621
        error if function to be ignored is marked virtual.  Handle $finit$
16622
        method.
16623
        (METHOD_IS_FINAL): New macro.
16624
        (print_field_info): Use it.
16625
        (HANDLE_METHOD): Clear method_printed.
16626
        (method_pass): New global.
16627
        (HANDLE_END_FIELD): Call add_class_decl on the first pass.
16628
        (process_file): Do two passes over both fields and methods.
16629
        (HANDLE_METHOD): Examine method_pass.
16630
        (root): New global.
16631
        (add_class_decl): New function.
16632
        (print_class_decls): Don't scan over entire constant pool.
16633
 
16634
1999-02-23  Tom Tromey  
16635
 
16636
        * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
16637
        disable linking in that case.
16638
 
16639
1999-02-20  Tom Tromey  
16640
 
16641
        * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
16642
        not 0x1f.
16643
 
16644
1999-02-21  Per Bothner  
16645
 
16646
        * decl.c (build_result_decl), java-tree.h:  New method.
16647
        (complete_start_java_method):  Handle synchronized methods.
16648
        Don't build DECL_RESULT here.  (Ordering dependency problem.)
16649
        (start_java_method):  Call build_result_decl here instead  ...
16650
        * parse.y (java_complete_expand_method):  ... and here.
16651
        (expand_start_java_method): Don't call complete_start_java_method here.
16652
        (java_complete_expand_method):  Call it here instead.
16653
        * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT):  Moved to ..
16654
        * java-tree.h:  ... here.
16655
 
16656
        * expr.c (force_evaluation_order):  Fix typo, don't handle ARRAY_REF.
16657
        * parse.y (java_complete_lhs):  Don't call force_evaluation_order
16658
        for ARRAY_REF - it doesn't work when array bounds are checked.
16659
        (patch_array_ref):  Handle it here instead.
16660
 
16661
        * jcf-write.c (generate_classfile):  Emit "Exceptions" attribute.
16662
 
16663
1999-02-19  Per Bothner  
16664
 
16665
        Force left-to-right evaluation of binary operations etc.
16666
        * expr.c (force_evaluation_order), java-tree.h:  New function.
16667
        * parse.y (java_complete_lhs):  Pass binary operations, procedure
16668
        calls, and ARRAY_REFs to force_evaluation_order.
16669
        (various):  Set TREE_SIDE_EFFECTS more carefully.
16670
 
16671
        Tolerate random (non-UTF8) encoding in comments without complaining.
16672
        * lex.c (java_read_char):  Return 0xFFFE if bad UTF8 encoding.
16673
        (java_is_eol):  Handle '\r' followed by '\n' instead of vice versa.
16674
 
16675
        * parse.y (resolve_qualified_expression_name):  Handle error_mark.
16676
        (java_complete_node case EXPR_WITH_FILE_LOCATION):  Likewise.
16677
 
16678
        * parse.y (java_complete_lhs):  Ignore an empty statement in a
16679
        COMPOUND_EXPR.  Don't complain about empty statement after return.
16680
 
16681
1999-02-19  Per Bothner  
16682
 
16683
        * parse.y (obtain_incomplete_type):  Don't wrap unknown types
16684
        in TREE_LIST - just chain the POINTER_TYPEs together.
16685
        (resolve_class):  If type already resolved, return decl.
16686
        After resolving, update TREE_TYPE(class_type), and name (if array).
16687
        * parse.h (do_resolve_class), parse.y:  Make non-static.
16688
        * class.c (maybe_layout_super_class):  Take this_class argument.
16689
        Do do_resolve_class if necessary.
16690
        (layout_class, layout_class_methods): Adjust calls appropriately.
16691
        * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
16692
        JDEP_RESOLVED_P):  Redefined for new TREE_LIST-less convention.
16693
        * typeck.c (build_java_array_type):  Don't call layout_class.
16694
 
16695
1999-02-17  Alexandre Petit-Bianco  
16696
 
16697
        * parse.y (check_pkg_class_access): Allow private class access
16698
        within the same package.
16699
        (strip_out_static_field_access_decl): New function.
16700
        (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
16701
        operator argument before testing its nature.
16702
 
16703
1999-02-03  Per Bothner  
16704
 
16705
        * java-tree.def (FINALLY_EXPR):  Removed.  (Now uses TRY_FINALLY_EXPR.)
16706
        (TRY_EXPR):  Simplify - it no longer has a finally clause.
16707
        * check-init.c (check_init):  Handle TRY_FINALLY_EXPR.
16708
        Simpler handling of TRY_EXPR, which no longer has a finally clause.
16709
        * expr.c (java_lang_expand_expr):  Likewise.
16710
        * java-tree.h (CATCH_EXPR_GET_EXPR):  Removed - no longer needed.
16711
        * parse.h (java_get_catch_block), parse.y:  Removed - no longer needed.
16712
        * parse.y (java_complete_lhs):  Add support for TRY_FIANLLY_EXPR.
16713
        (build_try_statement):  Remove finally parameter and handling.
16714
        (build_try_finally_statement):  New function.
16715
        (patch_try_statement):   No longer need to support finally clause.
16716
        (try_statement):  Update grammar action rules.
16717
        * jcf-write.c (generate_bytecode_insns):  Handle TRY_FINALLY_EXPR.
16718
        Simpler handling of TRY_EXPR, which no longer has a finally clause.
16719
 
16720
1998-11-26  Andrew Haley  
16721
 
16722
        * jcf-parse.c (get_constant): Add braces around computation of 'd'
16723
        when REAL_ARITHMETIC is not defined.  [Oct 26 fix got overwritten -PB]
16724
 
16725
1999-02-17  Andrew Haley  
16726
 
16727
        * class.c (build_utf8_ref): Back out broken patch which was
16728
        intended to to output signatures using '.' as a separator.
16729
 
16730
        * class.c (make_class_data): Output signatures using '.' as a
16731
        separator, rather than '/'.
16732
        (mangled_classname): Likewise.
16733
        (make_field_value): Likewise.
16734
        (make_method_value): Likewise.
16735
        * constants.c (alloc_class_constant): Likewise.
16736
        * expr.c (build_invokeinterface): Likewise.
16737
 
16738
1999-02-11  Alexandre Petit-Bianco  
16739
 
16740
        * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
16741
        of an ancient workaround.
16742
 
16743
1999-02-10  Jeffrey A Law  (law@cygnus.com)
16744
 
16745
        * jvspec.c (xmalloc): Kill the prototype.  It does not belong
16746
        here anymore.
16747
 
16748
1999-02-10  Alexandre Petit-Bianco  
16749
 
16750
        * lex.c (yylex): Encode \0 as UTF8.
16751
 
16752
1999-02-10  Tom Tromey  
16753
 
16754
        * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
16755
        * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
16756
        (libgcj_zip): Renamed.
16757
        * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
16758
        LIBJAVA_ZIP_FILE.
16759
        (jcf_path_init): Use LIBGCJ_ZIP_FILE.
16760
 
16761
        * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
16762
        (GC_NAME): Renamed -lgc to -lgcjgc.
16763
 
16764
1999-02-09  Alexandre Petit-Bianco  
16765
 
16766
        * lex.c (java_lang_cloneable): Initialize.
16767
        * parse.y (java_lang_cloneable): New static variable.
16768
        (qualify_ambiguous_name): Take CONVERT_EXPR into account when
16769
        doing one more qualification round.
16770
        (valid_ref_assignconv_cast_p): Reject null source or
16771
        destination. Allow an array to be cast into java.lang.Cloneable.
16772
        (patch_cast): Swapped two first arguments to first call to
16773
        valid_ref_assignconv_cast_p.
16774
 
16775
1999-02-08  Alexandre Petit-Bianco  
16776
 
16777
        * parse.h: DECL_P renamed JDECL_P.
16778
        * parse.y: DECL_P replaced by JDECL_P.
16779
        (build_array_from_name): Always use pointer's type.
16780
        (patch_bc_statement): Extra code to search continue target in a
16781
        for loop. Fixed comments. Continue target is current loop when
16782
        unlabeled.
16783
 
16784
1999-02-05  Andrew Haley  
16785
 
16786
        * class.c (make_class_data): The superclass of an interface should
16787
        be null, not class Object.
16788
 
16789
        * lex.c (java_lex): Sign extend hex literals.
16790
 
16791
1999-02-04  Andrew Haley  
16792
 
16793
        * class.c (build_utf8_ref): Output signatures using '.' as a
16794
        separator, rather than '/'.
16795
        (make_class_data): Likewise.
16796
 
16797
1999-02-03  Marc Espie 
16798
 
16799
        * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
16800
        mkstemp.o.  Get them from libiberty now.
16801
 
16802
1999-02-02  Jeffrey A Law  (law@cygnus.com)
16803
 
16804
        * jcf-io.c: Do not include sys/stat.h or sys/wait.h
16805
 
16806
1999-02-02  Kaveh R. Ghazi  
16807
 
16808
        * jvspec.c (xmalloc): Fix the prototype to match the one obtained
16809
        from libiberty.h
16810
 
16811
1999-02-02  Per Bothner  
16812
 
16813
        Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
16814
        * jcf-write.c (generate_bytecode_return):  New function.
16815
        (generate_bytecode_insns):  Use it, for RETURN_EXPR.
16816
 
16817
        * jcf-write.c (generate_bytecode_insns):  For REAL_CST that is 0 or 1,
16818
        generate special [fd]const_[01] instructions.
16819
 
16820
        * jcf-parse.c (yyparse):  Don't emit_register_classes if -fsyntax-only.
16821
 
16822
        * verify.c (verify_jvm_instructions):  Do INVALIDATE_PC after
16823
        handling OPCODE_lookupswitch or OPCODE_tableswitch.
16824
 
16825
1999-02-01  Per Bothner  
16826
 
16827
        * parse.y (patch_method_invocation):  Handle calling static methods,
16828
        even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
16829
 
16830
        * parse.y (java_complete_lhs):  Don't complain about unreachable
16831
        exit condition in a do-while statement.
16832
 
16833
1999-01-29  Alexandre Petit-Bianco  
16834
 
16835
        * lex.c (java_read_char): Fixed utf8 decoding.
16836
        (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
16837
        range.
16838
        * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
16839
        comments. Local variable `all_primitive' is gone. Broadened
16840
        acceptance of `0' to floating point targets. `long' can now be
16841
        widened to `double' or `float'.
16842
        (valid_method_invocation_conversion_p): Added leading
16843
        comment. Fixed tabulation.
16844
        (build_string_concatenation): Optimize out left or right empty
16845
        string constants.
16846
 
16847
1999-01-28  Per Bothner  
16848
 
16849
        * jcf-write.c (localvar_alloc):  Only emit entry for
16850
        LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
16851
        (generate_bytecode_insns):  Only call put_linenumber if
16852
        debug_info_level > DINFO_LEVEL_NONE.
16853
        * jvspec.c (lang_specific_driver):  If no -O* or -g* option
16854
        is specified, add -g1 (for compatibility wih javac).
16855
 
16856
1999-01-28  Hans-Peter Nilsson  
16857
 
16858
        * java/Makefile.in: Add missing dependencies for jcf-dump.o,
16859
        gjavah.o, check-init.o, jv-scan.o
16860
 
16861
1999-02-01  Kaveh R. Ghazi  
16862
 
16863
        * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
16864
 
16865
        * gjavah.c: Include config.h and system.h.
16866
 
16867
        * javaop.h (inline): Don't define, its handled by system.h.
16868
        (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
16869
        from `inline' to `static inline'.
16870
 
16871
        * jcf.h (inline): Don't define, its handled by system.h.
16872
 
16873
        * lex.c (inline): Likewise.
16874
 
16875
1999-01-31  Zack Weinberg  
16876
 
16877
        * lang-specs.h: Map -Qn to -fno-ident.
16878
 
16879
1999-01-29  Richard Henderson  
16880
 
16881
        * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
16882
 
16883
1999-01-29  Tom Tromey  
16884
 
16885
        * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
16886
        then cast it to Object before calling `append' method.
16887
 
16888
1999-01-28  Per Bothner  
16889
 
16890
        * check-init.c (check_bool2_init, check_bool_init, check_init):
16891
        Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
16892
        * jcf-write.c (generate_bytecode_insns):  Likewise.
16893
 
16894
1999-01-28  Alexandre Petit-Bianco  
16895
 
16896
        * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
16897
        * parse.y (patch_cast): Allow a boolean to be cast into a
16898
        boolean.
16899
 
16900
1999-01-27  Alexandre Petit-Bianco  
16901
 
16902
        * parse.y: (class_declaration:): Fixed indentation.
16903
        (class_member_declaration:): Extra `;' after field declaration now
16904
        accepted.
16905
        (interface_declaration:): Removed debug messages in error reports.
16906
        (patch_binop): Nodes created and returned inherit the orignal
16907
        node's COMPOUND_ASSIGN_P flag value.
16908
        (patch_cast): Fix cast from char to floating point.
16909
 
16910
1999-01-25  Andrew Haley  
16911
 
16912
        * except.c, java-except.h (expand_resume_after_catch): new
16913
        function.
16914
        * expr.c (java_lang_expand_expr): call expand_resume_after_catch
16915
        to branch back to main flow of control after a catch block.
16916
 
16917
1999-01-23  Kaveh R. Ghazi  
16918
 
16919
        * Makefile.in (parse.o): Depend on $(CONFIG_H) and
16920
        $(srcdir)/../system.h.
16921
        (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
16922
        (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
16923
        (jcf-write.o): Likewise.
16924
        (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16925
        (mangle.o): Depend on $(srcdir)/../toplev.h.
16926
        (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16927
        (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16928
 
16929
        * class.c: Include output.h and parse.h.
16930
        (mangled_classname): Add the `const' keyword to a char*.
16931
        (find_named_method): Hide unused function definition.
16932
        (build_utf8_ref): Change type of variable `c' to unsigned char.
16933
        Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
16934
        (build_class_ref): Add the `const' keyword to a char*.
16935
        (layout_class_method): Remove unused variable `buf'.
16936
 
16937
        * decl.c (find_local_variable): Remove unused variable `rtl'.
16938
        (pushdecl): Likewise for variables `different_binding_level' and
16939
        `oldglobal'.
16940
        (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
16941
        (maybe_build_cleanup): Likewise for parameter `decl'.
16942
 
16943
        * except.c (expand_start_java_handler): Mark parameter `range'
16944
        with ATTRIBUTE_UNUSED.
16945
 
16946
        * expr.c: Include except.h.
16947
        (pop_type): Remove unused variable `i'.
16948
        (pop_value): Likewise for variables `n_words' and `i'.
16949
        (expand_java_arrayload): Likewise for variable `convert'.
16950
        (java_lang_expand_expr): Likewise for variables `op0', `type',
16951
        `mode', `unsignedp', `node' and `elements'.
16952
        (expand_byte_code): Likewise for variables `prev_eh_ranges' and
16953
        `eh_ranges'.
16954
        (process_jvm_instruction): Add a `const' qualifier to a char*.
16955
 
16956
        * gjavah.c (output_directory): Add the `const' keyword to a char*.
16957
        (temp_directory): Likewise.
16958
        (print_c_decl): Likewise.
16959
        (print_method_info): Likewise.
16960
        (decode_signature_piece): Likewise.
16961
        (print_mangled_classname): Likewise.
16962
 
16963
        * java-except.h: Provide prototypes for maybe_start_try,
16964
        maybe_end_try and add_handler.
16965
 
16966
        * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
16967
        (parse_error_context): Likewise.  Also add ATTRIBUTE_PRINTF_2.
16968
        (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
16969
        init_expr_processing, push_super_field, init_class_processing,
16970
        can_widen_reference_to, class_depth, verify_jvm_instructions,
16971
        maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
16972
        set_local_type, merge_type_state, push_type, load_type_state,
16973
        add_interface, find_in_current_zip, append_gpp_mangled_classtype,
16974
        emit_unicode_mangled_name): Add prototypes.
16975
 
16976
        * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
16977
        (print_signature_type): Use ISDIGIT, not isdigit.
16978
        (print_signature): Remove unused variable `j'.
16979
 
16980
        * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
16981
        int when comparing against one.
16982
 
16983
        * jcf-parse.c: Include toplev.h.
16984
 
16985
        * jcf-write.c: Likewise.  Don't include  or .
16986
        (localvar_free): Remove unused variable `i'.
16987
        (generate_bytecode_conditional): Likewise for variable `kind'.
16988
 
16989
        * jv-scan.c: Include config.h and system.h.  Remove redundant
16990
        OS header and gansidecl.h includes.
16991
        (warning): Add the `const' keyword to a char*.  Also add
16992
        ATTRIBUTE_PRINTF_1 to the prototype.  Check ANSI_PROTOTYPES, not
16993
        __STDC__, when determining whether to use ANSI-isms.
16994
        (fatal): Likewise.  Also add ATTRIBUTE_UNUSED.
16995
        (xmalloc): Don't redundantly prototype here.
16996
        (main): Remove unused parameter `envp'.  Also fix the arguments
16997
        passed to function `fatal' to match the format specifier.
16998
 
16999
        * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
17000
 
17001
        * mangle.c: Include toplev.h.
17002
        (emit_unicode_mangled_name): Declare parameter `len'.
17003
 
17004
        * parse.y (parse_warning_context): Add the `const' keyword to a
17005
        char*.  Also add ATTRIBUTE_PRINTF_2 to the prototype.  Check
17006
        `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
17007
        (issue_warning_error_from_context): Add the `const' keyword to
17008
        a char*.
17009
        (parse_error_context): Likewise.  Also check `ANSI_PROTOTYPES'
17010
        not `__STDC__' for whether to use ANSI-isms.
17011
 
17012
        * typeck.c (incomplete_type_error): Mark parameters `value' and
17013
        `type' with ATTRIBUTE_UNUSED.
17014
        (parse_signature_type): Use ISDIGIT, not isdigit.
17015
 
17016
        * verify.c (check_pending_block): Add the `const' keyword to a char*.
17017
        (verify_jvm_instructions): Likewise.  Remove unused variables
17018
        `field_name' and `default_val'.
17019
 
17020
        * zextract.c: Include config.h and system.h.  Remove redundant
17021
        OS header includes.
17022
 
17023
        * zipfile.h: Prototype `read_zip_archive'.
17024
 
17025
1999-01-21  Andrew Haley  
17026
 
17027
        * typeck.c (convert): Allow conversions to void type: some
17028
        optimizations in gcc do this.
17029
 
17030
1999-01-21  Andrew Haley  
17031
 
17032
        * typeck.c (convert_ieee_real_to_integer): New function.
17033
        (convert): When not using fast-math and using hardware fp, convert
17034
        an IEEE NaN to zero.
17035
 
17036
1999-01-18  Andrew Haley  
17037
 
17038
        * parse.y (patch_binop): Do a type conversion from signed to
17039
        unsigned and then back to signed when a ">>>" is found.
17040
 
17041
1999-01-17  Alexandre Petit-Bianco  
17042
 
17043
        * java-tree.h: (check_for_initialization): Added prototype.
17044
        * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
17045
        * parse.y (do_resolve_class): Removed unused locals.
17046
        (read_import_dir): Likewise.
17047
        (resolve_qualified_expression_name): Array creation
17048
        expressions are valid primary expressions.
17049
        (qualify_ambiguous_name): Likewise.
17050
        (patch_synchronized_statement): Removed unused local.
17051
 
17052
1999-01-17  Jeffrey A Law  (law@cygnus.com)
17053
 
17054
        * Makefile.in (zextract.o): Add dependencies.
17055
 
17056
        * Makefile.in: Do not put ^Ls at the start of a line.
17057
 
17058
1999-01-15  Per Bothner  
17059
 
17060
        * expr.c (process_jvm_instruction):  Coerce to correct Throwable
17061
        sub-type the result of the call that gets the exception value.
17062
 
17063
        * parse.y (java_complete_expand_methods):  If flags_syntax_only,
17064
        don't call finish_class.
17065
 
17066
        * parse.y (java_check_regular_methods):  If METHOD_PRIVATE,
17067
        clear found before continuing.
17068
 
17069
        * verify.c (verify_jvm_instructions):  On an array load, allow
17070
        and handle top of stack to be TYPE_NULL.
17071
 
17072
        * gjavah.c (generate_access):  Translate Java package private or
17073
        protected access to C++ public, but with a comment.
17074
 
17075
1999-01-13  Andrew Haley  
17076
 
17077
        * expr.c (generate_name): Name prefix changed to avoid clashes
17078
        with assembler temp labels.
17079
 
17080
        * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
17081
        MODIFY_EXPR.  Without this, code for the assignment may not be
17082
        generated at all and the synchronized statement will read an
17083
        uninitialized variable.
17084
 
17085
1999-01-13  Alexandre Petit-Bianco  
17086
 
17087
        * class.c (maybe_layout_super_class): Fixed returned value.
17088
        * lex.c: Added 1999 to the copyright.
17089
        (java_init_lex): Initialize java_lang_imported.
17090
        * lex.h: Added 1999 to the copyright.
17091
        * parse.h: Added 1999 to the copyright.
17092
        (REGISTER_IMPORT): Fixed typo in trailing macro.
17093
        (CURRENT_OSB): New macro.
17094
        (struct parser_ctxt): New fields osb_depth, osb_limit.
17095
        * parse.y (java_lang_id): New global variable.
17096
        (type_import_on_demand_declaration): Don't import java.lang.* twice.
17097
        (array_creation_expression:): Use CURRENT_OSB.
17098
        (dims:): Uses a stack to keep track of array dimensions.
17099
        (cast_expression:): Use CURRENT_OSB.
17100
        (find_expr_with_wfl): Return NULL if node found doesn't meet the
17101
        conditions.
17102
        (register_fields): Fixed typos in comment.
17103
        (check_method_redefinition): Fixed comment indentation.
17104
        (java_check_regular_methods): Set saved found wfl to NULL after
17105
        having reinstalled it in the previously found DECL_NAME.
17106
 
17107
1999-01-10  Richard Henderson  
17108
 
17109
        * gjavah.c (java_float_finite): Use a union to do type punning.
17110
        (java_double_finite): Likewise.
17111
 
17112
1999-01-09  Per Bothner  
17113
 
17114
        * parse.y (build_new_array_init):  Don't set EXPR_WFL_LINECOL
17115
        on CONSTRUCTOR (since that trashes TREE_CST_RTL).
17116
        (patch_new_array_init):  Clear TREE_CONSTANT also if INDIRECT_REF.
17117
        (register_fields):  Set TREE_STATIC on NEW_ARRAY_INIT, not on
17118
        CONSTRUCTOR (which causes expand_expr to call output_constant_def).
17119
        * expr.c (java_lang_expand_expr):  Check TREE_STATIC of NEW_ARRAY_INIT.
17120
 
17121
1999-01-08  Per Bothner  
17122
 
17123
        * check-init.c (check_init):  If compiling to native, we don't
17124
        see THROW_EXPR.  Instead, look for a call to throw_node (_Jv_Throw).
17125
 
17126
1999-01-08  Tom Tromey  
17127
 
17128
        * parse-scan.y (variable_declarator_id): Set or increment
17129
        bracket_count.
17130
        (bracket_count): New global.
17131
        (formal_parameter): Handle case where bracket pairs trail variable
17132
        declarator id.
17133
 
17134
1999-01-07  Andrew Haley  
17135
 
17136
        * jcf-parse.c (yyparse): variable len changed from a char to an
17137
        int to prevent overflow.
17138
 
17139
1999-01-06  Per Bothner  
17140
 
17141
        * java-tree.h:  Declare read_class.
17142
        * jcf-parse.c (read_class):  New function.
17143
        (load_class):  Now just call read_class.
17144
 
17145
        * java-tree.h (java_parse_abort_on_error):  Only return if new errors.
17146
        * jcf-parse.c (parse_source_file):  Declare save_error_count,
17147
        which is needed by java_parse_abort_on_error macro,
17148
        * parse.y (java_layout_classes, java_expand_classes):  Likewise.
17149
 
17150
        * parse.y (register_fields):  Set TREE_STATIC flag of NEW_ARRAY_INIT
17151
        constructor, if initializing a static field.
17152
        (patch_new_array_init):  Set TREE_CONSTANT if it is.
17153
        * expr.c (java_lang_expand_expr):  For a static array constructor
17154
        of primitive elements, allocate the array itself statically.
17155
        Disabled until we can set the vtable field statically.
17156
 
17157
        * check-init.c:  New file.  Checks for definite assignment.
17158
        * Makefile.in (JAVA_OBJS):  Add check-init.o.
17159
        * parse.y (java_complete_expand_method): Call check_for_initialization.
17160
        * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY):  Moved to java-tree.h.
17161
 
17162
1999-01-06  Graham 
17163
 
17164
        * parse.y : include system.h instead of including
17165
        standard headers directly with the exception of .
17166
 
17167
1999-01-06  Per Bothner  
17168
 
17169
        * lex.h:  Moved static function declarations to lex.c,
17170
        to shut up some -Wall warnings.
17171
        * lex.c:  Static function declarations moved here.
17172
        * jcf-dump.c:  Small fixes to shut up -Wall warnings.
17173
 
17174
1999-01-05  Kaveh R. Ghazi  
17175
 
17176
        * Make-lang.in ($(GCJ).o): Depend on prefix.h.
17177
 
17178
1998-12-22  Per Bothner  
17179
 
17180
        * expr.c (process_jvm_instruction):  Do load_type_state after JSR.
17181
        * verify.c (verify_jvm_instructions):  Fix off-by-one error.
17182
 
17183
        * jcf-write.c (CHECK_PUT):  Add (void) cast to avoid -Wall warnings.
17184
        (localvar_alloc):  Change return type to void,
17185
        (emit_unop):  Remove unused variable size.
17186
 
17187
        * jcf-write.c (struct jcf_block):  Add new union.
17188
        (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC):  New macros.
17189
        (call_cleanups):  New functions.
17190
        (struct jcf_partial):  New fields num_finalizers and return_value_decl.
17191
        (generate_bytecode_insns):  Support CLEANUP_POINT_EXPR and
17192
        WITH_CLEANUP_EXPR.  Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
17193
        * lang.c (lang_init):  Call using_eh_for_cleanups.
17194
        * parse.y (java_complete_lhs):  For SYNCHRONIZED_EXPR, defer
17195
        completing operands to patch_synchronized_statement.
17196
        Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
17197
        (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
17198
        WITH_CLEANUP_EXPR instead of TRY_EXPR.
17199
 
17200
1998-12-20  John F. Carr  
17201
 
17202
        * Make-lang.in: Comment out control-Ls; they upset some makes.
17203
 
17204
1998-12-18  Tom Tromey  
17205
 
17206
        * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
17207
        consistently.
17208
 
17209
1998-12-17  Tom Tromey  
17210
 
17211
        * parse.y (DIR_SEPARATOR): New define.
17212
        (check_class_interface_creation): Use it.
17213
 
17214
        * parse-scan.y (report_main_declaration): Recognize
17215
        `java.lang.String' in argument to main.
17216
 
17217
1998-12-16  Per Bothner  
17218
 
17219
        * parse.y (create_interface):  Remove bogus test.
17220
 
17221
1998-12-16  Per Bothner  
17222
 
17223
        * jcf-parse.c (get_constant):  Set TREE_TYPE for string constants.
17224
        (HANDLE_CONSTANTVALUE):  If flag_emit_class_files, call get_constant.
17225
 
17226
1998-12-16  Tom Tromey  
17227
 
17228
        * parse-scan.y (qualified_name): Use correct sprintf format.
17229
 
17230
1998-12-15  Tom Tromey  
17231
 
17232
        * gjavah.c (print_field_info): Changed how most negative number is
17233
        printed.
17234
 
17235
1998-12-14  Per Bothner  
17236
 
17237
        * parse.y (fold_constant_for_init):  New function.
17238
        (resolve_expression_name):  Don't replace static final
17239
        constant-initialized fields by its value.
17240
        (java_complete_lhs):  New.  Same as java_complete_tree, except does
17241
        not replace static final constant-initialized fields by their values.
17242
        (register_fields):  If there is an initializer, set DECL_INITIAL and
17243
        MODIFY_EXPR_FROM_INITIALIZATION_P.
17244
        (java_complete_tree):  For MODIFY_EXPR, use java_complete_lhs for lhs.
17245
        Only call patch_initialized_static_field if
17246
        MODIFY_EXPR_FROM_INITIALIZATION_P.
17247
        (patch_initialized_static_field):  If not valid constant, clear
17248
        DECL_INITIAL.
17249
 
17250
        * parse.y (lookup_field_wrapper):  Fix thinko.
17251
 
17252
        * parse.y (java_complete_tree):  In EXPR_WITH_FILE_LOCATION,
17253
        set and restore global lineno.
17254
 
17255
1998-12-14  Tom Tromey  
17256
 
17257
        * gjavah.c (print_field_info): If value to print is the smallest
17258
        value of its size, then print as hex to avoid later warnings from
17259
        C++ compiler.
17260
 
17261
1998-12-14  Tom Tromey  
17262
 
17263
        * gjavah.c (decompile_method): Decompile `return null'.
17264
        (process_file): Generate `#pragma interface'.
17265
        (method_declared): New global.
17266
        (print_method_info): Set it.
17267
        (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
17268
        (print_method_info): Handle abstract methods.
17269
 
17270
1998-12-13  Per Bothner  
17271
 
17272
        * parse.y (patch_method_invocation):  If class_decl is null
17273
        (e.g. an array type), use original type.
17274
 
17275
        * parse.y (check_thrown_exceptions):  Temporary hack to suppress
17276
        errors about uncaught exception from clone (of array, specifically).
17277
 
17278
1998-12-13  Tom Tromey  
17279
 
17280
        * gjavah.c (decompile_method): Handle all types of `return'
17281
        opcode.  Decompile `return this' and `return'.
17282
        (method_access): New global.
17283
        (print_method_info): Set it.
17284
        (decompile_method): Don't decompile a synchronized method.
17285
 
17286
1998-12-13  Tom Tromey  
17287
 
17288
        * jcf-reader.c (jcf_parse_one_method): Recognize
17289
        HANDLE_END_METHOD.
17290
        * gjavah.c (HANDLE_END_METHOD): New macro.
17291
        (HANDLE_CODE_ATTRIBUTE): New macro.
17292
        (decompile_method): New function.
17293
        (print_method_info): Don't print `;\n' at end of function decl.
17294
        Include java-opcodes.h.
17295
        (decompiled): New global.
17296
 
17297
1998-12-12  Per Bothner  
17298
 
17299
        * class.c (build_class_ref):  Handle PRIMTYPE.class if
17300
        flag_emit_class_files.
17301
        * expr.c (expand_java_field_op):  Don't optimize java.lang.XXX.TYPE
17302
        if flag_emit_class_files.
17303
        * parse.y (java_complete_tree):  Pre-liminary support for
17304
        COMPONENT_REF - only to handle PRIMCLASS.TYPE.
17305
 
17306
        * parse.y (patch_synchronized_statement):   Don't call monitorexit
17307
        unless block CAN_COMPLETE_NORMALLY.  Propagate that flag properly.
17308
 
17309
        * java-tree.h (DECL_LOCAL_STATIC_VALUE):  Removed - no longer used.
17310
 
17311
        * zipfile.h (opendir_in_zip):  New declaration.
17312
        * jcf-io.c (saw_java_source):  Moved to jcf-parse.c.
17313
        (opendir_in_zip):  New function, using code from open_in_zip.
17314
        (open_in_zip):  Call opendir_in_zip.
17315
        (find_class):  Remove no-longer-used do_class_file parameter,
17316
        but add source_ok parameter.  Change logic so if we find a .java file,
17317
        we don't look for .class in later classpath emtries.
17318
        * jcf-parse.c (load_class):  Pass saw_java_source to find_class.
17319
        (jcf_figure_file_type):  Only call open_in_zip if correct magic number.
17320
        * gjavah.c: Update call to find_class.
17321
        * jcf-dump.c:  Likewise.
17322
 
17323
        * jcf-write.c (put_linenumber):  Handle duplicate line numbers.
17324
        (generate_bytecode_insns):  For EXPR_WITH_FILE_LOCATION, do
17325
        nothing if body is empty_stmt_node.
17326
        Various little fixes so SP gets correctly adjusted.
17327
        For NEW_ARRAY_INIT, handle IGNORE_TARGET.
17328
        For CALL_EXPR, test if static first.
17329
        (generate_classfile):  Ignore fields that are DECL_ARTIFICIAL,
17330
        such as the ones we create for Object and Class.
17331
        Set and restore current_function_decl.
17332
        * parse.y:  Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
17333
        (note_possible_classname):  New function.
17334
        (read_import_entry):  Removed.  Merged with read_import_dir.
17335
        (read_import_dir):  Don't call find_class - that only gives us
17336
        the first classpath entry having the needed package.
17337
        Use the struct buffer data structure from buffer.h.
17338
        (read_import_dir, find_in_imports_on_demand):  The remembered
17339
        class names now use '.' (not '/') as package separator.
17340
 
17341
        * parse.y (java_complete_expand_methods):  Call write_classfile
17342
        here, and not in java_expand_classes (which only gets first class).
17343
 
17344
1998-12-12  Alexandre Petit-Bianco  
17345
 
17346
        * parse.y ():  Do maybe_generate_clinit last.
17347
        (register_fields):  If a static fields has an initializer, just
17348
        chain it on ctxp->static_initialized, and handle later.
17349
        (java_complete_expand_methods):  Force  first.
17350
        (resolve_expression_name, resolve_field_access):  Just get DECL_INITIAL
17351
        - it's already been completed.
17352
        (patch_initialized_static_field):  New function.
17353
        (java_complete_field):  Call it.
17354
 
17355
1998-12-12  Per Bothner  
17356
 
17357
        * expr.c (encode_newarray_type, build_new_array):  New functions.
17358
        * java-tree.h:  Declare build_new_array.
17359
        * jcf-write.c (patch_newarray):  Use build_new_array.
17360
 
17361
        * expr.c (java_lang_expand_exp):  Support NEW_ARRAY_INIT.
17362
        * jcf-write.c (generate_bytecode_insns):  Support NEW_ARRAY_INIT.
17363
 
17364
        * parse.y (patch_new_array_init):  Re-organize.
17365
        Now is passed the actual array (pointer) type of the value.
17366
        Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
17367
        (patch_array_constructor):  Removed - merged into patch_new_array_init.
17368
        (java_complete_tree):  Update patch_new_array_init.
17369
 
17370
        * jcf-write.c (find_constant_index):  New function.
17371
        (generate_bytecode_insns):  Use find_constant_index.
17372
        (generate_classfile):  Use find_constant_index for ConstantValue.
17373
 
17374
1998-12-11  Tom Tromey  
17375
 
17376
        * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
17377
        * decl.c (init_decl_processing): Renamed dtable -> vtable.
17378
        * class.c (make_class_data): Renamed dtable -> vtable, and
17379
        dtable_method_count -> vtable_method_count.
17380
 
17381
1998-12-10  Alexandre Petit-Bianco  
17382
 
17383
        * decl.c (long_zero_node, float_zero_node, double_zero_node): New
17384
        global variables, initialized.
17385
        * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
17386
        Declared new global variables.
17387
        * lex.c (java_lex): Return long_zero_node, float_zero_node,
17388
        double_zero_node, integer_zero_node upon direct matching.
17389
        * parse.y (purify_type_name): Added function prototype.
17390
        (duplicate_declaration_error_p): Consider new_type as potentially
17391
        being a incomplete type. Use purify_type_name on type string.
17392
        (method_header): saved_type: unused variable removed. Don't figure
17393
        return type if method name is invalid.
17394
        (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
17395
        processed by patch_unaryop.
17396
        (patch_unaryop): Fixed typo in comment. Re-convert pre/post
17397
        increment/decrement node into its original type after binary
17398
        numeric promotion on its operands.
17399
 
17400
1998-12-10  Alexandre Petit-Bianco  
17401
 
17402
        * parse.y (array_initializer:): Array init operand is NULL_TREE
17403
        instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
17404
        now an error. Fixed indentation problems.
17405
        (patch_string): Handle error_mark_node as an argument.
17406
        (patch_new_array_init): Fixed indentation problems.
17407
        (array_constructor_check_entry): Removed check on null wfl_value.
17408
        Return an error if wfl_value's walk returns an error.
17409
 
17410
1998-12-09  Alexandre Petit-Bianco  
17411
 
17412
        * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
17413
        * lex.c (java_lex): Remember column position before advancing one
17414
        token. Retain location information on OCB_TK.
17415
        * lex.h (typedef struct java_lc): Added new field.
17416
        * parse.h (GET_SKIP_TYPE): New macro.
17417
        (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
17418
        * parse.y (build_new_array_init, patch_new_array_init,
17419
        patch_array_constructor, maybe_build_array_element_wfl,
17420
        array_constructor_check_entry): New function prototypes.
17421
        (switch_block:): Tagged .
17422
        (OCB_TK): Tagged .
17423
        (array_initializer:): Installed actions.
17424
        (variable_initializer): Build location information on element if
17425
        necessary.
17426
        (switch_statement:): Fixed indentation typo.
17427
        (switch_block:): Redefined default action.
17428
        (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
17429
        (patch_assignment): Removed duplicate code.
17430
        (maybe_build_array_element_wfl, build_new_array_init,
17431
        patch_new_array_init, patch_array_constructor,
17432
        array_constructor_check_entry): New functions.
17433
 
17434
1998-12-07  Alexandre Petit-Bianco  
17435
 
17436
        * parse.y (array_initializer): Tagged .
17437
        (variable_initializer:): Use default rule.
17438
        (array_initializer:): Defined actions.
17439
        (variable_initializers:): Likewise.
17440
        (resolve_qualified_expression_name): Use DECL_CONTEXT to build
17441
        non-static field accesses.
17442
        (patch_invoke): Fixed indentation typo.
17443
        (java_complete_tree): Likewise.
17444
        (build_labeled_block): Changed leading comment. Generate an error
17445
        in case of duplicate loop labels.
17446
        (patch_conditional_expr): Patch results of string concatenation
17447
        operations.
17448
 
17449
1998-12-06  Per Bothner  
17450
 
17451
        * constants.c (find_methodref_index):  When the class is an interface,
17452
        generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
17453
 
17454
        * decl.c (finit_identifier_node):  Use "$finit$", rather than
17455
        "" (which Sun's verifier rejects).
17456
        * parse.y (maybe_generate_finit):  Leave out meaningless final flag.
17457
        (generate_field_initialization_code):  Removed.
17458
        (fix_constructors)  Don't add call to $finit$ here (wrong order).
17459
        (patch_method_invocation):  Add $finit$ call here.
17460
 
17461
        * java-tree.h (CALL_USING_SUPER):  New macro.
17462
        * parse.y (patch_invoke):  Remove im local variable.
17463
        (patch_method_invocation, patch_invoke):  Don't pass super parameter.
17464
        (patch_invoke):  Use CALL_USING_SUPER instead of from_super parameter.
17465
        (resolve_qualified_expression_name):  Maybe set CALL_USING_SUPER.
17466
 
17467
        * jcf-write.c (get_access_flags):  Fix typo ACC_PUBLIC -> ACC_FINAL.
17468
 
17469
        * parse.y (java_complete_tree):  Don't complain about unreachable
17470
        statement if it is empty_stmt_node.
17471
 
17472
        * jcf-write.c (find_constant_wide):  New function.
17473
        (push_long_const):  Use find_constant_wide.
17474
 
17475
        * jcf-write.c (generate_bytecode_insn):  Fix bug in switch handling.
17476
        (generate_bytecode_insn):  Use correct dup variant for MODIFY_EXPR.
17477
        Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
17478
        Emit invokeinterface when calling an interface method.
17479
        Emit invokespecial also when calling super or private methods.
17480
 
17481
        * jcf-write.c (generate_classfile):  Emit ConstantValue attributes.
17482
 
17483
1998-12-06  Per Bothner  
17484
 
17485
        * jcf-dump.c (INVOKE):  If invokeinterface, print number of args.
17486
 
17487
1998-12-03  Alexandre Petit-Bianco  
17488
 
17489
        * java-tree.h (java_layout_seen_class_methods): New function
17490
        prototype.
17491
        (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
17492
        * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
17493
        * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
17494
        * parse.y (method_declarator:): Defined action.
17495
        (issue_warning_error_from_context): input_filename saved, set to
17496
        the appropriate value and restored after java_error is called.
17497
        (build_unresolved_array_type): Fixed comment.
17498
        (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
17499
        (method_header): Deal with return type the same way type are
17500
        handled for fields and method's parameters and local variables
17501
        types are handled.
17502
        (check_method_redefinition): Removed extra CR.
17503
        (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
17504
        (java_layout_seen_class_methods): New function.
17505
        (java_layout_classes): Call java_layout_seen_class_methods.
17506
 
17507
1998-12-03  Per Bothner  
17508
 
17509
        * parse,y (patch_synchronized_statement):  Set CAN_COMPLETE_NORMALLY.
17510
 
17511
1998-12-03  Per Bothner  
17512
 
17513
        * jcf-dump.c (main):  Fix error message.
17514
        * jcf-path.c (add_entry):  Style fix.
17515
 
17516
1998-12-02  Alexandre Petit-Bianco  
17517
 
17518
        * class.c (layout_class_method): Call build_java_argument_signature
17519
        on constructors too.
17520
        * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
17521
        (patch_method_invocation): Define a primary when resolving an
17522
        expression name. Augmented comment on code checking illegal `this'
17523
        usage. Loosened it test by accepting NEW_CLASS_EXPR.
17524
 
17525
1998-12-01  Alexandre Petit-Bianco  
17526
 
17527
        * class.c (layout_class_method): Don't report error on non-static
17528
        overriding static if the method is private.
17529
        * java-tree.h (finish_class): Prototype added.
17530
        * lex.c (java_get_line_col): Handle col argument -2 value.
17531
        * parse.h: All static method declarations moved to parse.y.
17532
        * parse.y: Now contains all static method declarations previously
17533
        found in parse.h.
17534
        (find_expr_with_wfl, missing_return_error,
17535
        unreachable_stmt_error): New functions.
17536
        (java_get_real_method_name): Identify constructors bearing class
17537
        names in source code compiled classes only.
17538
        (java_complete_expand_methods): Call missing_return_error.
17539
        (invocation_mode): Private methods invoked as static methods.
17540
        (java_complete_tree): Call unreachable_stmt_error.
17541
 
17542
1998-12-01  Tom Tromey  
17543
 
17544
        * Makefile.in (+target): Removed.
17545
        (+xmake_file): Likewise.
17546
        (+tmake_file): Likewise.
17547
        (.NOEXPORT): Removed duplicate.
17548
 
17549
1998-11-27  Kaveh R. Ghazi  
17550
 
17551
        * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
17552
 
17553
        * jv-scan.c: Fix xmalloc prototype.  Provide an xmalloc definition.
17554
 
17555
        * jvgenmain.c: Remove the xmalloc prototype, we get it from
17556
        libiberty.h.  Provide an xmalloc definition.
17557
 
17558
        * jvspec.c: Remove the xmalloc prototype.
17559
 
17560
        * parse-scan.y: Include config.h and system.h.  Don't include
17561
        OS headers or gansidecl.h.  Don't prototype xmalloc/xstrdup.
17562
        Provide an xstrdup definition.
17563
 
17564
1998-11-26  Alexandre Oliva  
17565
 
17566
        * jcf-path.c (add_entry): Recognize ".jar" too.
17567
        * lang-specs.h: Likewise.
17568
 
17569
1998-11-26  Per Bothner  
17570
 
17571
        * jcf-write.c (generate_bytecode_insns):  In Call_EXPR, handle
17572
        soft_monitorenter_node, soft_monitorexit_node, throw_node.
17573
 
17574
        * jcf-write.c (generate_bytecode_insns):
17575
        Handle pre/post-increment/decrement of long.
17576
 
17577
        * jcf-write.c (generate_bytecode_insns):
17578
        Handle missing exception handler (finally for synchronized).
17579
 
17580
1998-11-25  Per Bothner  
17581
 
17582
        * java-tree.h (end_params_node):  Declare global.
17583
        * decl.c (end_params_node):  New global.
17584
        (init_decl_processing, start_java_method):  Use end_params_node for
17585
        end of list of parameter types.  Follows correct gcc conventions.
17586
        * expr.c (pop_argument_types, pop_arguments):  Likewise.
17587
        * lang.c (put_decl_node):  Likewise.
17588
        * typeck.c (various places):  Likewise.
17589
        * class.y (various places):  Likewise.
17590
        * parse.y (various places):  Likewise.
17591
 
17592
        * parse.y (java_complete_tree):  Move CAN_COMPLETE_NORMALLY.
17593
        (build_jump_to_finally):  Add missing CAN_COMPLETE_NORMALLY.
17594
 
17595
        * class.c:  Add #include flags.h, remove no-longer needed declaration.
17596
 
17597
        * class.c (layout_class_method):  Remove commented-out code, re-format.
17598
        Don't add vtable entry (or index) for private methods.
17599
        * expr.c (expand_invoke):  A private method is implicitly final.
17600
        * class.c (make_class_data):  If inlining or optimizing,
17601
        skip private methods.
17602
 
17603
        * class.c (finish_class):  New function.  Calls existing methods,
17604
        but alls emits deferred inline functions.
17605
        * jcf-parse.c (parse_class_file):  Call finish_class.
17606
        * parse.y (java_complete_expand_methods):  Likewise.
17607
 
17608
        * expr.c (build_java_binop):  Explicit default, to silence -Wall.
17609
 
17610
        * expr.c (CHECK_PC_IN_RANGE):  Add void cast to kill warnings.
17611
 
17612
1998-11-25  Marc Espie 
17613
 
17614
        * jcf-write.c (generate_bytecode_conditional): Fix typo.
17615
 
17616
1998-11-24  Per Bothner  
17617
 
17618
        * (generate_classfile): Always write class access flag with
17619
        ACC_SUPER set.
17620
 
17621
1998-11-24  Alexandre Petit-Bianco  
17622
 
17623
        * class.c (maybe_layout_super_class): New function.
17624
        (layout_class): Reorganized. Loop on class methods dispatched into
17625
        a new function. Call maybe_layout_super_class.
17626
        (layout_class_methods, layout_class_method): New functions.
17627
        * expr.c (expand_java_NEW): Call layout_class_methods on loaded
17628
        class.
17629
        (expand_invoke): Likewise.
17630
        * java-tree.h (all_class_list): New global variable declared.
17631
        (layout_class_methods, layout_class_method): New function
17632
        prototypes.
17633
        (LAYOUT_SEEN_CLASS_METHODS): New macro.
17634
        * jcf-parse.c (all_class_list): New global variable.
17635
        (load_class): Extended what class_or_name can be. Use parser
17636
        context mechanism to save globals before calling jcf_parse.
17637
        (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
17638
        is set on the file name.
17639
        (jcf_parse): Layout class methods when Object is loaded, otherwise
17640
        record class in all_class_list for delayed method layout.
17641
        (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
17642
        * lang.c (put_decl_node): Decode  into the decl context
17643
        class name.
17644
        * lex.c (java_allocate_new_line): Use xmalloc.
17645
        * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
17646
        pointers, not TREE_LIST elements.
17647
        (struct parser_ctxt): Fixed comment indentations, added comments
17648
        and reordered some fields.
17649
        (java_check_methods): Function prototype removed.
17650
        * parse.y (java_push_parser_context): Use xmalloc.
17651
        (java_parser_context_restore_global): Pop extra pushed ctxp only
17652
        when there's nothing next.
17653
        (maybe_create_class_interface_decl): Fixed comment, add new
17654
        created class decl to all_class_list.
17655
        (method_header): Use GET_REAL_TYPE on argument's types.
17656
        (method_declarator): Use GET_REAL_TYPE, change type to the real
17657
        type in TREE_LIST dependency node. Build argument list with the
17658
        real type.
17659
        (create_jdep_list): Use xmalloc. Removed allocation error message.
17660
        (obtain_incomplete_type): Fixed leading comment. Broadened
17661
        incoming argument meaning.
17662
        (register_incomplete_type): Use xmalloc. Removed allocation error
17663
        message.
17664
        (safe_layout_class): Fixed leading comment.
17665
        (jdep_resolve_class): Reversed if statement condition and switch
17666
        if and else bodies.
17667
        (resolve_and_layout): Fixed leading comment. Broadened incoming
17668
        argument meaning.
17669
        (complete_class_report_errors): New local variable name, for
17670
        clarity. purify_type_name used for all error cases.
17671
        (java_get_real_method_name): Stricter check on constructors.
17672
        (java_check_regular_methods): Reverse methods list only if not
17673
        already laid out. Layout artificial constructor.
17674
        (java_check_methods): Deleted.
17675
        (source_start_java_method): Obtain incomplete type for patchable
17676
        method arguments.
17677
        (java_layout_classes): Fixed leading comment. Use
17678
        LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
17679
        statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
17680
        before returning. Fixed comments.
17681
        (java_expand_classes): Check for errors up front.
17682
        (patch_method_invocation): Class to search is resolved and laid
17683
        out.
17684
 
17685
1998-11-24  Per Bothner  
17686
 
17687
        * expr.c (java_lang_expand_expr):  Add missing emit_queue.
17688
 
17689
        * javaop.h (int8):  Removed - not used.
17690
        (jbyte):  Redefine portably with correct signedness.
17691
 
17692
        * jcf-write.c (generate_bytecode_insns):  Don't free sw_state.cases.
17693
 
17694
        * jcf-write.c (generate_bytecode_insns):  Fix typo
17695
        OPCODE_getstatic to OPCODE_getfield.
17696
 
17697
        * java-tree.def (CASE_EXPR, DEFAULT_EXPR):  Kind is 'x', not '1'.
17698
        * parse.y (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR,
17699
        set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
17700
 
17701
1998-11-19  Alexandre Petit-Bianco  
17702
 
17703
        * jcf-parse.c (jcf_parse_source): Function returned type is
17704
        void. Added prototype.
17705
        (jcf_parse): Function returned type is void.
17706
        (yyparse): Remove call to fclose on the last parsed file.
17707
 
17708
        * java-tree.h (jcf_parse): Changed jcf_parse prototype.
17709
 
17710
1998-11-18  Alexandre Petit-Bianco  
17711
 
17712
        * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
17713
        (layout_class): Cope with methods featuring WFL in decl names.
17714
        * decl.c (unqualified_object_id_node): New global variable,
17715
        initialized.
17716
        (build_decl_no_layout): Removed.
17717
        * expr.c (build_primtype_type_ref): Handle Double.
17718
        (java_lang_expand_expr): Fixed indentations.
17719
        * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
17720
        (flag_wall, flag_redundant, flag_not_overriding,
17721
        flag_static_local_jdk1_1, unqualified_object_id_node): Global
17722
        variable declarations.
17723
        (build_decl_no_layout): Removed prototype.
17724
        (java_get_real_method_name): Added prototype.
17725
        (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
17726
        (java_parse_abort_on_error): Macro now just returns.
17727
        * jcf-parse.c (jcf_parse_source): Check fclose returned
17728
        value. Call emit_register_classes if java_report_errors returns
17729
        zero.
17730
        * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
17731
        flag_static_local_jdk1_1): New integer flags.
17732
        (lang_decode_option): New flags set here.
17733
        * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
17734
        (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
17735
        the flag_redundant variable.
17736
        (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
17737
        when parsing java.lang.Object class.
17738
        (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
17739
        NULL_TREE to build.
17740
        (resolve_qualified_expression_name): Fixed indentation.
17741
        (patch_array_ref): Changed prototype.
17742
        (not_initialized_as_it_should_p): Prototype removed.
17743
        (java_report_errors): Added function prototype.
17744
        * parse.y (formal_parameter:): Changed error message for not yet
17745
        supported final parameters.
17746
        (class_type_list:): Set both PURPOSE and VALUE of created
17747
        TREE_LIST to be class_type.
17748
        (primary_no_new_array:): Handle class literals on primitive types.
17749
        (parse_warning_context): Reinstalled correct force_error and
17750
        do_warning flags setups.
17751
        (java_report_errors): Changed prototype. Return java_error_count
17752
        value.
17753
        (variable_redefinition_error): Consider treating variable type as
17754
        a fake pointer.
17755
        (create_interface): Warn about redundant abstract modifier if
17756
        flag_redundant is set. Changed error message.
17757
        (lookup_field_wrapper): Save/restore globals before/after looking
17758
        up field.
17759
        (duplicate_declaration_error_p): Consider treating declaration
17760
        type as a fake pointer.
17761
        (register_fields): Extract real type from dependency node. Check
17762
        for duplicate field declaration after type adjustment. Use
17763
        DECL_INITIAL to store static final initialized values.
17764
        (method_header): Extract real function type from dependency node.
17765
        (check_abstract_method_header): Use GET_METHOD_NAME.
17766
        (obtain_incomplete_type): Layout fake pointer type.
17767
        (safe_layout_class): Don't try to check for methods before layout.
17768
        (java_complete_class): Don't check for correct throws clause
17769
        elements inheritance here.
17770
        (resolve_and_layout): Broadened name parameter meaning.
17771
        (reset_method_name): Use GET_METHOD_NAME.
17772
        (java_get_real_method_name): New function.
17773
        (java_check_regular_methods): Don't check methods in
17774
        java.lang.Object.  Verify lineage of throws clause elements. Use
17775
        flag_no_overriding in warning report.
17776
        (check_throws_clauses): Don't check if class was from
17777
        bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
17778
        (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
17779
        (declare_local_variables): Use flag_static_local_jdk1_1 to report
17780
        warning on unsupported final local variables. Use build_decl
17781
        instead of build_decl_no_layout. Get real local variable type from
17782
        dependency node.
17783
        (source_start_java_method): Get real parameter type from
17784
        dependency node. Call build_decl instead of build_decl_no_layout.
17785
        (java_layout_classes): Reverse tree and layout type and class as
17786
        required. Mark class as loaded when done.
17787
        (resolve_field_access): Fixed indentation. Restricted condition
17788
        leading to static field access code generation. Set field_type
17789
        decl's TREE_TYPE if QUAL_DECL_TYPE not available.
17790
        (resolve_qualified_expression_name): Initialize type_found to
17791
        null. Handle static field resolved during qualification. Fixed
17792
        layout on non primitive field decl types.
17793
        (not_accessible_p): Fixed typo in comment.
17794
        (patch_method_invocation): Resolve and layout class to search from
17795
        type.
17796
        (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
17797
        layout non primitive type, if necessary. Make method node only to
17798
        report errors.
17799
        (find_applicable_accessible_methods_list): Consider WFL'ed method
17800
        decl names. Fixed indentation.
17801
        (argument_types_convertible): Resolve and layout target type if
17802
        necessary.
17803
        (java_complete_tree): Fixed indentation problems. Rewrote
17804
        CALL_EXPR thrown exceptions check. Re-installed further processing
17805
        of the assignment in certain cases.
17806
        (patch_assignment): Call maybe_build_primttype_type_ref to perform
17807
        inlining on class literals.
17808
        (valid_builtin_assignconv_identity_widening_p): Cope with constant
17809
 
17810
        (valid_method_invocation_conversion_p): Likewise.
17811
        (patch_string): Temporary disable forbidden use of `this' in
17812
        explicit constructor invocations when doing string concatenation
17813
        within their scope.
17814
        (patch_unaryop): Added comment. Reinstalled code to disable
17815
        further check on assignment operation with cast expression RHS.
17816
        (patch_switch_statement): Fixed indentation.
17817
        (build_try_statement): Call build_decl instead of
17818
        build_decl_no_layout.
17819
        (patch_synchronized_statement): Likewise.
17820
        (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
17821
        IS_UNCHECKED_EXPRESSION_P.
17822
        (check_thrown_exceptions_do): Changed leading comment. Resolve and
17823
        layout argument exception type.
17824
        (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
17825
        of IS_UNCHECKED_EXPRESSION_P.
17826
 
17827
1998-11-18  Anthony Green  
17828
 
17829
        * jcf-parse.c (yyparse): Open class file in binary mode.
17830
 
17831
1998-11-15  Per Bothner  
17832
 
17833
        * jvgenmain.c:  Need to #include "gansidecl.h" (to get PROTO).
17834
 
17835
        * jcf-write.c (perform_relocations):  Move check out one loop.
17836
 
17837
1998-11-15  Anthony Green  
17838
 
17839
        * Make-lang.in: Fix reference to srcdir.
17840
        * jv-scan.c: Add missing xmalloc prototype.
17841
        * jvgenmain.c: Ditto.
17842
 
17843
1998-11-15  Per Bothner  
17844
 
17845
        * decl.c (error_mark_node), java-tree.h:  New global.
17846
        * parse.y:  Use empty_stmt_node instead of size_zero_node.
17847
        (build_if_else_statement):  If missing else, use empty_stmt_node.
17848
 
17849
        * parse.y (not_initialized_as_it_should_p):  Removed, with its callers.
17850
        (java_complete_expand_method):  Complain if return is missing.
17851
        (java_check_regular_methods):  Comment out incorrect error check.
17852
        (not_accessible_p):  Fix incorrect handling of protected methods.
17853
        (patch_method_invocation):  Pass correct context to not_accessible_p.
17854
        (find_applicable_accessible_methods_list):  Likewise.
17855
        (qualify_ambiguous_name):  If ARRAY_REF, it's an expression name.
17856
        (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR, set
17857
        TREE_TYPE (to void_type_node);  otherwise expand_expr crashes.
17858
        (patch_if_else_statement):  Fix setting of CAN_COMPLETE_NORMALLY.
17859
 
17860
        * jcf-write.c (CHECK_OP, CHECK_PUT):  Add some error checking.
17861
        (push_int_const):  Remove reundant NOTE_PUSH.
17862
        (generate_bytecode_insns - case STRING_CST):  Do NOTE_PUSH.
17863
        (- case SWITCH_EXPR):  Fix code generation bug.
17864
        (- case PREDECREMENT_EXPR etc):  Remove redundant NOTE_PUSH.
17865
        (generate_classfile):  More robust for abstract methods.
17866
 
17867
1998-11-15  Anthony Green  
17868
 
17869
        * Makefile.in: jv-scan and jvgenmain all require libiberty.
17870
        * Make-lang.in: Ditto.
17871
 
17872
        * jv-scan.c: Remove xmalloc and xstrdup definitions.
17873
        * jvgenmain: Ditto.
17874
 
17875
1998-11-15  Per Bothner  
17876
 
17877
        * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE):  New macro.
17878
 
17879
        * jcf-io.c (find_class):  Simpler/cleaner structure fixes a bug.
17880
 
17881
1998-11-14  Per Bothner  
17882
 
17883
        Allow uses of interface types to verify.  This is not really
17884
        type-safe, but it matches what Sun does, and is OK as long as
17885
        there are appropriate run-time checks.
17886
        * verify.c (merge_types):  If merging two interface types,
17887
        just set the result to java.lang.Object.
17888
        * expr.c (pop_type):  Any interface is matches by java.lang.Object.
17889
 
17890
1998-11-13  Tom Tromey  
17891
 
17892
        * gjavah.c (main): Handle --output-class-directory argument.
17893
        * jvspec.c (lang_specific_driver): Translate `-d' into
17894
        -foutput-class-dir.
17895
        * jcf.h (jcf_write_base_directory): Declare.
17896
        * lang.c (lang_decode_option): Recognize -foutput-class-dir.
17897
        * lang-options.h: Mention -foutput-class-dir.
17898
        * jcf-write.c (jcf_write_base_directory): New global.
17899
        (make_class_file_name): Put generated .class file into `-d'
17900
        directory, or into source directory if -d not given.  Function now
17901
        static.
17902
        (write_classfile): Free class file name.  Handle case where class
17903
        file name is NULL.
17904
        (DIR_SEPARATOR): New macro.
17905
        Include 
17906
 
17907
        * Makefile.in (prefix): New macro.
17908
 
17909
1998-11-12  Per Bothner  
17910
 
17911
        * parse.y (patch_invoke):  Do less if flag_emit_class_files.
17912
        * expr.c (build_known_method_ref):  Don't check flag_emit_class_files
17913
        here (done in patch_invoke instead).
17914
        (case_identity):  Moved here from parse.y.
17915
 
17916
        * java-tree.h (CAN_COMPLETE_NORMALLY):  New macro.
17917
        * parse.y (java_complete_tree etc):  Maybe set CAN_COMPLETE_NORMALLY.
17918
        * parse.y (java_complete_tree):  Re-order COMPOUND_EXPR in BLOCK
17919
        so they can be efficiently scanned without recursion.
17920
        Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
17921
        * expr.c (java_lang_expand_expr):  Expand statements of COMPOUND_EXPR
17922
        in BLOCK iteratively, rather than recursively.
17923
 
17924
        * parse.y (do_unary_numeric_promotion):  New function.
17925
        (patch_unaryop, patch_binop, patch_array_ref):  Use it.
17926
 
17927
        * parse.y (patch_newarray):  Various fixes.
17928
 
17929
        Re-do handling of switch statements (for proper block scoping).
17930
        * parse.y:  Add just a single block for the enture switch block,
17931
        but don't create any "case blocks".
17932
        (group_of_labels):  Rmeoved unneeded non-terminal.
17933
        CASE_EXPR and DEFAULT_EXPR are added to current block.
17934
        * expr.c (java_lang_expand_expr):  Inline SWITCH_EXPR here.
17935
        Now also need to handle CASE_EXPR and DEFAULT_EXPR.
17936
        * java-tree.h (SWITCH_HAS_DEFAULT):  New macro.
17937
        * parse.y (wfl_operator, print_int_node): Make non-static.
17938
        (java_complete_tree):  CASE_EXPR and DEFAULT_EXPR are now processed
17939
        as part of recursive scan of block.
17940
        (java_expand_switch ):  Removed - inlined into java_lang_expand_expr.
17941
        (patch_switch_statement):  Most tests move dinto java_complete_tree.
17942
 
17943
        * parse.y:  Make various production be non-typed (void).
17944
        * parse.y (parse_error):  Merged into issue_warning_error_from_context.
17945
        * parse.y (add_stmt_to_compound):  Don't create/change extra node.
17946
        (patch_method_invocation_stmt):  Renamed to patch_method_invocation.
17947
 
17948
        * jcf-write.c (struct jcf_handler):  New type.
17949
        (struct jcf_switch_state):  New type.
17950
        (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC):  New relocation kinds.
17951
        (alloc_handler, emit_unop, emit_reloc):  New functions.
17952
        (adjust_typed_op):  Add extra parameter ("max type" offset).
17953
        (emit_switch_reloc, emit_case-reloc):  New function.
17954
        (generate_bytecode_conditional):  Handle REAL_TYPE comparisons.
17955
        (generate_bytecode_insns):  Support REAL_CST, switch statements,
17956
        exception handling, method calls, object/array creation, and more.
17957
 
17958
        * class.c:  Remove some unused variables.
17959
        * constants.c (find_string_constant):  New function.
17960
        (count_constant_pool_bytes):  Fix to correctly handle wide constants.
17961
        * decl.c (complete_start_java_method):  Don't _Jv_InitClass
17962
        if flag_emit_class_files.
17963
 
17964
1998-11-12  Tom Tromey  
17965
 
17966
        * jcf-io.c (find_class): Added explanatory comment.
17967
 
17968
        * jcf-path.c (add_entry): Look for `.zip' at end of filename.  Add
17969
        trailing slash to `.zip' entries.
17970
 
17971
        * jvspec.c (lang_specific_driver): Correctly handle case where
17972
        GC_NAME not defined.
17973
 
17974
1998-11-11  Tom Tromey  
17975
 
17976
        * jvspec.c (GC_NAME): New define.
17977
        (lang_specific_driver): Use GC_NAME.  Add GC_NAME to command line
17978
        if required.
17979
        * Make-lang.in (jvspec.o): Define WITH_GC_.
17980
 
17981
1998-11-11  Per Bothner  
17982
 
17983
        * jcf-dump.c (TABLE_SWITCH):  Fix typos.
17984
 
17985
1998-11-11  Tom Tromey  
17986
 
17987
        * jcf-dump.c (main): Correctly recognize `--'-style long options.
17988
 
17989
1998-11-10  Alexandre Petit-Bianco  
17990
 
17991
        * class.c (is_compiled_class): Call safe_layout_class for class
17992
        compiled from source.
17993
        * conver.h (convert_to_integer, convert_to_real,
17994
        convert_to_pointer): Added prototypes.
17995
        * decl.c (init_decl_processing): Non longer push the decls of
17996
        `methodtable', `constants', `Class', `Field', `dispatchTable'
17997
        `jexception' and `Method'.
17998
        * expr.c (build_invokeinterface): New function.
17999
        (expand_invoke): static variable CLASS_IDENT now in
18000
        build_invokeinterface. Use build_invokeinterface.
18001
        (expand_java_field_op): Moved code to inline
18002
        java.lang.PRIMTYPE.TYPE into a function.
18003
        (build_primtype_type_ref): New function.
18004
        * java-tree.def (INSTANCEOF_EXPR): New tree code.
18005
        * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
18006
        FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
18007
        (DECL_CONSTRUCTOR_P): Fixed typo in comment.
18008
        (DECL_LOCAL_STATIC_VALUE): New macro.
18009
        (build_invokeinterface, build_primtype_type_ref): New function
18010
        prototypes.
18011
        (java_parse_abort_on_error): Macro rewritten.
18012
        * jcf-parse.c (current_method): Add comment to declaration.
18013
        (parse_zip_file_entries, process_zip_dir, void parse_source_file):
18014
        Function prototypes fixed.
18015
        (jcf_parse_source): push/pop parser context. save/restore global.
18016
        (parse_source_file): Fixed leading comment. Now take a
18017
        IDENTIFIER_NODE as an argument. Doesn't check methods, layout
18018
        classes and pop the parser context anymore.
18019
        (yyparse): Push parser context, save globals, parse the source
18020
        file, restore globals and pop the parser context when processing a
18021
        source file.
18022
        * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
18023
        * lex.c (java_parse_doc_section): New function.
18024
        (java_lex): Call java_parse_doc_section when appropriate. Build an
18025
        operator around INSTANCEOF_TK.
18026
        * lex.h (java_lineterminator, java_sprint_unicode,
18027
        java_unicode_2_utf8, java_lex_error, java_store_unicode):
18028
        Prototypes rewritten.
18029
        (java_parse_escape_sequence, java_letter_or_digit_p,
18030
        java_parse_doc_section, java_parse_end_comment, java_get_unicode,
18031
        java_read_unicode, java_store_unicode, java_read_char,
18032
        java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
18033
        Added function prototypes.
18034
        * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
18035
        define.
18036
        (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
18037
        New macros
18038
        (struct parser_ctxt): New fields: deprecated,
18039
        current_parsed_class_un, gclass_list.
18040
        (fix_method_argument_names, issue_warning_error_from_context,
18041
        resolve_package, lookup_package_type): New function prototypes.
18042
        (resolve_expression_name): Fixed function prototype.
18043
        (find_applicable_accessible_methods_list): Fixed indentation, added
18044
        extra argument in prototype.
18045
        (check_final_assignment, build_null_of_type, check_deprecation,
18046
        check_method_redefinition, reset_method_name,
18047
        java_check_regular_methods, java_check_abstract_methods,
18048
        maybe_build_primttype_type_ref): New function prototype.
18049
        * parse.y (conver.h): Include.
18050
        (INSTANCEOF_TK): Tagged .
18051
        (single_type_import_declaration): Use REGISTER_IMPORT macro.
18052
        (relational_expression:): Build binop for instanceof.
18053
        (java_push_parser_context): Remember ctxp->gclass_list across
18054
        contexts.
18055
        (java_pop_parser_context): Simply return if no context
18056
        exists. Remember gclass_list across contexts.
18057
        (issue_warning_error_from_context): New function.
18058
        (parse_error_context): Don't setup ctxp->elc here. Call
18059
        issue_warning_error_from_context instead.
18060
        (parse_warning_context): Likewise.
18061
        (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
18062
        setup. Link new class/interface to ctxp->gclass_list.
18063
        (add_superinterfaces): Register interface as incomplete if not
18064
        loaded.
18065
        (create_class): Remember class unqualified name in
18066
        ctxp->current_parsed_class_un. Check class deprecation.
18067
        (register_fields): Check field deprecation. Remember static final
18068
        field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
18069
        processing INIT.
18070
        (method_header): New local variable ORIG_ARG. Use unqualified
18071
        current class name for check on constructor errors. Promote return
18072
        type if of record type. Argument list fix moved in
18073
        fix_method_argument_names, called here. Check method deprecation.
18074
        (fix_method_argument_names): New function.
18075
        (method_declarator): Promote record typed arguments.
18076
        (safe_layout_class): Check class methods before layout.
18077
        (java_complete_class): Compute field layout when patched.
18078
        (do_resolve_class): Try to load class after having it renamed
18079
        after the package name.
18080
        (get_printable_method_name): Use DECL_CONTEXT.
18081
        (reset_method_name): New function.
18082
        (check_method_redefinition): Use reset_method_name.
18083
        (java_check_regular_methods): New local variable
18084
        SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
18085
        names for error report. Check for compile-time error when method
18086
        found has default (package) access.
18087
        (java_check_abstract_methods): Now takes an interface DECL node as
18088
        an argument. Also reinstall real name on unchecked
18089
        overriding/hiding methods for error report.
18090
        (java_check_methods): Fixed leading comment. Get classes to verify
18091
        from ctxp->gclass_list. Use CHECK_METHODS macro and set
18092
        CLASS_METHOD_CHECKED_P on class verification.
18093
        (lookup_java_method2): Get real method name if necessary.
18094
        (find_in_imports): Don't check package class access here.
18095
        (resolve_package, lookup_package_type): New functions.
18096
        (java_layout_classes): Fixed leading comment. Take classes to be
18097
        laid out from ctxp->gclass_list.
18098
        (java_complete_expand_methods): Don't expand native and abstract
18099
        methods.
18100
        (java_expand_classes): New function.
18101
        (resolve_expression_name): Use additional argument ORIG.  Retrieve
18102
        values of static final field of primitive types.
18103
        (resolve_field_access): Handles static final field of promotive
18104
        type.
18105
        (resolve_qualified_expression_name): Handle STRING_CST as
18106
        primaries and package name resolution. Check deprecation on found
18107
        decls. Set where_found and type_found on non static field resolved
18108
        during qualification. Layout non primitive field decl types.
18109
        (check_deprecation): New function.
18110
        (maybe_access_field): Simplified.
18111
        (patch_method_invocation_stmt): Local variable CLASS_TYPE
18112
        removed. Reverse method's argument when primary is a type. Don't
18113
        use CLASS_TYPE to report problems, use IDENTIFIER_WFL
18114
        instead. Include abstract class in the list of class searchable
18115
        for constructors. Use DECL_CONTEXT of found method for access
18116
        checks. Check method deprecation.
18117
        (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
18118
        converting arguments. Handle INVOKE_INTERFACE.
18119
        (lookup_method_invoke): Search constructor using existing
18120
        infrastructure (don't rely on lookup_java_constructor anymore).
18121
        (find_applicable_accessible_methods_list): Extra argument flag
18122
        LC. Now include constructor in the search.
18123
        (qualify_ambiguous_name): Conditional expression are primaries.
18124
        (not_initialized_as_it_should_p): static final are always
18125
        initialized.
18126
        (java_complete_tree): Pass extra NULL argument to
18127
        resolve_expression_name. Stricter test to carry on patching
18128
        assignments. New case for INSTANCEOF_EXPR.
18129
        (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
18130
        (check_final_assignment, maybe_build_primttype_type_ref): New
18131
        functions.
18132
        (patch_assignment): Detect resolved static finals and carry normal
18133
        assignment error check on them. Inline PRIMTYPE.TYPE read access.
18134
        (try_builtin_assignconv): Access constant 0 on all primitive
18135
        types.
18136
        (valid_builtin_assignconv_identity_widening_p): Accept identical
18137
        types. Accept all promoted type on int type.
18138
        (valid_ref_assignconv_cast_p): Accept a null pointer to be
18139
        assigned to a reference.
18140
        (valid_method_invocation_conversion_p): Accept to check null
18141
        pointers.
18142
        (build_binop): Merge declaration and initialization of local
18143
        variable BINOP.
18144
        (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
18145
        numeric types. Improved validity test for qualify operators on
18146
        references.
18147
        (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
18148
        and PREINCREMENT_EXPR. Also detect resolved static finals of a
18149
        primitive type and issue the appropriate error message.
18150
        (resolve_type_during_patch): Mark class loaded when resolved.
18151
        (patch_cast): Allow null to be cased to reference types.
18152
        (build_null_of_type): New function.
18153
        (patch_array_ref): Handle array on references correctly.
18154
        (patch_return): Removed unused local variable MODIFY. Force
18155
        boolean to be returned as integers. Allows null to be returned by
18156
        a function returning a reference.
18157
        * typeck.c (convert_to_integer, convert_to_real,
18158
        convert_to_pointer): Prototypes moved to convert.h
18159
        (lookup_argument_method): Use method real name, if necessary.
18160
 
18161
1998-10-30  Tom Tromey  
18162
 
18163
        * class.c (build_class_ref): Changed name of primitive classes to
18164
        start with `_Jv_'.
18165
 
18166
        * class.c (make_class_data): Renamed fields: nmethods to
18167
        method_count, method_count to dtable_method_count.  Always set
18168
        `state' field to 0.
18169
        * decl.c (init_decl_processing): Likewise.
18170
 
18171
1998-10-28  Alexandre Petit-Bianco  
18172
 
18173
        * class.c (layout_class): Don't mangle , produce
18174
        __finit instead. Don't verify artificial methods.
18175
        * decl.c (finit_identifier_node): New declared global.
18176
        (init_decl_processing): finit_identifier_node initialized.
18177
        * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
18178
        * java-tree.h (finit_identifier_node): Declared as extern.
18179
        (struct lang_decl): New field called_constructor.
18180
        (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
18181
        (CLASS_HAS_FINIT_P): New macro.
18182
        (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
18183
        explicit constructor invocation.
18184
        (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
18185
        CALL_SUPER_CONSTRUCTOR_P): New macros.
18186
        (write_classfile): Added prototype.
18187
        * jcf-parse.c (jcf_parse_source): Parse and remember for
18188
        generation if the file was seen on the command line.
18189
        (parse_source_file): Don't write the class file here.
18190
        (yyparse): Loop on files rewritten. Set current_jcf.
18191
        (parse_zip_file_entries): Parse class file only if it was found.
18192
        * lang.c (init_parse): Don't open command line provided filename
18193
        here.
18194
        (lang_parse): Don't set main_jcf anymore.
18195
        * parse.h (ABSTRAC_CHECK): Capitalized arguments.
18196
        (JCONSTRUCTOR_CHECK): New macro.
18197
        (JBSC_TYPE_P): New macro.
18198
        (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
18199
        (COMPLETE_CHECK_OP_2): New macro.
18200
        (struct parse_ctxt): New field explicit_constructor_p.
18201
        (check_class_interface_creation): Fixed prototype indentation.
18202
        (patch_method_invocation_stmt): Prototype reflects added argument.
18203
        (patch_invoke): Likewise.
18204
        (complete_method_declaration, build_super_invocation,
18205
        verify_constructor_circularity,
18206
        build_this_super_qualified_invocation, get_printable_method_name,
18207
        patch_conditional_expr, maybe_generate_finit, fix_constructors,
18208
        verify_constructor_super, create_artificial_method,
18209
        start_artificial_method_body, end_artificial_method_body,
18210
        generate_field_initialization_code): New function prototypes.
18211
        * parse.y: Fixed leading comment
18212
        (constructor_header:, constructor_body:, block_end:): Rules tagged
18213
        .
18214
        (type_declaration:): Call maybe_generate_finit.
18215
        (method_declaration:): Action for method_body: placed in new
18216
        function complete_method_declaration, called here.
18217
        (constructor_declaration:): Defined actions. Removed leading
18218
        FIXME.
18219
        (constructor_header:): New rule with action.
18220
        (constructor_body:): Rule rewritten using block_begin: and
18221
        block_end:. Defined actions.
18222
        (constructor_declarator:, explicit_constructor_invocation:):
18223
        Defined actions.
18224
        (block:): Use new rules block_begin: block_end:.
18225
        (block_begin:, block_end:): New rules and actions.
18226
        (block_statements:): Fixed error message for explicit
18227
        constructors.
18228
        (method_invocation:): Call build_this_super_qualified_invocation
18229
        if primary is `this' or `super' was seen.
18230
        (conditional_expression:): Action defined.
18231
        (extra_ctxp_pushed_p): New static global flag.
18232
        (java_parser_context_save_global): Create parser context if
18233
        necessary. Use extra_ctxp_pushed_p to remember it.
18234
        (java_parser_context_restore_global): Pop extra parser context if
18235
        one exists.
18236
        (build_array_from_name): Array on primitive types are marked
18237
        loaded.
18238
        (register_fields): Restore new name in field initializer
18239
        expression if type was altered. Non static fields initialized upon
18240
        declaration marked initialized.
18241
        (maybe_generate_finit): New function.
18242
        (maybe_generate_clinit): Use create_artificial_method,
18243
        start_artificial_method_body, end_artificial_method_body. Generate
18244
        debug info for enclosed initialization statements.
18245
        (method_header): Fixed leading comment. Check constructor
18246
        flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
18247
        accordingly.
18248
        (complete_method_declaration, constructor_circularity_msg,
18249
        verify_constructor_circularity): New functions.
18250
        (get_printable_method_name): New function.
18251
        (check_method_redefinition): Don't rename  methods. Fix
18252
        declared constructor names. Error message for
18253
        constructors modified.
18254
        (java_check_regular_methods): Local variable seen_constructor
18255
        renamed saw_constructor. Skip verification on constructors. Create
18256
        default constructor with create_artificial_method.
18257
        (java_check_methods): Removed unnecessary empty line.
18258
        (create_artificial_method, start_artificial_method_body,
18259
        end_artificial_method_body): New functions.
18260
        (java_layout_classes): Changed leading comment. Reverse fields
18261
        list if necessary. Always layout java.lang.Object if being
18262
        defined.
18263
        (java_complete_expand_methods): Verify constructor circularity.
18264
        (java_complete_expand_method): Call fix_constructor on
18265
        constructors.  Local variable no_ac_found removed. Restore
18266
        bindings if method body expansion failed.
18267
        (fix_constructors, verify_constructor_super,
18268
        generate_field_initialization_code): New function.
18269
        (java_expand_classes): Fixed leading comment. Write class file
18270
        here.
18271
        (resolve_expression_name): Check for illegal instance variable
18272
        usage within the argument scope of an explicit constructor
18273
        invocation.
18274
        (resolve_qualified_expression_name): Pass extra from_super flag
18275
        when invoking patch_method_invocation_stmt. New case for
18276
        conditional expression when used as a primary. Check for error
18277
        when acquiring super.
18278
        (patch_method_invocation_stmt): Added extra argument super. New
18279
        local variable is_static_flag. Set class_to_search according to
18280
        the nature of the constructor invocation. Don't add `this'
18281
        argument when expanding NEW_CLASS_EXPR. Check for illegal method
18282
        invocation within the argument scope of explicit constructor
18283
        invocation. Set is_static according to is_static_flag. Provide
18284
        extra `super' argument to patch_invoke invocation.
18285
        (patch_invoke): New argument from_super. Loop on arguments
18286
        indentation fixed. Pass from_super to invocation_mode. New switch
18287
        case INVOKE_SUPER. Fixed error message in switch default case.
18288
        Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
18289
        value.
18290
        (invocation_mode): Return INVOKE_SUPER mode when appropriate.
18291
        (lookup_method_invoke): Fixed prototypes in candidates list. Error
18292
        message takes constructors into account.
18293
        (find_applicable_accessible_methods_list): Fixed indentation.
18294
        (qualify_ambiguous_name): Take explicit constructor invocation
18295
        into account. Deal with a conditional expression as a primary to
18296
        a method call.
18297
        (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
18298
        case. Added extra argument to patch_method_invocation_stmt.
18299
        Register calls made to explicit constructor `this'. Don't call
18300
        save_expr in ARRAY_REF case when emitting class files. Check for
18301
        illegal use of this when expanding explicit constructor invocation
18302
        arguments.
18303
        (complete_function_arguments): Set and reset parser context
18304
        explicit_constructor_p field value when appropriate.
18305
        (build_super_invocation, build_this_super_qualified_invocation):
18306
        New functions.
18307
        (patch_assignment): Fixed typo.
18308
        (patch_unaryop): Check on final fields occurs only when a decl
18309
        exits.
18310
        (patch_return): Take constructors into account.
18311
        (patch_conditional_expr): New function.
18312
        * typeck.c (build_java_signature): Removed unnecessary empty line.
18313
 
18314
1998-10-28  Jeffrey A Law  (law@cygnus.com)
18315
 
18316
        * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
18317
 
18318
1998-10-28  Tom Tromey  
18319
 
18320
        * decl.c (init_decl_processing): Renamed fields.
18321
        * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
18322
        interface_len, msize fields.
18323
 
18324
        * class.c (make_class_data): Removed subclass_head and
18325
        subclass_next fields.
18326
        * decl.c (init_decl_processing): Removed subclass_head and
18327
        subclass_next fields.
18328
 
18329
1998-10-28  Jeffrey A Law  (law@cygnus.com)
18330
 
18331
        * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
18332
        * mangle.c (emit_unicode_mangled_name): Similarly.
18333
 
18334
1998-10-26  Nick Clifton  
18335
 
18336
        * jcf-parse.c (get_constant): Place braces around code to compute
18337
        'd' when REAL_ARITHMETIC is not defined.
18338
 
18339
1998-10-25  H.J. Lu  (hjl@gnu.org)
18340
 
18341
        * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
18342
        dependency.
18343
 
18344
1998-10-23  Tom Tromey  
18345
 
18346
        * lang-specs.h: `.zip' files are input to jc1.
18347
 
18348
1998-10-22  Per Bothner  
18349
 
18350
        * jvspecs.c:  Add (but don't enable) support for combining multiple
18351
        .class and .java input filenames to a single jc1 invocation.
18352
        Add support for -C flag (copile to .class files).
18353
        Translate -classpath and -CLASSPATH arguments.
18354
        * lang-specs.h:  Don't set %2 spec.
18355
 
18356
1998-10-22  Tom Tromey  
18357
 
18358
        * jcf-path.c (add_entry): Don't add trailing separator if entry is
18359
        a .zip file.
18360
        (add_path): Don't add trailing separator to non-empty path
18361
        elements.
18362
 
18363
        * lang.c (lang_decode_option): Check for -fclasspath and
18364
        -fCLASSPATH before examining other `-f' options.
18365
 
18366
        * java-tree.h (finalize_identifier_node): Don't declare.
18367
        * class.c (make_class_data): Don't push "final" field.
18368
        * decl.c (init_decl_processing): Don't push "final" field.
18369
        (finalize_identifier_node): Removed.
18370
        (init_decl_processing): Don't set finalize_identifier_node.
18371
 
18372
        * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
18373
 
18374
1998-10-11  Anthony Green  
18375
 
18376
        * Make-lang.in (java): Depend on jcf-dump and jv-scan.
18377
        (JV_SCAN_SOURCES): New macro.
18378
        (JCF_DUMP_SOURCES): Likewise.
18379
        (jcf-dump$(exeext)): New target.
18380
        (jv-scan$(exeext)): New target.
18381
 
18382
1998-10-22  Tom Tromey  
18383
 
18384
        * Makefile.in (LEX): Removed.
18385
        (LEXFLAGS): Likewise.
18386
        (SET_BISON): New macro.
18387
        (BISON): Removed.
18388
        ($(PARSE_C)): Use SET_BISON.  Run bison from srcdir to avoid
18389
        spurious diffs in parse.c.
18390
        ($(PARSE_SCAN_C)): Likewise.
18391
        (PARSE_DIR): New macro.
18392
        (PARSE_C): Use it.
18393
        (PARSE_SCAN_C): Likewise.
18394
        (PARSE_RELDIR): New macro.
18395
 
18396
        * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
18397
 
18398
        * jcf-io.c (find_class): Use saw_java_source to determine when to
18399
        look for `.java' file.
18400
        * jcf-parse.c (saw_java_source): New global.
18401
        (yyparse): Set it if `.java' file seen.
18402
 
18403
        * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
18404
        (GCJH_SOURCES): Likewise.
18405
        * Makefile.in (datadir): New macro.
18406
        (libjava_zip): Likewise.
18407
        (JAVA_OBJS): Added jcf-path.o.
18408
        (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18409
        (../gcjh$(exeext)): Likewise.
18410
        (jcf-path.o): New target.
18411
        * java-tree.h (fix_classpath): Removed decl.
18412
        * jcf-parse.c (fix_classpath): Removed.
18413
        (load_class): Don't call fix_classpath.
18414
        * parse.y (read_import_dir): Don't call fix_classpath.
18415
        * lex.h: Don't mention classpath.
18416
        * lex.c (java_init_lex): Don't initialize classpath.
18417
        * jcf-io.c (classpath): Removed global.
18418
        (find_class): Use jcf_path iteration functions.  Correctly search
18419
        class path for .java file.
18420
        (open_in_zip): New argument `is_system'.
18421
        * jcf-dump.c (main): Call jcf_path_init.  Recognize all new
18422
        classpath-related options.
18423
        * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
18424
        and -I.
18425
        (lang_init): Call jcf_path_init.
18426
        * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
18427
        * lang-specs.h: Handle -I.  Minor cleanup to -M options.
18428
        Correctly put braces around second string in each entry.
18429
        * gjavah.c (main): Call jcf_path_init.  Recognize all the new
18430
        classpath-related options.
18431
        (help): Updated for new options.
18432
        * jcf.h: Declare functions from jcf-path.c.  Don't mention
18433
        `classpath' global.
18434
        * jcf-path.c: New file.
18435
 
18436
        * jcf-depend.c: Include jcf.h.
18437
 
18438
        * jcf-write.c (localvar_alloc): Returns `void'.
18439
        (localvar_free): Removed unused variable.
18440
 
18441
        * lang.c (OBJECT_SUFFIX): Define if not already defined.
18442
        (init_parse): Use OBJECT_SUFFIX, not ".o".
18443
 
18444
1998-10-21  Alexandre Petit-Bianco  
18445
 
18446
        * class.c (emit_register_classes): Renamed from
18447
        emit_register_class.
18448
        * java-tree.h (emit_register_classes): Prototype renamed from
18449
        emit_register_class.
18450
        * jcf-parse.c (yyparse): Call emit_register_classes once before
18451
        returning.
18452
        * parse.y (java_expand_classes): No longer register classes.
18453
 
18454
1998-10-20  Alexandre Petit-Bianco  
18455
 
18456
        * class.c (is_compiled_class): New local variable
18457
        seen_in_zip. Identify classes found in currently compiled source
18458
        file(s).
18459
        * decl.c (complete_start_java_method): Fixed typo.
18460
        * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
18461
        HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
18462
        (CLASS_P): Moved around.
18463
        (java_parse_abort_on_error): Macro moved from jcf-parse.c
18464
        * jcf-parse.c (java_parse_abort_on_error): Macro moved to
18465
        java-tree.h
18466
        (jcf_parse_source): Changed leading comment. Removed unnecessary
18467
        fclose and CLASS_FROM_SOURCE_P marking.
18468
        (parse_source_file): New local variables remember_for_generation
18469
        and filename. Mark parsed file name identifier node. Removed block
18470
        executed when parse_only was null. Set remember_for_generation.
18471
        Use it as an argument to java_pop_parser_context.
18472
        (yyparse): New local variables several_files, list, next node and
18473
        current_file_list. Split ampersand separated file names into
18474
        current_file_list. Iterate through the list and parse accordingly.
18475
        * parse.h (java_pop_parser_context): New function prototype.
18476
        * parse.y (ctxp_for_generation): New static global variable.
18477
        (java_pop_parser_context): New argument generate. Link popped ctxp
18478
        to ctxp_for_generation list accordingly.
18479
        (java_complete_expand_methods): Fixed indentation.
18480
        (java_expand_classes): New function.
18481
 
18482
1998-10-17  Per Bothner  
18483
 
18484
        * Makefile.in:  Link with libiberty.a instead of memmove.o.
18485
 
18486
1998-10-16  Alexandre Petit-Bianco  
18487
 
18488
        * lex.c (setjmp.h): No longer included.
18489
        * lex.h (setjmp.h): Included.
18490
        * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
18491
        (duplicate_declaration_error_p): Renamed from
18492
        duplicate_declaration_error.
18493
        (build_array_from_name): New function prototype.
18494
        * parse.y (setjmp.h): No longer included.
18495
        (variable_declarator_id): Define action.
18496
        (build_array_from_name): New function.
18497
        (duplicate_declaration_error_p): Renamed from
18498
        duplicate_declaration_error.  Fixed leading comment.
18499
        (register_fields): Main `for' loop reorganized. Uses
18500
        SET_TYPE_FOR_RESOLUTION and build_array_from_name.
18501
        (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
18502
        build_array_from_name.
18503
        (resolve_class): Set CLASS_LOADED_P on newly build array dimension
18504
        types.
18505
        (read_import_dir): Don't try to skip `.' and `..'.
18506
        (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
18507
        build_array_from_name. Main `for' loop reorganized.
18508
        (resolve_qualified_expression_name): When building access to a
18509
        field, use the type where the field was found, not its own type.
18510
        (maybe_access_field): Use field DECL_CONTEXT if the type where the
18511
        field was found is null.
18512
        (qualify_ambiguous_name): Sweep through all successive array
18513
        dimensions.
18514
 
18515
1998-10-14  Alexandre Petit-Bianco  
18516
 
18517
        * java-tree.h (pop_labeled_block, lang_printable_name,
18518
        maybe_add_interface, set_super_info, get_access_flags_from_decl,
18519
        interface_of_p, inherits_from_p, fix_classpath,
18520
        complete_start_java_method, emit_handlers, init_outgoing_cpool,
18521
        make_class_data, register_class, alloc_name_constant): New
18522
        function prototypes.
18523
        * lang.c (lang_decode_option): Set argc argument unused. Fixed
18524
        indentation. Added cast to remove warning.
18525
        (lang_printable_name): Set v argument unused.
18526
        (lang_print_error): Added argument to lang_printable_name call.
18527
        (java_dummy_print, print_lang_decl, print_lang_type,
18528
        print_lang_identifier, lang_print_xnode): All argument marked
18529
        unused.
18530
        * lex.c (java_unget_unicode): Removed unnecessary argument.
18531
        (java_allocate_new_line): Unused local variable is gone.
18532
        (java_read_char): Added parenthesis in expressions to remove
18533
        warnings.  Added final return statement.
18534
        (java_read_unicode): Added parenthesis in expression to remove
18535
        warning.
18536
        (java_parse_end_comment): Fixed java_unget_unicode invocation.
18537
        (java_parse_escape_sequence): Likewise.
18538
        (java_lex): Unused local variables are gone. Fixed
18539
        java_unget_unicode invocation.
18540
        * lex.h (set_float_handler): Prototype added when JC1_LITE not
18541
        defined.
18542
        * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
18543
        lang_printable_name invocation in macro.
18544
        (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
18545
        Likewise.
18546
        (duplicate_declaration_error): Suppressed unused argument in
18547
        prototype.
18548
        (identical_subpath_p): Function declaration is gone.
18549
        (patch_invoke): Suppressed unused argument in prototype.
18550
        (patch_cast, build_labeled_block, check_thrown_exceptions):
18551
        Likewise.
18552
        * parse.y (setjmp.h): Included
18553
        (toplev.h): Likewise.
18554
        (field_declaration:): Suppressed unused local
18555
        (label_decl:): Fixed build_labeled_block invocation.
18556
        (java_pop_parser_context): Put extra parenthesis around assignment
18557
        in if.
18558
        (yyerror): Suppressed unused local variables.
18559
        (variable_redefinition_error): Fixed lang_printable_name
18560
        invocation.
18561
        (create_interface): Suppressed unused local variables.
18562
        (create_class): Likewise.
18563
        (duplicate_declaration_error): Suppressed unused argument. Fixed
18564
        lang_printable_name invocation.
18565
        (register_fields): Suppressed unused local variable. Fixed
18566
        duplicate_declaration_error invocation.
18567
        (method_header): Suppressed unused local variable.
18568
        (method_declarator, parser_check_super): Likewise.
18569
        (java_complete_class): Suppressed unused local variable. Fixed
18570
        fatal error message.
18571
        (complete_class_report_errors): Added default: in switch.
18572
        (java_check_regular_methods): Fixed lang_printable_name
18573
        invocations.
18574
        (check_throws_clauses): Likewise.
18575
        (java_check_abstract_methods): Suppressed unused local
18576
        variable. Fixed lang_printable_name invocation.
18577
        (read_import_entry): Added supplemental return statement.
18578
        (read_import_dir): Suppressed unused local variables.
18579
        (check_pkg_class_access, declare_local_variables): Likewise.
18580
        (source_start_java_method): Suppressed unused extern variable
18581
        declarations
18582
        (expand_start_java_method): Suppressed unused extern and local
18583
        variable declarations.
18584
        (java_complete_expand_methods): Likewise.
18585
        (java_complete_expand_method): Suppressed unused local variables.
18586
        (make_qualified_name): Likewise.
18587
        (resolve_qualified_expression_name): Added default: in
18588
        switch. Fixed lang_printable_name invocation.
18589
        (class_instance_creation_expression): Added parenthesis around
18590
        expressions.
18591
        (patch_method_invocation_stmt): Fixed lang_printable_name and
18592
        patch_invoke invocations.
18593
        (check_for_static_method_reference): Fixed lang_printable_name
18594
        invocation.
18595
        (patch_invoke): Suppressed unused arguments and local variables.
18596
        (lookup_method_invoke): Suppressed unused local variables.
18597
        (qualify_ambiguous_name): Added default: in switch.
18598
        (identical_subpath_p): Function removed.
18599
        (patch_assignment): Suppressed unused local variables. Suppressed
18600
        unnecessary if statement. Fixed lang_printable_name invocations.
18601
        (try_builtin_assignconv): Fixed lang_printable_name invocations.
18602
        (valid_ref_assignconv_cast_p): Parenthesis around
18603
        expression. Suppressed unused local variables.
18604
        (build_binop): Suppressed unused local variables. fixed
18605
        lang_printable_name invocations.
18606
        (string_constant_concatenation): Suppressed unused local
18607
        variables.
18608
        (patch_unaryop): Fixed lang_printable_name invocation.
18609
        (patch_cast): Suppressed unnecessary argument. Fixed
18610
        lang_printable_name invocation.
18611
        (patch_array_ref): Fixed lang_printable_name invocation.
18612
        (patch_newarray, patch_return, patch_if_else_statement): Likewise.
18613
        (build_labeled_block): Suppressed unused argument.
18614
        (generate_labeled_block): Fixed build_labeled_block invocation.
18615
        (build_loop_body): Suppressed unused local variables.
18616
        (patch_loop_statement): Likewise.
18617
        (patch_exit): Fixed lang_printable_name invocation.
18618
        (patch_switch_statement): Likewise.
18619
        (case_identity): First argument marked unused.
18620
        (patch_try_statement): Fixed lang_printable_name invocations.
18621
        (patch_synchronized_statement, patch_throw_statement): Likewise.
18622
        (check_thrown_exceptions): Fixed check_thrown_exceptions and
18623
        lang_printable_name invocations.
18624
        (check_thrown_exceptions_do): Suppressed unused argument.
18625
 
18626
1998-10-14  Tom Tromey  
18627
 
18628
        * jcf-write.c (write_classfile): Add output class file as target.
18629
        * lang-options.h: Added -MD, -MMD, -M, and -MM.
18630
        * jcf.h: Added declarations for dependency-tracking functions.
18631
        * lang-specs.h: Handle -M, -MM, MD, and -MMD.
18632
        * lang.c (lang_decode_option): Recognize -MD and -MMD.
18633
        (finish_parse): Call jcf_dependency_write.
18634
        (dependency_tracking): New global.
18635
        (DEPEND_SET_FILE): New define.
18636
        (DEPEND_ENABLE): New define.
18637
        (init_parse): Enable dependency tracking if required.
18638
        Include "flags.h".
18639
        * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
18640
        (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18641
        (../gcjh$(exeext)): Likewise.
18642
        (jcf-depend.o): New target.
18643
        * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
18644
        (GCJH_SOURCES): Likewise.
18645
        * jcf-io.c (open_class): Call jcf_dependency_add_file.  Added
18646
        dep_name argument.
18647
        (find_classfile): Added dep_name argument.
18648
        (find_class): Compute name of dependency.
18649
        (open_in_zip): Call jcf_dependency_add_file.
18650
        * gjavah.c (output_file): No longer global.
18651
        (usage): Don't mention "gjavah".
18652
        (help): Likewise.
18653
        (java_no_argument): Likewise.
18654
        (version): Likewise.
18655
        (main): Recognize and handle -M family of options.
18656
        (print_mangled_classname): Return is void.
18657
        (process_file): Handle case where output is suppressed.
18658
        (HANDLE_END_FIELD): Likewise.
18659
        (HANDLE_METHOD): Likewise.
18660
        * jcf-depend.c: New file.
18661
 
18662
1998-10-13  Jeffrey A Law  (law@cygnus.com)
18663
 
18664
        * java-tree.def: Add missing newline at EOF.
18665
 
18666
1998-10-13  Tom Tromey  
18667
 
18668
        * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
18669
        (main): Likewise.  Exit with SUCCESS_EXIT_CODE at end of
18670
        function.
18671
        Include  and "system.h".
18672
        (disassemble_method): Undefine RET to avoid clash with
18673
        config/i386/i386.h.
18674
 
18675
1998-10-13  Alexandre Petit-Bianco  
18676
 
18677
        * decl.c (runtime_exception_type_node, error_exception_type_node):
18678
        New global variables.
18679
        (init_decl_processing): Initialized.
18680
        * expr.c (java_lang_expand_expr): Set caught exception type to
18681
        null if catch handler argument doesn't exit.
18682
        * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
18683
        tree codes.
18684
        * java-tree.h (runtime_exception_type_node,
18685
        error_exception_type_node): Global variables declared.
18686
        (DECL_FUNCTION_THROWS): New macro.
18687
        (DECL_FUNCTION_BODY): Modified comment.
18688
        (DECL_SPECIFIC_COUNT): Likewise.
18689
        (struct lang_decl): New field throws_list.
18690
        (IS_UNCHECKED_EXPRESSION_P): New macro.
18691
        * lex.c (java_lex): Generate location information for THROW_TK.
18692
        * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
18693
        EXCEPTIONS_P): New macros.
18694
        (enum jdep_code): New value JDEP_EXCEPTION.
18695
        (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
18696
        BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
18697
        PATCH_METHOD_RETURN_ERROR): New macros.
18698
        (patch_method_invocation_stmt): Added new argument to prototype.
18699
        (patch_synchronized_statement, patch_throw_statement,
18700
        check_thrown_exceptions, check_thrown_exceptions_do,
18701
        purge_unchecked_exceptions, check_throws_clauses): New function
18702
        prototypes.
18703
        * parse.y Fixed typo in keyword section.
18704
        (throw:): Rule tagged .
18705
        (THROW_TK): Keyword tagged .
18706
        (method_header:): Last argument to call to method_header passed
18707
        from throws: rule.
18708
        (throws:, class_type_list:, throw_statement:,
18709
        synchronized_statement:, synchronized:): Defined actions.
18710
        (method_header): New local variable current. Register exceptions
18711
        from throws clause.
18712
        (java_complete_tree): Complete and verify exceptions from throws
18713
        clause.
18714
        (complete_class_report_errors): Error message on exceptions not
18715
        found
18716
        (java_check_regular_methods): Fixed typo. Shortcut on private
18717
        overriding methods. Changed error message on method
18718
        redefinition. Check for throws clause compatibility.
18719
        (check_throws_clauses): New function.
18720
        (java_check_abstract_methods): Use DECL_NAME for wfl or current
18721
        method. Changed error message on method redefinition.
18722
        (currently_caught_type_list): New static variable.
18723
        (java_complete_expand_methods): Purge unchecked exceptions from
18724
        throws clause list. Call PUSH_EXCEPTIONS before walk and
18725
        POP_EXCEPTIONS after.
18726
        (resolve_qualified_expression_name): Pass new argument as NULL to
18727
        patch_method_invocation_stmt.
18728
        (patch_method_invocation_stmt): New argument ref_decl. Invoke
18729
        PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
18730
        argument list when appropriate. Use new argument if non null to
18731
        store selected method decl.
18732
        (patch_invoke): Convert if necessary args of builtin types before
18733
        forming CALL_EXPR. Argument list no longer reversed here.
18734
        (invocation_mode): Treat final methods as static methods.
18735
        (java_complete_tree): New cases for THROW_EXPR: and
18736
        SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
18737
        function call.
18738
        (complete_function_arguments): No more RECORD_TYPE
18739
        conversion. Function parameter nodes no longer saved.
18740
        (valid_ref_assignconv_cast_p): Avoid handling null type.
18741
        (patch_binop): Fixed null constant reference handling.
18742
        (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
18743
        BUILD_THROW macros.
18744
        (patch_try_statement): Fixed comments. Record caught types in
18745
        list, push the list, expand try block and pop the list.
18746
        (patch_synchronized_statement, patch_throw_statement,
18747
        check_thrown_exceptions, check_thrown_exceptions_do,
18748
        purge_unchecked_exceptions): New functions.
18749
        * typeck.c (lookup_argument_method): Allow WFL in place of method
18750
        DECL_NAME during method definition check
18751
 
18752
1998-10-09  Tom Tromey  
18753
 
18754
        * gjavah.c (decode_signature_piece): New function.
18755
        (print_c_decl): Use it.  Added `name_override' argument.
18756
        (print_method_info): Use name_override argument to print_c_decl.
18757
        (seen_fields): Removed.
18758
        (print_field_info): Don't update seen_fields.
18759
        (struct method_name): New structure.
18760
        (method_name_list): New global.
18761
        (print_method_info): Add new method to list of methods.
18762
        (name_is_method_p): New function.
18763
        (print_field_info): If field name has same name as method, then
18764
        change field name.
18765
        (process_file): Parse methods before fields.
18766
        (field_pass): New global.
18767
        (HANDLE_END_FIELD): Take field_pass into account.
18768
 
18769
1998-10-07  Kaveh R. Ghazi  
18770
 
18771
        * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
18772
        (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
18773
 
18774
1998-10-03  Anthony Green  
18775
 
18776
        * jvspec.c: Fix bug in jvgenmain_spec patch.
18777
 
18778
1998-10-02  Alexandre Petit-Bianco  
18779
 
18780
        * Makefile.in (lang.o:): Install dependency on java-tree.def.
18781
        * decl.c (soft_exceptioninfo_call_node): New global variable.
18782
        (init_decl_processing): Fixed indentation. soft_badarrayindex_node
18783
        takes extra integer argument. soft_exceptioninfo_call_node
18784
        initialized.
18785
        * except.c (java_set_exception_lang_code): New function
18786
        (method_init_exceptions): Called here.
18787
        (prepare_eh_table_type): New function.
18788
        (expand_end_java_handler): Called here.
18789
        * expr.c (build_java_throw_out_of_bounds_exception): Now features
18790
        one argument. Modified generation of call to
18791
        soft_badarrayindex_node to use new argument.
18792
        (build_java_arrayaccess): Pass faulty index value to
18793
        build_java_throw_out_of_bounds_exception.
18794
        (generate_name): New function.
18795
        (java_lang_expand_expr): New local variables node, current,
18796
        has_finally_p. Expand TRY_EXPR node.
18797
        (process_jvm_instruction): Replace top of the stack with thrown
18798
        object reference when entering exception handler.
18799
        * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
18800
        specific tree codes.
18801
        * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
18802
        global.
18803
        (DECL_SPECIFIC_COUNT): New macro.
18804
        (prepare_eh_table_type, java_set_exception_lang_code,
18805
        generate_name): New function declarations.
18806
        (match_java_method): Declaration deleted.
18807
        (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
18808
        macros.
18809
        * lex.c (TRY_TK, CATCH_TK): Generate location information.
18810
        * parse.h (redefinition_error, refine_accessible_methods_list,
18811
        can_cast_to_p): Function declaration removed.
18812
        (classitf_redefinition_error, variable_redefinition_error,
18813
        parse_jdk1_1_error, find_applicable_accessible_methods_list,
18814
        find_most_specific_methods_list, argument_types_convertible,
18815
        enter_a_block, valid_builtin_assignconv_identity_widening_p,
18816
        valid_cast_to_p, valid_method_invocation_conversion_p,
18817
        try_reference_assignconv, add_stmt_to_compound,
18818
        build_jump_to_finally, build_tree_list, patch_try_statement,
18819
        java_get_catch_block): New function declarations.
18820
        * parse.y (string_buffer_type): Global variable deleted.
18821
        (group_of_labels, catches, catch_clause, catch_clause_parameter,
18822
        finally): Rules tagged .
18823
        (TRY_TK, CATCH_TK): Token tagged .
18824
        (class_body_declaration:, class_member_declaration:,
18825
        formal_parameter:, explicit_constructor_invocation:,
18826
        interface_member_declaration:, constant_declaration:,
18827
        primary_no_new_array:, class_instance_creation_expression:,
18828
        array_creation_expression:): Issue error on unsuported JDK1.1
18829
        features.
18830
        (try_statement:, catches:, finally:): Define actions.
18831
        (catch_clause_parameter): New rule.
18832
        (catch_clause:): Use new rule catch_clause_parameter.
18833
        (parse_jdk1_1_error): New function.
18834
        (redefinition_error): Renamed classitf_redefinition_error.
18835
        (variable_redefinition_error): New function.
18836
        (check_class_interface_creation): Call
18837
        classitf_redefinition_error.
18838
        (java_complete_tree): Added error message on JDEP_TYPE: case.
18839
        (complete_class_report_errors): Fixed indentation.
18840
        (declare_local_variables): Call variable_redefinition_error.
18841
        (source_end_java_method): Call java_set_exception_lang_code and
18842
        emit_handlers where appropriate.
18843
        (java_method_add_stmt): Call add_stmt_to_block.
18844
        (add_stmt_to_block): New function.
18845
        (lookup_method_invoke): Fixed outside comment. new local variable
18846
        candicates.  Call find_applicable_accessible_methods_list and
18847
        find_most_specific_methods_list when searching for a
18848
        method. Modified error report to list possible candidates when
18849
        applicable.
18850
        (find_applicable_accessible_methods_list,
18851
        find_most_specific_methods_list, argument_types_convertible): New
18852
        function.
18853
        (refine_accessible_methods_list): Function deleted.
18854
        (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
18855
        expr (if applicable) before calling patch_array_ref.
18856
        (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
18857
        (enter_block): Fixed comment.
18858
        (enter_a_block): New function.
18859
        (patch_assignment): Reorganized. Call try_reference_assignconv for
18860
        references. Call valid_cast_to_p instead of can_cast_to_p.
18861
        (try_reference_assignconv,
18862
        valid_builtin_assignconv_identity_widening_p): New functions.
18863
        (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
18864
        (valid_cast_to_p, valid_method_invocation_conversion_p): New
18865
        functions.
18866
        (build_string_concatenation): Don't resolve StringBuffer.
18867
        (patch_cast): Fixed inverted arguments.
18868
        (patch_array_ref): Code to save array expr deleted. Call
18869
        valid_cast_to_p instead of can_cast_to_p.
18870
        (generate_labeled_block): Call generate_name.
18871
        (build_jump_to_finally, build_try_statement, java_get_catch_block,
18872
        patch_try_statement): New functions.
18873
        * typeck.c (match_java_method): Function deleted.
18874
 
18875
1998-10-02  Anthony Green  
18876
 
18877
        * jvspec.c: jvgenmain_spec uses different temporary file names.
18878
 
18879
1998-10-02  Anthony Green  
18880
 
18881
        * jvspec.c (lang_specific_driver): Fail if user specifies
18882
        --main= when not linking.
18883
 
18884
1998-09-28  Tom Tromey  
18885
 
18886
        * class.c (make_class_data): Push value for `thread' field.
18887
        * decl.c (init_decl_processing): Added `thread' field to class.
18888
 
18889
        * class.c (add_field): Always make static fields externally
18890
        visible.
18891
 
18892
1998-09-26  Anthony Green  
18893
 
18894
        * expr.c (build_java_athrow,
18895
        build_java_throw_out_of_bounds_exception, expand_invoke,
18896
        build_newarray, expand_java_multianewarray, build_java_monitor):
18897
        Update comments to reflect _Jv_* function names.
18898
 
18899
1998-09-25  Per Bothner  
18900
 
18901
        * decl.c (complete_start_java_method):  DECL_RESULT is always promoted.
18902
        * decl.c (start_java_method):  Handle PROMOTE_PROTOTYPES target macro.
18903
        * parse.y (expand_start_java_method):  Likewise.
18904
 
18905
1998-09-24  Per Bothner  
18906
 
18907
        * expr.c (pop_arguments):  Handle PROMOTE_PROTOTYPES target macro.
18908
 
18909
        * class.c (push_class):  IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
18910
        (add_field):  No longer need to convert from RECORD_TYPE to pointer,
18911
        * expr.c:  Remove no-longer-needed calls to promote_type.
18912
        * decl.c (give_name_to_locals):  Liekwise.
18913
        * jcf-parse.c (get_class_constant):  Compensate for new signatures.
18914
        * parse.y:  Add/remove promote_type calls as appropriate.
18915
        * typeck.c (parse_signature_type):  Returns POINTER_TYPE for objects.
18916
        (parse_signature_string):  Likewise.
18917
        (build_java_array_type):  Fix for now signature convenions.
18918
 
18919
        * lex.c (java_lex):  Fix (from Alex) for JC1_LITE problem.
18920
 
18921
1998-09-23  Tom Tromey  
18922
 
18923
        * class.c (init_class_processing): libjava function renamed to
18924
        _Jv_RegisterClass.
18925
 
18926
1998-09-22  Alexandre Petit-Bianco  
18927
 
18928
        * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
18929
        * java-tree.def: Fixed DEFTREECODE third argument.
18930
        (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
18931
        CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
18932
        * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
18933
        (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
18934
        JAVA_THIS_EXPR): Now replaced by tree code definitions.
18935
        (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
18936
        * lang.c (java_tree_code_type, java_tree_code_length,
18937
        java_tree_code_name): New arrays.
18938
        (lang_init): Append Java tree node definitions to Gcc ones.
18939
        * lex.c (expression_obstack): Declared as extern when JC1_LITE
18940
        defined.
18941
        (java_init_lex): Initialize wfl_append, wfl_string_buffer,
18942
        wfl_to_string.
18943
        (java_lex): Allow declaration of empty string constants. Retain
18944
        location information on CASE_TK and DEFAULT_TK.
18945
        * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
18946
        JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
18947
        Modified to be more robust.
18948
        (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
18949
        (build_new_invocation, try_builtin_assignconv,
18950
        patch_switch_statement, string_constant_concatenation,
18951
        build_string_concatenation, patch_string_cst, patch_string,
18952
        java_expand_switch): New function declarations.
18953
        * parse.y: Rules related to switch and EH tagged .
18954
        (label_id): Set to NULL_TREE
18955
        (wfl_string_buffer, wfl_append, wfl_to_string): New static global
18956
        tree nodes.
18957
        (this_or_super:): Fixed indentation.
18958
        (statement:, statement_nsi:, statement_without_trailing_substatement:,
18959
        statement_expression:): Removed call to RULE on all sub-rules.
18960
        (switch_expression:, switch_labels:): New rules.
18961
        (switch_statement:, switch_block:, switch_block_statement_groups:,
18962
        switch_block_statement_group:, switch_labels:, switch_label:):
18963
        Defined actions.
18964
        (throw_statement:, synchronized_statement:, try_statement:):
18965
        Defined temporary actions.
18966
        (class_instance_creation_expression:): Call
18967
        build_new_invocation. Fixed indentation.
18968
        (field_access): Fixed indentation.
18969
        (method_invocation): Likewise.
18970
        (make_qualified_primary): Use THIS_EXPR.
18971
        (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
18972
        resolving from SUPER, set *type_found.
18973
        (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
18974
        (java_complete_tree): Removed unused local variable `location'. Case
18975
        for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
18976
        NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
18977
        on MODIFY_EXPR: and all binary operator tree code cases. Removed
18978
        STRING_CST: case. default: checks for patchable strings.
18979
        (complete_function_arguments): Transform string constant or
18980
        crafted StringBuffer if necessary.
18981
        (build_method_invocation): Fixed comments.
18982
        (build_new_invocation): New function.
18983
        (patch_assignment): Call try_builtin_assignconv to figure a valid
18984
        assignment conversion between builtin types.
18985
        (try_builtin_assignconv): New function.
18986
        (build_binop): Use URSHIFT_EXPR directly to call build.
18987
        (operator_string): Use UNARY_PLUS_EXPR.
18988
        (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
18989
        operator.
18990
        (do_merge_string_cste, merge_string_cste,
18991
        string_constant_concatenation, build_string_concatenation,
18992
        patch_string, patch_string_cst): New function.
18993
        (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
18994
        (patch_unaryop): Likewise. New test of valid ++/-- operands.
18995
        (build_newarray_node): Use NEW_ARRAY_EXPR.
18996
        (build_this): Use THIS_EXPR.
18997
        (build_return): Enable debug information on return statement.
18998
        (build_if_else_statement): Likewise.
18999
        (complete_labeled_statement): Fixed related comment.
19000
        (build_loop_body): Fixed comment.
19001
        (build_bc_statement): Enable debug information on break/continue
19002
        statements.
19003
        (patch_bc_statement): Fixed typos. Handle SWITCH statement
19004
        context.
19005
        (patch_switch_statement, case_identity, java_expand_switch): New
19006
        functions.
19007
 
19008
1998-09-21  Per Bothner  
19009
 
19010
        * buffer.h (BUFFER_INIT):  New macro.
19011
        * jcf-write.c (struct jcf_partial):  New type.  Put global stuff here.
19012
        Pass (struct jcf_partial *state) to most functions.
19013
        (jcf_block, jcf_relocation):  New types.
19014
        Support labels, branches, conditionals, loops.
19015
 
19016
1998-09-21  Tom Tromey  
19017
 
19018
        * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
19019
 
19020
1998-09-21  Per Bothner  
19021
 
19022
        * decl.c (integer_type_node):  Make it have INT_TYPE_SIZE.
19023
        * verify.c (verify_jvm_instructions):  Use int_type_not (32 bits),
19024
        not integer_type_node (INT_TYPE_SIZ bits).
19025
 
19026
        * parse.y (patch_if_else_statement):  Accept promoted_boolean_type_node.
19027
 
19028
        * jcf-reader.c (get_attribute):  New HANDLE_EXCEPTION_TABLE hook.
19029
        * jcf-dump.c (print_exception_table):  New function.
19030
        (disassemble_method):  Better handling of wide instructions.
19031
        Make more robust for bad input.
19032
 
19033
1998-09-30  Jeffrey A Law  (law@cygnus.com)
19034
 
19035
        * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
19036
        FreeBSD.
19037
 
19038
1998-09-17  Jeffrey A Law  (law@cygnus.com)
19039
 
19040
        * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
19041
 
19042
1998-09-17  Tom Tromey  
19043
 
19044
        * Makefile.in ($(PARSE_H)): Removed target.
19045
 
19046
1998-09-17  Jeffrey A Law  (law@cygnus.com)
19047
 
19048
        * Makefile.in (JAVA_OBJS): Add memmove.o
19049
        (memmove.o): New target & rules.
19050
 
19051
1998-09-15  Tom Tromey  
19052
 
19053
        * expr.c (expand_invoke): Don't generate a call to the class init
19054
        code.
19055
 
19056
1998-09-14  Jeffrey A Law  (law@cygnus.com)
19057
 
19058
        * Makefile.in: Add many missing dependencies.
19059
        * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
19060
        as appropriate.
19061
        * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
19062
        * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
19063
 
19064
1998-09-11  Per Bothner  
19065
 
19066
        * decl.c (complete_start_java_method):  If method is static (and
19067
        not private) call _Jv_InitClass.
19068
        * expr.c (expand_invoke):  Don't call build_class_init.
19069
 
19070
        * jvspec.c (jvgenmain_spec):  Fix spec for generated .o file.
19071
 
19072
1998-09-10  Jeffrey A Law  (law@cygnus.com)
19073
 
19074
        * Make-lang.in (GCJ): Define before using.
19075
 
19076
1998-09-09  Jeffrey A Law  (law@cygnus.com)
19077
 
19078
        * gjavah.c (java_no_argument): Renamed from no_argument to avoid
19079
        losing due to namespace pollution in GNU getopt.h
19080
 
19081
1998-09-09  Tom Tromey  
19082
 
19083
        * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
19084
        (java.all.cross): Likewise.
19085
        (java.rest.encap): Likewise.
19086
 
19087
1998-09-08  Jeffrey A Law  (law@cygnus.com)
19088
 
19089
        * gjavah.c (print_class_decls): Fix thinko in arglist
19090
        * jcv-io.c (find_classfile): Similarly.
19091
 
19092
1998-09-07  Jeffrey A Law  (law@cygnus.com)
19093
 
19094
        * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
19095
 
19096
1998-09-05  Tom Tromey  
19097
 
19098
        * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
19099
        (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
19100
        * Makefile.in (PARSE_C): New macro.
19101
        (PARSE_H): Likewise.
19102
        (PARSE_SCAN_C): Likewise.
19103
        ($(PARSE_C)): Target renamed from parse.c.
19104
        ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
19105
        (clean): Remove parse-scan.c as well.
19106
        (parse.o): Depend on $(PARSE_C).
19107
 
19108
1998-09-05  Anthony Green  
19109
 
19110
        * README, license.terms: Removed.
19111
 
19112
        * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
19113
        decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
19114
        javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
19115
        jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
19116
        keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
19117
        lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
19118
        verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
19119
        and Java trademark attribution.
19120
 
19121
1998-09-04  Tom Tromey  
19122
 
19123
        * Makefile.in: Use gcjh, not gjavah.
19124
        * config-lang.in (stagestuff): Use gcjh, not gjavah.
19125
        * Make-lang.in: Changed gjavah to gcjh everywhere.
19126
 
19127
1998-09-03  Per Bothner  
19128
 
19129
        * gjavah.c:  Support new -prepend -add -append flags.
19130
        (print_method_info):  Method is not virtual if class is final.
19131
 
19132
1998-09-03  Alexandre Petit-Bianco  
19133
 
19134
        * jv-scan.c: Fixed copyright assignment.
19135
        * keyword.gperf: Likewise.
19136
        * keyword.h: Likewise.
19137
        * lex.c: Fixed copyright assignment.
19138
        (java_lex): Push unicode back when parsing '<'.
19139
        * lex.h: Fixed copyright assignment.
19140
        * parse-scan.y: Likewise.
19141
        * parse.h: Fixed copyright assignment.
19142
        (build_debugable_stmt, complete_for_loop): New function prototypes.
19143
        * parse.y: Fixed copyright assignment.
19144
        (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
19145
        size_zero_node when completing a loop with no exit condition.
19146
        (for_statement_nsi:): Define action.
19147
        (for_init:, for_update:): Return size_zero_node when empty.
19148
        (declare_local_variables): Call build_debugable_stmt.
19149
        (build_debugable_stmt): New function.
19150
        (build_loop_body): Build debugable statement around loop
19151
        condition part.
19152
        (complete_loop_body): Take into account the debugable statement
19153
        around the EXIT_EXPR.
19154
        (complete_loop_body): New function.
19155
        (patch_exit_expr): Fixed condition inversion.
19156
 
19157
1998-09-02  Tom Tromey  
19158
 
19159
        * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
19160
        name of thread define.
19161
        * jvspec.c (THREAD_NAME): New macro.
19162
        (GCLIB): Likewise.
19163
        (THREADLIB): Likewise.
19164
        (lang_specific_driver): Recognize attempt to link with thread
19165
        library or gc library.  Recognize -ljava on command line so it
19166
        isn't linked against more than once.
19167
 
19168
1998-09-02  Alexandre Petit-Bianco  
19169
 
19170
        * parse-scan.y (report_main_declaration): Name of the class
19171
        containing `main' can be a qualified name.
19172
 
19173
1998-08-31  Tom Tromey  
19174
 
19175
        * config-lang.in: Changed gjavac to gjc everywhere.
19176
        * Make-lang.in: Changed gjavac to gjc everywhere.
19177
 
19178
1998-08-27  Alexandre Petit-Bianco  
19179
 
19180
        * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
19181
        (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
19182
        and install the files.
19183
        * Makefile.in (JAVA_OBJS_LITE): New variable.
19184
        (compiler:): Now include jv-scan as a dependency.
19185
        (../jv-scan$(exeext), parse-scan.c): New targets.
19186
        (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
19187
        * config-lang.in (compilers): Removed gcj, gjavah from the list.
19188
        * jcf-parse.c (parse_source_file): Call java_layout_classes and
19189
        check for errors even if parse_only.
19190
        * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
19191
        defined.
19192
        (yylex): New function. Uses java_lex body.
19193
        (java_lex): Removed commented out statement. Remove local variable
19194
        literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
19195
        appropriate.  Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
19196
        DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
19197
        SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
19198
        if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
19199
        SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
19200
        where appropriate.
19201
        (java_lex_error): Empty if JC1_LITE is defined.
19202
        (java_get_line_col): Return 0 if JC1_LITE is defined.
19203
        * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
19204
        SET_MODIFIER_CTX): Moved into the section containing the macros
19205
        conditionally defined by JC1_LITE.
19206
        (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
19207
        argument if JC1_LITE is defined.
19208
        (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
19209
        REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
19210
        is defined.
19211
        (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
19212
        FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
19213
        SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
19214
        to different values according to JC1_LITE.
19215
        * parse.h (int_fits_type_p, stabilize_reference): Prototype not
19216
        declared if JC1_LITE set.
19217
        (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
19218
        defined if JC1_LITE not set.
19219
        (struct parser_ctx): Reorganized and skip the jc1 front end part
19220
        if JC1_LITE set.
19221
        (java_layout_classes): New function definition.
19222
        (java_push_parser_context, java_init_lex, yyparse, yylex,
19223
        yyerror): Prototype always declared. All other static function
19224
        prototypes declared only if JC1_LITE is not set.
19225
        * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
19226
        declared in parse.h.
19227
        (java_layout_classes): New function.
19228
        (java_complete_expand_methods): No longer layout the class here.
19229
        * parse-scan.y: New file.
19230
        * jv-scan.c: New file.
19231
 
19232
1998-08-25  Tom Tromey  
19233
 
19234
        * gjavah.c (main): Handle -friend option.
19235
        (friend_specs): New global.
19236
        (generate_access): Handle friend_specs.
19237
        (process_file): Likewise.
19238
        (MAX_FRIENDS): New macro.
19239
        (friend_count): New global.
19240
        (print_cxx_classname): Added `prefix' argument.  Ignore arrays.
19241
        Changed all callers.
19242
 
19243
1998-08-24  Per Bothner  
19244
 
19245
        * jcf-dump.c (process_class):  Move JCF_FINISH use to main,
19246
        (main):  Handle processing all the entries of a named .zip archive.
19247
        * jcf-io.c (jcf_trim_old_input):  New function.
19248
        * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le):  New macros.
19249
 
19250
1998-08-24  Per Bothner  
19251
 
19252
        * lang.c (flag_assume_compiled):  Make default be on.
19253
 
19254
1998-08-21  Per Bothner  
19255
 
19256
        * jcf-dump.c:  Add bunches of flags to control output more.
19257
        (process_class):  New function;  support printing more than one class.
19258
        (main): Support new --print-main and --javap flags.
19259
        * jcf-reader.c (IGNORE_ATTRIBUTE):  New hook.
19260
        * jcf.h (CPOOL_INDEX_IN_RANGE):  New macro.
19261
 
19262
1998-08-20  Per Bothner  
19263
 
19264
        Change mangling of dispatch table to match C++ vtable (w/thunks).
19265
        * class.c (build_dtable_decl), java-tree.h:  New function.
19266
        (make_class_data):  Call it.
19267
        * decl.c (init_decl_processing):  Likewise.
19268
 
19269
1998-08-19  Warren Levy  
19270
 
19271
        * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
19272
        soft_anewarray; adjust args passed.
19273
        * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
19274
        match _Jv_NewObjectArray.
19275
 
19276
1998-08-19  Alexandre Petit-Bianco  
19277
 
19278
        * decl.c (push_labeled_block, pop_labeled_block): New functions.
19279
        * expr.c (loopup_label): Call create_label_decl.
19280
        (create_label_decl): New function.
19281
        (java_lang_expand_expr): Call expand_start_bindings with argument
19282
        set to zero.
19283
        * java-tree.h Added space after PROTO in function declarations
19284
        when necessary.
19285
        (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
19286
        (create_label_decl, push_labeled_block): New function
19287
        declarations.
19288
        * lex.c (label_id): Initialize.
19289
        (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
19290
        switch.
19291
        * parse.h Added space after PROTO in function declarations when
19292
        necessary.
19293
        (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
19294
        LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
19295
        LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
19296
        PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
19297
        macros.
19298
        (struct parser_ctxt): New fields current_loop,
19299
        current_labeled_block.
19300
        (build_if_else_statement, patch_if_else_statement,
19301
        add_stmt_to_compound, patch_exit_expr, build_labeled_block,
19302
        generate_labeled_block, complete_labeled_statement,
19303
        build_bc_statement, patch_bc_statement, patch_loop_statement,
19304
        build_new_loop, build_loop_body, complete_loop_body): New function
19305
        declarations.
19306
        * parse.y (java_warning_count): New global variable.
19307
        (label_id): New static variable.
19308
        (BREAK_TK, CONTINUE_TK): Token tagged .
19309
        (block:): Return size_zero_node when block is empty.
19310
        (empty_statement:): Return size_zero_node.
19311
        (statement:): Implement supplemental action when for_statement: is
19312
        reduced.
19313
        (label_decl:): New rule.
19314
        (labeled_statement:): Rewritten using label_decl. Actions
19315
        implemented.
19316
        (labeled_statement_nsi:): Likewise.
19317
        (if_then_statement): Actions implemented.
19318
        (while_expression): New rule.
19319
        (while_statement:): Rewritten using while_expression. Actions
19320
        implemented.
19321
        (while_statement_nsi:): Likewise.
19322
        (do_statement_begin:): New rule.
19323
        (do_statement:): Rewritten using do_statement_begin. Actions
19324
        implemented.
19325
        (for_statement:): Rewritten using for_begin. Actions implemented.
19326
        (for_statement_nsi:): Likewise.
19327
        (for_header:, for_begin:): New rules.
19328
        (for_init:): Actions implemented.
19329
        (statement_expression_list:, break_statement:,
19330
        continue_statement:): Likewise.
19331
        (yyerror): Count number of issued warning(s).
19332
        (java_report_errors): Report error(s) and/or warning(s).
19333
        (java_complete_class): Use build_java_argument_signature to
19334
        recompute completed method signature.
19335
        (java_check_regular_methods): New locals method_wfl and aflags.
19336
        Use method_wfl instead of lookup_cl during error reports. Fixed
19337
        indentation and modified some error messages. Use
19338
        lang_printable_name in method instead of the DECL_NAME. New code
19339
        to issue warnings on methods not overriding corresponding methods
19340
        private to a different package.
19341
        (java_method_add_stmt): Call add_stmt_to_compound.
19342
        (add_stmt_to_compound): New function.
19343
        (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
19344
        LOOP_EXPR, EXIT_EXPR and COND_EXPR.
19345
        (build_if_else_statement, patch_if_else_statement,
19346
        build_labeled_block, generate_labeled_block,
19347
        complete_labeled_statement, build_new_loop, build_loop_body,
19348
        complete_loop_body, patch_loop_statement, build_bc_statement,
19349
        patch_bc_statement, patch_exit_expr): New functions.
19350
        * typeck.c (build_java_signature): Build argument signature before
19351
        enclosing it in between parenthesis.
19352
 
19353
1998-08-17  Warren Levy  
19354
 
19355
        * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
19356
        (JAVA_OBJS): Added reminder comment
19357
 
19358
1998-08-13  Nick Clifton  
19359
 
19360
        * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
19361
        be interpreted as a long long.
19362
 
19363
1998-08-13  Warren Levy  
19364
 
19365
        * decl.c (init_decl_processing): Use _Jv_InitClass, not
19366
        soft_initialise_class.  Use _Jv_NewMultiArray, not
19367
        soft_multianewarray.  Use _Jv_ThrowBadArrayIndex, not
19368
        soft_badarrayindex.  Use _Jv_CheckCast, not soft_checkcast.  Use
19369
        _Jv_CheckArrayStore, not soft_checkarraystore.  Use
19370
        _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
19371
 
19372
1998-08-12  Per Bothner  
19373
 
19374
        * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
19375
        length_identifier_node):  New global tree node constants.
19376
        * parse.y (kw_super, kw_this, kw_length):  Removed globals.
19377
        Replace uses by super_identifier_node etc.
19378
        * lex.c (kw_super, kw_this, kw_length):  Don't initialize.
19379
 
19380
        * parse.y (resolve_field_access):  Don't special-case ".length" if
19381
        flag_emit_class_files.
19382
        (patch_array_ref):  Leave as ARRAY_REF if flag_emit_class_files.
19383
        * jcf-write.c (generate_bytecode_insns):  Handle ARRAY_REF opcode
19384
        and ARRAY.length.
19385
 
19386
1998-08-11  Per Bothner  
19387
 
19388
        * decl.c (init_decl_processing): Remove unused method_type_node fields.
19389
        * class.c (make_method_value):  Remove init for removed fields.
19390
 
19391
        * class.c (layout_class):  Use build_java_argument_signature.
19392
        * java-tree.h (TYPE_ARGUMENT_SIGNATURE):  New macro.
19393
 
19394
        * typeck.c (push_java_argument_signature):  Removed.  Merged into ...
19395
        (build_java_argument_signature):  Use TYPE_ARGUMENT_SIGNATURE cache.
19396
        (build_java_signature):  Don't use push_java_argument_signature.
19397
 
19398
        * typeck.c (lookup_argument_method):  New function.
19399
        * parse.y (java_check_regular_methods):  Use lookup_argument_method
19400
        instead of lookup_java_method2 followed by lookup_java_method.
19401
 
19402
        * parse.y (check_method_redefinition):  Minor optimization.
19403
 
19404
        * jcf-write.c (generate_bytecode_insns):  Handle RETURN_EXPR,
19405
        MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
19406
 
19407
1998-08-10  Tom Tromey  
19408
 
19409
        * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
19410
        c-pragma.o.
19411
 
19412
        * gjavah.c (java_float_finite): Use K&R-style definition.
19413
        (java_double_finite): Likewise.
19414
        (generate_access): Now returns void.  Changed all callers.
19415
        (last_access_generated): Removed.
19416
        (process_file): Only make a single pass over the .class file.
19417
 
19418
1998-07-29  Per Bothner  
19419
 
19420
        * class.c (get_dispatch_table):  Add extra dummy vtable entry,
19421
        for compatibility for G++ (with -fvtable-thunks).
19422
        * expr.c (build_invokevirtual):  Add one for extra dummy vtable entry.
19423
 
19424
        * gjavah.c (process_file):  Use public inheritance for super-class.
19425
 
19426
1998-07-29  Alexandre Petit-Bianco  
19427
 
19428
        * lex.c (java_init_lex): Initialize ctxp->package.
19429
        * parse.h (struct parser_ctxt): package and package_len replaced
19430
        by tree package, an identifier node. Field method_decl_list is
19431
        gone. Fixed comments.
19432
        (lookup_field_wrapper, merge_qualified_name, not_accessible,
19433
        class_in_current_package): New function prototypes.
19434
        * parse.y (array_type:): Set class loaded flag on primitive type
19435
        arrays.
19436
        (package_declaration:): Assign ctxp->package to the
19437
        identifier node.
19438
        (method_invocation:): Handle invocation of method qualified by
19439
        `super'.
19440
        (single_type_import_declaration:): Removed ambiguity check.
19441
        (java_pop_parser_context): New local variable `next'. Reset and
19442
        set IMPORT_CLASSFILE_NAME flags on current and previous import
19443
        list.
19444
        (java_accstring_lookup): Use new local macro COPY_RETURN.
19445
        (lookup_field_wrapper): New function.
19446
        (parser_qualified_classname): Use merge_qualified_name.
19447
        (parser_check_super_interface): Broaden error message.
19448
        (do_resolve_class): Check for qualified class name in the current
19449
        compilation unit if appropriate.
19450
        (process_imports): Check for already defined classes.
19451
        (check_pkg_class_access): Got rid of call to
19452
        get_access_flags_from_decl.
19453
        (java_complete_expand_methods): Call safe_layout_class based on
19454
        the current class size.
19455
        (make_qualified_primary): Build a WFL qualification on primary if
19456
        none exists.
19457
        (merge_qualified_name): New function.
19458
        (make_qualified_name): Use merge_qualified_name.
19459
        (resolve_expression_name): Use safe_lookup_field.
19460
        (resolve_field_access): Got rid of call to get_access_flags_from_decl.
19461
        (resolve_qualified_expression_name): Likewise. Check on resolved
19462
        element accessibility.
19463
        (not_accessible_p, class_in_current_package): New functions.
19464
        (maybe_access_field): Got rid of call to get_access_flags_from_decl.
19465
        (patch_method_invocation_stmt): Merged common pieces. Check
19466
        accessibility of invoked method.
19467
        (check_for_static_method_reference): Add returned type in error
19468
        message.
19469
        (invocation_mode): Get rid of bogus check on PRIVATE methods.
19470
        (refine_accessible_methods_list): Merged two conditions in test.
19471
        (java_complete_class): Sanity check on stabilize_ref gone.
19472
        * zextract.c (read_zip_archive): Cast lseek second argument to long.
19473
 
19474
1998-07-28  Per Bothner  
19475
 
19476
        * class.c (hashUtf8String):  Fix - use new JavaSoft specification.
19477
 
19478
1998-07-24  Tom Tromey  
19479
 
19480
        * gjavah.c (F_NAN): Removed.
19481
        (F_NAN_MASK): New macro.
19482
        (F_POSITIVE_INFINITY): Removed.
19483
        (F_NEGATIVE_INFINITY): Likewise.
19484
        (java_float_finite): Rewrote.
19485
        (D_NAN_MASK): Renamed.
19486
        (java_double_finite): Rewrote.
19487
        (D_POSITIVE_INFINITY): Removed.
19488
        (D_NEGATIVE_INFINITY): Likewise.
19489
 
19490
        * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
19491
        If verbose, print underlying representation of value in hex.
19492
 
19493
1998-07-24  Per Bothner  
19494
 
19495
        * buffer.h, buffer.c:  New files.
19496
        * Makefile.in (JAVA_OBJS):  Add buffer.o.
19497
 
19498
        Support locals variables and writing their debug entries to .class.
19499
        * jcf-write.c:  Simplify some by user new buffer type.
19500
        (vode_buffer_grow):  Removed.
19501
        (struct localvar_info):  New type.
19502
        (localsvars, localvartable):  New buffers.
19503
        (localvar_alloc, localvar_free):  New functions.
19504
        (generate_bytecode_insns):  Handle local variables.
19505
        (generate_classfile):  Write LocalVariableTable attribute.
19506
 
19507
1998-07-24  Alexandre Petit-Bianco  
19508
 
19509
        * jcf-io.c (open_in_zip): Check the zipfile magic number.
19510
        * zipfile.h (ZIPMAGIC): New macro.
19511
 
19512
1998-07-24  Tom Tromey  
19513
 
19514
        * Makefile.in (gjavah.o): Updated dependencies.
19515
        (jcf-dump.o): Likewise.
19516
        (all.indirect): Use ../gjavah.
19517
        (../gjavah$(exeext)): Likewise.
19518
        (clean): Don't remove gjavah.
19519
        (clean): Remove parse.c, not java/parse.c.
19520
        * Make-lang.in (java): Added gjavah.
19521
        (gjavah$(exeext)): New target.
19522
        (GJAVAH_SOURCES): New macro.
19523
        (java.all.build): Added gjavah.
19524
        (java.all.cross): Likewise.
19525
        (java.rest.encap): Likewise.
19526
        * config-lang.in (compilers, stagestuff): Added gjavah.
19527
 
19528
1998-07-23  Tom Tromey  
19529
 
19530
        * gjavah.c (java_float_finite): New function.
19531
        (java_double_finite): Likewise.
19532
        (F_POSITIVE_INFINITY): New macro.
19533
        (F_NEGATIVE_INFINITY): Likewise.
19534
        (F_NAN): Likewise.
19535
        (D_POSITIVE_INFINITY): Likewise.
19536
        (D_NEGATIVE_INFINITY): Likewise.
19537
        (D_NAN): Likewise.
19538
        (print_field_info): Use java_float_finite and java_double_finite.
19539
 
19540
1998-07-23  Per Bothner  
19541
 
19542
        * parse.y (method_header):  Name "this" implicit argument.
19543
 
19544
1998-07-22  Per Bothner  
19545
 
19546
        * jcf-write.c:  Write out LineNumberTable attribute in .class file.
19547
        (linenumber_buffer, linenumber_ptr, linenumber_limit):  New statics.
19548
        (put_linenumber):  New function.
19549
        (generate_bytecode_insns, generate_classfile):  Write line numbers.
19550
 
19551
1998-07-22  Alexandre Petit-Bianco  
19552
 
19553
        * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
19554
        (lookup_name, build_known_method_ref, build_class_init,
19555
        build_invokevirtual, invoke_build_dtable, match_java_method,
19556
        build_field_ref, pushdecl_force_head, build_java_binop,
19557
        binary_numeric_promotion, build_decl_no_layout,
19558
        build_java_arrayaccess, build_newarray, build_anewarray,
19559
        build_java_array_length_access, build_java_arraynull_check): New
19560
        extern function prototypes.
19561
        (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19562
        JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
19563
        java-tree.h.
19564
        * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
19565
        to NULL
19566
        * jcf.h (jcf_out_of_synch): New extern function prototype.
19567
        * parse.h: Static/global function implemented in parse.y
19568
        prototyped and declarations moved at the end of the file.
19569
        (DECL_P): Check that the argument isn't null.
19570
        (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19571
        JAVA_THIS_EXPR): No longer defined here. See java-tree.h
19572
        (QUAL_DECL_TYPE): New macro.
19573
        (PARAMS): Macro definition removed.
19574
        * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
19575
        (return_statement:): Call build_return.
19576
        (field_access:): Call make_qualified_primary in sub rule.
19577
        (method_invocation:): Build method invocation and call
19578
        make_qualified_primary when processing primaries.
19579
        (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
19580
        get_type_from_signature.
19581
        (java_check_regular_method): Extra integer 0 argument when calling
19582
        lookup_java_method2.
19583
        (lookup_java_interface_method2): Extra method DECL argument when
19584
        calling lookup_java_interface_method2.
19585
        (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
19586
        COMPOUND_EXPR node.
19587
        (java_complete_expand_method): Layout current class iff not
19588
        already done. Don't process interface's methods.
19589
        (java_complete_expand_method): Use super class only if it
19590
        exists. Use current class otherwise.
19591
        (make_qualified_primary): New function.
19592
        (resolve_expression_name): Process qualified expression or
19593
        expression from primary the same way.
19594
        (resolve_expression_name): Two last arguments to
19595
        resolve_field_access are now NULL_TREEs.
19596
        (resolve_field_access): New variable is_static. Local field must
19597
        be DECLs. is_static computed on field DECLs only. Append code in
19598
        where_found to the field access if necessary. Use QUAL_DECL_TYPE
19599
        to initialize field_type.
19600
        (resolve_qualified_expression_name): New local variable,
19601
        previous_call_static and is_static. Handle primaries with function
19602
        calls, casts, array references and `this'. `super' now handled as
19603
        `(super_class)this'. Use is_static to clarify boolean expressions.
19604
        Added code to handle case where a proper handle is required to
19605
        access a field. Use QUAL_DECL_TYPE where applicable.
19606
        (maybe_access_field): New function.
19607
        (patch_method_invocation_stmt): New arguments primary, where,
19608
        is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
19609
        deleted. Use `where' as a type to search from if specified. Check
19610
        for static method reference where forbidden. Append primary or
19611
        current_this to the argument list if not calling constructor nor
19612
        static methods.
19613
        (check_for_static_method_reference): New function.
19614
        (patch_invoke): Layout the class on which new is done if
19615
        necessary.
19616
        (lookup_method_invoke): Changed format to report errors on
19617
        methods.
19618
        (qualify_ambiguous_name): New local variable this_found. Now
19619
        handle things from primaries. Method call are considered
19620
        expression names.
19621
        (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
19622
        changed into NULLs.
19623
        (not_initialized_as_it_should_p): Comply with the new DECL_P.
19624
        (java_complete_tree): New case fo RETURN_EXPR. Process function
19625
        call arguments in separate function.
19626
        (complete_function_arguments): New function.
19627
        (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
19628
        anymore.
19629
        (patch_assignment): Take the return function slot into account as
19630
        a RHS. Distinguish assignment from a return.
19631
        (valid_ref_assignconv_cast_p): Use build_java_argument_signature
19632
        when checking methods in interfaces.
19633
        (resolve_type_during_patch): NULL argument to unresolve_type_p
19634
        instead of NULL_TREE.
19635
        (patch_newarray): Fixed typo in comment.
19636
        (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
19637
        (build_return, patch_return): New functions.
19638
        * typeck.c (lookup_java_constructor): Fixed typo in comment.
19639
 
19640
1998-07-21  Per Bothner  
19641
 
19642
        * constants.c (find_name_and_type_constant, find_fieldref_index,
19643
        find_methodref_index):  New methods.
19644
        * expr.c (build_invoke_non_interface):  If flag_emit_class_files,
19645
        just return given method.  Also, rename to build_known_method_ref.
19646
        (expand_invoke):  Rename call to build_invoke_non_interface.
19647
        * java-tree.h, parse.h:  Update prototype.
19648
        * parse.y, decl.c, jcf-parse.c:  Suppress calls to back-end functions
19649
        (such as expand_expr_stmt) if flag_emit_class_files.
19650
        * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
19651
        STACK_TARGET, IGNORE_TARGET):  New macros.
19652
        (code_buffer, code_ptr, code_limit, code_S, code_SP_max):  New globals.
19653
        (generate_bytecode_insn):  New function to generate method's bytecode.
19654
        (generate_classfile):  Node generate Code attribute for a method.
19655
        (code_buffer_grow, push_constant1, push_constant2, push_int_const,
19656
        push_long_const, field_op, adjust_typed_op, maybe_wide):
19657
        New functions used by generate_bytecode_insn.
19658
 
19659
        * typeck.c (signature_include_return):  Remove variable.
19660
        (push_java_argument_signature, build_java_argument_signature):  New.
19661
        (build_java_signature):  Use push_java_argument_signature.
19662
        * parse.y:  Use build_java_argument_signature instead of fiddling
19663
        with signature_include_return.
19664
 
19665
1998-07-17  Tom Tromey  
19666
 
19667
        * gjavah.c (print_c_decl): Always generate JArray<>* for array
19668
        types.
19669
 
19670
        * Makefile.in (all.indirect): Added gjavah$(exeext).
19671
        (gjavah$(exeext)): Added $(exeext).
19672
        (clean): Likewise.
19673
 
19674
1998-07-16  Alexandre Petit-Bianco  
19675
 
19676
        * class.c (layout_class): Call to java_layout_parsed_class replace
19677
        by safe_layout_class.
19678
        * expr.c (build_java_array_length_access): Removed static storage
19679
        class in the function definition.
19680
        (build_java_arraynull_check): Likewise.
19681
        Also fixed typos in two comments.
19682
        * lex.c (java_init_lex): Initialize static global kw_length.
19683
        (java_lex): Use BUILD_OPERATOR on RETURN_TK.
19684
        * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
19685
        java_lex_error.
19686
        (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
19687
        * parse.h (resolve_no_layout): New static function declaration.
19688
        (get_identifier_in_static): Declaration removed.
19689
        (java_layout_parsed_class): Function name declaration changed to
19690
        safe_layout_class.
19691
        (build_newarray_node, patch_newarray, resolve_type_during_patch,
19692
        not_initialized_as_it_should_p, build_this): New static function
19693
        declarations.
19694
        (pushdecl_force_head, build_java_binop, int_fits_type_p,
19695
        binary_numeric_promotion, stabilize_reference,
19696
        build_decl_no_layout, build_java_arrayaccess): Extern function
19697
        declarations moved into their own section.
19698
        (build_newarray, build_anewarray, build_java_array_length_access,
19699
        build_java_arraynull_check): New extern function declarations.
19700
        (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
19701
        (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
19702
        fake tree codes.
19703
        (CALL_CONSTRUCTOR_P): New macro.
19704
        * parse.y (kw_length): New static global tree node.
19705
        (return_statement): Tagged .
19706
        (RETURN_TK): Tagged .
19707
        (variable_declarator_id:): Build variable declaration with an
19708
        empty initialization value if a syntax error was found in the
19709
        initialization part of the variable declaration.
19710
        (statement_without_trailing_substatement:): return_statement: now
19711
        uses the default rule.
19712
        (return_statement:): Temporarily fixed to return NULL_TREE.
19713
        (primary_no_new_array:): Call build_this when THIS_TK was parsed.
19714
        (class_instance_creation_expression:): Class creation rules now
19715
        call build_method_invocation upon reduction.
19716
        (array_creation_expression:): Rules call build_newarray_node upon
19717
        reduction.
19718
        (dim_exprs:): Build a list of dimension expressions.
19719
        (dim_expr:): Store location of the OSB_TK in the dimension
19720
        expression node.
19721
        (method_invocation:): Added a new error rule.
19722
        (build_unresolved_array_type): WFL argument may also be an array
19723
        on a primitive type. Name of the argument changed to reflect this.
19724
        (method_declarator): Insert argument type at the beginning of the
19725
        argument type list and later reverse the list.
19726
        (unresolved_type_p): Argument 'returned' may be optionally
19727
        NULL_TREE.
19728
        (java_layout_class_from_source): Function renamed
19729
        safe_layout_class.
19730
        (resolve_and_layout): Now call resolve_no_layout and
19731
        safe_layout_class.
19732
        (resolve_no_layout): New function.
19733
        (purify_type_name): New function.
19734
        (complete_class_report_errors): Call purify_type_name during error
19735
        report on a type not found.
19736
        (process_imports): error_found local variable doesn't need to be
19737
        initialized to zero.
19738
        (declare_local_variables): New local type_wfl. Fixed typo in error
19739
        message. type_wfl assigned to unresolved type and used to register
19740
        incomplete type. Build a WFL around the variable initialization
19741
        statement so that debug info can be generated on it.
19742
        (source_start_java_method): Reverse argument list after they've
19743
        been processed.
19744
        (current_this): New static global variable.
19745
        (java_complete_expand_methods): Set current_this when appropriate.
19746
        (resolve_expression_name): Build correct static and non static
19747
        field access bearing a simple name.
19748
        (resolve_field_access): Resolve the length field of arrays. Handle
19749
        f.m() cases.
19750
        (patch_method_invocation_stmt): Set the type of the method
19751
        invocation to error_mark_node. This value is later overridden by a
19752
        valid type, if any. Don't handle qualified constructor invocation
19753
        as qualified method invocation. Call lookup_method_invoke with its
19754
        new flag. It's no longer necessary to access the selected method
19755
        as the value of a tree list. Handle constructor invocation.
19756
        (patch_invoke): Reverse argument list when invoking non interface
19757
        methods. Insert call to new as the first argument of the
19758
        constructor.
19759
        (invocation_mode): Return a INVOKE_STATIC is the invoked method is
19760
        defined within a final class. Return INVOKE_STATIC if the invoked
19761
        method is a constructor.
19762
        (lookup_method_invoke): New lc argument is a flag to indicate a
19763
        constructor lookup. Now handle constructor lookup. Choose the most
19764
        specific method in case several were matching the invocation
19765
        requirements. Return a method decl instead of a tree list featuring
19766
        one single method decl element.
19767
        (refine_accessible_methods_list): New lc flag argument to
19768
        indicate that a constructor is being looked up.
19769
        (not_initialized_as_it_should_p): New function.
19770
        (java_complete_tree): Now process fake tree codes
19771
        JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
19772
        save_expr on resolved function call arguments. Case on
19773
        UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
19774
        (patch_assignment): LHS can be a field access expression. When
19775
        dealing with reference, lhs_type is the promoted type of the
19776
        rhs_type, not the RHS. Use not_initialized_as_it_should_p where
19777
        applicable.
19778
        (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
19779
        (patch_binop): Use not_initialized_as_it_should_p where
19780
        applicable.
19781
        (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
19782
        (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
19783
        where applicable.
19784
        (resolve_type_during_patch): New function.
19785
        (patch_cast): Call resolve_type_during_patch to resolve type and
19786
        report error accordingly.
19787
        (patch_array_ref): Use not_initialized_as_it_should_p where
19788
        applicable. Array base expression is saved before being
19789
        used. Promote the type of an array elements if it contains non
19790
        builtin types.
19791
        (build_newarray_node, patch_newarray, build_this): New functions.
19792
 
19793
1998-07-16  Tom Tromey  
19794
 
19795
        * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
19796
        increment it in `for' statement.
19797
        (print_field_info): If number is inf or nan, don't print it.
19798
        (print_method_info): If method name is `delete', just ignore it.
19799
        (print_c_decl): Special-case jstringArray.
19800
 
19801
        * gjavah.c (help): New function.
19802
        (no_argument): New function.
19803
        (usage): Changed text.
19804
        (main): Rewrote argument handling.  Now handles -v, --help,
19805
        --version.
19806
        (version): New function.
19807
        (found_error): New global.
19808
        (main): Return found_error.
19809
        (generate_access): Set found_error.
19810
        (print_c_decl): Likewise.
19811
 
19812
1998-07-15  Tom Tromey  
19813
 
19814
        * gjavah.c (print_c_decl): Don't print "," when examining field.
19815
        Skip type name when looking at "[L" types.
19816
        (process_file): Now static.
19817
        (generate_access): Now returns int.
19818
        (last_access_generated): New global.
19819
        (process_file): Clear last_access_generated; make multiple passes
19820
        over the class.
19821
        (print_field_info): Just return if generate_access returns true.
19822
        (print_method_info): Likewise.  Also, allow  functions to
19823
        pass through.
19824
        (print_c_decl): Added is_init argument.  Print constructors
19825
        properly.
19826
        (print_cxx_classname): Use UTF8_GET to extract characters from
19827
        string.
19828
        (print_base_classname): New function.
19829
        (print_class_decls): New function.
19830
        (process_file): Use it.
19831
        (utf8_cmp): New function.
19832
 
19833
1998-07-13  Nick Clifton  
19834
 
19835
        * lang-options.h: Format changed to match changes in gcc/toplev.c
19836
        to implement a --help option.
19837
 
19838
1998-07-10  Brendan Kehoe  
19839
 
19840
        * decl.c (init_decl_processing): Revert change to dtable_type.
19841
 
19842
1998-07-09  Per Bothner  
19843
 
19844
        * java-tree.h (CLASS_P):  Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
19845
 
19846
1998-07-08  Brendan Kehoe  
19847
 
19848
        * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
19849
 
19850
        * lang.c (lang_init): Default flag_exceptions to 1, without
19851
        checking to see if it's 2 first.
19852
 
19853
1998-07-08  Jeffrey A Law  (law@cygnus.com)
19854
 
19855
        * constants.c: Include "system.h".
19856
        * decl.c: Likewise.
19857
        * lang.c (flag_new_exceptions): Get via extern now.
19858
        (lang_init_options): New functions.  Turn on flag_new_exceptions.
19859
 
19860
1998-07-07  Alexandre Petit-Bianco  
19861
 
19862
        * lex.c (java_lex): Return 0 when we see an invalid character in
19863
        the input.
19864
 
19865
        * lex.c (java_read_char): Specify extra argument when calling
19866
        java_lex_error.
19867
        (java_read_unicode, java_parse_end_comment,
19868
        java_parse_escape_sequence): Likewise,
19869
        (java_lex): Specify extra argument when calling
19870
        java_lex_error. Test that IDs are beginning with a legal character
19871
        for IDs. Handle invalid characters with an error message and a
19872
        call to java_lex_error.
19873
        (java_lex_error): Adjust column position by new argument
19874
        `forward'. Issue an error even if in the middle of reporting an
19875
        other error.
19876
 
19877
1998-07-07  Brendan Kehoe  
19878
 
19879
        * jcf-io.c (find_class): Zero out BUFFER before we use it, since
19880
        we don't explicitly put a null pointer when we're copying it.
19881
 
19882
1998-07-07  Tom Tromey  
19883
 
19884
        * gjavah.c (print_cxx_classname): New function.
19885
        (super_class_name): Likewise.
19886
        (print_super_fields): Removed.
19887
        (in_super): Removed.
19888
        (print_field_info): Never generate #defines.
19889
        (print_c_decl): Changed generated types to match JNI.  No longer
19890
        print class name before method name.
19891
        (print_method_info): Print "static" before static methods.
19892
        Print "virtual" before non-final methods.
19893
        (usage): Use exit(1), not exit(-1).
19894
        (main): Likewise.
19895
        (print_field_info): Use %.17g to print a double.
19896
        (last_access): New globals.
19897
        (process_file): Initialize last_access.
19898
        (usage): Now static.
19899
        (ACC_VISIBILITY): New define.
19900
        (generate_access): New function.
19901
        (print_field_info): Call it.
19902
        (print_method_info): Likewise.  Also, generate information for all
19903
        methods, not just native methods.  Return void.
19904
        (print_c_decl): Return void.
19905
        (print_field_info): Return void.
19906
 
19907
1998-07-02  Alexandre Petit-Bianco  
19908
 
19909
        * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
19910
        processing the jc1 grammar file. Prefix bison functions and
19911
        variables with java_.
19912
        (parse.c): Dependencies on parse.h and lex.h
19913
        * expr.c (build_java_arrayaccess): Function now global.
19914
        * java-tree.h: Comment reorganized to carry on previous
19915
        classification effort.
19916
        (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
19917
        RESOLVE_TYPE_NAME_P): New flags on WFLs.
19918
        * jcf-parse.c (parse_source_file): java_parse_source_file renamed
19919
        java_parse (new prefix java_ generated by bison).
19920
        (java_layout_parsed_class, java_register_parsed_class): Function
19921
        call removed.
19922
        (yyparse): Removed unnecessary call to init_outgoing_cpool.
19923
        * lex.c (static tree wfl_op): Variable deleted.
19924
        (java_init_lex): Initialize kw_super and kw_this. Initialize more
19925
        ctxp fields to NULL_TREE.
19926
        (java_lex): No longer create WFL for operators. Filename caching
19927
        mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
19928
        created as STRING_CST and later expanded. Removed extra argument
19929
        to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
19930
        and SUPER.
19931
        (build_wfl_node): Removed code in comments.
19932
        * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
19933
        store token and location data in the current bison token.
19934
        * parse.h: Removed pre-processor based symbol prefixes hack. Moved
19935
        static/extern function declaration at the beginning of the file.
19936
        (struct qualification): Data structure definition deleted.
19937
        (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
19938
        (qualify_ambiguous_name): Function declaration modified. Function
19939
        now returns nothing.
19940
        (build_array_ref, patch_array_ref, make_qualified_name,
19941
        resolve_qualified_expression_name, maybe_generate_clinit,
19942
        resolve_field_access): New static function declarations.
19943
        (build_java_arrayaccess): New extern function declaration.
19944
        (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
19945
        (CALL_EXPR_PRIMARY): Macro deleted.
19946
        (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
19947
        (struct parser_ctxt): Field initialized_final
19948
        removed. non_static_initialized, static_initialized: New fields.
19949
        * parse.y (static tree kw_super, static tree kw_this): New global
19950
        static.
19951
        (%union): tree wfl field of operator member replaced by int
19952
        location. WFLs are non longer created for operators.
19953
        (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged .
19954
        (qualified_name:): Now calls make_qualified_name to build the
19955
        identifier.
19956
        (type_declaration:): Consider generating  when class
19957
        parsing completed.
19958
        (variable_declarator:): Directly build an assignment node when the
19959
        variable is initialized when declared.
19960
        (this_or_super:): Build a WFL and set current location when THIS
19961
        or SUPER are parsed.
19962
        (expression_statement:): Wrap statement around a WFL.
19963
        (primary_no_new_array:): Fixed typo. Changed value returned by
19964
        THIS_TK because of its new type (temporary).
19965
        (dim_exprs:): Temporary fix because of OSB_TK's new type.
19966
        (field_access:): Build qualified name with SUPER.
19967
        (method_invocation:): Fixed returned value because of SUPER's new
19968
        type.
19969
        (array_access:): Use OSB_TK location information.
19970
        (post_increment_expression:, post_decrement_expression:,
19971
        unary_expression:, pre_increment_expression:,
19972
        pre_decrement_expression:, unary_expression_not_plus_minus:,
19973
        cast_expression:, multiplicative_expression:,
19974
        additive_expression:, shift_expression:, relational_expression:,
19975
        equality_expression:, and_expression:, exclusive_or_expression:,
19976
        inclusive_or_expression:, conditional_and_expression:,
19977
        conditional_or_expression:, assignment:): Use new location/token
19978
        information available on operators.
19979
        (create_class): Set super_decl_type to NULL_TREE when processing
19980
        java.lang.Object.
19981
        (register_fields): Field initialization is now a MODIFY_EXPR
19982
        node. Chain initialization code to the matching lists (according
19983
        to the field declaration modifiers).
19984
        (maybe_generate_clinit): New function.
19985
        (method_header): Don't set method's DECL_NAME to a WFL when adding
19986
        methods to java.lang.Object.
19987
        (resolve_and_layout): Now can return NULL_TREE if the type
19988
        resolution fails. Otherwise, return the class DECL instead of its
19989
        TYPE.
19990
        (check_method_redefinition): Don't patch method DECL_NAME if it
19991
        belongs to java.lang.Object.
19992
        (process_imports): Simply assign error_found to the value returned
19993
        by check_pkg_class_access.
19994
        (declare_local_variables): Don't use their init statements (if
19995
        any) when parsing error were previously found. Reuse MODIFY_EXPR
19996
        build during parsing as an init statement.
19997
        (java_method_add_stmt): Now return the current method body.
19998
        (java_layout_parsed_class, java_register_parsed_class): Functions
19999
        removed.
20000
        (java_complete_expand_methods): Initialize the constant pool on a
20001
        per class basis. Layout the classes before expanding their method
20002
        bodies. Don't try expand artificial constructor code if error were
20003
        found. Make the classes data and register them if no error were
20004
        found.
20005
        (java_complete_expand_method): Retrieve an artificial constructor
20006
        argument list before entering its body. Assign the top block to
20007
        the artificial constructor function body and set types of declared
20008
        blocks and compound statements to void. Walk method body if not an
20009
        artificial constructor.
20010
        (make_qualified_name, cut_identifier_in_qualified): New functions.
20011
        (resolve_expression_name): Fixed comments. Save/restore the
20012
        current class CLASS_LOADED_P flag value. Build non qualified
20013
        static field access and handle qualified expression names.
20014
        (resolve_field_access, resolve_qualified_expression_name): New
20015
        functions.
20016
        (patch_method_invocation_stmt): Use the new expression resolution
20017
        scheme, calling resolve_field_access when the function call is
20018
        resolved as an expression.
20019
        (qualify_ambiguous_name): Function rewritten to work on qualified
20020
        expression produced by make_qualified_name.
20021
        (java_complete_tree): Promote type when function's argument are
20022
        RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
20023
        the assignment to discover further errors if RHS is a expression
20024
        name that fails to evaluate. Declare LHS initialized even though
20025
        the assignment failed. Don't use the location variable and removed
20026
        extra argument in patch function calls. Now handle the ARRAY_REF
20027
        case and build internal string representation when STRING_CSTs are
20028
        walked.
20029
        (build_method_invocation): Don't wrap function call around a WFL.
20030
        (build_assignment): Likewise. Use the operator location
20031
        information.
20032
        (patch_assignment): Handle array access LHSs. Handle error
20033
        provenance, resulting in a better error report.
20034
        (build_binop): Use op_location from operator as binop location
20035
        information.
20036
        (build_unaryop, build_incdec, build_cast): Likewise.
20037
        (patch_binop): Extract location information from the node. Fixed
20038
        typo in error message.
20039
        (patch_unary_op): Extract location information from the node.
20040
        (build_array_ref, patch_array_ref): New functions.
20041
 
20042
1998-07-01  Tom Tromey  
20043
 
20044
        * expr.c (expand_java_INSTANCEOF): Changed calling convention to
20045
        match _Jv_IsInstanceOf.
20046
        * decl.c (init_decl_processing): Use _Jv_NewArray, not
20047
        soft_newarray.  Use _Jv_IsInstanceOf, not soft_instanceof.
20048
 
20049
1998-06-30  Tom Tromey  
20050
 
20051
        * decl.c (init_decl_processing): Functions are now named
20052
        _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
20053
 
20054
1998-06-29  Per Bothner  
20055
 
20056
        * java-tree.h (load_class):  Add prototype.
20057
        * class.c (is_compiled_class):  Add missing arg to load_class.
20058
        * expr.c (expand_java_NEW):  Call load_class.
20059
        * parse.y (process_import):  Removed bogus use of void return value.
20060
 
20061
1998-06-25  Per Bothner  
20062
 
20063
        * decl.c, java-tree.h (soft_athrow_node):  Renamed to soft_node.
20064
        Function name is "_Jv_Throw" instead of "soft_athrow".
20065
        * decl.c, java-tree.h (soft_new_node):  Renamed to alloc_object_node.
20066
        Function name is "_Jv_AllocObject" instead of "soft_new".
20067
        Takes an extra parameter (object size).
20068
        * expr.c:  Update calls.
20069
 
20070
1998-06-24  Per Bothner  
20071
 
20072
        * lex.c (java_get_line_col):  Handle end-of-file.
20073
        * except.c (expand_end_java_handler):  Handle null type (i.e. finally).
20074
 
20075
1998-06-24  Andrew MacLeod  
20076
 
20077
        * lang.c (lang_init): Make -fexceptions the default.
20078
        * except.c (maybe_start_try, maybe_end_try): Don't do anything if
20079
        exception handling is not turned on.
20080
 
20081
1998-06-23  Andrew MacLeod  
20082
 
20083
        * lang.c (flag_new_exceptions): Make this this default.
20084
        * decl.c (end_java_method): Call emit_handlers.
20085
        * except.c (method_init_exceptions): Set language code and version.
20086
        (expand_start_java_handler): Enable exception, and call
20087
        expand_eh_region_start.
20088
        (expand_end_java_handler): Enable exception, and set up catch blocks.
20089
        (emit_handlers): New routine to generate the saved handlers.
20090
        * java-except.h (emit_handlers): Add prototype.
20091
 
20092
1998-06-12  Per Bothner  
20093
 
20094
        We used to have three different representations of the constant pool:
20095
        the CPool structure, the tree_constant_pool, and the constructures
20096
        used to build the Class object (which may need class and string
20097
        constants) in compiled code.  None were appropriate for compiling
20098
        to .class files, so I did a major overhaul.
20099
 
20100
        First, the tree_constant_pool array was removed.  Things were
20101
        modified to the CPool structure in the JCF could be used.
20102
        Second, a "capacity" field was added to the CPool, and functions
20103
        written to search for a matching constant, adding one if not found.
20104
        The code that generated the Class object was changed to use a CPool.
20105
        The actual TREE_LISTs used to build the CONSTRUCTORs used for
20106
        the static Class object are now only in build_constants_constructor.
20107
        Finally, I wrote code which can generate a .class file (including its
20108
        constant pool) from the RECORD_TYPE of a class.  This is a big step
20109
        on the way to compiling Java source into .class files.
20110
 
20111
        * jcf-write.c:  New file. Writes out a RECORD_TYPE as a .class file.
20112
        * Makefile.in (JAVA_OBJS):  Added jcf-write.o.
20113
 
20114
        * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
20115
        CONSTANT_ResolvedString, CONSTANT_ResolvedClass):  New macros.
20116
        (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
20117
        COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
20118
        (COMPONENT_REF_CLASS):  Replaced by COMPONENT_REF_CLASS_INDEX.
20119
        (lang_type):  Removed constant_pool field.
20120
        * jcf.h (CPool):  Renamed size to count.  Added field capacity.
20121
        (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
20122
        CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT):  New macros.
20123
        Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
20124
 
20125
        * constants.c (current_constant_pool_tags, current_constant_pool_data,
20126
        current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
20127
        * constants.c (build_constants_constructor):  Use new outgoing_cpool.
20128
        (set_constant_entry, find_constant1, find_constant2,
20129
        find_class_constant, count_constant_pool_bytes, write_constant_pool,
20130
        find_utf8_constant, find_class_or_string_constant):  New functions.
20131
 
20132
        * jcf-parse.c (load_class):  Don't save/restore tree-constant_pool.
20133
        (get_constant):  Use current_jcf.cpool instead of tree_constant_pool.
20134
        (give_name_to_class, get_class_constant):  Likewise.
20135
        * jcf-parse.c, java-tree.h (tree_constant_pool):  Removed.
20136
        (get_name_and_type_constant, get_ref_constant):  Removed.
20137
        * parse.h (parser_ctxt):  Remove field tree_constant_pool.
20138
        * parse.y:  Don't save/restore tree_constant_pool.
20139
        * verify.c (verify_jvm_instructions):  Update for new approach.
20140
        * expr.c (expand_invoke, expand_java_field_op): Likewise.
20141
 
20142
        * lang-options.h:  Added -femit-class-file, -femit-class-files.
20143
        * lang.c (flag_emit_class_files), java-tree.h:  New flag.
20144
        (lang_f_options):  Added "emit-class-file(s)".
20145
 
20146
        * expr.c (build_java_arrayaccess):  Generate more efficient array
20147
        bounds checking, by using unsigned compare.
20148
 
20149
        * expr.c (expand_invoke):  Re-arrange error checks to make more robust.
20150
 
20151
1998-06-10  Alexandre Petit-Bianco  
20152
 
20153
        * parse.h: New comment on the handling of unresolved type
20154
        identifiers. JDEPs are now part of the jdep_code enum.
20155
        (typedef struct jdep): Now use enum jdep_code or int, depending on
20156
        availability. Both are narrowed down to an 8 bits bitfield.
20157
        (CALL_EXPR_PRIMARY): Fixed comment.
20158
 
20159
1998-06-10  Tom Tromey  
20160
 
20161
        * Make-lang.in (java): Added gjavac and jvgenmain.
20162
        (java.start.encap): Depend on gjavac.
20163
        (java.rest.encap): Depend on jvgenmain.
20164
 
20165
        * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
20166
        (JAVA_CROSS_NAME): Likewise.
20167
        (java.all.build): Depend on jvgenmain and gjavac.
20168
        (java.all.cross): Depend on jvgenmain and gjavac-cross.
20169
        (jvgenmain$(exeext)): New target.
20170
        (java.install-common): Wrote.
20171
        * config-lang.in (compilers, stagestuff): Added gjavac and
20172
        jvgenmain.
20173
 
20174
1998-06-10  Dave Brolley  
20175
 
20176
        * lang.c (lang_decode_option): New argc/argv interface.
20177
 
20178
1998-06-09  Alexandre Petit-Bianco  
20179
 
20180
        * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
20181
        * decl.c (build_decl_no_layout): New function.
20182
        * expr.c (java_lang_expand_expr): Layout declarations found in
20183
        blocks before they're pushed.
20184
        * jcf-parse.c (load_class): Save current line when parsing class
20185
        file.
20186
        (parse_source_file): Register class before expanding their
20187
        methods.
20188
        * lang.c (put_decl_node): Produce `null' when `void *' is
20189
        processed.
20190
        * lex.c (static tree wfl_op): New static global, for error report
20191
        on casts.
20192
        (java_init_lex): wfl_operator and wfl_op initialized
20193
        here. Filename caching added for wfl_op. Return wfl_op when `(' is
20194
        parsed.
20195
        * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
20196
        patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
20197
        build_unresolved_array_type): New static function definitions.
20198
        (build_decl_no_layout): New extern function declared.
20199
        (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
20200
        faulty modifier exists.
20201
        (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
20202
        (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
20203
        (UNARY_PLUS_EXPR): New fake operator.
20204
        (struct parser_ctxt): New field osb_number.
20205
        * parse.y (static tree wfl_operator): New static WFL for operator
20206
        bound error messages.
20207
        (DECR_TK, INCR_TK): Moved.
20208
        (OP_TK): Tagged .
20209
        (array_type:): Now call build_unresolved_array_type.
20210
        (dim_expr:): Count the number of '[' seen.
20211
        (post_increment_expression, post_decrement_expression,
20212
        pre_increment_expression, pre_decrement_expression,
20213
        unary_expression_not_plus_minus, unary_expression:): Actions are
20214
        now building the corresponding unary expressions.
20215
        (cast_expression:): Actions are now building cast expressions.
20216
        (build_unresolved_array_type): New function.
20217
        (create_interface): Reset the number of declared interfaces.
20218
        (create_class): Likewise.
20219
        (method_header): Methods declared within the scope of an interface
20220
        are now implicitly set public and abstract.
20221
        (java_complete_class): Variable's and parameter's type are patched
20222
        with a promoted type.
20223
        (declare_local_variables): Resolved non builtin types are promoted
20224
        before being used to build a variable decl. Removed type patch
20225
        posted on variable initialization statement.
20226
        (source_start_java_method): Use build_decl_no_layout to build the
20227
        decl of a parameter of incomplete type.
20228
        (java_register_parsed_class): Process interfaces too. Call
20229
        rest_of_decl_compilation on each processed class declarations.
20230
        (java_complete_expand_methods): Don't attempt to expand things in
20231
        interfaces.
20232
        (java_complete_tree): Process CONVERT_EXPR, even though it always
20233
        has a type. Propagate error_mark_node to node's type too. Promote
20234
        method's call argument type and return error_mark_node if
20235
        argument's completion didn't work. MODIFY_EXPR can have a WFL as a
20236
        RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
20237
        handle unary operator nodes.
20238
        (build_assignment): Added comment.
20239
        (print_int_node): New function.
20240
        (patch_assignment): New second argument. New error handling. Use
20241
        print_int_node. Handle references. Use can_cast_to_p to issue
20242
        different error message according to the context and check upon
20243
        the initialization of the RHS.
20244
        (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
20245
        (operator_string): Handle more operators.
20246
        (patch_binop): No longer use a function static
20247
        wfl_operator. Improved error message on shift distance.
20248
        (build_unaryop, build_incdec, build_cast, patch_unaryop,
20249
        patch_cast): New functions.
20250
 
20251
1998-06-05  Per Bothner  
20252
 
20253
        * jvspec.c:  New file.
20254
        * Make-lang.in:  New rules to build gjavac from jvspec.c and ../gcc.c.
20255
 
20256
        * java-tree.h (identifier_subst):  Add declaration.
20257
 
20258
1998-06-04  Tom Tromey  
20259
 
20260
        * jvgenmain.c (main): Generate call to JvRunMain.
20261
 
20262
        * class.c (make_class_data): Push value for "sync_info" field.
20263
        * decl.c (init_decl_processing): Push "sync_info" field.
20264
 
20265
1998-06-03  Per Bothner  
20266
 
20267
        * typeck.c (build_java_array_type):  Set TYPE_NAME to actual
20268
        Java (source) name, not signature.
20269
        Set TYPE_ALIGN to (at least) that of element_type.
20270
 
20271
1998-06-02  Per Bothner  
20272
 
20273
        * class.c:  Moved classname-mangling-rekated code to ...
20274
        * mangle.c:  ... this new file.
20275
        * jvgenmain.c:  New program (needs mangle.c) to generate main program.
20276
        * Makefile.in:  Update for above changes.
20277
 
20278
1998-06-01  Alexandre Petit-Bianco  
20279
 
20280
        * expr.c (truthvalue_conversion): Convert integer and floating
20281
        point value to their truth value.
20282
        * lex.c (java_lex): Handle the `null' literal.
20283
        * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
20284
        (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
20285
        ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
20286
        New macros.
20287
 
20288
        * parse.y: Reorganization/documentation on token declaration.
20289
        (binop_lookup[]): New added new tree codes.
20290
        (relational_expression): Build corresponding binary operators.
20291
        (equality_expression, conditional_and_expression,
20292
        conditional_or_expression): Likewise.
20293
        (java_complete_class): Fix crash in debug message.
20294
        (java_complete_tree): Check initialization of method call
20295
        arguments. Further bogus node evaluation to detect more error
20296
        during assignments. Handles more binary operators.
20297
        (patch_assignment): Use DECL_P.
20298
        (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
20299
        code.
20300
        (operator_string): Handle more case. Compacted source.
20301
        (patch_binop): Changed function comment. Checking for
20302
        uninitialized first operand takes the compound assignment into
20303
        account and uses DECL_P. Checking for uninitialized second operand
20304
        delayed to routine's end. Use macros to issue type bound error
20305
        messages and issue messages on both operands if their types are
20306
        different. Force fixed type into node. Handle all binary
20307
        operators.
20308
 
20309
1998-05-27  Alexandre Petit-Bianco  
20310
 
20311
        * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
20312
        * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
20313
        build operator node and return tokens.
20314
        * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
20315
        * parse.h (java_complete_tree): Changed returned type in prototype.
20316
        (build_method_invocation, build_assignment, patch_assignment,
20317
        patch_binop): New static function declarations.
20318
        (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
20319
        BUILD_EXPR_WFL): New macros.
20320
        * parse.y (enum tree_code binop_lookup[]): New static for token to
20321
        TREE_CODE lookup.
20322
        (%union): Parser union has new sub-structure `operator'.
20323
        (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
20324
        PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
20325
        ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
20326
        ASSIGN_ANY_TK): Tokens tagged `operator'.
20327
        (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
20328
        AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
20329
        MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
20330
        REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
20331
        (assignment_operator:): Rule tagged `operator'.
20332
        (expression_statement:): Re-installed default rule.
20333
        (method_invocation:): Sub rules call build_method_invocation.
20334
        (postfix_expression:): Don't attempt to resolve name here. Just
20335
        return an ID.
20336
        (multiplicative_expression:): Sub-rules build corresponding binop
20337
        expression node.
20338
        (additive_expression:, shift_expression:, and_expression:,
20339
        exclusive_or_expression:, inclusive_or_expression:): Likewise.
20340
        (assignment:): Sub rule invoke build_assignment.
20341
        (assignment_operator:): Default rules on sub rules.
20342
        (force_error): Added documentation on this variable.
20343
        (declare_local_variables): Build initialization calling
20344
        build_assignment.
20345
        (expand_start_java_method): Removed unused rtx declaration. Mark
20346
        arguments as already initialized.
20347
        (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
20348
        (java_complete_expand_methods): Don't process next method if
20349
        completion of the previous one triggered errors.
20350
        (java_complete_expand_method): Call source_end_java_method if no
20351
        error were found during completion.
20352
        (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
20353
        locals declaratilon. Handle names found within a class. Return
20354
        error_mark_node when things aren't found.
20355
        (patch_method_invocation_stmt): Return error_mark_node on failures.
20356
        (patch_invoke): Removed unused local. Return the correct node.
20357
        (java_complete_tree): Now returns a value. The BLOCK section binds
20358
        local identifiers and the type of a BLOCK is now void. Assign the
20359
        result of operand completion on COMPOUND_EXPR. Assign the
20360
        encapsulated node of a WFL to the result of its completion, except
20361
        when the node is an identifier. Now handle MODIFY_EXPR and several
20362
        binary operators. Return error_mark_node on errors.
20363
        (build_method_invocation, build_assignment, patch_assignment,
20364
        build_binop, operator_string, patch_binop): New functions.
20365
        * typeck.c (binary_numeric_promotion): New function.
20366
 
20367
1998-05-21  Per Bothner  
20368
 
20369
        * class.c (identifier_subst):  New convenience wrapper for ident_subst.
20370
        Replace most uses of ident_subst by identifier_subst.
20371
 
20372
        * class.c (push_class_static_dummy_field):  Removed function.
20373
        (build_class_ref):  Find Class object decl by looking up "CNAME.class",
20374
        instead of looking got "class" static field.  Create that decl here.
20375
        (class_identifier_node):  Removed;  no longer needed.
20376
        (init_class_processing):  Don't init class_identifier_node.
20377
        * jcf-parse.c (jcf_parse):  Don't call push_class_static_dummy_field.
20378
        Do nreverse 0 times (instead of twice) for Object and Class.
20379
        * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
20380
 
20381
1998-05-20  Per Bothner  
20382
 
20383
        * jcf-parse.c (parse_class-file):  Set lino to smallest line number,
20384
        while initializing linenumber_count and linenumber_table.
20385
        Do it before init_function_start (which calls emit_line_note).
20386
        * expr.c (expand_byte_code):  Don't need to clear lineno here.
20387
 
20388
1998-05-18  Tom Tromey  
20389
 
20390
        * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
20391
        then mangle number as _N_.
20392
 
20393
        * class.c (mangle_class_field): New function.
20394
        (build_class_ref): Set assembler name of class reference using
20395
        mangle_class_field.
20396
        (push_class_static_dummy_field): Likewise.
20397
 
20398
1998-05-17  Michael Tiemann 
20399
 
20400
        * parse.y (source_start_java_method): Use TREE_SET_CODE instead
20401
        of assigning to TREE_CODE.  The latter method exploits a feature
20402
        of GCC that is not ANSI compliant.
20403
 
20404
1998-05-12  Alexandre Petit-Bianco  
20405
 
20406
        * decl.c (pushdecl_force_head): New function.
20407
        (pushlevel): Removed conditional printf.
20408
        (complete_start_java_method): Don't enter local variable scope if
20409
        function is compiled from source code.
20410
        * expr.c: parse.h now included
20411
        (java_lang_expand_expr): New function.
20412
        * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
20413
        printf. Terminate buffer when doing directories.
20414
        * jcf-parse.c (parse_source_file): Call lang_init_source before
20415
        parsing and before code generation.
20416
        * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
20417
        use printf if the macro is defined.
20418
        * lang.c (lang_init): Install lang_expand_expr hook on
20419
        java_lang_expand_expr.
20420
        (java_dummy_print): New function.
20421
        (lang_init_source): New function.
20422
        * lex.c (java_lex): Remember location of an opening brace at the
20423
        second nesting level.
20424
        (java_is_eol): Unget character seen after a CR if it is EOF.
20425
        * parse.h: Now includes lex.h
20426
        (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
20427
        printf if the macro is defined.
20428
        (expand_start_java_method, build_expr_block, enter_block,
20429
        exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
20430
        New static function declarations.
20431
        (pushdecl_force_head): New extern function declaration.
20432
        (INCOMPLETE_TYPE_P): New macro.
20433
        (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
20434
        (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
20435
        BLOCK_EXPR_ORIGIN): New macros.
20436
        (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
20437
        DECL_SOURCE_LINE_LAST): New macros.
20438
        (struct parser_ctxt): Removed field current_method_decl, redundant
20439
        with the field current_function_decl. Added fields
20440
        first_ccb_indent1 and pending_block.
20441
        * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
20442
        BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
20443
        tagged 
20444
        (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
20445
        (compilation_unit:): Cosmetic on sub rule.
20446
        (type_declaration:): Cosmetic on sub rules. Added an error rule.
20447
        (variable_initializer:): Installed default rule on expression:.
20448
        (method_declaration:): method_header: starts a new
20449
        method. method_body: installs the function body, absorbs blocks
20450
        emitted for temporary variable scopings, pops function's body block
20451
        and merges function's last statement lineno in DECL_SOURCE_LINE.
20452
        (method_body:): Installed default rules.
20453
        (block:): Call enter_block when an opening brace is seen.  Absorb
20454
        scoping blocks and call exit_block when a closing brace is seen.
20455
        (block_statement:): Cosmetic changes.
20456
        (method_invocation:): Create WFL around CALL_EXPR node.
20457
        (patch_stage): Added comment around definition.
20458
        (method_header): Try to use first_ccb_indent1 as the first line of
20459
        the method, so BP debug info are emitted at the first opening
20460
        brace of the function. If the function has no body, use the
20461
        location of the function's name. Override currently defined method
20462
        name with the matching WFL so we can point redefinition errors
20463
        using the location where the function's name was declared.
20464
        (check_abstract_method_header): Interprets DECL_NAME as an
20465
        identifier or as a WFL, accordingly.
20466
        (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
20467
        (check_method_redefinition): Use DECL_NAME as a WFL. Extract
20468
        location and name information out of it and reinstall DECL_NAME to
20469
        its original identifier node value.
20470
        (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
20471
        function's source code).
20472
        (read_import_dir): Test the value returned by find_class and issue
20473
        a fatal accordingly.
20474
        (declare_local_variables): Push a new block for the scope of the
20475
        new variable(s) if code has been already generated at that nesting
20476
        level. Pinpoint redefinition errors using the variable id
20477
        WFLs. Generate initialization code if necessary. If the variable
20478
        type is incomplete, register a patch on its decl.
20479
        (source_start_java_method): Rewritten. Define a new block for the
20480
        function's parameters. Build parameter decl out of function's
20481
        arguments and register them for a patch if their types are
20482
        incomplete.
20483
        (expand_start_java_method): Includes the part of
20484
        source_start_java_method that was pushing the parameter decls and
20485
        completing the method start code.
20486
        (source_end_java_method): Removed call the expand_end_bindings and
20487
        poplevel (already taken care of). Reinstall function's arguments
20488
        and get function's last line of code before calling
20489
        expand_function_end.
20490
        (java_method_add_stmt): New comment before the function's
20491
        code. Complement the second operand of the current COMPOUND_EXPR
20492
        if necessary.
20493
        (java_complete_expand_methods): Don't generate debug info on line
20494
        zero when expanding a generated constructor.
20495
        (java_complete_expand_method): Set start and end line numbers for
20496
        a artificially generated constructor to one and manually call
20497
        enter_block and exit_block when defining it. For all methods:
20498
        expand function's start calling the new expand_start_java_method
20499
        and invoke java_complete_tree on the effective method's body, if
20500
        any.
20501
        (resolve_expression_name): Now use lookup_name_in_blocks to search
20502
        local variable decls and print out an error when variables are
20503
        undefined.
20504
        (patch_method_invocation_stmt): Inserted comment before the
20505
        function's code.
20506
        (lookup_method_invoke): Chain method's arguments using chainon
20507
        with the current arg list as a second argument. Inserted missing
20508
        IDENTIFIER_POINTER when reporting an error on methods not found.
20509
        (refine_accessible_methods_list): Don't retain constructors.
20510
        (patch_arguments): Function removed.
20511
        (java_complete_tree): Inserted comment before the function's
20512
        code. New case for BLOCKs. Moved the WFL case a bit
20513
        further. Complete function's arguments.
20514
        (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
20515
        maybe_absorb_scoping_blocks): New functions.
20516
 
20517
1998-04-27  Alexandre Petit-Bianco  
20518
 
20519
        * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
20520
        previously set.
20521
        * jcf-parse.c (parse_source_file, java_error_count): New forward
20522
        and extern declarations.
20523
        (java_parse_abort_on_error): Macro moved.
20524
        (jcf_parse_source): fatal called if fopen fails. Now calls
20525
        parse_source_file.
20526
        (parse_source_file): New parse_only parameter. Reflects the
20527
        elimination of the second pass.
20528
        (yyparse): parse_source_file called with argument set to 0.
20529
        * jcf.h (JCF_ZERO): Sets java_source to zero.
20530
        * lex.c (java_init_lex): pass argument is gone. Function modified
20531
        to be called once during the analysis of a file.
20532
        (java_unget_unicode): Fixed typo in fatal message.
20533
        (java_get_line_col): Likewise.
20534
        (java_lval): Likewise. String literals no longer built during
20535
        second pass.
20536
        * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
20537
        account.
20538
        * parse.h (MODIFIER_WFL): New macro.
20539
        (parse_check_super, parser_check_super_interface): Now return int.
20540
        (parser_chain_incomplete_item, not_builtin_p,
20541
        complete_method_decl): Declarations removed.
20542
        (build_method_invocation_stmt, build_invoke): Renamed using the
20543
        `patch' instead of `build'
20544
        (register-incomplete_type, obtain_incomplete_type,
20545
        java_complete_tree, java_complete_expand_method,
20546
        unresolved_type_p, create_jdep_list): New function declarations.
20547
        (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
20548
        END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
20549
        (jdep): New typedef on new struct _jdep.
20550
        (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
20551
        JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
20552
        JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
20553
        JDEP_RESOLVED_P): New macros.
20554
        (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
20555
        JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
20556
        JDEP_VARIABLE): New enum values and jdep kinds.
20557
        (jdeplist): New typedef on struct _jdeplist.
20558
        (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
20559
        macros.
20560
        (CALL_EXPR_PRIMARY): New macro.
20561
        (struct parser_ctxt): Fields java_pass, current_method_decl,
20562
        method_decl_list deleted. New field jdeplist.
20563
        (INCOMPLETE_P): Macro deleted.
20564
        * parse.y (single_type_import_declaration:): Removed pass switch.
20565
        (type_import_on_demand_declaration): Likewise.
20566
        (field_declaration:): Removed pass switch on all sub rules.
20567
        (class_declaration:): Call the complete_class_decl removed on
20568
        class_body rules.
20569
        (method_declaration:): Removed second pass switch. No longer chain
20570
        methods decl when method_header reduced.
20571
        (method_header:): Sub rules no longer depend on pass switch.
20572
        (method_declarator:): Likewise.
20573
        (method_body:): Likewise.
20574
        (abstract_method_declaration:): Likewise.
20575
        (block_statement:): Likewise.
20576
        (local_variable_declaration:): Likewise.
20577
        (argument_list:): Likewise.
20578
        (method_invocation:): Likewise. Call to build_method_invocation_stmt
20579
        removed. Partial CLASS_EXPR tree node built instead.
20580
        (postfix_expression:): Removed pass switch on all sub rules.
20581
        (java_pop_parser_context): Free classd_list content.
20582
        (yyerror): Call obstrack_grow0 to finalize error message.
20583
        (check_class_interface_creation): Comment modified to reflect new
20584
        returned value meaning. Removed second pass switch. Return 1 if an
20585
        error was found, 0 otherwise. Adjust pointer on filename if a
20586
        leading path separator was found.
20587
        (maybe_create_class_interface_decl): Removed first pass switch
20588
        when linking the class decl to the class_list. Install a new
20589
        jdep_list for the class.
20590
        (add_superinterfaces): List of unresolved interfaces is
20591
        gone. Unresolved interfaces are directly added to the current
20592
        dependencies list.
20593
        (create_interface): Second pass shortcut removed.
20594
        ctpx->modifier_ctx access through MODIFIER_WFL.
20595
        (create_class): Second pass shortcut removed. Call to
20596
        register_incomplete_type replaces the call to
20597
        parser_chain_incomplete_item.
20598
        (complete_class_decl): Function removed.
20599
        (duplicate_declaration_error): New way of retrieving redeclared
20600
        item type.
20601
        (register_fields): Call to lookup_modifier_cl replaced by
20602
        MODIFIER_WFL. New way of handling unresolved type, using
20603
        unresolved_type_p and obtain_incomplete_type.
20604
        register_incomplete_type replaces call to parser_chain_incomplete_item.
20605
        (patch_stage): New static global variable.
20606
        (method_header): New way of handling unresolved type, using
20607
        unresolved_type_p and obtain_incomplete_type. patch_stage used to
20608
        indicates that the method decl needs to be patched.
20609
        (check_abstract_method_header): Call to lookup_modifier_cl
20610
        replaced by MODIFIER_WFL.
20611
        (method_declarator): Incomplete argument type are registered
20612
        calling register_incomplete_type. Patch on the declared method is
20613
        issued in that case.
20614
        (unresolved_type_p): New function.
20615
        (parser_check_super_interface): New comment to reflect function's
20616
        modified returned type (int). Function and has a new argument
20617
        this_wfl. Call to parse_error_context uses this_wfl instead of
20618
        relying on lookup_cl.
20619
        (parser_check_super): Comment reflects function's new returned
20620
        type (int). Function returns nonzero value on error.
20621
        (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
20622
        register_incomplete_type, jdep_resolve_class): New functions to
20623
        handle incomplete types in declarations.
20624
        (java_complete_class): Rewritten to work with the new incomplete
20625
        type handling scheme.
20626
        (complete_class_report_errors): Likewise.
20627
        (complete_method_decl): Removed: it jobs is now handled by
20628
        java_complete_class.
20629
        (do_resolve_class): Class loaded in not already loaded and not
20630
        found in Java source code.
20631
        (java_check_regular_methods, java_check_abstract_methods): Don't
20632
        call complete_method_decl anymore.
20633
        (lookup_modifier_cl, not_builtin_p): Functions deleted.
20634
        (read_import_dir): Got rid of the pass number dependency.
20635
        (declare_local_variables): New handling of unresolved types (patch
20636
        issued).
20637
        (source_start_java_method): New parameter level. Function called
20638
        with level set to 1 when argument types are potentially
20639
        unresolved.  Called to complete the job with level set to 2 once
20640
        types are complete.
20641
        (source_end_java_method): Call to permanent_allocation
20642
        removed. Waiting to be replaced by a more suitable obstack
20643
        management.
20644
        (java_complete_expand_methods, java_complete_expand_method,
20645
        java_expand_finals): New functions.
20646
        (build_method_invocation_stmt): Renamed
20647
        patch_method_invocation_stmt. Extracts function call expression
20648
        (wfl) and arguments (args) from CALL_EXPR tree operands.
20649
        (build_invoke): Renamed patch_invoke. Fixed typo in fatal
20650
        call. Patch the function and argument operand of the CALL_EXPR
20651
        tree argument.
20652
        (patch_argument, java_complete_tree): New functions.
20653
 
20654
1998-04-20  Per Bothner  
20655
 
20656
        Recover from missing fields and methods (i.e. error instead of fatal).
20657
        * decl.c, java-tree.h (TYPE_identifier_node):  New global constant.
20658
        * expr.c (expand_invoke):  Recover from missing method.
20659
        (expand_java_field_op):  Recover from missing field.
20660
        Inline references to java.lang.{Integer,Char,...}.TYPE.
20661
        * typeck.c (get_type_from_signature), java-tree.h:  New function.
20662
        * class.c (add_method):  Use get_type_from_signature.
20663
        (build_class_ref):  Handle a class that was not found.
20664
        * typeck.c (convert):  Handle conversion to pointers (for convenience).
20665
        * verify.c (verify_jvm_instructions):  Use get_type_from_signature
20666
        instead of lookup_field to handle missing fields.
20667
 
20668
        * jcf-parse.c (process_zip_dir):  Set java_source.
20669
 
20670
1998-04-20  Brendan Kehoe  
20671
 
20672
        * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
20673
 
20674
1998-04-14  Alexandre Petit-Bianco  
20675
 
20676
        * jcf-parse.c (load_class): Don't change input_filename before
20677
        calling jcf_parse_source (but still do it before calling
20678
        jcf_parse).
20679
        (jcf_parse_source): Assign input_filename after having saved the
20680
        parser context.
20681
        * lex.c (java_init_lex): Chain a WFL node to the import on demand
20682
        list. ctxp->modifier_ctx zeroed according to its new
20683
        definition. ctxp->filename initialized. Removed
20684
        JAVA_MODIFIER_CTX_UNMARK.
20685
        (java_unget_unicode): Update the character based column position.
20686
        (java_allocate_new_line): ref_count not used anymore. Always free
20687
        ctxp->p_line. Initialize c_line->char_col to 0.
20688
        (java_get_unicode): Update the character based column position.
20689
        (java_lex): Use ctxp->elc to store current position in source
20690
        file, at the beginning of the parsed token. Set modifier_ctx entry
20691
        corresponding to the parse modifier to a WFL node. Return a WFL
20692
        node when an identifier is parsed.
20693
        (java_lex_error): Now uses ctxp->elc to store current position in
20694
        source.
20695
        (build_wfl_node, java_is_eol, java_get_line_col): New functions.
20696
        * lex.h (build_wfl_node): New function definitions.
20697
        (struct java_line): ref_count and next fields are gone. New field
20698
        char_col.
20699
        (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
20700
        JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
20701
        (JAVA_COLUMN_DELTA): New macro.
20702
        (java_lc): New typedef on new struct _java_lc.
20703
        * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
20704
        (parse_error_context, parse_warning_context): Changed prototypes.
20705
        (java_get_line_col): Added as an available global function.
20706
        (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
20707
        (IC_DECL): Replaced by macro IC_TYPE
20708
        (DEPEND_WFL): New macro.
20709
        (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
20710
        wrong modifier.
20711
        (exit_java_complete_class): Removed a commented out statement.
20712
        (struct parser_ctxt): Added comments on fields. modifier_ctx is
20713
        now an array of tree nodes. Deleted fields line_list and
20714
        e_line. New field elc, to replace e_line.
20715
        * parse.y (array_type:): Build WFL node.
20716
        (qualified_name:): Build a single WFL node out of two. Retain
20717
        the location information of the first node in the resulting node.
20718
        (package_declaration:): Use package name as a WFL node
20719
        (single_type_import_declaration:): Use imported name as a WFL node.
20720
        (type_import_on_demand_declaration:): Use root of the imported
20721
        packages as a WFL node.
20722
        (field_declaration:): Removed unused local variable cl.
20723
        (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
20724
        (yyerror): New static elc. Removed static error_line, error_pos.
20725
        New local code_from_source. Save ctxp->elc into elc at the first
20726
        pass. Call java_get_line_col to get a string of the line where
20727
        the error occurred.
20728
        (debug_line): Removed static function.
20729
        (parse_error_context, parse_warning_context): Parameter cl is now
20730
        a WFL node. Use its value to initialize ctxp->elc.
20731
        (redefinition_error): Parameter cl is now a WFL node.
20732
        (parse_add_interface): New parameter wfl. No longer call
20733
        lookup_cl, use wfl instead.
20734
        (check_class_interface_creation): Parameter cl is now a WFL node.
20735
        (maybe_create_class_interface_decl): Likewise.
20736
        (add_superinterfaces): New function.
20737
        (create_interface): Removed local cl, node, super_decl,
20738
        super_decl_type.  Function now uses id as a WFL node. Better
20739
        warning/error report on obsolete or forbidden mix of
20740
        modifiers. Now calls add_superinterfaces to register interfaces.
20741
        (create_class): Removed local cl, node. Local variable id is used
20742
        as a WFL node. Better error report on forbidden modifier
20743
        mix. Uses add_superinterfaces to register interfaces.
20744
        (find_field): Argument cl is now a WFL node. Now store the WFL
20745
        node of a fields that needs to be checked for their
20746
        initialization.
20747
        (method_header): Local variable node non longer used. Local
20748
        variable id replaces cl.
20749
        (check_modifiers_consistency): Local variable cl is now a WFL
20750
        node.
20751
        (method_declarator): Local variable cl replaced by parameter id.
20752
        (parser_qualified_name): Now uses parameter name as a WFL node.
20753
        (parser_check_super_interface): New parameter wfl, for achieve
20754
        greater accuracy during error reports.
20755
        (parser_chain_incomplete_item): New parameter named location. Used,
20756
        along the decl, to construct the incomplete item node.
20757
        (java_complete_class): resolve_class now uses WFL node extracted
20758
        from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
20759
        where appropriate.
20760
        (complete_method_decl): Unresolved function's argument types are WFL.
20761
        (resolve_class): Parameter cl is now a WFL node.
20762
        (resolve_and_layout): Likewise.
20763
        (do_resolve_class): Likewise. Try first to use cl and then do the
20764
        lookup on the decl when calling check_pkg_class_access.
20765
        (complete_class_report_errors): Use IC_TYPE in place of
20766
        TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
20767
        instead of doing a lookup over the decl.
20768
        (java_check_final): Use WFL info from field tree list.
20769
        (lookup_cl): Rewritten and returns a statically defined WFL node.
20770
        (lookup_modifier_cl): Now uses information from WFL nodes.
20771
        (process_imports): Likewise.
20772
        (read_import_dir): name and cl arguments replaced by a single WFL
20773
        node. Function modified accordingly.
20774
        (find_in_imports_on_demand): Now uses WFL node.
20775
        (check_pkg_class_access): cl argument is now a WFL node.
20776
        (declare_local_variables): Fixed to use WFL nodes.
20777
        (resolve_expression_name): Likewise.
20778
        (build_method_invocation_stmt): name_combo argument renamed
20779
        wfl. Function modified to use WFL nodes.
20780
        (build_invoke): cl used as a WFL node when calling build_expr_wfl.
20781
        (lookup_method_invoke): cl is now a WFL node. Added missing
20782
        IDENTIFIER_POINTER to class type decl name.
20783
 
20784
1998-04-14  Dave Brolley  
20785
 
20786
        * lang.c (init_parse): Now returns char* containing the filename.
20787
 
20788
1998-04-10  Per Bothner  
20789
 
20790
        * class.c (layout_class):  Mangle repeated arg types to match cc1plus.
20791
 
20792
        * decl.c, java-tree.h (integer_four_node):  New INTEGER_CST node.
20793
        * class.c (make_class_data):  If flag_assume_compiled, initial class
20794
        state is CSTATE_PREPARED; make superclass and interfaces direct
20795
        references, rather than constant pool indexes.
20796
 
20797
1998-04-09  Alexandre Petit-Bianco  
20798
 
20799
        * parser.y: Include flags.h. Removed debug variable pl.
20800
        (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
20801
        (block:): Likewise.
20802
        (labeled_statement_nsi:): Generate debug info when reducing
20803
        expression_statement:.
20804
        (check_pkg_class_access): get_access_flags_from_decl invocation
20805
        fixed for new CLASS_* flags location.
20806
        (source_end_java_method): Save/restore parser context when
20807
        entering/leaving this routine. Restore lineno to its right value
20808
        before calling expand_end_bindings.
20809
        (build_method_invocation_stmt): build_invoke called with the
20810
        current line information.
20811
        (build_invoke): New argument cl. Wrap the function call around a
20812
        wfl node.
20813
        (refine_accessible_methods_list): Changed comment, removed
20814
        unnecessary code.
20815
        * parse.h: Fixed typo in comments.
20816
        (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
20817
        (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
20818
        (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
20819
        parser_ccb_indent.
20820
        * lex.c (java_lex): Record the last closing curly bracket of a
20821
        function.
20822
        * jcf-parse.c (jcf_parse_source): Now calls
20823
        java_check_methods. Clarified comment, fixed typo.
20824
 
20825
1998-04-09  Dave Brolley  
20826
 
20827
        * lang.c (init_parse): Expose for non USE_CPPLIB builds.
20828
        (finish_parse): Expose for non USE_CPPLIB builds.
20829
 
20830
1998-04-08  Jeffrey A Law  (law@cygnus.com)
20831
 
20832
        * lang.c (lang_print_xnode): New function.
20833
 
20834
1998-04-03  Per Bothner  
20835
 
20836
        * decl.c (class_dtable_decl), java-tree.h:  New tree node.
20837
        * class.c (get_dispatch_vector, get_dispatch_table):  New functions
20838
        used to build a class's dispatch table.
20839
        (make_class_data):  Generate dispatch table if flag_assume_compiled.
20840
        Set dtable of class object to address of class_dtable_decl.
20841
 
20842
        * decl.c (int_decl_processing):  Make soft_badarrayindex_node
20843
        be volatile and have side effects - generates better code.
20844
 
20845
        * class.c, expr.c, parse.y:  CLASS_INTERFACE, CLASS_FINAL, etc:
20846
        These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
20847
 
20848
        * expr.c (expand_invoke):  If class is final, method is
20849
        effectively final, so can call it directly.
20850
 
20851
        * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE):  New macros.
20852
 
20853
        * Makefile.in, Make-lang.in:  Add missing $(exeext)s.
20854
 
20855
1998-03-19  Alexandre Petit-Bianco  
20856
 
20857
        * parse.y (build_method_invocation_stmt): Removed extra argument
20858
        to build_invoke.
20859
 
20860
1998-03-16  Alexandre Petit-Bianco  
20861
 
20862
        * expr.c (dtable_indent): Now static global.
20863
        (expand_invoke): Now call invoke_build_dtable and
20864
        build_invokevirtual.
20865
        (invoke_build_dtable, build_invokevirtual): New functions.
20866
        * jcf-io.c (find_class): Defer issuing a warning by setting
20867
        jcf->outofsynch to 1.
20868
        * jcf-parse.c (jcf_out_of_synch): New function.
20869
        (load_class): Test this_jcf.outofsynch flag and call
20870
        jcf_out_of_synch accordingly.
20871
        * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
20872
        comment indentation.
20873
        * lex.c (java_get_unicode): Fixed code indentation.
20874
        (java_lex): Create string literal. Fixed typo. Removed several
20875
        premature obstack_free.
20876
        * parse.h: New enums for name resolution and invocation mode.
20877
        (struct qualification): New data structure.
20878
        (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
20879
        (do_resolve_class, build_method_invocation_stmt,
20880
        breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
20881
        debug_line, identical_subpath_p, invocation_mode,
20882
        refine_accessible_methods_list, build_invoke,
20883
        lookup_method_invoke): New functions declared.
20884
        (build_invokevirtual, invoke_build_dtable, match_java_method,
20885
        build_field_ref, jcf_out_of_synch): New references to external
20886
        functions.
20887
        (struct parse_ctxt): Removed artificial_constructor field.
20888
        * parse.y: (array_type:): Type defined for this rule.
20889
        (class_type:): Installed default rule for interface_type:.
20890
        (array_type:): Now build Java array type.
20891
        (qualified_name:): Now use obstack_grow0.
20892
        (method_declaration:): Skip the artificial constructor added to
20893
        the list, if any.
20894
        (abstract_method_declaration:): Execute the code only during pass 1.
20895
        (block:): Installed default rule in block_statements:.
20896
        (block_statement:): Add the statement to the method during pass 2.
20897
        (statement_expression): Installed default rule for
20898
        method_invocation:.
20899
        (argument_list:): Added code to build the argument list.
20900
        (method_invocation:): Added call to create the method invocation
20901
        node.
20902
        (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
20903
        (debug_line): New function for debug.
20904
        (complete_class_decl): No longer do something during pass 1.
20905
        (method_header): Use BUILD_PTR_FROM_NAME.
20906
        (parser_qualified_classname): Use obstack_grow0. Removed bogus
20907
        obstack_free.
20908
        (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
20909
        function's main comment.
20910
        (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
20911
        classes.
20912
        (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
20913
        (resolve_class): Now works with arrays.
20914
        (do_resolve_class, resolve_and_layout): New functions.
20915
        (java_check_regular_methods): Reverse method list before and after
20916
        having processed it. No longer set ctxp->artificial_constructor.
20917
        (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
20918
        accordingly. Fixed typo in issued error message. Now use
20919
        obstack_grow0.
20920
        (find_in_imports_on_demand): Now use obstack_grow0.
20921
        (declare_local_variables): Use BUILD_PTR_FROM_NAME.
20922
        (source_end_java_method): Call expand_expr_stmt instead of
20923
        expand_expr. Calls it before calling expand_function_end.
20924
        (java_method_add_stmt): Do nothing if errors were found during
20925
        parsing.
20926
        (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
20927
        (build_method_invocation_stmt, build_invoke, invocation_mode,
20928
        lookup_method_invoke, refine_accessible_methods_list,
20929
        qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
20930
        New functions.
20931
        * typeck.c (build_java_signature): Properly end method signature
20932
        if return type skipped.
20933
        (match_java_method): New function.
20934
 
20935
1998-03-16  Per Bothner  
20936
 
20937
        * jcf-io.c (find_classfile):  If USE_JCF_STDIO, fopen in binary mode.
20938
 
20939
1998-02-25  Alexandre Petit-Bianco  
20940
 
20941
        * expr.c (build_invoke_non_interface): New function.
20942
        (methods_ident, ncode_ident): Now static globals.
20943
        (expand_invoke): Use build_invoke_non_interface.
20944
        * java-tree.h (struct lang_decl): New field function_decl_body.
20945
        (DECL_FUNCTION_BODY): New macro.
20946
        * jcf-parse.c (jcf_parse_source): Deeper check before setting
20947
        CLASS_FROM_SOURCE_P.
20948
        (parse_source_file): Fixed typos. Call java_layout_parsed_class
20949
        before starting pass 2. Call to java_generate_parsed_class replaced
20950
        by java_register_parsed_class.
20951
        * lex.c: Fixed typo in header. Some line width related formating.
20952
        * lex.h: Some line width related formating.
20953
        * parse.h (source_end_java_method, resolve_expression_name,
20954
        complete_class_decl, maybe_create_class_interface_decl,
20955
        check_class_interface_creation): New static function declarations.
20956
        (java_layout_parsed_class, java_method_add_stmt): New function
20957
        declarations.
20958
        (struct parser_ctxt): Field mark_class_generate removed. New
20959
        fields class_list and artificial_constructor.
20960
        * parse.y: Fixed typo in header.
20961
        (class_declaration:): Call complete_class_decl when class body
20962
        parsed.
20963
        (method_declaration:): Call source_end_java_method in pass 2 when
20964
        the method body is defined.
20965
        (postfix_expression:): Do expression name resolution on sub-rule
20966
        name during pass 2.
20967
        (create_class, create_interface): Merged common pieces.
20968
        (check_class_interface_creation, maybe_create_class_interface_decl):
20969
        New functions.
20970
        (complete_class_decl): New function.
20971
        (register_fields): Fixed line width related typo.
20972
        (method_header): Correctly skip first argument when fixing
20973
        argument line. Changed the loop.
20974
        (java_check_circular_reference): Now use ctxp->class_list.
20975
        (java_complete_class): Removed start/stop marking.
20976
        (java_check_regular_methods): Now takes a class decl as an
20977
        argument.  Add default constructor if none were encountered.
20978
        (java_check_methods): Now use ctxp->class_list. Changed call to
20979
        java_check_regular_methods.
20980
        (source_start_java_method): Set DECL_ARG_TYPE for each function
20981
        arguments.
20982
        (source_end_java_method, java_method_add_stmt): New functions.
20983
        (java_generate_parsed_class): No longer exists.
20984
        (java_layout_parsed_class, java_register_parsed_class): New functions.
20985
        (resolve_expression_name): New function.
20986
 
20987
1998-02-12  Alexandre Petit-Bianco  
20988
 
20989
        * jcf-parse.c: (parse_source_file): Check on errors after init lex.
20990
        * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
20991
        until pass initializations are done. Call read_import_dir with
20992
        pass set to 0.
20993
        * parse.h: (lookup_modifier_cl): New function declared.
20994
        (INTERFACE_FIELD_MODIFIERS): New macro.
20995
        (OBSOLETE_MODIFIER_WARNING): New macro.
20996
        * parse.y: (register_fields): Class type and current field name in
20997
        local variables. Check modifier(s) if adding field(s) to an interface.
20998
        (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
20999
        and report errors using the faulty modifier line context.
21000
        (lookup_modifier_cl): New function.
21001
        (read_import_dir): Detect and report default import processing
21002
        failure.
21003
 
21004
1998-02-11  Brendan Kehoe  
21005
 
21006
        Add a pair of -fassume-compiled/-fno-assume-compiled options.
21007
        * class.c (is_compiled_class): Return 1 after making sure it
21008
        qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
21009
        * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
21010
        * java-tree.h (flag_assume_compiled): Add decl.
21011
        * lang.c (lang_f_options): Add the flag.
21012
        (flag_assume_compiled): Add decl, default to 0.
21013
 
21014
1998-02-11  Alexandre Petit-Bianco  
21015
 
21016
        * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
21017
        (is_compiled_class): Likewise.
21018
        (layout_class): Likewise.
21019
        (layout_class): Detect and lay out classes defined in source code.
21020
        (interface_of_p, add_interface_do, may_add_interface): New
21021
        function.
21022
        (add_interface): Now use add_interface_do.
21023
        (add_method_1): New function.
21024
        (add_method): Now use add_method_1.
21025
        (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
21026
        (complete_start_java_method): New function.
21027
        (start_java_mehod): Now call complete_start_java_method.
21028
        * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
21029
        (expand_invoke): Likewise and fixed typo.
21030
        *gjava.c: (print_super_field): Use new argument to find_class
21031
        DO_CLASS_FILE.
21032
        (main): Likewise.
21033
        *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
21034
        (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
21035
        QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
21036
        IDENTIFIER_NODE.
21037
        (CLASS_COMPLETE_P): New flag on TYPE_DECL.
21038
        (add_method_1, push_class): New prototypes.
21039
        *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
21040
        *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
21041
        directory where the class was found.
21042
        (find_class): New argument DO_CLASS_FILE. Function find_class
21043
        modified accordingly.
21044
        *jcf-parse.c: (fix_class_path): New function.
21045
        (load_class): Use new VERBOSE argument. load_class now finds and
21046
        loads/parses .class/.java files. Save read_state of current_jcf
21047
        if necessary.
21048
        (java_parser_abort_on_error): New macro.
21049
        (jcf_parse_source, parse_source_file): New function.
21050
        (jcf_parse): Fixed typo.
21051
        (yyparse): Call parse_source_file () only.
21052
        (process_zip_dir): Fixed typo, fix zdir->filename_length when
21053
        writing the real class name back in the zip directory entry.
21054
        (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
21055
        (jcf_figure_file_type): Fixed bogus alloc and bcopy.
21056
        *jcf.h: (typedef struct JCF): New fields java_source and zipd.
21057
        (find_class): Prototype fixed.
21058
        *lex.c: Added 1998 time stamp.
21059
        Removed all static global variables, moved into the parser
21060
        context data structure.. Now include unistd.h if SEEK_SET not
21061
        defined.
21062
        (java_init_lex): Rewritten.
21063
        (java_sneak_unicode): Modified current unicode access in current line.
21064
        (java_unget_unicode): Likewise.
21065
        (java_allocate_new_line): New allocation management.
21066
        (java_read_char): Modified access and storage of unget_utf8_value.
21067
        New way of processing current unicode.
21068
        (java_store_unicode, java_read_unicode): Fixed typo in declaration.
21069
        (java_get_unicode): Now use the parser context.
21070
        (java_lineterminator): Likewise.
21071
        (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
21072
        of the reentrant parser implementation. Function now use the
21073
        parser context data structure and java_lval. Fixed production of
21074
        the float and double constant "out of range" error message. Fixed
21075
        obstack use. Return integer value when hitting a modifier. Now
21076
        return type for TRUE, FALSE and other predefined types. Return
21077
        identifier as a TREE_LIST list containing the current line context
21078
        as the TREE_VALUE sub-node.
21079
        (java_unicode_2_utf8): Fixed typo in declaration.
21080
        (java_lex_error): Now use the parser context data structure.
21081
        *lex.h: Added 1998 time stamp.
21082
        (struct java_line): New fields ref_count and next.
21083
        (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21084
        JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
21085
        (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
21086
        *parse.h: Added 1998 time stamp.
21087
        (java_parse_source_file): Renamed from parse_source_file.
21088
        (YYERROR_NOW, YYNOT_TWICE): Fixed.
21089
        (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
21090
        INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
21091
        JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
21092
        THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
21093
        END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
21094
        CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
21095
        (struct parser_ctxt): New data structure to keep the parser context.
21096
        *parse.y: Added 1998 time stamp, got rid of static global variables.
21097
        (java_error_count, ctxp): New global variables.
21098
        (%union): New value field.
21099
        (numeric_type, integral_type): Rules removed.
21100
        (primitive_type): Rule defined to handle integral, float, double and
21101
        boolean types.
21102
        (qualified_name, package_declaration,
21103
        single_type_import_declaration, type_import_on_demand_declaration,
21104
        modifiers, class_declaration, super, interfaces,
21105
        interface_type_list, class_body, field_declaration,
21106
        field_declaration, variable_declarators, variable_declarator,
21107
        variable_declarator_id, method_declaration, method_header,
21108
        formal_parameter_list, formal_parameter, method_body, block,
21109
        static, interface_declaration, extends_interfaces,
21110
        abstract_method_declaration, local_variable_declarators): Rules now
21111
        define actions.
21112
        (force_error, do_warning): New global statics.
21113
        (push_parser_context, parser_context_save_global,
21114
        parser_context_restore_global, pop_parser_context): New functions.
21115
        (yyerror): Now uses the global parser context. Fixed use of obstack.
21116
        (parse_error, parse_error_context, parse_warning_context,
21117
        java_accstring_lookup, redefinition_error, check_modifiers,
21118
        parser_add_interface, create_interface, create_class, find_field,
21119
        duplicate_declaration_error, register_fields, method_header,
21120
        check_modifiers_consistency, check_abstract_method_header,
21121
        method_declarator, parser_qualified_classname,
21122
        parser_check_super_interface, parser_check_super,
21123
        parser_chain_incomplete_item, java_check_circular_reference,
21124
        layout_class_from_source, java_complete_class,
21125
        complete_method_decl, resolve_class, complete_class_report_errors,
21126
        java_check_final, check_method_redefinition,
21127
        java_check_regular_methods, java_check_abstract_methods,
21128
        java_check_methods, lookup_java_interface_method2,
21129
        lookup_java_method2, lookup_cl, find_name_in_single_imports,
21130
        process_imports, find_in_imports, read_import_entry,
21131
        read_import_dir, find_in_imports_on_demand,
21132
        check_pkg_class_access, not_builtin_p, declare_local_variables,
21133
        source_start_java_method, java_generate_parsed_class): New
21134
        functions.
21135
        *typeck.c: (signature_include_return): New global variable.
21136
        (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
21137
        to add the function returned type in the signature.
21138
 
21139
1998-02-09  Brendan Kehoe  
21140
 
21141
        * jcf-io.c (open_in_zip): Use strncmp and LEN.
21142
 
21143
1998-01-29  Dave Brolley  
21144
 
21145
        * Make-lang.in (java.info): Added.
21146
        (java.install-info): Added
21147
 
21148
1998-01-27  Brendan Kehoe  
21149
 
21150
        * Makefile.in (clean): Also remove java/parse.c.
21151
 
21152
1998-01-26  Brendan Kehoe  
21153
 
21154
        Add a pair of -fbounds-check/-fno-bounds-check options.
21155
        * lang.c (lang_decode_option): Add code to grok arguments.
21156
        (flag_bounds_check): Add decl.
21157
        (lang_f_options): New array w/ the option in it.
21158
        * java-tree.h (flag_bounds_check): Add decl.
21159
        * lang-options.h: New file.
21160
        * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
21161
        of a static macro value.
21162
        (JAVA_ARRAY_EXCEPTION): Delete macro.
21163
 
21164
1998-01-23  Per Bothner  
21165
 
21166
        * typeck.c (build_java_array_type):  Fix two bugs in previous change.
21167
        * expr.c (build_anewarray):  Add missing promote_type.
21168
 
21169
1998-01-22  Per Bothner  
21170
 
21171
        Add array types with known length to optimize bounds checking.
21172
        * typeck.c (build_java_array_type):  Take length parameter.
21173
        (java_array_type_length, build_prim_array_type):  New functions.
21174
        * java-tree.h:  Update for new functions.
21175
        * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
21176
        * class.c:  Use build_prim_array_type.
21177
        * expr.c (can_widen_reference_to):  Handle known-length array types.
21178
        (verify_jvm_instructions):  Keep track of integer push instructions
21179
        followed by newarray/anewarray, so we can build known-length arrays.
21180
        (JAVA_ARRAY_DATA_OFFSET):  Replace by ...
21181
        (java_array_data_offset):  New function.
21182
        (build_java_array_length_access):  New function.  Optimize if constant.
21183
        (build_java_arrayaccess):  Constant fold bounds check.
21184
        (expand_java_newarray, expand_java_anewarray):  Replaced by ...
21185
        (build_newarray, build_anewarray):  New functions.
21186
        (ARRAY_NEW_NUM, ARRAY_NEW_PTR):  Use build_{a,}newarray.
21187
        * verify.c (merge_types):  Handle known-lengh array types.
21188
 
21189
1998-01-19  Per Bothner  
21190
 
21191
        * expr.c (expand_byte_code):  Fix performace bug, which caused
21192
        searching linenumber_table to be linear rather than constant.
21193
 
21194
1997-12-12  Per Bothner  
21195
 
21196
        * Makefile.in (BISON, BISONFLAGS):  Add missing macros.
21197
 
21198
        * decl.c, java-tree.h (soft_fmod_node):  New global.
21199
        * decl.c (init_decl_processing):  Define __builtin_fmod.
21200
        * expr.c (build_java_binop):  Implement TRUNC_MOD_EXPR for REAL_TYPE
21201
        using __builtin_fmod.
21202
 
21203
1997-12-04  Alexandre Petit-Bianco  
21204
 
21205
        * keyword.h: New file, output of keyword.gperf as processed by
21206
        gperf.
21207
        * lex.c (java_lex_init): Initialize java_error_flag.
21208
        * parse.c (YYERROR_NOW): Uses java_error_flag.
21209
        * parse.y: New static java_error_flag. Useless definition of
21210
        buffer_error gone.
21211
        * parse.y (java_error): Portable error recovery using
21212
        java_error_flag (not yet completely tuned).
21213
 
21214
1997-12-04  Brendan Kehoe  
21215
 
21216
        * Makefile.in (parse.c): Use $(srcdir) for parse.y.
21217
 
21218
1997-12-03  Alexandre Petit-Bianco  
21219
 
21220
        * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
21221
        (parse.c, lex.c, keyword.h): New rules for Java source code
21222
        front-end.
21223
        * parse.c: Renamed into jcf-parse.c.
21224
        * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
21225
        * keyword.gperf: New file, Java keywords.
21226
        * parse.y: New file, Java language grammar.
21227
        * parse.h: New file, Java language grammar definitions.
21228
        * lex.c: New file, Java language lexer.
21229
        * lex.h: New file, Java language lexer definitions.
21230
 
21231
1997-12-03  Per Bothner  
21232
 
21233
        * decl.c (clinit_identifier_node), java-tree.h:  New global.
21234
        * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P):  Removed.
21235
        * verify.c (verify_jvm_instructions):  Inline use of removed macros.
21236
        * expr.c (expand_java_field_op):  Check for invalid assignment
21237
        to final field.
21238
 
21239
        * jcf-reader.c (get_attribute):  Test for wrong attribute length.
21240
 
21241
1997-10-27  Per Bothner  
21242
 
21243
        * verify.c (verify_jvm_instructions):  When processing a handler,
21244
        attempt to set the current_subr to the right value.
21245
        (More complicated code combines Sep 17 and Oct 22 versions.)
21246
 
21247
1997-10-24  Per Bothner  
21248
 
21249
        * class.c (push_class):  Figure out (guess) name of source file.
21250
        * parse.c  (set_source_filename):  Set DECL_SOURCE_FILE of class decl.
21251
        (give_name_to_class):  Don't guess source name;  use DECL_SOURCE_FILE.
21252
        (parse_class_file):  Change return type from int to void.
21253
        Call debug_start_source_file/debug_end_source_file.
21254
 
21255
        * expr.c (build_java_binop):  Fix masking 2nd operand.
21256
        * decl.c (init_decl_processing):  Set sizetype first.
21257
 
21258
1997-10-22  Per Bothner  
21259
 
21260
        * verify.c (verify_jvm_instructions):  Don't set current_subr to NULL.
21261
        (Revert Sep 17 change.)
21262
 
21263
1997-10-21  Alexandre Petit-Bianco  
21264
 
21265
        * parse.c (process_zip_dir): Skip ZIP entries not bearing the
21266
        .class extension in their name and fix thing so we don't process
21267
        them parse_zip_file_entries().
21268
        (parse_zip_file_entries): Cleaned unused local variables.
21269
 
21270
1997-10-20  Per Bothner  
21271
 
21272
        * expr.c (can_widen_reference_to):  Allows equal array element types.
21273
        (expand_byte_code):  PRE_RET must expand OPERAND_VALUE (to get index).
21274
        * jcf-dump.c (RET):  Get (and print) index.
21275
 
21276
        * verify.c (verify_jvm_instructions case OPCODE_anewarray):
21277
        Promote element type to POINTER_TYPE.
21278
 
21279
1997-10-20  Alexandre Petit-Bianco  
21280
 
21281
        * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
21282
        find_in_current_zip, jcf_figure_file_type): Moved from
21283
        jcf-reader.c to parse.c.
21284
        * zextract.c: (read_zip_archive): takes file_comment_length possible
21285
        field into account.
21286
 
21287
1997-10-20  Per Bothner  
21288
 
21289
        * verify.c (verify_jvm_instructions):  Var can also be promoted to int.
21290
 
21291
        * verify.c (merge_types):  Handle array types even better ...
21292
 
21293
1997-10-17  Per Bothner  
21294
 
21295
        * expr.c (java_stack_pop):  Fix use of NULL_TREE for TYPE_SECOND.
21296
 
21297
        * java-tree.h (PUSH_FIELD):  Set DECL_ARTIFICIAL.
21298
        * class.c (make_class_data):  Don't build fields_decl if no fields.
21299
        When building fields_decl, skip if DECL_ARTIFICIAL.
21300
 
21301
        * expr.c (java_stack_swap):  Update stack_type_map.
21302
        * verify.c (merge_types):  Handle array types better.
21303
 
21304
1997-10-15  Per Bothner  
21305
 
21306
        * class.c (add_field):  Don't promote short integral fields to
21307
        int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
21308
        * expr.c (push_value):  Promote and convert short integral values.
21309
 
21310
        * decl.c, java-tree.h (integer_two_node):  New constant node.
21311
        * verify.c (merge_types):  Check for TYPE_RETURN_ADDR.
21312
 
21313
1997-10-15  Alexandre Petit-Bianco  
21314
 
21315
        * class.c (append_gpp_mangled_type): Use function argument
21316
        unpromoted type to generate mangled name.
21317
 
21318
1997-10-13  Alexandre Petit-Bianco  
21319
 
21320
        * constants.c (build_constant_data_ref): Now uses current_class
21321
        instead of main_class.
21322
        (build_constants_constructor): Now uses current_class instead of
21323
        main_class.
21324
        * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
21325
        of the global variable SeepZipFiles done here.
21326
        * zextract.c (read_zip_archive): extra_field optional field taken
21327
        into account while computing the position of the class file in the
21328
        archive.
21329
        * verify.c (verify_jvm_instructions): Use current_jcf to search
21330
        the constant pool.
21331
        * parse.c (load_class): First search for the class to load in the
21332
        current zip file. Saves current_jcf (restored before returning
21333
        from that function). Don't call JCF_FINISH in the class was found
21334
        in the current ZIP file.
21335
        (jcf_parse): If the class was found in the current ZIP file, save
21336
        its tree_constant_pool (for later reuse).
21337
        (parse_class_file): New function. Process each method defined in
21338
        the current class and record the class as to be later registered.
21339
        (yyparse): Rewritten. Figure the type of the current file and switch
21340
        accordingly.
21341
        * lang.c: New global variable current_jcf.
21342
        (lang_init): Removed compiling_from_source test (done later, in
21343
        yyparse). Removed call the jcf_parse ().
21344
        * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
21345
        (typedef struct JCF): New fields seen_in_zip (to mark a class found
21346
        in the current ZIP file) and zip_offset (offset to the class data in
21347
        the current zip file).
21348
        * jcf-reader.c: zipfile.h included.
21349
        localToFile: New ZipFileCache static global variable
21350
        (parse_zip_file_entries): New function. Browse the current ZIP
21351
        file directory and process each class found.
21352
        (process_zip_dir): New function. Register each class found in the
21353
        ZIP file directory. The class aren't parsed but a valid JCF is
21354
        link to each of them.
21355
        (find_in_current_zip): New function. Search for a class in the
21356
        current ZIP file directory. If found, prepare the class so that it
21357
        can be loaded.
21358
        (jcf_figure_file_type): New function. Examine the file structure
21359
        to figure a class file, a ZIP file. If none of these categories are
21360
        matched, a source file is assumed.
21361
        * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
21362
        SeenZipFile: New global variable.
21363
        (open_in_zip): Use zipmember's length to accelerate the search for
21364
        a member. If zipmember was NULL and zip file successfully read,
21365
        return 0.
21366
        * java-tree.h: New global variable current_jcf declared.  Added
21367
        declaration for current_constant_pool_tags, current_constant_pool_data,
21368
        current_constant_pool_length, current_constant_pool_data_ref.
21369
        (struct lang_type): Augmented with two fields. struct JCF *jcf (to
21370
        store the JCF of classes seen in a zip file) and tree *constant_pool
21371
        (to save a loaded class constant pool). current_class declared here.
21372
        * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
21373
        retrieve method_ref_constant.
21374
        (PUSHC): java_push_constant_from_pool now uses current_jcf.
21375
        (OBJECT): get_class_constant now uses current_jcf.
21376
        (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
21377
        (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
21378
        (expand_invoke): Now uses current_class instead of main_class
21379
        (build_class_init): Now uses current_class instead of main_class
21380
        * class.c: New static global variable registered_class.
21381
        (register_class): New function.
21382
        (emit_register_class): Modified to use registered_class instead of
21383
        main_class
21384
        (is_compiled_class): Now take into account class seen in the archive.
21385
 
21386
1997-10-06  Per Bothner  
21387
 
21388
        * except.h:  Renamed to: java-except.h.
21389
        * parse.c, except.c, expr.c, verify.c:  Update #include accordingly.
21390
        * except.c:  Add semi-working (commented out) implementation.
21391
 
21392
        * expr.c (expand_iinc):  Add needed flush_quick_stack.
21393
        * parse.c (set_source_filename):  New function.
21394
        (give_name_to_class):  Set input_filename from package.classname.java.
21395
 
21396
        * jcf-io.c (find_class):  Don't look first in ".".
21397
 
21398
1997-10-01  Alexandre Petit-Bianco  
21399
 
21400
        * zextract.c (read_zip_archive): Now takes into account the
21401
        extra_field field.
21402
        * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
21403
 
21404
1997-09-20  Per Bothner  
21405
 
21406
        * constants.c, java-tree.h (build_internal_class_name):  New function.
21407
        (alloc_class_constant):  Re-implement using build_internal_class_name.
21408
        * class.c (make_class_data):  Likewise.
21409
        * class.c (hashUtf8String):  Make hash algorithm match String.hashCode.
21410
 
21411
1997-09-17  Per Bothner  
21412
 
21413
        * verify.c (verify_jvm_instructions):  Temporarily set current_subr
21414
        to NULL before pushing an exception handler target.
21415
 
21416
        * expr.c (flush_quick_stack):  Save from low stack indexes to high.
21417
        (java_stack_swap, java_stack_dup):  Re-write to be safe from
21418
        clobbering registers.
21419
        (build_class_init):  New function.
21420
 
21421
1997-09-17  Alexandre Petit-Bianco  
21422
 
21423
        * typeck.c (build_java_array_type): Temporary use
21424
        permanent_obstack to create the array 'length' field.
21425
        * expr.c (lookup_label): Temporay use permanent_obstack to create
21426
        label if not found.
21427
        * class.c (push_super_field): Tempory use permanent_obstack.
21428
 
21429
1997-09-15  Alexandre Petit-Bianco  
21430
 
21431
        * typeck.c (type_for_mode): Now handles double_type_node and
21432
        float_type_node.
21433
        * verify.c (verify_jvm_instructions): The instruction following
21434
        the wide bytecode is checked. OPCODE_ret added to the list of
21435
        wide.
21436
 
21437
1997-09-11  Alexandre Petit-Bianco  
21438
 
21439
        * class.c (make_class): Temporary use permanent_obstack. Set the
21440
        class CLASS_P field to 1.
21441
        (push_class): Temporary use permanent_obstack.
21442
        (set_super_info): Temporary use permanent_obstack.
21443
        (add_method): Temporary use permanent_obstack, set
21444
        METHOD_TRANSIENT().
21445
        (add_field): Temporary use permanent_obstack. Sets
21446
        FIELD_VOLATILE() and FIELD_TRANSIENT().
21447
        (build_class_ref): Temporary use permanent_obstack if the class
21448
        isn't compiled.
21449
        (build_static_field_ref): Temporary use permanent_obstack when
21450
        creating field's rtl.
21451
        (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
21452
        ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
21453
        and fields. Function finalized, as far as flag handling.
21454
        (push_class_static_dummy_field): Temporary use permanent_obstack.
21455
        (emit_register_class): Force generation of class registration at
21456
        -O3 or deeper.
21457
        * decl.c (end_java_method): Call permanent_allocation() before
21458
        returning.
21459
        * expr.c (can_widen_reference_to): Added comment to interface
21460
        handling, fixed typo.
21461
        (lookup_field): Now uses CLASS_P() to correct FIXME
21462
        (expand_invoke): Verification on public && !static &&
21463
        !abstract moved into soft_lookupinterfacemethod (kaffe).
21464
        Use Object class dtable if objectref is an array when expanding
21465
        invokeinterface.
21466
        (java_push_constant_from_pool): Temporary use permanent_obstack
21467
        for CONSTANT_string
21468
        * parse.c (get_ref_constant): Temporary use permanent_obstack to
21469
        create constant references.
21470
        (get_constant): Temporary use permanent_obstack to create constant.
21471
        (load_class): Temporary use permanent_obstack to load class.
21472
        (jcf_parse): Temporary use permanent_obstack to perform class
21473
        layout.
21474
        * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
21475
        (build_java_signature): Temporary use permanent_obstack.
21476
        * verify.c: (verify_jvm_instruction): removed unnecessary verification
21477
        on ACC_SUPER flag.
21478
        * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
21479
        (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
21480
        (CLASS_P): Defined
21481
 
21482
1997-09-11  Per Bothner  
21483
 
21484
        * class.c (append_gpp_mangled_type):  Fix typo.
21485
        (emit_register_class):  Use main_class to get class object, rather
21486
        than looking for no-longer-existing static decl starting with _CL.
21487
        * typeck.c (parse_signature_type):  Promote array element type
21488
        if it is a RECORD_TYPE.
21489
 
21490
1997-09-10  Per Bothner  
21491
 
21492
        * class.c (push_class_static_dummy_field):  New function.
21493
        (mangle_static_field):  New. Do G++-style mangling of static fields.
21494
        (layout_class):  Mandle static fields here, not in add_field.
21495
        (build_class_ref):  The class object is now a dummy static field.
21496
        * decl.c (find_local_variable):  Look for best, instead of first match.
21497
        * expr.c (push_type):  Always promote_type, not just for RECORD_TYPE.
21498
        (build_java_athrow):  Don't check here if exception is Throwable.
21499
        * java-tree.h (TYPE_UNSET):  Renamed to TYPE_UNKNOWN.
21500
        (TYPE_USED):  Removed.  No longer used ...
21501
        * parse.c (jcf_parse):  Call push_class_static_dummy_field.
21502
        * verify.c (push_pending_label):  New function.
21503
        (push_pending_block):  Renamed to check_pending_block.
21504
        (merge_types):  Remove unneeded suuport for TYPE_UNUSED.
21505
        (verify_jvm_instructions):  Only reset prev_eh_ranges (to force
21506
        re-checking possible handlers) after a store (less wasted work).
21507
        Check for null handler (finally) before calling add_handler.
21508
        Various changes to (finally?) correctly handle try/finally.
21509
 
21510
1997-09-09  Brendan Kehoe  
21511
 
21512
        * class.c: Include stdio.h.
21513
 
21514
1997-09-04  Per Bothner  
21515
 
21516
        * expr.c (expand_invoke):  Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
21517
        to make sure class is initialized before static/special invoke.
21518
 
21519
        * verify.c (verify_jvm_instructions):  On a store instruction,
21520
        call find_local_variable to force pre-allocation of decl and rtx.
21521
        * decl.c (push_jvm_slot):  Set DECL_REGISTER on stack slots.
21522
 
21523
1997-09-03  Per Bothner  
21524
 
21525
        * class.c (build_class_ref):   Strip off "promoted_" if need be.
21526
        (make_field_value): Call build_java_signature when needed.
21527
        (layout_class):  Don't make_function_rtl if METHOD_ABSTRACT.
21528
        * expr.c (build_java_athrow):  Don't push_value of exception.
21529
        (build_java_binop):  Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
21530
        match specification of [fd]cmp[lg] for NaNs.
21531
        (expand_byte_code):  Add support for exception handler ranges.
21532
        * except.c:  Add skeleton for EH code-generation.
21533
        * verify.c (merge_types):  Treat all promoted integral types as equal.
21534
        * constants.c (build_constants_constructor):  To force creation of
21535
        current_constant_pool_data_ref, call build_constant_data_ref.
21536
 
21537
        * javaop.def (lload):  Fix typo.
21538
        * jcf-dump.c (main):  Clear filename to prevent possibly-bad free.
21539
 
21540
1997-09-02  Brendan Kehoe  
21541
 
21542
        * parse.c: Don't include function.h.
21543
 
21544
1997-08-27  Per Bothner  
21545
 
21546
        * except.[ch]:  New files.
21547
        * Makefile.in (JAVA_OBJS):  Add except.o
21548
        * expr.c:  Temporary warning about unimplemented exceptions.
21549
        * verify.c:  Verify exception handlers.
21550
 
21551
        * jcf-dump.c (disassemble_method):  Print exception table.
21552
 
21553
1997-08-27  Alexandre Petit-Bianco  
21554
 
21555
        * expr.c (verify_jvm_instructions): Started a thorough
21556
        verification of invoke* bytecodes.
21557
        (expand_byte_code): flush quick stack if PC is the target of a
21558
        branch.  and undef RET (conflicting with config/i386/i386.h).
21559
        (expand_java_arrayload): Fixed bogus cast, when Boolean type is
21560
        used.
21561
        (expand_invoke): Now handles invokeinterface and do more
21562
        verification according to the bytecode.
21563
        (lookup_field): Don't try to load the class if processing
21564
        dtable_type.
21565
        (can_widen_reference_to): Now handles interfaces.
21566
        * decl.c (init_decl_processing): New global variable
21567
        soft_lookupinterfacemethod_node, declared in java-tree.h.
21568
        Call set_super_info on string_type_node.
21569
        * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
21570
        defined.
21571
        * class.c (set_super_info): Fills the CLASS_* flags according to
21572
        access_flags.
21573
        (get_access_flags_from_decl): Handles all class flags.
21574
 
21575
1997-08-26  Per Bothner  
21576
 
21577
        * class.c (add_method):  Zero out newly-allocated DECL_LANG_SPECIFIC.
21578
        * parse.c (yyparse):  Check for abstract method, and missing code.
21579
        * expr.c (expand_byte_code):  Change interface.
21580
        * lang.c (put_decl_node):  Print promoted types prettier.
21581
        * verify.c (verify_jvm_instruction):  Change interface.
21582
        Partial support for scanning exception table.
21583
        For load instructions, handle promoted integral types.
21584
 
21585
1997-08-21  Per Bothner  
21586
 
21587
        * verify.c:  New file, with contents moved from expr.c.
21588
        * expr.c:  Bunch of stuff (mostly verification) moved to verify.c.
21589
        * typeck.c (is_array_type_p):  Moved here from expr.c.
21590
        * java-tree.h:  Add some now-needed function declarations.
21591
        * Makefile.in (JAVA_OBJS): Added verify.o.
21592
 
21593
1997-08-20  Alexandre Petit-Bianco  
21594
 
21595
        * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
21596
        METHOD_ABSTRACT flag.
21597
 
21598
        * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
21599
        (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
21600
        (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
21601
 
21602
        * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
21603
        variables.
21604
        (start_java_method): Hook for SYNCHRONIZED methods.
21605
 
21606
        * expr.c (build_java_jsr, build_java_ret): New functions
21607
        (JSR,PRE): New macros
21608
        (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
21609
        (verify_jvm_instructions): tableswitch, lookupswitch,
21610
        monitorenter, monitorexit, goto_w: verified.
21611
        (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
21612
        (build_java_monitor): New function.
21613
        (MONITOR_OPERATION): Modified to call build_java_monitor()
21614
        (verify_jvm_instructions): Started a thorough verification of
21615
        invoke* bytecodes.
21616
 
21617
1997-08-19  Per Bothner  
21618
 
21619
        Support verification of jsr/ret subroutines (used for try/finally).
21620
        * decl.c (return_address_type_node):  New type node.
21621
        * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
21622
        RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
21623
        LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED):  New macros.
21624
        (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
21625
        TYPE_USED):  New macros for special types in type_map.
21626
 
21627
        * java-tree.h (BCODE_JUMP_TARGET):  Renamed to BCODE_TARGET.
21628
        (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET):  Replaced by
21629
        BCODE_JUMP_TARGET.
21630
        * expr.c (expand_byte_code):  Fix logic to warn of unused instructions.
21631
 
21632
        * expr.c (can_widen_reference_to):  New function.
21633
        (pop_type):  Use it.
21634
        (merge_type_state):  Support handling start of subroutine.
21635
        (push_pending_block):  Return char* error message, instead of calling
21636
        fatal on an error.  Also handle subroutines.
21637
        (verify_jvm_instructions):  Handle errors from push_poending_block.
21638
        Support jsr and ret instructions.
21639
 
21640
1997-08-19  Per Bothner  
21641
 
21642
        * jcf-io.c (find_classfile):  Fix thinko.
21643
        * jcf-dump.c:  Add CONVERT2 (to match changed javaop.def).
21644
 
21645
1997-08-12  Jason Merrill  
21646
 
21647
        * Makefile.in (BISON): Remove.
21648
 
21649
1997-08-07  Per Bothner  
21650
 
21651
        * Makefile.in:  Convert to autoconf.
21652
        * config-lang.in (outputs):  Added java/Makefile.
21653
 
21654
        * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
21655
        Rename cc1java to jc1.
21656
 
21657
        * lang.c (init_parse, finihs_parse):  New functions #ifdef USE_CPPLIB.
21658
        * Makefile.in (INTERNAL_CFLAGS):  Add @extra_c_flags.
21659
 
21660
        * class.c (class_depth):  Do load_class if needed.
21661
 
21662
        Mostly better verification.
21663
        * decl.c (pushdecl):  Set TYPE_STUB_DECL for a type.
21664
        (init_decl_processing):  Change return type of soft_checkcast.
21665
        * expr.c (expand_java_CHECKCAST):  Do push_value of the "casted" value.
21666
        * lang.c (put_decl_string, put_decl_node, lang_printable_name,
21667
        lang_print_error):  New functions.
21668
        (lang_init):  Set global hook print_error_function to lang_print_error.
21669
        * expr.c:  In the type_map ptr_type_node is only used for null now.
21670
        (pop_type, merge_types):  Hence ptr_type_node matches any reference.
21671
        (merge_types):  Dererence pointer to record types before comparing.
21672
        (decode_newarray_type, merge_types):  On error just return NULL.
21673
        (build_java_binop):  Add preliminary implementation (with warning)
21674
        for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
21675
        (lookup_label):  Set DECL_IGNORED_P (for dwarf2out).
21676
        (expand_compare, expand_java_goto, expand_java_call):  Don't
21677
        push_pending_block, since that only makes sense when verifying.
21678
        (merge_type_state):  Different return codes.
21679
        (push_pending_block):  A block may need to be verified more than once.
21680
        (expand_byte_code):  Warn about unused code at code generation time.
21681
        (verify_jvm_instruction):  Changed logic, since code may need to be
21682
        re-verified if type-state has changed.  Also, better error handling.
21683
        Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
21684
        Improve newarray, anewarray, ?aload, athrow,
21685
        * java-tree.h (LABEL_CHANGED):  New macro.
21686
 
21687
1997-08-05  Alexandre Petit-Bianco  
21688
 
21689
        * decl.c (soft_athrow_node): New global variable initialized.
21690
        * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
21691
        * typeck.c (convert): Added support for REAL_TYPE.
21692
        (convert_to_char): New function.
21693
        (convert): Handle CHAR_TYPE.
21694
        * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
21695
        SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
21696
        (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
21697
        promoted type.
21698
        (verify_jvm_instructions): Added break a the end of bogus unop: label.
21699
        (OPCODE_astore): Pop an int operand from the type stack
21700
        (OPCODE_astore): Push the promoted type onto the stack
21701
        (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
21702
        (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
21703
        to Use The Right Things.
21704
        (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
21705
        compatible with INT. BOOLEAN is made equivalent to BYTE.
21706
        (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
21707
        OPCODE_ifnonnull): Now supported.
21708
        (build_java_athrow): New function.
21709
 
21710
1997-08-04  Per Bothner  
21711
 
21712
        Rename method name  to match G++ (and fix mangling).
21713
        * class.c (layout_class):  Replace method name of  by class name.
21714
        (make_method_value):  Do inverse renaming of constructor from .
21715
        * java-tree.h (DECL_CONSTRUCTOR_P):  New macro.
21716
        * typeck.c (lookup_java_constructor):  New function.
21717
        * expr.c (expand_invoke):  If method_name is , call
21718
        lookup_java_constructor to find constructor.
21719
 
21720
        * parse.c (get_constant):  Handle CONSTANT_Float and CONSTANT_Double.
21721
 
21722
1997-08-01  Alexandre Petit-Bianco  
21723
 
21724
        * parse.c (get_class_constant): Modified to handle array "classes"
21725
        * typeck.c (set_local_type): Bug fixed when filling type_map[] with
21726
        wide type.
21727
        (convert): Modified to handle real type.
21728
        * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
21729
        soft_multianewarray, soft_newarray_node, soft_throw_node): New global
21730
        variables declared.
21731
        * decl.c (soft_badarrayindex_node, soft_anewarray_node,
21732
        soft_multianewarray, soft_newarray_node, soft_throw_node): New
21733
        global variables initialized.
21734
        (find_local_variable): Handles the case of a pointer
21735
        (end_java_method): Restore the use of one more scope
21736
        * expr.c (build_java_arraynull_check, build_java_arrayaccess,
21737
        build_java_array_length_access, expand_java_arrayload,
21738
        expand_java_arraystore, expand_java_array_length,
21739
        expand_java_multianewarray, expand_java_anewarray,
21740
        build_java_check_indexed_type, is_array_type_p,
21741
        build_java_throw_out_of_bound_exception): New functions.
21742
        (STORE_INTERNAL): Now forces type of the decl to be type of the value.
21743
        (OPCODE_arraylength, OPCODE_newarray, OPCODE_astore,
21744
        OPCODE_aload): Implemented code for verification.
21745
        (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
21746
        ARRAY_NEW_MULTI): Macro defined.
21747
        (CONVERT): Modified to invoke convert().
21748
        (case OPCODE_aload2): Fixed index typo from 2 to 1.
21749
 
21750
1997-07-31  Per Bothner  
21751
 
21752
        * class.c (push_class):  Set DECL_ARTIFICIAL (for dbxout.c).
21753
        (build_class_ref, is_compiled_class):  Handle pointer-to-record types.
21754
        (make_class_data):  Field name needs '/' as package prefix.
21755
        * expr.c (type_stack_dup, java_stack_dup):  Fix fencepost errors.
21756
 
21757
1997-07-25  Per Bothner  
21758
 
21759
        Implement debug information for local variables.
21760
        * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
21761
        DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
21762
        DECL_LOCAL_SLOT_CHAIN):  New macros.
21763
        (struct lang_decl_var):  New type.
21764
        * parse.c (give_name_to_locals):  Move to decl.c.
21765
        * decl.c (give_name_to_locals):  Re-written to Do The Right Thing.
21766
        (start_java_method):  Re-write parameter handling.
21767
        (pending_local_decls):  New global variable.
21768
        (push_jvm_slot, maybe_pushlevels, maybe_poplevels):  New functions.
21769
        (find_local_variable):  Accept pc so we can skips decls not in range.
21770
        (struct binding_level):  Add end_pc field.
21771
        * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
21772
        (various):  Change so current pc gets passed to find_local_variable.
21773
 
21774
        * decl.c (init_decl_processing):  Re-arrange fields in
21775
        class_type_node and and method_type_node to match kaffe 0.9.1.
21776
        * class.c (make_method_value, make_class_data):  Update
21777
        initializations to match.
21778
 
21779
1997-07-16  Per Bothner  
21780
 
21781
        * class.c (unicode_mangling_length, emit_unicode_mangled_name,
21782
        append_gpp_mangled_name, append_gpp_mangled_type):  New functions.
21783
        (push_super_field):  New function.
21784
        (make_class_data):  Handle inheritance of class static initializer.
21785
        (layout_class):  New name mangling.
21786
        * constants.c (build_constant_data_ref):  Init type of data array
21787
        to a one-element array.
21788
        (build_constants_constructor):  Set DECL_SIZE from complete array type.
21789
        * decl.c:  Rename class_type, object_type etc to class_type_node,
21790
        object_type_node etc.  Make former inherit from latter.
21791
        * expr.c (expand_invoke):  Add cast of function address.
21792
        * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE):  New.
21793
        * parse.c (yyparse):  Don't call layout_class here.
21794
        * typeck.c (build_java_array_type):  Set TYPE_ARRAY_ELEMENT.
21795
 
21796
1997-06-14  Per Bothner  
21797
 
21798
        * decl.c, class.c:  Update method type to match latest Kaffe snapshot.
21799
        * constants.c (lookup_name_constant):  Renamed to alloc_name_constant.
21800
        (alloc_class_constant):  New.
21801
        * expr.c (expand_invoke):  Make sure method's class is initialized.
21802
        * class.c (interits_from_p, emit_register_class):  New functions.
21803
        * parse.c (yyparse):  Call emit_register_class.
21804
 
21805
1997-06-09  Per Bothner  
21806
 
21807
        * constants.c:  New file, to handle constant pool.
21808
        * Makefile.in (JAVA_OBJS):  Add constants.o.
21809
        * decl.c (init_decl_processing):  Update, fix, finish various structs.
21810
        (pushdecl_top_level):  New.
21811
        * parse.c (layout_class):  Moved to class.c.
21812
        * expr.c (java_push_constant_from_pool):  New function.
21813
        * class.c (build_class_ref):  Make work fully
21814
        (make_class_data):  Emit super-class, constant pool, interface vector.
21815
 
21816
1997-06-03  Per Bothner  
21817
 
21818
        java-tree.h (DECL_SIGNATURE, BCODE_EMITTED):  Remove.
21819
        (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P):  New.
21820
        * class.c (class_depth):  New function.
21821
        (lookup_named_class):  Replaced by new function lookup_class.
21822
        * decl.c (object_type_node, string_type_node):  New.
21823
        Remove various types that we no longer need.
21824
        * expr.c (verify_jvm_instructions):  New separate verifier pass.
21825
        (push_type, pop_type):  New functions for verifier.
21826
        (type_stack_dup, pop_argument_types, merge_types):  Likewise.
21827
        (expand_byte_code):  Simplify, since we assume already verified.
21828
        (expand_invoke):  Now mostly works.
21829
        * javaop.def:  Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
21830
        * lang.c (main_class):  Move to parse.c.  Don't make_class yet.
21831
        * parse.c:  Wait to allocate class object until we know its name.
21832
        (layout_class):  Calculate DECL_VINDEX for each virtual method.
21833
        * typeck.c (get_array_type):  Rename to ...
21834
        (build_java_array_type):  ... and provide working implementation.
21835
        (build_java_signature):  New function - build Java signature of type.
21836
        (set_java_signature):  New function - cache signature with type.
21837
        (lookup_java_method):  New function.
21838
 
21839
1997-05-06  Per Bothner  
21840
 
21841
        * class.c (ident_subst):  Take extra SUFFIX parameter.
21842
        (add_field):  Set DECL_ASSEMBLER_NAME of static fields;  more.
21843
        (set_constant_value, build_static_field_ref, is_compiled_class):  New.
21844
        (build_class_ref):  Actually implement.
21845
        * decl.c, java-tree.h:  Renamed some xx_type to xx_type_node.
21846
        * decl.c (builtin_function):  New.
21847
        (init_decl_processing):  Update for current Kaffe.  Declare some
21848
        builtin Kaffe functions.
21849
        * expr.c (build_address_of):  New.
21850
        (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
21851
        Renamed (from expand_java_new etc), and added working implementations.
21852
        (build_field_ref):  Now also handle static fields.
21853
        (expand_invoke):  Implement invokestatic, and start implement rest.
21854
        * java-opcodes.h:  Use javaop.def to avoid duplicated list.
21855
        * javaop.def:  Rename invokevirt -> invokevirtual.
21856
        * lang.c (use_handles):  Removed.
21857
        * parse.c:  Add support for ConstantValue attribute.
21858
        Handle nested loading of a class.  (JPOOL_UTF):  New.
21859
 
21860
1997-03-11  Per Bothner  
21861
 
21862
        * expr.c (expand_java_pushc):  Support #ifndef REAL_ARITHMETIC case.
21863
 
21864
1997-02-27  Per Bothner  
21865
 
21866
        * Make-lang.in (java.install-man):  New empty rule.
21867
        * typeck.c (set_local_type):  New function.
21868
        * expr.c (STORE_INTERNAL):  Call find_local_variable,
21869
        not find_stack_slot.  Call set_local_type.
21870
 
21871
1997-02-12  Per Bothner  
21872
 
21873
        * java-tree.h:  Various new macros for constructing RECORD_TYPEs,
21874
        and building RECORD_TYPE CONSTRUCTORs.
21875
        Also support for creating Utf8Const objects from an INDETIFIER_NODE.
21876
 
21877
        * lang.c (use_handles):  Change the default to 0.
21878
        * decl.c:  Define and build class_type, field_type, utf8const_type.
21879
        * class.c (make_class_data, make_field_value,
21880
        get_access_flags_from_decl, build_class_ref, build_utf8_ref,
21881
        hashUtf8String, strLengthUtf8, mangled_classname:
21882
        Functions to build reflective data structures.
21883
        * parse.c (yyparse):  Call make_class_data.
21884
 
21885
        * jcf-io.c (open_class, find_classfile):  New functions.
21886
        * jcf-dump.c:  Support reading classfile from explicitly-named
21887
        class file (without CLASSPATH searching).
21888
 
21889
1996-10-24  Per Bothner  
21890
 
21891
        * jcf-reader.c:  Add parameter list to HANDLE_CONSTANT_Utf8.
21892
        * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
21893
        Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
21894
        (get_constant):  Now trivial for CONSTANT_Utf8.
21895
 
21896
        * jcf.h:  Make NEW_CPOOL the default.
21897
        * jcf.h, jcf-reader.c, parse.c:  Remove support for !NEW_CPOOL.
21898
 
21899
1996-10-24  Per Bothner  
21900
 
21901
        New directory.
21902
 
21903
 
21904
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
21905
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
21906
 
21907
Copying and distribution of this file, with or without modification,
21908
are permitted in any medium without royalty provided the copyright
21909
notice and this notice are preserved.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.