OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [java/] [ChangeLog] - Blame information for rev 750

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

Line No. Rev Author Line
1 715 jeremybenn
2012-01-23  Andreas Schwab  
2
 
3
        * lang.c (java_init_options_struct): Set
4
        frontend_set_flag_trapping_math.
5
 
6
2012-01-01  Jakub Jelinek  
7
 
8
        * jcf-dump.c (version): Update copyright notice dates.
9
 
10
2011-12-03  Matthias Klose  
11
 
12
        * expr.c (SPECIAL_WIDE): Fix typo in message.
13
 
14
2011-11-23  Jeffrey A Law  (law@cygnus.com)
15
 
16
        * lang.c (java_init_options_struct): Disable optimizations
17
        which assume a NULL pointer dereference will cause a fault.
18
 
19
2011-11-07  Richard Henderson  
20
 
21
        * builtins.c (compareAndSwapInt_builtin): Use can_compare_and_swap_p.
22
        (compareAndSwapLong_builtin): Likewise.
23
        (compareAndSwapObject_builtin): Likewise.
24
        (VMSupportsCS8_builtin): Likewise.
25
 
26
2011-11-02  Rainer Orth  
27
 
28
        * Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK.
29
 
30
2011-10-15  Tom Tromey  
31
            Dodji Seketeli  
32
 
33
        * jcf-parse.c (set_source_filename): Adjust to the new map API.
34
 
35
2011-10-11  Michael Meissner  
36
 
37
        * class.c (build_static_field_ref): Delete old interface with two
38
        parallel arrays to hold standard builtin declarations, and replace
39
        it with a function based interface that can support creating
40
        builtins on the fly in the future.  Change all uses, and poison
41
        the old names.  Make sure 0 is not a legitimate builtin index.
42
        * decl.c (java_init_decl_processing): Ditto.
43
        * except.c (compareAndSwapLong_builtin): Ditto.
44
        (compareAndSwapObject_builtin): Ditto.
45
        (putVolatile_builtin): Ditto.
46
        (define_builtin): Ditto.
47
        (check_for_builtin): Ditto.
48
        * expr.c (rewrite_arglist_getcaller): Ditto.
49
        (expand_java_field_op): Ditto.
50
 
51
2011-08-24  Joseph Myers  
52
 
53
        * Make-lang.in (CFLAGS-java/jcf-io.o, CFLAGS-java/jcf-path.o):
54
        New.
55
        (java/jcf-io.o, java/jcf-path.o): Remove explicit compilation
56
        rules.
57
 
58
2011-08-18  Peter Collingbourne  
59
 
60
        * expr.c (expand_invoke) Use the type of the method rewrite
61
        target.
62
 
63
2011-08-10  Rainer Orth  
64
 
65
        * jcf-dump.c (print_constant): Cast first frexp arg.
66
 
67
2011-08-08  Rainer Orth  
68
 
69
        * Make-lang.in ($(XGCJ)$(exeext)): Add $(EXTRA_GCC_LIBS).
70
 
71
2011-07-19  Richard Guenther  
72
 
73
        * builtins.c (static): Use fold_build_pointer_plus.
74
        * class.c (make_class_data): Likewise.
75
        (build_symbol_entry): Likewise.
76
        * except.c (build_exception_object_ref): Likewise.
77
        * expr.c (build_java_arrayaccess): Likewise.
78
        (build_field_ref): Likewise.
79
        (build_known_method_ref): Likewise.
80
        (build_invokevirtual): Likewise.
81
 
82
2011-07-06  Richard Guenther  
83
 
84
        * decl.c (java_init_decl_processing):
85
        Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
86
 
87
2011-06-21  Andrew MacLeod  
88
 
89
        * builtins.c: Add sync_ or SYNC__ to builtin names.
90
        * expr.c: Add sync_ or SYNC__ to builtin names.
91
 
92
2011-06-07  Richard Guenther  
93
 
94
        * decl.c (java_init_decl_processing): Call build_common_nodes,
95
        build_common_nodes_2 at the beginning.  Remove then duplicate
96
        initializations.
97
 
98
2011-06-07  Richard Guenther  
99
 
100
        * decl.c (java_init_decl_processing): Properly initialize
101
        size_type_node.
102
 
103
2011-05-30  Joern Rennecke  
104
 
105
        PR middle-end/46500
106
        * expr.c: Include "tm.h" .
107
 
108
2011-05-26  Nathan Froyd  
109
 
110
        * decl.c (poplevel): Don't access TREE_TYPE of BLOCKs.
111
        * expr.c (build_jni_stub): Likewise.
112
 
113
2011-05-24  Joseph Myers  
114
 
115
        * Make-lang.in ($(XGCJ)$(exeext)): Use libcommon-target.a instead
116
        of prefix.o.
117
 
118
2011-05-20  Joseph Myers  
119
 
120
        * Make-lang.in ($(XGCJ)$(exeext)): Don't explicitly use intl.o and
121
        version.o.
122
        (JCFDUMP_OBJS): Remove errors.o, version.o and intl.o.
123
        (JVGENMAIN_OBJS): Remove errors.o and intl.o.
124
        (java/jcf-dump.o, java/jvgenmain.o): Depend in $(DIAGNOSTIC_H).
125
        * jcf-dump.c: Include diagnostic.h.
126
        (main): Initialize diagnostics.
127
        * jvgenmain.c: Include diagnostic.h.
128
        (main): Initialize diagnostics.
129
 
130
2011-05-11  Nathan Froyd  
131
 
132
        * java-tree.h (TYPE_ARGUMENT_SIGNATURE): Use TYPE_MINVAL.
133
 
134
2011-05-07  Eric Botcazou  
135
 
136
        * java-tree.h (global_bindings_p): Adjust prototype.
137
        * decl.c (global_bindings_p): Return bool.
138
 
139
2011-05-05  Nathan Froyd  
140
 
141
        * expr.c (expand_java_switch): Call build_case_label.
142
        (expand_java_add_case): Likewise.
143
 
144
2011-04-29  Richard Guenther  
145
 
146
        PR middle-end/48819
147
        * constants.c (build_constants_constructor): Use ptr_type_node for
148
        temp.
149
 
150
2011-04-20  Jim Meyering  
151
 
152
        * jcf-parse.c (java_parse_file): Remove useless if-before-free.
153
 
154
2011-04-18  Jim Meyering  
155
 
156
        * jcf-parse.c: Fix typo in comment.
157
 
158
2011-04-14  Nathan Froyd  
159
 
160
        * decl.c (poplevel): Use BLOCK_CHAIN and block_chainon.
161
 
162
2011-04-12  Nathan Froyd  
163
 
164
        * java-tree.h (union lang_tree_node): Check for TS_COMMON before
165
        calling TREE_CHAIN.
166
 
167
2011-04-11  Martin Jambor  
168
 
169
        * decl.c (java_mark_decl_local): Call cgraph_get_node instead of
170
        cgraph_node and handle returned NULL.
171
 
172
2011-03-25  Kai Tietz  
173
 
174
        * jcf-parse.c (java_read_sourcefilenames): Use filename_cmp
175
        instead of strcmp.
176
        (set_source_filename): Likewise.
177
        * win32-host.c (jcf_open_exact_case): Likewise.
178
 
179
2011-03-21  Kai Tietz  
180
 
181
        PR target/12171
182
        * lang.c (java_attribute_table): Adjust table.
183
 
184
2011-02-13  Joseph Myers  
185
 
186
        * jvspec.c (jvgenmain_spec): Remove %{a*}.
187
 
188
2011-01-21  Kai Tietz  
189
 
190
        PR bootstrap/47215
191
        * decl.c (java_init_decl_processing): Remove
192
        va_list_type_node related type initializations.
193
 
194
2011-01-11  Kai Tietz  
195
 
196
        PR bootstrap/47215
197
        * decl.c (java_init_decl_processing): Initialize
198
        long_integer_type_node.
199
 
200
2011-01-07  Kai Tietz  
201
 
202
        PR bootstrap/47215
203
        * decl.c (java_init_decl_processing): Initialize unsigned_type_node.
204
 
205
2011-01-07  Kai Tietz  
206
 
207
        * decl.c (java_init_decl_processing): Setup va_list_type_node.
208
 
209
2011-01-03  Jakub Jelinek  
210
 
211
        * jcf-dump.c (version): Update copyright notice dates.
212
 
213
2010-12-15  Dave Korn  
214
 
215
        * decl.c (java_init_decl_processing): Initialise integer_three_node.
216
        * lang.c (put_decl_node): Handle nested function decls.
217
 
218
2010-12-07  Joseph Myers  
219
 
220
        * jcf-parse.c: Don't include assert.h.
221
        (java_parse_file): Use gcc_assert.
222
 
223
2010-12-03  Joseph Myers  
224
 
225
        * lang.opt (static-libgcj): New option.
226
 
227
2010-12-01  Joseph Myers  
228
 
229
        * jcf-parse.c: Don't include toplev.h.
230
        * Make-lang.in (java/jcf-parse.o): Don't depend on toplev.h.
231
 
232
2010-11-30  Joseph Myers  
233
 
234
        * boehm.c: Don't include toplev.h.
235
        * Make-lang.in (java/boehm.o): Don't depend on toplev.h.
236
 
237
2010-11-30  Joseph Myers  
238
 
239
        * expr.c, lang.c, mangle.c, mangle_name.c, typeck.c,
240
        verify-glue.c: Don't include toplev.h.
241
        * Make-lang.in: Dependencies for above files changed to remove
242
        toplev.h.
243
 
244
2010-11-29  Joseph Myers  
245
 
246
        * boehm.c: Include "config.h" instead of .
247
        * builtins.c: Don't include .
248
        * class.c: Don't include "stdio.h".
249
        (O_BINARY): Don't define here.
250
        * jcf-depend.c: Don't include .
251
        (jcf_dependency_set_dep_file, jcf_dependency_init,
252
        jcf_dependency_write): Use gcc_assert.
253
        * jcf-io.c (O_BINARY): Don't define here.
254
        * jcf-path.c: Don't include "tm.h".
255
        (jcf_path_init): Use getenv instead of GET_ENVIRONMENT.
256
        * resource.c: Don't include "stdio.h".
257
        (O_BINARY): Don't define here.
258
        * verify-impl.c: Don't include .
259
 
260
2010-11-17  Joseph Myers  
261
 
262
        * jcf-parse.c (java_parse_file): Take no arguments.
263
        * java-tree.h (java_parse_file): Update prototype.
264
 
265
2010-11-09  Joern Rennecke  
266
            Andrew Haley  
267
 
268
        PR java/46386
269
        * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
270
 
271
2010-11-12  Joseph Myers  
272
 
273
        * Make-lang.in (jvspec.o, java/lang.o): Use $(OPTS_H).
274
        * lang.c (java_handle_option): Take location_t parameter.
275
 
276
2010-11-10  Joseph Myers  
277
 
278
        * expr.c (expand_java_field_op): Use %' in diagnostic.
279
        * jcf-parse.c (java_parse_file): Use %' in diagnostics.
280
        * jvspec.c (lang_specific_driver): Use %' in diagnostic.
281
        * lang.c (java_post_options): Use %' in diagnostics.
282
 
283
2010-11-06  Joern Rennecke  
284
 
285
        PR middle-end/46314
286
        * class.c: Include target.h.
287
        (make_local_function_alias):
288
        Use targetm.asm_out.generate_internal_label.
289
        * expr.c (lookup_label, generate_name): Likewise.
290
 
291
2010-11-03  Joern Rennecke  
292
 
293
        PR bootstrap/44335
294
        * jfc-parse.c (target.h): Include.
295
        (handle_constant): Use targetm.words_big_endian and
296
        targetm.float_words_big_endian.
297
        (get_constant): Use targetm.float_words_big_endian.
298
 
299
2010-10-13  Richard Henderson  
300
 
301
        * lang.c (java_eh_personality): Update call to
302
        build_personality_function.
303
 
304
2010-10-12  Joseph Myers  
305
 
306
        * Make-lang.in (java/lang.o): Use $(OPTIONS_H) instead of
307
        options.h.
308
 
309
2010-10-11  Nathan Froyd  
310
 
311
        * decl.c (java_init_decl_processing): Use build_function_type_list
312
        instead of build_function_type.
313
        * jcf-parse.c (java_emit_static_constructor): Likewise.
314
        * builtins.c (initialize_builtins): Likewise.
315
 
316
2010-10-08  Joseph Myers  
317
 
318
        * lang.c (java_init_options_struct): New.  Split out from
319
        java_init_options.
320
        (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
321
 
322
2010-10-04  Andi Kleen 
323
 
324
        * Make-lang.in (xgcj, jc1, jcf-dump, jvgenmain):
325
        Add + to build rule.
326
 
327
2010-09-29  Joseph Myers  
328
 
329
        * lang.opt: Don't use VarExists.
330
 
331
2010-09-29  Joseph Myers  
332
 
333
        * java-tree.h (flag_filelist_file, flag_assert, flag_jni,
334
        flag_force_classes_archive_check, flag_redundant, flag_newer,
335
        flag_use_divide_subroutine, flag_use_atomic_builtins,
336
        flag_use_boehm_gc, flag_hash_synchronization,
337
        flag_check_references, flag_optimize_sci, flag_indirect_classes,
338
        flag_indirect_dispatch, flag_store_check,
339
        flag_reduced_reflection): Remove.
340
        * jcf-dump.c (flag_newer): Remove.
341
        * jcf.h (quiet_flag): Remove.
342
        * parse.h (quiet_flag): Remove.
343
 
344
2010-09-28  Richard Henderson  
345
 
346
        * lang.c: Include "target.h".
347
        (java_eh_personality): Use targetm.except_unwind_info.
348
        * Make-lang.in (lang.o): Update deps.
349
 
350
2010-09-27  Andrew Haley  
351
 
352
        PR java/45773
353
        * jvgenmain.c (main): Fix arg processing.
354
 
355
2010-09-22  Joseph Myers  
356
 
357
        * jvspec.c (lang_specific_driver): Handle OPT__help instead of
358
        OPT_fhelp.
359
        * lang.opt (-CLASSPATH, -all-warnings, -bootclasspath, -classpath,
360
        -dependencies, -encoding, -extdirs, -include-directory,
361
        -include-directory=, -output-class-directory,
362
        -output-class-directory=, -resource, -resource=,
363
        -user-dependencies): New.
364
 
365
2010-09-16  Richard Guenther  
366
 
367
        * jcf-parse.c (current_file_list): Remove.
368
        (java_parse_file): Use build_translation_unit_decl.  Adjust.
369
 
370
2010-09-03  Joseph Myers  
371
 
372
        * lang.opt (d): New.
373
 
374
2010-09-03  H.J. Lu  
375
 
376
        PR java/45504
377
        * jvgenmain.c (main): Check "-D XXX=YYY".
378
 
379
2010-09-02  Joseph Myers  
380
 
381
        * jvspec.c (jvgenmain_spec): Don't handle -fnew-verifier.
382
 
383
2010-09-02  Joseph Myers  
384
 
385
        * lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
386
        fCLASSPATH=): Mark as Java options and as aliases.
387
        * jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
388
        (lang_specific_driver): Don't handle options marked as aliases.
389
        * lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
390
 
391
2010-08-22  Joseph Myers  
392
 
393
        * Make-lang.in (jvspec.o): Update dependencies.
394
        * jvspec.c: Include opts.h.
395
        (PARAM_ARG): Remove.
396
        (find_spec_file): Do not add leading -specs=.
397
        (lang_specific_driver): Use cl_decoded_option structures.
398
        * lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding,
399
        extdirs, fmain=, s-bc-abi): New options.
400
 
401
2010-08-20  Nathan Froyd  
402
 
403
        * class.c: Use FOR_EACH_VEC_ELT.
404
        * expr.c: Likewise.
405
        * jcf-parse.c: Likewise.
406
        * resource.c: Likewise.
407
 
408
2010-08-16  Joseph Myers  
409
 
410
        * lang.opt (MD_, MMD_, version): Mark RejectDriver.
411
 
412
2010-08-05  David Daney  
413
 
414
        * class.c (build_utf8_ref): Fix code formatting from previous commit.
415
 
416
2010-08-05  David Daney  
417
 
418
        * class.c (build_utf8_ref): Make decl DECL_USER_ALIGN.
419
 
420
2010-07-27  Joseph Myers  
421
 
422
        * lang.c (java_handle_option): Update prototype and return value
423
        type.
424
 
425
2010-07-27  Joseph Myers  
426
 
427
        * lang.c (java_option_lang_mask): New.
428
        (java_init_options): Update prototype.
429
        (LANG_HOOKS_OPTION_LANG_MASK): Define.
430
 
431
2010-07-15  Nathan Froyd  
432
 
433
        * java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
434
        * boehm.c: Likewise.
435
        * class.c: Likewise.
436
        * decl.c: Likewise.
437
        * expr.c: Likewise.
438
        * jcf-parse.c: Likewise.
439
        * typeck.c: Likewise.
440
        * verify-glue.c: Likewise.
441
 
442
2010-07-08  Manuel López-Ibáñez  
443
 
444
        * boehm.c: Include diagnostic-core.h in every file that includes
445
        toplev.h.
446
        * class.c: Likewise.
447
        * constants.c: Likewise.
448
        * decl.c: Likewise.
449
        * except.c: Likewise.
450
        * expr.c: Likewise.
451
        * jcf-parse.c: Likewise.
452
        * mangle.c: Likewise.
453
        * mangle_name.c: Likewise.
454
        * resource.c: Likewise.
455
        * typeck.c: Likewise.
456
        * verify-glue.c: Likewise.
457
 
458
2010-07-05  Nathan Froyd  
459
 
460
        PR bootstrap/44825
461
        * class.c (make_class_data): Cast result of VEC_length calls to int.
462
 
463
2010-07-05  Nathan Froyd  
464
 
465
        * constants.c (build_constants_constructor): Use build_constructor
466
        instead of build_constructor_from_list.
467
        * class.c (make_method_value): Likewise.
468
        (get_dispatch_table): Likewise.
469
        (make_class_data): Likewise.
470
        (emit_indirect_register_classes): Likewise.
471
        (emit_symbol_table): Likewise.
472
        (add_assertion_table_entry): Likewise.
473
        (emit_assertion_table): Likewise.
474
        (make_field_value): Use build_constructor_single instead of
475
        build_constructor_from_list.
476
 
477
2010-06-28  Nathan Froyd  
478
 
479
        * java-tree.h (struct lang_type) [catch_classes]: Change type to a
480
        VEC.
481
        * except.c (prepare_eh_table_type): Call CONSTRUCTOR_APPEND_ELT
482
        instead of tree_cons.
483
        * class.c (make_class): Add dummy entry to TYPE_CATCH_CLASSES.
484
        (emit_catch_table): Adjust for new type of TYPE_CATCH_CLASSES.
485
 
486
2010-06-28  Steven Bosscher  
487
 
488
        * lang.c: Do not include except.h
489
        * except.c: Likewise.
490
        (doing_eh): New, moved from except.c (in gcc/) but removed the
491
        do_warning flag.
492
        (maybe_start_try): Update doing_eh call.
493
        * Make-lang.in: Update dependencies.
494
 
495
2010-06-23  Anatoly Sokolov  
496
 
497
        * decl.c (java_init_decl_processing): Use double_int_to_tree instead
498
        of build_int_cst_wide.
499
        * boehm.c (set_bit): Remove.
500
        (mark_reference_fields): Use double_int type for 'mask' argument.
501
        Use double_int_setbit instead of set_bit.
502
        (get_boehm_type_descriptor): Use double_int_setbit instead of
503
        set_bit. Use double_int_to_tree instead of build_int_cst_wide.
504
 
505
2010-06-10  Gerald Pfeifer  
506
 
507
        * gcj.texi: Move to GFDL version 1.3.  Fix copyright years.
508
 
509
2010-06-08  Laurynas Biveinis  
510
 
511
        * jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
512
 
513
        * jcf-parse.c (java_parse_file): Likewise.
514
        (process_zip_dir): Likewise.
515
 
516
        * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
517
        (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
518
 
519
        * expr.c (add_type_assertion): Likewise.
520
 
521
        * decl.c (make_binding_level): Likewise.
522
        (java_dup_lang_specific_decl): Likewise.
523
 
524
        * constants.c (set_constant_entry): Likewise.
525
        (cpool_for_class): Likewise.
526
 
527
        * class.c (add_method_1): Likewise.
528
        (java_treetreehash_new): Likewise.
529
 
530
        * java-tree.h (struct lang_type): Add variable_size GTY option.
531
        (struct lang_decl): Likewise.
532
 
533
        * jch.h (struct cpool_entry): Likewise.
534
 
535
        * java-tree.h (java_treetreehash_create): Remove parameter ggc.
536
 
537
        * except.c (prepare_eh_table_type): Update
538
        java_treetreehash_create call.
539
 
540
        * class.c (add_method_1): Update java_treetreehash_create call.
541
        (java_treetreehash_create): Remove parameter gc.  Use
542
        htab_create_ggc.
543
 
544
2010-06-04  Joseph Myers  
545
 
546
        * jvspec.c (lang_specific_driver): Use GCC-specific formats in
547
        diagnostics.
548
 
549
2010-05-30  Steven Bosscher  
550
 
551
        * except.c: Include tm.h.
552
 
553
2010-05-28  Joseph Myers  
554
 
555
        * jvspec.c (lang_specific_driver): Use fatal_error instead of
556
        fatal.  Use warning instead of error for warnings.
557
 
558
2010-05-28  Nathan Froyd  
559
 
560
        * expr.c (get_symbol_table_index): Add spaces in expression.
561
 
562
2010-05-28  Nathan Froyd  
563
 
564
        * java-tree.h (method_entry): Declare.  Declare VECs containing it.
565
        (struct lang_type): Change type of otable_methods, atable_methods, and
566
        itable_methods to VECs.  Fix comment for atable_methods.
567
        (emit_symbol_table): Take a VEC instead of a tree.
568
        (get_symbol_table_index): Take a VEC * instead of a tree *.
569
        * class.c (add_table_and_syms): Take a VEC instead of a tree.
570
        (emit_symbol_table): Update for changed parameter type.
571
        * expr.c (get_symbol_table_index): Likewise.
572
 
573
2010-05-27  Steven Bosscher  
574
 
575
        * buildings.c: Pretend to be a backend file by undefining
576
        IN_GCC_FRONTEND (still need rtl.h here).
577
 
578
2010-05-26  Nathan Froyd  
579
 
580
        * java-tree.h (struct lang_decl_func): Change type of throws_list
581
        field to a VEC.
582
        * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type
583
        of DECL_FUNCTION_THROWS.
584
        * class.c (make_method_value): Likewise.
585
 
586
2010-05-26  Nathan Froyd  
587
 
588
        * class.c (utf8_decl_list): Delete.
589
        (build_utf8_ref): Remove references to it.
590
        * java-tree.h (all_class_list): Delete.
591
        (predef_filenames): Delete.
592
        (enum java_tree_index) [JTI ALL_CLASS_LIST,JTI_PREDEF_FILENAMES]:
593
        Delete.
594
        * jcf-parse.c (parse_roots): Decrease size to 2.
595
        (current_file_list): Convert to a VEC.
596
        (all_class_list): Declare.
597
        (jcf_parse): Adjust for new type of all_class_list.
598
        (java_layout_seen_class_methods): Likewise.
599
        (predefined_filenames): Declare.
600
        (add_predefined_file): Use it.
601
        (predefined_filename_p): Likewise.
602
        (java_parse_file): Adjust for new type of current_file_list.                                                                                                                                                     *
603
 
604
2010-05-25  Jakub Jelinek  
605
 
606
        * lang.c (java_classify_record): Return RECORD_IS_INTERFACE
607
        for interfaces.
608
 
609
        PR debug/43260
610
        * java-tree.h (pending_static_fields): New extern declaration.
611
        (java_write_globals): New prototype.
612
        * lang.c (LANG_HOOKS_WRITE_GLOBALS): Define.
613
        * decl.c (java_mark_class_local): When clearing DECL_EXTERNAL
614
        of a static field push it into pending_static_fields vector.
615
        * class.c (pending_static_fields): New variable.
616
        (add_field): If static field is not DECL_EXTERNAL, push it into
617
        pending_static_fields vector.
618
        (java_write_globals): New function.
619
 
620
2010-05-24  Nathan Froyd  
621
 
622
        * expr.c (quick_stack): Change type to a VEC.  Update comment.
623
        (tree_list_free_list): Delete.
624
        (flush_quick_stack): Update for quick_stack type change.
625
        (push_value): Likewise.
626
        (pop_value): Likewise.
627
 
628
2010-05-23  Steven Bosscher  
629
 
630
        * java-gimplify.c: Do not include tm.h, toplev.h.
631
        * typeck.c: Do not include tm.h.
632
        * mangle_name.c: Do not include tm.h.
633
        * jcf-dump.c: Do not include tm.h, ggc.h.
634
        * class.c: Do not include rtl.h, tm_p.h, target.h, except.h, cgraph.h.
635
        * decl.c: Do not include tm.h, rtl.h, function.h, expr.h, except.h,
636
        and timevar.h.
637
        * jcf-parse.c: Do not include tm.h and tm_p.h.
638
        * resource.c: Do not include tm.h, rtl.h, flags.h, obstack.h,
639
        target.h, and expr.h.
640
        * except.c: Do not include tm.h, rtl.h, function.h.
641
        * builtins.c: Do not include convert.h.  Explain why RTL headers
642
        have to be included here.
643
        * verify-glue.c: Do not include tm.h.
644
        * jcf-depend.c: Do not include tm.h.
645
        * jcf-reader.c: Include ggc.h.
646
        * jcf-io.c: Do not include tm.h, toplev.h.
647
        * expr.c: Do not include tm.h, rtl.h, expr.h, except.h, tm_p.h,
648
        gimple.h.
649
        * lang.c: Do not include rtl.h, expr.h.
650
        * Make-lang.in: Update dependencies.
651
 
652
2010-05-23  Steven Bosscher  
653
 
654
        * jcf-parse.c: Include bitmap.h.
655
        * Make-lang.in: Update dependencies.
656
 
657
2010-05-20  Jakub Jelinek  
658
 
659
        PR debug/43521
660
        * decl.c (start_java_method): Set DECL_ARTIFICIAL on the 'this'
661
        PARM_DECL.
662
 
663
2010-05-19  Anatoly Sokolov  
664
 
665
        * jcf-parse.c (get_constant): Use double_int_to_tree instead of
666
        build_int_cst_wide_type.
667
 
668
2010-05-18  Nathan Froyd  
669
 
670
        * expr.c (pop_arguments): Fix use of undeclared variable.
671
 
672
2010-05-18  Nathan Froyd  
673
 
674
        * expr.c (expand_java_multianewarray): Use build_call_vec instead of
675
        build_call_list.
676
        (pop_arguments): Return a VEC instead of a tree.  Take a method type
677
        rather than a list of argument types.
678
        (rewrite_rule): Change signature. of rewrite_arglist member.
679
        (rewrite_arglist_getcaller): Update signature.
680
        (rewrite_arglist_getclass): Likewise.
681
        (maybe_rewrite_invocation): Update for rewrite_arglist change.
682
        (build_known_method_ref): Take a VEC instead of a tree.
683
        (invoke_build_dtable): Likewise.
684
        (expand_invoke): Update calls to pop_arguments.  Use build_call_vec
685
        instead of build_call_list.
686
        (build_jni_stub): Use build_call_vec instead of build_call_list.
687
        * java-tree.h (maybe_rewrite_invocation): Update declaration.
688
        (build_known_method_ref): Likewise.
689
        (invoke_build_dtable): Likewise.
690
 
691
2010-05-14  Nathan Froyd  
692
 
693
        PR 44103
694
        * java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a
695
        vector.  Move call to build_constructor...
696
        (FINISH_RECORD_CONSTRUCTOR): ...here.  Add necessary arguments.  Clear
697
        TREE_CONSTANT on the constructor.
698
        (PUSH_SUPER_VALUE): Change first argument to a vector.
699
        (PUSH_FIELD_VALUE): Likewise.
700
        * resource.c (compile_resource_data): Update calls to above macros.
701
        * constants.c (build_constants_constructor): Likewise.
702
        * class.c (build_utf8_ref): Likewise.
703
        (make_field_value): Likewise.
704
        (make_method_value): Likewise.
705
        (add_table_and_syms): New function.
706
        (make_class_data): Call it.  Update calls to above macros.
707
        (build_symbol_table_entry): New function.
708
        (build_symbol_entry): Call it.  Update calls to above macros.
709
        (emit_symbol_table): Likewise.
710
        (make_catch_class_record): Update calls to above macros.
711
        (build_assertion_table_entry): New function.
712
        (add_assertion_table_entry): Call it.
713
        (emit_assertion_table): Likewise.
714
 
715
2010-05-06  Manuel López-Ibáñez  
716
 
717
        PR 40989
718
        * lang.c (java_handle_option): Add argument kind.
719
 
720
2010-04-18  Eric Botcazou  
721
 
722
        * decl.c (java_init_decl_processing): Remove argument in call to
723
        initialize_sizetypes
724
 
725
2010-04-07  Jakub Jelinek  
726
 
727
        * exception.cc (_Jv_Throw): Avoid set but not used warning.
728
        * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
729
        sizeof to avoid set but not used warnings.
730
 
731
2010-01-20  Joern Rennecke  
732
 
733
        * lang.c (java_post_options): Constify variable "dot".
734
 
735
        * jcf-parse.c (set_source_filename): Constify variable "dot".
736
        (load_class): Constify variable "separator".
737
        Use get_identifier_with_length.
738
 
739
        * jvspec.c (lang_specific_driver): Constify two variables named "p".
740
 
741
2010-01-09  Jakub Jelinek  
742
 
743
        * jcf-dump.c (version): Update copyright notice dates.
744
 
745
2009-11-28  Jakub Jelinek  
746
 
747
        * jvspec.c (lang_specific_driver): Remove unused
748
        saw_verbose_flag variable.
749
        * jcf-dump.c (main): Remove unused general_purpose_bits
750
        variable.
751
        * builtins.c (initialize_builtins): Remove unused float_ftype_float
752
        variable.
753
        * expr.c (java_stack_pop): Remove unused val variable.
754
        (build_jni_stub): Remove unused res_type variable.
755
        * verify-impl.c (check_field_constant): Remove unused len variable.
756
 
757
2009-10-20  Joel Dice 
758
 
759
        PR java/28474
760
        * mangle_name.c (append_unicode_mangled_name): Fix mangling
761
        of names with multiple underscores and "U".
762
        (unicode_mangling_length): Likewise.
763
 
764
2009-10-03  Simon Baldwin  
765
 
766
        * config-lang.in (lang_dirs): Remove zlib.
767
 
768
2009-09-28  Richard Henderson  
769
 
770
        * builtins.c (initialize_builtins): Update call to
771
        build_common_builtin_nodes.
772
        * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
773
 
774
2009-09-14  Richard Henderson  
775
 
776
        * builtins.c (initialize_builtins): Update call to
777
        build_common_builtin_nodes.
778
        * decl.c (java_init_decl_processing): Don't call
779
        default_init_unwind_resume_libfunc.
780
        * except.c: Include tree-iterator.h.
781
        (build_exception_object_var): New.
782
        (build_exception_object_ref): Use it.
783
        (expand_end_java_handler): Initialize it from __builtin_eh_pointer.
784
        Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR.
785
        * java-tree.h (DECL_FUNCTION_EXC_OBJ): New.
786
 
787
2009-09-13  Richard Guenther  
788
        Rafael Avila de Espindola  
789
 
790
        * decl.c (do_nothing): Remove.
791
        (java_init_decl_processing): Do not set lang_eh_runtime_type.
792
        * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency.
793
        * lang.c (java_eh_personality): New.
794
        (java_eh_personality_decl): Likewise.
795
        (LANG_HOOKS_EH_PERSONALITY): Define.
796
 
797
2009-09-03  Diego Novillo  
798
 
799
        * lang.c (lang_hooks): Remove const qualifier.
800
 
801
2009-09-01  Jakub Jelinek  
802
 
803
        * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT
804
        type.
805
 
806
2009-09-01  Richard Guenther  
807
 
808
        * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
809
        * java-tree.h (java_mark_addressable): Likewise.
810
        * typeck.c (java_mark_addressable): Likewise.
811
 
812
2009-08-17  Ralf Wildenhues  
813
 
814
        * Make-lang.in (java.install-pdf): Install gcj.pdf in
815
        $(pdfdir)/gcc, alongside the other manuals.
816
 
817
2009-08-12  Andrew Haley  
818
 
819
        * builtins.c (compareAndSwapInt_builtin): Use
820
        flag_use_atomic_builtins.
821
        (compareAndSwapLong_builtin): Likewise.
822
        (compareAndSwapObject_builtin): Likewise.
823
        * jvspec.c: Add flag_use_atomic_builtins.
824
        * gcj.texi: Likewise.
825
        * java-tree.h: Likewise.
826
        * lang.opt: Likewise.
827
 
828
2009-08-11  Dodji Seketeli  
829
 
830
        PR debug/40990
831
        * lang.c (put_decl_node): Outputs different level of information
832
        depending on the verbosity level.
833
 
834
2009-07-31  Andrew Haley  
835
 
836
        PR java/40867
837
        * decl.c (java_replace_references): Set EXPR_LOCATION on all
838
        generated expressions.
839
        (binding_level.loc): new field.
840
        (clear_binding_level): Initialize loc.
841
        (set_input_location): New function.
842
        (pushlevel): Set new binding_level.loc.
843
        (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY.
844
        (start_java_method): Set DECL_SOURCE_LOCATION of this new method.
845
        (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt.
846
 
847
2009-07-17  Richard Guenther  
848
 
849
        PR c/40401
850
        * java-gimplify.c (java_genericize): Do not gimplify here.
851
        But replace all local references.
852
        (java_gimplify_expr): Do not replace local references here.
853
        (java_gimplify_modify_expr): Likewise.
854
        * jcf-parse.c (java_parse_file): Do not finalize the CU or
855
        optimize the cgraph here.
856
        * decl.c (java_replace_reference): Make static.
857
        (java_replace_references): New function.
858
        (end_java_method): Clear base_decl_map.
859
        * java-tree.h (java_replace_references): Declare.
860
        (java_replace_reference): Remove.
861
 
862
2009-07-14  Taras Glek  
863
            Rafael Espindola  
864
 
865
        * Make-lang.in (java.install-plugin): New target for
866
        installing plugin headers.
867
 
868
2009-07-07  Manuel López-Ibáñez  
869
 
870
        * class.c: Replace %J by an explicit location. Update all calls.
871
 
872
2009-07-07  Manuel López-Ibáñez  
873
 
874
        * jcf-parse.c: Replace %H by an explicit location. Update all calls.
875
 
876
2009-06-29  Andrew Haley  
877
 
878
        PR java/40590
879
        * java-tree.h (cxx_keyword_p): New declaration.
880
        * mangle_name.c (utf8_cmp): Move here from mangle.c.
881
        (cxx_keywords): Likewise.
882
        (cxx_keyword_p): Likewise.
883
        (MANGLE_CXX_KEYWORDS): New macro.
884
        (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
885
        (append_gpp_mangled_name): Likewise.
886
        * mangle.c: Move code to mangle_name.c.
887
        (mangle_member_name): Don't call cxx_keyword_p.
888
 
889
2009-06-12  Aldy Hernandez  
890
 
891
        * java-gimplify.c (java_gimplify_block): New argument to
892
        build_empty_stmt.
893
        * expr.c (force_evaluation_order): Same.
894
        * typeck.c: Add location to build_decl or PUSH_FIELD calls.
895
        * class.c: Same.
896
        * decl.c: Same.
897
        * jcf-parse.c: Same.
898
        * constants.c: Same.
899
        * resource.c: Same.
900
        * except.c: Same.
901
        * builtins.c: Same.
902
        * expr.c: Same.
903
        * java-tree.h (PUSH_FIELD): Add location field.
904
 
905
2009-06-09  Ian Lance Taylor  
906
 
907
        * verify.h: Remove extern "C".
908
 
909
2009-06-07  Ian Lance Taylor  
910
 
911
        * jcf-parse.c (handle_constant): Change local variable 'kind' to
912
        unsigned int.
913
 
914
2009-06-01  Ian Lance Taylor  
915
 
916
        * jcf-io.c (find_class): Use CONST_CAST.
917
 
918
2009-05-27  Ian Lance Taylor  
919
 
920
        * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
921
        $(LINKER).
922
        (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
923
 
924
2009-05-26  Ian Lance Taylor  
925
 
926
        * Make-lang.in (jvspec.o): Use $(COMPILER).
927
        ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
928
        (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
929
 
930
2009-05-12  Alexandre Oliva  
931
 
932
        * Make-lang.in (GCJ): Renamed to...
933
        (XGCJ): ... this.
934
 
935
2009-04-27  Ian Lance Taylor  
936
 
937
        * builtins.c (java_builtins): Add casts to enum type.
938
        * verify-impl.c (check_class_constant): Add cast to enum type.
939
        (check_constant, check_wide_constant): Likewise.
940
 
941
2009-04-27  Richard Guenther  
942
 
943
        PR java/38374
944
        * constants.c (build_constants_constructor): Retain the old
945
        pointer type as valid TYPE_POINTER_TO after patching the
946
        type of the constant pool decl.
947
 
948
2009-04-24  Ian Lance Taylor  
949
 
950
        * jcf-parse.c (handle_constant): Add cast to enum type.
951
 
952
2009-04-21  Taras Glek 
953
 
954
        * builtins.c: Update GTY annotations to new syntax
955
        * decl.c: Likewise
956
        * java-tree.h: Likewise
957
        * jcf.h: Likewise
958
        * lang.c: Likewise
959
 
960
2009-04-21  Joseph Myers  
961
 
962
        * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
963
        license notices.
964
 
965
2009-04-18  Ian Lance Taylor  
966
 
967
        * verify-impl.c (verify_instructions_0): Add cast to enum type.
968
 
969
2009-04-09  Paolo Bonzini  
970
 
971
        * builtins.c (compareAndSwapLong_builtin,
972
        compareAndSwapInt_builtin, compareAndSwapObject_builtin,
973
        VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
974
 
975
2009-03-31  Richard Guenther  
976
 
977
        * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
978
        the first operand of binary and comaprison expressions.
979
 
980
2009-03-30  Joseph Myers  
981
 
982
        PR rtl-optimization/323
983
        * lang.c (java_post_options): Set flag_excess_precision_cmdline.
984
        Give an error for -fexcess-precision=standard for processors where
985
        the option is significant.
986
 
987
2009-03-18  Ralf Wildenhues  
988
 
989
        * lang.opt: Unify help text for -Wdeprecated.
990
 
991
2009-02-03  Jakub Jelinek  
992
 
993
        * jcf-dump.c (version): Update copyright notice dates.
994
 
995
2009-01-16  Richard Guenther  
996
 
997
        PR tree-optimization/38835
998
        PR middle-end/36227
999
        * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
1000
 
1001
2008-12-05  Sebastian Pop  
1002
 
1003
        PR bootstrap/38262
1004
        * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
1005
 
1006
2008-11-04  Andrew Haley  
1007
 
1008
        PR java/37068
1009
        * jcf-parse.c (java_emit_static_constructor): Don't call
1010
        cgraph_build_static_cdtor.  Rewrite.
1011
 
1012
2008-10-24  Jakub Jelinek  
1013
 
1014
        * Make-lang.in (check-java-subtargets): New target.
1015
 
1016
2008-10-16  David Edelsohn  
1017
 
1018
        PR target/35483
1019
        * Make-lang.in (class.o): Depend on $(TM_P_H).
1020
        (expr.o): Same.
1021
        * class.c: Include tm_p.h.
1022
        * expr.c: Include tm_p.h.
1023
 
1024
2008-10-14  Andrew Haley  
1025
 
1026
        * constants.c (build_constant_data_ref): Make sure we only build
1027
        one copy of the decl for the constant pool.
1028
 
1029
2008-09-22  Andrew Haley  
1030
 
1031
        * expr.c (rules): Add new rule for
1032
        gnu.java.lang.VMCPStringBuilder.toString.
1033
        (rewrite_rule.new_classname): New field.
1034
        (maybe_rewrite_invocation): Use new_classname field instead of
1035
        DECL_CONTEXT (*method_p).
1036
        Allow rewrite_arglist to be NULL.
1037
 
1038
2008-09-17  Andrew Pinski  
1039
 
1040
        * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
1041
        (java_get_callee_fndecl): Kill.
1042
 
1043
2008-09-17  Jan Hubicka  
1044
 
1045
        PR c++/18071
1046
        * class.c (add_method_1): Do not initialize DECL_INLINE.
1047
        (make_local_function_alias): Likewise.
1048
        * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
1049
        * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
1050
 
1051
2008-09-09  Richard Guenther  
1052
 
1053
        * decl.c (build_result_decl): Remove no longer applicable
1054
        promotion.
1055
 
1056
2008-09-05  David Daney  
1057
 
1058
        * gcj.texi (-freduced-reflection): Clarify option's restrictions.
1059
 
1060
2008-08-21  David Daney  
1061
 
1062
        * class.c (make_class_data): Don't add field_index when
1063
        flag_reduced_reflection set.
1064
 
1065
2008-08-12  Ulrich Weigand  
1066
 
1067
        * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
1068
 
1069
2008-08-08  Manuel Lopez-Ibanez  
1070
 
1071
        PR 28875
1072
        * lang.c (java_handle_option): Replace set_Wunused with
1073
        warn_unused.
1074
 
1075
2008-07-30  Ralf Wildenhues  
1076
 
1077
        * gcj.texi: Update copyright years.  Do not list GPL as
1078
        Invariant Section.
1079
 
1080
2008-07-29  Jakub Jelinek  
1081
 
1082
        * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
1083
        from ctype's sizes.
1084
 
1085
        * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
1086
        alignment.
1087
 
1088
2008-07-29  Jan Hubicka  
1089
 
1090
        * lang.c (java_post_options): Remove handling of flag_no_inline.
1091
 
1092
2008-07-28  Richard Guenther  
1093
 
1094
        Merge from gimple-tuples-branch.
1095
 
1096
        2008-07-18  Richard Guenther  
1097
 
1098
        * expr.c: Include tree-iterator.h.
1099
        * Make-lang.in (expr.o): Add tree-iterator.h dependency.
1100
 
1101
        2008-07-18  Aldy Hernandez  
1102
 
1103
        * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
1104
        * expr.c: Same.
1105
 
1106
        2008-07-14  Aldy Hernandez  
1107
 
1108
        * java-gimplify.c (java_gimplify_expr): Same.
1109
        (java_gimplify_modify_expr): Same.
1110
        * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
1111
 
1112
        2008-05-02  Diego Novillo  
1113
 
1114
        * expr.c (build_java_throw_out_of_bounds_exception): Fix
1115
        mixed declarations and code.
1116
 
1117
        2008-05-02  Doug Kwan  
1118
 
1119
        * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
1120
        _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
1121
 
1122
        2008-02-19  Diego Novillo  
1123
 
1124
        http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
1125
 
1126
        * java-gimplify.c (java_gimplify_self_mod_expr): Change
1127
        gimple_seq arguments to gimple_seq *.  Update all users.
1128
 
1129
        2007-11-26  Aldy Hernandez  
1130
 
1131
        * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
1132
        sequences.
1133
        (java_gimplify_self_mod_expr): Same.
1134
        * java-tree.h (java_gimplify_expr): Make pre_p and post_p
1135
        sequences.
1136
 
1137
2008-07-24  Jan Hubicka  
1138
 
1139
        * java/decl.c: Include cgraph.h
1140
        (end_java_method): Remove non-unit-at-a-time code.
1141
        (java_mark_decl_local): Likewise; sanity check that we don't touch
1142
        finalized nodes.
1143
 
1144
2008-07-15  Jan Hubicka  
1145
 
1146
        * lang.c (java_init_options): Enable unit-at-a-time by default.
1147
 
1148
2008-07-14  Ralf Wildenhues  
1149
 
1150
        * Make-lang.in (jvspec.o): Fix dependencies.
1151
 
1152
2008-07-06  Tom Tromey  
1153
 
1154
        * Make-lang.in (java/parse.o-warn): Remove.
1155
        (java/jcf-io.o-warn): Remove.
1156
 
1157
2008-07-05  Tom Tromey  
1158
 
1159
        * jcf-io.c: Don't include fnmatch.h.  Don't use JCF_USE_SCANDIR.
1160
        (compare_path): Remove.
1161
        (java_or_class_file): Likewise.
1162
        (memoized_dirlist_entry): Likewise.
1163
        (memoized_dirlist_hash): Likewise.
1164
        (memoized_dirlist_lookup_eq): Likewise.
1165
        (memoized_dirlists): Likewise.
1166
        (caching_stat): Likewise.
1167
        (find_class): Use stat.
1168
        * jcf.h (JCF_USE_SCANDIR): Remove.
1169
 
1170
2008-06-30  Joshua Sumali  
1171
 
1172
        * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
1173
        doc/rebuild-gcj-db.1
1174
        (java.uninstall): Likewise.
1175
        (java.maintainer-clean): Likewise.
1176
        (aot-compile.pod): New rule.
1177
        (rebuild-gcj-db.pod): New rule.
1178
        (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
1179
        * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
1180
 
1181
2008-06-29  Kaveh R. Ghazi  
1182
 
1183
        * Make-lang.in (java/jcf-io.o-warn): New.
1184
 
1185
2008-06-24  Tom Tromey  
1186
 
1187
        * jcf-path.c (jcf_path_init): Don't name variable 'try'.
1188
        * expr.c (add_type_assertion): Rename argument.
1189
        (build_java_arrayaccess): Don't name variable 'throw'.
1190
        (ARRAY_NEW_MULTI): Don't name variable 'class'.
1191
        * jcf-io.c (find_class): Don't name variable 'class'.
1192
        * mangle.c (compression_table_add): Don't name variable 'new'.
1193
        * constants.c (cpool_for_class): Rename argument.
1194
        (alloc_constant_fieldref): Likewise.
1195
        * jcf-parse.c (handle_innerclass_attribute): Don't name variable
1196
        'class'.
1197
        (read_class): Likewise.
1198
        (parse_zip_file_entries): Likewise.
1199
        (process_zip_dir): Likewise.
1200
        * decl.c (java_mark_class_local): Rename argument.
1201
        * class.c (GEN_TABLE): Use type_name, not typename.
1202
        (gen_indirect_dispatch_tables): Likewise.
1203
        (add_field): Rename argument.
1204
        (is_compiled_class): Likewise.
1205
        (safe_layout_class): Likewise.
1206
        (emit_assertion_table): Likewise.
1207
        * typeck.c (has_method): Rename argument.
1208
 
1209
2008-06-19  Kaveh R. Ghazi  
1210
 
1211
        * class.c (ident_subst, mangled_classname, unmangle_classname,
1212
        gen_indirect_dispatch_tables, add_method_1,
1213
        build_fieldref_cache_entry, make_local_function_alias,
1214
        layout_class, java_treetreehash_find, java_treetreehash_new,
1215
        split_qualified_name): Fix for -Wc++-compat.
1216
        * constants.c (set_constant_entry, cpool_for_class): Likewise.
1217
        * decl.c (make_binding_level, java_dup_lang_specific_decl,
1218
        start_java_method): Likewise.
1219
        * except.c (prepare_eh_table_type): Likewise.
1220
        * expr.c (type_assertion_hash, note_instructions): Likewise.
1221
        * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
1222
        MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
1223
        * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
1224
        Likewise.
1225
        * jcf-parse.c (reverse, java_read_sourcefilenames,
1226
        annotation_grow, rewrite_reflection_indexes, java_parse_file,
1227
        process_zip_dir): Likewise.
1228
        * jcf-path.c (add_entry, add_path, jcf_path_init,
1229
        jcf_path_extdirs_arg): Likewise.
1230
        * jcf-reader.c (jcf_parse_constant_pool): Likewise.
1231
        * jvgenmain.c (do_mangle_classname): Likewise.
1232
        * lang.c (put_decl_string): Likewise.
1233
        * verify-impl.c (make_state_copy, make_state, add_new_state):
1234
        Likewise.
1235
 
1236
2008-06-15  Ralf Wildenhues  
1237
 
1238
        * gcj.texi: Expand TABs, remove whitespace from blank lines.
1239
 
1240
2008-06-14  Tom Tromey  
1241
 
1242
        PR java/36247:
1243
        * class.c (build_class_ref): Initialize this_classdollar when
1244
        needed.
1245
 
1246
2008-05-23  Andrew Haley  
1247
 
1248
        * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
1249
        pathname of source file.
1250
 
1251
2008-05-12  Aaron W. LaFramboise  
1252
 
1253
        * jcf-dump.c (print_constant): Use
1254
        HOST_LONG_LONG_FORMAT.
1255
 
1256
2008-05-07  Kenneth Zadeck 
1257
 
1258
        * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
1259
        DECL_PURE_P.
1260
 
1261
2008-04-23  Paolo Bonzini  
1262
 
1263
        * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
1264
        (build_classdollar_field): Don't set TREE_INVARIANT.
1265
        (get_dispatch_table): Don't set TREE_INVARIANT.
1266
        (make_class_data): Don't set TREE_INVARIANT.
1267
        (build_symbol_entry): Don't set TREE_INVARIANT.
1268
        (emit_symbol_table): Don't set TREE_INVARIANT.
1269
        * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
1270
        (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
1271
        * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
1272
        * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
1273
 
1274
2008-04-03  Tom Tromey  
1275
 
1276
        * Make-lang.in (java_OBJS): New variable.
1277
 
1278
2008-04-03  Paolo Bonzini  
1279
 
1280
        * java-tree.h (insert_block): Kill.
1281
        * decl.c (insert_block): Kill.
1282
 
1283
2008-04-01  Joseph Myers  
1284
 
1285
        * gcj.texi: Include gpl_v3.texi instead of gpl.texi
1286
        * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
1287
        gpl.texi.
1288
 
1289
2008-03-27  Tom Tromey  
1290
 
1291
        * Make-lang.in: Revert automatic dependency patch.
1292
 
1293
2008-03-25  Tom Tromey  
1294
 
1295
        * Make-lang.in: Removed most explicit .o targets.
1296
        (java/jvspec.o): Reduce to variable setting.  Moved to java/.
1297
        ($(GCJ)$(exeext)): Update.
1298
        (JAVA_OBJS): New variable.
1299
        (JCFDUMP_OBJS): Reformat.
1300
        (java_OBJS): New variable.
1301
        (java/jvspec.o-warn): Update.
1302
        (java/parse.o-warn): Remove.
1303
        (JAVA_TREE_H): Remove.
1304
        (java/jcf-io.o): Reduce to variable setting.
1305
        (ALL_CPPFLAGS): Likewise.
1306
 
1307
2008-03-12  Paolo Bonzini  
1308
 
1309
        * mangle.c (java_mangle_decl): Remove dead check.
1310
 
1311
2008-03-11  Paolo Bonzini  
1312
 
1313
        * jcf-parse.c (java_parse_file): Assert binding levels are
1314
        left in order.
1315
        * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
1316
        Delete.
1317
 
1318
2008-03-02  Jakub Jelinek  
1319
 
1320
        * jcf-dump.c (version): Update copyright notice dates.
1321
 
1322
2008-02-29  Tom Tromey  
1323
 
1324
        * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
1325
        method.
1326
        * java-tree.h (struct lang_decl_func): Remove obsolete comment.
1327
 
1328
2008-02-26  Tom Tromey  
1329
 
1330
        * lang.c (java_post_options): Remove conditional.
1331
        * expr.c (expand_byte_code): Remove old location code.
1332
        * jcf-parse.c (set_source_filename): Remove old location code.
1333
        (give_name_to_class): Likewise.
1334
        (jcf_parse): Likewise.
1335
        (duplicate_class_warning): Likewise.
1336
        (parse_class_file): Likewise.
1337
        (java_parse_file): Likewise.
1338
        * decl.c (finish_method): Remove old location code.
1339
        * class.c (push_class): Remove old location code.
1340
 
1341
2008-02-06  Kaveh R. Ghazi  
1342
 
1343
        PR other/35107
1344
        * Make-lang.in (jc1): Add $(GMPLIBS).
1345
 
1346
2008-01-23  David Daney  
1347
 
1348
        * class.c (hide)  Rename to...
1349
        (java_hide_decl) ... this throughout, and make public.
1350
        * resource.c (Jr_count): Remove.
1351
        (compile_resource_data): Call java_mangle_resource_name to generate
1352
        decl name.  Make resource decl public and hidden.
1353
        * mangle.c (java_mangle_resource_name): New function.
1354
        * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
1355
        functions.
1356
 
1357
2008-01-04  Andrew Haley  
1358
 
1359
        PR java/17779
1360
        * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
1361
        C90.
1362
 
1363
2008-01-03  Andrew Haley  
1364
 
1365
        PR java/17779
1366
        * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
1367
        we're about to re-layout the type.
1368
 
1369
2007-12-20  Alexandre Oliva  
1370
 
1371
        * lang.c (java_classify_record): Don't return
1372
        RECORD_IS_INTERFACE for now.
1373
 
1374
2007-12-18  Andrew Haley  
1375
 
1376
        PR java/27643
1377
        * jcf-parse.c (java_parse_file): Remove call to
1378
        java_mark_class_local.
1379
        (parse_class_file): Reinstate call to java_mark_class_local here.
1380
        * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
1381
        already set, call java_mangle_decl() and make_decl_rtl() to
1382
        rewrite its name as a hidden alias.
1383
 
1384
2007-12-15  Alexandre Oliva  
1385
 
1386
        PR debug/7081
1387
        * lang.c (java_classify_record): New.
1388
        (LANG_HOOKS_CLASSIFY_RECORD): Override.
1389
 
1390
2007-11-26  Andreas Krebbel  
1391
 
1392
        PR 34081/C++
1393
        * decl.c (finish_method): Pass 'false' for the new
1394
        allocate_struct_function parameter.
1395
 
1396
2007-11-26  Alexandre Oliva  
1397
 
1398
        * expr.c (build_jni_stub): Use the computed jni func type for
1399
        variable meth.
1400
 
1401
2007-11-26  Alexandre Oliva  
1402
 
1403
        * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
1404
 
1405
2007-11-26  Alexandre Oliva  
1406
 
1407
        * expr.c (type_assertion_hash): Hash type uids rather than
1408
        tree pointers.
1409
 
1410
2007-11-17  David Daney  
1411
            Andrew Haley  
1412
 
1413
        * constants.c (build_constants_constructor):  Use POINTER_SIZE
1414
        insead of BITS_PER_WORD in big-endian work around.
1415
 
1416
2007-11-07  Tom Tromey  
1417
 
1418
        PR java/34019:
1419
        * gcj.texi (Input Options): Add missing noun.
1420
 
1421
2007-11-02  Tom Tromey  
1422
 
1423
        PR java/33765:
1424
        * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
1425
        * zipfile.h (ZIPEMPTYMAGIC): New define.
1426
 
1427
2007-11-01  Tom Tromey  
1428
 
1429
        * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
1430
        (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
1431
        (java/jcf-io.o): Depend on zipfile.h.
1432
 
1433
2007-10-17  Richard Guenther  
1434
 
1435
        * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
1436
        dependencies.
1437
 
1438
2007-10-03  Andrew Haley  
1439
 
1440
        PR java/33639
1441
        * class.c (mangled_classname): Detect and replace illegal
1442
        characters in assembly language symbols.
1443
        (gen_indirect_dispatch_tables): Call mangled_classname() on
1444
        the type.
1445
 
1446
2007-09-27  Jakub Jelinek  
1447
 
1448
        * lang.c (java_print_error_function): Add third argument.
1449
 
1450
2007-09-15  Tom Tromey  
1451
 
1452
        * java-tree.h (struct lang_decl_func) :
1453
        Remove.
1454
        : Likewise.
1455
        * lang.c (java_dump_tree): Update.
1456
        * java-tree.h (DECL_FUNCTION_BODY): Remove.
1457
 
1458
2007-09-11  Jan Hubicka 
1459
 
1460
        * decl.c (java_expand_body): Kill.
1461
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1462
 
1463
2007-09-06  Tom Tromey  
1464
 
1465
        * jcf-parse.c (parse_class_file): Re-enter the current file.
1466
 
1467
2007-09-07  Roman Zippel  
1468
 
1469
        * boehm.c (mark_reference_fields): Move misaligned pointer check
1470
        after JREFERENCE_TYPE_P test
1471
 
1472
2007-09-06  Roman Zippel  
1473
 
1474
        * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
1475
        if pointer is misaligned.
1476
 
1477
2007-09-06  Tom Tromey  
1478
 
1479
        * lang.c (java_post_options): Update.
1480
        * jcf-parse.c (set_source_filename): Update.
1481
        (give_name_to_class): Update.
1482
        (jcf_parse): Update.
1483
        (duplicate_class_warning): Update.
1484
        (parse_class_file): Update.
1485
        (java_parse_file): Update.
1486
        * expr.c (expand_byte_code): Update.
1487
 
1488
2007-09-05  Sandra Loosemore  
1489
 
1490
        * decl.c (finish_method): Use set_cfun.
1491
 
1492
2007-09-04  Andrew Haley  
1493
 
1494
        * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
1495
        when using the ARM EABI.
1496
 
1497
2007-09-03  Daniel Jacobowitz  
1498
 
1499
        * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
1500
 
1501
2007-09-03  Kaveh R. Ghazi  
1502
 
1503
        * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
1504
        CONST_CAST.
1505
        * jcf.h (JCF_FINISH): Likewise.
1506
 
1507
2007-08-28  Tom Tromey  
1508
 
1509
        * Make-lang.in (java.tags): Don't tag '*.y' files.
1510
 
1511
2007-08-25  Kaveh R. Ghazi  
1512
 
1513
        * lang.c (java_decl_ok_for_sibcall): Likewise.
1514
 
1515
2007-08-21  Paul Brook  
1516
            Nathan Sidwell  
1517
            Mark Mitchell  
1518
            Joseph Myers  
1519
 
1520
        * jcf-dump.c (version): Use pkgversion_string.  Update copyright
1521
        date.
1522
 
1523
2007-08-20  Richard Guenther  
1524
 
1525
        * lang.c (java_tree_inlining_walk_subtrees): Remove.
1526
        (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
1527
 
1528
2007-08-17  Tom Tromey  
1529
 
1530
        * typeck.c (find_method_in_interfaces): Update.
1531
        * jcf-parse.c (load_class): Update.
1532
        * java-gimplify.c (java_gimplify_component_ref): Removed.
1533
        (java_gimplify_modify_expr): Update.  Removed pre_p and post_p
1534
        arguments.
1535
        (java_gimplify_expr): Update.
1536
        * decl.c (java_init_decl_processing): Update.
1537
        * class.c (set_constant_value): Update.
1538
        (make_class_data): Update.
1539
        (finish_class): Update.
1540
        (build_static_field_ref): Update.
1541
        (is_compiled_class): Update.
1542
        (maybe_layout_super_class): Update.
1543
        (layout_class): Update.
1544
        (layout_class_method): Update.
1545
        * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
1546
        (lang_decl_var) : Removed fields.
1547
        (lang_decl_func) : Removed field.
1548
        (lang_type) : Removed fields.
1549
        (FIELD_NESTED_ACCESS): Removed.
1550
        (FIELD_NESTED_ACCESS_P): Removed.
1551
        (DECL_FIELD_FINAL_IUD): Removed.
1552
        (DECL_LOCAL_FINAL_IUD): Removed
1553
        (LOCAL_FINAL_P): Removed.
1554
        (FINAL_VARIABLE_P): Removed.
1555
        (CLASS_FINAL_VARIABLE_P): Removed.
1556
        (DECL_BIT_INDEX): Removed.
1557
        (DECL_INIT_CALLS_THIS): Removed.
1558
        (FIELD_LOCAL_ALIAS): Removed.
1559
        (FIELD_LOCAL_ALIAS_USED): Removed.
1560
        (FIELD_THISN): Removed.
1561
        (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
1562
        (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
1563
        (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
1564
        (TYPE_DOT_CLASS): Removed.
1565
        (TYPE_VERIFY_METHOD): Removed.
1566
        (ID_CLASSDOLLAR_P): Removed.
1567
        (enum java_tree_index) :
1568
        Removed.
1569
        (classdollar_identifier_node): Removed.
1570
        (TYPE_UNKNOWN): Removed.
1571
        (CLASS_FROM_SOURCE_P): Removed.
1572
        * expr.c (build_jni_stub): Update.
1573
        (force_evaluation_order): Update.
1574
        (build_java_empty_stmt): Update.
1575
        (build_class_init): Update.
1576
        (java_stack_swap): Update.
1577
        (build_jni_stub): Update.
1578
 
1579
2007-08-17  Tom Tromey  
1580
 
1581
        * java-tree.h (LABEL_TYPE_STATE): Removed.
1582
        (load_type_state): Removed.
1583
        (LABEL_PC): Removed.
1584
        (LABEL_VERIFIED): Removed.
1585
        (type_states): Declare.
1586
        * expr.c (type_states): New global.
1587
        (load_type_state): Now static.  Use type_states.  Changed
1588
        argument.
1589
        (lookup_label): Don't set LABEL_PC.
1590
        (expand_byte_code): Don't use LABEL_VERIFIED.
1591
        (note_instructions): Initialize type_states.
1592
        * verify-glue.c (vfy_note_stack_depth): Rewrote.
1593
        (vfy_note_stack_type): Use type_states.
1594
        (vfy_note_local_type): Likewise.
1595
 
1596
2007-08-10  Kaveh R. Ghazi  
1597
 
1598
        * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
1599
        * jcf.h (JCF_FINISH): Likewise.
1600
 
1601
2007-07-31  Nick Clifton  
1602
 
1603
        * java-gimplify.c: Change copyright header to refer to version 3
1604
        of the GNU General Public License and to point readers at the
1605
        COPYING3 file and the FSF's license web page.
1606
        * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
1607
        decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
1608
        resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
1609
        javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
1610
        jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
1611
        verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
1612
        parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
1613
 
1614
2007-07-30  Kaveh R. Ghazi  
1615
 
1616
        * jcf-io.c (find_class): Fix -Wcast-qual warnings.
1617
 
1618
2007-07-29  Kaveh R. Ghazi  
1619
 
1620
        * lang.c (java_get_callee_fndecl): Constify.
1621
 
1622
2007-07-27  Kaveh R. Ghazi  
1623
 
1624
        * mangle.c (set_type_package_list): Constify.
1625
        * verify-glue.c (vfy_make_string): Delete.
1626
        * verify.h (vfy_make_string): Likewise.
1627
 
1628
2007-07-26  Tom Tromey  
1629
 
1630
        * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
1631
        (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
1632
        EXIT_BLOCK_LABELED_BLOCK): Likewise.
1633
        * lang.c (java_tree_inlining_walk_subtrees): Update.
1634
        (java_dump_tree): Likewise.
1635
        * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
1636
        Remove.
1637
        * decl.c (push_labeled_block, pop_labeled_block): Remove.
1638
        * java-gimplify.c (java_gimplify_labeled_block_expr,
1639
        java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
1640
        (java_gimplify_expr): Update.
1641
 
1642
2007-07-25  Kaveh R. Ghazi  
1643
 
1644
        * class.c (java_treetreehash_hash, java_treetreehash_compare):
1645
        Constify.
1646
        * expr.c (type_assertion_eq): Likewise.
1647
        * jcf-io.c (compare_path): Likewise.
1648
        * jcf-parse.c (cmpstringp): Likewise.
1649
        * verify-impl.c (get_one_type, compute_argument_types,
1650
        compute_return_type): Likewise.
1651
 
1652
2007-07-16  Rainer Orth  
1653
 
1654
        PR target/32462
1655
        PR libgcj/32465
1656
        * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
1657
 
1658
2007-07-12  Richard Guenther  
1659
 
1660
        * expr.c (expand_java_return): RETURN_EXPR has void type.
1661
        (build_jni_stub): Likewise.  Use a comparison against zero
1662
        for null-pointer test in COND_EXPR.
1663
        (build_field_ref): Build POINTER_PLUS_EXPR with correct
1664
        type.  Convert result instead.
1665
        (build_invokevirtual): Likewise.
1666
 
1667
2007-07-09  Geoffrey Keating  
1668
 
1669
        PR 32617
1670
        * lang.c (java_init): Remove setting of force_align_functions_log.
1671
        * class.c (add_method_1): Set DECL_ALIGN of non-static method
1672
        to cope with ptrmemfunc_vbit_in_pfn.
1673
 
1674
2007-07-03  David Daney  
1675
 
1676
        * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to
1677
        include path.
1678
        (doc/gcj.dvi): Same.
1679
        (doc/gcj.pdf): Same.
1680
        (java/index.html): Same.
1681
 
1682
2007-06-15 Andrew Pinski  
1683
 
1684
        * class.c (make_class_data): Build the index in sizetype.
1685
        Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
1686
        adding to a pointer type.
1687
        (build_symbol_entry): Likewise.
1688
        * expr.c (build_java_arrayaccess): Likewise.
1689
        (build_field_ref): Likewise.
1690
        (build_known_method_ref): Likewise.
1691
        (build_invokevirtual): Likewise.
1692
        * except.c (build_exception_object_ref): Do a
1693
        NEGATIVE and then a POINTER_PLUS_EXPR instead
1694
        of a MINUS_EXPR.
1695
 
1696
2007-06-11  Rafael Ávila de Espíndola  
1697
 
1698
        * typeck.c (java_signed_type): Remove.
1699
        * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
1700
        * java-tree.h (java_signed_type): Remove.
1701
 
1702
2007-05-18  Geoffrey Keating  
1703
 
1704
        * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
1705
        (print_constant): Likewise.
1706
 
1707
2007-05-14  Rafael Ávila de Espíndola  
1708
 
1709
        * expr.c (build_java_binop): Use unsigned_type_for instead of
1710
        java_unsigned_type.
1711
        * java-tree.h (java_unsigned_type): Remove.
1712
        * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
1713
        * typeck.c (java_unsigned_type): Remove.
1714
 
1715
2007-04-21  Andrew Pinski  
1716
 
1717
        * java-tree.h (lang_tree_node): Use GENERIC_NEXT
1718
        instead of checking GIMPLE_STMT_P in chain_next.
1719
 
1720
2007-04-06  Colin Walters  
1721
 
1722
        https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
1723
        * jcf-io.c (open_class): Copy 'filename'.
1724
 
1725
2007-04-03  Andrew Haley  
1726
 
1727
        * jvgenmain.c (main): Change main to use class$, not class$$.
1728
        (do_mangle_classname): Likewise.
1729
        * class.c (hide): New function.
1730
        (add_field): Hide everything that shouldn't be visible outside a
1731
        DSO.
1732
        (build_static_class_ref): Likewise.
1733
        (build_classdollar_field): Likewise.
1734
        (make_class_data): Likewise.
1735
        (layout_class_method): Likewise.
1736
        * expr.c (special_method_p): New function.
1737
 
1738
        * class.c (push_class): Don't bogusly guess the source filename.
1739
        * jcf-parse.c (give_name_to_class): Don't set input_location from
1740
        DECL_ARTIFICIAL decls.
1741
 
1742
2007-03-30  Rafael Ávila de Espíndola  
1743
 
1744
        * typeck.c (java_signed_or_unsigned_type): Removed.
1745
        (java_signed_type): use get_signed_or_unsigned_type instead of
1746
        java_signed_or_unsigned_type.
1747
        (java_unsigned_type): Ditto.
1748
        * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
1749
        * java-tree.h (java_signed_or_unsigned_type): Removed.
1750
 
1751
2007-03-26  Tom Tromey  
1752
 
1753
        * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
1754
        (java.maintainer-clean): Likewise.
1755
        (java.install-man): Likewise.
1756
        (.INTERMEDIATE): Removed grmiregistry.pod.
1757
        (grmiregistry.pod): Removed.
1758
        * gcj.texi (Invoking gcjh): Removed.
1759
        (Invoking gjnih): Likewise.
1760
        (Invoking grmiregistry): Likewise.
1761
        (direntry): Updated.
1762
        (Top): Likewise.
1763
        (which-gcj): Removed.
1764
 
1765
2007-03-01  Brooks Moses  
1766
 
1767
        * Make-lang.in: Add install-pdf target as copied from
1768
        automake v1.10 rules.
1769
 
1770
2007-02-27  Brooks Moses  
1771
 
1772
        * gcj.texi: Standardize title page.
1773
 
1774
2007-02-18  Kazu Hirata  
1775
 
1776
        * class.c: Fix a comment typo.
1777
 
1778
2007-02-15  Sandra Loosemore  
1779
            Brooks Moses  
1780
            Lee Millward  
1781
 
1782
        * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
1783
        of build3.
1784
        (BUILD_MONITOR_EXIT): Likewise.
1785
 
1786
        * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
1787
        (java_gimplify_modify_expr): Likewise.
1788
 
1789
        * class.c (cache_this_class_ref): Use build_call_expr.
1790
        (build_static_field_ref): Likewise.
1791
        (emit_indirect_register_classes): Likewise.
1792
        (emit_register_classes): Likewise.
1793
 
1794
        * resource.c (write_resource_constructor): Use build_call_expr.
1795
 
1796
        * builtins.c (builtin_creator_function): Change interpretation of
1797
        the second parameter to be the whole CALL_EXPR instead of the arglist.
1798
        (max_builtin): Tweak parameter list.  Use new CALL_EXPR accessors.
1799
        (min_builtin): Likewise.
1800
        (abs_builtin): Likewise.
1801
        (java_build_function_call_expr): Likewise.
1802
        (convert_real): Likewise.
1803
        (UNMARSHAL3): Likewise.
1804
        (UNMARSHAL4): Likewise.
1805
        (UNMARSHAL5): Likewise.
1806
        (build_arglist_for_builtin): Delete.  Fix callers to use
1807
        build_call_expr instead.
1808
        (putObject_builtin): Tweak parameter list.  Use new CALL_EXPR
1809
        accessors.
1810
        (compareAndSwapInt_builtin): Likewise.
1811
        (compareAndSwapLong_builtin): Likewise.
1812
        (compareAndSwapObject_builtin): Likewise.
1813
        (putVolatile_builtin): Likewise.
1814
        (getVolatile_builtin): Likewise.
1815
        (VMSupportsCS8_builtin): Likewise.
1816
        (check_for_builtin): Pass entire CALL_EXPR to builtin expander
1817
        instead of arglist.
1818
 
1819
        * expr.c (build_java_athrow): Use build_call_nary instead of build3.
1820
        (build_java_throw_out_of_bounds_exception): Likewise.
1821
        (java_check_reference): Likewise.
1822
        (build_java_arraystore_check): Likewise.
1823
        (build_newarray): Likewise.
1824
        (build_anewarray): Likewise.
1825
        (expand_java_multinewarray): Use build_call_list instead of build3.
1826
        (build_java_monitor): Use build_call_nary instead of build3.
1827
        (java_create_object): Likewise.
1828
        (expand_java_NEW): Likewise.
1829
        (build_instanceof): Likewise.
1830
        (expand_java_CHECKCAST): Likewise.
1831
        (build_java_soft_divmod): Likewise.
1832
        (build_java_binop): Likewise.
1833
        (build_field_ref): Likewise.
1834
        (build_class_init): Likewise.
1835
        (rewrite_arglist_getcaller): Use build_call_expr.
1836
        (build_invokeinterface):  Use build_call_nary instead of build3.
1837
        (expand_invoke): Use build_call_list instead of build3.
1838
        (build_jni_stub): Use build_call_nary, build_call_list, or
1839
        build_call_expr instead of build3.
1840
        (expand_java_field_op): Use build_call_expr instead of build3.
1841
        (force_evaluation_order): Use new CALL_EXPR accessors.
1842
 
1843
        * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
1844
 
1845
2007-02-15  David Daney  
1846
 
1847
        * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
1848
        (java.maintainer-clean):Add gc-analyze.1.
1849
        (.INTERMEDIATE): Add gc-analyze.pod.
1850
        (gc-analyze.pod): New rule.
1851
        (java.install-man): Install gc-analyze.1
1852
        * gcj.texi: Add new section for the gc-analyze program.
1853
 
1854
2007-02-07  Andrew Haley  
1855
 
1856
        * class.c (uncache_this_class_ref): New.
1857
        * expr.c (build_jni_stub): Initialize the class.
1858
        (expand_byte_code): Call uncache_this_class_ref after generating
1859
        code.
1860
 
1861
2007-02-06  Tom Tromey  
1862
 
1863
        PR java/30714:
1864
        * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
1865
 
1866
2007-02-03  Kazu Hirata  
1867
 
1868
        * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
1869
 
1870
2007-02-02  Andrew Haley  
1871
 
1872
        * expr.c (expand_byte_code): Call cache_this_class_ref() and
1873
        cache_cpool_data_ref().
1874
        Set TYPE_CPOOL_DATA_REF.
1875
        (cache_cpool_data_ref): New function.
1876
        * constants.c (build_ref_from_constant_pool): Remove special-case
1877
        code for flag_indirect_classes.
1878
        (build_constant_data_ref): Move special-case code for
1879
        flag_indirect_classes here from build_ref_from_constant_pool.
1880
        * decl.c (finish_method): Move class initialization from here to
1881
        cache_this_class_ref.
1882
        * class.c (cache_this_class_ref): New function.
1883
        (build_class_ref): Use this_classdollar for the ouput class.
1884
 
1885
2007-02-02  David Daney  
1886
 
1887
        * class.c (is_compiled_class): Move check to avoid reloading
1888
        current class.
1889
        (layout_class_method): Don't calculate DECL_EXTERNAL if it is
1890
        already set.
1891
 
1892
2007-02-01  Andrew Haley  
1893
 
1894
        PR java/30641
1895
        * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
1896
 
1897
2007-01-31  Kazu Hirata  
1898
 
1899
        * class.c, jcf-parse.c: Fix comment typos.
1900
 
1901
2007-01-30  Tom Tromey  
1902
 
1903
        * gcj.texi (Strings): Fix documentation for JvNewString.
1904
 
1905
2007-01-30  Ralf Wildenhues  
1906
 
1907
        * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
1908
        typos.
1909
 
1910
2007-01-30  Ben Elliston  
1911
 
1912
        * jvspec.c (lang_specific_driver): Remove unused classpath_args.
1913
 
1914
2007-01-29  Tom Tromey  
1915
 
1916
        PR java/30607:
1917
        * jvspec.c (lang_specific_driver): Handle separate -I argument.
1918
        * lang.opt (-I): Add 'Separate'.
1919
 
1920
2007-01-29  Andrew Haley  
1921
 
1922
        * class.c (add_method_1): Mark fndecl as external unless we are
1923
        compiling it into this object file.
1924
 
1925
2007-01-24  Andrew Haley  
1926
 
1927
        * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
1928
        type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
1929
 
1930
2007-01-22  Andrew Haley  
1931
 
1932
        * builtins.c (VMSupportsCS8_builtin): New function.
1933
 
1934
2007-01-23  Andrew Pinski  
1935
 
1936
        PR java/30454
1937
        * jcf-io.c (opendir_in_zip): Close the file
1938
        and free zipf before returning after an error.
1939
 
1940
2007-01-16  Tom Tromey  
1941
 
1942
        * java-tree.def: Added copyright header.
1943
 
1944
2007-01-15  Tom Tromey  
1945
 
1946
        * lang.c (dump_compound_expr) : Removed
1947
        case.
1948
        * java-gimplify.c (java_gimplify_expr) :
1949
        Removed case.
1950
        * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
1951
        (EXPR_WFL_NODE): Likewise.
1952
        (EXPR_WFL_LINECOL): Likewise.
1953
        (EXPR_WFL_FILENAME): Likewise.
1954
        (EXPR_WFL_LINENO): Likewise.
1955
        (build_expr_wfl, expr_add_location): Don't declare.
1956
        (build_unknown_wfl): Removed.
1957
        (EXPR_WFL_FILENAME_NODE): Removed.
1958
        (EXPR_WFL_COLNO): Removed.
1959
        (EXPR_WFL_SET_LINECOL): Removed.
1960
        (DECL_FUNCTION_WFL): Removed.
1961
        (DECL_FIELD_FINAL_WFL): Removed.
1962
        (struct lang_decl_func) : Removed field.
1963
        : Likewise.
1964
        : Likewise.
1965
        (struct lang_decl_var) : Removed field.
1966
        (DECL_CONSTRUCTOR_CALLS): Removed.
1967
        (DECL_FUNCTION_ACCESS_DECL): Likewise.
1968
        (DECL_FUNCTION_INNER_ACCESS): Likewise.
1969
        (DECL_SPECIFIC_COUNT): Likewise.
1970
        * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
1971
        * expr.c (build_expr_wfl): Removed.
1972
        (expr_add_location): Likewise.
1973
 
1974
2007-01-12  Tom Tromey  
1975
 
1976
        * jcf-dump.c (main): Updated call to find_class.
1977
        * lang.c (java_init): Removed dead code.
1978
        * jcf-parse.c (read_class): Don't use java_source field.  Removed
1979
        dead code.
1980
        (parse_zip_file_entries): Don't use java_source field.
1981
        (process_zip_dir): Likewise.
1982
        (jcf_parse): Removed dead code.
1983
        (java_parse_file): Likewise.
1984
        (read_class): Updated call to find_class.
1985
        * jcf-io.c (find_class): Don't use java_source field.  Removed
1986
        'source_ok' argument, .java logic.
1987
        * jcf.h (JCF) : Removed field.
1988
        (JCF_ZERO): Updated.    (find_class): Updated.
1989
        * decl.c: Removed dead code.
1990
        * class.c: Removed dead code.
1991
 
1992
2007-01-11  Tom Tromey  
1993
 
1994
        * typeck.c (convert): Don't use flag_emit_class_files.
1995
        * lang.c (java_post_options): Don't use flag_emit_class_files.
1996
        (java_handle_option): Don't use flag_extraneous_semicolon or
1997
        flag_redundant.
1998
        * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
1999
        flag_emit_class_files.
2000
        (load_class): Likewise.
2001
        * java-tree.h (flag_emit_class_files): Don't declare.
2002
        (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
2003
        (flag_extraneous_semicolon): Don't declare.
2004
        (flag_not_overriding): Likewise.
2005
        (flag_static_local_jdk1_1): Likewise.
2006
        (flag_redundant): Likewise.
2007
        * expr.c (build_newarray): Don't use flag_emit_class_files.
2008
        * class.c (DEFAULT_ENABLE_ASSERT): Don't use
2009
        flag_emit_class_files.
2010
        (build_class_ref): Likewise.
2011
        * builtins.c (check_for_builtin): Don't use
2012
        flag_emit_class_files.
2013
 
2014
2007-01-10  Tom Tromey  
2015
 
2016
        * lang.c (java_can_use_bit_fields_p): Removed.
2017
        (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
2018
 
2019
2007-01-09  Andrew Haley  
2020
 
2021
        * expr.c (build_java_arrayaccess): Rewrite to generate array
2022
        access in canonical form.
2023
        (expand_java_arraystore): Use build_fold_addr_expr() on address of
2024
        array access.
2025
 
2026
2007-01-03  Andrew Haley  
2027
 
2028
        PR java/28754
2029
        * expr.c (expand_java_field_op): If we're initializing a field's
2030
        declaring interface we should not also initialize the class
2031
        context in which it was referenced.
2032
 
2033
2007-01-02  Tom Tromey  
2034
 
2035
        * java-tree.h (compiling_from_source, current_encoding,
2036
        JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
2037
        JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
2038
        JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
2039
        JTI_WFL_OPERATOR): Removed
2040
        (finit_identifier_node, instinit_identifier_node,
2041
        length_identifier_node, super_identifier_node,
2042
        continue_identifier_node, access0_identifier_node, wfl_operator):
2043
        Removed.
2044
        (cyclic_inheritance_report,
2045
        DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
2046
        DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
2047
        DECL_FIXED_CONSTRUCTOR_P): Removed.
2048
        (struct lang_decl_func) :
2049
        Removed.
2050
        (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
2051
        TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
2052
        (struct lang_type) 
2053
        import_list, import_demand_list>: Removed.
2054
        (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
2055
        cxx_keyword_p): Removed.
2056
        (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
2057
        TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
2058
        CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
2059
        IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
2060
        IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
2061
        PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
2062
        CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
2063
        LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
2064
        RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
2065
        IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
2066
        NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
2067
        PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
2068
        CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
2069
        CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
2070
        FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
2071
        BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
2072
        java_parse_abort_on_error, extract_field_decl): Removed.
2073
        (finput): Declare.
2074
        * lang.c: (compiling_from_source, current_encoding): Removed.
2075
        (java_handle_option): Ignore -fencoding.
2076
        * parse.h: Don't include lex.h.
2077
        (java_error_count, int_fits_type_p, stabilize_reference, RULE,
2078
        RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
2079
        YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
2080
        INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
2081
        INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
2082
        MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
2083
        ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
2084
        CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
2085
        OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
2086
        BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
2087
        JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
2088
        JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
2089
        IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
2090
        MANGLE_OUTER_LOCAL_VARIABLE_NAME,
2091
        MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
2092
        MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
2093
        SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
2094
        UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
2095
        AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
2096
        AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
2097
        ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
2098
        ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
2099
        LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
2100
        LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
2101
        LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
2102
        PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
2103
        IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
2104
        ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
2105
        INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
2106
        INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
2107
        JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
2108
        JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
2109
        JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
2110
        jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
2111
        JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
2112
        STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
2113
        BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
2114
        EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
2115
        GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
2116
        COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
2117
        BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
2118
        PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
2119
        CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
2120
        CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
2121
        GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
2122
        GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
2123
        GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
2124
        PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
2125
        CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
2126
        CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
2127
        CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
2128
        SET_CPC_STATIC_INITIALIZER_STMT,
2129
        SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
2130
        java_complete_class, java_check_circular_reference,
2131
        java_fix_constructors, java_layout_classes, java_reorder_fields,
2132
        java_method_add_stmt, java_get_line_col, reset_report,
2133
        java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
2134
        java_finish_classes, ctxp, ctxp_for_generation,
2135
        ctxp_for_generation_last): Removed.
2136
        * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
2137
        * mangle.c (utf8_cmp): New function.
2138
        (cxx_keywords): New global.
2139
        (cxx_keyword_p): New function.
2140
        * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
2141
        * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
2142
        NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
2143
        CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
2144
        THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
2145
        CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
2146
        * Make-lang.in (java.srcextra): Do nothing.
2147
        (parse.c, keyword.h, gt-java-parse.h): Removed targets.
2148
        (JAVA_OBJS): Don't mention deleted files.
2149
        (java.mostlyclean): Likewise.
2150
        (java.clean): Likewise.
2151
        (JAVA_LEX_C): Removed.
2152
        (buffer.o, check-init.o, parse.o): Remove unused targets.
2153
        (typeck.o): Updated.
2154
        * jcf-parse.c (read_class): Comment out unused code.
2155
        (java_layout_seen_class_methods): New function.
2156
        (parse_source_file_1, parse_source_file_2, parse_source_file_3):
2157
        Removed.
2158
        (java_parse_file): Comment out unused code.  Don't use 'ctxp'.
2159
        (init_jcf_parse): Removed.
2160
        * config-lang.in (gtfiles): Remove deleted files.
2161
        * decl.c (java_init_decl_processing): Don't initialize
2162
        finit_identifier_node, instinit_identifier_node,
2163
        length_identifier_node, super_identifier_node,
2164
        continue_identifier_node, access0_identifier_node.  Don't call
2165
        init_jcf_parse.
2166
        * class.c (cyclic_inheritance_report): New global.
2167
        (add_method_1): Don't use
2168
        DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
2169
        (maybe_layout_super_class): Comment out code.
2170
        (safe_layout_class): New function.
2171
        * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
2172
        DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
2173
        UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
2174
        NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
2175
        INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
2176
        (java_gimplify_case_expr): Removed.
2177
        (java_gimplify_default_expr): Likewise.
2178
        (java_gimplify_new_array_init): Likewise.
2179
        * parse.y: Removed.
2180
        * keyword.gperf, keyword.h: Removed.
2181
        * chartables.h: Removed.
2182
        * check-init.c: Removed.
2183
        * buffer.c, buffer.h: Removed.
2184
        * convert.h: Removed.
2185
        * gen-table.pl: Removed.
2186
        * lex.c, lex.h: Removed.
2187
 
2188
2007-01-02  Andrew Haley  
2189
 
2190
        * expr.c (expand_java_arraystore): Make sure we perform a bounds
2191
        check at runtime before we perform a type check.
2192
 
2193
2006-12-19  Andrew Haley  
2194
 
2195
        * decl.c: Bump minor BC ABI version.
2196
 
2197
2006-12-13  Gary Benson  
2198
 
2199
        * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
2200
 
2201
2006-12-12  Tom Tromey  
2202
 
2203
        * lang-specs.h: Pass -M options to jc1.
2204
        * jcf-depend.c (jcf_dependency_add_file): Don't emit
2205
        dependencies.
2206
 
2207
2006-12-07  Mohan Embar  
2208
 
2209
        * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
2210
 
2211
2006-12-06  Mohan Embar  
2212
 
2213
        * lang-specs.h: Pass '%U'-based options as separate arguments.
2214
 
2215
2006-12-05  Tom Tromey  
2216
 
2217
        PR java/29495:
2218
        * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
2219
        classes as well.
2220
        * class.c (add_field): Handle ACC_SYNTHETIC.
2221
        (add_method_1): Likewise.  Handle bridge and varargs.
2222
        (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
2223
        annotation.
2224
        (set_class_decl_access_flags): Handle synthetic and annotation.
2225
        * java-tree.h (METHOD_BRIDGE): New macro.
2226
        (METHOD_VARARGS): Likewise.
2227
        (TYPE_SYNTHETIC): Likewise.
2228
        (TYPE_ANNOTATION): Likewise.
2229
        (lang_type): New fields 'synthetic' and 'annotation'.
2230
        (lang_decl_func): New fields 'varargs' and 'bridge'.
2231
 
2232
2006-12-04  Andrew Haley  
2233
 
2234
        * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
2235
        there's no map.
2236
 
2237
2006-11-29  Gary Benson  
2238
 
2239
        * expr.c (rewrite_arglist_getcaller): Reorder.
2240
 
2241
2006-11-29  Andrew Haley  
2242
 
2243
        * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
2244
        * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
2245
 
2246
2006-11-23  Andrew Haley  
2247
 
2248
        * expr.c (rewrite_arglist_getcaller): New.
2249
        (rewrite_arglist_getclass): Fix indentation.
2250
        (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and
2251
        gnu.classpath.VMStackWalker.getCallingClassLoader().
2252
        * builtins.c (initialize_builtins): Remove duplicate def'n of
2253
        __sync_synchronize.
2254
        Add __builtin_return_address.
2255
 
2256
2006-11-22  Andrew Haley  
2257
 
2258
        * jcf-reader.c (get_attribute): Mark attr_type unused.
2259
 
2260
        * builtins.c (compareAndSwapObject_builtin): Fix declaration.
2261
 
2262
2007-01-08  Richard Guenther  
2263
 
2264
        * lex.c (do_java_lex): Use build_int_cst_wide_type.
2265
        * jcf-parse.c (get_constant): Likewise.
2266
 
2267
2006-11-12  Jan Hubicka  
2268
 
2269
        * resource.c (compile_resource_data): Update for new varpool names.
2270
        * java/class.c (build_utf8_ref): Likewise.
2271
 
2272
2006-11-12  David Daney  
2273
 
2274
        PR java/29805
2275
        * typeck.c (build_java_array_type): Increase buffer sizes.
2276
 
2277
2006-11-11  Richard Guenther  
2278
 
2279
        * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
2280
        FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
2281
 
2282
2006-11-06  Andrew Haley  
2283
 
2284
        * java-tree.h (CONSTANT_LazyFlag): New.
2285
        * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
2286
        * jcf-parse.c (handle_innerclass_attribute): Write attribute to
2287
        reflection_data.
2288
        (handle_constant): Return 0 for dummy cpool entries.
2289
        Handle constants of kind Class.
2290
        Handle constants of kind NameAndType.
2291
        (handle_enclosingmethod_attribute): New.
2292
        (handle_signature_attribute): New.
2293
        (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
2294
        (HANDLE_SIGNATURE_ATTRIBUTE): New.
2295
        (handle_constant): Use unmangle_classname()rather than calling
2296
        identifier_subst() directly.
2297
 
2298
2006-11-02  Andrew Haley  
2299
 
2300
        * java-tree.h (FIELD_ENUM): New.
2301
        (lang_decl_var.field_enum): New.
2302
        (lang_type.enum_class): New.
2303
        (CLASS_ENUM): New.
2304
        * class.c (set_class_decl_access_flags): Handle enum types.
2305
        (add_field): Handle enum fields.
2306
        (get_access_flags_from_decl): Likewise.
2307
 
2308
        * class.c (make_class_data): Put reflection_data into rodata.
2309
 
2310
2006-11-01  Andrew Haley  
2311
 
2312
        * jcf-parse.c (field_offsets, bit_obstack): New variables.
2313
        (jcf_parse): Write end marker to annotation_data.
2314
        (java_parse_file): Create field_offsets bitmap.  Destroy it.
2315
        (annotation_grow, annotation_rewrite_byte)
2316
        (annotation_rewrite_short, annotation_rewrite_int)
2317
        (annotation_read_short, annotation_write_byte)
2318
        (annotation_write_short, annotation_write_int)
2319
        (handle_long_constant, handle_constant, handle_element_value)
2320
        (handle_annotation, handle_annotations)
2321
        (handle_annotation_attribute, rewrite_reflection_indexes)
2322
        (handle_member_annotations, handle_parameter_annotations)
2323
        (handle_default_annotation): New functions.
2324
        (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE)
2325
        (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE)
2326
        (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
2327
        (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
2328
        (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
2329
        * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New.
2330
        (TYPE_REFLECTION_DATA): New.
2331
        (TYPE_REFLECTION_DATASIZE): New.
2332
        * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
2333
        an enum.
2334
        * jcf-reader.c (get_attribute): Pass field/method index and
2335
        attribute type to get_attribute().
2336
        * constants.c (find_class_or_string_constant): Make nonstatic.
2337
        (cpool_for_class): Likewise.
2338
        (build_constants_constructor): Separate string and scalar types.
2339
        * class.c (make_class_data): Generate field_indexes permutation.
2340
        Pass it to rewrite_reflection_indexes().
2341
        (make_class_data): Generate constructor for reflection_data field.
2342
 
2343
2006-10-20  Tom Tromey  
2344
 
2345
        * gcj.texi (Top): Don't mention jv-scan.
2346
        (Invoking gcj): Likewise.
2347
        (Invoking gcjh): Likewise.
2348
        (Invoking gjnih): Likewise.
2349
        (Invoking gij): Likewise.
2350
        (Invoking gcj-dbtool): Likewise.
2351
        (Invoking jv-scan): Removed.
2352
        * parse-scan.y: Removed.
2353
        * jv-scan.c: Removed.
2354
        * config-lang.in (stagestuff): Don't mention jv-scan.
2355
        * Make-lang.in (java): Removed jv-scan.
2356
        (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2357
        (JVSCAN_OBJS): Removed.
2358
        (jv-scan$(exeext)): Likewise.
2359
        (JAVA_MANFILES): Removed jv-scan.1.
2360
        (java.uninstall): Don't mention jv-scan.
2361
        (java.mostlyclean): Likewise.
2362
        (java.maintainer-clean): Likewise.
2363
        (.INTERMEDIATE): Likewise.
2364
        (java/jv-scan.o): Removed.
2365
        (jv-scan.pod): Likewise.
2366
        (java.srcextra): Don't mention parse-scan.c.
2367
        (java.mostlyclean): Likewise.
2368
        (java/parse-scan.c): Removed.
2369
        (java/parse-scan.o-warn): Removed.
2370
        (java/parse-scan.o): Removed.
2371
 
2372
2006-10-20  Tom Tromey  
2373
 
2374
        * lang.c (java_handle_option): Don't use
2375
        jcf_write_base_directory.
2376
        * jcf.h (jcf_write_base_directory): Removed.
2377
        * parse.y (java_expand_classes): Don't call write_classfile.
2378
        * config-lang.in (gtfiles): Removed jcf-write.c.
2379
        * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
2380
        (java/jcf-write.o): Removed.
2381
        * jcf-parse.c (parse_class_file): Don't call write_classfile.
2382
        * java-tree.h (write_classfile): Removed declaration.
2383
        * jcf-write.c: Removed.
2384
 
2385
2006-10-20  Tom Tromey  
2386
 
2387
        * Make-lang.in (java): Removed gjnih, gcjh.
2388
        (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2389
        (GCJH_OBJS): Removed.
2390
        (GJNIH_OBJS): Likewise.
2391
        (gjnih$(exeext)): Likewise.
2392
        (gcjh$(exeext)): Likewise.
2393
        (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
2394
        (java.install-common): Don't special case gcjh.
2395
        (java.uninstall): Don't mention gcjh, gjnih.
2396
        (java.mostlyclean): Likewise.
2397
        (java.maintainer-clean): Likewise.
2398
        (.INTERMEDIATE): Likewise.
2399
        (gcjh.pod): Removed.
2400
        (gjnih.pod): Likewise.
2401
        (GCJH_TARGET_INSTALL_NAME): Removed.
2402
        (java/gjavah-jni.o): Removed.
2403
        (java/gjavah.o): Likewise.
2404
        * config-lang.in (stagestuff): Removed gjnih, gcjh.
2405
        * gjavah.c: Removed.
2406
 
2407
2006-10-17  Tom Tromey  
2408
 
2409
        * jcf-dump.c (print_element_value): Expect a utf8 constant in the
2410
        "string" case.
2411
 
2412
2006-10-17  Tom Tromey  
2413
 
2414
        * jvgenmain.c (main): Handle -findirect-dispatch.
2415
        * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
2416
        jvgenmain.
2417
 
2418
2006-10-06  Andrew Haley  
2419
 
2420
        * builtins.c (compareAndSwapInt_builtin): Check that we really do
2421
        have a compare_and_swap builtin.
2422
        (compareAndSwapLong_builtin): Likewise.
2423
        (compareAndSwapObject_builtin): Likewise.
2424
 
2425
2006-10-04  Andrew Haley  
2426
 
2427
        * builtins.c (java_builtins): Add compareAndSwapInt,
2428
        compareAndSwapLong, compareAndSwapObject, putOrderedInt,
2429
        putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
2430
        putObjectVolatile, getObjectVolatile, getIntVolatile,
2431
        getLongVolatile, getLong.
2432
        (UNMARSHAL3): New macro.
2433
        (UNMARSHAL4): Likewise.
2434
        (UNMARSHAL5): Likewise.
2435
        (build_arglist_for_builtin): New function.
2436
        (build_addr_sum, build_check_this): New functions.
2437
        (putObject_builtin. compareAndSwapInt_builtin,
2438
        compareAndSwapLong_builtin, compareAndSwapObject_builtin,
2439
        putVolatile_builtin, getVolatile_builtin): New builtins.
2440
 
2441
2006-06-08  Andrew Haley  
2442
 
2443
        * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2444
        get_symbol_table_index().
2445
        (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2446
        private method.
2447
        (build_known_method_ref): New arg: special.  Pass it to
2448
        get_symbol_table_index.
2449
        (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2450
        the method list.
2451
        (build_invokevirtual): New arg: special.  Pass it to
2452
        get_symbol_table_index.
2453
        (expand_invoke): New variable: special.
2454
        Pass it to maybe_rewrite_invocation().
2455
        Pass it to build_known_method_ref().
2456
        * class.c (build_symbol_entry): Add new arg: special.  Use it to
2457
        build the symbol table conbstructor.
2458
        (emit_symbol_table): Extract SPECIAL from the method list and pass
2459
        it to build_symbol_entry().
2460
        * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2461
        special accordingly.
2462
 
2463
2006-09-08  Andrew Haley  
2464
 
2465
        * class.c (layout_class_method): Use build_java_signature, not
2466
        build_java_argument_signature.  Use lookup_java_method, not
2467
        lookup_argument_method.
2468
 
2469
2006-08-16  Jakub Jelinek  
2470
            Bryce McKinlay  
2471
 
2472
        * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2473
 
2474
2006-07-18  Tom Tromey  
2475
 
2476
        * lang.opt: Added missing -W options.
2477
 
2478
2006-07-12  Tom Tromey  
2479
 
2480
        PR java/28329:
2481
        * lang-specs.h: Pass '%U'-based options as separate arguments.
2482
        Use -faux-classpath.
2483
        * lang.c (java_handle_option): Handle OPT_faux_classpath.
2484
        * lang.opt (faux-classpath): New option.
2485
 
2486
2006-07-07  Tom Tromey  
2487
 
2488
        * class.c (make_class_data): Set value for reflection_data field.
2489
        * decl.c (java_init_decl_processing): Add reflection_data field.
2490
 
2491
2006-07-07  Tom Tromey  
2492
 
2493
        * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
2494
        earlier.
2495
        (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2496
 
2497
2006-07-07  Andrew Haley  
2498
 
2499
        * jcf-parse.c (set_source_filename): Don't check for
2500
        CLASS_FROM_CURRENTLY_COMPILED_P.
2501
        Remove // comments.
2502
 
2503
2006-07-07  Andrew Haley  
2504
 
2505
        * java-tree.h (java_read_sourcefilenames): Declare.
2506
        * lang.c (java_handle_option): Call java_read_sourcefilenames().
2507
        * lang.opt (fsource-filename): New opt.
2508
        * lang-specs.h: Add -fsource-filename.
2509
        * jcf-parse.c (num_files, filenames): New variables.
2510
        (reverse, cmpstringp, java_read_sourcefilenames,
2511
        find_sourcefile): New.
2512
        (set_source_filename): Call find_sourcefile to find the real name
2513
        of a source file.
2514
 
2515
2006-06-27  Tom Tromey  
2516
 
2517
        * jcf-reader.c (get_attribute): Handle EnclosingMethod,
2518
        Signature, LocalVariableTypeTable, annotation attributes.
2519
        * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
2520
        (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2521
        (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
2522
        (HANDLE_METHOD): Likewise.
2523
        (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
2524
        (print_annotation): New function.
2525
        (print_element_value): Likewise.
2526
        (indent): Likewise.
2527
        (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
2528
        (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
2529
        (print_parameter_annotations): New function.
2530
        (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
2531
        (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
2532
        Likewise.
2533
        (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
2534
        (print_annotations): New function.
2535
 
2536
2006-06-23  Tom Tromey  
2537
 
2538
        * lang-specs.h: Default -fsource and -ftarget to 1.5.  If
2539
        emitting class files, always use 1.5.
2540
        * gcj.texi (Input Options): Document -fsource.
2541
        (Code Generation): Document -ftarget.
2542
 
2543
2006-06-21  Tom Tromey  
2544
 
2545
        PR java/28089:
2546
        * expr.c (expand_java_field_op): Initialize field's declaring
2547
        class.
2548
 
2549
2006-06-20  Tom Tromey  
2550
 
2551
        * expr.c (push_value): Always flush quick stack.
2552
 
2553
2006-06-19  Tom Tromey  
2554
 
2555
        * expr.c (push_value): Also flush quick stack if value is a
2556
        component_ref.
2557
 
2558
2006-06-19  Tom Tromey  
2559
 
2560
        * expr.c (push_value): Flush quick stack if value has side
2561
        effects.
2562
 
2563
2006-06-13  Tom Tromey  
2564
 
2565
        * class.c (is_compiled_class): Explicitly check for current
2566
        class.
2567
 
2568
2006-06-09  Tom Tromey  
2569
 
2570
        * gjavah.c (decompile_method): Don't decompile a static field
2571
        accessor method.
2572
 
2573
2006-06-06  Tom Tromey  
2574
 
2575
        * lang-specs.h : Add .jar file to command line if
2576
        -fsaw-java-file.  Also, remove -ffilelist-file in this case.
2577
 
2578
2006-06-05  Tom Tromey  
2579
 
2580
        * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2581
        synthetic, enum, annotation.
2582
        * jcf.h (ACC_BRIDGE): New macro.
2583
        (ACC_VARARGS): Likewise.
2584
        (ACC_SYNTHETIC): Likewise.
2585
        (ACC_ENUM): Likewise.
2586
        (ACC_ANNOTATION): Likewise.
2587
 
2588
2006-06-04  Tom Tromey  
2589
 
2590
        * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
2591
        * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
2592
        and -ftarget.
2593
        (lang_specific_driver): Removed dead code.  Add -fsaw-java-file
2594
        when needed.  Handle classpath-setting.
2595
        * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
2596
        * lang-specs.h: Rewrote.
2597
 
2598
2006-06-04  Tom Tromey  
2599
 
2600
        * jcf-io.c (find_class): Set source_ok to 0.
2601
        * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
2602
        (parse_class_file): Don't call java_mark_class_local.
2603
        (java_parse_file): Skip .java files.  Call java_mark_class_local
2604
        before lowering any code.
2605
        (parse_zip_file_entries): Don't call duplicate_class_warning
2606
        here.
2607
        (process_zip_dir): ... call it here.
2608
        * class.c (add_field): Don't mark field external if it is being
2609
        compiled into this object.
2610
        (make_class_data): Handle situation where class_dtable_decl is
2611
        created before Class is compiled.
2612
        (is_compiled_class): Don't assume files in zip are compiled into
2613
        this object.
2614
        (layout_class_method): Don't mark method external if it is being
2615
        compiled into this object.
2616
 
2617
2006-06-04  Tom Tromey  
2618
 
2619
        * jcf-path.c (jcf_path_compute): New function.
2620
        * jcf.h (jcf_path_compute): Declare.
2621
 
2622
2006-10-23 Rafael Ávila de Espíndola  
2623
 
2624
        * decl.c: Include langhooks.h.
2625
        (builtin_function): Remove.
2626
        (java_init_decl_processing): Replace calls to builtin_function
2627
        with add_builtin_function.
2628
        * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
2629
        (java/decl.o): Depend on langhooks.h.
2630
        * java-tree.h (builtin_function): Remove.
2631
 
2632
2006-10-10  Brooks Moses  
2633
 
2634
        * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
2635
 
2636
2006-09-12  Tom Tromey  
2637
 
2638
        * expr.c (push_value): Always flush quick stack.
2639
 
2640
2006-09-12  Tom Tromey  
2641
 
2642
        PR java/29013:
2643
        * jcf-write.c (generate_bytecode_insns) : Always note
2644
        the push of the called method's return result.
2645
 
2646
2006-09-12  Tom Tromey  
2647
 
2648
        * jvspec.c (lang_specific_driver): Read spec file even if
2649
        -fsyntax-only.
2650
 
2651
2006-09-12  Tom Tromey  
2652
 
2653
        PR java/28754:
2654
        * expr.c (expand_java_field_op): Initialize field's declaring
2655
        interface if necessary.
2656
 
2657
2006-09-12  Tom Tromey  
2658
 
2659
        PR java/28892:
2660
        * expr.c (expand_java_field_op): No error for assignments not in
2661
        class initializer or constructor.
2662
 
2663
2006-08-22  Andrew Haley  
2664
 
2665
        * decl.c (java_add_stmt): Give the statement list a type.
2666
 
2667
2006-08-16  Jakub Jelinek  
2668
            Bryce McKinlay  
2669
 
2670
        * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2671
 
2672
2006-08-10  Simon Martin  
2673
 
2674
        PR java/8923
2675
        * parse.y (build_incdec): Emit an error instead of an ICE if '++'
2676
        or '--' is used with a constant operand.
2677
        (java_complete_lhs): When processing a '++' or '--' expression,
2678
        don't call java_complete_tree but java_complete_lhs, so that a
2679
        static final variable operand is never replaced by its value. This
2680
        avoids an ICE later on.
2681
        (patch_unaryop): Fixed typo in comment.
2682
 
2683
2006-07-28  Volker Reichelt  
2684
 
2685
        * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2686
 
2687
2006-07-12  Bryce McKinlay  
2688
 
2689
        * builtins.c (check_for_builtin): If a builtin could result in a
2690
        direct call being generated, don't use it if flag_indirect_dispatch
2691
        is set.
2692
 
2693
2006-07-12  Bryce McKinlay  
2694
 
2695
        * gcj.texi (Invocation): Corrections for Invocation API example.
2696
 
2697
2006-07-04  Andrew Haley  
2698
 
2699
        * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
2700
        entry.
2701
 
2702
2006-06-21  Andrew Haley  
2703
 
2704
        * java-tree.h (update_aliases): Remove
2705
        * expr.c (expand_iinc): Remove call to update_aliases().
2706
        (STORE_INTERNAL): Likewise.
2707
        * decl.c (update_aliases, initialize_local_variable)
2708
        (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
2709
 
2710
2006-06-19  Andrew Haley  
2711
 
2712
        PR java/1305
2713
        PR java/27908
2714
        * expr.c (java_modify_addr_for_volatile): New function.
2715
        (expand_java_field_op): Handle volatile fields.
2716
        * java-gimplify.c (java_gimplify_component_ref): Call
2717
        java_modify_addr_for_volatile to give the field_ref the correct
2718
        volatile type.
2719
        (java_gimplify_modify_expr): Likewise.
2720
        * java-tree.h (java_modify_addr_for_volatile): New decl.
2721
 
2722
2006-06-17  Karl Berry  
2723
 
2724
        * gcj.texi (@dircategory): Use "Software development" instead
2725
        of "Programming", following the Free Software Directory.
2726
 
2727
2006-06-16  Andrew Haley  
2728
 
2729
        * class.c (make_class_data): When using flag_indirect_classes,
2730
        don't initialize the vtable of Class instances.
2731
 
2732
2006-06-09  Andrew Haley  
2733
 
2734
        PR java/1305
2735
        PR java/27908
2736
        * builtins.c (initialize_builtins): Add __sync_synchronize().
2737
        * class.c (add_field): Mark volatile fields.
2738
        * java-gimplify.c (java_gimplify_expr): Call new functions to
2739
        handle self-modifying exprs and COMPONENT_REFs.
2740
        (java_gimplify_component_ref): New.
2741
        (java_gimplify_modify_expr): Add handling for volatiles.
2742
 
2743
2006-06-08  Tom Tromey  
2744
 
2745
        * gcj.texi (libgcj Runtime Properties): Document
2746
        gnu.gcj.user.realname.
2747
 
2748
2006-06-08  Andrew Haley  
2749
 
2750
        * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2751
        get_symbol_table_index().
2752
        (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2753
        private method.
2754
        (build_known_method_ref): New arg: special.  Pass it to
2755
        get_symbol_table_index.
2756
        (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2757
        the method list.
2758
        (build_invokevirtual): New arg: special.  Pass it to
2759
        get_symbol_table_index.
2760
        (expand_invoke): New variable: special.
2761
        Pass it to maybe_rewrite_invocation().
2762
        Pass it to build_known_method_ref().
2763
        * class.c (build_symbol_entry): Add new arg: special.  Use it to
2764
        build the symbol table conbstructor.
2765
        (emit_symbol_table): Extract SPECIAL from the method list and pass
2766
        it to build_symbol_entry().
2767
        * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2768
        special accordingly.
2769
 
2770
2006-06-06  David Daney  
2771
 
2772
        * gcj.texi (libgcj Runtime Properties): Document
2773
        gnu.gcj.runtime.NameFinder.show_raw and
2774
        gnu.gcj.runtime.NameFinder.remove_unknown.
2775
 
2776
2006-06-06  Tom Tromey  
2777
 
2778
        * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2779
        synthetic, enum, annotation.
2780
        * jcf.h (ACC_BRIDGE): New macro.
2781
        (ACC_VARARGS): Likewise.
2782
        (ACC_SYNTHETIC): Likewise.
2783
        (ACC_ENUM): Likewise.
2784
        (ACC_ANNOTATION): Likewise.
2785
 
2786
2006-06-06  Mike Stump  
2787
 
2788
        * Make-lang.in: Rename to htmldir to build_htmldir to avoid
2789
        installing during build.
2790
 
2791
2006-05-31  Thomas Fitzsimmons  
2792
 
2793
        * gcj.texi (Extensions): Document the new gcj-dbtool-based
2794
        classname-to-library resolution mechanism.
2795
        Declare the old gnu.gcj.runtime.VMClassLoader.library_control
2796
        mechanism deprecated.
2797
        (libgcj Runtime Properties): Document
2798
        gnu.gcj.runtime.VMClassLoader.library_control's new default.
2799
 
2800
2006-05-29  Jakub Jelinek  
2801
 
2802
        * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
2803
        bit wide type.
2804
        (jword): Define to uint64 on 64-bit arches.
2805
        * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
2806
 
2807
2006-05-28  Kazu Hirata  
2808
 
2809
        * class.c, except.c, expr.c, java-gimplify.c: Fix comment
2810
        typos.
2811
 
2812
2006-05-26  Tom Tromey  
2813
 
2814
        * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
2815
        * verify-glue.c (vfy_class_type): New function.
2816
        * verify-impl.c (check_constant): Allow 'ldc class'.
2817
        * verify.h (vfy_class_type): Declare.
2818
 
2819
2006-05-25  Andrew Haley  
2820
 
2821
        PR java/27756
2822
        * decl.c (maybe_pushlevels): When variable ranges are non-nested
2823
        update all lifetimes, not just the first one.
2824
 
2825
2006-05-24  Tom Tromey  
2826
 
2827
        * java-tree.h: Fixed flag documentation.
2828
 
2829
2006-05-24  Tom Tromey  
2830
 
2831
        PR libgcj/27729:
2832
        * jcf.h (ACC_INVISIBLE): Changed value.
2833
 
2834
2006-05-24  Andrew Haley  
2835
 
2836
        PR java/27754
2837
        * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
2838
        COMPOUND_EXPR.
2839
 
2840
2006-05-16  H.J. Lu  
2841
 
2842
        * lang.opt (femit-class-file): Remove VarExists.
2843
 
2844
2006-05-16  Tom Tromey  
2845
 
2846
        * verify-impl.c (verify_instructions_0) : Special case
2847
        for Object..
2848
 
2849
2006-05-16  H.J. Lu  
2850
 
2851
        PR driver/26885
2852
        * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
2853
        $(GCC_OBJS).
2854
 
2855
2006-05-14  H.J. Lu  
2856
 
2857
        * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
2858
        (java/expr.o): Replace target.h with $(TARGET_H).
2859
        (java/parse.o): Likewise.
2860
 
2861
2006-05-10  Andrew Haley  
2862
 
2863
        * class.c (emit_indirect_register_classes): Fix comment.
2864
 
2865
2006-05-04  Tom Tromey  
2866
 
2867
        * java-tree.h (uses_jv_markobj_p): Declare.
2868
        * class.c (uses_jv_markobj_p): Removed.
2869
        * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
2870
        (get_boehm_type_descriptor): Use it.
2871
        (uses_jv_markobj_p): Moved from class.c.  Return bool.
2872
 
2873
2006-05-04  Tom Tromey  
2874
 
2875
        * java-tree.def (THIS_EXPR): Now a tcc_expression.
2876
 
2877
2006-05-04  Andrew Haley  
2878
 
2879
        * class.c (make_field_value): Always build_address_of fdecl if
2880
        there is an initializer.
2881
 
2882
2006-05-03  Andrew Haley  
2883
 
2884
        PR libgcj/27352
2885
        * expr.c (maybe_rewrite_invocation): New function.
2886
        (rewrite_arglist_getclass): Likewise.
2887
        (rules): New.
2888
        (expand_invoke): Call maybe_rewrite_invocation.
2889
        * parse.y (patch_invoke): Likewise.
2890
        * java-tree.h: (maybe_rewrite_invocation): New function.
2891
 
2892
2006-04-21  Andrew Haley  
2893
 
2894
        * lang.c (java_init): Handle flag_indirect_classes.
2895
        * jvgenmain.c: Use "class$$" instead of "class$".
2896
        * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
2897
        DECLs.
2898
        (mangle_class_field): Special case "class$$" as well as "class$".
2899
        * constants.c (build_ref_from_constant_pool): If
2900
        flag_indirect_classes, generate a ref into the heap.
2901
        * decl.c (constants_field_decl_node,
2902
        constants_data_field_decl_node): New.
2903
        * class.c (build_static_class_ref): New.
2904
        (build_classdollar_field): Factor out from build_class_ref().
2905
        (make_field_value): Handle static fields in heap.
2906
        (make_class_data): Make sure we get a static ref to class.
2907
        Make class initializer const if flag_indirect_classes.
2908
        (register_class): Build a class_ref for initialization if
2909
        flag_indirect_classes.
2910
        (emit_indirect_register_classes): New.
2911
 
2912
2006-04-08  Kazu Hirata  
2913
 
2914
        * expr.c, gjavah.c: Fix comment typos.
2915
 
2916
2006-04-03  Andrew Haley  
2917
 
2918
        PR java/26858
2919
        * expr.c (build_field_ref): Don't check the field offset if
2920
        flag_syntax_only.
2921
 
2922
2006-03-30  Andrew Haley  
2923
 
2924
        PR java/26858
2925
        * lang.c (java_attribute_table): New.
2926
        (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
2927
        * expr.c (build_field_ref): Add a null pointer check for all
2928
        fields of offset > 4k.  Don't do so for accesses via the this
2929
        pointer, which we know can never be null.
2930
        * class.c (build_java_method_type): Mark arg 1 of all nonstatic
2931
        methods nonnull.
2932
 
2933
2006-03-30  Carlos O'Donell  
2934
 
2935
        * Make-lang.in: Rename docdir to gcc_docdir.
2936
 
2937
2006-03-30  Tom Tromey  
2938
 
2939
        PR java/26042:
2940
        * parse.y (java_reorder_fields): Reset superclass field's size as
2941
        well.
2942
 
2943
2006-03-28  Tom Tromey  
2944
 
2945
        PR java/26390:
2946
        * parse.y (find_most_specific_methods_list): Added 'class'
2947
        argument.
2948
        (lookup_method_invoke): Updated.
2949
 
2950
2006-03-15  Tom Tromey  
2951
 
2952
        * jcf-write.c (generate_bytecode_insns): Use qualifying type for
2953
        non-static method calls.
2954
 
2955
2006-03-15  David Daney  
2956
 
2957
        * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
2958
        declaration.
2959
 
2960
2006-03-15  David Daney  
2961
 
2962
        * lang.opt (-freduced-reflection): New option.
2963
        * lang.c (java_post_options): Generate an error if
2964
        -freduced-reflection used with -fjni or -findirect-dispatch.
2965
        * java-tree.h (flag_reduced_reflection): Declare new variable.
2966
        * boehm.c (get_boehm_type_descriptor): Indicate all pointers
2967
        if bitmap overflows and flag_reduced_reflection set.
2968
        * class.c (uses_jv_markobj_p): New function.
2969
        (make_class_data): Moved generation of vtable to before
2970
        reflection data, generate less reflection data if
2971
        flag_reduced_reflection set.
2972
        * gcj.texi: Document -freduced-reflection.
2973
 
2974
2006-03-15  Tom Tromey  
2975
 
2976
        PR java/26638:
2977
        * class.c (get_interface_method_index): Don't put  into
2978
        interface table.
2979
 
2980
2006-03-15  Tom Tromey  
2981
 
2982
        * parse.y (analyze_clinit_body): Ignore empty statements.
2983
 
2984
2006-03-08  David Daney  
2985
 
2986
        * gcj.texi: Document -static-libgcj option.
2987
 
2988
2006-02-20  Andrew Haley  
2989
 
2990
        * jcf-parse.c (parse_class_file): Set input_location from
2991
        current_class.
2992
 
2993
2006-02-15  Andrew Haley  
2994
 
2995
        * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
2996
        (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
2997
        TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
2998
 
2999
2006-02-09  Andrew Haley  
3000
 
3001
        PR java/26192
3002
        * expr.c (expand_invoke): Allow methods in arrays to be resolved
3003
        in their superclass.
3004
 
3005
        * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
3006
        array types.
3007
 
3008
2006-02-08  Tom Tromey  
3009
 
3010
        PR java/22578:
3011
        * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
3012
        * builtins.c (convert_real): New function.
3013
        (java_builtins): Handle Float.intBitsToFloat,
3014
        Float.floatToRawIntBits, Double.longBitsToDouble,
3015
        Double.doubleToRawLongBits.
3016
 
3017
2006-02-07  Andrew Haley  
3018
 
3019
        * expr.c (expand_invoke): (BC mode.)  If we find a method in a
3020
        class other than the one in which we expected to find it, ignore
3021
        the result.
3022
 
3023
        PR java/25535
3024
        * constants.c (build_constants_constructor): move initializer into
3025
        first halfword on a 64-bit big-endian machine.
3026
 
3027
2006-02-04  Tom Tromey  
3028
 
3029
        PR java/25676:
3030
        * builtins.c (max_builtin): Skip floating point 'max'.
3031
        (min_builtin): Skip floating point 'min'.
3032
        (check_for_builtin): Never return NULL_TREE.
3033
 
3034
2006-02-04  Tom Tromey  
3035
 
3036
        PR java/26097:
3037
        * expr.c (push_type): Avoid side effect in gcc_assert.
3038
 
3039
2006-02-04  Roger Sayle  
3040
 
3041
        * decl.c (java_init_decl_processing): Create char_type_node as a
3042
        regular INTEGER_TYPE node.
3043
        (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
3044
        * typeck.c (convert): No longer check for CHAR_TYPEs but instead
3045
        test for char_type_node and promoted_char_type_node as special
3046
        instances of INTEGER_TYPE tree codes.
3047
        (promote_type,build_java_signature): Likewise.
3048
        * jcf-write.c (adjust_typed_op): Likewise.
3049
        * mangle.c (mangle_type): Likewise.
3050
        * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
3051
        * parse.h (JINTEGRAL_TYPE_P): Likewise.
3052
 
3053
2006-02-04  Andreas Tobler  
3054
 
3055
        * expr.c (java_stack_swap): Revert gcc_assert patch.
3056
 
3057
2006-02-03  Ben Elliston  
3058
 
3059
        * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
3060
        * typeck.c: Likewise.
3061
        * verify-impl.c: Likewise.
3062
        * class.c: Likewise.
3063
        * decl.c: Likewise.
3064
        * jcf-parse.c: Likewise.
3065
        * constants.c: Likewise.
3066
        * check-init.c: Likewise.
3067
        * jcf-write.c: Likewise.
3068
        * verify-glue.c: Likewise.
3069
        * mangle.c: Likewise.
3070
        * expr.c: Likewise.
3071
        * lang.c: Likewise.
3072
        * boehm.c: Likewise.
3073
 
3074
2006-02-01  Jan Hubicka  
3075
 
3076
        * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
3077
        * lang.c (java_init_options): Set no_unit_at_a_time_default.
3078
 
3079
2006-01-30  Andrew Haley  
3080
 
3081
        PR java/21428
3082
        * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
3083
 
3084
2006-01-21  Joseph S. Myers  
3085
 
3086
        * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
3087
        Update copyright notice dates.
3088
 
3089
2006-01-16  Rafael Ávila de Espíndola  
3090
 
3091
        * jvspec.c (lang_specific_spec_functions): Remove.
3092
 
3093
2006-01-06  Tom Tromey  
3094
 
3095
        * gcj.texi (Arrays): Added more documentation for
3096
        JvNewObjectArray.
3097
        (Primitive types): Correct information about primitive classes.
3098
        (Reference types): New node.
3099
        (Index): New node.
3100
 
3101
2005-12-16  Alexandre Oliva  
3102
 
3103
        * jcf-parse.c (set_source_filename): Set the decl source location
3104
        even when returning early.
3105
 
3106
2005-12-15  Tom Tromey  
3107
            Andrew Haley  
3108
 
3109
        PR java/25429
3110
        * parse.y (resolve_expression_name): Don't generate accessor
3111
        methods for constant fields.
3112
 
3113
2005-12-13  Andrew Haley  
3114
 
3115
        PR java/25366
3116
        PR java/25368
3117
        * class.c (maybe_layout_super_class): Update current_class before
3118
        calling do_resolve_class.
3119
 
3120
2005-12-12  H.J. Lu  
3121
 
3122
        PR java/25330
3123
        * jcf-write.c (write_classfile): Use PID in temporary class
3124
        file. Save/restore errno when reporting error.
3125
 
3126
2005-12-10  Terry Laurenzo  
3127
 
3128
        PR java/9861
3129
        * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
3130
        to bare_function_type and including the return type
3131
        * builtins.c (initialize_builtins) : Change builtin mangled name
3132
        constants to conform to new mangling scheme
3133
 
3134
2005-12-08  Andrew Haley  
3135
 
3136
        PR libgcj/25265
3137
        * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
3138
        (soft_abstractmethod_node): New.
3139
        * expr.c (build_field_ref): Add in-line check for missing field.
3140
        * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
3141
 
3142
2005-12-07  Rafael Ávila de Espíndola  
3143
 
3144
        * Make-lang.in (java.all.build, java.install-normal): Remove.
3145
 
3146
2005-12-07  Rafael Ávila de Espíndola  
3147
 
3148
        * Make-lang.in: Remove all dependencies on s-gtype, except for
3149
        gt-java-parse.h.
3150
 
3151
2005-12-07  Richard Sandiford  
3152
 
3153
        * class.c (build_utf8_ref, emit_register_classes): Use
3154
        switch_to_section and get_section.
3155
 
3156
2005-12-06  Tom Tromey  
3157
 
3158
        PR java/25283:
3159
        * parse.y (patch_new_array_init): Revert previous patch.
3160
        (lookup_method_invoke): Use size-less array type when creating an
3161
        anonymous constructor.
3162
 
3163
2005-12-05  Tom Tromey  
3164
 
3165
        * parse.y (patch_new_array_init): Don't set length on array.
3166
 
3167
2005-12-02  Richard Guenther  
3168
 
3169
        * java-gimplify.c (java_gimplify_labeled_block_expr): Use
3170
        buildN instead of build.
3171
        * class.c (finish_class): Likewise.
3172
        * expr.c (java_create_object): Likewise.
3173
 
3174
2005-11-28  Tom Tromey  
3175
 
3176
        PR java/18278:
3177
        * expr.c (build_jni_stub): Unwrap the return value.
3178
        * java-tree.h (soft_unwrapjni_node): New define.
3179
        (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
3180
        * decl.c (java_init_decl_processing): Initialize
3181
        soft_unwrapjni_node.
3182
 
3183
2005-11-24  Bryce McKinlay  
3184
 
3185
        * gcj.texi (gij options): Add -Xss documentation.
3186
 
3187
2005-11-08  Wil Mahan  
3188
 
3189
        PR java/23617
3190
        * zextract.c (read_zip_archive): Fix out of memory error when
3191
        reading jar files with zip-style comments.
3192
 
3193
2005-11-07   Terry Laurenzo   
3194
 
3195
        * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
3196
        formats.
3197
        * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
3198
 
3199
2005-10-12  Nathan Sidwell  
3200
            Wil Mahan 
3201
 
3202
        PR java/23620
3203
        * class.c (make_class): Create empty binfo here.
3204
        (set_super_info): Only create binfo if we have superclasses.
3205
 
3206
2005-10-03  Ranjit Mathew  
3207
 
3208
        PR java/24127
3209
        * parse.y (method_header): Make the result of the rule a NULL_TREE
3210
        when a parsing error occurs.
3211
 
3212
2005-09-29  Tom Tromey  
3213
 
3214
        PR java/24120:
3215
        * jcf-io.c (memoized_dirlist_hash): New function.
3216
        (caching_stat): Use it.
3217
 
3218
2005-09-21  Ranjit Mathew  
3219
 
3220
        PR java/21418
3221
        * class.c (inherits_from_p): Try to lay out super class
3222
        if it is not already laid out.
3223
        (maybe_layout_super_class): Handle the case where SUPER_CLASS
3224
        is a NULL_TREE.
3225
 
3226
2005-09-18  James A. Morrison  
3227
 
3228
        * builtins.c (max_builtin, min_builtin, abs_builtin,
3229
        java_build_function_call_expr): Use fold_buildN.
3230
        * class.c (layout_class_method): Likewise.
3231
        * expr.c (java_truthvalue_conversion, build_java_jsr,
3232
        build_java_arrayaccess, expand_java_arrayload, expand_iinc,
3233
        build_java_binop, build_field_ref, expand_compare,
3234
        build_known_method_ref, build_invokevirtual,
3235
        process_jvm_instruction): Likewise.
3236
        * parse.y (patch_binop, patch_exit_expr): Likewise.
3237
        * typeck.c (convert_ieee_real_to_integer): Likewise.
3238
        (convert): Don't call fold after convert_ieee_real_to_integer.
3239
 
3240
2005-09-14  Bryce McKinlay  
3241
 
3242
        PR java/23891
3243
        * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
3244
        the newly created type. Set import lists here, not in create_class.
3245
        (jdep_resolve_class): Set current_class.
3246
        (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
3247
        the current package context, not ctxp->package.
3248
        (cicp_cache): Removed.
3249
        (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
3250
        * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
3251
        * java-tree.h (TYPE_PACKAGE): New macro.
3252
        (struct lang_type): New member 'package'.
3253
 
3254
2005-09-09  Andrew Haley  
3255
 
3256
        PR libgcj/23182
3257
        * expr.c (pop_type_0): If the expected type is object or ptr
3258
        (i.e. void*), return the type of the object we just popped from
3259
        the stack.
3260
 
3261
2005-09-06  Andrew Pinski  
3262
 
3263
        * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
3264
        BLOCK_EXPR_BODY before returning the new BIND_EXPR.
3265
 
3266
2005-09-06  Kazu Hirata  
3267
 
3268
        * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
3269
        jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
3270
        typos.  Follow spelling conventions.
3271
 
3272
2005-09-05  Ranjit Mathew  
3273
 
3274
        PR java/23431
3275
        * typeck.c (lookup_do): Look up interfaces for the original class,
3276
        not the base class.
3277
        * parse.y (java_check_regular_methods): Fix diagnostic message for
3278
        more restrictive overriding of a method from an interface.
3279
 
3280
2005-08-16  Tom Tromey  
3281
 
3282
        * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
3283
        class' initial state.
3284
 
3285
2005-08-16  Ranjit Mathew  
3286
 
3287
        PR java/22113
3288
        * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
3289
        `literal_token' for large numeric input tokens.
3290
 
3291
2005-08-16  Ranjit Mathew  
3292
 
3293
        PR java/19870
3294
        * parse.y (nested_field_access_p): Rename to nested_member_access_p
3295
        and expand to handle method accesses across nested classes.
3296
        (build_outer_method_access_method): Rename to
3297
        build_nested_method_access_method.  Minor adjustments to comments.
3298
        (resolve_expression_name): Use the newly-renamed
3299
        nested_member_access_p method.
3300
        (resolve_qualified_expression_name): Likewise.
3301
        (patch_method_invocation): Also consider static methods for access
3302
        method generation.  Minor adjustments to comments.
3303
        (maybe_use_access_method): Use the more general
3304
        nested_memeber_access_p to determine access across nested class
3305
        boundaries.  Allow THIS_ARG to be NULL (for static methods).
3306
 
3307
2005-08-15  Tom Tromey  
3308
 
3309
        PR java/23300.
3310
        * expr.c (build_field_ref): Don't generate otable reference when
3311
        DECL_FIELD_OFFSET is 0.
3312
        * class.c (maybe_layout_super_class): Pass outer class to
3313
        do_resolve_class.
3314
 
3315
2005-08-15  Tom Tromey  
3316
 
3317
        * java-tree.h (LABEL_IN_SUBR): Removed.
3318
        (LABEL_IN_SUBR): Likewise.
3319
        (LABEL_IS_SUBR_START): Likewise.
3320
        (LABEL_SUBR_START): Likewise.
3321
        (LABEL_SUBR_CONTEXT): Likewise.
3322
        (LABEL_CHANGED): Likewise.
3323
        (LABEL_RETURN_LABEL): Likewise.
3324
        (LABEL_RETURN_TYPE_STATE): Likewise.
3325
        (LABEL_RETURN_LABELS): Likewise.
3326
        (RETURN_MAP_ADJUSTED): Likewise.
3327
        (LABEL_PENDING_CHAIN): Likewise.
3328
 
3329
2005-08-15  Tom Tromey  
3330
 
3331
        * Make-lang.in (JAVA_OBJS): Removed verify.o
3332
        (java/verify.o): Removed.
3333
        * verify.c: Removed.
3334
        * lang.c (flag_new_verifier): Removed.
3335
        (java_post_options): Updated.
3336
        * java-tree.h (flag_new_verifier): Removed.
3337
        (verify_jvm_instructions): Removed.
3338
        * expr.c (pop_type_0): Assume flag_new_verifier is true.
3339
        (build_java_check_indexed_type): Likewise.
3340
        (expand_java_arraystore): Likewise.
3341
        (expand_java_arrayload): Likewise.
3342
        (pop_arguments): Likewise.
3343
        (expand_byte_code): Likewise.
3344
        (process_jvm_instruction): Likewise.
3345
 
3346
2005-08-10  Andrew Haley  
3347
 
3348
        * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
3349
        type mismatches to make legal GIMPLE.
3350
 
3351
2005-08-10  Robin Green 
3352
 
3353
        PR java/23230:
3354
        * parse.y (maybe_use_access_method): Generalize check from
3355
        java.lang.Object to any superclass of current_class
3356
 
3357
2005-08-08  Nathan Sidwell  
3358
 
3359
        * class.c (build_class_ref): Wrap the primary class type in a
3360
        NOP_EXPR.
3361
        * parse.y (java_complete_lhs) : Extract the
3362
        primary class type from the NOP_EXPR in which it was placed.
3363
 
3364
2005-07-28  Diego Novillo  
3365
 
3366
        * expr.c (expand_load_internal): Fix missing parens in
3367
        predicate.
3368
 
3369
2005-07-28  Andrew Haley  
3370
 
3371
        * expr.c (expand_load_internal): Convert to destination type.
3372
 
3373
2005-07-22  Manfred Hollstein  
3374
 
3375
        * verify-impl.c (check_class_constant): Fix uninitialised warnings.
3376
        (check_constant): Likewise.
3377
        (check_wide_constant): Likewise.
3378
 
3379
2005-07-20  Giovanni Bajo  
3380
 
3381
        Make CONSTRUCTOR use VEC to store initializers.
3382
        * check-init.c (check_init): Update to cope with VEC in
3383
        CONSTRUCTOR_ELTS.
3384
        * class.c (make_field_value, make_method_value, get_dispatch_table,
3385
        make_class_data, emit_symbol_table, emit_catch_table,
3386
        emit_assertion_table): Use build_constructor_from_list instead of
3387
        build_constructor.
3388
        * constants.c (build_constants_constructor): Likewise.
3389
        * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
3390
        VEC in CONSTRUCTOR_ELTS.
3391
        * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
3392
        PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
3393
        of a TREE_LIST.
3394
        * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
3395
        CONSTRUCTOR_ELTS.
3396
        * parse.y (build_new_array_init): Use build_constructor_from_list
3397
        instead of build_constructor.
3398
        (patch_new_array_init): Update to cope with VEC in
3399
        CONSTRUCTOR_ELTS.
3400
        (array_constructor_check_entry): Likewise.
3401
 
3402
2005-07-12  Tom Tromey  
3403
 
3404
        * jvspec.c (lang_specific_driver): Put filelist_filename first on
3405
        command line.
3406
 
3407
2005-07-12  Tom Tromey  
3408
 
3409
        PR java/19674:
3410
        * parse-scan.y (interface_member_declaration): Added
3411
        empty_statement.
3412
 
3413
2005-07-08  Daniel Berlin  
3414
 
3415
        * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
3416
        (LABEL_PENDING_CHAIN): Ditto.
3417
        (LABEL_PC): Ditto.
3418
        (DECL_BIT_INDEX): Ditto.
3419
 
3420
2005-07-07  Bryce McKinlay  
3421
 
3422
        PR java/18119
3423
        * parse.y (inner_class_accessible): New function. Logic moved from
3424
        check_inner_class_access.
3425
        (check_inner_class_access): Use inner_class_accessible.
3426
        (resolve_inner_class): Simplify arguments. Create circularity hash
3427
        here. Keep looking for classes if we found one that was inaccessible.
3428
        Return the inaccessible class only if there is no other match.
3429
        (do_resolve_class): Update for new resolve_inner_class arguments.
3430
        Don't create circularity_hash here.
3431
 
3432
2005-07-07  Bryce McKinlay  
3433
 
3434
        PR java/21045
3435
        * parse.y (add_exception_to_throws): New function.
3436
        (purge_unchecked_exceptions): Removed.
3437
        (get_constructor_super): Renamed from verify_constructor_super. Now
3438
        returns the super constructor after verification.
3439
        (java_complete_expand_method): Don't use purge_unchecked_exceptions
3440
        or save/restore the exception list.
3441
        (check_thrown_exceptions): Add uncaught exceptions in anonymous
3442
        class initializers and constructors to the throws clause of the method.
3443
 
3444
2005-07-05  Bryce McKinlay  
3445
 
3446
        PR java/19674
3447
        * parse.y (interface_member_declaration): Allow empty statements in
3448
        interface declarations.
3449
 
3450
2005-07-05  Paolo Bonzini  
3451
 
3452
        * Makefile.in (parse.o): Adjust dependencies.
3453
        * parse.y: Include tree-dump.h.
3454
 
3455
2005-07-02  Joseph S. Myers  
3456
 
3457
        * class.c, decl.c, expr.c: Use '+' flag instead of %J.  Use 'q'
3458
        flag for quoting.
3459
 
3460
2005-07-01  Andrew Pinski  
3461
 
3462
        * parse.y (issue_warning_error_from_context): Call
3463
        pp_output_formatted_text to be able to get the buffer.
3464
 
3465
2005-06-30  Andrew Pinski  
3466
 
3467
        * parse.y (issue_warning_error_from_context): Update for the
3468
        renaming of pp_format_text to pp_format.
3469
 
3470
2005-06-28  Paul Brook  
3471
 
3472
        * decl.c (java_init_decl_processing): Call
3473
        default_init_unwind_resume_libfunc.
3474
 
3475
2005-06-27  Tom Tromey  
3476
 
3477
        PR java/21540, PR java/13788:
3478
        * parse.y (java_complete_lhs) : Use
3479
        fold_constant_for_init.
3480
        (patch_binop): Added 'folding' argument.  Updated all callers.
3481
        (patch_unaryop) : New case.
3482
        (fold_constant_for_init) : Likewise.
3483
        (fold_constant_for_init) : Fix sense of test.
3484
 
3485
2005-06-25  Jan Hubicka  
3486
 
3487
        * builtins.c (define_builtin): Accept new flags parameter.
3488
        (initialize_builtins): Mark the builtins const and nothrow accordingly.
3489
 
3490
2005-06-25  Kelley Cook  
3491
 
3492
        * all files: Update FSF address in copyright headers.
3493
 
3494
2005-06-24  Tom Tromey  
3495
 
3496
        * verify-impl.c (verify_instructions_0): Correctly handle
3497
        situation where PC falls off end.
3498
 
3499
2005-06-23  Bryce McKinlay  
3500
 
3501
        PR java/20697
3502
        * parse.y (find_most_specific_methods_list): Remove special case for
3503
        inner classes.
3504
 
3505
2005-06-15  Tom Tromey  
3506
 
3507
        PR libgcj/21906:
3508
        * class.c (make_method_value): Use soft_abstractmethod_node for
3509
        abstract method.
3510
        * java-tree.h (soft_abstractmethod_node): New define.
3511
        (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
3512
        * decl.c (java_init_decl_processing): Initialize
3513
        soft_abstractmethod_node.
3514
 
3515
2005-06-13  Geoffrey Keating  
3516
 
3517
        * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
3518
 
3519
2005-06-13  Per Bothner  
3520
 
3521
        * expr.c (int highest_label_pc_this_method,
3522
        start_label_pc_this_method): New globals.
3523
        (lookup_label): Add start_label_pc_this_method to pc for label, and
3524
        update highest_label_pc_this_method.  This prevents conflicts between
3525
        labels from different methods.
3526
        * java-tree.h: Declare new globals.
3527
        * jcf-parse.c (parse_class_file): If needed bump
3528
        start_label_pc_this_method and reset highest_label_pc_this_method.
3529
 
3530
2005-06-13  Tom Tromey  
3531
 
3532
        PR java/21844:
3533
        * parse.y (nested_field_access_p): Handle case where outer field
3534
        is inherited by enclosing class.
3535
 
3536
2005-06-12  Per Bothner  
3537
 
3538
        * class.c (inherits_from_p): Do load_class if needed.
3539
 
3540
2005-06-09  Kaveh R. Ghazi  
3541
 
3542
        * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
3543
        * java-tree.h (parse_error_context): Move...
3544
        * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
3545
        * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
3546
        * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
3547
 
3548
2005-06-08  Roger Sayle  
3549
 
3550
        * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
3551
 
3552
2005-06-06  Jakub Jelinek  
3553
 
3554
        * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
3555
        msgid for argument name.
3556
        * gjavah.c (error): Likewise.
3557
        * java-tree.h (parse_error_context): Likewise.
3558
        * parse.y (parse_error_context, parse_warning_context,
3559
        issue_warning_error_from_context): Likewise.
3560
 
3561
2005-06-01  Tom Tromey  
3562
 
3563
        PR java/21722:
3564
        * class.c (build_static_field_ref): Don't fold constant fields if
3565
        current class is from a .class file and we're using indirect
3566
        dispatch.
3567
 
3568
2005-05-31  Kaveh R. Ghazi  
3569
 
3570
        * java/verify-glue.c: Don't include errors.h and include toplev.h.
3571
        * java/Make-lang.in: Updates dependencies.
3572
 
3573
2005-05-26  Ranjit Mathew  
3574
 
3575
        PR java/19870.
3576
        * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
3577
        NESTED_FIELD_ACCESS_IDENTIFIER_P.
3578
        (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
3579
        (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
3580
        * jcf-write.c (generate_classfile): Use
3581
        NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3582
        OUTER_FIELD_ACCESS_IDENTIFIER_P.
3583
        * parse.y (build_outer_field_access): Rename to
3584
        build_nested_field_access. Support static fields and outer-to-inner
3585
        class accesses.
3586
        (outer_field_access_p): Rename to nested_field_access_p. Support
3587
        static fields and generalise to outer-to-inner class and sibling
3588
        inner class accesses.
3589
        (outer_field_expanded_access_p): Rename to
3590
        nested_field_expanded_access_p and support static fields.
3591
        (outer_field_access_fix): Rename to nested_field_access_fix and
3592
        support static fields.
3593
        (build_outer_field_access_expr): Rename to
3594
        build_nested_field_access_expr and support static fields.
3595
        (build_outer_field_access_methods): Rename to
3596
        build_nested_field_access_methods and support static fields. For
3597
        static fields, generate accessors without class instance parameters.
3598
        (build_outer_field_access_method): Rename to
3599
        build_nested_field_access_method and support static fields.
3600
        (build_outer_method_access_method): Use
3601
        NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3602
        OUTER_FIELD_ACCESS_IDENTIFIER_P.
3603
        (resolve_expression_name): Consider static field accesses across
3604
        nested classes.
3605
        (resolve_qualified_expression_name): Likewise.
3606
        (java_complete_lhs): Use nested_field_access_fix instead of
3607
        outer_field_access_fix.
3608
        (patch_unary_op): Rename outer_field_flag to nested_field_flag.
3609
        Use nested_field_expanded_access_p instead of
3610
        outer_field_expanded_access_p. Use nested_field_access_fix instead
3611
        of outer_field_access_fix.
3612
        (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
3613
        instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
3614
 
3615
2005-05-26  Bryce McKinlay  
3616
 
3617
        * decl.c (GCJ_BINARYCOMPAT_ADDITION,
3618
        GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
3619
        (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
3620
        MINOR_BINARYCOMPAT_ABI_VERSION): New.
3621
        (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
3622
        (parse_version): Calculate version ID using new method. Use bit-flags
3623
        for flag_indirect_dispatch and flag_bootstrap_classes.
3624
 
3625
2005-05-25  Richard Henderson  
3626
 
3627
        PR libgcj/21692
3628
        * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
3629
        * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
3630
        DECL_CONTEXT; avoid pushdecl_top_level.
3631
        (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
3632
        (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
3633
        (layout_class_method): Likewise.
3634
        * decl.c (java_mark_cni_decl_local): New.
3635
        (java_mark_class_local): Use it.
3636
        * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
3637
        (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
3638
        (struct lang_decl_func): Add local_cni;
3639
        (struct lang_decl_var): Add class_field, vtable.
3640
        (java_mangle_decl): Declare.
3641
        * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3642
        * mangle.c: Remove dup obstack.h; include langhooks-def.h.
3643
        (mangle_obstack_1): New.
3644
        (java_mangle_decl): Remove obstack argument.  Call mangle_class_field,
3645
        mangle_vtable, and mangle_local_cni_method_decl.  Fall back to
3646
        lhd_set_decl_assembler_name for things that don't need mangling.
3647
        (mangle_class_field): Rename from java_mangle_class_field, make
3648
        static, don't call init_mangling or finish_mangling.
3649
        (mangle_vtable): Similarly.
3650
        (mangle_local_cni_method_decl): New.
3651
        (init_mangling): Remove obstack argument.  Use &mangle_obstack_1,
3652
        gcc_assert, and MANGLE_RAW_STRING.
3653
        (finish_mangling): Use gcc_assert, remove if 0 debugging code.
3654
 
3655
2005-05-25  DJ Delorie  
3656
 
3657
        * class.c (set_constant_value): Move warning control from if() to
3658
        warning(OPT_*).
3659
 
3660
2005-05-24  Richard Henderson  
3661
 
3662
        * builtins.c (define_builtin): Don't call make_decl_rtl.
3663
        * constants.c (build_constant_data_ref): Likewise.
3664
        * class.c (build_utf8_ref): Likewise.
3665
        (build_fieldref_cache_entry, build_static_field_ref): Likewise.
3666
        (get_dispatch_table, layout_class_method): Likewise.
3667
        (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
3668
        by hand.
3669
        (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
3670
        (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
3671
        to determine if we need a non-zero address.
3672
        * decl.c (builtin_function): Don't call make_decl_rtl.
3673
        (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
3674
        * expr.c (build_known_method_ref): Don't call make_decl_rtl.
3675
        * resource.c (compile_resource_data): Likewise.
3676
        * parse.y (resolve_field_access): Re-word comment to avoid
3677
        building DECL_RTL.
3678
 
3679
2005-05-24  Richard Henderson  
3680
 
3681
        * class.c (registered_class): Take it out of class_roots; turn into
3682
        a vec of trees.
3683
        (register_class): Make static.  Don't duplicate decl node.  Use
3684
        VEC_safe_push.
3685
        (emit_register_classes): Use VEC_iterate.  Use output_constant
3686
        instead of assemble_integer.  Don't call mark_decl_referenced
3687
        directly.
3688
        * java-tree.h (register_class): Remove decl.
3689
 
3690
2005-05-19  Paolo Bonzini  
3691
 
3692
        PR java/17845
3693
 
3694
        * parse.y (register_package, package_list): Remove.
3695
        (package_declaration): Do not call register_package.
3696
        (do_resolve_class): Do not use package_list.
3697
 
3698
2005-05-15  Gerald Pfeifer  
3699
 
3700
        * jcf-write.c (generate_bytecode_insns) : Remove
3701
        unused variable.
3702
 
3703
2005-05-15  Tom Tromey  
3704
 
3705
        PR java/21519:
3706
        * jcf-write.c (generate_bytecode_insns) : Don't call
3707
        NOTE_PUSH.
3708
 
3709
2005-05-12  Aaron Luchko 
3710
 
3711
        * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
3712
 
3713
2005-05-11  Tom Tromey  
3714
 
3715
        * gcj.texi (Code Generation): Document -fbootstrap-classes.
3716
        * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
3717
        (parse_version): Use it.
3718
        * lang.opt (-fbootstrap-classes): New option.
3719
 
3720
2005-05-10  Paolo Bonzini  
3721
 
3722
        PR java/21436
3723
        * class.c (maybe_layout_super_class): Look for imports in this_class.
3724
        * parse.h (ctxp_for_generation_last): New.
3725
        (do_resolve_class): Add a parameter.
3726
        * parse.y (ctxp_for_generation_last): New.
3727
        (java_pop_parser_context): Add at end of list.
3728
        (find_in_imports, find_in_imports_on_demand): Look in ctxp
3729
        if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
3730
        the given type are NULL.
3731
        (do_resolve_class): Look into the imports of the new second parameter.
3732
        Adjust recursive calls.
3733
        (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
3734
        calls to do_resolve_class.
3735
        (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
3736
        (java_complete_class): Do not do that here.
3737
 
3738
2005-05-03  Thomas Fitzsimmons  
3739
 
3740
        PR java/20309
3741
        * Make-lang.in (java): Add gjnih.
3742
        (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
3743
        (GJNIH_OBJS): New variable.
3744
        (gjnih$(exeext)): New target.
3745
        (JAVA_MANFILES): Add gjnih.1.
3746
        (java.uninstall): Add gjnih.1.
3747
        (java.mostlyclean): Add gjnih.
3748
        (java.maintainer-clean): Add gjnih.1.
3749
        (java/gjavah-jni.o): New target.
3750
        (.INTERMEDIATE): Add gjnih.pod.
3751
        (gjnih.pod): New target.
3752
        * config-lang.in (stagestuff): Add gjnih.
3753
        * gcj.texi (Top): Add gjnih node.
3754
        (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
3755
        -bootclasspath options.
3756
        (Invoking gjnih): New node.
3757
        * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
3758
        (TOOLNAME): New macro.
3759
        (error): Replace hard-coded gcjh with TOOLNAME.
3760
        (process_file): Likewise.
3761
        (usage): Likewise.
3762
        (version): Likewise.
3763
        (help): Likewise.  Add help output for -force, -old, -trace and -J
3764
        options.
3765
        (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
3766
        (options): Add force, old, trace and J fields.
3767
        (main): Handle -force, -old, -trace and -J options.
3768
 
3769
2005-05-03  Tom Tromey  
3770
 
3771
        PR java/21245:
3772
        * gjavah.c (main): Unlink output file on error.
3773
 
3774
2005-05-03  Kazu Hirata  
3775
 
3776
        * constants.c, jvgenmain.c, lang.opt, resource.c: Update
3777
        copyright.
3778
 
3779
2005-04-29  Tom Tromey  
3780
 
3781
        * expr.c (build_jni_stub): Updated for change to build_block.
3782
 
3783
2005-04-29  Andrew Pinski  
3784
 
3785
        * expr.c (force_evaluation_order): Declare 'saved' earlier.
3786
 
3787
2005-04-28  Andrew Haley  
3788
 
3789
        PR java/19285
3790
        * java-tree.h (soft_resolvepoolentry_node): New.
3791
        (alloc_constant_fieldref): Declare.
3792
        * expr.c (expand_java_field_op): Don't call class_init for
3793
        accesses to static fields with indirect dispatch.
3794
        * builtins.c (initialize_builtins): Add "__builtin_expect".
3795
        * decl.c (soft_resolvepoolentry_node): New variable.
3796
        (java_init_decl_processing): Create a decl for
3797
        "_Jv_ResolvePoolEntry".
3798
        * class.c (build_fieldref_cache_entry): New function.
3799
        (build_static_field_ref): Rewrite for indirect dispatch.
3800
        * constants.c (find_name_and_type_constant_tree): New function.
3801
        (alloc_constant_fieldref): Likewise.
3802
        (build_constants_constructor): Handle CONSTANT_Fieldref and
3803
        CONSTANT_NameAndType.
3804
 
3805
        PR java/21115
3806
        * expr.c (force_evaluation_order): Convert outgoing args smaller
3807
        than integer.
3808
 
3809
2005-04-27  Bryce McKinlay  
3810
 
3811
        * gcj.texi (libgcj Runtime Properties): Remove obsolete
3812
        gnu.gcj.runtime.NameFinder.* system properties. Update documentation
3813
        for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
3814
 
3815
2005-04-25  Kaveh R. Ghazi  
3816
 
3817
        * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
3818
        to `unlock_stream' with `unlock_std_streams'.
3819
 
3820
2005-04-25  Jakub Jelinek  
3821
 
3822
        * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
3823
        instead of just expr.h.
3824
 
3825
2005-04-24  Kaveh R. Ghazi  
3826
 
3827
        * gjavah.c (main): Unlock the stdio streams.
3828
        * jcf-dump.c (main): Likewise.
3829
        * jv-scan.c (main): Likewise.
3830
        * jvgenmain.c (main): Likewise.
3831
 
3832
2005-04-23  DJ Delorie  
3833
 
3834
        * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
3835
        parse.y: Adjust warning() callers.
3836
 
3837
2005-04-21  Bryce McKinlay  
3838
 
3839
        * gcj.texi (Object fields): Change "Integer" to "Int" in example
3840
        contructor.
3841
 
3842
2005-04-20  Bryce McKinlay  
3843
 
3844
        * gcj.texi: Fix typos and bogus example.
3845
 
3846
2005-04-19  Kazu Hirata  
3847
 
3848
        * except.c: Fix a comment typo.
3849
 
3850
2005-04-19  Julian Brown  
3851
 
3852
        * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
3853
        indirect dispatch with PIC.
3854
 
3855
2005-04-18  Andrew Haley  
3856
 
3857
        * java-except.h (struct eh_range.handler): Remove unused field.
3858
        (handle_nested_ranges): Remove function declaration.
3859
        (sanity_check_exception_range): Add function declaration.
3860
        * verify.c (verify_jvm_instructions): Remove call to
3861
        handle_nested_ranges.
3862
        * verify-glue.c (verify_jvm_instructions_new): Call
3863
        sanity_check_exception_range.
3864
        * except.c (link_handler, eh_range_freelist, link_handler,
3865
        handle_nested_ranges): Remove.
3866
        (add_handler): Rewrite.
3867
        (sanity_check_exception_range): New function.
3868
        (print_ranges): New function.
3869
 
3870
2005-04-13  Julian Brown  
3871
 
3872
        * decl.c (finish_method): Give methods once-only linkage.
3873
 
3874
2005-04-11  Richard Sandiford  
3875
 
3876
        * lang.opt: Refer to the GCC internals documentation instead of c.opt.
3877
 
3878
2005-04-07  Kaveh R. Ghazi  
3879
 
3880
        * java-tree.h: Don't use PARAMS().
3881
 
3882
2005-04-07  Per Bothner  
3883
 
3884
        * class.c (push_class): By default, suppress debug output.
3885
        (finish_class): Enable debug output for classes we're emitting.
3886
 
3887
2005-04-07  Andrew Haley  
3888
 
3889
        * gcj.texi: Correct gcj-dbtool instructions.
3890
 
3891
2005-04-04  Kazu Hirata  
3892
 
3893
        * gcj.texi: Fix a typo.
3894
        * lang.c: Fix a comment typo.
3895
 
3896
2005-04-01  Thomas Fitzsimmons  
3897
 
3898
        * gcj.texi (Invoking gij): Add descriptions of new -X options.
3899
        Mention recognized-and-ignored compatibility options.
3900
        (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
3901
        JvFree.
3902
        (About CNI): Add Memory allocation section.
3903
 
3904
2005-04-01  Tom Tromey  
3905
 
3906
        * decl.c (java_init_decl_processing): Fix types of
3907
        _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
3908
        _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
3909
        _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
3910
 
3911
2005-03-31  Jan Hubicka  
3912
 
3913
        * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
3914
        * class.c: Include cgraph.h
3915
        (make_local_functoin_alias): Mark aslias as needed.
3916
        * resource.c: Include cgraph.h
3917
        (compile_resource_data): Go via cgraph interface.
3918
 
3919
2005-03-30  Ian Lance Taylor  
3920
 
3921
        * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
3922
 
3923
2005-03-30  Tom Tromey  
3924
 
3925
        * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
3926
        inner_class_info_index==0 or outer_class_info_index==0.
3927
 
3928
2005-03-29  Tom Tromey  
3929
 
3930
        * gcj.texi (libgcj Runtime Properties): Document
3931
        gnu.gcj.runtime.endorsed.dirs.
3932
 
3933
2005-03-24  Anthony Green  
3934
 
3935
        * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
3936
        'gcj-dbtool -p'.
3937
 
3938
2005-03-23  Tom Tromey  
3939
 
3940
        * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
3941
        (parse_version): Use it.
3942
 
3943
2005-03-23  Joseph S. Myers  
3944
 
3945
        * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3946
 
3947
2005-03-18  Andrew Haley  
3948
 
3949
        PR java/20522
3950
        * decl.c (update_aliases): Don't update variables that are about
3951
        to die.
3952
        (maybe_poplevels): Add comment.
3953
 
3954
2005-03-17  Bryce McKinlay  
3955
 
3956
        PR java/20502
3957
        * jcf-parse.c (duplicate_class_warning): New function.
3958
        (java_parse_file): Call duplicate_class_warning if
3959
        CLASS_FROM_CURRENTLY_COMPILED_P is already set.
3960
        (parse_zip_file_entries): Likewise. Also set
3961
        CLASS_FROM_CURRENTLY_COMPILED_P.
3962
 
3963
2005-03-16  Andrew Haley  
3964
 
3965
        * expr.c (expand_java_arrayload): Don't generate a
3966
        NullPointerException based on the type of the node.
3967
        (build_java_array_length_access): Likewise.
3968
 
3969
2005-03-15  Zack Weinberg  
3970
 
3971
        * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
3972
 
3973
2005-03-11  Tom Tromey  
3974
 
3975
        * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
3976
        (libgcj Runtime Properties): Document the default .db.
3977
 
3978
2005-03-10  Ranjit Mathew  
3979
 
3980
        PR java/20312
3981
        * parse.y (checks_throws_clauses): Check exceptions list even when
3982
        the base class does not come from a source file being compiled.
3983
        (java_complete_lhs): Remove unused variable 'wfl'.
3984
 
3985
2005-03-09  Ranjit Mathew  
3986
 
3987
        PR java/20338
3988
        * decl.c (finish_method): Emit _Jv_InitClass for private static
3989
        methods inside inner classes as well.
3990
 
3991
2005-03-08  Julian Brown  
3992
        * Revert patch from 2005-03-08 for causing bootstrap failure on
3993
        ppc-darwin.
3994
 
3995
2005-03-08  Julian Brown  
3996
 
3997
        * decl.c (finish_method): Give methods once-only linkage.
3998
 
3999
2005-03-07  Ranjit Mathew  
4000
 
4001
        * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
4002
 
4003
2005-03-07  Bryce McKinlay  
4004
 
4005
        * verify-glue.c (vfy_is_assignable_from): Perform static check using
4006
        can_widen_reference_to if the C++ ABI is in use.
4007
        (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
4008
        * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
4009
        type_isresolved, init_state, set_pc, state_get_pc,
4010
        _Jv_BytecodeVerifier): Clean up unused and disabled functions.
4011
        (verify_fail): Report the current PC from the verifier context.
4012
        (free_state): Remove #if 0 block to enable this function.
4013
        (free_verifier_context): Call free_state on state_list iterator
4014
        values before freeing them.
4015
        * expr.c (pop_type_0): Pop correct type for error message when stack
4016
        contains a multi-word type.
4017
 
4018
2005-03-07  Ranjit Mathew  
4019
 
4020
        * expr.c (build_java_array_length_access): Remove !flag_new_verifier
4021
        for known NULL array length access.
4022
 
4023
2005-03-07  Tom Tromey  
4024
 
4025
        * gcj.texi (Invoking gcj-dbtool): Document '-f'.
4026
 
4027
2005-03-06  Kazu Hirata  
4028
 
4029
        * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
4030
        typeck.c: Update copyright.
4031
 
4032
2005-03-06  Ranjit Mathew  
4033
 
4034
        Remove xref code.
4035
        * xref.c, xref.h: Remove file.
4036
        * Make-lang.in (java/xref.o): Remove.
4037
        * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
4038
        * lang.c (flag_emit_xref): Remove definition.
4039
        * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
4040
        * typeck.c (convert): Remove use of do_not_fold.
4041
        * parse.y (do_not_fold): Remove definition.
4042
        (parser grammar): Remove xref code.
4043
        (maybe_create_class_interface_decl, create_class): Likewise.
4044
        (register_fields, method_header, finish_method_declaration): Likewise.
4045
        (declare_local_variables, source_end_java_method): Likewise.
4046
        (java_complete_expand_classes): Do not set do_not_fold.
4047
        (java_complete_expand_method): Remove xref code.
4048
        (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
4049
        (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
4050
        (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
4051
        (patch_synchronized_statement, patch_throw_statement): Likewise.
4052
        (maybe_build_class_init_for_field): Likewise.
4053
 
4054
2005-03-05  Kazu Hirata  
4055
 
4056
        * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
4057
        instead of IS_NON_TYPE_CODE_CLASS.
4058
 
4059
2005-03-04  Andrew Haley  
4060
 
4061
        PR java/18362
4062
        * class.c (set_method_index): Don't set method_index if it is
4063
        NULL_TREE.
4064
        (layout_class_method): Don't complain about "non-static method foo
4065
        overrides static method" in the case of indirect dispatch.
4066
 
4067
2005-03-02  Kaveh R. Ghazi  
4068
 
4069
        * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
4070
        warning.
4071
        * Make-lang.in: Don't elide warnings in jcf-io.c.
4072
 
4073
2005-03-01  Per Bothner  
4074
 
4075
        PR java/8608
4076
        * check-init.c (wfl): Remove static.
4077
        (final_assign_error, check_init): Replace calls to parse_error_context
4078
        by plain error.
4079
        (check_init): Save, set, and restore input_location for each exp.
4080
 
4081
2005-03-01  Per Bothner  
4082
 
4083
        * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
4084
        if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
4085
        * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
4086
 
4087
2005-03-01  Per Bothner  
4088
 
4089
        * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
4090
 
4091
2005-02-23  Thomas Fitzsimmons  
4092
 
4093
        PR libgcj/16923
4094
        * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
4095
        JvVMOption.
4096
 
4097
2005-02-22  Tom Tromey  
4098
 
4099
        PR java/20056:
4100
        * verify-impl.c (EITHER): New define.
4101
        (types_compatible): Handle it.
4102
        (check_field_constant): Use it.
4103
 
4104
2005-02-18  Tom Tromey  
4105
 
4106
        PR java/20056:
4107
        * verify-impl.c (types_equal): Fixed test.
4108
 
4109
        PR java/20056:
4110
        * verify-glue.c (vfy_class_has_field): New function.
4111
        * verify.h (vfy_class_has_field): Declare.
4112
        * verify-impl.c (check_field_constant): Added 'putfield'
4113
        argument.
4114
        (verify_instructions_0): Updated.
4115
        (types_equal): New function.
4116
 
4117
2005-02-14  Tom Tromey  
4118
 
4119
        PR java/19921:
4120
        * jcf-write.c (generate_bytecode_insns) : Note the
4121
        stack effect of multianewarray.
4122
 
4123
2005-02-14  Andrew Haley  
4124
 
4125
        PR java/19907
4126
        * expr.c (expand_byte_code): Call promote_arguments().
4127
        (promote_arguments): New function.
4128
        * decl.c (check_local_unnamed_variable): Remove special case for
4129
        new verifier.
4130
        (find_local_variable): Promote all boolean types to int
4131
        when searching for local variable decls.
4132
 
4133
2005-02-12  Kazu Hirata  
4134
 
4135
        * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
4136
        parse-scan.y: Update copyright.
4137
 
4138
2005-02-11  Per Bothner  
4139
 
4140
        PR java/15543
4141
        * parse-scan.y (input_location): Remove variable.
4142
        (main_input_filename): New - replaces input_filename, which isn't
4143
        settable if USE_MAPPED_LOCATION.
4144
        * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
4145
        so we don't reference input_location or wfl_operator in that case.
4146
        * jv-scan.c (expand_location): Remove - no longer used.
4147
        (main): Set main_input_filename rather than input_filename.
4148
 
4149
2005-02-09  Richard Henderson  
4150
 
4151
        * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
4152
        * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
4153
 
4154
2005-02-08  Marcin Dalecki  
4155
 
4156
        * expr.c (add_type_assertion): Use the proper enumeration type,
4157
        since this is what htab_find_slot() is expecting.
4158
 
4159
2005-02-06  Joseph S. Myers  
4160
 
4161
        * gcj.texi: Update copyright dates.
4162
 
4163
2005-02-02  Tom Tromey  
4164
 
4165
        * gcj.texi (libgcj Runtime Properties): Default library_control
4166
        to 'cache'.
4167
 
4168
2005-02-02  Ranjit Mathew  
4169
 
4170
        PR java/15543
4171
        * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
4172
        (modifiers) when square brackets are present in a declaration for
4173
        a final paramter.
4174
        * jv-scan.c (main): Set input_filename and input_line.
4175
 
4176
2005-02-01  Tom Tromey  
4177
 
4178
        PR java/19742:
4179
        * gjavah.c (get_field_name): Don't override name for JNI header.
4180
 
4181
2005-02-01  Roger Sayle  
4182
 
4183
        * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
4184
        of unsigned types using iushr and lushr JVM bytecodes.
4185
 
4186
2005-02-01  Ranjit Mathew  
4187
 
4188
        PR java/19738
4189
        * gjavah.c (jni_print_float): Do not emit floating-point
4190
        initialiser for a static final field.
4191
        (jni_print_double): Likewise.
4192
 
4193
2005-02-01  Mark Mitchell  
4194
 
4195
        Revert:
4196
        2005-01-31  Mark Mitchell  
4197
        * gjavah.c (print_field_info): Mark static data members of
4198
        floating-point type with "__extension__".
4199
 
4200
2005-01-31  Mark Mitchell  
4201
 
4202
        * gjavah.c (print_field_info): Mark static data members of
4203
        floating-point type with "__extension__".
4204
 
4205
2005-02-01  Ranjit Mathew  
4206
 
4207
        PR java/9157
4208
        * parse.y (build_string_concatenation): Remove redundant if.
4209
        (patch_conditional_expr): Attempt to patch_string() the condition
4210
        of a ?: as well, in addition to its other operands.
4211
 
4212
2005-01-25  Tom Tromey  
4213
 
4214
        * Make-lang.in (java/java-tree-inline.o): Removed.
4215
 
4216
2005-01-25  Ranjit Mathew  
4217
 
4218
        PR java/19070
4219
        * parse.y (patch_binop): Allow comparisons against NULL only
4220
        if the other operand is of a reference type.
4221
 
4222
2005-01-24  Tom Tromey  
4223
 
4224
        * java-tree.h (gcj_abi_version): Declare.
4225
        * class.c (make_class_data): Push gcj_abi_version into "next"
4226
        field.  Renamed field.
4227
        * decl.c (gcj_abi_version): New global.
4228
        (parse_version): New function.
4229
        (java_init_decl_processing): Call it.  Renamed 'next' field.
4230
        Include version.h.
4231
        (GCJ_BINARYCOMPAT_ADDITION): New define.
4232
 
4233
2005-01-24  Roger Sayle  
4234
 
4235
        PR java/19295
4236
        * jcf-write.c (generate_bytecode_insns): Conversions between
4237
        integer types of the same precision shouldn't generate widening
4238
        or narrowing conversion bytecodes.
4239
 
4240
2005-01-22  Kazu Hirata  
4241
 
4242
        * java-except.h, java-tree.h: Remove unused prototypes.
4243
 
4244
2005-01-20  Andrew Pinski  
4245
 
4246
        PR java/18091:
4247
        * jcf-write.c (perform_relocations): Don't call memcpy if source
4248
        and destination are the same.
4249
 
4250
2005-01-17  Tom Tromey  
4251
 
4252
        * verify-impl.c (get_short): Sign extend.
4253
        (get_int): Likewise.
4254
 
4255
2005-01-12  Ranjit Mathew  
4256
 
4257
        * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
4258
        with TYPE_SIZE.
4259
 
4260
2005-01-10  Ranjit Mathew  
4261
 
4262
        * verify.c: Revert to the version before the BC-ABI merge.
4263
 
4264
2005-01-10  Ranjit Mathew  
4265
 
4266
        PR java/19277
4267
        * check-init.c (check_init): Take care of references that do not
4268
        have an explicit final variable declaration (e.g. array length
4269
        access) for pre/post in/de-crement operators.
4270
 
4271
2005-01-08  Mark Wielaard  
4272
 
4273
        * parse.y (process_imports): Allocate (and free) original_name only
4274
        when not already defined.
4275
        * jcf-parse.c (read_class): Free results of find_class() and
4276
        lrealpath().
4277
        (java_parse_file): Keep pointer to head of file_list and free when
4278
        done. Free result of lrealpath().
4279
 
4280
2005-01-05  Tom Tromey  
4281
 
4282
        * gcj.texi (Standard Properties): java.ext.dirs is now used.
4283
 
4284
2004-12-20  Andrew Haley  
4285
 
4286
        * typeck.c: Use fold_convert for ints and booleans.
4287
 
4288
2004-12-17  Andrew Haley  
4289
 
4290
        PR java/18931
4291
        * typeck.c (convert): Use a CONVERT_EXPR when converting to
4292
        BOOLEAN_TYPE or CHAR_TYPE.
4293
        (convert_to_boolean, convert_to_char) : Remove.
4294
        * convert.h (convert_to_boolean, convert_to_char) : Remove.
4295
        * expr.c (expand_load_internal): Do type conversion if type is not
4296
        as required.
4297
 
4298
2004-12-13  Danny Smith  
4299
 
4300
        PR target/18459
4301
        * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
4302
        Update comment.
4303
 
4304
2004-12-07  Andrew Haley  
4305
 
4306
        PR java/18811:
4307
        * jcf-parse.c (load_class): Remove sanity test for missing inner
4308
        class file.
4309
 
4310
2004-12-06  Tom Tromey  
4311
 
4312
        * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
4313
        (java.uninstall): Likewise.
4314
        (java.maintainer-clean): Likewise.
4315
        (.INTERMEDIATE): Likewise.
4316
        (java.install-man): Likewise.
4317
        (gcj-dbtool.pod): New target.
4318
        * gcj.texi (Code Generation): Document -findirect-dispatch.
4319
        (libgcj Runtime Properties): Document
4320
        gnu.gcj.precompiled.db.path.
4321
        (Top): Link to "Invoking gcj-dbtool".
4322
 
4323
2004-12-06  Tom Tromey  
4324
 
4325
        PR java/14853:
4326
        * java-tree.h (extract_field_decl): Declare.
4327
        * parse.y (extract_field_decl): Renamed from
4328
        strip_out_static_field_access_decl.  No longer static.
4329
        * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
4330
 
4331
2004-12-03  Tom Tromey  
4332
 
4333
        * lang.c (flag_new_verifier): Define.
4334
        (java_post_options): Set flag_new_verifier if indirect dispatch
4335
        is being used.
4336
        * lang.opt (fnew-verifier): Removed.
4337
 
4338
2004-12-03  Tom Tromey  
4339
 
4340
        PR bootstrap/14614:
4341
        * Make-lang.in (java.install-common): Only install transformed
4342
        gcjh if gcj-cross exists.
4343
 
4344
2004-12-03  Andrew Haley  
4345
 
4346
        PR java/18812
4347
        * except.c (link_handler): Patch 'outer' field of siblings of the
4348
        range we're demoting.
4349
 
4350
2004-12-03  Andrew Haley  
4351
 
4352
        PR java/18697
4353
        * class.c (layout_class_method): Don't fail to override a method
4354
        simply because it has DECL_ARTIFICIAL set.
4355
 
4356
2004-12-02  Tom Tromey  
4357
 
4358
        PR java/16675:
4359
        * parse.y (craft_constructor): Special case null_pointer_node.
4360
 
4361
2004-12-02  Tom Tromey  
4362
 
4363
        PR java/18741:
4364
        * java-gimplify.c (java_gimplify_expr): Don't call
4365
        SET_EXPR_LOCATION unless wrapped tree is an expression.
4366
 
4367
2004-11-27  Per Bothner  
4368
 
4369
        * jcf-parse.c (set_source_filename):  Improvement to Andrew's fix:
4370
        Fix fencepost error in 'i', which got executed one too many times.
4371
        Also, fold memcpy into explicit loop, as originally intended.
4372
        Also, free temporary 'buf' which otherwise leaks.
4373
 
4374
2004-11-27  Per Bothner  
4375
 
4376
        * expr.c (build_expr_wfl): Only declare last_file and last_filenode
4377
        local static variables if not USE_MAPPED_LOCATION.
4378
 
4379
2004-11-27  Kazu Hirata  
4380
 
4381
        * class.c, decl.c, expr.c: Fix comment typos.
4382
 
4383
2004-11-26  Andrew Pinski  
4384
 
4385
        PR java/18305
4386
        * decl.c (end_java_method): Call
4387
        attach_init_test_initialization_flags on all the init_decls.
4388
        * parse.y (attach_init_test_initialization_flags): Move to ...
4389
        * expr.c (attach_init_test_initialization_flags): here and
4390
        support BIND_EXPR also.
4391
        * java-tree.h (attach_init_test_initialization_flags): Prototype.
4392
        * jcf-parse.c (parse_class_file): Don't disable class init
4393
        optimization.
4394
 
4395
2004-11-25  Joseph S. Myers  
4396
 
4397
        * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
4398
        in diagnostics.
4399
 
4400
2004-11-24  Richard Henderson  
4401
 
4402
        * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
4403
        vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
4404
 
4405
2004-11-24  Tom Tromey  
4406
 
4407
        * verify.c (defer_merging): Don't use C++-style comment.
4408
        * verify.h (java_opcode): Added java_opcode_end.
4409
        * class.c (build_class_ref): Remove C++ comment and old FIXME.
4410
 
4411
        * verify-impl.c (vfy_push_type): Removed bogus "return".
4412
        (initialize_stack): Use vfy_alloc and vfy_free.
4413
        (verify_instructions_0): Likewise.
4414
 
4415
        * Merged gcj-abi-2-dev-branch to trunk.
4416
 
4417
2004-11-24  Andrew Haley  
4418
 
4419
        * jcf-parse.c (parse_class_file): Set file_start_location.
4420
 
4421
2004-11-10  Tom Tromey  
4422
 
4423
        * class.c (make_field_value): Don't call build_static_field_ref.
4424
        (build_static_field_ref): Don't emit direct references when using
4425
        indirect dispatch.
4426
 
4427
        * gcj.texi (Invoking gij): Document -verbose.  Put -verbose and
4428
        -verbose:class into man page synopsis.
4429
 
4430
2004-11-09  Tom Tromey  
4431
 
4432
        * expr.c (build_java_arraystore_check): Still generate check if
4433
        element type is itself an array.
4434
 
4435
2004-11-08  Tom Tromey  
4436
 
4437
        * java-tree.h (soft_check_assignment_node): Removed.
4438
        (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
4439
        * decl.c (java_init_decl_processing): Don't initialize
4440
        soft_check_assignment_node.
4441
 
4442
2004-11-05  Tom Tromey  
4443
 
4444
        * class.c (layout_class_methods): Don't add Miranda methods when
4445
        using indirect dispatch.
4446
 
4447
2004-11-05  Bryce McKinlay  
4448
 
4449
        * class.c (make_class_data): Call emit_assertion_table to set the
4450
        'assertion_table' field.
4451
        (build_signature_for_libgcj): Move here from expr.c.
4452
        (add_assertion_table_entry): New function. Callback for assertion
4453
        hashtable traversal.
4454
        (emit_assertion_table): New. Take class argument, and generate
4455
        assertion table DECL based on the TYPE_ASSERTIONS hashtable.
4456
        * decl.c (init_decl_processing): Define assertion_entry_type record.
4457
        Push 'assertion_table' class field instead of 'verify'.
4458
        * expr.c (type_assertion_eq): Compare 'assertion_code' field.
4459
        (type_assertion_hash): Include 'assertion_code' in hash.
4460
        (add_type_assertion): Rewritten. Take class and assertion_code
4461
        arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
4462
        (can_widen_reference_to): Use new add_type_assertion() arguments.
4463
        * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
4464
        JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
4465
        (verify_identifier_node): Removed.
4466
        (assertion_entry_type, assertion_table_type): New.
4467
        (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
4468
        assertion code definitions.
4469
        (struct type_assertion): Add assertion_code. Rename 'source_type' and
4470
        'target_type' to 'op1' and 'op2'.
4471
        (add_type_assertion): Declare.
4472
        (lang_printable_name_wls): Remove unused definition.
4473
        * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
4474
        to emit runtime assertion.
4475
        (vfy_note_stack_type): Clean up non-C90 declarations.
4476
        (vfy_note_local_type): Likewise.
4477
        * verify.h (vfy_is_assignable_from): Declare.
4478
        * verify-impl.c (is_assignable_from_slow): Remove unused function.
4479
        (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
4480
        instead of is_assignable_from_slow().
4481
        (types_compatible): Reinstate ref_compatible() call.
4482
 
4483
2004-11-04  Tom Tromey  
4484
 
4485
        * class.c (build_static_field_ref): Reverted previous patch.
4486
 
4487
        * class.c (build_static_field_ref): Don't emit direct references
4488
        when using indirect dispatch.
4489
 
4490
2004-11-03  Tom Tromey  
4491
 
4492
        * expr.c (expand_java_arrayload): Set lhs_type_node.
4493
        (expand_java_arraystore): Set rhs_type_node.
4494
 
4495
2004-11-02  Tom Tromey  
4496
 
4497
        * jcf-parse.c (compute_class_name): Use filename length from zip
4498
        directory, not strlen.
4499
 
4500
        * expr.c (expand_invoke): Mark new interface methods as abstract.
4501
 
4502
2004-11-01  Tom Tromey  
4503
 
4504
        * verify-impl.c (push_jump): Removed check for uninitialized
4505
        objects.
4506
        (push_exception_jump): Likewise.
4507
        (handle_ret_insn): Likewise.
4508
        (handle_jsr_insn): Likewise.
4509
        (state_check_no_uninitialized_objects): Removed.
4510
 
4511
        * decl.c (check_local_unnamed_variable): Recognize
4512
        promoted-to-int parameters when using the new verifier.
4513
        * expr.c (expand_java_arraystore): Explicitly request array type
4514
        when using new verifier.
4515
        (expand_java_arrayload): Likewise.
4516
        (invoke_build_dtable): Don't pass object_type_node as
4517
        expression argument to build_java_indirect_ref.
4518
        (build_java_check_indexed_type): Do nothing.
4519
        (build_java_arraystore_check): Handle case where array doesn't
4520
        have array type.
4521
        (build_java_array_length_access): Likewise.
4522
        (expand_invoke): Handle case where interface overrides a method
4523
        from Object.
4524
        (pop_type_0): Always succeed for reference types.
4525
        (process_jvm_instruction): Don't pop a value in a dead
4526
        exception handler.
4527
        (pop_arguments): Convert arguments to correct types.
4528
 
4529
2004-10-29  Andrew Haley  
4530
 
4531
        * jcf-parse.c (give_name_to_class): Remove line that was
4532
        incorrectly merged.
4533
 
4534
2004-10-29  Andrew Haley  
4535
 
4536
        * jcf-parse.c (set_source_filename): Add code to build new sfname.
4537
 
4538
2004-10-20  Andrew Haley  
4539
 
4540
        * decl.c (end_java_method): Don't expand if flag_syntax_only.
4541
 
4542
2004-10-26  Tom Tromey  
4543
 
4544
        * verify.h (vfy_notify_verified): Removed.
4545
        * verify-glue.c (vfy_notify_verified): Removed.
4546
 
4547
2004-10-26  Tom Tromey  
4548
 
4549
        * verify-impl.c (debug_print_state): Declare `i' before code.
4550
        (merge_types): Modify `t' when it is null_type.
4551
 
4552
2004-10-26  Tom Tromey  
4553
 
4554
        * verify-impl.c (type_print): Renamed from print.  Now static and
4555
        takes an argument.
4556
        (debug_print_state): Use type_print.
4557
 
4558
2004-10-25  Tom Tromey  
4559
 
4560
        * expr.c (build_invokeinterface): Compute correct offset for
4561
        index into interface methods.
4562
 
4563
2004-10-20  Tom Tromey  
4564
 
4565
        * java-tree.h (verify_jvm_instructions_new): Declare.
4566
 
4567
        * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
4568
        command line.
4569
 
4570
        * verify-impl.c (verify_instructions): Correctly handle wide
4571
        types on the stack.
4572
        * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
4573
        (vfy_get_component_type): Strip pointer types.
4574
        (vfy_find_class): Use get_type_from_signature.  Strip pointer
4575
        types.
4576
        Include java-except.h.
4577
 
4578
2004-10-20  Bryce McKinlay  
4579
 
4580
        * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
4581
        vfy_push_type_t, set_variable, add_new_state, merge_into,
4582
        handle_jsr_insn, branch_prepass, check_class_constant,
4583
        check_wide_constant, get_one_type, compute_static_types,
4584
        verify_instructions_0): Clean up C99 declarations after statements.
4585
 
4586
2004-10-20  Tom Tromey  
4587
 
4588
        * verify-impl.c (merge_refs): Compare reference against iterator,
4589
        not ref2.
4590
 
4591
        * verify-glue.c (vfy_tag): Mask off resolved flag.
4592
 
4593
2004-10-19  Tom Tromey  
4594
 
4595
        * verify-impl.c (verify_instructions): Call vfy_note_local_type.
4596
        (init_state_with_stack): Initialize `this_type' in state.
4597
        (verify_method): Use debug_print.
4598
        * verify-glue.c (vfy_is_primitive): Removed debugging print.
4599
        (vfy_note_stack_depth): Reverted last patch.
4600
        (vfy_note_stack_type): Note pointer to Object, not Object.
4601
        (vfy_note_local_type): Likewise.
4602
 
4603
        * verify.h (vfy_note_instruction_seen): Declare.
4604
        * verify-glue.c (verify_jvm_instructions_new): Set
4605
        BCODE_EXCEPTION_TARGET on target instruction.
4606
        (vfy_note_instruction_seen): New function.
4607
        * verify-impl.c (FLAG_INSN_SEEN): New define.
4608
        (verify_instructions_0): Set flag on instruction.  Save state for
4609
        PC=0 later.
4610
        (verify_instructions): Call vfy_note_instruction_seen.
4611
 
4612
        * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
4613
        (verify_jvm_instructions_new): Call method_init_exceptions,
4614
        add_handler, and handle_nested_ranges.
4615
        * verify-impl.c (verify_method): Return 1 on success.
4616
        (verify_instructions_0): Save the state at PC=0.
4617
 
4618
        * verify-impl.c (init_type_from_class): Set is_resolved and
4619
        ref_next on new ref_intersection.
4620
        (init_type_from_string): Likewise.
4621
 
4622
2004-10-15  Bryce McKinlay  
4623
 
4624
        * expr.c (expand_bytecode): Use verify_jvm_instructions_new
4625
        if flag_new_verifier is set.
4626
        * java-tree.h (flag_new_verifier): Declare.
4627
        * lang.opt (fnew-verifier): New option.
4628
        * verify-impl.c: Work around namespace pollution by undef'ing
4629
        'current_class'.
4630
        (struct verifier_context): Make 'bytecode' const.
4631
        (verify_fail_pc): Pass -1 PC argument to vfy_fail.
4632
        (types_compatible): For the BC-ABI, always consider reference types
4633
        compatible.
4634
        (check_class_constant): Use vfr->current_class.
4635
        (check_constant): Likewise.
4636
        (check_wide_constant): Likewise.
4637
        (check_field_constant): Check for 'L' at start of type name.
4638
        (get_one_type): Return pointer instead of type. Set type result in
4639
        caller via passed type pointer.
4640
        (compute_argument_types): Update to use new get_one_type arguments.
4641
        (compute_return_type): Likewise.
4642
        (make_verifier_context): New. Allocate and initialize 'vfr'.
4643
        (free_verifier_context): New. Free 'vfr' and its contents.
4644
        (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
4645
        and free_verifier_context.
4646
 
4647
2004-10-15  Tom Tromey  
4648
 
4649
        * verify-glue.c (vfy_note_local_type): Mark argument as unused.
4650
        * verify.h (vfy_fail): Fixed formatting.
4651
 
4652
        * verify-impl.c (vfr): Fixed comment formatting.
4653
        (collapse_type): New function.
4654
        (verify_instructions): Notify compiler about type map.
4655
        * verify.h (vfy_note_stack_depth): Updated.
4656
        (vfy_note_stack_type): Likewise.
4657
        (vfy_note_local_type): Likewise.
4658
        (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
4659
        Declare.
4660
        * verify-glue.c (vfy_note_stack_depth): Correctly size type
4661
        state.  Added `method' argument.
4662
        (vfy_note_stack_type): Renamed from vfy_note_type.  Added `method'
4663
        argument.
4664
        (vfy_note_local_type): New function.
4665
        (vfy_unsuitable_type): Likewise.
4666
        (vfy_return_address_type): Likewise.
4667
        (vfy_null_type): Likewise.
4668
 
4669
        * verify.h (VFY_IN_GCC): Removed.
4670
        (VFY_WANT_TYPEMAP): Removed.
4671
        * verify-impl.c (verify_instructions_0): Removed useless "\".
4672
        (struct state) : Uncomment.
4673
 
4674
2004-10-13  Bryce McKinlay  
4675
 
4676
        * verify-impl.c: Formatting fixes. Reformat C++-style comments to
4677
        C-style.
4678
 
4679
2004-10-06  Bryce McKinlay  
4680
 
4681
        * Make-lang.in (verify.o): Re-enabled this target.
4682
        * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
4683
        (vfy_get_interface): Likewise.
4684
        (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
4685
        * verify.h (verify_jvm_instructions_new): Declare.
4686
        * verify-impl.c (free_state): Temporarily comment out unused
4687
        function.
4688
 
4689
2004-10-06  Tom Tromey  
4690
 
4691
        * java-tree.h (JV_STATE_READ): New enum value.
4692
 
4693
2004-10-06  Bryce McKinlay  
4694
 
4695
        * verify.h: New file.
4696
 
4697
2004-10-05  Bryce McKinlay  
4698
 
4699
        * verify-impl.c, verify-glue.c, verify.h: New files.
4700
        * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
4701
 
4702
2004-09-24  Andrew Haley  
4703
 
4704
        * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
4705
        for a slot if it's of pointer type.
4706
 
4707
2004-09-14  Tom Tromey  
4708
 
4709
        * class.c (make_class_data): Correctly initialize "state" field.
4710
        Initialize "engine" field.
4711
        * decl.c (java_init_decl_processing): Add "engine" field.
4712
 
4713
2004-09-10  Andrew Haley  
4714
 
4715
        PR java/12760
4716
        * expr.c (build_invokeinterface): Use fast method for interface
4717
        dispatch.
4718
        * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
4719
        JTI_ITABLE_PTR_TYPE.
4720
        (struct lang_type): Add  itable_methods, itable_decl, itable_syms_decl.
4721
        (emit_symbol_table): Add new arg, element_size.
4722
        * decl.c (java_init_decl_processing): Initialize Class.itable.
4723
        * class.c (GEN_TABLE): New macro.
4724
        (gen_indirect_dispatch_tables): Use it.  Add itable.
4725
        (make_class_data): Add new arg for emit_symbol_table().
4726
        Emit itable.
4727
        (add_miranda_methods): Make sure search_class has been parsed.
4728
        (emit_symbol_table): Add new arg, element_size.
4729
 
4730
2004-09-06  Andrew Haley  
4731
 
4732
        * verify.c (merge_types): Return Object for all merges of
4733
        interfaces.
4734
        * expr.c (add_type_assertion): Don't generate assertions when
4735
        source type is array of Object.
4736
 
4737
2004-09-03  Andrew Haley  
4738
 
4739
        * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
4740
 
4741
        * lang.c (java_post_options): Force flag_verify_invocations if
4742
        we're not using indirect dispatch.
4743
 
4744
        * expr.c (pop_type_0): Move test for interfaces before call to
4745
        can_widen_reference_to().
4746
        (build_signature_for_libgcj): Remove generation of canonical array
4747
        type.
4748
        (add_type_assertion): Canonicalize both arrays.
4749
        Don't assert that type X can be assigned to Object.
4750
        Don't assert that type X an be assigned to type X.
4751
        Don't assert that Object can be assigned to type X.
4752
        (can_widen_reference_to): Warn whenever we generate an assertion.
4753
        (process_jvm_instruction): Use throwable_type_node for the type of
4754
        an exception class.
4755
 
4756
2004-09-01  Andrew Haley  
4757
 
4758
        * decl.c (java_init_decl_processing): Change
4759
        verify_identifier_node to "__verify".
4760
        * expr.c (add_type_assertion): Use verify_identifier_node for name.
4761
        * java-tree.h (verify_identifier_node): Change to "__verify".
4762
 
4763
        * expr.c (build_signature_for_libgcj): New function.
4764
        (add_type_assertion): Use it to construct signatures for
4765
        source_type and target_type.
4766
 
4767
2004-08-27  Andrew Haley  
4768
 
4769
        * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
4770
        (verify_identifier_node): New.
4771
        (TYPE_VERIFY_METHOD): New.
4772
        (struct type_assertion): New type.
4773
        * expr.c (type_assertion_eq): New function.
4774
        (type_assertion_hash): New function.
4775
        (add_type_assertion): New function.
4776
        (can_widen_reference_to): Call add_type_assertion().
4777
        * decl.c (java_init_decl_processing): Add verify_identifier_node.
4778
        * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
4779
        (finish_class): Output TYPE_VERIFY_METHOD (type).
4780
 
4781
        * decl.c (end_java_method): Nullify unused fields.
4782
 
4783
2004-08-17  Andrew Haley  
4784
 
4785
        * verify.c (defer_merging): Quieten.
4786
        * jcf-parse.c (load_class): Only try to open a class file if it's
4787
        java.lang.Object or if it's part of the current compilation.
4788
        Check that the class we just tried to load is the class we just
4789
        loaded.  Quieten.
4790
        (java_parse_file): Set flag_verify_invocations off if we're
4791
        compiling from .class.
4792
        (parse_zip_file_entries): Abort if we try to read a dummy class.
4793
        * expr.c (can_widen_reference_to): Quieten.
4794
        (build_invokevirtual): Abort if we try to invokevirtual an
4795
        interface.
4796
        (expand_invoke): Don't build a non-interface call to an interface.
4797
        (build_instanceof): Don't do premature optimization if
4798
        flag_verify_invocations is not set.
4799
        * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
4800
        from superclass.
4801
        (build_static_field_ref): Add correct type conversion for
4802
        field_address.
4803
        (add_miranda_methods): Disable generation of Miranda methods for
4804
        dummy classes.
4805
        (layout_class_method): Don't complain about non-static method
4806
        overrides static method with dummy classes.
4807
 
4808
2004-08-13  Tom Tromey  
4809
 
4810
        * class.c (build_static_field_ref): Re-enable atable lookups for
4811
        static fields.
4812
 
4813
        * parse.y (strip_out_static_field_access_decl): Indentation fix.
4814
 
4815
2004-08-11  Tom Tromey  
4816
 
4817
        * gcj.texi (libgcj Runtime Properties): Document new properties.
4818
 
4819
2004-08-06  Andrew Haley  
4820
 
4821
        * jcf-parse.c (load_class): Check that we really have loaded the
4822
        class we're looking for.
4823
 
4824
2004-07-19  Andrew Haley  
4825
 
4826
        * verify.c (verify_jvm_instructions): Comment change only.
4827
 
4828
        * typeck.c (build_java_array_type): Add size field to array name.
4829
 
4830
        * java-tree.h (LOCAL_SLOT_P): New.
4831
        (update_aliases): Add PC argument.
4832
        (pushdecl_function_level): New function.
4833
 
4834
        * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4835
        MODIFY_EXPR, and SAVE_EXPR.
4836
        (java_gimplify_modify_expr): New function.
4837
 
4838
        * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4839
        (expand_iinc): Pass PC to update_aliases().
4840
        (STORE_INTERNAL): Likewise.
4841
        (process_jvm_instruction): Likewise.
4842
 
4843
        * decl.c (base_decl_map): New variable.
4844
        (uniq): New variable.
4845
        (update_aliases): Rewrite with more thorough checking.
4846
        (debug_variable_p): New function.
4847
        (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
4848
        (check_local_named_variable): Delete whole function.
4849
        (initialize_local_variable): New function.
4850
        (check_local_unnamed_variable): Add checks and comments.
4851
        (find_local_variable): Rewrite.
4852
        (java_replace_reference): New function.
4853
        (function_binding_level): New variable.
4854
        (pushdecl_function_level): New function.
4855
        (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4856
        (maybe_pushlevels): Call pushdecl() on each of the new decls.
4857
        (start_java_method): Reset uniq.  Create base_decl_map.  Set
4858
        function_binding_level.
4859
        (end_java_method): Null unused fields to save memory.
4860
 
4861
2004-06-29  Andrew Haley  
4862
 
4863
        * except.c (expand_start_java_handler): Push a new binding level.
4864
        Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
4865
        register_exception_range() to register where we'll do it.
4866
        (expand_end_java_handler): Remove old bogus code.  Replace with
4867
        new logic that simply builds TRY_CATCH_EXPRs and inserts them at
4868
        the top of the expression we're curently building.
4869
        (maybe_end_try): Delete.
4870
        * decl.c (binding_level.exception_range): New field.
4871
        (clear_binding_level): Add field exception_range.  Reformat.
4872
        (poplevel): Call expand_end_java_handler().
4873
        (poplevel): Call java_add_stmt only if functionbody is false.
4874
        (maybe_poplevels): Don't call maybe_end_try() from here.
4875
        (end_java_method): Clear no longer used trees in function decl.
4876
        (register_exception_range): New function.
4877
        * java-tree.h (register_exception_range, struct eh_range): Declare.
4878
 
4879
2004-06-22  Andrew Haley  
4880
 
4881
        * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
4882
        the otable.
4883
        * check-init.c (get_variable_decl): Teach check-init about
4884
        FIELD_DECLs addressed via the otable.
4885
        * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
4886
        CLASS_PARSED_P.
4887
 
4888
2004-05-28  Andrew Haley  
4889
 
4890
        * jcf-parse.c (load_class): Don't try to read a class that we've
4891
        already read.
4892
 
4893
        * expr.c (build_invokeinterface): Use the old-fashioned way of
4894
        doing indirect dispatch: look up interfaces by name.
4895
        * java-tree.h (enum java_tree_index): Add
4896
        JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
4897
        * decl.c (java_init_decl_processing): Add
4898
        soft_lookupinterfacemethodbyname_node.
4899
 
4900
        * gjavah.c (print_method_info): Final methods have vtable entries,
4901
        so gjavah needs to output them.
4902
        * class.c (layout_class_method): Generate vtable entries for final
4903
        methods.
4904
        * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
4905
        dispatch, even if a method is final.
4906
 
4907
2004-05-25  Andrew Haley  
4908
 
4909
        * class.c (build_symbol_entry): Convert the names of constructors
4910
        to init_identifier_node when generating an entry for the indirect
4911
        dispatch table.
4912
 
4913
        * expr.c (build_known_method_ref): Generate indirect calls for
4914
        all methods marked DECL_EXTERNAL or TREE_PUBLIC.
4915
 
4916
2004-05-24  Andrew Haley  
4917
 
4918
        * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
4919
        atable element is of the right type.
4920
 
4921
        * class.c (build_static_field_ref): Cast pointer to correct type
4922
        for field.
4923
 
4924
2004-04-20  Bryce McKinlay  
4925
 
4926
        * Merged with HEAD as of 20040514. Diff against
4927
        gcj-abi-2-merge-20040514.
4928
 
4929
2004-04-16  Andrew Haley  
4930
 
4931
        * verify.c (check_pending_block): Disable subroutine checks.
4932
        (defer_merging): New function.
4933
        (merge_types): If types are dummy, use defer_merging to combine them.
4934
        (verify_jvm_instructions): If invocation is invokeinterface and
4935
        target is dummy, assume target really is an interface.
4936
 
4937
        * parse.y (patch_invoke): Break out call to java_create_object.
4938
 
4939
        * lang.c (flag_verify_invocations): New.
4940
 
4941
        * jcf-parse.c (load_class): If we've already failed to load a
4942
        class, don't try again.
4943
        (load_class): If we can't find a .class file, don't fail, but emit
4944
        a warning.
4945
        (parse_class_file): Don't act on dummy methods.
4946
 
4947
        * java-tree.h (flag_verify_invocations): New.
4948
        (TYPE_DUMMY): New.
4949
        (lang_type.dummy_class): New field.
4950
        (java_create_object): New function.
4951
        (METHOD_DUMMY): New.
4952
 
4953
        * expr.c (build_field_ref): Widen field offset.
4954
        (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
4955
        that each of its elements is compatible with the one we're
4956
        popping.
4957
        (pop_type_0): Issue a warning to say that we need to generate a
4958
        runtime check.
4959
        (java_create_object): New function.
4960
        (build_field_ref): Only generate hard refs if we're not using
4961
        indirect dispatch.
4962
        (expand_java_field_op): If we're using !verify_invocations and we
4963
        see a missing field, generate a decl for it.
4964
 
4965
        (expand_invoke): If a class doesn't have the method we seek and
4966
        we're using !flag_verify_invocations, generate a decl for the
4967
        method now.
4968
 
4969
        (build_known_method_ref): Always use indirect dispatch via the
4970
        atable for static methods.
4971
 
4972
        (expand_java_NEW): Break out object creation into new function,
4973
        java_create_object.
4974
 
4975
        (can_widen_reference_to): Issue a warning to say that we need to
4976
        generate a runtime check.
4977
 
4978
        * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
4979
        (make_method_value): Also use index for interfaces.
4980
        (make_class_data): Skip dummy field for inherited data.
4981
        Don't build method array for dummy methods.
4982
        Set size_in_byte to -1 when using inirect dispatch
4983
        Don't build a hard class ref if we don't have a hard ref to our
4984
        superclass, or if we're using inirect dispatch.
4985
        Null out dispatch tables.
4986
 
4987
        (layout_class_method): Don't complain about non-static method
4988
        overrides static method is method is artificial.
4989
 
4990
        (build_static_field_ref): Disable atable references to static
4991
        fields for the time being.
4992
 
4993
        (layout_class_methods): Check for CLASS_INTERFACE as
4994
        well as CLASS_ABSTRACT.
4995
 
4996
2004-11-24  Steven Bosscher  
4997
 
4998
        * class.c (make_class_data): Don't check flag_inline_functions.
4999
        * lang.c (flag_really_inline): Remove unused flag.
5000
        (java_handle_option): Don't set it here.  Remove special handling
5001
        of flag_inline_functions for Java.
5002
        (java_init): Don't set flag_inline_trees here.  Already done...
5003
        (java_post_options): ...here.  Don't clear flag_inline_functions.
5004
 
5005
2004-11-24  Steven Bosscher  
5006
 
5007
        * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
5008
        (java_gimplify_exit_block_expr): New function.
5009
        (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
5010
        LABELED_BLOCK_EXPR.
5011
        * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
5012
        (EXIT_BLOCK_EXPR): Likewise.
5013
        * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
5014
        (LABELED_BLOCK_BODY): Likewise.
5015
        (EXIT_BLOCK_LABELED_BLOCK): Likewise.
5016
        * jcf-write.c (generate_bytecode_insns): Don't handle the unused
5017
        EXIT_BLOCK_RETURN operand.  Use EXIT_BLOCK_LABELED_BLOCK instead of
5018
        TREE_OPERAND.
5019
        * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
5020
        (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
5021
        EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND.  Don't handle the
5022
        second operand of EXIT_BLOCK_EXPR.
5023
        * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
5024
        TREE_OPERAND.
5025
        (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
5026
 
5027
2004-11-23  Ben Elliston  
5028
 
5029
        * xref.h (xref_flag_value): Remove.
5030
        (xref_set_data, xref_get_data): Likewise.
5031
        (xref_set_current_fp): Likewise.
5032
        (XREF_NONE): Likewise.
5033
        (XREF_GET_DATA): Likewise.
5034
        * xref.c (xref_flag_value): Remove.
5035
        (xref_set_data, xref_get_data): Likewise.
5036
        (xref_set_current_fp): Likewise.
5037
 
5038
2004-11-23  Ben Elliston  
5039
 
5040
        * gjavah.c (output_directory): Make static.
5041
        (temp_directory): Likewise.
5042
 
5043
2004-11-15  Tom Tromey  
5044
 
5045
        * decl.c (instn_ptr_type_node): Removed.
5046
        (lineNumbers_ptr_type_node): Removed.
5047
        (jint_type): Removed.
5048
        (jint_ptr_type): Removed.
5049
 
5050
2004-11-09  Andrew Pinski  
5051
 
5052
        PR java/15576
5053
        * check-init.c (check_init): Ignore DECL_EXPR.
5054
        * expr.c (always_initialize_class_p): Reenable.
5055
        (build_class_init): Use a variable to store the decl.  Also use
5056
        boolean_false_node instead of integer_zero_node.
5057
        * parse.y (attach_init_test_initialization_flags): Add a decl_expr
5058
        to the block.
5059
 
5060
2004-11-08  Tom Tromey  
5061
 
5062
        PR java/16843:
5063
        * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
5064
        generating a JNI header.
5065
        (print_field_info): Handle JNI headers.
5066
        (jni_print_float): Likewise.
5067
        (jni_print_double): Likewise.
5068
 
5069
2004-11-08  Andrew Pinski  
5070
 
5071
        * decl.c (end_java_method): Remove duplicated code.
5072
 
5073
2004-11-06  Zack Weinberg  
5074
            Gerald Pfeifer  
5075
 
5076
        * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
5077
        as well.
5078
 
5079
2004-11-02  Bryce McKinlay  
5080
 
5081
        PR java/17265
5082
        * class.c: Reinstate 2004-08-18 patch.
5083
        (make_local_function_alias): Don't create an alias for extern (native)
5084
        functions.
5085
 
5086
2004-10-22  Eric Botcazou  
5087
 
5088
        PR java/17265
5089
        * class.c (make_local_function_alias): Revert 2004-08-18 change.
5090
        (make_method_value): Likewise.
5091
 
5092
2004-10-21  Andrew Haley  
5093
 
5094
        PR java/18091:
5095
        * jcf-parse.c (set_source_filename): Add code to build new sfname.
5096
 
5097
2004-10-20  Andrew Haley  
5098
 
5099
        * decl.c (end_java_method): Don't expand if flag_syntax_only.
5100
        Remove duplicated code block.
5101
 
5102
2004-10-18  Steven Bosscher  
5103
 
5104
        * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
5105
        New rules to work around old Bison warnings.
5106
 
5107
2004-10-17  Steven Bosscher  
5108
 
5109
        * class.c (ident_subst): Always alloca buffer.
5110
        * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
5111
        opcode after including javaop.def.
5112
        * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
5113
        conditional expression that exits, to avoid warnings.
5114
        * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
5115
        a user of an extension.
5116
        * win32-host.c: Move check down to have non-empty file when
5117
        WIN32 is not defined.
5118
 
5119
        * Make-lang.in (java-warn): Add STRICT_WARN.
5120
        (java/jcf-io.o-warn): Don't have Werror for this file.
5121
        * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
5122
 
5123
2004-10-16  Hans-Peter Nilsson  
5124
 
5125
        * expr.c (expr_add_location): Move declaration to before all
5126
        statements.
5127
        * parse.y (java_expand_classes): Ditto.
5128
        * lex.c (java_peek_unicode): Ditto.
5129
 
5130
2004-10-16  Ranjit Mathew  
5131
 
5132
        * check-init.c: Use %<, %> and %q for quoting in diagnostics,
5133
        if possible, else convert `foo' to 'foo'.
5134
        * class.c: Likewise.
5135
        * decl.c: Likewise.
5136
        * expr.c: Likewise.
5137
        * jcf-io.c: Likewise.
5138
        * jcf-parse.c: Likewise.
5139
        * lang.c: Likewise.
5140
        * lex.c: Likewise.
5141
        * parse.h: Likewise.
5142
 
5143
2004-10-16  Ranjit Mathew  
5144
 
5145
        * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
5146
        rename parameter 'msg' to 'msgid' in function declaration.
5147
        (issue_warning_error_from_context): Likewise.
5148
        (yyerror): Rename parameter 'msg' to 'msgid'.
5149
        (all over): Use new quoting style for diagnostics.
5150
 
5151
2004-10-15  Kazu Hirata  
5152
 
5153
        * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
5154
        jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
5155
        Update copyright.
5156
 
5157
2004-10-14  Matt Austern  
5158
 
5159
        * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
5160
        pointer_set_t* now.
5161
 
5162
2004-10-13  Tom Tromey  
5163
 
5164
        PR java/15578:
5165
        * lang.opt (--extdirs): Document.
5166
        * jvspec.c (lang_specific_driver): Recognize -encoding and
5167
        -extdirs.
5168
 
5169
2004-10-06  Ulrich Weigand  
5170
 
5171
        * parse.y (issue_warning_error_from_context): Use va_list *
5172
        instead of va_list parameter.
5173
        (parse_error_context): Update call.
5174
        (parse_warning_context): Likewise.
5175
 
5176
2004-10-05  Zack Weinberg  
5177
 
5178
        * parse.y, parse-scan.y: Add list of diagnostic messages to
5179
        insulate translation template from version of yacc/bison used
5180
        to compile the grammar.
5181
 
5182
2004-10-05  Ranjit Mathew  
5183
 
5184
        Prepare for %q, %< and %> in diagnostic message strings.
5185
        * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
5186
        Name second parameter 'msgid'.
5187
        * parse.y: Additionally include pretty-print.h and diagnostic.h.
5188
        (issue_warning_error_from_context): Use pretty-printer functions
5189
        instead of vsprintf for constructing formatted messages. Rename
5190
        parameter 'msg' to 'msgid'.
5191
        (parse_error_context): Rename parameter 'msg' to 'msgid'.
5192
        (parse_warning_context): Likewise.
5193
 
5194
2004-10-05  Andrew Haley  
5195
 
5196
        PR java/17779
5197
        * jcf-parse.c (parse_zip_file_entries): If a class has a
5198
        superclass and a TYPE_SIZE of zero, lay it out.
5199
 
5200
2004-09-30  Andrew Haley  
5201
 
5202
        PR java/17733
5203
        * jcf-parse.c (compute_class_name): Rewrite.
5204
 
5205
2004-10-01  Jan Hubicka  
5206
 
5207
        * java.c (java_expand_body): Update call of tree_rest_of_compilation.
5208
 
5209
2004-10-01  Kazu Hirata  
5210
 
5211
        * lex.c: Fix a comment typo.
5212
 
5213
2004-10-01  Kazu Hirata  
5214
 
5215
        * java-tree.h: Fix a comment typo.
5216
 
5217
2004-09-30  Per Bothner  
5218
 
5219
        Simplify lexer.  Implement --enable-mapped-location support.
5220
        * jcf-parse.c (parse_class_file):  Use linemap_line_start.
5221
        (parse_source_file_1): Pass filename as extra parameter, so we can call
5222
        linemap_add and set input_location here, rather than in both callers.
5223
        (read_class): Pass copied filename to parse_source_file_1.
5224
        Don't initialize wfl_operator - only needed for source compilation.
5225
        (read_class, jcf_parse):  Call linemap_add with LC_LEAVE.
5226
        * lex.h:  Remove a bunch of debugging macros.
5227
        * lex.h (struct_java_line, struct java_error):  Remove types.
5228
        (JAVA_COLUMN_DELTA):  Remove - use java_lexer.next_colums instead.
5229
        (struct java_lc_s):  Remove prev_col field.
5230
        (struct java_lexer):  New fields next_unicode, next_columns, and
5231
        avail_unicode.  New position field, and maybe token_start field.
5232
        Don't need hit_eof field - use next_unicode == -1 instead.
5233
        (JAVA_INTEGERAL_RANGE_ERROR):  Rename to JAVA_RANGE_ERROR.
5234
        (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR):  Update accordingly.
5235
        * parse.h:  Various changes for USE_MAPPED_LOCATION.
5236
        (EXPR_WFL_EMIT_LINE_NOTE): XXX
5237
        (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
5238
        (struct parser_ctxt):  New file_start_location field.
5239
        Remove p_line, c_line fields since we no longer save lines.
5240
        Remove elc, lineno, and current_jcf fields - no longer used.
5241
        * parse.y:  Updates for USE_MAPPED_LOCATION and new lexer.
5242
        Don't use EXPR_WFL_ADD_COL since that isn't trivial with
5243
        source_location and is probably not needed anymore anyway.
5244
        Use new expr_add_Location function.
5245
        (SET_EXPR_LOCATION_FROM_TOKEN):  New convenience macro.
5246
        (java_pop_parser_context):  Minor cleanup.
5247
        (java_parser_context_save_global, java_parser_context_restore_global,
5248
        java_pop_parser_context):  Save/restore input_location as a unit.
5249
        (issue_warning_error_from_context):  If USE_MAPPED_LOCATION take
5250
        a source_location instead of a wfl context node.
5251
        (check_class_interface_creation):  input_filename is not addressable.
5252
        (create_artificial_method):  Calling java_parser_context_save_global
5253
        and java_parser_context_restore_global is overkill.  Instead,
5254
        temporarily set input_location from class decl.
5255
        (java_layout_seen_class_methods): Set input_location from method decl.
5256
        (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
5257
        (finish_loop_body):  Likewise.
5258
        * lex.c: Updates for USE_MAPPED_LOCATION.  Use build_unknwon_wfl.
5259
        (java_sprint_unicode):  Take a character, not index in line.
5260
        (java_sneak_uncode):  Replaced by java_peek_unicode.
5261
        (java_unget_unicode):  No longer used.
5262
        (java_allocate_new_line. java_store_unicode):  Removed, since we
5263
        no longer remember "lines".
5264
        (java_new_lexer):  Update for new data structures.
5265
        (java_read_char):  Move unget_value checking to java_read_unicode.
5266
        (java_get_unicode, java_peek_unicode, java_next_unicode): New more
5267
        efficient functions that are used directly when lexing.
5268
        (java_read_unicode_collapsing_terminators):  No longer needed.
5269
        (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
5270
        Re-organize to use java_peek_unicode to avoid java_unget_unicode.
5271
        (java_parse_escape_sequence):  Rewrite to be simpler / more efficient.
5272
        (do_java_lex):  Lots of movings around to avoid java_unget_unicode,
5273
        combine switch branches, and test for common token kinds earlier.
5274
        (java_lex_error):  Rewrite.
5275
        * jv-scan.c (expand_location): New function, copied from tree.c.
5276
        (main): Set ctxp->filename instead of setting input_filename directly.
5277
 
5278
2004-09-30  Per Bothner  
5279
 
5280
        More cleanup for --enable-mapped-location.
5281
        * class.c (push_class):  If USE_MAPPED_LOCATION don't set
5282
        input_location here.  Instead do it in give_name_to_class.
5283
        (build_class_ref):  Set DECL_ARTIFICIAL, for the sake of dwarf2out.
5284
        * expr.c (expand_byte_code): Call linemap_line_start.
5285
        * expr.c (build_expr_wfl):  If USE_MAPPED_LOCATION, change final
5286
        parameters to a source_location.  Don't need EXPR_WFL_FILENAME_NODE.
5287
        (expr_add_location):  New function, if USE_MAPPED_LOCATION.
5288
        * class.c (maybe_layout_super_class):  Adjust build_expr_wfl call
5289
        to USE_MAPPED_LOCATION case.
5290
 
5291
        * java-tree.h (JAVA_FILE_P, ZIP_FILE_P):  Remove unused macros.
5292
        * jcf-parse.c (java_parse_file): Don't set input_filename.
5293
        Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
5294
        Create a list of TRANSLATION_UNIT_DECL.
5295
        (current_file_list):  Is now a TRANSLATION_UNIT_DECL chain.  The
5296
        reason is so we can set a DECL_SOURCE_LOCATION for each file.
5297
        (java_parse_file):  Don't set unused ZIP_FILE_P, JAVA_FILE_P..
5298
        Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
5299
        (file_start_location):  New static.
5300
        (set_source_filename):  Avoid extra access to input_filename macro.
5301
        Concatenate new name with class's package prefix.
5302
        (set_source_filename, give_name_to_class): Update.
5303
        (give_name_to_class):  Set class's "line 0" input_location here.
5304
        (parse_class_file):  Set input_location as a unit.
5305
 
5306
        * jcf-parse.c (load_class): Sanity test if missing inner class file.
5307
 
5308
2004-09-29  Per Bothner  
5309
 
5310
        * java-tree.h:  Redefine some macros and add some declaration
5311
        to handle the USE_MAPPED_LOCATION case.
5312
        * parse.h (EXPR_WFL_QUALIFICATION):  Use operand 1, not 2.
5313
        * java-tree.h (EXPR_WFL_FILENAME_NODE):  Use operand 2, not 1.
5314
        * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
5315
        USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
5316
 
5317
        * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
5318
        * decl.c (finish_method, java_add_stmt): Likewise.
5319
        * java-gimplify.c (java-gimplify.c):  Likewise.
5320
        * jcf-write.c (generate_bytecode_insns):  Likewise.
5321
        * lang.c (java_post_options): Likewise - call linemap_add.
5322
 
5323
2004-09-29  Andrew Haley  
5324
 
5325
        PR java/17007
5326
        * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
5327
        result of TRUNC_MOD_EXPR.
5328
        (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
5329
        * decl.c (java_init_decl_processing): Mark
5330
        soft_lookupinterfacemethod_node and soft_instanceof_node pure.
5331
 
5332
2004-09-28  Tom Tromey  
5333
 
5334
        PR java/15710:
5335
        * class.c (add_miranda_methods): Load superinterface if not
5336
        already loaded.
5337
 
5338
2004-09-28  Andrew Haley  
5339
 
5340
        PR java/17586
5341
        * jcf-parse.c (load_class): Don't try to read a class that we've
5342
        already read.
5343
 
5344
2004-09-28  Andrew Haley  
5345
 
5346
        * jcf-parse.c (load_class): Back out previous broken patch.
5347
 
5348
2004-09-28  Andrew Haley  
5349
 
5350
        PR java/17586
5351
        * jcf-parse.c (load_class): Don't try to read a class that we've
5352
        already read.
5353
        Check that we really did read the right class.
5354
 
5355
2004-09-25  Tom Tromey  
5356
 
5357
        PR java/17500:
5358
        * parse.y (create_artificial_method): Use add_method_1.
5359
 
5360
2004-09-25  Kazu Hirata  
5361
 
5362
        * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
5363
        comment typos.
5364
        * gcj.texi: Fix typos.
5365
 
5366
2004-09-24  Tom Tromey  
5367
 
5368
        PR java/15656:
5369
        * parse.y (class_instance_creation_expression): Set `$$' to NULL
5370
        in error parts of rule.
5371
        (unary_expression): Don't call error_if_numeric_overflow when $1
5372
        is NULL.
5373
 
5374
2004-09-24  Tom Tromey  
5375
 
5376
        PR java/16789:
5377
        * parse.y (resolve_qualified_expression_name): Set
5378
        CAN_COMPLETE_NORMALLY on first call when chaining static calls.
5379
        * expr.c (force_evaluation_order): Check for empty argument list
5380
        after stripping COMPOUND_EXPR.
5381
 
5382
2004-09-23  Andrew Haley  
5383
 
5384
        PR java/16927:
5385
        * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
5386
        COND_EXPRs.
5387
 
5388
2004-09-23  Tom Tromey  
5389
 
5390
        PR java/17329:
5391
        * java-gimplify.c (java_gimplify_expr) : Ignore case
5392
        where operand is null.
5393
 
5394
2004-09-23  Tom Tromey  
5395
 
5396
        PR java/17380:
5397
        * parse.y (not_accessible_p): Allow access to protected members
5398
        even when class is not static.
5399
 
5400
2004-09-22  Kelley Cook  
5401
 
5402
        * Make-lang.in: Revert the gcc-none.o change.
5403
 
5404
2004-09-22  Nathan Sidwell  
5405
 
5406
        * parse.y (patch_anonymous_class): VEC_space returns true if there
5407
        is space.
5408
 
5409
2004-09-21  Matt Austern  
5410
 
5411
        Fix bootstrap.
5412
        * gjavah.c (free_method_name_list): Fix function definition so
5413
        it's a proper C prototype.
5414
 
5415
2004-09-21  Tom Tromey  
5416
 
5417
        PR java/17575:
5418
        * gjavah.c (free_method_name_list): New method.
5419
        (main): Call it.
5420
 
5421
2004-09-17  Jeffrey D. Oldham  
5422
            Zack Weinberg  
5423
 
5424
        * java-tree.def: Use tree_code_class enumeration constants
5425
        instead of code letters.
5426
        * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
5427
        new tree-class enumeration constants.
5428
 
5429
2004-09-13  Tom Tromey  
5430
 
5431
        PR java/17216:
5432
        * class.c (layout_class_method): Put synthetic methods into the
5433
        vtable.
5434
 
5435
2004-09-11  Andrew Pinski  
5436
 
5437
        * Make-lang.in (java/ggc-none.c): Change dependency
5438
        for ggc.h into $(GGC_H).
5439
 
5440
2004-09-11  Mohan Embar  
5441
 
5442
        * Make-lang.in (java/win32-host.o): Add dependency on
5443
        coretypes.h.
5444
        * win32-host.c: Add includes for coretypes.h, jcf.h
5445
 
5446
2004-09-11  Mohan Embar  
5447
 
5448
        * Make-lang.in (GCJH_OBJS): Change dependency from
5449
        ggc-none.o to java/ggc-none.o
5450
        (JCFDUMP_OBJS): Likewise.
5451
        (java/ggc-none.o): New target.
5452
 
5453
2004-08-25  Nathan Sidwell  
5454
 
5455
        * boehm.c (get_boehm_type_descriptor):  Adjust build_int_cst calls.
5456
        * class.c (build_utf8_ref, build_static_field_ref,
5457
        make_field_value, make_method_value, get_dispatch_table,
5458
        make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5459
        * constants.c (get_tag_node, build_ref_from_constant_pool,
5460
        build_constants_constructor): Likewise.
5461
        * decl.c (java_init_decl_processing): Likewise.
5462
        * expr.c (build_java_array_length_access, build_newarray,
5463
        expand_java_multianewarray, expand_java_pushc, expand_iinc,
5464
        build_java_binop, build_field_ref, expand_java_add_case,
5465
        expand_java_call, build_known_method_ref, build_invokevirtual,
5466
        build_invokeinterface, build_jni_stub): Likewise.
5467
        * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5468
        * jcf-parse.c (get_constant): Likewise.
5469
        * lex.c (do_java_lex): Likewise.
5470
        * parse.y (patch_binop, patch_unaryop, patch_cast,
5471
        build_newarray_node, patch_newarray): Likewise.
5472
        * resource.c (compile_resource_data): Likewise.
5473
        * typeck.c (build_prim_array_type): Likewise.
5474
 
5475
2004-08-24  Nathan Sidwell  
5476
 
5477
        * decl.c (java_init_decl_processing): Adjust
5478
        initialize_sizetypes call.
5479
 
5480
2004-08-23  Nathan Sidwell  
5481
 
5482
        * jv-scan.c (fancy_abort): Add.
5483
 
5484
2004-08-20  Nathan Sidwell  
5485
 
5486
        * expr.c (build_java_arrayaccess): Use convert to change
5487
        len's type.
5488
 
5489
2004-08-19  Bryce McKinlay  
5490
 
5491
        * class.c (make_local_function_alias): Allocate extra space for 'L'
5492
        in name buffer. Reported by Thomas Neumann.
5493
 
5494
2004-08-19  Nathan Sidwell  
5495
 
5496
        * parse.h (JAVA_RADIX10_FLAG): Rename to ...
5497
        (JAVA_NOT_RADIX10_FLAG): ... here.  Invert meaning.
5498
        * lex.c (do_java_lex): Adjust.
5499
        (error_if_numeric_overflow): Likewise.
5500
 
5501
2004-08-18  Andrew Pinski  
5502
 
5503
        * class.c (make_local_function_alias): Only make a new decl if we
5504
        support alias attribute on all decls.
5505
 
5506
2004-08-18  Bryce McKinlay  
5507
 
5508
        * class.c (make_local_function_alias): New function. Create local
5509
        alias for public method DECL.
5510
        (make_method_value): Use make_local_function_alias.
5511
        * parse.y (craft_constructor): Don't special-case anonymous classes.
5512
        Always set ctor_name to init_identifier_node.
5513
        (lookup_method_invoke): Call layout_class_method when creating
5514
        anonymous class constructor.
5515
 
5516
2004-08-18  Richard Henderson  
5517
 
5518
        * java-gimplify.c (java_gimplify_expr): Move '2' handling into
5519
        default case.  Treat '<' similarly.  Update for
5520
        is_gimple_formal_tmp_var name change.
5521
 
5522
2004-08-17  Andrew Haley  
5523
 
5524
        * lang.c (lang_printable_name): Obey verbose flag.
5525
        * parse.y (constructor_circularity_msg): Set VERBOSE arg for
5526
        lang_printable_name().
5527
        (verify_constructor_circularity, get_printable_method_name,
5528
        check_abstract_method_definitions, java_check_regular_methods,
5529
        java_check_abstract_methods, check_inner_class_access,
5530
        fix_constructors, patch_method_invocation, patch_return):
5531
        Likewise.
5532
        * expr.c (pop_type_0): Likewise.
5533
 
5534
        * java-tree.h (lang_printable_name_wls): Delete.
5535
 
5536
2004-08-16  Tom Tromey  
5537
 
5538
        PR java/8473:
5539
        * parse.y (primary): Changed for initialized and uninitialized
5540
        array creations.
5541
        (array_access): Handle array_creation_initialized.
5542
        (array_creation_expression): Split into
5543
        array_creation_initialized and array_creation_uninitialized.
5544
 
5545
2004-08-16  Andrew Haley  
5546
 
5547
        * jcf-write.c (find_constant_index): Canonicalize NaNs when
5548
        generating bytecode.
5549
 
5550
2004-08-16  Elliot Lee 
5551
 
5552
        PR java/9677
5553
        * jcf-parse.c (java_parse_file): Handle filenames with embedded
5554
        spaces, and quoted filelists.
5555
 
5556
2004-08-15  Nathan Sidwell  
5557
 
5558
        * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
5559
        * class.c (build_utf8_ref, build_static_field_ref,
5560
        make_field_value, make_method_value, get_dispatch_table,
5561
        make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5562
        * constants.c (get_tag_node,  build_ref_from_constant_pool,
5563
        build_constants_constructor): Likewise.
5564
        * decl.c (java_init_decl_processing): Likewise.
5565
        * expr.c (build_java_array_length_access, build_newarray,
5566
        expand_java_multianewarray, expand_java_pushc, expand_iinc,
5567
        build_java_binop, build_field_ref, expand_java_add_case,
5568
        expand_java_call, build_known_method_ref, build_invokevirtual,
5569
        build_invokeinterface, build_jni_stub): Likewise.
5570
        * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5571
        * jcf-parse.c (get_constant): Likewise.
5572
        * lex.c (do_java_lex): Likewise.
5573
        * parse.y (patch_binop, patch_unaryop, patch_cast,
5574
        build_null_of_type, patch_newarray): Likewise.
5575
        * resource.c (compile_resource_data): Likewise.
5576
        * typeck.c (build_prim_array_type): Likewise.
5577
 
5578
2004-08-10  Bryce McKinlay  
5579
 
5580
        * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
5581
        Don't create BLOCK here or call java_gimplify_block.
5582
 
5583
2004-08-09  H.J. Lu  
5584
 
5585
        * java-tree.h (flag_deprecated): Removed.
5586
        * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
5587
        * parse.y (check_deprecation): Check warn_deprecated instead of
5588
        flag_deprecated.
5589
 
5590
2004-08-06  Kelley Cook  
5591
 
5592
        * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
5593
        flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
5594
        flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
5595
        flag_check_references, flag_extraneous_semicolon, flag_deprecated,
5596
        flag_force_classes_archive_check, flag_optimize_sci,
5597
        flag_indirect_dispatch): Remove explicit declarations.
5598
        * lang.opt: Add implicit declare/define/assign.  Remove obsolete
5599
        final comment.
5600
 
5601
2004-08-05  Michael Chastain  
5602
 
5603
        PR bootstrap/14893
5604
        * Make-lang.in (java.install-man): Install from either build
5605
        tree or source tree, whichever has the file first.
5606
 
5607
2004-08-05  Nathan Sidwell  
5608
 
5609
        * jcf-parse.c (get_constant): Adjust force_fit_type call.
5610
        * lex.h (SET_LVAL_NODE_TYPE): Remove.
5611
        * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
5612
        (do_java_lex): Likewise. Adjust force_fit_type call.
5613
 
5614
2004-08-04  Roger Sayle  
5615
            Andrew Haley  
5616
 
5617
        * typeck.c (convert_ieee_real_to_integer): Call fold on the range
5618
        checking trees as they're being built.
5619
        (convert): Call convert_ieee_real_to_integer if we're
5620
        converting a constant, even if we're writing a class file.
5621
 
5622
2004-08-02  Bryce McKinlay  
5623
 
5624
        PR java/16701
5625
        * parse.y (fold_constant_for_init): Call resolve_field_access with
5626
        correct current_class context.
5627
 
5628
2004-08-01  Roger Sayle  
5629
 
5630
        * decl.c (update_aliases, initialize_local_variable): Replace calls
5631
        to build with calls to buildN.
5632
        * java-gimplify.c (java_gimplify_modify_expr): Likewise.
5633
        * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
5634
        * parse.h (BUILD_THROW): Likewise.
5635
        * parse.y (switch_expression, synchronized_statement,
5636
        catch_clause_parameter, array_creation_expression,
5637
        conditional_expression, make_qualified_name,
5638
        resolve_qualified_expression_name, patch_method_invocation,
5639
        patch_invoke, build_method_invocation, build_new_invocation,
5640
        build_assignment, patch_assignment, build_binop, patch_binop,
5641
        build_string_concatenation, build_incdec, patch_unaryop,
5642
        patch_cast, build_array_ref, build_newarray_node, patch_newarray,
5643
        patch_return, build_if_else_statement, build_labeled_block,
5644
        build_new_loop, build_loop_body, build_bc_statement,
5645
        build_assertion, encapsulate_with_try_catch, build_try_statement,
5646
        build_try_finally_statement, patch_synchronized_statement,
5647
        emit_test_initialization): Likewise, replace build with buildN.
5648
 
5649
2004-07-28  Eric Christopher  
5650
 
5651
        * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5652
        (java_unsafe_for_reeval): Ditto.
5653
 
5654
2004-07-26    
5655
 
5656
        * parse.y (build_super_invocation): Adjust declaration order to
5657
        avoid declaration after statement.
5658
 
5659
2004-07-25  Bernardo Innocenti  
5660
 
5661
        * decl.c: Rename all identifiers named `class' to `cl'.
5662
 
5663
2004-07-25  Richard Henderson  
5664
 
5665
        * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
5666
 
5667
2004-07-23  Mike Stump  
5668
 
5669
        * boehm.c (set_bit): Improve type safety wrt unsignedness.
5670
        * gjavah.c (throwable_p, decode_signature_piece,
5671
        print_full_cxx_name, print_include, add_namelet, add_class_decl,
5672
        process_file): Likewise.
5673
        * jcf-dump.c (main): Likewise.
5674
        * jcf-io.c (read_zip_member): Likewise.
5675
        * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
5676
        give_name_to_class, get_class_constant): Likewise.
5677
        * jcf-write.c (find_constant_wide, push_long_const,
5678
        generate_classfile): Likewise.
5679
        * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
5680
        * parse.y (read_import_dir): Likewise.
5681
        * typeck.c (parse_signature_type): Likewise.
5682
        * verify.c (verify_jvm_instructions): Likewise.
5683
        * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
5684
 
5685
2004-07-23  Thomas Fitzsimmons  
5686
 
5687
        * Make-lang.in: Replace rmic and rmiregistry references with
5688
        grmic and grmiregistry.
5689
        * gcj.texi: Likewise.
5690
 
5691
2004-07-20  Andrew Haley  
5692
 
5693
        PR java/16431.
5694
        * verify.c (verify_jvm_instructions): Comment change only.
5695
 
5696
        * typeck.c (build_java_array_type): Add size field to array name.
5697
 
5698
        * java-tree.h (LOCAL_SLOT_P): New.
5699
        (update_aliases): Add PC argument.
5700
        (pushdecl_function_level): New function.
5701
 
5702
        * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
5703
        MODIFY_EXPR, and SAVE_EXPR.
5704
        (java_gimplify_modify_expr): New function.
5705
 
5706
        * expr.c (push_type_0): Call find_stack_slot() to create temporary.
5707
        (expand_iinc): Pass PC to update_aliases().
5708
        (STORE_INTERNAL): Likewise.
5709
        (process_jvm_instruction): Likewise.
5710
 
5711
        * decl.c (base_decl_map): New variable.
5712
        (uniq): New variable.
5713
        (update_aliases): Rewrite with more thorough checking.
5714
        (debug_variable_p): New function.
5715
        (push_jvm_slot): Don't initialize local variable.  Don't pushdecl.
5716
        (check_local_named_variable): Delete whole function.
5717
        (initialize_local_variable): New function.
5718
        (check_local_unnamed_variable): Add checks and comments.
5719
        (find_local_variable): Rewrite.
5720
        (java_replace_reference): New function.
5721
        (function_binding_level): New variable.
5722
        (pushdecl_function_level): New function.
5723
        (maybe_pushlevels): Set DECL_LOCAL_END_PC.
5724
        (maybe_pushlevels): Call pushdecl() on each of the new decls.
5725
        (start_java_method): Reset uniq.  Create base_decl_map.  Set
5726
        function_binding_level.
5727
        (end_java_method): Null unused fields to save memory.
5728
 
5729
2004-07-20  Nathan Sidwell  
5730
 
5731
        * class.c (add_interface_do): Remove.
5732
        (set_super_info, interface_of_p, maybe_add_interface,
5733
        add_interface, make_class_data, layout_class,
5734
        add_miranda_methods): Adjust BINFO accessors and addition.
5735
        * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
5736
        accessors.
5737
        * jcf-write.c (generate_classfile): Likewise.
5738
        * parse.y (patch_anonymous_class, check_inner_circular_reference,
5739
        check_circular_reference, java_complete_class,
5740
        check_abstract_method_definitions,
5741
        java_check_abstract_method_definitions,
5742
        check_interface_throws_clauses, java_check_abstract_methods,
5743
        lookup_java_interface_method2,
5744
        find_applicable_accessible_methods_list): Adjust BINFO accessors
5745
        and addition.
5746
        * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
5747
 
5748
2004-07-18  Roger Sayle  
5749
 
5750
        * builtins.c (max_builtin, min_builtin,
5751
        java_build_function_call_expr): Replace calls to build with buildN.
5752
        * class.c (build_class_ref, build_static_field_ref,
5753
        get_dispatch_table, make_class_data, layout_class_method): Likewise.
5754
        * constants.c (build_ref_from_constant_pool): Likewise.
5755
        * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
5756
        add_stmt_to_compound): Likewise.
5757
        * except.c (build_exception_object_ref, expand_end_java_handler):
5758
        Likewise.
5759
        * java-gimplify.c (java_gimplify_case_expr,
5760
        java_gimplify_default_expr, java_gimplify_block,
5761
        java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
5762
        * jcf-write.c (generate_bytecode_insns): Likewise.
5763
        * typeck.c (convert_ieee_real_to_integer): Likewise.
5764
 
5765
2004-07-17  Joseph S. Myers  
5766
 
5767
        * java-tree.h (builtin_function): Declare.
5768
 
5769
2004-07-16  Steven Bosscher  
5770
 
5771
        * parse.y (java_complete_expand_methods, java_expand_classes): Don't
5772
        abuse restore_line_number_status.
5773
 
5774
2004-07-15  Frank Ch. Eigler  
5775
 
5776
        g++/15861
5777
        * jcf-parse.c (java_emit_static_constructor): Specify default
5778
        priority.
5779
 
5780
2004-07-13  Per Bothner  
5781
 
5782
        * java-tree.h (all_class_filename):  Remove useless macro.
5783
        (enum java_tree_index):  Remove JTI_ALL_CLASS_FILENAME constant.
5784
        (BUILD_FILENAME_IDENTIFIER_NODE):  Remove useless macro.
5785
        * parse.y (java_parser_context_restore_global):  Replace
5786
        BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
5787
        * jcf-parse.c (read_class, java_parse_file):  Likewise.
5788
 
5789
2004-07-12  Bryce McKinlay  
5790
 
5791
        PR java/16474
5792
        gjavah.c (print_field_info): Emit constant only if field is static.
5793
 
5794
2004-07-11  Roger Sayle  
5795
 
5796
        * expr.c (java_truthvalue_conversion, flush_quick_stack,
5797
        java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
5798
        build_java_ret, build_java_throw_out_of_bounds_exception,
5799
        build_java_array_length_access, java_check_reference,
5800
        build_java_arrayaccess, build_java_arraystore_check, build_newarray,
5801
        build_anewarray, expand_java_multianewarray, expand_java_arraystore,
5802
        expand_java_arrayload, build_java_monitor, expand_java_return,
5803
        expand_load_internal, expand_java_NEW, build_get_class,
5804
        build_instanceof, expand_java_CHECKCAST, expand_iinc,
5805
        build_java_soft_divmod, build_java_binop, build_field_ref,
5806
        expand_compare, expand_java_goto, expand_java_switch,
5807
        expand_java_add_case, build_class_init, build_known_method_ref,
5808
        invoke_build_dtable, build_invokevirtual, build_invokeinterface,
5809
        expand_invoke, build_jni_stub, expand_java_field_op,
5810
        java_expand_expr, expand_byte_code, STORE_INTERNAL,
5811
        force_evaluation_order, emit_init_test_initialization): Convert
5812
        calls to "build" into calls to the prefered "buildN" functions.
5813
 
5814
2004-07-11  Joseph S. Myers  
5815
 
5816
        * java-tree.h (set_block): Remove.
5817
        * lang.c (java_clear_binding_stack): New.
5818
        (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5819
        * decl.c (struct binding_level): Remove this_block.
5820
        (clear_binding_level): Likewise.
5821
        (poplevel): Don't handle this_block.
5822
        (set_block): Remove.
5823
 
5824
2004-07-10  Bryce McKinlay  
5825
 
5826
        * class.c (common_enclosing_context_p): Remove statement with no
5827
        side-effects.
5828
 
5829
2004-07-09  Bryce McKinlay  
5830
 
5831
        PR java/8618
5832
        * parse.y (create_anonymous_class): Remove 'location' argument. Use
5833
        the WFL from TYPE_NAME to get line number for the decl. Fix comment.
5834
        (craft_constructor): Inherit access flags for implicit constructor
5835
        from the enclosing class.
5836
        (create_class): Fix comment typo.
5837
        (resolve_qualified_expression_name): Pass type of qualifier to
5838
        not_accessible_p, not the type in which target field was found.
5839
        (not_accessible_p): Handle inner classes. Expand protected
5840
        qualifier-subtype check to enclosing instances, but don't apply this
5841
        check to static members. Allow protected access to inner classes
5842
        of a subtype. Allow private access within common enclosing context.
5843
        (build_super_invocation): Get WFL line number info from current
5844
        class decl.
5845
        (build_incomplete_class_ref): Update for new create_anonymous_class
5846
        signature.
5847
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
5848
        common_enclosing_instance_p.
5849
        * class.c (common_enclosing_context_p): New. Determine if types
5850
        share a common enclosing context, even across static contexts.
5851
        (common_enclosing_instance_p): Renamed from
5852
        common_enclosing_context_p. Determines if types share a common
5853
        non-static enclosing instance.
5854
        * java-tree.h (common_enclosing_instance_p): Declare.
5855
        * jcf-write.c (get_method_access_flags): New. Surpress private flag
5856
        for inner class constructors.
5857
        (generate_classfile): Use get_method_access_flags.
5858
 
5859
2004-07-09  Bryce McKinlay  
5860
 
5861
        * class.c (interface_of_p): Check for null TYPE_BINFO.
5862
 
5863
2004-07-09  Nathan Sidwell  
5864
 
5865
        * class.c (make_class): Do not create binfo here.
5866
        (set_super_info): Create it here.
5867
        * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
5868
 
5869
2004-07-08  Richard Henderson  
5870
 
5871
        * expr.c (case_identity, get_primitive_array_vtable,
5872
        java_expand_expr, emit_init_test_initialization): Remove.
5873
        * java-tree.h (java_expand_expr): Remove.
5874
        * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
5875
 
5876
2004-07-07  Per Bothner  
5877
 
5878
        * class.c (build_static_field_ref):  Add a NOP_EXPR; otherwise we
5879
        get internal error due to mismatched types.
5880
 
5881
        * gcj.texi (Invoking gij):  Document new -verbose:class flag.
5882
 
5883
        * gcj.texi (Linking):   New node.  Document -lgij usage.
5884
 
5885
2004-07-07  Nathan Sidwell  
5886
 
5887
        * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
5888
        (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
5889
        * java/class.c (set_super_info, class_depth, interface_of_p,
5890
        maybe_add_interface, add_interface, make_class_data,
5891
        layout_class, add_miranda_methods): Adjust BINFO macros.
5892
        * expr.c (can_widen_reference_to, lookup_field): Likewise.
5893
        * jcf-write.c (generate_classfile): Likewise.
5894
        * parse.y (patch_anonymous_class,
5895
        check_inner_circular_reference, check_circular_reference,
5896
        java_complete_class, check_abstract_method_definitions,
5897
        java_check_abstract_method_definitions,
5898
        check_interface_throws_clauses, java_check_abstract_methods,
5899
        lookup_java_interface_method2,
5900
        find_applicable_accessible_methods_list): Likewise.
5901
        * typeck.c (find_method_in_interface): Likewise.
5902
        * verify.c (merge_types): Likewise.
5903
 
5904
2004-07-06  Nathan Sidwell  
5905
 
5906
        * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
5907
        * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
5908
 
5909
2004-07-05  Nathan Sidwell  
5910
 
5911
        * class.c (make_class): Use make_tree_binfo.
5912
        (set_super_info, add_interface_do): Likewise.
5913
        * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
5914
 
5915
2004-07-04  Ranjit Mathew  
5916
 
5917
        * verify.c: Correct array element access formatting thinko.
5918
 
5919
2004-07-04  Ranjit Mathew  
5920
 
5921
        * verify.c: Insert a short blurb at the start referring to the JVMS.
5922
        (merge_type_state): Remove redundant nested if statement.
5923
        (verify_jvm_instructions): Ensure current_subr is initialised to
5924
        NULL_TREE.
5925
        Minor formatting fixes all over the place.
5926
 
5927
2004-07-02  Richard Henderson  
5928
 
5929
        * jcf-write.c (generate_bytecode_insns ): Rewrite.
5930
 
5931
2004-07-01  Richard Henderson  
5932
 
5933
        * class.c (registerClass_libfunc): Remove.
5934
        (init_class_processing): Don't set it.
5935
        (emit_register_classes): Take list_p parameter.  Fill it in
5936
        with _Jv_RegisterClass calls.
5937
        * decl.c (java_init_decl_processing): Don't call
5938
        init_resource_processing.
5939
        * jcf-parse.c (java_emit_static_constructor): New.
5940
        (java_parse_file): Call it.
5941
        * resource.c (registerResource_libfunc): Remove.
5942
        (init_resource_processing): Remove.
5943
        (write_resource_constructor): Take list_p parameter.  Fill it in
5944
        with _Jv_RegisterResource calls.
5945
        * java-tree.h: Update prototypes.
5946
 
5947
2004-06-29  Bryce McKinlay  
5948
 
5949
        PR java/1262
5950
        * class.c (layout_class_method): Do not override package-private
5951
        method if its in a different package.
5952
        (split_qualified_name): Move here from parse.y. Rename from
5953
        breakdown_qualified. Add comment.
5954
        (in_same_package): Move here from parse.y. Add comment.
5955
        * java-tree.h (break_down_qualified, in_same_package): Declare.
5956
        (in_same_package): Likewise.
5957
        * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
5958
        Callers updated.
5959
 
5960
2004-06-29  Andrew Haley  
5961
 
5962
        * except.c (expand_start_java_handler): Push a new binding level.
5963
        Don't build a TRY_CATCH_EXPR now, we'll do it later.  Call
5964
        register_exception_range() to register where we'll do it.
5965
        (expand_end_java_handler): Remove old bogus code.  Replace with
5966
        new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5967
        the top of the expression we're curently building.
5968
        (maybe_end_try): Delete.
5969
        * decl.c (binding_level.exception_range): New field.
5970
        (clear_binding_level): Add field exception_range.  Reformat.
5971
        (poplevel): Call expand_end_java_handler().
5972
        (poplevel): Call java_add_stmt only if functionbody is false.
5973
        (maybe_poplevels): Don't call maybe_end_try() from here.
5974
        (end_java_method): Clear no longer used trees in function decl.
5975
        (register_exception_range): New function.
5976
        * java-tree.h (register_exception_range, struct eh_range): Declare.
5977
 
5978
2004-06-28  Bryce McKinlay  
5979
 
5980
        * jcf-write.c (get_classfile_modifiers): Formatting fixes.
5981
 
5982
2004-06-27  Ranjit Mathew  
5983
 
5984
        Formatting fixes.
5985
        * expr.c (class_has_finalize_method): Fix method name indentation.
5986
        (expand_java_call): Remove K&R style parameter declaration.
5987
        (expand_invoke): Fix statement indentation.
5988
        (expand_java_field_op): Likewise.
5989
        * parse-scan.y: Fix typo.
5990
        (reset_report): Fix method name indentation.
5991
        * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
5992
        line. Fix typos.
5993
        * verify.c (verify_jvm_instructions): Document parameters, insert
5994
        page break.
5995
        * lang.c (lang_init_source): Fix method name indentation.
5996
        * class.c (common_enclosing_context_p): Likewise.
5997
        (emit_symbol_table): Fix parameter list indentation.
5998
        * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
5999
        parameter declaration.
6000
        * constants.c: Fix copyright notice indentation.
6001
        * typeck.c (find_method_in_superclasses): Fix parameter list
6002
        indentation.
6003
        (find_method_in_interfaces): Likewise.
6004
        * zextract.c (makelong): Fix method name indentation.
6005
 
6006
2004-06-26  Bryce McKinlay  
6007
 
6008
        PR java/15715.
6009
        * parse.y (create_interface): Set correct access modifiers for
6010
        interfaces.
6011
        * jcf-write.c (get_classfile_modifiers): New function.
6012
        (generate_classfile): Use get_classfile_modifiers, not
6013
        get_access_flags.
6014
 
6015
2004-06-26  Bryce McKinlay  
6016
 
6017
        * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
6018
        dependency to current parser context, not NULL_TREE, for top-level
6019
        classes.
6020
        (jdep_resolve_class): Enable member access check for all inner
6021
        class dependencies.
6022
 
6023
2004-06-26  Bryce McKinlay  
6024
 
6025
        * parse.y (qualify_and_find): Pass type decl, not identifier, to
6026
        load_class.
6027
 
6028
2004-06-26  Bryce McKinlay  
6029
 
6030
        PR java/15734
6031
        * expr.c (expand_java_field_op): Ensure that target class for static
6032
        field access has been loaded.
6033
 
6034
2004-06-26  Bryce McKinlay  
6035
            Ranjit Mathew  
6036
 
6037
        PR java/1207, java/16178
6038
        * jcf-parse.c (load_class): Return immediately if passed a type decl
6039
        where CLASS_FROM_SOURCE_P is set. Remove FIXME.
6040
        * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
6041
        before calling load_class.
6042
        (qualify_and_find): Likewise.
6043
        (find_in_imports_on_demand): Likewise.
6044
        (find_applicable_accessible_methods_list): Likewise.
6045
 
6046
2004-06-24  Bryce McKinlay  
6047
 
6048
        * parse.y (java_layout_seen_class_methods): Don't call load_class
6049
        on class defined by source parser.
6050
 
6051
2004-06-23  Bryce McKinlay  
6052
 
6053
        * parse.y (set_nested_class_simple_name_value): Removed.
6054
        (java_complete_expand_class): Remove calls to
6055
        set_nested_class_simple_name_value.
6056
 
6057
2004-06-22  Andrew Haley  
6058
            Ranjit Mathew  
6059
 
6060
        Fixes PR java/16113.
6061
        * decl.c (force_poplevels): Remove call to expand_end_bindings.
6062
 
6063
2004-06-22  Ranjit Mathew  
6064
 
6065
        * parse.y (create_class): Correct diagnostic message about
6066
        java.lang.Object extending anything else.
6067
 
6068
2004-06-21  Richard Kenner  
6069
 
6070
        * class.c (build_class_ref): Add new operand for COMPONENT_REF.
6071
        (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
6072
        * constants.c (build_ref_from_constant_pool): Likewise.
6073
        * expr.c (build_java_array_length_access): Likewise.
6074
        (build_get_class, build_field_ref, build_known_method_ref): Likewise.
6075
        (invoke_build_dtable, build_invokevirtual): Likewise.
6076
        (build_invokeinterface, java_expand_expr): Likewise.
6077
        (emit_init_test_initialization): Likewise.
6078
        * java-gimplify.c (java_gimplify_new_array_init): Likewise.
6079
        * parse.y (make_qualifed_name, build_array_ref): Likewise.
6080
 
6081
2004-06-21  Andrew Haley  
6082
 
6083
        * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
6084
        block.
6085
 
6086
2004-06-21  Joseph S. Myers  
6087
 
6088
        * jcf.h (struct JCF): Change java_source, right_zip and finished
6089
        to unsigned int.
6090
        * lex.h (struct java_lexer): Change hit_eof, read_anything,
6091
        byte_swap and use_fallback to unsigned int.
6092
        * parse.h (struct _jdep): Change flag0 to unsigned int.
6093
 
6094
2004-06-17  Ranjit Mathew  
6095
 
6096
        Fixes PR java/13948
6097
        * parse.y (java_layout_seen_class_methods): Ensure class is loaded
6098
        before trying to lay out its methods.
6099
        * jcf-parse.c (read_class): Track parsed files using canonical paths
6100
        obtained via lrealpath from libiberty.
6101
        (java_parse_file): Likewise.
6102
        (parse_source_file_1): Rename formal parameter to reflect its
6103
        modified purpose. Minor formatting fix.
6104
 
6105
2004-06-15  Paolo Bonzini  
6106
 
6107
        * class.c (emit_register_classes): Make the function uninlinable,
6108
        do not set current_function_cannot_inline.
6109
        * resource.c (write_resource_constructor): Do not reset
6110
        flag_inline_functions around rest_of_compilation.
6111
 
6112
2004-06-08  Andrew Pinski  
6113
 
6114
        PR java/15769
6115
        * expr.c (java_truthvalue_conversion): Handle
6116
        UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
6117
        ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
6118
        i.e. return the expression.
6119
 
6120
2004-06-03 Mark G. Adams  
6121
 
6122
        * gjavah.c: Include version.h
6123
 
6124
2004-05-31  Bryce McKinlay  
6125
 
6126
        * jcf-write.c (generate_bytecode_conditional): Correct handling
6127
        of unordered conditionals. Add comment.
6128
 
6129
2004-05-29  Ranjit Mathew  
6130
            Per Bothner  
6131
 
6132
        * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
6133
        local variable was initialised upon declaration.
6134
        * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
6135
        variable was final and initialised upon declaration.
6136
        * check-init.c (check_final_reassigned): Give error only if a blank
6137
        final is not definitely unassigned or if an initialised final is
6138
        reassigned.
6139
        (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
6140
        assignment expressions. Remove case MODIFY_EXPR, label do_default.
6141
        (check_init): Perform initialised-variable-removing-optimisation
6142
        only on non-final local variables.
6143
 
6144
2004-05-28  Bryce McKinlay  
6145
 
6146
        * jcf-write.c (generate_bytecode_conditional): Handle binops
6147
        UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
6148
        and LTGT_EXPR.
6149
        (generate_bytecode_insns): Likewise.
6150
 
6151
2004-05-28  Bryce McKinlay  
6152
 
6153
        * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
6154
        UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
6155
 
6156
2004-05-28  Bryce McKinlay  
6157
 
6158
        * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
6159
        (Mixing with C++): Document JvAllocBytes and RawDataManaged.
6160
 
6161
2004-05-26  Bryce McKinlay  
6162
 
6163
        * decl.c (struct binding_level): Add GTY marker. Compile
6164
        binding_depth unconditionally.
6165
        (current_binding_level, free_binding_level, global_binding_level):
6166
        Likewise.
6167
        (clear_binding_level): Unconditionally set binding_depth.
6168
        (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
6169
 
6170
2004-05-26  Bryce McKinlay  
6171
 
6172
        * lex.c (java_new_lexer): Set 'encoding'.
6173
        (java_read_char): Improve error message for unrecognized characters.
6174
        * lex.h (struct java_lexer): New field 'encoding'.
6175
 
6176
2004-05-23  Paolo Bonzini  
6177
 
6178
        * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
6179
 
6180
2004-05-21  Mark Wielaard  
6181
 
6182
        * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
6183
        extern.
6184
 
6185
2004-05-19  Paolo Bonzini  
6186
 
6187
        * typeck.c: Remove non-printable character 160.
6188
 
6189
2004-05-17  Ranjit Mathew  
6190
 
6191
        * check-init.c: Correct minor typos.
6192
 
6193
2004-05-13  Diego Novillo  
6194
 
6195
        * Make-lang.in, expr.c, java-gimplify.c: Rename
6196
        tree-simple.[ch] to tree-gimple.[ch].
6197
 
6198
2004-05-14  Ranjit Mathew  
6199
 
6200
        * java-gimplify.c (java_gimplify_expr): Correct minor typos.
6201
 
6202
2004-05-13  Diego Novillo  
6203
 
6204
        Merge from tree-ssa-20020619-branch.  See
6205
        ChangeLog.tree-ssa for details.
6206
 
6207
        * Make-lang.in, builtins.c, check-init.c, class.c,
6208
        constants.c, decl.c, except.c, expr.c, java-except.h,
6209
        java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
6210
        lang.c, lang.opt, parse.y, resource.c: Merged.
6211
        * java-gimplify.c: New file.
6212
 
6213
2004-05-10  Andrew Haley  
6214
 
6215
        * parse.y (create_class): Set TYPE_VFIELD.
6216
        * decl.c (java_init_decl_processing): Likewise.
6217
 
6218
        * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
6219
        * class.c (make_method_value): Replace DECL_VINDEX with call to
6220
        get_method_index().
6221
        (get_dispatch_vector): Likewise.
6222
        (layout_class_method): Likewise.
6223
        Replace set of DECL_VINDEX with call to set_method_index().
6224
        (set_method_index): New function.
6225
        (get_method_index): New function.
6226
        * java-tree.h (set_method_index): New function decl.
6227
        (get_method_index): New function decl.
6228
 
6229
2004-05-10  Andrew Pinski  
6230
 
6231
        * parse.y (check_pkg_class_access): Add new argument
6232
        and use it when cl is NULL to call lookup_cl on it.
6233
        (parser_check_super_interface): Do not call lookup_cl.
6234
        Pass this_decl to check_pkg_class_access and NULL
6235
        instead of lookup_cl.
6236
        (parser_check_super): Update for change in
6237
        check_pkg_class_access.
6238
        (do_resolve_class): Likewise.
6239
        (process_imports): Likewise.
6240
        (find_in_imports_on_demand): Likewise.
6241
        (resolve_qualified_expression_name): Likewise.
6242
 
6243
2004-05-06  Ranjit Mathew  
6244
 
6245
        Fixes PR java/9685, PR java/15073
6246
        * parse.y (accessibility_string): New method.
6247
        (not_accessible_field_error): Use accessibility_string()
6248
        instead of java_accstring_lookup().
6249
        (resolve_qualified_expression_name): Check with
6250
        check_pkg_class_access() before allowing access using
6251
        qualified names.
6252
        Fix comment typo.
6253
        Use check_pkg_class_access() instead of not_accessible_p()
6254
        for unqualified types.
6255
        (not_accessible_p): Use DECL_CONTEXT (member) instead of
6256
        REFERENCE for package-private access checking.
6257
        (patch_method_invocation): Use accessibility_string() instead
6258
        of java_accstring_lookup().
6259
 
6260
2004-04-30  Ranjit Mathew  
6261
 
6262
        Fixes PR java/15133
6263
        * gjavah.c (struct method_name): Add member is_native.
6264
        (overloaded_jni_method_exists_p): Match candidate method only if
6265
        it is native.
6266
        (print_method_info): Initialise is_native flag from the method's
6267
        access flags.
6268
 
6269
2004-04-30  Roger Sayle  
6270
 
6271
        * builtins.c (java_builtins): Add acos, asin, ceil and floor.
6272
        (initialize_builtins): Likewise, define acos, asin, ceil and floor.
6273
 
6274
2004-04-22  Roger Sayle  
6275
 
6276
        * resource.c (write_resource_constructor): Guard call to possibly
6277
        NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
6278
 
6279
2004-04-19  Bryce McKinlay  
6280
 
6281
        * class.c (make_class_data): Add new field aux_info.
6282
        * decl.c (java_init_decl_processing): Push type and decl for
6283
        `aux_info'.
6284
 
6285
2004-04-15  Bryce McKinlay  
6286
 
6287
        * expr.c (expand_java_NEW): Don't use size argument for
6288
        _Jv_AllocObject calls.
6289
        * parse.y (patch_invoke): Likewise.
6290
 
6291
2004-04-12  Bryce McKinlay  
6292
 
6293
        * expr.c (build_invokeinterface): Remove unused variables to
6294
        fix warnings.
6295
 
6296
2004-04-12  Bryce McKinlay  
6297
 
6298
        * class.c (get_interface_method_index): New function. Return dispatch
6299
        index for interface method.
6300
        (make_method_value): For interface methods, set index field to
6301
        iface dispatch index, not DECL_VINDEX.
6302
        * expr.c (build_invokeinterface): Use get_interface_method_index.
6303
 
6304
2004-03-31  Richard Kenner  
6305
 
6306
        * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
6307
 
6308
2004-03-31  Andrew Haley  
6309
 
6310
        PR java/14104
6311
        * jcf-io.c (opendir_in_zip): Tidy up error handling.
6312
 
6313
2004-03-30  Zack Weinberg  
6314
 
6315
        * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
6316
        form of GTY markers.
6317
 
6318
2004-03-25  Marcus Meissner  
6319
 
6320
        PR java/14689:
6321
        * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
6322
 
6323
2004-03-23  Tom Tromey  
6324
 
6325
        PR java/14315:
6326
        * jcf-write.c (make_class_file_name): Don't report if mkdir
6327
        failed with EEXIST.
6328
 
6329
2004-03-23  Tom Tromey  
6330
 
6331
        * gcj.texi (Extensions): Document GCJ_PROPERTIES.
6332
 
6333
2004-03-20  Kazu Hirata  
6334
 
6335
        * class.c, gjavah.c, lang.c: Fix comment typos.
6336
        * gcj.texi: Fix typos.
6337
 
6338
2004-03-19  Per Bothner  
6339
 
6340
        * gcj.texi (Code Generation):  Document new flags and assert defaults.
6341
 
6342
        * class.c (assume_compiled_node_struct):  Rename type to
6343
        class_flag_node_struct, as it is now also used for enable_assertions.
6344
        Rename assume_compiled_node typedef.  Rename excludep field to value.
6345
        (find_assume_compiled_node):  Rename function to find_class_flag_node.
6346
        Minor optimization - avoid needless strlen.
6347
        (add_assume_compiled):  Some tweaking and optimization.
6348
        Rename and generalize to add_class_flag takem an extra parameter.
6349
        (add_assume_compled):  New just calls add_class_flag.
6350
        (add_enable_assert, enable_assertions):  New functions.
6351
        (enable_assert_tree):  New static.
6352
        * java-tree.h (add_enable_assert, enable_assertions): New declarations.
6353
        * lang.opt (fenable-assertions, fenable-assertions=,
6354
        fdisable-assertions, fdisable-assertions=):  New options.
6355
        * lang.c (java_handle_option):  Handle new options.
6356
        * parse.y (build_incomplete_class_ref):  Handle class$ in an inner
6357
        class in an interface - create helper class nested in outer interface.
6358
        (build_assertion):  Short-circuit if enable_assertions is false.
6359
 
6360
2004-03-18  Richard Kenner 
6361
 
6362
        * java-tree.h: Changes throughout to add checking to macros
6363
        and numerous whitespace changes.
6364
        (VAR_OR_FIELD_CHECK): New macro.
6365
        * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
6366
        FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
6367
 
6368
2004-03-16  Per Bothner  
6369
 
6370
        * jcf-jump.c (options):  New --print-constants option.
6371
        * gcj.texi (Invoking jcf-dump):  Document --print-constants.
6372
 
6373
        * jcf-dump.c (flag_print_constant_pool):  Default to off.
6374
        (print_constant_terse_with_index):  New helper function.
6375
        (various places):  Check flag_print_constant_pool where missing.
6376
        (main):  If verbose set flag_print_constant_pool.
6377
        (HANDLE_INNERCLASSES_ATTRIBUTE):  Null inner class name is anonymous.
6378
 
6379
2004-03-15  Andrew Haley  
6380
 
6381
        PR java/14581
6382
        * parse.y (java_complete_lhs): Check that final variable has an
6383
        initializer.
6384
 
6385
2004-03-12  Andrew Haley  
6386
 
6387
        PR java/14551
6388
        * typeck.c (convert): Clear TREE_OVERFLOW after an integer
6389
        conversion.
6390
 
6391
2004-02-29  Roger Sayle  
6392
 
6393
        * jcf-parse.c (java_parse_file): Handle the case that input_filename
6394
        is NULL.
6395
 
6396
2004-02-27  Per Bothner  
6397
 
6398
        * parse.y (build_assertion):  Re-do 02-25 change following Jeff Sturm
6399
        suggestion:  Use build_incomplete_class_ref.
6400
        This fixes PR java/13508, java/11714.
6401
 
6402
2004-02-27  Kazu Hirata  
6403
 
6404
        * java/parse.h: Update copyright.
6405
 
6406
2004-02-26  Andrew Haley  
6407
 
6408
        PR java/14231:
6409
        * parse.y (check_interface_throws_clauses): Check for
6410
        !METHOD_INVISIBLE (iface_method).
6411
        * class.c (layout_class_methods): Check for CLASS_INTERFACE as
6412
        well as CLASS_ABSTRACT.
6413
 
6414
2004-02-25  Per Bothner  
6415
 
6416
        * parse.y (build_assertion):  If we're in an inner class, create the
6417
        class$ helper routine in the outer class.
6418
 
6419
2004-02-19  Richard Henderson  
6420
 
6421
        * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
6422
 
6423
2004-02-16  Geoffrey Keating  
6424
 
6425
        * Make-lang.in (java.install-man): Add extra dependencies.
6426
 
6427
2004-02-13  Geoffrey Keating  
6428
 
6429
        * Make-lang.in: Install man pages under the same names
6430
        (possibly transformed) as the program they document.
6431
 
6432
2004-02-10  Joseph S. Myers  
6433
 
6434
        * gjavah.c: Include "intl.h".
6435
        (error): New function.
6436
        (main): Call gcc_init_libintl.
6437
        (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
6438
        print_stub_or_jni, process_file, main): Use error rather than
6439
        fprintf.
6440
        (print_method_info, usage, help, version, main): Mark strings for
6441
        translation with _.  Avoid splitting up sentences.  Send
6442
        information messages to stdout.
6443
        * jcf-dump.c: Include "intl.h".
6444
        (main): Call gcc_init_libintl.
6445
        (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
6446
        Mark error, usage and version messages for translation with _.
6447
        Avoid splitting up sentences.
6448
        * jv-scan.c: Include "intl.h".
6449
        (fatal_error, warning): Change parameter s to msgid.  Translate
6450
        messages.
6451
        (main): Call gcc_init_libintl.
6452
        (usage, help, version): Mark error, usage and version messages for
6453
        translation with _.  Avoid splitting up sentences.
6454
        * jvgenmain.c: Include "intl.h".
6455
        (main): Call gcc_init_libintl.
6456
        (usage, main): Mark error messages for translation with _.
6457
        * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
6458
        JVGENMAIN_OBJS): Add intl.o.
6459
        (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
6460
        java/jvgenmain.o): Update dependencies.
6461
 
6462
2004-02-08  Per Bothner  
6463
 
6464
        * parse.y (resolve_qualified_expression_name):  In case of inaccessible
6465
        class don't use not_accessible_field_error, which can get confused.
6466
 
6467
2004-02-05  Kelley Cook  
6468
 
6469
        Make-lang.in (po-generated):  Delete.
6470
 
6471
2004-02-05  Kazu Hirata  
6472
 
6473
        * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
6474
        Depend on target.h.
6475
        * decl.c: Include target.h.
6476
        (start_java_method): Replace PROMOTE_PROTOTYPES with
6477
        targetm.calls.promote_prototypes.
6478
        * expr.c: Include target.h.
6479
        (pop_arguments): Replace PROMOTE_PROTOTYPES with
6480
        targetm.calls.promote_prototypes.
6481
        * parse.y: Include target.h.
6482
        (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
6483
        with targetm.calls.promote_prototypes.
6484
 
6485
2004-02-04  Kazu Hirata  
6486
 
6487
        * typeck.c: Update copyright.
6488
 
6489
2004-02-02  Tom Tromey  
6490
 
6491
        * decl.c (java_init_decl_processing): Remove duplicate
6492
        gnu/gcj/RawData.
6493
 
6494
2004-01-30  Kelley Cook  
6495
 
6496
        * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
6497
 
6498
2004-01-28  Andrew Pinski  
6499
 
6500
        * expr.c (build_field_ref): Move variable
6501
        definition up.
6502
 
6503
2004-01-28  Andrew Haley  
6504
 
6505
        * expr.c (build_field_ref): Widen field offset.
6506
 
6507
2004-01-27  Andrew Haley  
6508
 
6509
        java/13273
6510
        * parse.y (check_interface_throws_clauses): Make sure class_decl
6511
        has been loaded.
6512
 
6513
2004-01-22  Jeff Sturm  
6514
 
6515
        PR java/13733
6516
        * parse.y (patch_assignment): Don't modify lhs_type for
6517
        reference assignments.
6518
 
6519
2004-01-20  Kelley Cook  
6520
 
6521
        * Make-lang.in: Replace $(docdir) with doc.
6522
        (java.info, java.srcinfo, java.man, java.srcman): New rules.
6523
        (java.install-man): Revamp rule.
6524
 
6525
2004-01-20  Kelley Cook  
6526
 
6527
        * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
6528
        GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
6529
        instead of deferred backquote.
6530
 
6531
2004-01-16  Andrew Pinski  
6532
 
6533
        * typeck.c (find_method_in_interfaces): Move variable
6534
        definition up.
6535
 
6536
2004-01-16  Andrew Haley  
6537
 
6538
        PR java/13273:
6539
        * typeck.c (shallow_find_method): New.
6540
        (find_method_in_superclasses): New.
6541
        (find_method_in_interfaces): New.
6542
        (lookup_do): Rewrite.
6543
        * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
6544
 
6545
        * jcf-parse.c (read_class): Save and restore output_class.
6546
        * decl.c (java_expand_body): Set output_class from fndecl.
6547
 
6548
2004-01-15  Michael Chastain  
6549
 
6550
        * class.c (gen_indirect_dispatch_tables): Fix string length
6551
        calculations.
6552
 
6553
2004-01-15  Kelley Cook  
6554
 
6555
        * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
6556
        (java.srcextra): Copy above back to source directory if requested.
6557
        (po-generated): Delete reference to $(parsedir).
6558
        (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
6559
        Use implicit rule.
6560
 
6561
2004-01-14  Jan Hubicka  
6562
 
6563
        * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
6564
        estimation.
6565
 
6566
2004-01-09  Mark Mitchell  
6567
 
6568
        * java-tree.h (java_expand_expr): Change prototype.
6569
        * expr.c (java_expand_expr): Add alt_rtl parameter.
6570
 
6571
2004-01-09  Andrew Haley  
6572
 
6573
        PR java/12755:
6574
        * parse.y (java_fix_constructors):  Set output_class.
6575
        (java_reorder_fields): Likewise.
6576
        (java_layout_classes): Likewise.
6577
        (java_expand_classes): Generate indirect dispatch tables.
6578
        (java_expand_classes): Set output_class.
6579
        (java_finish_classes): Likewise.
6580
        * lang.c (java_init): Turn on always_initialize_class_p if we're
6581
        using indirect dis[atch.
6582
        (java_decl_ok_for_sibcall): Use output_class, not current_class.
6583
        (java_get_callee_fndecl): Use class local atable.
6584
        * jcf-parse.c
6585
        (always_initialize_class_p): Decl moved to java-tree.h.
6586
        (HANDLE_CLASS_INFO): Set output_class.
6587
        (read_class): Likewise.
6588
        (parse_class_file): Call gen_indirect_dispatch_tables.
6589
        (parse_zip_file_entries): Set output_class.
6590
        (java_parse_file): Set output_class.  Don't emit symbol tables.
6591
        * java-tree.h (output_class): New.
6592
        Remove global declarations for otable, atable, and ctable.
6593
        (always_initialize_class_p): moved here from decl.c.
6594
        (DECL_OWNER): New.
6595
        (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
6596
        TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
6597
        TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
6598
        (struct lang_type): Add otable_methods, otable_decl,
6599
        otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
6600
        ctable_decl, catch_classes, type_to_runtime_map.
6601
        * expr.c (build_field_ref): Make otable, atable, and ctable class
6602
        local rather than global.
6603
        (build_known_method_ref): Likewise.
6604
        (build_invokeinterface): Likewise.
6605
        (java_expand_expr): Pass runtime type (rather than actual type) to
6606
        expand_start_catch.
6607
        * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
6608
        this class.  Look up each class in that map to delete duplicates.
6609
        (expand_end_java_handler): Pass runtime type (rather than actual
6610
        type) to expand_start_catch.
6611
        * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
6612
        (do_nothing): New.
6613
        (java_init_decl_processing): Rearrange things.  Remove global
6614
        declarations of otable, atable, and ctable.
6615
        (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
6616
        (java_expand_body): Set output_class.
6617
        * constants.c (build_constant_data_ref): Use output_class, not
6618
        current_class.
6619
        (alloc_name_constant): Likewise.
6620
        * class.c (gen_indirect_dispatch_tables): New.
6621
        (build_class_ref): Generate hard reference to superclass, even if
6622
        using indirect dispatch.
6623
        (build_static_field_ref): Use class local atable.
6624
        (make_class_data): Generate hard reference to superclass, even if
6625
        using indirect dispatch.
6626
        Generate symbolic references to interfaces when using indirect
6627
        dispatch.
6628
        (make_class_data): Emit otable, atable, and ctable.
6629
        Make otable, atable, and ctable class local rather than global.
6630
        (emit_catch_table): Make otable, atable, and ctable class local
6631
        rather than global.
6632
 
6633
2003-12-25  Andrew Pinski  
6634
 
6635
        * parse.y (catch_clause_parameter): Fix typo.
6636
 
6637
        PR java/13404
6638
        * parse.y: (catch_clause_parameter): Return early if $3, aka
6639
        formal_parameter, is null.
6640
 
6641
2003-12-20  Kazu Hirata  
6642
 
6643
        * class.c: Remove uses of "register" specifier in
6644
        declarations of arguments and local variables.
6645
        * decl.c: Likewise.
6646
        * expr.c: Likewise.
6647
        * gjavah.c: Likewise.
6648
        * jcf-dump.c: Likewise.
6649
        * jcf-io.c: Likewise.
6650
        * jcf-parse.c: Likewise.
6651
        * jcf-write.c: Likewise.
6652
        * keyword.h: Likewise.
6653
        * parse.y: Likewise.
6654
        * typeck.c: Likewise.
6655
        * verify.c: Likewise.
6656
 
6657
2003-12-06  Kelley Cook  
6658
 
6659
        * Make-lang.in (GCJ_CROSS_NAME): Delete.
6660
        (java.install_common, java.install-man): Adjust for above.
6661
        (java.uninstall): Likewise.
6662
 
6663
2003-12-03  Michael Koch  
6664
 
6665
        * class.c (make_class_data):
6666
        Push field value to 'hack_signers' instead of 'signers'.
6667
        * decl.c (java_init_decl_processing):
6668
        Push field 'hack_signers' instead of 'signers'.
6669
 
6670
2003-12-03  Zack Weinberg  
6671
 
6672
        * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
6673
        including iconv.h.
6674
 
6675
2003-12-03  Ralph Loader  
6676
 
6677
        PR java/12374:
6678
        * parse.y (qualify_ambiguous_name): Remove lots of broken
6679
        field access processing - there's no need to do that here,
6680
        because we have resolve_field_access.  Remove
6681
        RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
6682
        * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
6683
        used.
6684
 
6685
2003-12-01  Jeff Sturm  
6686
 
6687
        Fix PR java/13237
6688
        * parse.y (java_complete_lhs): Save location prior to patching
6689
        CALL_EXPR.
6690
 
6691
2003-11-25  Mohan Embar  
6692
 
6693
        PR java/12548
6694
        * resource.c (write_resource_constructor): Append
6695
        "_resource" to constructor identifier name.
6696
 
6697
2003-11-25  Jeff Sturm  
6698
 
6699
        Fix PR java/13183.
6700
        * constants.c (cpool_for_class): New function.
6701
        (outgoing_cpool): Remove global variable.
6702
        (alloc_name_constant): Use cpool_for_class.
6703
        (build_constants_constructor): Likewise.
6704
        * decl.c (java_expand_body): Set current_class.
6705
        * java-tree.h (outgoing_cpool) Remove declaration.
6706
        (init_outgoing_cpool): Likewise.
6707
        * jcf-parse.c (init_outgoing_cpool): Remove function.
6708
        (parse_class_file): Don't call init_outgoing_cpool.
6709
        * parse.y (java_complete_expand_methods): Don't call
6710
        init_outgoing_cpool.  Don't save outgoing_cpool.
6711
        (java_expand_classes): Don't restore outgoing_cpool.
6712
        (java_finish_classes): Likewise.
6713
 
6714
2003-11-24  Mohan Embar  
6715
 
6716
        * Make-lang.in: (java.install-common) Add
6717
        symlink for $(target_noncanonical)-gcjh for
6718
        native builds.
6719
 
6720
2003-11-20  Joseph S. Myers  
6721
 
6722
        * Make-lang.in (java.extraclean): Delete.
6723
 
6724
2003-11-20  Joseph S. Myers  
6725
 
6726
        * Make-lang.in (check-java): Add.
6727
 
6728
2003-11-19  Jeff Sturm  
6729
 
6730
        Fix PR java/13024.
6731
        * except.c (prepare_eh_table_type): Allocate variable-sized
6732
        buffer `buf' with alloca.
6733
 
6734
2003-11-17  Jeff Sturm  
6735
 
6736
        Fix PR java/12857.
6737
 
6738
        decl.c (java_init_decl_processing): Don't initialize
6739
        class_not_found_type_node, no_class_def_found_type_node.
6740
 
6741
        java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
6742
        JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
6743
        (class_not_found_type_node, no_class_def_found_type_node):
6744
        Don't define.
6745
 
6746
        parse.y (build_dot_class_method_invocation): Add this_class
6747
        argument.  Qualify method invocations to a different class.
6748
        (create_new_parser_context): Initialize saved_data_ctx to 0.
6749
        (java_parser_context_save_global): Initialize saved_data_ctx to 1.
6750
        (build_dot_class_method): Don't load classes.  Register
6751
        incomplete types.
6752
        (build_incomplete_class_ref): Special cases for interfaces
6753
        and inner classes.  Move build_dot_class_method call to here...
6754
        (patch_incomplete_class_ref): ...from here.  Pass current_class
6755
        to build_dot_class_method_invocation.
6756
        (build_assertion): Pass class_type to
6757
        build_dot_class_method_invocation.
6758
        (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
6759
 
6760
2003-11-17  Jeff Sturm  
6761
 
6762
        Fix PR java/12739.
6763
        * java-tree.h (BLOCK_EMPTY_P): Define.
6764
        * parse.y (java_complete_lhs): Check for empty blocks
6765
        in TRY_FINALLY_EXPR case.
6766
 
6767
2003-11-17  Andrew Haley  
6768
 
6769
        * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
6770
        (struct lang_decl_var:freed): New variable.
6771
        * decl.c (poplevel): Mark local vars that have gone out of scope.
6772
        (push_jvm_slot): Don't use the RTL of a var that has gone out of
6773
        scope.
6774
 
6775
2003-11-16  Jason Merrill  
6776
 
6777
        * Make-lang.in (java.tags): Create TAGS.sub files in each directory
6778
        and TAGS files that include them for each front end.
6779
 
6780
2003-11-15  Tom Tromey  
6781
 
6782
        * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
6783
 
6784
2003-11-12  Jason Merrill  
6785
 
6786
        PR optimization/12547
6787
        * lang.c (java_tree_inlining_walk_subtrees): Just walk
6788
        BLOCK_EXPR_BODY directly.
6789
 
6790
2003-11-12  Andrew Haley  
6791
 
6792
        PR java/11045
6793
        * parse.y (fold_constant_for_init): Check that we really do have a
6794
        constant.
6795
 
6796
        PR java/11533
6797
        * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
6798
        init_test_decls being inlined.
6799
 
6800
        PR java/12890:
6801
        * parse.y (do_resolve_class): Check return value from
6802
        breakdown_qualified().
6803
 
6804
2003-11-11  Tom Tromey  
6805
 
6806
        PR java/12915:
6807
        * parse.y (merge_string_cste): Handle case where we have a
6808
        pointer that happens to be zero, not null_pointer_node.
6809
 
6810
2003-11-10  Tom Tromey  
6811
 
6812
        * jcf-parse.c (classify_zip_file): Correctly compare
6813
        filename_length against length of manifest file's name.
6814
 
6815
2003-11-08  Tom Tromey  
6816
 
6817
        PR java/12894:
6818
        * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
6819
 
6820
2003-11-06  Andrew Haley  
6821
 
6822
        * expr.c (java_stack_swap): Make sure destination stack slots are
6823
        of the correct type.
6824
 
6825
2003-11-03  Kelley Cook  
6826
 
6827
        * Make-lang.in (dvi): Move targets to $(docobjdir).
6828
        (gcj.dvi): Simplify rule and adjust target.
6829
        (gcj.info): Simplify rule.
6830
        (gcj.pod): New intermediate rule.
6831
        (gcjh.pod): Likewise.
6832
        (jv-scan.pod): Likewise.
6833
        (jcf-dump.pod): Likewise.
6834
        (gij.pod): Likewise.
6835
        (jv-convert.pod): Likewise.
6836
        (rmic.pod): Likewise.
6837
        (rmiregistry.pod): Likewise.
6838
        (gcj.1): Delete.
6839
        (gcjh.1): Delete.
6840
        (jv-scan.1): Delete.
6841
        (jcf-dump.1): Delete.
6842
        (gij.1): Delete.
6843
        (jv-convert.1): Delete.
6844
        (rmic.1): Delete.
6845
        (rmiregistry.1): Delete.
6846
 
6847
2003-11-02  Jeff Sturm  
6848
 
6849
        Fixes PR java/12866.
6850
        * parse.y (resolve_qualified_expression_name): Move test
6851
        for outer field access methods from here...
6852
        (check_thrown_exceptions) ...to here.
6853
 
6854
2003-11-01  Kelley Cook  
6855
 
6856
        * .cvsignore: Delete.
6857
 
6858
2003-10-28  Frank Ch. Eigler  
6859
 
6860
        * verify.c (verify_jvm_instructions): Don't warn about legal
6861
        eh binding regions generated for example by jdk 1.4.1.
6862
 
6863
2003-10-24  David S. Miller  
6864
 
6865
        * jcf-parse.c (jcf_parse): Fix args to fatal_error().
6866
 
6867
2003-10-22  Andrew Haley  
6868
 
6869
        * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
6870
        (java_get_callee_fndecl): New.
6871
 
6872
        * jcf-parse.c (java_parse_file): Call emit_catch_table().
6873
 
6874
        * java-tree.h (ctable_decl): New.
6875
        (catch_classes):  New.
6876
        (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
6877
 
6878
        * decl.c (java_init_decl_processing): Add catch_class_type.
6879
        Add ctable_decl.
6880
        Add catch_classes field.
6881
 
6882
        * class.c (build_indirect_class_ref): Break out from
6883
        build_class_ref.
6884
        (make_field_value): Check flag_indirect_dispatch.
6885
        (make_class_data): Ditto.
6886
        Tidy uses of PUSH_FIELD_VALUE.
6887
        Add field catch_classes.
6888
        (make_catch_class_record): New.
6889
 
6890
        * java-tree.h (PUSH_FIELD_VALUE): Tidy.
6891
 
6892
2003-10-22  Kazu Hirata  
6893
 
6894
        * jcf-write.c: Follow spelling conventions.
6895
        * parse.y: Likewise.
6896
 
6897
2003-10-22  Kazu Hirata  
6898
 
6899
        * ChangeLog: Fix typos.
6900
        * expr.c: Fix comment typos.
6901
        * jcf-write.c: Likewise.
6902
        * lang.c: Likewise.
6903
        * lex.c: Likewise.
6904
        * mangle.c: Likewise.
6905
        * parse-scan.y: Likewise.
6906
        * parse.y: Likewise.
6907
 
6908
2003-10-22  Tom Tromey  
6909
 
6910
        * expr.c (expand_byte_code): Only warn about dead bytecode when
6911
        extra_warnings is set.
6912
 
6913
2003-10-22  Bryce McKinlay  
6914
 
6915
        Fix for PR java/12586.
6916
        * mangle.c (find_compression_record_match): Don't iterate through
6917
        package namespace elements unless they all match compression_table
6918
        entries.
6919
 
6920
2003-10-20  Kelley Cook  
6921
 
6922
        * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
6923
        (generate-manpages): Likewise.
6924
        (java.maintainer-clean): Likewise.
6925
        (gcj.info): Likewise.
6926
        (gcj.1): Likewise.
6927
        (gcjh.1): Likewise.
6928
        (jv-scan.1): Likewise.
6929
        (jcf-dump.1): Likewise.
6930
        (gij.1): Likewise.
6931
        (jv-convert.1): Likewise.
6932
        (rmic.1): Likewise.
6933
        (rmiregistry.1): Likewise.
6934
        (java.install-man): Likewise.
6935
        (parse-scan.o): Move and define complete compile line.
6936
        (parse.o): Likewise.
6937
        (jcf-tree-inline.o): Move.
6938
 
6939
2003-10-20  Mark Mitchell  
6940
 
6941
        * Make-lang.in (info): Update dependencies.
6942
        (java.install-info): Remove.
6943
        ($(srcdir)/java/gcj.info): Replace with ...
6944
        ($(docobjdir)/gcj.info): ... this.
6945
 
6946
2003-10-14  Nathanael Nerode  
6947
 
6948
        * Make-lang.in: Replace uses of $(target_alias) with
6949
        $(target_noncanonical).
6950
 
6951
2003-10-09  Tom Tromey  
6952
 
6953
        * decl.c (java_init_decl_processing): Declare signers field.
6954
        * class.c (make_class_data): Set signers field.
6955
 
6956
2003-10-09  Jason Merrill  
6957
 
6958
        * parse.y (patch_assignment): Use make_node to create a BLOCK.
6959
        * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
6960
        POINTER_TYPE.
6961
 
6962
2003-10-06  Mark Mitchell  
6963
 
6964
        * Make-lang.in (java.info): Replace with ...
6965
        (info): ... this.
6966
        (java.dvi): Replace with ...
6967
        (dvi): ... this.
6968
        (java.generated-manpages): Replace with ...
6969
 
6970
2003-10-03  Kelley Cook  
6971
 
6972
        * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
6973
 
6974
2003-10-01  Andrew Haley  
6975
 
6976
        * jcf-parse.c (java_parse_file): Write otable and atable.
6977
        * java-tree.h (atable_methods): New.
6978
        (atable_decl): New.
6979
        (atable_syms_decl): New.
6980
        (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
6981
        JTI_ATABLE_SYMS_DECL.  Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
6982
        (symbol_*type): Rename method_symbol* to symbol*type.
6983
        (emit_offset_symbol_table): Delete.
6984
        (emit_symbol_table): New.
6985
        (get_symbol_table_index): New.
6986
        (atable_type): New.
6987
        * expr.c (build_field_ref): Handle flag_indirect_dispatch.
6988
        (build_known_method_ref): Likewise.
6989
        (get_symbol_table_index): Rename from get_offset_table_index.
6990
        Parameterize to allow re-use by differing types of symbol table.
6991
        (build_invokevirtual): Pass table to get_offset_table_index.
6992
        * decl.c (java_init_decl_processing): Push types and decls for
6993
        atable and atable_syyms.
6994
        * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
6995
        (make_class_data): Add new fields atable and atable_syms.
6996
        (emit_symbol_table): Rename from emit_offset_symbol_table.
6997
        Parameterize to allow re-use by different types of symbol table.
6998
        (build_symbol_entry): Renamed from build_method_symbols_entry.
6999
 
7000
2003-09-30  Roger Sayle  
7001
 
7002
        * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
7003
        semantics for SAVE_EXPR, by caching the result in a temporary.
7004
 
7005
2003-09-28  Richard Henderson  
7006
 
7007
        * check-init.c (check_init): Save and restore input_location
7008
        instead of file and line separately.
7009
        * decl.c (java_expand_body): Likewise.
7010
        * jcf-write.c (generate_bytecode_insns): Likewise.
7011
        * parse.y (safe_layout_class): Likewise.
7012
        * jcf-parse.c (read_class, parse_class_file): Likewise.
7013
        (java_parse_file): Use %H for warning locator.
7014
 
7015
2003-09-28  Roger Sayle  
7016
 
7017
        * expr.c (java_check_reference): Use the semantics of COND_EXPRs
7018
        with void-type branches instead of using a COMPOUND_EXPR.
7019
 
7020
2003-09-28  Jeff Sturm  
7021
 
7022
        * decl.c (java_optimize_inline, dump_function): Remove.
7023
        * java-tree.h (java_optimize_inline): Remove declaration.
7024
        * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
7025
        * parse.y (source_end_java_method, java_expand_classes):
7026
        Likewise.  Remove dead code.
7027
 
7028
2003-09-27  Roger Sayle  
7029
 
7030
        * lang.c (java_init_options): Set flag_evaluation_order.
7031
        * expr.c (force_evaluation_order): Don't attempt to force
7032
        evaluation order of binary operations using save_expr.
7033
        * parse.y (java_complete_lhs): No longer need to call
7034
        force_evaluation_order when constructing binary operators.
7035
 
7036
2003-09-27  Alexandre Petit-Bianco  
7037
            Bryce McKinlay  
7038
 
7039
        PR java/1333:
7040
        * parse.y (not_accessible_field_error): New function.
7041
        (resolve_expression_name): Check field access permissions.
7042
        (resolve_qualified_expression_name): Use
7043
        not_accessible_field_error.
7044
        (resolve_qualified_expression_name): Likewise.
7045
 
7046
2003-09-24  Rainer Orth  
7047
 
7048
        * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
7049
 
7050
2003-09-23  Roger Sayle  
7051
 
7052
        * jcf-write.c (generate_bytecode_insns): Optimize binary operations
7053
        with equal operands without side-effects.
7054
 
7055
2003-09-22  Jeff Sturm  
7056
 
7057
        * decl.c (java_init_decl_processing): Don't emit otable decls
7058
        if flag_indirect_dispatch is not set.
7059
 
7060
2003-09-21  Richard Henderson  
7061
 
7062
        * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
7063
        resource.c: Revert.
7064
 
7065
2003-09-21  Richard Henderson  
7066
 
7067
        * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
7068
        resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
7069
 
7070
2003-09-20  Richard Henderson  
7071
 
7072
        * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
7073
 
7074
2003-09-18  Roger Sayle  
7075
 
7076
        * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
7077
        * check-init.c (check_init): Likewise.
7078
 
7079
2003-09-18  Roger Sayle  
7080
 
7081
        * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
7082
 
7083
2003-09-16  Andrew Haley  
7084
 
7085
        * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
7086
 
7087
2003-09-17  Ranjit Mathew  
7088
 
7089
        Fixes PR java/9577
7090
        * mangle.c (find_compression_record_match): Skip
7091
        over a "6JArray" (the array template mangled string)
7092
        IDENTIFIER_NODE.
7093
        (mangle_array_type): Correct minor typo.
7094
        (atms): Move definition to the beginning.
7095
 
7096
2003-09-16  Bryce McKinlay  
7097
 
7098
        * class.c (add_miranda_methods): Ensure super-interfaces are laid
7099
        out. Fix for PR java/12254.
7100
 
7101
2003-09-11  Richard Henderson  
7102
 
7103
        * parse.y (source_end_java_method): Update for new
7104
        cgraph_finalize_function argument.
7105
 
7106
2003-09-09  Richard Henderson  
7107
 
7108
        * parse.y (source_end_java_method): Update call to
7109
        cgraph_finalize_function.
7110
 
7111
2003-09-03  Jeff Sturm  
7112
 
7113
        * decl.c (java_expand_body): New function.
7114
        * expr.c (build_class_init): Set DECL_IGNORED_P.
7115
        * java-tree.h (start_complete_expand_method,
7116
        java_expand_body): Declare.
7117
        * jcf-parse.c (cgraph.h): Include.
7118
        (java_parse_file): Handle flag_unit_at_a_time.
7119
        * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
7120
        LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
7121
        (java_estimate_num_insns): Use walk_tree_without_duplicates.
7122
        (java_start_inlining): New function.
7123
        * parse.h (java_finish_classes): Declare.
7124
        * parse.y: Include cgraph.h.
7125
        (block): Don't special-case empty block production.
7126
        (craft_constructor): Set DECL_INLINE.
7127
        (source_end_java_method): Handle flag_unit_at_a_time.
7128
        Replace inline code with call to java_expand_body.
7129
        (start_complete_expand_method): Remove static modifier.
7130
        (java_expand_method_bodies): Patch function tree for
7131
        class initialization and/or synchronization as needed.
7132
        Don't begin RTL expansion yet.
7133
        (java_expand_classes): Check flag_unit_at_a_time before
7134
        calling finish_class.
7135
        (java_finish_classes): New function.
7136
        (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
7137
        (patch_assignment): Set DECL_CONTEXT on temporary variable.
7138
        (emit_test_initialization): Set DECL_IGNORED_P.
7139
 
7140
2003-09-03  Roger Sayle  
7141
 
7142
        * builtins.c (enum builtin_type): Delete unused enumeration.
7143
        * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
7144
 
7145
2003-08-28  Tom Tromey  
7146
 
7147
        * gcj.texi (Extensions): Document gcjlib URLs.
7148
 
7149
2003-08-20  Tom Tromey  
7150
 
7151
        * gcj.texi (Extensions): Added xref.
7152
        (libgcj Runtime Properties): Document
7153
        gnu.gcj.runtime.VMClassLoader.library_control.
7154
 
7155
2003-08-20  Andrew Haley  
7156
 
7157
        * except.c (prepare_eh_table_type): Use new encoding for exception
7158
        handlers when using -fno-assume-compiled.
7159
 
7160
2003-08-13  Tom Tromey  
7161
 
7162
        * gcj.texi (Invoking gij): Document -X and -?.
7163
 
7164
2003-08-13  Mohan Embar  
7165
 
7166
        * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
7167
        GCJH_OBJS, JCFDUMP_OBJS
7168
        * win32-host.c: Removed the unnecessary and broken dependency
7169
        on jcf.h
7170
 
7171
2003-08-11  Tom Tromey  
7172
 
7173
        * parse.y (java_check_regular_methods): Typo fixes.  Call
7174
        check_interface_throws_clauses.  Use
7175
        check_concrete_throws_clauses.
7176
        (check_interface_throws_clauses): New function.
7177
        (check_concrete_throws_clauses): New function.
7178
        (hack_is_accessible_p): New function.
7179
        (find_most_specific_methods_list): Added FIXME.
7180
        * typeck.c (lookup_do): Use `flags' argument to decide what to
7181
        do.  Reimplemented.
7182
        (lookup_argument_method_generic): New function.
7183
        (lookup_argument_method2): Removed.
7184
        * jcf.h (ACC_INVISIBLE): New define.
7185
        * jcf-write.c (generate_classfile): Skip invisible methods.
7186
        * class.c (add_miranda_methods): New function.
7187
        (layout_class_methods): Use it.
7188
        (get_access_flags_from_decl): Use ACC_INVISIBLE.
7189
        * java-tree.h (METHOD_INVISIBLE): New define.
7190
        (lang_decl_func) [invisible]: New field.
7191
        (lookup_argument_method_generic): Declare.
7192
        (SEARCH_INTERFACE): New define.
7193
        (SEARCH_SUPER): Likewise.
7194
        (SEARCH_ONLY_INTERFACE): Likewise.
7195
        (SEARCH_VISIBLE): Likewise.
7196
        (lookup_argument_method2): Removed declaration.
7197
 
7198
2003-08-05  Tom Tromey  
7199
 
7200
        Fix for PR java/11600:
7201
        * parse.y (java_complete_lhs): See whether we're calling a method
7202
        on an array.
7203
        (check_thrown_exceptions): Added `is_array_call' argument;
7204
        fixed `clone' checking; updated all callers.
7205
 
7206
2003-08-05  Steven Bosscher  
7207
 
7208
        * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
7209
 
7210
2003-08-03  Tom Tromey  
7211
 
7212
        * java-tree.h (METHOD_TRANSIENT): Removed.
7213
        * decl.c (pushdecl): Removed some dead code.
7214
        * class.c (get_access_flags_from_decl): Can't have transient
7215
        method.
7216
        (add_method_1): Can't have a transient method.
7217
 
7218
2003-07-28  Andreas Jaeger  
7219
 
7220
        * jvspec.c: Convert to ISO C90 prototypes.
7221
 
7222
2003-07-25  Nathan Sidwell  
7223
 
7224
        * decl.c (force_poplevels): Fix warning call.
7225
 
7226
2003-07-25  Gabriel Dos Reis  
7227
 
7228
        * expr.c (expand_java_field_op): Don't use xxx_with_decl
7229
        (expand_java_field_op): Likewise.
7230
        * class.c (layout_class_method): Likewise
7231
        (emit_register_classes): Likewise.
7232
        * decl.c (pushdecl): Likewise.
7233
        (poplevel): Likewise.
7234
        (force_poplevels): Likewise.
7235
        (give_name_to_locals): Likewise.
7236
        * check-init.c (check_for_initialization): Likewise.
7237
 
7238
2003-07-24  Jason Merrill  
7239
 
7240
        * java-tree.h: Move boolean_type_node et al to the back end.
7241
 
7242
2003-07-19  Kaveh R. Ghazi  
7243
 
7244
        * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
7245
        casts.
7246
 
7247
2003-07-19  Neil Booth  
7248
 
7249
        * lang.opt: Don't show -MD_ and -MDD_.
7250
 
7251
2003-07-18  Neil Booth  
7252
 
7253
        * lang-options.h: Remove.
7254
        * lang.opt: Add help text.
7255
 
7256
2003-07-15  Kazu Hirata  
7257
 
7258
        * expr.c: Remove the last argument to expand_assignment().
7259
 
7260
2003-07-09  Jan Hubicka  
7261
 
7262
        * java-tree.h (DECL_NUM_STMTS): Rename to...
7263
        (DECL_ESTIMATED_INSNS): ... this.
7264
        * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
7265
        New static functions.
7266
        (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
7267
        * parser.y (add_stmt_to_compound): Do not account statements.
7268
 
7269
2003-07-08  Mark Wielaard  
7270
 
7271
        * gcj.texi: CNI now expands to Compiled Native Interface.
7272
 
7273
2003-07-08  Rainer Orth  
7274
 
7275
        * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
7276
 
7277
2003-07-07  Nathan Sidwell  
7278
 
7279
        * expr.c (expand_byte_code): Adjist emit_line_note call.
7280
 
7281
2003-07-06  Neil Booth  
7282
 
7283
        * lang.c (java_handle_option): Don't handle filenames.
7284
 
7285
2003-07-02  Zack Weinberg  
7286
 
7287
        * jcf-path.c: Don't default-define PATH_SEPARATOR nor
7288
        DIR_SEPARATOR.
7289
        Use FILENAME_CMP.
7290
        * jcf-write.c: Don't default-define DIR_SEPARATOR.
7291
        * jcf.h: Delete COMPARE_FILENAMES definition.
7292
 
7293
2003-07-02  Neil Booth  
7294
 
7295
        * lang.c (java_init_options): Update prototype.
7296
 
7297
2003-07-01  Nathan Sidwell  
7298
 
7299
        * decl.c (poplevel): Adjust define_label call.
7300
 
7301
2003-06-27  Zack Weinberg  
7302
 
7303
        * gjavah.c (flag_jni): Make non-static.
7304
        * parse-scan.y (ctxp): Make non-static.
7305
 
7306
        * class.c (build_method_symbols_entry)
7307
        * expr.c (get_offset_table_index)
7308
        * jcf-parse.c (jcf_parse):
7309
        Mark the definition static, matching the forward declaration.
7310
 
7311
2003-06-26  Neil Booth  
7312
 
7313
        * lang.c (java_handle_option): Don't check for missing arguments.
7314
 
7315
2003-06-20  Nathan Sidwell  
7316
 
7317
        * class.c (push_class): Use a location_t to save place.
7318
        (emit_register_classes): Set input_location. Adjust
7319
        expand_function_end call.
7320
        * resource.c (write_resource_constructor): Likewise.
7321
        * decl.c (end_java_method): Adjust expand_function_end call.
7322
        * parse.y (source_end_java_method): Likewise.
7323
 
7324
2003-06-17  Robert Abeles  
7325
 
7326
        * lang.c (java_handle_option): Likewise.
7327
 
7328
2003-06-16  Neil Booth  
7329
 
7330
        * lang.c (java_handle_option): Special-casing of optional
7331
        joined arguments no longer needed.
7332
        * lang.opt: Update switches that take optional argument.
7333
 
7334
2003-06-15  Neil Booth  
7335
 
7336
        * lang.opt: Declare Java.
7337
        * lang.c (java_init_options): Update.
7338
 
7339
2003-06-15  Neil Booth  
7340
 
7341
        * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
7342
 
7343
2003-06-14  Neil Booth  
7344
 
7345
        * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
7346
        * lang.c (java_handle_option): -MD and -MMD have an underscore.
7347
        * lang.opt: -MD and -MMD have an underscore.
7348
 
7349
2003-06-14  Nathan Sidwell  
7350
 
7351
        * class.c (emit_register_classes): Adjust init_function_start
7352
        call.
7353
        * decl.c (complete_start_java_method): Likewise.
7354
        * resource.c (write_resource_constructor): Likewise.
7355
 
7356
2003-06-14  Neil Booth  
7357
 
7358
        * Make-lang.in: Update to use options.c and options.h.
7359
        * lang.c: Include options.h not j-options.h.
7360
        (java_handle_option): Abort on unrecognized option.
7361
        (java_init_options): Request Java switches.
7362
 
7363
2003-06-11  Neil Booth  
7364
 
7365
        * Make-lang.in: Handle mostlyclean.
7366
 
7367
2003-06-11  Tom Tromey  
7368
 
7369
        * lang.c (java_handle_option): Update dependency_tracking for
7370
        OPT_MF case.
7371
 
7372
        * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
7373
        empty argument.
7374
 
7375
2003-06-10  Andrew Haley  
7376
 
7377
        * resource.c (write_resource_constructor): Use expand_expr to
7378
        generate the address of the label attached to a resource.
7379
        * Make-lang.in (java/resource.o): Add expr.h
7380
 
7381
2003-06-10  Andrew Haley  
7382
 
7383
        * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
7384
        (java_decl_ok_for_sibcall): New.
7385
 
7386
2003-06-09  Neil Booth  
7387
 
7388
        * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
7389
        (java/j-options.c, java/j-options.h): New.
7390
        * java-tree.h (resource_name, compile_resource_file,
7391
        compile_resource_data): Constify.
7392
        * jcf-write.c (jcf_write_base_directory): Similarly.
7393
        * jcf.h (jcf_write_base_directory): Similarly.
7394
        * lang.c: Include j-options.h.
7395
        (cl_options_count, cl_options, string_option, java_decode_option,
7396
        lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
7397
        process_option_with_no): Remove.
7398
        (resource_name): Constify.
7399
        (LANG_HOOKS_HANDLE_OPTION): Override.
7400
        (java_handle_option): New.
7401
        (java_init): Don't call jcf_path_init.
7402
        (java_init_options): Call jcf_path_init.
7403
        * lang.opt: New.
7404
        * resource.c (compile_resource_data, compile_resource_file): Constify.
7405
 
7406
2003-06-09  Nathan Sidwell  
7407
 
7408
        * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
7409
        (struct lang_decl_func): Add last_line field.
7410
        * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
7411
        DECL_SOURCE_LINE_LAST): Remove.
7412
        * parse.y (missing_return_error, finish_method_declaration,
7413
        lookup_cl, start_artificial_method_body, source_end_java_method,
7414
        start_complete_expand_method): Adjust.
7415
 
7416
2003-06-08  Tom Tromey  
7417
 
7418
        * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
7419
        fno-assume-compiled.
7420
 
7421
2003-06-08  Roger Sayle  
7422
 
7423
        * builtins.c (define_builtin_type, builtin_types): Delete.
7424
        (define_builtin): Rewritten to take just the built-in code,
7425
        the function's name, type and fallback library function name.
7426
        All built-ins used by Java are implicit and BUILT_IN_NORMAL.
7427
        (initialize_builtins): Overhaul to define the GCC builtins
7428
        used by gcj manually, providing the Java run-time's
7429
        implementations as the fallback library function.
7430
 
7431
2003-06-08  Anthony Green  
7432
 
7433
        * parse.y (patch_cast): Fix conversions from floating-point to
7434
        integral types.
7435
 
7436
2003-06-08  Neil Booth  
7437
 
7438
        * Make-lang.in: Update.
7439
        * lang.c: Include opts.h. Define cl_options_count and cl_options.
7440
 
7441
2003-06-07  Neil Booth  
7442
 
7443
        * lang.c (java_init_options): Update.
7444
 
7445
2003-06-05  Jan Hubicka  
7446
 
7447
        * Make-lang.in:  Add support for stageprofile and stagefeedback
7448
 
7449
2003-05-31  Roger Sayle  
7450
 
7451
        * lang.c (java_init_options): Prescribe wrap-around two's
7452
        complement arithmetic overflow by setting flag_wrapv.
7453
 
7454
2003-05-29  Roger Sayle  
7455
 
7456
        * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
7457
        (builtin_record): Add an additional builtin_code field to
7458
        record which GCC built-in corresponds to the Java function.
7459
        (java_builtins):  Add new entries for atan, atan2, exp, log,
7460
        pow and tan.
7461
        (max_builtin, min_builtin, abs_builtin): Perform constant
7462
        folding on the resulting tree.
7463
        (java_build_function_call_expr): Likewise, perform constant
7464
        folding on the resulting tree.
7465
        (initialize_builtins): The NULL creators are now allowed in
7466
        the java_builtins table, which is now terminated by an entry
7467
        with builtin_code == END_BUILTINS.
7468
        (check_for_builtin): Likewise.  If the matching creator is
7469
        NULL, construct the call using java_build_function_call_expr
7470
        directly with the decl for the corresponding builtin_code.
7471
 
7472
2003-05-23  Nathanael Nerode  
7473
 
7474
        * win32-host.c: Normalize copyright boilerplate.
7475
 
7476
2003-05-16  Kaveh R. Ghazi  
7477
 
7478
        * parse.y (print_int_node): Use string concatentation on
7479
        HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
7480
        function calls into one.
7481
 
7482
2003-05-13  Zack Weinberg  
7483
 
7484
        * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
7485
        fatal_io_error with calls to fatal_error; add ": %m" to the end of
7486
        all the affected error messages.
7487
 
7488
2003-05-13  Richard Henderson  
7489
 
7490
        * class.c (layout_class_method): Set DECL_EXTERNAL.
7491
        * decl.c (java_mark_decl_local, java_mark_class_local): New.
7492
        * java-tree.h (java_mark_class_local): Declare.
7493
        * jcf-parse.c (parse_class_file): Use it.
7494
        * parse.y (java_expand_classes): Likewise.
7495
 
7496
2003-05-04  Nathan Sidwell  
7497
 
7498
        * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
7499
        * lex.h: #include input.h.
7500
        * jv-scan.c (input_filename): Remove.
7501
 
7502
2003-05-02  Tom Tromey  
7503
 
7504
        PR java/10491:
7505
        * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
7506
        (handle_inner_classes): New function.
7507
 
7508
2003-05-01  Tom Tromey  
7509
 
7510
        PR java/10459:
7511
        * parse.y (finish_for_loop): Do nothing if update expression is a
7512
        EXPR_WFL_NODE wrapping nothing.
7513
        (java_complete_lhs) : Likewise.
7514
 
7515
2003-05-02  Nathan Sidwell  
7516
 
7517
        * lex.h (input_lineno): Remove declaration.
7518
        * parse-scan.y: #include input.h.
7519
        (input_filename): Remove declaration.
7520
        (input_location): Add definition.
7521
        (input_line): Remove definition.
7522
 
7523
2003-05-01  Nathan Sidwell  
7524
 
7525
        * lex.h (lineno): Rename to ...
7526
        (input_line): ... here
7527
        * parse-scan.y (lineno): Rename to ...
7528
        (input_line): ... here.
7529
        (reset_report): Rename lineno to input_line.
7530
        * check-init.c (check_init): Likewise.
7531
        * class.c (push_class): Likewise.
7532
        * decl.c (complete_start_java_method, end_java_method): Likewise.
7533
        * expr.c (expand_byte_code): Likewise.
7534
        * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
7535
        * jcf-write.c (generate_bytecode_insns): Likewise.
7536
        * lex.c (java_init_lex, java_allocate_new_line,
7537
        do_java_lex): Likewise.
7538
        * parse.h (YYNOT_TWICE): Likewise.
7539
        * parse.y (empty_statement, expression_statement,
7540
        java_pop_parser_context, java_parser_context_save_global,
7541
        yyerror, register_fields, method_header, safe_layout_class,
7542
        find_in_imports_on_demand, create_artificial_method,
7543
        source_end_java_method, start_complete_expand_method,
7544
        build_thisn_assign, java_complete_lhs,
7545
        maybe_absorb_scoping_block): Likewise.
7546
 
7547
2003-04-20  Mohan Embar  
7548
 
7549
        * jcf-io.c (find_class): use DIR_SEPARATOR instead of
7550
        '/' when computing java source filename
7551
 
7552
2003-04-13  Tom Tromey  
7553
 
7554
        * gjavah.c (print_c_decl): Indentation fix.
7555
 
7556
2003-04-12  Zack Weinberg  
7557
 
7558
        * class.c (make_field_value, make_method_value, get_dispatch_table)
7559
        (make_class_data, emit_offset_symbol_table)
7560
        * constants.c (build_constants_constructor)
7561
        * java-tree.h (START_RECORD_CONSTRUCTOR)
7562
        * parse.y (maybe_build_array_element_wfl):
7563
        Use build_constructor.
7564
 
7565
2003-04-10  Eric Blake  
7566
 
7567
        PR java/10253:
7568
        * parse.y (string_convert_int_cst): Always use at least one digit
7569
        in string conversion. Remove ASCII dependence.
7570
        (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
7571
 
7572
2003-03-16  Mohan Embar  
7573
 
7574
        * Make-lang.in: added win32-host.c
7575
        * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
7576
        resolves to open() on non-Win32 platforms and
7577
        Win32-specific jcf_open_exact_case() on Win32
7578
        * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
7579
        when trying .java and .class files
7580
        * win32-host.c: added to repository. Defines
7581
        Win32-specific jcf_open_exact_case()
7582
 
7583
2003-04-10  Andrew Haley  
7584
 
7585
        * jcf-write.c (struct jcf_partial): num_jsrs: new field.
7586
        (maybe_free_localvar): Renamed from localvar_free.
7587
        Add new arg, really.
7588
        (generate_bytecode_insns): Set new variable, jsrs.
7589
        Only free local vars if no jsr insns have been emittted.
7590
        Call maybe_free_localvar, not localvar_free.
7591
 
7592
2003-03-30  Joseph S. Myers  
7593
 
7594
        * gcj.texi: Remove @ at start of file.
7595
 
7596
2003-03-25  Tom Tromey  
7597
 
7598
        * parse.y (create_interface): Call CHECK_DEPRECATED.
7599
 
7600
2003-03-23  Zack Weinberg  
7601
 
7602
        * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
7603
 
7604
2003-03-21  Zack Weinberg  
7605
 
7606
        * javaop.h (jfloat, jdouble): Make them structures mirroring
7607
        the bit fields of IEEE float and double respectively.
7608
        (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
7609
        JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
7610
        (union Word, union DWord): Delete.
7611
        (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
7612
 
7613
        * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
7614
        D_NAN_MASK): Delete.
7615
        (jni_print_float, jni_print_double): New.  Generate
7616
        hexadecimal floating constants.
7617
        (print_field_info): Use jni_print_float/double.
7618
 
7619
        * jcf-dump.c: Include math.h.  Use ldexp/frexp to assemble
7620
        finite floating point numbers for output; special case
7621
        non-finite floats.
7622
 
7623
2003-03-19  Nathanael Nerode  
7624
 
7625
        * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
7626
        Replace 0 and 1 with true and false in return statements.
7627
 
7628
2003-03-19  Tom Tromey  
7629
 
7630
        * lex.c (do_java_lex): Renamed from java_lex.
7631
        (java_lex): New function.
7632
        Include timevar.h.
7633
 
7634
2003-03-13  Tom Tromey  
7635
 
7636
        * parse.y (resolve_inner_class): Error if qualifier is a primitive
7637
        type.
7638
 
7639
2003-03-04  Andrew Haley  
7640
 
7641
        * gjavah.c (is_first_data_member): New global variable.
7642
        (print_c_decl): If it's the first data member, align it as the
7643
        superclass.
7644
        (process_file): Set is_first_data_member.
7645
 
7646
2003-03-11  Tom Tromey  
7647
 
7648
        * parse.y (resolve_field_access): Initialize class if field is
7649
        found in another static field.
7650
        * expr.c (build_class_init): Don't optimize out initialization of
7651
        implemented interface.
7652
 
7653
2003-03-11  Andrew Haley  
7654
 
7655
        * jcf-io.c (caching_stat): Initialize origsep to remove compiler
7656
        warning.
7657
 
7658
2003-03-10  Ranjit Mathew  
7659
 
7660
        * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
7661
        and DIR_SEPARATOR_2 for a target.
7662
        Correct minor typos.
7663
 
7664
        * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
7665
        and DIR_SEPARATOR_2 for a target into account.
7666
 
7667
2003-03-08  Neil Booth  
7668
 
7669
        * lang.c (java_init): Update prototype, move code to java_post_options.
7670
        (java_post_options): Similarly.
7671
 
7672
2003-03-05  Ranjit Mathew  
7673
 
7674
        * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
7675
        compare file name components depending on the case-sensitivity
7676
        or otherwise of the host file system.
7677
 
7678
        * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
7679
        "strcmp" to compare file name components.
7680
        Use IS_DIR_SEPARATOR instead of comparing directly against
7681
        DIR_SEPARATOR.
7682
        (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
7683
        comparing directly against DIR_SEPARATOR.
7684
 
7685
2003-03-04  Tom Tromey  
7686
 
7687
        * Make-lang.in (java.tags): New target.
7688
 
7689
2003-03-01  Roger Sayle  
7690
 
7691
        * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
7692
        (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
7693
 
7694
2003-03-01  Tom Tromey  
7695
 
7696
        * parse.y (jdep_resolve_class): Only check deprecation if we found
7697
        a decl.
7698
 
7699
2003-02-28  Tom Tromey  
7700
 
7701
        PR java/9695:
7702
        * class.c (maybe_layout_super_class): Always pass a WFL to
7703
        do_resolve_class.
7704
        * parse.y (do_resolve_class): Updated comment to explain
7705
        parameters.
7706
 
7707
2003-02-26  Tom Tromey  
7708
 
7709
        * jcf-write.c (generate_classfile): Check whether class is
7710
        deprecated before writing attribute count.
7711
 
7712
2003-02-25  Roger Sayle  
7713
 
7714
        * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
7715
        built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
7716
 
7717
2003-02-23  Tom Tromey  
7718
 
7719
        * lang-options.h: Added -Wdeprecated.
7720
        * gcj.texi (Warnings): Document -Wdeprecated.
7721
        * java-tree.h (flag_deprecated): Declare.
7722
        * lang.c (lang_W_options): Added deprecated.
7723
        (flag_deprecated): New global.
7724
        * chartables.h: Rebuilt.
7725
        * gen-table.pl (process_one): Look at whitespace.
7726
        (print_tables): Define LETTER_SPACE, LETTER_MASK.
7727
        * parse.h (CLEAR_DEPRECATED): New macro.
7728
        (CHECK_DEPRECATED_NO_RESET): New macro.
7729
        * jcf-parse.c (handle_deprecated): New function.
7730
        (HANDLE_DEPRECATED_ATTRIBUTE): New define.
7731
        * jcf-reader.c (get_attribute): Handle Deprecated attribute.
7732
        * parse.y (resolve_type_during_patch): Check deprecation.
7733
        (jdep_resolve_class): Likewise.
7734
        (process_imports): Likewise.
7735
        (resolve_expression_name): Likewise.
7736
        (check_deprecation): Strip arrays from decl.  Check
7737
        flag_deprecated.
7738
        (patch_method_invocation): Also check the particular constructor
7739
        for deprecation.
7740
        (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
7741
        * jcf-write.c (append_deprecated_attribute): New function.
7742
        (generate_classfile): Generate deprecated attribute when
7743
        appropriate.
7744
        * lex.c (java_parse_doc_section): Return type now void.  Rewrote.
7745
        (java_lex) [case '*']: Simplify logic.
7746
        (java_start_char_p): Use LETTER_MASK.
7747
        (java_part_char_p): Likewise.
7748
        (java_space_char_p): New function.
7749
 
7750
2003-02-20  Nathan Sidwell  
7751
 
7752
        Change base class access representation.
7753
        * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
7754
        (add_interface_do): Likewise.
7755
 
7756
2003-02-12  Ranjit Mathew  
7757
 
7758
        * decl.c (java_init_decl_processing): Change
7759
        soft_lookupjnimethod_node to reflect the change in
7760
        signature of _Jv_LookupJNIMethod in libjava/jni.cc
7761
        * expr.c (build_jni_stub): Calculate and pass the size
7762
        on the stack of the arguments to a JNI function. Use
7763
        new target macro MODIFY_JNI_METHOD_CALL to allow a
7764
        target to modify the call to a JNI method.
7765
 
7766
2003-02-08  Roger Sayle  
7767
 
7768
        * jcf-io.c (java_or_class_file): Use libiberty's lbasename
7769
        instead of basename to avoid compiler warnings on Tru64.
7770
 
7771
2003-02-04  Joseph S. Myers  
7772
 
7773
        * gcj.texi: Update to GFDL 1.2.
7774
 
7775
2003-01-31  Andrew Haley  
7776
 
7777
        * parse.y (java_expand_classes): Scan the whole class list looking
7778
        for access methods that haven't yet been expanded.
7779
 
7780
2003-01-31 Adrian Bunk 
7781
 
7782
        Fix for java/4269:
7783
 
7784
        * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
7785
        to fix bootstrap on sparc-unknown-netbsdelf1.5.
7786
        * jcf-parse.c: Likewise.
7787
 
7788
2003-01-31  Mark Wielaard  
7789
 
7790
        * gjavah.c (throwable_p): Allocate 1 more byte for string.
7791
 
7792
2003-01-31  Nathan Sidwell  
7793
 
7794
        * class.c (make_class): Use BINFO_ELTS.
7795
        (set_super_info): Likewse.
7796
        (add_interface_do): Likewise.
7797
 
7798
2003-01-30  Tom Tromey  
7799
 
7800
        * jcf-parse.c (read_class): Update identifier's class value if it
7801
        changed during parsing.
7802
 
7803
2003-01-30  Loren James Rittle  
7804
 
7805
        * Make-lang.in (po-generated): Find the targets in $(parsedir).
7806
        Propagate change to all other rules as required.
7807
        (java/parse-scan.o): Add explicit dependency on
7808
        $(parsedir)/java/parse-scan.c .
7809
 
7810
2003-01-29  Tom Tromey  
7811
 
7812
        * parse.y (patch_assignment): Only transform the rhs of an
7813
        assignment when compiling to native.
7814
 
7815
2003-01-28  Tom Tromey  
7816
 
7817
        * jcf-write.c (generate_bytecode_conditional): Typo fixes.
7818
 
7819
2003-01-28  Tom Tromey  
7820
 
7821
        * lex.c (java_lex): Don't include UEOF as part of token.
7822
        (java_read_unicode): Error if \u sequence prematurely terminated.
7823
 
7824
2003-01-27  Tom Tromey  
7825
 
7826
        * parse.y (java_check_regular_methods): Check for construct after
7827
        checking types in throws clause.
7828
 
7829
2003-01-24  Tom Tromey  
7830
 
7831
        * class.c (build_static_field_ref): Only a String or numeric field
7832
        can fold to a constant.
7833
 
7834
2003-01-23  Tom Tromey  
7835
 
7836
        * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
7837
        file name in resource buffer.
7838
 
7839
2003-01-23  Tom Tromey  
7840
 
7841
        * expr.c (build_known_method_ref): Use method's context to find
7842
        method table index.
7843
 
7844
2003-01-23  Tom Tromey  
7845
 
7846
        * constants.c (set_constant_entry): Allocated cleared memory.
7847
 
7848
2003-01-22  Tom Tromey  
7849
 
7850
        * java-tree.h: Don't use PARAMS.
7851
        * resource.c: Add prototypes for all functions.
7852
        (write_resource_constructor): Use `const char *' to avoid
7853
        warning.
7854
 
7855
2003-01-22 Nathanael Nerode  
7856
 
7857
        * jcf-parse.c (process_zip_dir): Remove unused variable.
7858
 
7859
2003-01-22  Tom Tromey  
7860
 
7861
        * expr.c (build_invokeinterface): Abort if method's context is not
7862
        an interface.
7863
 
7864
2003-01-22  Tom Tromey  
7865
 
7866
        * gcj.texi (Input and output files): Mention non-class entries.
7867
        * decl.c (java_init_decl_processing): Call
7868
        init_resource_processing.
7869
        * java-tree.h (compile_resource_data, write_resource_constructor,
7870
        compile_resource_file, init_resource_processing): Declare.
7871
        * config-lang.in (gtfiles): Added resource.c.
7872
        * Make-lang.in (gt-java-resource.h): New target.
7873
        (JAVA_OBJS): Added resource.o.
7874
        (java/resource.o): New target.
7875
        * resource.c: New file.
7876
        * class.c (compile_resource_file): Moved to resource.c.
7877
        (registerResource_libfunc): Likewise.
7878
        (utf8_decl_list): Mark with GTY; now static.
7879
        * jcf-parse.c (classify_zip_file): New function.
7880
        (parse_zip_file_entries): Use it; compile .properties files.
7881
        (process_zip_dir): Use classify_zip_file and compute_class_name.
7882
        Don't write class name into zip directory.
7883
        (java_parse_file): Call write_resource_constructor.
7884
        (compute_class_name): New function.
7885
        * jcf-io.c (read_zip_member): Reindented.
7886
 
7887
2003-01-21  Tom Tromey  
7888
 
7889
        * class.c (supers_all_compiled): New function.
7890
        (make_class_data): Use it.
7891
 
7892
2003-01-21  Tom Tromey  
7893
 
7894
        * parse.y (method_header): Native method can't be strictfp.
7895
        No method can be transient or volatile.
7896
 
7897
2003-01-21  Kaveh R. Ghazi  
7898
 
7899
        Make-lang.in (jvspec.o-warn): Add -Wno-error.
7900
 
7901
2003-01-18  Kazu Hirata  
7902
 
7903
        * check-init.c: Fix comment typos.
7904
        * class.c: Likewise.
7905
        * constants.c: Likewise.
7906
        * decl.c: Likewise.
7907
        * except.c: Likewise.
7908
        * expr.c: Likewise.
7909
        * java-except.h: Likewise.
7910
        * java-tree.h: Likewise.
7911
        * javaop.h: Likewise.
7912
        * jcf-dump.c: Likewise.
7913
        * jcf-io.c: Likewise.
7914
        * jcf-parse.c: Likewise.
7915
        * jcf-write.c: Likewise.
7916
        * lang.c: Likewise.
7917
        * mangle.c: Likewise.
7918
        * typeck.c: Likewise.
7919
        * verify.c: Likewise.
7920
 
7921
2003-01-18  Kaveh R. Ghazi  
7922
 
7923
        * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
7924
        * jcf-write.c: Include "tm_p.h".
7925
 
7926
2003-01-17  Kaveh R. Ghazi  
7927
 
7928
        * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
7929
 
7930
2003-01-16  Kaveh R. Ghazi  
7931
 
7932
        * builtins.c (java_build_function_call_expr): Renamed from
7933
        build_function_call_expr.  All callers changed.
7934
 
7935
        * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
7936
        * jcf-parse.c: Include tm_p.h.
7937
 
7938
        * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
7939
        warning.
7940
 
7941
2003-01-14  Tom Tromey  
7942
 
7943
        * class.c (make_class_data): Check that super is compiled before
7944
        building class reference to it.
7945
 
7946
2003-01-14  Andrew Haley  
7947
 
7948
        * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7949
        varargs function -- correct.
7950
 
7951
2003-01-14  Andrew Haley  
7952
 
7953
        * decl.c (java_init_decl_processing): Temporarily back out previous patch.
7954
 
7955
2003-01-14  Andrew Haley  
7956
 
7957
        * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7958
        varargs function -- correct.
7959
 
7960
        * parse.y (patch_assignment): Copy the rhs of an assignment into a
7961
        temporary if the RHS is a reference.
7962
 
7963
2003-01-11  Kaveh R. Ghazi  
7964
 
7965
        * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
7966
        * keyword.h: Regenerated.
7967
 
7968
        * All Files: Convert to ISO C style function definitions.
7969
 
7970
2003-01-09  Nathanael Nerode  
7971
 
7972
        * parse.y (check_pkg_class_access): ANSIfy definition.
7973
 
7974
2003-01-09  Kaveh R. Ghazi  
7975
 
7976
        * decl.c, parse-scan.y, parse.y: Don't cast return value of
7977
        xmalloc et al.
7978
 
7979
        * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
7980
 
7981
2003-01-09  Geoffrey Keating  
7982
 
7983
        Merge from pch-branch:
7984
 
7985
        2002-12-02  Geoffrey Keating  
7986
 
7987
        * Make-lang.in (java/gjavah.o): Update dependencies.
7988
        * gjavah.c: Include ggc.h.
7989
 
7990
        2002-08-16  Geoffrey Keating  
7991
 
7992
        * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
7993
        (JCFDUMP_OBJS): Add ggc-none.o.
7994
        (java/jcf-dump.o): Depend on GGC_H.
7995
        * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
7996
        CPool substructures.
7997
        * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
7998
        * jcf-dump.c: Include ggc.h.
7999
 
8000
        2002-08-08  Geoffrey Keating  
8001
 
8002
        * jcf.h (union cpool_entry): New.
8003
        (struct CPool): Use gengtype to mark.  Change field 'data' to be
8004
        an array of unions.
8005
        (struct JCF): Use gengtype to mark.
8006
        (CPOOL_UINT): Update for new cpool_entry type.
8007
        (CPOOL_USHORT1): Likewise.
8008
        (CPOOL_USHORT2): Likewise.
8009
        (CPOOL_FINISH): Use GC to free cpool subfields.
8010
        * parse.h (struct parser_ctxt): Mark field current_jcf.
8011
        * lex.c (java_init_lex): Use GC to allocate struct JCF.
8012
        * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
8013
        (main_jcf): Use gengtype to mark.
8014
        (ggc_mark_jcf): Delete.
8015
        (get_constant): Update for new cpool_entry type.
8016
        (give_name_to_class): Likewise.
8017
        (get_class_constant): Likewise.
8018
        (init_outgoing_cpool): Use GGC to allocate struct CPool.
8019
        (java_parse_file): Use GGC to allocate struct JCF.
8020
        (init_jcf_parse): Don't call ggc_add_root.
8021
        * jcf-reader.c (jcf_parse_constant_pool): Update for new
8022
        cpool_entry type.
8023
        * java-tree.h (current_jcf): Use gengtype to mark.
8024
        (CPOOL_UTF): Update for new cpool_entry type.
8025
        (outgoing_cpool): Use gengtype to mark.
8026
        (struct lang_type): GC struct JCF and struct CPool.
8027
        * config-lang.in (gtfiles): Add jcf.h.
8028
        * constants.c (find_tree_constant): New.
8029
        (set_constant_entry): Allocate cpool subfields using GGC.  Update
8030
        for new cpool_entry type.
8031
        (find_constant1): Update for new cpool_entry type.
8032
        (find_constant2): Likewise.
8033
        (find_utf8_constant): Use find_tree_constant.
8034
        (find_class_or_string_constant): Remove unnecessary cast to jword.
8035
        Update for new cpool_entry type.
8036
        (count_constant_pool_bytes): Update for new cpool_entry type.
8037
        (write_constant_pool): Likewise.
8038
        (alloc_name_constant): Use find_tree_constant.
8039
        (build_constants_constructor): Update for new cpool_entry type.
8040
 
8041
        2002-08-08  Geoffrey Keating  
8042
 
8043
        * parse.y (mark_parser_ctxt): Delete.
8044
        (goal): Don't use ggc_add_root.
8045
        (create_new_parser_context): Use GC to allocate struct parser_ctxt.
8046
        (java_pop_parser_context): Let GC free parser_ctxt.
8047
        (java_parser_context_resume): Likewise.
8048
        * parse.h (struct parser_ctxt): Use gengtype to mark.
8049
        (ctxp): Likewise.
8050
        (ctxp_for_generation): Likewise.
8051
        * lex.h (struct java_lc_s): Mark for gengtype.
8052
        (java_lexer): Rearrange for gengtype.
8053
        * config-lang.in (gtfiles): Add lex.h, parse.h.
8054
 
8055
2003-01-09  Kaveh R. Ghazi  
8056
 
8057
        * All Files: Remove PARAMS macro.
8058
 
8059
        * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
8060
        jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
8061
        `__STDC__' macros.
8062
 
8063
        * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
8064
        VA_CLOSE.
8065
 
8066
2003-01-09  Christian Cornelssen  
8067
 
8068
        * Make-lang.in (java.install-common, java.uninstall,
8069
        java.install-info, java.install-man): Prepend $(DESTDIR)
8070
        to destination paths in all (un)installation commands.
8071
        (java.install-common): Rewrite $(LN) command to support
8072
        DESTDIR with "ln" as well as with "ln -s".
8073
 
8074
2003-01-08  Nathanael Nerode  
8075
 
8076
        * java-tree.h: Protect against multiple inclusion.
8077
 
8078
2003-01-07  Tom Tromey  
8079
 
8080
        * class.c (add_assume_compiled): Don't adjust parent if we're
8081
        already at the root of tree.
8082
 
8083
2003-01-05  Kaveh R. Ghazi  
8084
 
8085
        * lang.c (dump_compound_expr): Prototype.
8086
 
8087
2003-01-03  Tom Tromey  
8088
 
8089
        Fix for PR java/8712:
8090
        * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
8091
        when simply checking against `null'.
8092
 
8093
2003-01-03  Tom Tromey  
8094
 
8095
        * gcj.texi (Standard Properties): Document http.proxyHost and
8096
        http.proxyPort.
8097
 
8098
        * gcj.texi (GNU Classpath Properties): Document new properties.
8099
 
8100
2003-01-02  Steven Bosscher 
8101
 
8102
        * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
8103
        java/lang-options.h, java/mangle.c, java/mangle_name.c,
8104
        java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
8105
 
8106
2003-01-01  Steven Bosscher  
8107
 
8108
        * Make-lang.in, boehm.c, buffer.c,
8109
          buffer.h, builtins.c, class.c,
8110
          config-lang.in, constants.c,
8111
          convert.h, decl.c, except.c,
8112
          expr.c, java-except.h,
8113
          java-tree.h, javaop.def,
8114
          jcf-parse.c, jcf-write.c,
8115
          jv-scan.c, jvgenmain.c,
8116
          jvspec.c, keyword.gperf,
8117
          keyword.h, lang-options.h,
8118
          lang-specs.h, lang.c, lex.c,
8119
          lex.h, mangle.c, mangle_name.c,
8120
          parse-scan.y, parse.h, parse.y,
8121
          typeck.c, verify.c, xref.c,
8122
          xref.h: Replace "GNU CC" with
8123
          "GCC" in the copyright header.
8124
 
8125
        * check-init.c, gjavah.c, javaop.h,
8126
          jcf-depend.c, jcf-dump.c, jcf-io.c,
8127
          jcf-path.c, jcf-reader.c, jcf.h,
8128
          zextract.c, zipfile.h: These files are
8129
          "part of GCC". Also say "GCC" not "GNU CC".
8130
 
8131
2002-12-30  DJ Delorie  
8132
 
8133
        * Make-lang.in: Protect against texi2pod/pod2man failing.
8134
 
8135
2002-12-28  Joseph S. Myers  
8136
 
8137
        * gcj.texi: Use @copying.
8138
 
8139
2002-12-27  Mark Mitchell  
8140
 
8141
        * gjavah.c (print_name_for_stub_or_jni): Adjust call to
8142
        print_cxx_classname.
8143
        (print_cxx_classname): Add add_scope parameter.
8144
        (print_class_decls): Do not emit a semicolon after the extern
8145
        "Java" block.
8146
        (process_file): Adjust calls to print_cxx_classname.
8147
 
8148
2002-12-23  Joseph S. Myers  
8149
 
8150
        * gcj.texi: Include Cover Texts in man page.
8151
 
8152
2002-12-23  Jeff Sturm  
8153
 
8154
        * class.c (build_static_field_ref): Check FIELD_FINAL.
8155
 
8156
        * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
8157
        instead of current_constant_pool_data_ref.
8158
        * java-tree.h (current_constant_pool_data_ref): Undefine.
8159
        (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
8160
        * jcf-parse.c (init_outgoing_cpool): Don't initialize
8161
        current_constant_pool_data_ref.
8162
 
8163
        * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
8164
        not build_internal_class_name.
8165
 
8166
        * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
8167
        Use it when class ref isn't certain to be compiled.
8168
 
8169
2002-12-23  Joseph S. Myers  
8170
 
8171
        * gcj.texi: Include gcc-common.texi.
8172
        * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
8173
        $(srcdir)/doc/include/gcc-common.texi.
8174
 
8175
2002-12-22  Anthony Green  
8176
 
8177
        * gcj.texi (Limitations): Add note about org.xml.sax and
8178
        org.w3c.dom.
8179
 
8180
2002-12-20  Tom Tromey  
8181
 
8182
        * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
8183
        where minimum case value is Integer.MIN_VALUE.
8184
        Fixes PR java/8955.
8185
 
8186
2002-12-18  Andrew Haley  
8187
 
8188
        * parse.y (patch_invoke): Force evaluation order when `check' is
8189
        set.  For PR libgcj/8945.
8190
 
8191
2002-12-16  Mark Mitchell  
8192
 
8193
        * gcj.texi: Change version number to 3.4.
8194
 
8195
2002-12-05  Ranjit Mathew 
8196
        Andrew Haley 
8197
 
8198
        * parse.y (source_end_java_method): Remove custom encoding of line
8199
        numbers for a function decl before passing it to the back end.
8200
 
8201
2002-12-03  Andrew Haley  
8202
 
8203
        * class.c (make_class_data): New field, "chain".
8204
        * decl.c (java_init_decl_processing): Likewise.
8205
 
8206
2002-12-02  Tom Tromey  
8207
 
8208
        For PR java/8740:
8209
        * parse.y (do_resolve_class): Handle qualified name via
8210
        recursion.
8211
 
8212
2002-11-30  Zack Weinberg  
8213
 
8214
        * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
8215
        constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
8216
        jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
8217
        jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
8218
        parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
8219
        Include coretypes.h and tm.h.
8220
        * Make-lang.in: Update dependencies.
8221
 
8222
2002-11-27  Kaveh R. Ghazi  
8223
 
8224
        * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
8225
 
8226
2002-11-25  Diego Novillo  
8227
 
8228
        * jcf-reader.c: Don't expand JCF_readu4 inside the
8229
        expansion of JCF_SKIP.
8230
 
8231
2002-11-25  Diego Novillo  
8232
 
8233
        * jcf-reader.c: Don't expand JCF_readu4 inside the
8234
        expansion of JCF_SKIP.
8235
 
8236
2002-11-22  Tom Tromey  
8237
 
8238
        * parse.y (patch_binop): Cast right hand side of shift expression
8239
        to `int'.  Fixes PR java/8676.
8240
 
8241
2002-11-22  Ranjit Mathew 
8242
            Andrew Haley 
8243
 
8244
        * gcc/java/jcf-write.c (write_classfile): Remove target
8245
        class file, if it exists, before renaming the temporary
8246
        class file to it.
8247
 
8248
2002-11-19  Jason Thorpe  
8249
 
8250
        * jvspec.c (lang_specific_spec_functions): New.
8251
 
8252
2002-11-18  Tom Tromey  
8253
 
8254
        Fix for PR java/7912:
8255
        * expr.c (can_widen_reference_to): Allow cast of array to
8256
        Cloneable or Serializable.
8257
        * java-tree.h (java_lang_cloneable_identifier_node): Declare.
8258
        (java_io_serializable_identifier_node): Likewise.
8259
        * parse.y (java_lang_cloneable, java_io_serializable): Removed.
8260
        (valid_ref_assignconv_cast_p): Use new identifier nodes.
8261
        * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
8262
        java_io_serializable.
8263
        * decl.c (java_init_decl_processing): Initialize
8264
        java_lang_cloneable_identifier_node and
8265
        java_io_serializable_identifier_node.
8266
        (java_lang_cloneable_identifier_node): New global.
8267
        (java_io_serializable_identifier_node): Likewise.
8268
 
8269
2002-11-14  Jens-Michael Hoffmann  
8270
 
8271
        * buffer.c: Remove unnecessary casts.
8272
        * check-init.c: Likewise.
8273
        * class.c: Likewise.
8274
        * constants.c: Likewise.
8275
        * decl.c: Likewise.
8276
        * except.c: Likewise.
8277
        * gjavah.c: Likewise.
8278
        * jcf-io.c: Likewise.
8279
        * jcf-parse.c: Likewise.
8280
        * jcf-path.c: Likewise.
8281
        * jvspec.c: Likewise.
8282
        * lang.c: Likewise.
8283
        * lex.c: Likewise.
8284
        * verify.c: Likewise.
8285
 
8286
2002-11-06  Tom Tromey  
8287
 
8288
        * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
8289
        a JNI header.
8290
 
8291
2002-11-05  Tom Tromey  
8292
 
8293
        Fix for PR java/6388.
8294
        * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
8295
        * java-tree.h (enum java_tree_index): New values
8296
        JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
8297
        (decimal_int_max, decimal_long_max): New defines.
8298
        * lex.c (yylex): Rewrote range checking.  Sign extend literals.
8299
        (error_if_numeric_overflow): Rewrote range checking.
8300
        * decl.c (java_init_decl_processing): Initialize decimal_int_max,
8301
        decimal_long_max.
8302
 
8303
2002-11-02  Tom Tromey  
8304
 
8305
        * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
8306
 
8307
        * class.c (make_method_value): Put class name, not signature, into
8308
        `throws' field.  For PR java/8415.
8309
 
8310
2002-10-24  Tom Tromey  
8311
 
8312
        * gcj.texi (Invoking gij): Document --showversion.
8313
        (Standard Properties): java.library.path now set.
8314
 
8315
2002-10-23  Tom Tromey  
8316
 
8317
        * gjavah.c (decode_signature_piece): In JNI mode, print
8318
        `jobjectArray' when array depth is nonzero.
8319
        Fixes PR java/8296.
8320
 
8321
2002-10-15  Andrew Haley  
8322
 
8323
        * parse.y (patch_invoke): Call force_evaluation_order on a static
8324
        arg list.
8325
        (resolve_qualified_expression_name): Call force_evaluation_order
8326
        on a arg list that is part of a Qualified Expression Name.
8327
 
8328
        * lang.c (dump_compound_expr): New.
8329
        (java_dump_tree): New.
8330
 
8331
2002-10-20  Ranjit Mathew 
8332
 
8333
        * gcj.texi: Added item describing the GCJ runtime property
8334
        "gnu.gcj.progname".
8335
 
8336
2002-10-15  Richard Henderson  
8337
 
8338
        * jcf-parse.c (get_constant): Fix type warning.
8339
 
8340
2002-10-15  Andrew Haley  
8341
 
8342
        * java-tree.h (java_inlining_merge_static_initializers): Declare.
8343
        (java_inlining_map_static_initializers): Declare.
8344
 
8345
2002-10-14  Andrew Haley  
8346
 
8347
        * tree-inline.c (remap_block): All local class initialization
8348
        flags go in the outermost scope.
8349
        (expand_call_inline): Call java_inlining_map_static_initializers.
8350
        (expand_call_inline): Call java_inlining_merge_static_initializers.
8351
        * java/lang.c (merge_init_test_initialization): New.
8352
        (java_inlining_merge_static_initializers): New.
8353
        (inline_init_test_initialization): New.
8354
        (java_inlining_map_static_initializers): New.
8355
 
8356
2002-10-11  Mark Wielaard  
8357
 
8358
        * gcj.texi (Compatibility): Add Limitations and Extensions section.
8359
 
8360
2002-10-10  Kaveh R. Ghazi  
8361
 
8362
        * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
8363
 
8364
2002-10-09  Kaveh R. Ghazi  
8365
 
8366
        * parse.y (merge_string_cste): Add parentheses around & within |.
8367
 
8368
2002-10-08  Tom Tromey  
8369
 
8370
        * parse.y (variable_declarator_id): Simplify error path for
8371
        array declarator error.  For PR java/8003.
8372
 
8373
2002-10-08  Zack Weinberg  
8374
 
8375
        * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
8376
        bug_report_url.
8377
 
8378
2002-10-08  Andrew Haley  
8379
 
8380
        * parse.y (attach_init_test_initialization_flags): Check for
8381
        error_mark_node.
8382
 
8383
2002-10-07  Anthony Green  
8384
 
8385
        * parse.y (merge_string_cste): Fix bug in string concatenation.
8386
 
8387
2002-10-03  Michael Koch  
8388
 
8389
        * gcj.texi (Standard properties):
8390
        Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
8391
 
8392
2002-10-02  Roger Sayle  
8393
 
8394
        PR optimization/6627
8395
        * lang.c (java_init): If storing the vbit in function
8396
        pointers, ensure that force_align_functions_log is atleast
8397
        one to aid compatability with g++ vtables.
8398
 
8399
2002-10-01  Nathan Sidwell  
8400
 
8401
        * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
8402
        foul of type-based aliasing.
8403
 
8404
2002-09-30  Anthony Green  
8405
 
8406
        * gcj.texi (Invoking jv-scan): Fix texinfo.
8407
 
8408
2002-09-28  Anthony Green  
8409
 
8410
        * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
8411
        (Code Generation): Add -fno-assert documentation.
8412
        * jv-scan.c (flag_assert): New global.
8413
        (options): Add assert option.
8414
        (help): Add --no-assert documentation.
8415
        * parse-scan.y (flag_assert): New global.
8416
        * lang.c (lang_f_options): Add -fassert/-fno-assert support.
8417
        (flag_assert): New global.
8418
        * java-tree.h (flag_assert): New global.
8419
        * lex.c (java_lex): Obey flag_assert.
8420
        * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
8421
        calling cc1.
8422
 
8423
2002-09-26  Andrew Haley  
8424
 
8425
        * expr.c (build_java_array_length_access): Check for null pointer.
8426
        * expr.c (expand_java_arrayload): Likewise.
8427
 
8428
2002-09-21  Richard Henderson  
8429
 
8430
        * jcf-parse.c (get_constant): Decode from IEEE no matter
8431
        what the target format.
8432
 
8433
2002-09-20  Kazu Hirata  
8434
 
8435
        * ChangeLog: Follow spelling conventions.
8436
        * class.c: Likewise.
8437
        * decl.c: Likewise.
8438
        * expr.c: Likewise.
8439
        * gjavah.c: Likewise.
8440
        * java-tree.h: Likewise.
8441
        * jcf-dump.c: Likewise.
8442
        * jcf-parse.c: Likewise.
8443
        * jvspec.c: Likewise.
8444
        * lang.c: Likewise.
8445
        * mangle.c: Likewise.
8446
        * parse.y: Likewise.
8447
 
8448
2002-09-17  Tom Tromey  
8449
 
8450
        * lex.c (java_read_unicode_collapsing_terminators): Handle case
8451
        where \r appears at EOF.  Fixes PR java/7950.
8452
 
8453
2002-09-16  Volker Reichelt  
8454
 
8455
        * jvspec.c (lang_specific_driver): Remove unused variable.
8456
 
8457
2002-09-16  Geoffrey Keating  
8458
 
8459
        * java-tree.h (union lang_tree_node): Add chain_next option.
8460
 
8461
2002-09-16  Richard Henderson  
8462
 
8463
        * jcf-parse.c (get_constant): Runtime check for IEEE format;
8464
        use new real.h interface.
8465
        * jcf-write.c (find_constant_index): Use new real.h interface.
8466
        * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
8467
 
8468
2002-09-15  Kazu Hirata  
8469
 
8470
        * lang.c: Follow spelling conventions.
8471
 
8472
2002-09-11  Per Bothner  
8473
 
8474
        * parse.y (fold_constant_for_init):  If a VAR_DECL, convert numerical
8475
        constant to the type of the field.
8476
        (java_complete_tree):  Remove now-redundant code.
8477
 
8478
        * parse.y (fold_constant_for_init):  'null' is not a constant expr.
8479
 
8480
2002-09-03  Jesse Rosenstock  
8481
 
8482
        For PR java/5794:
8483
        * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
8484
        return label if a ret instruction for the jsr has been reached.
8485
 
8486
2002-09-09  Ranjit Mathew  
8487
 
8488
        * parse.y (DIR_SEPARATOR): Don't define.
8489
        (check_class_interface_creation): Use IS_DIR_SEPARATOR.
8490
 
8491
2002-08-28  Andrew Haley  
8492
 
8493
        * verify.c (verify_jvm_instructions): Allow exception handler
8494
        inside code that is being protected, but generate a warning.
8495
        * except.c (link_handler): Initialize `expanded' in new eh_range.
8496
        (binding_depth, is_class_level, current_pc): Declare extern.
8497
 
8498
2002-09-01  Mark Wielaard 
8499
 
8500
        * gcj.texi: Add chapter about system properties.
8501
        Fixed some typos.
8502
 
8503
2002-08-26  Tom Tromey  
8504
 
8505
        * parse.y (try_builtin_assignconv): Allow narrowing primitive
8506
        conversion if RHS_TYPE is byte, short, or char.
8507
 
8508
2002-08-22  Tom Tromey  
8509
 
8510
        * gcj.texi (Invoking gij): Document -cp and -classpath.
8511
 
8512
2002-08-21  Tom Tromey  
8513
 
8514
        * Make-lang.in (java/jcf-path.o): Use $(datadir), not
8515
        $(prefix)/share.  For PR libgcj/7633.
8516
 
8517
        For PR java/6005 and PR java/7611:
8518
        * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
8519
        (java_can_use_bit_fields_p): New function.
8520
 
8521
2002-08-16  Tom Tromey  
8522
 
8523
        * gcj.texi (Class Initialization): Mention class initialization of
8524
        arrays.
8525
 
8526
2002-07-30  Andrew Haley  
8527
 
8528
        * Make-lang.in (java-tree-inline.o): New.
8529
        (JAVA_OBJS): Add java-tree-inline.o.
8530
        * parse.y (source_end_java_method): Call java_optimize_inline.
8531
        (java_expand_method_bodies): Save method's tree in
8532
        DECL_SAVED_TREE.
8533
        (add_stmt_to_compound): Keep track of the number of statments.
8534
        * lang.c (java_init): Enable flag_inline_trees.
8535
        (java_post_options): If flag_inline_functions is on, enable
8536
        flag_inline_trees instread.
8537
        (decl_constant_value): New.
8538
        (java_tree_inlining_walk_subtrees): New.
8539
        * java-tree.h (DECL_NUM_STMTS): New macro.
8540
        (java_optimize_inline): Declare.
8541
        * expr.c (java_expand_expr): Allow a BLOCK to return a value.
8542
        Handle a LABEL_EXPR.
8543
        * decl.c (build_result_decl): If we already have a DECL_RESULT
8544
        don't make another.
8545
        (dump_function): New.
8546
        (java_optimize_inline): New.
8547
        (dump_function): New.
8548
 
8549
2002-08-13  Jesse Rosenstock  
8550
 
8551
        For PR java/7483:
8552
        * parse.y (build_assertion): Invert return from
8553
        desiredAssertionStatus.
8554
 
8555
2002-08-08  Bryce McKinlay  
8556
 
8557
        * jcf-write.c (get_access_flags): Return correct access flags for
8558
        private and protected inner classes.
8559
 
8560
2002-08-08  Nathan Sidwell  
8561
 
8562
        * java/Make-lang.in (java.mostlyclean): Remove coverage files.
8563
 
8564
2002-08-05  Geoffrey Keating  
8565
 
8566
        * mangle_name.c: Don't include obstack.h twice.
8567
        * xref.c: Don't include obstack.h.
8568
 
8569
2002-08-04  Geoffrey Keating  
8570
 
8571
        * class.c: (permanent_obstack): Delete declaration.
8572
        * constants.c: (permanent_obstack): Delete declaration.
8573
        * except.c: (permanent_obstack): Delete declaration.
8574
        * expr.c: (permanent_obstack): Delete declaration.
8575
        * jcf-parse.c: (permanent_obstack): Delete declaration.
8576
        (saveable_obstack): Delete declaration.
8577
        * parse.h: (permanent_obstack): Delete declaration.
8578
        * typeck.c: (permanent_obstack): Delete declaration.
8579
 
8580
2002-08-04  Joseph S. Myers  
8581
 
8582
        * gcj.texi (version-gcc): Increase to 3.3.
8583
 
8584
2002-07-22  Tom Tromey  
8585
 
8586
        * lex.c (java_lex): Check for `e' or `E' after 0.
8587
 
8588
2002-07-21  Richard Henderson  
8589
 
8590
        * lang.c (java_unsafe_for_reeval): New.
8591
        (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
8592
 
8593
2002-07-21  Neil Booth  
8594
 
8595
        * jcf-path.c (GET_ENV_PATH_LIST): Remove.
8596
        (jcf_path_init): Use GET_ENVIRONMENT.
8597
 
8598
2002-07-10  Roger Sayle  
8599
            Zack Weinberg 
8600
 
8601
        * builtins.c (initialize_builtins): Remove defines that
8602
        handled C/C++ specific junk hereby removed from builtins.def.
8603
 
8604
2002-07-07  Neil Booth  
8605
 
8606
        * lang.c (java_post_options): Update prototype.
8607
 
8608
2002-07-05  Roger Sayle  
8609
 
8610
        * builtins.c (initialize_builtins): Ignore the additional
8611
        parameter to DEF_BUILTIN.  Handle more C/C++ specific junk in
8612
        the builtins.def file.
8613
 
8614
2002-07-01  Tom Tromey  
8615
 
8616
        For PR libgcj/7073:
8617
        * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
8618
        specially.
8619
 
8620
2002-07-01  Roger Sayle  
8621
 
8622
        * java/decl.c (builtin_function): Accept additional parameter.
8623
        (java_init_decl_processing): Pass an additional NULL_TREE
8624
        argument to builtin_function.
8625
 
8626
2002-06-29  T.J. Mather  
8627
 
8628
        * gcj.texi: Fixed gcj invocation example so that it compiles.
8629
 
8630
2002-06-26  Kaveh R. Ghazi  
8631
 
8632
        * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
8633
        * parse.y (mark_parser_ctxt): Likewise.
8634
        (check_modifiers, declare_local_variables): Avoid incorrect
8635
        hardcoded constant 10.
8636
 
8637
        * lex.c (java_read_char): Avoid "comparison is always true"
8638
        warning.
8639
 
8640
2002-06-25  Andreas Schwab  
8641
 
8642
        * expr.c (JSR): Avoid undefined operation on PC.
8643
 
8644
2002-06-21  Kaveh R. Ghazi  
8645
 
8646
        * decl.c (clear_binding_level): Const-ify.
8647
 
8648
2002-06-13  Akim Demaille  
8649
 
8650
        * parse.y (class_declaration, interface_declaration): Make sure
8651
        all their rules have an action, in order to avoid meaningless `$$
8652
        = $1' and their type clashes.
8653
 
8654
2002-06-11  Tom Tromey  
8655
 
8656
        * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
8657
        * parse-scan.y (statement_without_trailing_substatement): Added
8658
        assert_statement.
8659
        (assert_statement): New rule.
8660
        * java-tree.h (struct lang_type) [assertions]: New field.
8661
        (TYPE_USES_ASSERTIONS): New macro.
8662
        (CLASS_USES_ASSERTIONS): Likewise.
8663
        (FIELD_SYNTHETIC): New define.
8664
        * lex.c (java_lval;): Added ASSERT_TK.
8665
        * parse.y (ASSERT_TK): Added.
8666
        (statement_without_trailing_substatement): Added assert_statement.
8667
        (assert_statement): New rule.
8668
        (build_assertion): New function.
8669
        (maybe_generate_pre_expand_clinit): Create and initialize
8670
        $assertionsDisabled.
8671
        (lookup_package_type): Removed decl.
8672
        * keyword.h: Rebuilt.
8673
        * keyword.gperf (assert): New token.
8674
 
8675
2002-06-10  Akim Demaille  
8676
 
8677
        * parse.y (interface_type_list, class_member_declaration)
8678
        (unary_expression_not_plus_minus): Remove duplicate %type.
8679
        Whitespace changes.
8680
 
8681
2002-06-09  Tom Tromey  
8682
 
8683
        * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
8684
 
8685
        * parse.y (method_header): Give error message in all cases.
8686
        Fixes PR java/6865.
8687
 
8688
2002-06-10  Bryce McKinlay  
8689
 
8690
        Don't use RTL inlining. Fix for PR java/6820.
8691
        * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
8692
        (flag_really_inline): New.
8693
        (java_decode_option): Set flag_really_inline if -finline-functions
8694
        is seen.
8695
        (java_post_options): New function. Turn off inlining unless
8696
        flag_really_inline is set.
8697
 
8698
2002-06-10  Bryce McKinlay  
8699
 
8700
        * gjavah.c (throwable_p): Accept argument as either a classname or
8701
        signature fragment. Create null-terminated classname string for super
8702
        when calling itself recursively.
8703
        (decode_signature_piece): Skip first character from class name
8704
        signature when calling throwable_p.
8705
 
8706
2002-06-08  H.J. Lu  (hjl@gnu.org)
8707
 
8708
        * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
8709
 
8710
2002-06-04  Tom Tromey  
8711
 
8712
        * jcf-write.c (perform_relocations): Optmize a goto to a goto.
8713
 
8714
2002-06-04  Michael Koch  
8715
 
8716
        * gcj.texi (Input Options): Fixed typo.
8717
 
8718
2002-06-04  Zack Weinberg  
8719
 
8720
        * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
8721
        typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
8722
        all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
8723
        and all now-pointless local variables.  Rename other local
8724
        variables to reflect their not being handles.
8725
 
8726
        * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
8727
        #if JCF_USE_STDIO blocks.
8728
 
8729
        * parse.y: Add missing semicolon at end of rule.
8730
 
8731
2002-06-03  Geoffrey Keating  
8732
 
8733
        * check-init.c (attach_initialized_static_class): Delete, unused.
8734
        * parse.y: Use htab_t instead of struct hashtable, update
8735
        all uses.
8736
        * java-tree.h: Include hashtab.h instead of hash.h.
8737
        (struct lang_decl_func): Use htab_t, set up for gengtype.
8738
        (struct init_test_hash_entry): Delete.
8739
        (struct treetreehash_entry): New.
8740
        (java_treetreehash_find): New
8741
        (java_treetreehash_new): New prototype.
8742
        (java_treetreehash_create): New prototype.
8743
        (java_mark_tree): Delete prototype.
8744
        (java_hash_hash_tree_node): Delete prototype.
8745
        (java_hash_compare_tree_node): Delete prototype.
8746
        (attach_initialized_static_class): Delete prototype.
8747
        * expr.c (build_class_init): Update to use java_treetreehash
8748
        functions.
8749
        (java_expand_expr): Update to use htab_t.
8750
        (emit_init_test_initialization): Likewise.
8751
        * decl.c (java_mark_tree): Delete.
8752
        * class.c (init_test_hash_newfunc): Delete.
8753
        (java_hash_hash_tree_node): Delete.
8754
        (java_hash_compare_tree_node): Delete.
8755
        (add_method_1): Update to use java_treetreehash functions.
8756
        (JAVA_TREEHASHHASH_H): New macro.
8757
        (java_treetreehash_hash): New function.
8758
        (java_treetreehash_compare): New function.
8759
        (java_treetreehash_find): New function.
8760
        (java_treetreehash_new): New function.
8761
        (java_treetreehash_create): New function.
8762
        * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
8763
 
8764
        * Make-lang.in (java/parse.o): Depend on debug.h.
8765
        * java-tree.h (struct lang_identifier): Use gengtype.
8766
        (union lang_tree_node): New.
8767
        (struct lang_decl_func): Use gengtype.
8768
        (struct lang_decl_var): Likewise.
8769
        (struct lang_decl): Likewise.
8770
        * parse.y: Include debug.h.
8771
        * lang.c (LANG_HOOKS_MARK_TREE): Delete.
8772
 
8773
        * lang.c (struct language_function): New dummy structure.
8774
 
8775
        * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
8776
        descriminator for DECL_LANG_SPECIFIC.
8777
        (struct lang_decl_func): Rename from struct lang_decl.
8778
        (enum lang_decl_desc): New.
8779
        (struct lang_decl): Make it a union.  Update all the accessor macros.
8780
        (struct lang_type): Use gengtype.
8781
        * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
8782
        * decl.c (java_dup_lang_specific_decl): All lang_decl structures
8783
        are now the same size.
8784
        (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
8785
        use discriminator to mark DECL_LANG_SPECIFIC.
8786
 
8787
        * Make-lang.in (gt-java-builtins.h): New rule.
8788
        (java/builtins.o): Add dependency on gt-.h.
8789
        * builtins.c: Use gengtype for roots.
8790
        (union string_or_tree): Use gengtype.
8791
        (struct builtin_record): Use gengtype.
8792
        * config-lang.in (gtfiles): Add builtins.c.
8793
 
8794
        * Make-lang.in (gt-java-class.h, gt-java-constants.h,
8795
        gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
8796
        gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
8797
        gt-java-parse.h, gtype-java.h): Add rules to generate.
8798
        (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
8799
        (class.o): Add dependency on gt-*.h.
8800
        (constants.o): Likewise.
8801
        (decl.o): Likewise.
8802
        (expr.o): Likewise.
8803
        (jcf-parse.o): Likewise.
8804
        (jcf-write.o): Likewise.
8805
        (lang.o): Likewise.
8806
        * config-lang.in (gtfiles): New.
8807
        * class.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8808
        * constants.c: Replace uses of ggc_add_* with GTY markers.
8809
        Include gt-*.h.
8810
        * decl.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8811
        * expr.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8812
        * java-tree.h: Replace uses of ggc_add_* with GTY markers.
8813
        * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
8814
        Include gt-*.h.
8815
        * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
8816
        Include gt-*.h.
8817
        * lang.c: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8818
        * mangle.c: Replace uses of ggc_add_* with GTY markers.  Include
8819
        gt-*.h.
8820
        * parse.y: Replace uses of ggc_add_* with GTY markers.  Include gt-*.h.
8821
        Include gtype-java.h.
8822
 
8823
2002-06-02  Tom Tromey  
8824
 
8825
        Fix for PR java/5913:
8826
        * parse.y (patch_binop): Call patch_string on op1.
8827
 
8828
2002-06-02  Tom Tromey  
8829
 
8830
        Fix for PR java/1343, PR java/6336:
8831
        * parse.y (make_nested_class_name): Remove extraneous `else'; fix
8832
        formatting.  Changed return type.
8833
        (anonymous_class_counter): Moved to top of file.
8834
        (maybe_make_nested_class_name): Append number to class name for
8835
        function-local classes.
8836
 
8837
2002-05-28  Zack Weinberg  
8838
 
8839
        * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
8840
        * Make-lang.in: Update dependency lists.
8841
 
8842
2002-05-18  Mark Mitchell  
8843
 
8844
        * gjavah.c (throwable_p): Do not free the name of the class after
8845
        passing it to find_class.
8846
        * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
8847
        * jcf-io.c (dirent.h): Include it.
8848
        (fnmatch.h): Likewise.
8849
        (compare_path): New function.
8850
        (java_or_class_file): Likewise.
8851
        (memoized_dirlist_entry): New type.
8852
        (memoized_dirlist_lookup_eq): New function.
8853
        (memoized_dirlists): New variable.
8854
        (caching_stat): New function.
8855
        (memoized_class_lookup_eq): New function.
8856
        (memoized_class_lookups): Likewise.
8857
        (find_class): Use memoized_class_lookups and caching_stat.
8858
        * jcf.h (JCF_USE_SCANDIR): Define.
8859
        * parse.y (java_expand_classes): Write the class files in reverse
8860
        order.
8861
 
8862
2002-05-16  Rainer Orth  
8863
 
8864
        * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
8865
 
8866
2002-05-13  Mark Mitchell  
8867
 
8868
        * jcf-write.c (write_classfile): Unlink the temporary file if it
8869
        cannot be renamed.  Use concat to build up the name of the
8870
        temporary file.
8871
 
8872
2002-05-08  Mark Mitchell  
8873
 
8874
        * jcf-write.c (write_classfile): Write the file to a
8875
        temporary file and then rename it.
8876
 
8877
2002-05-07  Tom Tromey  
8878
 
8879
        * gjavah.c (throwable_p): Use xstrdup, not strdup.
8880
 
8881
        Fix for PR java/1200:
8882
        * gjavah.c (throwable_p): New function.
8883
        (decode_signature_piece): Use it.  A `WeakReference' isn't the
8884
        same as a `jweak'.
8885
        Include hashtab.h.
8886
        (gcjh_streq): New function.
8887
 
8888
2002-05-07  Andreas Jaeger  
8889
 
8890
        * parse.y (finish_for_loop): Fix if statement.
8891
 
8892
2002-05-06  Tom Tromey  
8893
 
8894
        Fix for PR java/5941:
8895
        * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
8896
        loop update expression.
8897
        (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
8898
        * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
8899
 
8900
2002-05-04  Mark Wielaard  
8901
 
8902
        For PR java/6519:
8903
        * parse.y (build_string_concatenation): Return just op1 only when op2
8904
        is null and op1 is a STRING_CST, otherwise always construct a
8905
        StringBuffer.
8906
 
8907
2002-04-27  Tom Tromey  
8908
 
8909
        For PR java/6382:
8910
        * parse.y (string_convert_int_cst): New function.
8911
        (merge_string_cste): Use it.
8912
 
8913
2002-04-25  Neil Booth  
8914
 
8915
        * java-tree.h (java_parse_file): Update.
8916
        (java_set_yydebug): Remove.
8917
        * jcf-parse.c (yydebug): Remove.
8918
        (java_set_yydebug): Die.
8919
        (java_parse_file): Update.
8920
        * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8921
 
8922
2002-04-24  Tom Tromey  
8923
 
8924
        For PR java/6425:
8925
        * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
8926
        EXPR_WFL_QUALIFICATION of qual_wfl.
8927
 
8928
2002-04-23  Per Bothner  
8929
 
8930
        * expr.c (PRE_JSR):  Call NOTE_LABEL for return address.
8931
        * java-tree.h (BCODE_RETURN_TARGET):  Removed - never set.
8932
        (BCODE_TARGET):  Remove BCODE_RETURN_TARGET.
8933
 
8934
2002-04-23  Tom Tromey  
8935
 
8936
        For PR java/6314:
8937
        * jvspec.c (lang_specific_driver): Use --resource, not -R.  Also
8938
        recognize `-fcompile-resource='.
8939
        * gcj.texi (Invoking gcj): Use --resource, not -R.  Expanded text
8940
        a bit.
8941
 
8942
2002-04-22  Alexandre Petit-Bianco  
8943
 
8944
        * jcf-parse.c: (yyparse): Don't prepend "./" to relative
8945
        paths. Fixes PR java/2791.
8946
 
8947
2002-04-19  Andrew Haley  
8948
 
8949
        * jcf-write.c (push_long_const): lo, hi: New variables.
8950
        Use rshift_double to extract the high part of a 64-bit long.
8951
        Use WORD_TO_INT to extract the low part.
8952
 
8953
        * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
8954
        HOST_WIDE_INT for num.  Use JPOOL_UINT to get it.
8955
        CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
8956
 
8957
2002-04-18  Neil Booth  
8958
 
8959
        * typeck.c (incomplete_type_error): Remove.
8960
 
8961
2002-04-18  Bryce McKinlay  
8962
 
8963
        * class.c (make_class_data): Set DECL_ALIGN on static class data,
8964
        for hash synchronization.
8965
        * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
8966
        * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
8967
        class_type_node.
8968
 
8969
2002-04-16  Mark Wielaard  
8970
 
8971
        * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
8972
        negative zero.
8973
 
8974
2002-04-16  Bryce McKinlay  
8975
 
8976
        Fix for PR java/6294:
8977
        * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
8978
        interfaces.
8979
 
8980
2002-04-15  Bryce McKinlay  
8981
 
8982
        Fix for PR java/6085:
8983
        * parse.y (patch_method_invocation): Always use build_access_to_thisn
8984
        to get enclosing "this" argument for inner-class constructor
8985
        invocation. Pass correct arguments to build_access_to_thisn.
8986
 
8987
2002-04-10  Andreas Jaeger  
8988
 
8989
        * gcj.texi (Input Options): Fix extdirs patch.
8990
 
8991
2002-04-10  Anthony Green  
8992
 
8993
        * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
8994
 
8995
2002-04-09  Anthony Green  
8996
 
8997
        * gcj.texi (Input Options): Add --extdirs documentation.
8998
        * jcf-dump.c (OPT_extdirs): New macro.
8999
        (options): Add extdirs option.
9000
        (help): Describe --extdirs.
9001
        (main): Handle OPT_extdirs.
9002
        * gjavah.c (OPT_extdirs): New macro.
9003
        (options): Add extdirs option.
9004
        (help): Describe --extdirs.
9005
        (main): Handle OPT_extdirs.
9006
        * jcf-path.c (jcf_path_init): Add extdirs support.
9007
        (jcf_path_extdirs_arg): New function.
9008
        (extensions): New variable to hold extensions path entries.
9009
        * jvspec.c: Remove -fextdirs= when compiling main().
9010
        * lang.c (java_decode_option): Handle -fextdirs=.
9011
        * jcf.h (jcf_path_extdirs_arg): Declare new function.
9012
        * Make-lang.in: Compile jcf-path with version info for use in
9013
        identifying the appropriate libgcj.jar.
9014
 
9015
2002-04-08  Tom Tromey  
9016
 
9017
        For PR libgcj/5303:
9018
        * .cvsignore: Added rmic.1 and rmiregistry.1.
9019
        * gcj.texi (Top): Link to new nodes.
9020
        (Invoking rmic): New node.
9021
        (Invoking rmiregistry): Likewise.
9022
        * Make-lang.in (java.generated-manpages): Added rmic.1 and
9023
        rmiregistry.1.
9024
        (java.maintainer-clean): Likewise.
9025
        ($(srcdir)/java/rmic.1): New target.
9026
        ($(srcdir)/java/rmiregistry.1): Likewise.
9027
        (java.install-man): Handle rmic.1 and rmiregistry.1.
9028
 
9029
2002-04-08  Bryce McKinlay  
9030
 
9031
        * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
9032
        Add note about handling uncaught exceptions. Add an exception handler
9033
        to example.
9034
 
9035
2002-04-08  Bryce McKinlay  
9036
 
9037
        * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
9038
        after using it to patch CALL_EXPR.
9039
 
9040
2002-04-08  Bryce McKinlay  
9041
 
9042
        * gcj.texi (Invocation): Document CNI invocation API.
9043
 
9044
2002-04-04  Neil Booth  
9045
 
9046
        * expr.c (truthvalue_conversion): Rename.  Update.
9047
        (expand_compare): Update.
9048
        * java-tree.h (java_truthvalue_conversion): New.
9049
        * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9050
 
9051
2002-04-01  Neil Booth  
9052
 
9053
        * java-tree.h (java_mark_addressable): New.
9054
        * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9055
        * typeck.c (mark_addressable): Rename, update.
9056
 
9057
2002-04-01  Neil Booth  
9058
 
9059
        * expr.c (build_java_binop): Update.
9060
        * java-tree.h (java_signed_type, java_unsigned_type,
9061
        java_signed_or_unsigned_type): Update.
9062
        * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9063
        LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9064
        * parse.y (patch_binop): Update.
9065
        * typeck.c (signed_or_unsigned_type, unsigned_type,
9066
        signed_type): Update.
9067
 
9068
2002-03-31  Neil Booth  
9069
 
9070
        * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
9071
        (java_dummy_print): Remove.
9072
        (lang_print_error): Rename.  Exit early if inhibiting output.
9073
        (inhibit_error_printing_function): New.
9074
        (java_init): Don't set hook.
9075
        (lang_init_source): Use new boolean.
9076
 
9077
2002-03-29  Martin Kahlert  
9078
 
9079
        * parse.y (do_resolve_class): Fix infinite recursion.
9080
 
9081
2002-03-29  Tom Tromey  
9082
 
9083
        * parse.y (check_inner_circular_reference): Ignore incomplete
9084
        types.
9085
 
9086
2002-03-29  Neil Booth  
9087
 
9088
        * Make-lang.in (builtins.o): Update.
9089
        * boehm.c (get_boehm_type_descriptor): Update.
9090
        * builtins.c: Include langhooks.h.
9091
        * decl.c (java_init_decl_processing): Update.
9092
        * java-tree.h (java_type_for_mode, java_type_for_size): New.
9093
        * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
9094
        Redefine.
9095
        * typeck.c (type_for_mode, type_for_size): Update.
9096
 
9097
2002-03-29  Martin Kahlert  
9098
 
9099
        * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
9100
 
9101
2002-03-28  Tom Tromey  
9102
 
9103
        * except.c (expand_end_java_handler): If the handler type is NULL,
9104
        use java.lang.Throwable.  Fixes PR java/5986.
9105
 
9106
2002-03-28  Alexandre Petit-Bianco  
9107
 
9108
        Fix for PR java/4715:
9109
        * jcf-parse.c (parse_source_file_3): New function.
9110
        (read_class): Call it.
9111
        (java_parse_file): Likewise.
9112
 
9113
2002-03-28  Jan Hubicka  
9114
 
9115
        * java/lang.c (java_init_options): Set flag_trapping_math to 0.
9116
 
9117
2002-03-28  Bryce McKinlay  
9118
 
9119
        * parse.y (resolve_package): Initialize "decl".
9120
        (lookup_package_type): Remove unused function.
9121
 
9122
2002-03-28  Bryce McKinlay  
9123
 
9124
        Fix for PR java/5993:
9125
        * parse.y (resolve_package): Return the decl if resolution was
9126
        successful. Don't special case "java.lang" and "java.lang.reflect"
9127
        packages. Set type_name to the merged identifier.
9128
        (resolved_qualified_expression_name): Print error using "name" if
9129
        resolve_package returns NULL_TREE.
9130
 
9131
2002-03-27  Tom Tromey  
9132
 
9133
        * expr.c (expand_invoke): Don't generate null pointer check if
9134
        we're calling .
9135
 
9136
2002-03-27  Neil Booth  
9137
 
9138
        * expr.c (java_lang_expand_expr): Rename java_expand_expr,
9139
        fix prototype.
9140
        * java-tree.h (java_lang_expand_expr): Similarly.
9141
        * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
9142
        (java_init): Don't set hook.
9143
 
9144
2002-03-27  Bryce McKinlay  
9145
 
9146
        Fix for PR java/5850:
9147
        * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
9148
        context if field was not found in the current scope.
9149
        * expr.c (lookup_field): Don't look in enclosing contexts.
9150
 
9151
2002-03-26  Tom Tromey  
9152
 
9153
        Fix for PR java/5942:
9154
        * parse.y (init_src_parse): Added sanity check.
9155
        * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
9156
        elements, not 11.
9157
 
9158
2002-03-26  Neil Booth  
9159
 
9160
        * decl.c (lang_mark_tree): Rename java_mark_tree.
9161
        * java-tree.h (java_mark_tree): New.
9162
        * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
9163
 
9164
2002-03-25  Zack Weinberg  
9165
 
9166
        * lex.c: Change java_perform_atof to take normal parameters
9167
        instead of a pointer to a parameter block.  Call it directly
9168
        from java_lex.
9169
 
9170
2002-03-22  Mark Wielaard  
9171
 
9172
        Fix for PR java/5368:
9173
        * parse.y (resolve_qualified_expression_name): Use decl not field_decl
9174
        when printing error message.
9175
 
9176
2002-03-25  Neil Booth  
9177
 
9178
        * decl.c (maybe_build_cleanup): Remove.
9179
 
9180
2002-03-22  Tom Tromey  
9181
 
9182
        Andrew Haley  
9183
 
9184
        * expr.c (build_field_ref): Don't build a check if the field is a
9185
        member of `this'.
9186
 
9187
2002-03-21  Eric Blake  
9188
 
9189
        Fix for PR java/6026:
9190
        * lex.c (java_lex): Fix parsing of consecutive floats.
9191
 
9192
2002-03-21  Tom Tromey  
9193
 
9194
        * parse.y (build_access_to_thisn): Stop when FROM is not an inner
9195
        class.
9196
 
9197
2002-03-21  Neil Booth  
9198
 
9199
        * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
9200
        insert_block, getdecls, kept_level_p, global_bindings_p): New.
9201
 
9202
2002-03-20  Nic Ferrier  
9203
 
9204
        * gcj.texi: @code{gcj} becomes @command{gcj}.
9205
        @code{gcc} becomes @command{gcc}.
9206
        GcjRaw changed to gnu.gcc.RawData.
9207
 
9208
2002-03-20  Neil Booth  
9209
 
9210
        * decl.c (start_java_method): Use new hook.
9211
        * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
9212
        (java_init): Remove old hook.
9213
 
9214
2002-03-18  Alexandre Petit-Bianco  
9215
 
9216
        * builtins.c (define_builtin): Do nothing if `type' is null.
9217
        Fixes PR java/5876.
9218
 
9219
2002-03-18  Bryce McKinlay  
9220
 
9221
        * parse.y (parser_check_super_interface): Fix error message
9222
        grammar/order.
9223
 
9224
2002-03-17  Kaveh R. Ghazi  
9225
 
9226
        * jcf-parse.c (get_constant): Delete unused variables.
9227
 
9228
2002-03-17  Neil Booth  
9229
 
9230
        * java-tree.h (java_parse_file): New.
9231
        * jcf-parse.c (yyparse): Rename java_parse_file.
9232
        * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
9233
 
9234
2002-03-16  Bryce McKinlay  
9235
 
9236
        * parse.y (craft_constructor): Return the constructor decl.
9237
        (java_expand_classes): Update comments.
9238
        (lookup_method_invoke): Call fix_constructors immediately for
9239
        anonymous class. Fixes PR java/5935.
9240
 
9241
2002-03-15  Anthony Green  
9242
 
9243
        * jcf-parse.c (yyparse): Don't emit class registration
9244
        constructor when compiling resource files.
9245
 
9246
2002-03-12  Kaveh R. Ghazi  
9247
 
9248
        * lang.c (java_tree_code_type, java_tree_code_length,
9249
        tree_code_name): Delete.
9250
        (tree_code_type, tree_code_length, tree_code_name): Define.
9251
        (java_init): Don't try to copy into the various tree_code
9252
        arrays.
9253
 
9254
2002-03-12  Tom Tromey  
9255
 
9256
        * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
9257
        UTF-8, not UCS-2.  Fixes PR java/5923.
9258
 
9259
        * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
9260
        a call_expr wrapped in a convert.  Fixes PR java/5848.
9261
 
9262
2002-03-12  Bryce McKinlay  
9263
 
9264
        * jcf-write.c (write_classfile): Improve error strings.
9265
 
9266
2002-03-11  Eric Blake  
9267
 
9268
        * lex.c: Adjust comments to GNU standards.
9269
 
9270
2002-03-11  Eric Blake  
9271
 
9272
        Fix for PR java/5902:
9273
        * lex.c (java_lex): Fix parsing of literals.
9274
 
9275
2002-03-11  Bryce McKinlay  
9276
 
9277
        * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
9278
        to prevent it getting evaluated twice in the store checking case.
9279
        * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
9280
        examining OBJECT.
9281
 
9282
2002-03-09  Bryce McKinlay  
9283
 
9284
        * decl.c (java_init_decl_processing): Make sure class_type_node
9285
        alignment is not less than 64 bits if hash synchronization is enabled.
9286
 
9287
2002-03-08  Per Bothner  
9288
 
9289
        * parse.y (java_complete_lhs):  Check if patch_assignment
9290
        returned an error-mark.
9291
 
9292
        * parse.y (try_builtin_assignconv):  Don't special-case zero.
9293
 
9294
2002-03-08  Per Bothner  
9295
 
9296
        Fix for PR java/5812.
9297
        * expr.c (build_java_jsr):  Take pc arguments, and do lookup_label
9298
        here instead of in JSR macro.  Likewise with load_type_state call.
9299
        Do the latter on if the return_pc has been verified (the jsr returns).
9300
        (JSR):  Now just call build_java_jsr.
9301
 
9302
2002-03-07  Jeff Sturm  
9303
 
9304
        * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
9305
        (java.install-common): Link native driver to
9306
        JAVA_TARGET_INSTALL_NAME.
9307
 
9308
2002-03-05  David Billinghurst 
9309
 
9310
        * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
9311
        * builtins.c(sin_builtin): Likewise
9312
        * builtins.c(sqrt_builtin): Likewise
9313
 
9314
2002-03-03  Zack Weinberg  
9315
 
9316
        * java/expr.c, java/jcf-parse.c, java/lex.c:
9317
        Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
9318
        REAL_ARITHMETIC blocks unconditional.  Delete some further
9319
        #ifdef blocks predicated on REAL_ARITHMETIC.
9320
 
9321
2002-03-03  Kaveh R. Ghazi  
9322
 
9323
        * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
9324
        explicit sizeof/sizeof.
9325
        * decl.c (java_init_decl_processing): Likewise.
9326
        * jcf-parse.c (init_jcf_parse): Likewise.
9327
        * parse.y (init_src_parse): Likewise.
9328
 
9329
2002-03-02  Per Bothner  
9330
 
9331
        Make --CLASSPATH by a synonym for --classpath and -classpath.
9332
        Implement --bootclasspath.
9333
        * jcf-path.c (classpath_u):  Rename static variable to classpath_user.
9334
        (classpath_l):  Remove.
9335
        (jcf_path_CLASSPATH_arg):  Remove.
9336
        (jcf_path_bootclasspath_arg):  New function.
9337
        (jcf_path_seal):  Simplify accordingly.
9338
 
9339
        * jcf.h (jcf_path_bootclasspath_arg):  New declarations.
9340
        (jcf_path_CLASSPATH):  Remove declaration.
9341
        * jvspec.c (jvgenmain_spec):  Also accept -fbootclasspath*.
9342
        (lang_specific_driver):  Translate -bootclasspath.
9343
        * lang-options.h:  Add --bootclasspath.  Update --CLASSPATH.
9344
        * lang.c (decode_lang_options):  Do jcf_path_init first.
9345
        Handle -fCLASSPATH same as -fclasspath.  Also process -fbootclasspath.
9346
        * gjavah.c:  Also handle --bootclasspath.
9347
        Handle --CLASSPATH as a synonum for --classpath.
9348
        * jcf-dump.c: Likewise.
9349
 
9350
        "." is not part of system path, but is the default for --classpath.
9351
        * jcf-path.c (jcf_path_init):  Don't add "." to sys_dirs.
9352
        (jcf_path_seal):  Add "." if no CLASSPATH specified.
9353
 
9354
        * gcj.texi:  Document changes.
9355
 
9356
2002-03-01  Bryce McKinlay  
9357
 
9358
        * expr.c (build_java_arraystore_check): Fix formatting.
9359
 
9360
2002-02-28  Alexandre Petit-Bianco  
9361
 
9362
        Fix for PR java/5758, java/5632:
9363
        * jcf-parse.c (load_class): Renamed local variable, consider `.' an
9364
        inner-class separator too.
9365
        * parse.y (do_resolve_class): New local `decl_result.'
9366
        Progressively build a name for what can have been loaded.
9367
 
9368
2002-02-28  Bryce McKinlay  
9369
 
9370
        * expr.c (java_array_data_offset): Removed function.
9371
        (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
9372
        (build_java_array_length_access): Obtain "length" value using a
9373
        COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
9374
        (build_java_arrayaccess): Correct comment. Access "data" using a
9375
        COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
9376
        (build_java_arraystore_check): New function.
9377
        (expand_java_arraystore): Use build_java_arraystore_check.
9378
        * parse.y (patch_assignment): Simplify code to insert a store check
9379
        when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
9380
        * check-init.c (check_init): Update to reflect that an array length
9381
        access is now a COMPONENT_REF.
9382
        * gcj.texi (Code Generation): Improve documentation of
9383
        -fno-bounds-check. Add documentation for -fno-store-check.
9384
        * java-tree.h (flag_store_check): Declare.
9385
        (build_java_arraystore_check): Declare.
9386
        * lang.c (flag_store_check): Initialize to 1.
9387
        (lang_f_options): Add store-check option.
9388
        * jvspec.c: Don't pass store-check option to jvgenmain.
9389
        * lang-options.h: Add help string for -fno-store-check.
9390
 
9391
2002-02-28  Neil Booth  
9392
 
9393
        * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
9394
        * java-tree.h (java_dup_lang_specific_decl): New.
9395
        * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9396
 
9397
2002-02-27  Zack Weinberg  
9398
 
9399
        * builtins.c, decl.c: Delete traditional-mode-related code
9400
        copied from the C front end but not used, or used only to
9401
        permit the compiler to link.
9402
 
9403
2002-02-22  Tom Tromey  
9404
 
9405
        Fix for PR java/2369:
9406
        * jvspec.c (verify_class_name): New function.
9407
        (lang_specific_driver): Call it.
9408
        (JAVA_START_CHAR_P): New macro.
9409
        (JAVA_PART_CHAR_P): Likewise.
9410
 
9411
2002-02-22  Per Bothner  
9412
 
9413
        * class.c:  Change vtable to be more compatible with g++ v3 abi.
9414
        (get_dispatch_table):  Prepend offset-to-top (always 0) and
9415
        type_info pointer (currently unimplemented hence NULL) to vtable.
9416
        Specifically, prepend offset-to-top and typeinfo ptr (currently null).
9417
        (make_class_data):  Variable dtable_start_offset is sizeof 2 pointers.
9418
        Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
9419
        (build_dtable_decl):  Add declarations for new fields.
9420
 
9421
2002-02-20  Per Bothner  
9422
 
9423
        * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
9424
        to finit$ (otherwise generate_bytecode_insns drops it). However, we
9425
        don't need to set it on the COMPOUND_EXPR - the caller does that.
9426
 
9427
2002-02-20  Nic Ferrier  
9428
 
9429
        * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
9430
        `--CLASSPATH' becomes `--classpath.'
9431
        * gjavah.c: Likewise.
9432
        * jcf-dump.c: Likewise.
9433
        * lang-options.h: Likewise.
9434
        * lang.c: Likewise.
9435
        * jcf-path.c: Updated comment.
9436
        (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
9437
        (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
9438
        * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
9439
        (jcf_path_CLASSPATH_arg): Ditto.
9440
        (classpath_u): Updated leading comment.
9441
 
9442
2002-02-20  Per Bothner  
9443
 
9444
        * builtins.c (check_for_builtin):  New function.
9445
        (build_call_or_builtin):  Remove.
9446
        * java-tree.h:  Update accordingly.
9447
        * expr.c (expand_invoke):  Use build + check_for_builtin instead
9448
        of build_call_or_builtin.
9449
        * parse.y (patch_invoke):  Likewise.  This avoids needlessly creating
9450
        a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
9451
        flag (which had caused jcf-write to incorrectly emit invokevirtual).
9452
 
9453
2002-02-17  Tom Tromey  
9454
 
9455
        * java-tree.h (TYPE_STRICTFP): New macro.
9456
        (struct lang_type) [strictfp]: New field.
9457
        (CLASS_STRICTFP): New macro.
9458
        (METHOD_STRICTFP): New macro.
9459
        (struct lang_decl) [strictfp]: New field.
9460
        * parse.y (method_header): Disallow strictfp constructor or
9461
        abstract method.
9462
        (STRICT_TK): Move before MODIFIER_TK.
9463
        * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
9464
        (METHOD_MODIFIERS): Likewise.
9465
        (INTERFACE_MODIFIERS): Likewise.
9466
        * jcf-write.c (get_access_flags): Likewise.
9467
        * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
9468
        (add_method_1): Likewise.
9469
        (get_access_flags_from_decl): Likewise.
9470
        * jcf-dump.c (print_access_flags): Print in standard order.  Also,
9471
        recognize strictfp flag.
9472
        * jcf.h (ACC_STRICT): New define.
9473
 
9474
2002-02-12  David Billinghurst 
9475
 
9476
        * class.c(build_utf8_ref): Move declaration of decl_size
9477
 
9478
2002-02-07  Tom Tromey  
9479
 
9480
        * gcj.texi (Input Options): --CLASSPATH does not suppress system
9481
        path.
9482
 
9483
2002-02-04  Anthony Green  
9484
 
9485
        * class.c (build_utf8_ref): Put UTF-8 constants into merged
9486
        sections if available.
9487
 
9488
2002-02-04  Bryce McKinlay  
9489
 
9490
        * parse.y (java_expand_classes): Fix typo in static field loop.
9491
 
9492
2002-02-02  Richard Henderson  
9493
 
9494
        * class.c (add_field): Mark static fields external.
9495
        (build_class_ref): Remove redundant set.
9496
        * parse.y (java_expand_classes): Mark static fields of classes
9497
        to be compiled as local.
9498
        * jcf-parse.c (parse_class_file): Likewise.
9499
 
9500
2002-02-02  Nic Ferrier  
9501
 
9502
        * gcj.texi (About CNI): New node.
9503
 
9504
2002-02-01  Craig Rodrigues  
9505
 
9506
        PR java/5080
9507
        * jcf-parse.c : Check for HAVE_LOCALE_H before using
9508
        setlocale() with LC_CTYPE as a parameter.
9509
        * jv-scan.c: Same.
9510
 
9511
2002-01-31  Joseph S. Myers  
9512
 
9513
        * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
9514
        Follow GNU Coding Standards for --version.
9515
 
9516
2002-01-28  Tom Tromey  
9517
 
9518
        * expr.c (build_jni_stub): Ensure storage for `meth' is
9519
        generated.
9520
        * parse.y (java_complete_expand_methods): Set
9521
        current_function_decl before building JNI stub.
9522
 
9523
2002-01-26 Andreas Tobler 
9524
 
9525
        * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
9526
        BUILT_IN_SQRTF.
9527
 
9528
2002-01-22  Tom Tromey  
9529
 
9530
        * decl.c (java_init_decl_processing): Use add_predefined_file.
9531
        Predefine RawData.java.
9532
        (predef_filenames): Removed.
9533
        (java_init_decl_processing): Don't register predef_filenames.
9534
        * jcf-parse.c (add_predefined_file): New function.
9535
        (predefined_filename_p): Rewrote.
9536
        (predefined_filename_p): No longer static.
9537
        * decl.c (java_init_decl_processing): Call initialize_builtins.
9538
        * Make-lang.in (JAVA_OBJS): Added builtins.o.
9539
        (java/builtins.o): New target.
9540
        * builtins.c: New file.
9541
        * parse.y (patch_invoke): Use build_call_or_builtin.
9542
        * java-tree.h (build_call_or_builtin): Declare.
9543
        (initialize_builtins): Declare.
9544
        (java_set_exception_lang_code): Removed unused declaration.
9545
        (PREDEF_FILENAMES_SIZE): Removed.
9546
        (java_tree_index): Added JTI_PREDEF_FILENAMES.
9547
        (predef_filenames): New define.
9548
        (add_predefined_file): Declare.
9549
        (predefined_filename_p): Declare.
9550
        * expr.c (expand_invoke): Use build_call_or_builtin.
9551
 
9552
2002-01-22  Kaveh R. Ghazi  
9553
 
9554
        * parse.y (patch_switch_statement): Fix format specifier.
9555
 
9556
2002-01-16  Tom Tromey  
9557
 
9558
        More for PR java/5365:
9559
        * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
9560
        default.
9561
        (process_file): Generate include for
9562
        java.lang.UnsupportedOperationExceptions.
9563
 
9564
2002-01-15  Andreas Jaeger  
9565
 
9566
        * .cvsignore: Add man pages.
9567
 
9568
2002-01-15  Tom Tromey  
9569
 
9570
        Fix for PR java/5365:
9571
        * gjavah.c (process_file): Turn class name into a file name.
9572
 
9573
2002-01-14  Matthias Klose  
9574
 
9575
        * gcj.texi: Fix whitespace and formatting errors in the
9576
        synopsis of the man pages. Update copyright.
9577
 
9578
2002-01-14  Tom Tromey  
9579
 
9580
        For PR libgcj/5303:
9581
        * Make-lang.in (java.install-man): Handle jv-convert man page.
9582
        (java.generated-manpages): Added jv-convert.1.
9583
        (java.uninstall): Remove jv-convert.1.
9584
        (java.maintainer-clean): Likewise.
9585
        ($(srcdir)/java/jv-convert.1): New target.
9586
        * gcj.texi (Top): Link to jv-convert node.
9587
        (Individual utilities): Likewise.
9588
        (Invoking jv-convert): New node.
9589
 
9590
2001-01-10  Jeff Sturm  
9591
            Martin Kahlert  
9592
 
9593
        * jcf-parse.c (get_constant): Don't swap lo/hi for big
9594
        endian targets when HOST_BITS_PER_WIDE_INT >= 64.
9595
 
9596
2002-01-03  Graham Stott  
9597
 
9598
        * class.c (compile_resource_file): Update copyright date.
9599
        Constify filename parameter.
9600
        (java-tree.h): Update copyright date.
9601
        (compile_resource_file): Constify filename parameter.
9602
 
9603
2002-01-03  Graham Stott  
9604
 
9605
        * gcc/jcf-parse.c: Update copyright date.
9606
        (yyparse): Constify resource_filename.
9607
 
9608
2002-01-02  Kaveh R. Ghazi  
9609
 
9610
        * parse.y (src_parse_roots): Don't needlessly zero init.
9611
 
9612
2001-12-31  Tom Tromey  
9613
 
9614
        * parse.y (dump_java_tree): New function.
9615
        (source_end_java_method): Call it.
9616
        (end_class_declaration): Likewise.
9617
        * lang.c (java_decode_option): Call dump_switch_p.
9618
 
9619
2001-12-28  Tom Tromey  
9620
 
9621
        * gen-table.pl: Don't process characters after \uffff.  Added
9622
        comment pointing to input file.
9623
 
9624
2001-12-28  Kaveh R. Ghazi  
9625
 
9626
        * gen-table.pl: Const-ify output.  Document the location of a
9627
        suitable unicode input file.
9628
 
9629
        * chartables.h: Regenerate.
9630
 
9631
2001-12-26  Kaveh R. Ghazi  
9632
 
9633
        * chartables.h: Const-ify.
9634
        * gjavah.c (options): Likewise.
9635
        * jcf-dump.c (options): Likewise.
9636
        * jv-scan.c (options): Likewise.
9637
        * lex.c (java_start_char_p, java_part_char_p): Likewise.
9638
        * parse.y (binop_lookup): Likewise.
9639
 
9640
2001-12-23  Kaveh R. Ghazi  
9641
 
9642
        * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
9643
        the static arrays that are output.
9644
        * jvspec.c (jvgenmain_spec): Make static.
9645
        * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
9646
        * keyword.h: Regenerate.
9647
        * lang.c (string_option, process_option_with_no, lang_f_options,
9648
        lang_W_options): Const-ify.
9649
        * lex.c (java_lex): Likewise.
9650
 
9651
2001-12-21  Richard Henderson  
9652
 
9653
        * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
9654
        (get_boehm_type_descriptor): ... here.  Arrange for the
9655
        TREE_TYPE to get set properly.
9656
 
9657
2001-12-21  Richard Henderson  
9658
 
9659
        * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
9660
        only if the target requires collect2.
9661
 
9662
        * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
9663
 
9664
2001-12-20  Tom Tromey  
9665
 
9666
        For PR java/4509:
9667
        * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
9668
        CAN_COMPLETE_NORMALLY for the node.
9669
        * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
9670
        generate code for second branch if first branch can't complete
9671
        normally.
9672
        (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
9673
        the loop head if the loop body can't complete normally.
9674
 
9675
2001-12-20  Tom Tromey  
9676
 
9677
        For PR java/4766:
9678
        * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
9679
        case where `finally' clause can't complete normally.
9680
 
9681
2001-12-20  Tom Tromey  
9682
 
9683
        Fixes PR java/5057:
9684
        * parse.y (analyze_clinit_body): Added this_class parameter.
9685
        Check for more cases where we must keep .
9686
        (maybe_yank_clinit): Cleaned up flow control.
9687
 
9688
2001-12-20  Bryce McKinlay  
9689
 
9690
        * decl.c (java_init_decl_processing): Don't initialize
9691
        finit_leg_identifier_node.
9692
        * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
9693
        (finit_leg_identifier_node): Remove.
9694
        (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
9695
 
9696
2001-12-20  Bryce McKinlay  
9697
 
9698
        * mangle.c (mangle_member_name): Don't special-case for
9699
        NO_DOLLAR_IN_LABEL.
9700
        * mangle_name.c (unicode_mangling_length): Likewise.
9701
        (append_unicode_mangled_name): Likewise.
9702
        * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
9703
        code.
9704
 
9705
2001-12-20  Bryce McKinlay  
9706
 
9707
        * expr.c (build_java_array_length_access): Don't force null pointer
9708
        check unless flag_check_references is set.
9709
 
9710
2001-12-20  Tom Tromey  
9711
 
9712
        Fix for PR java/3417:
9713
        * parse.y (patch_assignment): Added special processing for
9714
        `return'.
9715
        (patch_return): Don't convert booleans to integers, and don't
9716
        special-case `null'.
9717
 
9718
2001-12-20  Joseph S. Myers  
9719
 
9720
        * config-lang.in (diff_excludes): Remove.
9721
 
9722
2001-12-17  Joseph S. Myers  
9723
 
9724
        * gcj.texi: Update link to GCC manual.
9725
 
9726
2001-12-17  Tom Tromey  
9727
 
9728
        * parse.y (link_nested_class_to_enclosing): Removed useless
9729
        statement.
9730
 
9731
2001-12-16  Tom Tromey  
9732
 
9733
        * mangle.c (mangle_method_decl): Never emit `C2' constructor.
9734
        Fixes PR java/5088.
9735
 
9736
2001-12-16  Joseph S. Myers  
9737
 
9738
        * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
9739
        jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
9740
        spelling errors.
9741
 
9742
2001-12-16  Kaveh R. Ghazi  
9743
 
9744
        * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
9745
 
9746
2001-12-16  Bryce McKinlay  
9747
 
9748
        * decl.c (java_init_decl_processing): Build otable_type correctly.
9749
        otable_decl is an otable_type.
9750
 
9751
2001-12-15  Bryce McKinlay  
9752
 
9753
        * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
9754
        otable_type, otable_ptr_type, method_symbol_type,
9755
        method_symbols_array_type, method_symbols_array_ptr_type): New
9756
        field/global tree definitions.
9757
        (flag_indirect_dispatch): New flag.
9758
        * decl.c (java_init_decl_processing): Initialize new otable and
9759
        otable_syms type nodes and decls. Add new field "index" to
9760
        method_type_node.
9761
        * class.c (build_method_symbols_entry): New function.
9762
        (make_method_value): Set "index" to to method's vtable index for
9763
        virtual methods when indirect-dispatch is not used.
9764
        (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
9765
        and set vtable_method_count to -1. Set otable and otable_syms field
9766
        if indirect-dispatch is used and there was something to put in them.
9767
        (build_method_symbols_entry): New function.
9768
        (emit_offset_symbol_table): New function.
9769
        * expr.c (get_offset_table_index): New function.
9770
        (build_invokevirtual): Build array reference to otable at the index
9771
        returned by get_offset_table_index, and use the result as the vtable
9772
        offset.
9773
        (build_invokeinterface): Similar.
9774
        * jcf-parse.c (yyparse): If indirect-dispatch, call
9775
        emit_offset_symbol_table at the end of compilation, after all classes
9776
        have been generated.
9777
        * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
9778
        * lang.c (flag_indirect_dispatch): Define.
9779
        (lang_f_options): Add indirect-dispatch flag.
9780
 
9781
2001-12-14  Matthias Klose  
9782
 
9783
        * gcj.texi: Markup for man page generation. Document missing
9784
        options printed by  --help.
9785
        Terminate description of gij's -ms option with a dot.
9786
        * Make-lang.in ($(srcdir)/java/*.1): New targets.
9787
        (java.generated-manpages java.install-man, java.uninstall,
9788
        java-maintainer-clean) Updated.
9789
 
9790
2001-12-14  Hans Boehm  
9791
 
9792
        * class.c (get_dispatch_table): Fix java vtable layout
9793
        for TARGET_VTABLE_USES_DESCRIPTORS.
9794
        * decl.c (java_init_decl_processing): Initialize
9795
        alloc_no_finalizer_node, finalize_identifier_node.
9796
        * expr.c (class_has_finalize_method): New function.
9797
        (expand_java_NEW): Generate calls for finalizer-free allocation.
9798
        (build_invokevirtual): Fix java vtable layout for
9799
        TARGET_VTABLE_USES_DESCRIPTORS.
9800
        * java-tree.h (enum java_tree_index): New entries:
9801
        JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
9802
        (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
9803
        (class_has_finalize_method): declare.
9804
        (HAS_FINALIZER_P): New macro.
9805
        * parse.y (patch_invoke): Generate calls for finalizer-free
9806
        allocation.
9807
 
9808
2001-12-12  Matthias Klose  
9809
 
9810
        * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
9811
        whitespace at end of line.
9812
 
9813
2001-12-11  Tom Tromey  
9814
 
9815
        * lex.c (java_init_lex): Define wfl_to_string as
9816
        gnu.gcj.runtime.StringBuffer unless generating bytecode.
9817
 
9818
2001-12-11  Jeff Sturm  
9819
 
9820
        * class.c (make_method_value): Use null_pointer_node to
9821
        represent empty exception table.
9822
 
9823
2001-12-10  Tom Tromey  
9824
 
9825
        * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
9826
 
9827
2001-12-10  Douglas B. Rupp  
9828
 
9829
        * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
9830
 
9831
2001-12-09  Per Bothner  
9832
 
9833
        * check-init.c (current_switch_has_default):  New static field.
9834
        (check_init):  Case DEFAULT_EXPR: Set current_switch_has_default.
9835
        Case SWITCH_EXPR:  Save/restore current_switch_has_default.  If no
9836
        DEFAULT_EXPR seen, simulate a default alternative that copies state.
9837
 
9838
2001-12-09  Tom Tromey  
9839
 
9840
        * check-init.c (check_init): Don't allow pre- or post- increment
9841
        or decrement of final variable.
9842
        (final_assign_error): Minor error message rewording.
9843
 
9844
2001-12-08  Tom Tromey  
9845
 
9846
        * java-tree.h: Fixed typo.
9847
 
9848
        * gjavah.c (decompile_method): Don't decompile to `return this'
9849
        for static methods.
9850
 
9851
        * gjavah.c (cxx_keywords): Re-sorted.
9852
        * lex.c (cxx_keywords): Re-sorted.
9853
 
9854
        * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
9855
        else.
9856
 
9857
        * gjavah.c (print_namelet): Clear subnamelets.
9858
        (HANDLE_METHOD): Set `method_printed' earlier.
9859
 
9860
2001-12-07  Tom Tromey  
9861
 
9862
        * lang.c (lang_f_options): Added
9863
        optimize-static-class-initialization.
9864
        (java_decode_option): Removed special case.
9865
 
9866
2001-12-07  Per Bothner  
9867
 
9868
        * check-init.c (check_init):  Fix typo freeing memory twice.
9869
 
9870
2001-12-05  Per Bothner  
9871
 
9872
        Restore support for static class initialization optimization.
9873
        * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
9874
        * check-init.c (check_int):  At end of BLOCK handle initialization
9875
        blocks, which used to be done in java_complete_expand_method but did
9876
        not handle the case where check_for_initialization might allocate
9877
        more than a word of bits.
9878
        * decl.c (lang_make_tree):  The smic field is now a tree.
9879
        * expr.c (build_class_init):  Set DECL_FUNCTION_INIT_TEST_CLASS field.
9880
        * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE):  New macro.
9881
 
9882
        * parse.y (emit_test_initialization):  Combine hash_lookup calls.
9883
 
9884
        * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
9885
        Change from a hash table to a list.
9886
        (struct_lang_decl):  Change field 'smic' to match.
9887
        * class.c (add_method_1):  Initialize
9888
        DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
9889
        * parse.y (adjust_init_test_initialization):  Removed - inlined into -
9890
        (java_expand_method_bodies): -here, since 'smic' is now a list.
9891
        (patch_invoke):  Add to 'smic' list, instead of hash_lookup.
9892
 
9893
        * check-init.c (WORD_SIZE):  Use BITS_PER_UNIT.
9894
 
9895
        * class.c (java_hash_compare_tree_node):  Fix casts.
9896
 
9897
2001-12-04  Per Bothner  
9898
 
9899
        * check-init.c:   Handle definite unassignment to finals in addition
9900
        to definite assignment.
9901
        (loop_current_locals):  New field.
9902
        (num_current_locals, int start_current_locals, num_current_words):
9903
        Make static.
9904
        (SET_P, CLEAR_P, SET_BIT):  Add needed but missing parentheses.
9905
        (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
9906
        CLEAR_ASSIGNED, CLEAR_UNASSIGNED):  New macros.
9907
        (get_variable_decl, check_final_reassigned):  New functions.
9908
        (check_init, check_bool_init):  Modify as needed for checking finals.
9909
        (check_for_initialization):  Take extra parameter and return void.
9910
        Do extra start-up logic to check final fields for assignment.
9911
        * parse.y (check_static_final_variable_assignment_flag,
9912
        reset_static_final_variable_assignment_flag, check_final_assignment,
9913
        check_final_variable_local_assignment_flag,
9914
        reset_final_variable_indirect_assignment_flag,
9915
        reset_final_variable_global_assignment_flag):  Remove functions.
9916
        (java_complete_expand_methods, outer_field_access_fix,
9917
        patch_assignment): Remove no-longer used logic.
9918
        * java-tree.h (DECL_FIELD_FINAL_IUD):  Change usage and comments.
9919
        * parse.y (register_fields, java_complete_tree):  Update accordingly.
9920
 
9921
        * check-init.c (ALLOC_WORDS/FREE_WORDS):  Use xmalloc/free, not alloca.
9922
        (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER):  New.
9923
        (check_cond_init, check_bool2_init):  Use DECLARE_BUFFERS.
9924
 
9925
        * java-tree.h (STATIC_CLASS_INIT_OPT_P):  Temporarily turn off.
9926
 
9927
        * java-tree.h (DECL FINAL):  New bit-field.
9928
        (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL):  Define as DECL_FINAL.
9929
        (LOCAL_FINAL_P):  Use DECL_FINAL rather than old LOCAL_FINAL.
9930
        (DECL_INIT_CALLS_THIS):  New macro.
9931
        (struct lang_decl):  New bit-field init_calls_this.
9932
        (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
9933
        DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
9934
        (DECL_BIT_INDEX):  Change to use pointer_alias_set since we now
9935
        use it for both local variables and final fields.
9936
        (struct lang_decl_var):  Remove bit-fields final_liic, final_ierr,
9937
        and local_final.
9938
        (struct lang_type):  Remove hfv bit-field.
9939
        (check_for_initialization):  Change to return void.
9940
 
9941
        * java-tree.h (IS_ARRAY_LENGTH_ACCESS):  New macros.
9942
        * expr.c (build_java_array_length_access):  Set IS_ARRAY_LENGTH_ACCESS.
9943
        * check-init.c (final_assign_error):  New helper function.
9944
        (check_final_reassigned, check_init):  Use it.
9945
        (check_init):  Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
9946
 
9947
        * java-tree.h (struct lang_decl, struct lang_decl_var):  Change all
9948
        bit-fields to unsigned.
9949
 
9950
2001-12-03  Per Bothner  
9951
 
9952
        * parse.y (patch_binop):  Minor constant folding.
9953
 
9954
        * parse.y (build_current_thisn):  Shorter 'buffer'.
9955
 
9956
2001-12-03  Per Bothner  
9957
 
9958
        * decl.c (complete_start_java_method):  Now generate TRY_FINALLY_EXPR
9959
        instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
9960
        * jcf-write.c (generate_bytecode_insns):  Remove support for
9961
        CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
9962
        * check-init.c (check_init):  Likewise.
9963
 
9964
2001-12-03  Per Bothner  
9965
 
9966
        * verify.c (subroutine_nesting):  New function.
9967
        (verify_jvm_instructions):  Use it to fix logic for checking that
9968
        we're done with the current subroutine.
9969
 
9970
        * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
9971
        OPCODE_instanceof use POP_TYPE macro for better diagnostics.
9972
 
9973
2001-12-03  Per Bothner  
9974
 
9975
        * jcf.h:  Fix obvious typo in comment.
9976
        * typeck.c (build_null_signature):  Add comment.
9977
 
9978
2001-12-03  Neil Booth  
9979
 
9980
        * expr.c: Remove leading capital from diagnostic messages, as
9981
        per GNU coding standards.
9982
        * jcf-io.c: Similarly.
9983
        * jcf-parse.c: Similarly.
9984
        * jv-scan.c: Similarly.
9985
        * jvspec.c: Similarly.
9986
        * mangle.c: Similarly.
9987
 
9988
2001-12-02  Tang Ching-Hui  
9989
            Alexandre Petit-Bianco  
9990
 
9991
        * expr.c (build_java_arrayaccess): Call save_expr on array for
9992
        correct evaluation order, modified comment, fixed indentation.
9993
        * parse.y: (patch_assignment): Correctly extract the array base
9994
        from the tree generate by build_java_arrayaccess, added comments.
9995
        (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
9996
        Fixes PR java/3096, PR java/3803, PR java/3965.
9997
 
9998
2001-12-01  Neil Booth  
9999
 
10000
        * expr.c (expand_byte_code): Remove trailing periods from messages.
10001
        * jcf-parse.c (load_class, jcf_parse): Similarly.
10002
        * jcf-write.c (generate_classfile): Similarly.
10003
        * lex.c (java_lex): Similarly.
10004
 
10005
2001-11-30  Bryce McKinlay  
10006
 
10007
        * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
10008
 
10009
2001-11-29  Joseph S. Myers  
10010
 
10011
        * Make-lang.in (java.generated-manpages): New dummy target.
10012
 
10013
2001-11-27  Rainer Orth  
10014
 
10015
        * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10016
        ASM_FINAL_SPEC.
10017
        (lang_specific_pre_link): Use set_input to set input_filename.
10018
        Append `main' here.
10019
        * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10020
        (main): Fix definition.
10021
        Strip `main' from classname.
10022
        Fixes PR java/227.
10023
 
10024
2001-11-18  Roger Sayle 
10025
 
10026
        * parse.h (java_expand_switch): Remove old prototype.
10027
 
10028
2001-11-18  Tom Tromey  
10029
 
10030
        Fix for PR java/1401:
10031
        * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
10032
        arg0 is null.
10033
        (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
10034
        correctly.
10035
 
10036
2001-11-18  Neil Booth  
10037
 
10038
        * lang.c (finish_parse): Rename to java_finish.
10039
        (LANG_HOOKS_FINISH, java_finish): New.
10040
 
10041
2001-11-15  Neil Booth  
10042
 
10043
        * decl.c (init_decl_processing): Rename java_init_decl_processing.
10044
        * java-tree.h: New prototype.
10045
        * lang.c (java_init): Update prototype.  Combine with old init_parse.
10046
 
10047
2001-11-13  Tom Tromey  
10048
 
10049
        * gjavah.c (method_signature): New global.
10050
        (HANDLE_METHOD): Set it.
10051
        (decompile_return_statement): New function.
10052
        (decompile_method): Use it.
10053
        (print_method_info): Removed `synth' argument.
10054
 
10055
2001-11-09  Neil Booth  
10056
 
10057
        * java-tree.h (java_set_yydebug): New.
10058
        * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
10059
        * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
10060
        (print_lang_decl, print_lang_type, print_lang_identifier,
10061
        print_lang_statistics, lang_print_xnode): Remove.
10062
 
10063
2001-11-09  Neil Booth  
10064
 
10065
        * jcf-parse.c (init_lex): Remove.
10066
        * lang.c (language_string, lang_identify): Remove.
10067
        (struct lang_hooks): Constify.
10068
        (LANG_HOOKS_NAME): Override.
10069
        (init_parse): Update.
10070
 
10071
2001-11-08  Andreas Franck  
10072
 
10073
        * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
10074
        program_transform_name the way suggested by autoconf.
10075
        (java.install-common): Also transform auxiliary program names with
10076
        program_transform_name.
10077
 
10078
2001-11-08  Tom Tromey  
10079
 
10080
        * parse.y (trap_overflow_corner_case): New rule.
10081
        (unary_expression): Use it.
10082
        * lex.c (java_init_lex): Don't set minus_seen.
10083
        (yylex): Don't use minus_seen.  Communicate overflow to parser for
10084
        it to handle.
10085
        (error_if_numeric_overflow): New function.
10086
        * parse.h (minus_seen): Removed field.
10087
        (JAVA_RADIX10_FLAG): New define.
10088
 
10089
2001-11-07  Tom Tromey  
10090
 
10091
        Patch for PR java/1414:
10092
        * parse.y (case_label_list): New global.
10093
        (goal): Register case_label_list with GC.
10094
        (java_complete_lhs): Save new case on case_label_list.
10095
        (patch_switch_statement): Check for duplicate case labels.
10096
 
10097
2001-11-07  Alexandre Petit-Bianco  
10098
 
10099
        * parse.y (patch_assignment): Removed unused third argument.
10100
        (java_complete_lhs): Removed unused third argument to patch_assignment.
10101
 
10102
2001-11-06  Neil Booth  
10103
 
10104
        * lang.c: Include langhooks-def.h.
10105
        * Make-lang.in: Update.
10106
 
10107
2001-10-31  Zack Weinberg  
10108
 
10109
        * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
10110
 
10111
2001-10-29  Bryce McKinlay  
10112
 
10113
        * mangle.c (find_compression_record_match): Don't match compression
10114
        records for package name elements unless they occur at the start of
10115
        the name. Fix for PR java/4717.
10116
 
10117
2001-10-25  Bryce McKinlay  
10118
 
10119
        * expr.c (expand_java_field_op): Don't special-case references to
10120
        java.lang.PRIMTYPE.TYPE.
10121
        (build_primtype_type_ref): Removed.
10122
        * java-tree.h (build_primtype_type_ref): Remove prototype.
10123
        * parse.y (maybe_build_primttype_type_ref): Removed.
10124
        (complete_function_arguments): Don't special-case references to
10125
        java.lang.PRIMTYPE.TYPE.
10126
        (patch_assignment): Likewise.
10127
        (array_constructor_check_entry): Likewise.
10128
 
10129
2001-10-24  Alexandre Petit-Bianco  
10130
 
10131
        * mangle.c (static tree compression_table): Fixed leading comment.
10132
        * parse.h (struct parser_ctxt): Fixed field comment.
10133
        * parse.y (check_pkg_class_access): New prototype, fixed leading
10134
        comment, new parameter used to emit error only if passed as true.
10135
        (parse_check_super): Pass extra argument to check_pkg_class_access.
10136
        (do_resolve_class): Likewise.
10137
        (process_imports): Likewise.
10138
        (read_import_dir): Fixed indentation.
10139
        (find_in_imports_on_demand): New local class_type_name. Local
10140
        node_to_use deleted. while loop changed into for loop. Report
10141
        multiple definition only for accessible classes. Improved error
10142
        message.
10143
        (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
10144
        assigned to parameter list, fixed indentation. while loop changed
10145
        into for loop, restore TREE_CHAIN on local `tem' before the next
10146
        iteration.
10147
 
10148
2001-10-23  Richard Kenner  
10149
 
10150
        * lang.c (lang_get_alias_set): Deleted.
10151
 
10152
2001-10-21  Kaveh R. Ghazi  
10153
 
10154
        * gjavah.c (jni_print_char): Fix thinko in last change.
10155
 
10156
        * gjavah.c (jni_print_char, decode_signature_piece): Use
10157
        safe-ctype macros and/or fold extra calls into fewer ones.
10158
        * lex.c (java_read_unicode, java_lex): Likewise.
10159
        * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
10160
        JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
10161
        * mangle_name.c (append_unicode_mangled_name,
10162
        unicode_mangling_length): Likewise.
10163
 
10164
2001-10-17  Richard Henderson  
10165
 
10166
        * Make-lang.in (java/lang.o): Depend on langhooks.h.
10167
 
10168
2001-10-15  Alexandre Petit-Bianco  
10169
 
10170
        * lang.c (langhooks.h): Included.
10171
        (LANG_HOOKS_INIT): Redefined.
10172
        (LANG_HOOKS_INIT_OPTIONS): Likewise.
10173
        (LANG_HOOKS_DECODE_OPTION): Likewise.
10174
        (struct lang_hooks lang_hooks): New initialization.
10175
 
10176
2001-10-11  Per Bothner  
10177
 
10178
        * parse.y (patch_synchronized_statement):  Use a TRY_FINALLY_EXPR
10179
        rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
10180
        The former is simpler, and jcf-write.c handles it better.
10181
        (java_complete_lhs):  No longer need to handle CLEANUP_POINT_EXPR
10182
        or WITH_CLEANUP_EXPR.
10183
        * jcf-write.c:  Revert Alex's change from 2000-10-18.  It is no
10184
        longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
10185
 
10186
        * parse.y (patch_if_else_statement):  If the condition is constant,
10187
        optimize away the test.
10188
 
10189
2001-10-09  Alexandre Petit-Bianco  
10190
 
10191
        * parse.y (patch_cast): Call patch_string on the first operand of
10192
        the incoming node, update it if necessary. Fixes PR java/4510.
10193
 
10194
2001-10-09  Bryce McKinlay  
10195
 
10196
        * parse.y (find_as_inner_class): Don't disregard the enclosing scope
10197
        when name qualifier matches a package name.
10198
 
10199
2001-10-08  Tom Tromey  
10200
 
10201
        Fix for PR java/4489:
10202
        * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
10203
        force a new label when computing `body_block'.
10204
 
10205
2001-10-07  Kaveh R. Ghazi  
10206
 
10207
        * jcf-io.c (format_uint): Const-ify.
10208
        * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
10209
        * lex.c (java_get_line_col): Likewise.
10210
        * parse.y (build_incdec): Likewise.
10211
 
10212
2001-10-05  Alexandre Petit-Bianco  
10213
 
10214
        * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
10215
        a NULL enclosing context if appropriate. Fixes PR java/4466.
10216
 
10217
2001-10-03  Alexandre Petit-Bianco  
10218
 
10219
        * parse.y (patch_assignment): Use lvalue's original TYPE when
10220
        building the final COMPOUND_EXPR.
10221
        (try_reference_assignconv): Fixed leading comment.
10222
 
10223
2001-09-26  Alexandre Petit-Bianco  
10224
 
10225
        * parse.y (check_final_variable_indirect_assignment): For
10226
        COMPOUND_EXPR, return only if finals were found initialized
10227
        properly, if not, keep on checking.
10228
        (check_final_variable_global_assignment_flag): New local
10229
        error_found, set when appropriate and used to decide whether to
10230
        report uninitialized finals. Fixed typo in comment.
10231
 
10232
2001-09-22  Alexandre Petit-Bianco  
10233
 
10234
        * decl.c (init_decl_processing): Fixed typo in predef_filenames
10235
        last three initializations. Fixes PR java/4360.
10236
 
10237
2001-09-21  Richard Henderson  
10238
 
10239
        * class.c (get_dispatch_table): Handle function descriptors.
10240
        (build_dtable_decl): Likewise.
10241
        * expr.c (build_invokevirtual): Likewise.
10242
 
10243
2001-09-20  Alexandre Petit-Bianco  
10244
 
10245
        * parse.y (patch_method_invocation): Build class initialization
10246
        when static finals are used to qualify method invocation.
10247
        Fixes PR java/4366.
10248
 
10249
2001-09-19  Alexandre Petit-Bianco  
10250
 
10251
        * parse.h: (WFL_STRIP_BRACKET): Re-written using
10252
        build_type_name_from_array_name.
10253
        (STRING_STRIP_BRACKETS): New macro.
10254
        * parse.y (build_type_name_from_array_name): New function.
10255
        (array_creation_expression:): Accumulate []s instead of [s.
10256
        (cast_expression:): Accumulate []s instead of [s after cast type
10257
        name.
10258
        (build_array_from_name): Local string deleted, use
10259
        build_type_name_from_array_name.
10260
        (build_unresolved_array_type): Accumulate []s instead of [s after
10261
        type name.
10262
        (register_fields): Fixed comment.
10263
        (resolve_class): Local name, base deleted, new locals tname and
10264
        array_dims. Use build_type_name_from_array_name. Use array_dims to
10265
        build array type.
10266
        (purify_type_name): Use STRING_STRIP_BRACKETS.
10267
 
10268
2001-09-18  Andreas Jaeger  
10269
 
10270
        * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
10271
        * jv-scan.c: Likewise.
10272
 
10273
2001-09-17  Alexandre Petit-Bianco  
10274
 
10275
        * parse.y (patch_method_invocation): Inner class creation context
10276
        check not enforced within constructors. Fixes PR java/1873.
10277
 
10278
2001-09-16  Tom Tromey  
10279
 
10280
        * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
10281
        NOTE_PUSH for single-case push.  Fixes PR java/4189.
10282
 
10283
2001-09-13  Alexandre Petit-Bianco  
10284
 
10285
        * java-tree.h (TYPE_IMPORT_LIST): New macro.
10286
        (TYPE_IMPORT_DEMAND_LIST): Likewise.
10287
        (struct lang_type): New fields import_list and import_demand_list.
10288
        * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
10289
        TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
10290
        (do_resolve_class): New local saved_enclosing_type, initialized,
10291
        passed as parameter to find_in_imports and find_in_imports_on_demand.
10292
        (find_in_imports): Added paramater enclosing_type, use its
10293
        TYPE_IMPORT_LIST when applicable.
10294
        (find_in_imports_on_demand): Added parameter enclosing_type, use
10295
        its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
10296
        declaration and initialization.
10297
        (fold_constant_for_init): Switch/restore current_class to the
10298
        appropriate context.
10299
 
10300
2001-09-13  Mark Mitchell  
10301
 
10302
        * verify.c (verify_jvm_instructions): Fix typo.
10303
 
10304
2001-09-13  Kaveh R. Ghazi  
10305
 
10306
        * expr.c (expand_invoke): Const-ification.
10307
        * parse.y (patch_method_invocation): Likewise.
10308
 
10309
2001-09-12  Kaveh R. Ghazi  
10310
 
10311
        * gjavah.c (cxx_keywords): Const-ification.
10312
        * keyword.gperf (java_keyword): Likewise.
10313
        * lang.c (java_tree_code_name): Likewise.
10314
        * lex.c (cxx_keywords): Likewise.
10315
        * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
10316
 
10317
2001-09-11  Richard Henderson  
10318
 
10319
        * parse.h (ctxp_for_generation): Mark extern.
10320
 
10321
2001-09-10  Richard Henderson  
10322
 
10323
        * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
10324
 
10325
2001-09-07  Matt Kraai  
10326
 
10327
        * typeck.c (java_array_type_length, build_prim_array_type):
10328
        Represent empty arrays by NULL index.
10329
 
10330
2001-09-06  Alexandre Petit-Bianco  
10331
 
10332
        * java-tree.h (compile_resource_file): Grouped with other prototypes.
10333
        * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
10334
 
10335
2001-09-06  Anthony Green  
10336
 
10337
        * class.c (O_BINARY): Define if necessary.
10338
        (registerResource_libfunc): Declare.
10339
        (init_class_processing): Initilize registerResource_libfunc.
10340
        (compile_resource_file): New function.
10341
        * java-tree.h (resource_name): Declare.
10342
        (compile_resource_file): Declare.
10343
        * jcf-parse.c (yyparse): Handle compiling java resource files.
10344
        * lang.c (java_decode_option): Handle -fcompile-resource option.
10345
        * jvspec.c (lang_specific_driver): Handle -R flag for compiling
10346
        resource files.
10347
        * gcj.texi (Code Generation): Add documentation for -R flag.
10348
 
10349
2001-09-05 Alexandre Petit-Bianco  
10350
 
10351
        * jcf-write.c (generate_classfile): Issue an error in case of
10352
        field/initial value mismatch.
10353
        * parse.y (analyze_clinit_body): Keep  if an array is
10354
        being initialized and we're generating bytecode.
10355
        (java_complete_lhs): In MODIFY_EXPR section: added comments,
10356
        set DECL_INITIAL properly when appropriate.
10357
        Fixes PR java/4230
10358
        Fixes PR java/4204
10359
 
10360
2001-09-01  Per Bothner  
10361
 
10362
        * parse.y (maybe_yank_clinit):  A field without an initializer is not
10363
        relevant.  All initializers except static final and constant require
10364
        , regardless of flag_emit_class_files.
10365
 
10366
2001-08-31  Per Bothner  
10367
 
10368
        * class.c (set_constant_value):  When not emitting class files, then a
10369
        String ConstantValue is a utf8const_ptr_type.
10370
 
10371
2001-08-30  Per Bothner  
10372
 
10373
        * jcf-write.c (generate_classfile):  Check that field is primitive
10374
        or string before emitting ConstantValue attribute.
10375
 
10376
2001-08-30  Per Bothner  
10377
 
10378
        * parse.y (resolve_qualified_expression_name):  If creating a
10379
        COMPOUND_EXPR, set it's type correctly.
10380
 
10381
2001-08-30  Per Bothner  
10382
 
10383
        * jcf-io.c (open_class):  Set filename field.
10384
 
10385
        * jcf-parse,c (parse_class_file):  Set current_function_decl
10386
        for better error message when Code attribute is missing.
10387
 
10388
        * lang.c (put_decl_node, lang_print_error):  Re-arrange for
10389
        better diagnostics, especially for constructors.
10390
 
10391
2001-08-30  Per Bothner  
10392
 
10393
        * jcf-write.c (generate_classfile):  Don't write ConstantValue
10394
        attribute if field is not final, for compatibility with jdk.
10395
 
10396
        * jcf-write.c (generate_classfile):  Convert ConstantValue values
10397
        to correct type.  Work-around for front-end bug.
10398
        * class.c (set_constant_value):  Error if constant has wrong type.
10399
 
10400
2001-08-30  Per Bothner  
10401
 
10402
        * jcf-dump.c (print_constant):  Fix fencepost error so "Float" and
10403
        "Double" are printed at verbosity 1.
10404
 
10405
        * jcf-dump.c (main):  Disable flag_print_attributes if --javap.
10406
 
10407
        * jcf-dump.c (SPECIAL_IINC):  Remove unneeded casts to long.
10408
 
10409
2001-08-30  Alexandre Petit-Bianco  
10410
 
10411
        * parse.y (patch_assignment): Don't verify final re-assignment here.
10412
        (java_complete_lhs): Verify assignments to finals calling
10413
        patch_assignment. Verify re-assignments to finals before calling
10414
        patch_assignment.
10415
 
10416
2001-08-29  Alexandre Petit-Bianco  
10417
 
10418
        * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
10419
        Fixes PR java/1413
10420
 
10421
2001-08-28  Alexandre Petit-Bianco  
10422
 
10423
        * lex.c (java_lex): new local found_hex_digits. Set and then used
10424
        in test to reject invalid hexadecimal numbers.
10425
        * parse.y (java_complete_tree): Prevent unwanted cast with
10426
        initialized floating point finals.
10427
        (patch_binop): Emit a warning when detecting a division by zero,
10428
        mark result not constant, don't simplify non integer division.
10429
 
10430
2001-08-28  Per Bothner  
10431
 
10432
        * jcf-write.c  (generate_bytecode_insns):  For increments and
10433
        decrements just recurse to push constant.  Improvement on Mark's patch.
10434
 
10435
2001-08-28  Mark Mitchell  
10436
 
10437
        * jcf-write.c (generate_bytecode_insns): Generate an integer to
10438
        real conversion for increments and decrements of reals.
10439
 
10440
2001-08-27  Alexandre Petit-Bianco  
10441
 
10442
        * parse.y (resolve_qualified_expression_name): Handle unresolved
10443
        qualified expressions, prevent numerical qualifiers, fixed typo.
10444
        Fixes PR java/4141
10445
 
10446
2001-08-24  Alexandre Petit-Bianco  
10447
 
10448
        * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
10449
        don't report anything but deprecated class when marked so. Handle
10450
        VAR_DECL.
10451
        (patch_method_invocation): Check deprecation on methods and types.
10452
        (patch_binop): code becomes an enum tree_code, added default: to
10453
        switch to handle that. Detect division by zero, try to fold and
10454
        return before using a subroutine.
10455
 
10456
2001-08-23  Alexandre Petit-Bianco  
10457
 
10458
        * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
10459
        file smaller than 4 bytes.
10460
        * parse.y (check_inner_circular_reference): New function.
10461
        (check_circular_reference): Likewise.
10462
        (array_initializer:): Accept {,}.
10463
        (java_check_circular_reference): Rewritten using
10464
        check_circular_reference and check_inner_circular_reference.
10465
        (java_complete_expand_method): Unconditionally save and restore
10466
        the unpurged exception list.
10467
        (build_dot_class_method_invocation): Unmangle signature parameter.
10468
 
10469
2001-08-21  Tom Tromey  
10470
 
10471
        * decl.c (init_decl_processing): Add `throws' field to method
10472
        descriptor.
10473
        * class.c (make_method_value): Compute `throws' field for method.
10474
 
10475
2001-08-22  Alexandre Petit-Bianco  
10476
 
10477
        * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
10478
        circularity is detected.
10479
        (ctors_unchecked_throws_clause_p): Fixed leading comment.
10480
 
10481
2001-08-17  Richard Henderson  
10482
 
10483
        * class.c (emit_register_classes): Add align parameter to
10484
        call to assemble_integer.
10485
 
10486
2001-08-16  Alexandre Petit-Bianco  
10487
 
10488
        * jcf-parse.c (load_class): New locals saved and class_loaded. If
10489
        loading a class_or_name fails, try considering an innerclass name
10490
        and load the enclosing context.
10491
        * parse.y (resolve_inner_class): New function.
10492
        (find_as_inner_class): Added leading comment.
10493
        (register_incomplete_type): Keep the current context as enclosing
10494
        context for JDEP_FIELD dependencies.
10495
        (do_resolve_class): Locals new_class_decl and super initialized to
10496
        NULL. Call resolve_inner_class, explore the enclosing context
10497
        superclass if necessary.
10498
        Fixes PR java/4007
10499
 
10500
2001-08-16  Tom Tromey  
10501
 
10502
        * jcf-dump.c (main): Updated for change to jcf_path_seal.
10503
        * gjavah.c (main): Updated for change to jcf_path_seal.
10504
        * lang.c (version_flag): New global.
10505
        (java_decode_option): Recognize `-version'.
10506
        (java_init): Update for change to jcf_path_seal.
10507
        * jcf.h (jcf_path_seal): Added `print' argument.
10508
        * jcf-path.c (jcf_path_seal): Added `print' argument.
10509
 
10510
2001-08-13  Zack Weinberg  
10511
 
10512
        * Make-lang.in (java/decl.o): Update dependencies.
10513
        * decl.c: Include libfuncs.h, don't include toplev.h.
10514
 
10515
2001-08-12  Alexandre Petit-Bianco  
10516
 
10517
        * decl.c (init_decl_processing): exception_type_node,
10518
        class_not_found_type_node, and no_class_def_found_type_node
10519
        initialized. predef_filenames augmented accordingly.
10520
        instinit_identifier_node initialized.
10521
        * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
10522
        * java-tree.h (enum java_tree_index): New entries
10523
        JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
10524
        JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
10525
        (exception_type_node): New macro.
10526
        (class_not_found_type_node): Likewise.
10527
        (no_class_def_found_type_node): Likewise.
10528
        (instinit_identifier_node): Likewise.
10529
        (PREDEF_FILENAMES_SIZE): Adjusted.
10530
        (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
10531
        (struct lang_type): Fixed typo in bitfield name.
10532
        (DECL_INSTINIT_P): New macro.
10533
        (ID_INSTINIT_P): Likewise.
10534
        * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
10535
        attribute.
10536
        * parse.y (encapsulate_with_try_catch): New function.
10537
        (generate_instinit): Likewise.
10538
        (build_instinit_invocation): Likewise.
10539
        (ctors_unchecked_throws_clause_p): Likewise.
10540
        (add_instance_initializer): Deleted.
10541
        (build_instance_initializer): Likewise.
10542
        (in_instance_initializer): Likewise.
10543
        (check_method_redefinition): instinit$ not to be verified.
10544
        (java_complete_expand_methods): Generate instinit$, simplified code.
10545
        (build_dot_class_method): Eliminated unnecessary locals. Use
10546
        encapsulate_with_try_catch, removed unnecessary code.
10547
        (fix_constructors): New local iii. Use build_instinit_invocation.
10548
        (patch_method_invocation): Added comment.
10549
        (maybe_use_access_method): Don't consider instinit$.
10550
        (find_applicable_accessible_methods_list): Shorten the search for
10551
        instinit$ too.
10552
        (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
10553
        (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
10554
        (patch_throw_statement): Likewise. Fixed typo.
10555
 
10556
2001-08-12  David Edelsohn  
10557
 
10558
        Revert:
10559
        2001-08-02  Rainer Orth  
10560
        * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10561
        ASM_FINAL_SPEC.
10562
        (lang_specific_pre_link): Use set_input to set input_filename.
10563
        Append `main' here.
10564
        * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10565
        (main): Fix definition.
10566
        Strip `main' from classname.
10567
        Fixes PR java/227.
10568
 
10569
2001-08-11  Zack Weinberg  
10570
 
10571
        * lex.h: Don't include setjmp.h.  Don't define
10572
        SET_FLOAT_HANDLER or prototype set_float_handler.
10573
 
10574
2001-08-09  Alexandre Petit-Bianco  
10575
 
10576
        * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
10577
        `poplevel' in the right order.
10578
 
10579
2001-08-09  Richard Henderson  
10580
 
10581
        * Make-lang.in (class.o): Depend on TARGET_H.
10582
        * class.c (emit_register_classes): Use target hooks instead of
10583
        assemble_constructor and assemble_destructor.
10584
 
10585
2001-08-08  Alexandre Petit-Bianco  
10586
 
10587
        * check-init.c (flags.h): Include
10588
        (check_init): Don't report uninitialized static class
10589
        initialization flags, don't free bit index when doing static class
10590
        initialization optimization.
10591
        (check_for_initialization): Return type changed to `unsigned int.'
10592
        (attach_initialized_static_class): New function.
10593
        * class.c (add_method_1): Create the initialized static class
10594
        table if necessary.
10595
        (finish_class): Always emit deferred inline methods.
10596
        * decl.c (emit_init_test_initialization): Moved to expr.c
10597
        (complete_start_java_method): Don't traverse
10598
        DECL_FUNCTION_INIT_TEST_TABLE.
10599
        (lang_mark_tree): Mark hash tables in function decls.
10600
        * expr.c (emit_init_test_initialization): Moved from decl.c.
10601
        (build_class_init): Create LAG_DECL_SPECIFIC for the static class
10602
        initialization flag, set DECL_CONTEXT and
10603
        LOCAL_CLASS_INITIALIZATION_FLAG.
10604
        (java_lang_expand_expr): Emit initialization code for static class
10605
        initialized flags when entering block, if necessary.
10606
        * gcj.texi (-fno-optimize-static-class-initialization): Documented.
10607
        * java-tree.h (flag_optimize_sci): New global variable declaration.
10608
        (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
10609
        (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
10610
        (LOCAL_FINAL_P): Fixed typo in comment.
10611
        (FINAL_VARIABLE_P): Likewise.
10612
        (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
10613
        (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
10614
        (struct lang_decl): New fields `ict', `smic' and `cif.'
10615
        (check_for_initialization): New returned value for global.
10616
        (attach_initialized_static_class): New global function.
10617
        (STATIC_CLASS_INIT_OPT_P): New macro.
10618
        * lang-options.h (-fno-optimize-static-class-initialization): New flag.
10619
        * lang.c (java_decode_option): Handle
10620
        `-fno-optimize-static-class-initialization'
10621
        * parse.y (start_complete_expand_method): New function.
10622
        (java_expand_method_bodies): Likewise.
10623
        (attach_init_test_initialization_flags): Likewise.
10624
        (adjust_init_test_initialization): Likewise.
10625
        (emit_test_initialization): Likewise.
10626
        (java_complete_expand_methods): Nullify abstract and native method
10627
        bodies.
10628
        (java_complete_expand_method): New locals `fbody', `block_body'
10629
        and `exception_copy.' Reorganized: directly return on empty method
10630
        bodies, call `start_complete_expand_method', remember definitely
10631
        initialized static class in function, don't expand method bodies.
10632
        (java_expand_classes): Call `java_expand_method_bodies' before
10633
        `finish_class' when compiling to native.
10634
        (resolve_expression_name): Use `orig' after building outer class
10635
        field access.
10636
        (patch_invoke): Remember static method invocations.
10637
 
10638
2001-08-06  Richard Henderson  
10639
 
10640
        * class.c (emit_register_classes): Pass a symbol_ref and priority
10641
        to assemble_constructor.
10642
 
10643
2001-08-02  Alexandre Petit-Bianco  
10644
 
10645
        * java-tree.h (all_class_filename): New macro.
10646
        (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
10647
        (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
10648
        newly created IDENTIFIER_NODE to `all_class_filename.'
10649
 
10650
2001-08-01  Jeff Sturm  
10651
 
10652
        * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
10653
        Use ggc_add_tree_root to register roots.
10654
 
10655
2001-07-31  Alexandre Petit-Bianco  
10656
 
10657
        * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
10658
        second operand calling check_init.
10659
        * decl.c (complete_start_java_method): Swaped second and third
10660
        arguments while creating WITH_CLEANUP_EXPR node.
10661
        * jcf-write.c (generate_bytecode_insns): Use second operand
10662
        instead of third when handling WITH_CLEANUP_EXPR.
10663
        * parse.y (java_complete_lhs): Expand second operand of
10664
        WITH_CLEANUP_EXPR nodes.
10665
        (patch_synchronized_statement): Swaped second and third arguments
10666
        while creating WITH_CLEANUP_EXPR node.
10667
 
10668
2001-07-18  Alexandre Petit-Bianco  
10669
 
10670
        * parse.y (create_interface): Avoid cyclic inheritance report when
10671
        syntax error encountered during class definition.
10672
        Fixes PR java/2956
10673
 
10674
2001-08-02  Rainer Orth  
10675
 
10676
        * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10677
        ASM_FINAL_SPEC.
10678
        (lang_specific_pre_link): Use set_input to set input_filename.
10679
        Append `main' here.
10680
        * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10681
        (main): Fix definition.
10682
        Strip `main' from classname.
10683
        Fixes PR java/227.
10684
 
10685
2001-07-18  Tom Tromey  
10686
 
10687
        For PR java/2812:
10688
        * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
10689
        * lex.c (java_new_lexer): Use ICONV_CONST.
10690
        (java_read_char): Likewise.
10691
        * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
10692
        (jv-scan$(exeext)): Likewise.
10693
 
10694
2001-07-17  Alexandre Petit-Bianco  
10695
 
10696
        * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
10697
        * parse.y (check_class_interface_creation): Allow `private' if the
10698
        enclosing is not an interface.
10699
        (create_interface): Interface tagged public if the enclosing
10700
        context is an interface.
10701
        (create_class): Class tagged public if the enclosing context
10702
        is an interface.
10703
        Fixes PR java/2959
10704
 
10705
2001-07-17  Alexandre Petit-Bianco  
10706
 
10707
        * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
10708
        Fixes PR java/2665
10709
 
10710
2001-07-14  Tim Josling  
10711
 
10712
        * check-init.c (check_init): Remove references to EXPON_EXPR.
10713
 
10714
2001-07-13  Alexandre Petit-Bianco  
10715
 
10716
        * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
10717
        TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
10718
        Fixes PR java/3602
10719
 
10720
2001-07-13  Tom Tromey  
10721
 
10722
        * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
10723
        invocation.
10724
 
10725
2001-07-12  Alexandre Petit-Bianco  
10726
 
10727
        * parse.y (patch_method_invocation): Don't override primary if one
10728
        is already provided, but let this$ be built. Fixed comment.
10729
 
10730
2001-07-12  Alexandre Petit-Bianco  
10731
 
10732
        * parse.y (empty_statement:): Report empty statement error only
10733
        when found at class declaration level.
10734
        Fixes PR java/3635
10735
 
10736
2001-07-12  Tom Tromey  
10737
 
10738
        * expr.c (expand_load_internal): New function.
10739
        (LOAD_INTERNAL): Use it.
10740
 
10741
2001-07-11  Alexandre Petit-Bianco  
10742
 
10743
        * parse.y (verify_constructor_super): Compare anonymous class ctor
10744
        args with `valid_method_invocation_conversion_p.'
10745
        Fixes PR java/3285
10746
 
10747
2001-07-10  Alexandre Petit-Bianco  
10748
 
10749
        * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
10750
        `-fsyntax-only.' Fixes PR java/3248
10751
 
10752
2001-07-10  Alexandre Petit-Bianco  
10753
 
10754
        * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
10755
 
10756
2001-07-10  Alexandre Petit-Bianco  
10757
 
10758
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
10759
        current function is static. Fixes PR java/1970
10760
 
10761
2001-07-09  Alexandre Petit-Bianco  
10762
 
10763
        * parse.y (patch_method_invocation): Add enclosing context to ctor
10764
        calls if necessary. Fixes PR java/2953
10765
 
10766
2001-07-09  Alexandre Petit-Bianco  
10767
 
10768
        * parse.y (resolve_package): Abort if qualified expression member
10769
        isn't right.
10770
        (qualify_ambiguous_name): Don't qualify as type if `this' in use.
10771
        Fixes PR java/1391
10772
 
10773
2001-07-07  Zack Weinberg  
10774
 
10775
        * verify.c: Don't use // comments.
10776
 
10777
2001-07-05  Tom Tromey  
10778
 
10779
        * lang.c (flag_assume_compiled): Removed.
10780
        * java-tree.h (flag_assume_compiled): Removed.
10781
        * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
10782
        -fhash-synchronization, -fuse-divide-subroutine,
10783
        -fcheck-references, -femit-class-file, -femit-class-files,
10784
        -fassume-compiled.  Updated --encoding information.  Changed
10785
        -foutput-class-dir to `-d'.
10786
 
10787
2001-07-04  Daniel Berlin  
10788
 
10789
        * jcf-parse.c (parse_class_file): Add lineno parameter to
10790
        debug_start_source_file call.
10791
 
10792
2001-07-04  Joseph S. Myers  
10793
 
10794
        * gcj.texi: Use gpl.texi.
10795
        * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
10796
        dependencies and use doc/include in search path.
10797
 
10798
2001-07-03  Jeff Sturm  
10799
 
10800
        * parse.y (fix_constructors): Test if a CALL_EXPR invokes
10801
        `this'.  If so, don't build instance initializers.
10802
 
10803
2001-07-03  Alexandre Petit-Bianco  
10804
 
10805
        * parse.y (resolve_expression_name): Improved error message for
10806
        inner class cases. Fixes PR java/1958
10807
 
10808
2001-06-28  Gabriel Dos Reis  
10809
 
10810
        * lang.c: #include diagnostic.h
10811
        (lang_print_error): Add a `diagnostic_context *' parameter.
10812
        (java_dummy_print): Likewise.
10813
        * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
10814
 
10815
2001-06-27  Alexandre Petit-Bianco  
10816
 
10817
        * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
10818
        * jcf.h (typedef struct JCF): New bitfield `finished.'
10819
        (JCF_FINISH): Set `finished.'
10820
        (JCF_ZERO): Reset `finished.'
10821
        Fixes PR java/2633
10822
 
10823
2001-06-27  Alexandre Petit-Bianco  
10824
 
10825
        * parse.y (class_body_declaration:): Don't install empty instance
10826
        initializers.
10827
        Fixes PR java/1314
10828
 
10829
2001-06-27  Alexandre Petit-Bianco  
10830
 
10831
        * class.c (set_super_info): Call `set_class_decl_access_flags.'
10832
        (set_class_decl_access_flags): New function.
10833
        * java-tree.h (set_class_decl_access_flags): New prototype.
10834
        * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
10835
        (parse_class_file): New local `decl_max_locals.' Take wide types
10836
        into account to compute DECL_MAX_LOCALS.
10837
        * parse.y (type_import_on_demand_declaration:): Ignore duplicate
10838
        imports on demand.
10839
 
10840
2001-06-22  Jan van Male  
10841
 
10842
        * zipfile.h: Use GCC_JCF_H instead of JCF_H.
10843
 
10844
2001-06-20  Alexandre Petit-Bianco  
10845
 
10846
        * class.c (java_hash_tree_node): Fixed indentation in leading comment.
10847
        * parse.y (do_resolve_class): Moved comments out to leading comment
10848
        section. Removed local `start', New local `_ht' and
10849
        `circularity_hash.'  Record `enclosing' in hash table and search
10850
        it to detect circularity.  Use `enclosing' as an argument to
10851
        `lookup_cl.' Free the hash table when done.
10852
 
10853
2001-06-19  Tom Tromey  
10854
 
10855
        * lex.c (java_read_char): Disallow invalid and overlong
10856
        sequences.  Fixes PR java/2319.
10857
 
10858
2001-06-05  Jeff Sturm  
10859
 
10860
        * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
10861
 
10862
2001-06-04  Alexandre Petit-Bianco  
10863
 
10864
        * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
10865
        arguments accordingly.
10866
 
10867
2001-06-02  Joseph S. Myers  
10868
 
10869
        * gcj.texi: Move contents to just after title page.
10870
 
10871
2001-06-01  Alexandre Petit-Bianco  
10872
 
10873
        * parse.y (type_literals:): Use `build_incomplete_class_ref' with
10874
        builtin type.
10875
        (patch_incomplete_class_ref): Build the class ref, build the class
10876
        init if necessary, complete the tree.
10877
        Fixes PR java/2605
10878
 
10879
2001-05-31  Alexandre Petit-Bianco  
10880
 
10881
        * parse.y (lookup_field_wrapper): Test `name' code.
10882
        (resolve_qualified_expression_name): Test `qual_wfl' code.
10883
        (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
10884
        handle `qual_wfl' by code.
10885
        (maybe_build_primttype_type_ref): Test `wfl' code.
10886
 
10887
2001-05-23  Theodore Papadopoulo  
10888
 
10889
        * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
10890
        fdl.texi.
10891
        (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls.  Create
10892
        the dvi file in the java directory.
10893
 
10894
2001-05-25  Sam TH  
10895
 
10896
        * gen-table.pl javaop.h jcf.h lex.h,
10897
        parse.h: Fix header include guards.
10898
 
10899
2001-05-23  Joseph S. Myers  
10900
 
10901
        * jv-scan.c (version): Update copyright year.
10902
 
10903
2001-05-21  Per Bothner  
10904
 
10905
        * jcf-parse.c (read_class):  If class is from .class or .zip file
10906
        and it's already been read, don't push/pop parser context.
10907
 
10908
2001-05-18  Per Bothner  
10909
 
10910
        * jvspec.c (lang_specific_pre_link):  Re-arrange the linker
10911
        command line so the jvgenmain-generated main program comes first.
10912
 
10913
2001-05-15  Tom Tromey  
10914
 
10915
        * class.c (build_utf8_ref): Don't generate identifier based on
10916
        utf8const contents.
10917
 
10918
2001-05-12  Richard Henderson  
10919
 
10920
        * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
10921
        * expr.c (java_lang_expand_expr): Expand it.
10922
        (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
10923
        calling build_exception_object_ref.
10924
        * parse.y (catch_clause_parameter): Likewise.
10925
        (build_dot_class_method): Likewise.
10926
        (try_reference_assignconv): Likewise.
10927
        * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
10928
        * jcf-write.c (generate_bytecode_insns): Likewise.
10929
 
10930
2001-05-07  Alexandre Petit-Bianco  
10931
 
10932
        * parse.y (build_unresolved_array_type): Set
10933
        EXPR_WFL_QUALIFICATION on the newly created wfl.
10934
        Fixes PR java/2538. Fixes PR java/2535.
10935
 
10936
2001-05-07  Alexandre Petit-Bianco  
10937
 
10938
        * parse.y (fix_constructors): Removed unnecessary assignment to
10939
        local. Moved assignment to `this$', fixed comments and
10940
        indentation.
10941
        (build_wfl_wrap): Fixed indentation.
10942
        Fixes PR java/2598, java/2579 and java/2658.
10943
 
10944
2001-05-03  Mo DeJong  
10945
 
10946
        * lex.c (java_new_lexer): Call iconv_close on temp handle used to
10947
        check for byte swap.
10948
 
10949
2000-05-02  Jeff Sturm  
10950
 
10951
        * expr.c (build_class_init): Move MODIFY_EXPR
10952
        outside of COND_EXPR.  Remove variable `call'.
10953
 
10954
2001-05-02  Kaveh R. Ghazi  
10955
 
10956
        * decl.c: NULL_PTR -> NULL.
10957
        * jcf-write.c: Likewise.
10958
 
10959
2001-05-01  Tom Tromey  
10960
 
10961
        * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
10962
        (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
10963
        * gcj.texi: Updated copyright text.  Include fdl.texi.
10964
        (Top): Link to new node.
10965
 
10966
2001-05-01  Per Bothner  
10967
 
10968
        * parse.h (REGISTER_IMPORT):  Use tree_cons instead of chainon.
10969
 
10970
2001-05-01  Per Bothner  
10971
 
10972
        * parse.y (java_pop_parser_context):  The TREE_VALUE of a link in the
10973
        import_list contains the name, not the TREE_PURPOSE.
10974
 
10975
2001-04-29  Kaveh R. Ghazi  
10976
 
10977
        * jcf-io.c (read_zip_member): Cast to long in comparison with
10978
        signed value.
10979
 
10980
        * jvspec.c (lang_specific_driver): Initialize variables.
10981
 
10982
        * mangle.c (find_compression_record_match): Likewise.
10983
 
10984
        * typeck.c (build_null_signature): Provide static prototype.  Mark
10985
        parameter with ATTRIBUTE_UNUSED.
10986
 
10987
        * verify.c (verify_jvm_instructions): Initialize variable.
10988
 
10989
2001-04-27  Bryce McKinlay  
10990
 
10991
        * parse.y (do_resolve_class): Check for cyclic inheritance during
10992
        inner class resolution.
10993
 
10994
2001-04-27  Per Bothner  
10995
 
10996
        * parse.y (java_expand_classes):  Don't change ctxp_for_generation
10997
        while iterating, since that could cause gc to lose stuff.
10998
 
10999
2001-04-26  Per Bothner  
11000
 
11001
        Fix method search wrt scope of inner classes to match JLS2.
11002
        * typeck.c (build_null_signature):  New static function.
11003
        (has_method):  New function.  Uses build_null_signature and lookup_do.
11004
        * java-tree.h (has_method):  New declaration.
11005
        * parse.y (find_applicable_accessible_methods_list):  Do not search
11006
        context of inner classes here.
11007
        (patch_method_invocation):  Search scope, ie. current and outer clases,
11008
        for method matching simple name, to find class.
11009
 
11010
2001-04-26  Per Bothner  
11011
 
11012
        * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
11013
        Fix thinko:  If a single case, use if_icmpeq, not ifeq.
11014
 
11015
        * constants.c (find_methodref_with_class_index):  New function.
11016
        (find_methodref_index):  Use find_methodref_with_class_index.
11017
        * java-tree.h (find_methodref_with_class_index):  New declaration.
11018
        * jcf-write.c (generate_bytecode_insns case CALL_EXPR):  Don't change
11019
        DECL_CONTEXT, instead use new find_methodref_with_class_index function.
11020
        If context changed from interface to class, don't use invokeinterface.
11021
 
11022
2001-04-25  Per Bothner  
11023
 
11024
        * verify.c (verify_jvm_instructions):  For field instructions,
11025
        check that field index is valid.  For invoke instructions, check that
11026
        method index is valid.
11027
 
11028
2001-04-25  Alexandre Oliva  
11029
 
11030
        * config-lang.in (target_libs): Copy from $libgcj_saved.
11031
 
11032
2001-04-25  Bryce McKinlay  
11033
 
11034
        * decl.c (init_decl_processing): Add new class "protectionDomain"
11035
        field.
11036
        * class.c (make_class_data): Set initial value for "protectionDomain".
11037
 
11038
2001-04-22  Kaveh R. Ghazi  
11039
 
11040
        * jvspec.c (lang_specific_driver): Fix memory allocation
11041
        deficit, by using concat in lieu of xmalloc/sprintf.
11042
 
11043
2001-04-20  Per Bothner  
11044
 
11045
        Fixes to compile multiple .class files at once.
11046
        * decl.c (init_decl_processing):  Don't set CLASS_LOADED_P.
11047
        * java-tree.h (CLASS_PARSED_P):  New macro.
11048
        (CLASS_LOADED_P):  Re-define to use TYPE_SIZE and CLASS_PARSED_P.
11049
        * jcf-parse.c (jcf_parse_source):  Inline into read_class.
11050
        (read_class):  Avoid some code duplication.
11051
        Don't call JCF_FINISH for a .class file - might be needed later.
11052
        (jcf_parse):  Don't call layout_class here.  Check/set CLASS_PARSED_P
11053
        rather than CLASS_LOADED_P, since latter implies class laid out.
11054
        (yyparse):  Do layout_class and JCF_FINISh here instead, in pass 2.
11055
        * parse.y:  Don't need to set CLASS_LOADED_P for array types.
11056
 
11057
2001-04-11  Kaveh R. Ghazi  
11058
 
11059
        * Make-lang.in (java/boehm.o): Depend on toplev.h.
11060
 
11061
        * boehm.c: Include toplev.h.
11062
 
11063
2001-04-06  Tom Tromey  
11064
            Alexandre Petit-Bianco  
11065
 
11066
        Fix for PR gcj/1404 and PR gcj/2332:
11067
        * parse.y (build_array_from_name): If we use the type_wfl then
11068
        accumulate dimensions from the original type as well.
11069
        (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
11070
 
11071
2001-04-06  Tom Tromey  
11072
 
11073
        * parse.y (analyze_clinit_body): Return true if the second operand
11074
        of a METHOD_EXPR is nonzero.
11075
 
11076
2001-04-06  Tom Tromey  
11077
 
11078
        * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
11079
        directory.
11080
        ($(srcdir)/java/parse.c): Likewise.
11081
 
11082
2001-04-05  Alexandre Petit-Bianco  
11083
 
11084
        * gcj.texi: Use `which-gcj' instead of `which-g77.'
11085
        (version-gcc): Initialized.
11086
        (which-gcj): Likewise.
11087
 
11088
2001-04-04  Alexandre Petit-Bianco  
11089
 
11090
        * java-tree.h (struct lang_decl): New macro
11091
        `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
11092
        * parse.y (build_instance_initializer): New function.
11093
        (add_instance_initializer): Use it.
11094
        (java_fix_constructors): Set `current_class' before fix pass.
11095
        (fix_constructors): Just return if already fixed. Move `super()'
11096
        invocation ahead. Use `build_instance_initializer.'
11097
        Fixes PR java/1315.
11098
 
11099
2001-04-04  Alexandre Petit-Bianco  
11100
 
11101
        * parse.y (resolve_qualified_expression_name): Pass field's
11102
        DECL_CONTEXT to `not_accessible_p.'
11103
        (not_accessible_p): Changed parameters order in `inherits_from_p'
11104
        invocation.
11105
 
11106
2001-03-27  Andrew Haley  
11107
 
11108
        * lang-options.h: Add flag_check_references.
11109
 
11110
2001-04-04  Per Bothner  
11111
 
11112
        * java-tree.h (CONSTANT_VALUE_P):  New macro.
11113
        * jcf-write.c (generate_classfile):  Use CONSTANT_VALUE_P.
11114
        * parse.y (maybe_build_class_init_for_field):  New static function.
11115
        (resolve_expression_name, resolve_field_access):  Use
11116
        maybe_build_class_init_for_field instead of build_class_init
11117
        This does not do the init if the field is compile-time-constant.
11118
        (resolve_field_access):  Simplify.
11119
 
11120
        * parse.y (fold_constant_for_init):  Merge test into switch.
11121
 
11122
2001-04-03  Zack Weinberg  
11123
 
11124
        * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
11125
        on gansidecl.h.
11126
        * buffer.c, jvgenmain.c: Don't include gansidecl.h.
11127
 
11128
2001-04-02  Zack Weinberg  
11129
 
11130
        * expr.c (pop_type_0): Save the result of the first
11131
        lang_printable_name call in a scratch buffer, so it
11132
        won't be clobbered by the second call.
11133
 
11134
2001-03-30  Alexandre Petit-Bianco  
11135
 
11136
        * parse-scan.y (array_type:): Rewritten.
11137
        (type_declaration:): `empty_statement' replaces `SC_TK.'
11138
        (class_member_declaration:): `empty statement' added.
11139
        (method_body:): Simplified.
11140
        (static_initializer:): Likewise.
11141
        (primary_no_new_array:): Use `type_literals.'
11142
        (type_literals:): New rule.
11143
        (dims:): Set and update `bracket_count.'
11144
        Fixes PR java/1074. Fixes PR java/2412.
11145
 
11146
2001-03-28  Hans Boehm  
11147
 
11148
        * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
11149
        (get_boehm_type_descriptor): Set type on returned value to be a
11150
        pointer length integer.
11151
 
11152
2001-03-28  Kaveh R. Ghazi  
11153
 
11154
        * expr.c (pop_type_0): Call `concat' rather than building the
11155
        string manually.
11156
        (pop_type): Add format specifier in call to `error'.
11157
 
11158
        * parse.y (patch_method_invocation): Avoid casting away
11159
        const-ness.
11160
 
11161
2001-03-28  Jeffrey Oldham  
11162
 
11163
        * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
11164
 
11165
2001-03-28  Richard Henderson  
11166
 
11167
        IA-64 ABI Exception Handling:
11168
        * Make-lang.in (except.o): Don't depend on eh-common.h.
11169
        * check-init.c (check_init): Handle EXC_PTR_EXPR.
11170
        * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
11171
        [soft_exceptioninfo_call_node]: Remove.
11172
        [eh_personality_libfunc, lang_eh_runtime_type]: New.
11173
        (end_java_method): No emit_handlers.
11174
        * except.c (java_set_exception_lang_code): Remove.
11175
        (method_init_exceptions): Don't call it.
11176
        (prepare_eh_table_type): No CATCH_ALL_TYPE.
11177
        (build_exception_object_ref): New.
11178
        (expand_end_java_handler): Update for except.h name changes.
11179
        (emit_handlers, expand_resume_after_catch): Remove.
11180
        * expr.c (java_lang_expand_expr): Update for except.h name changes.
11181
        (process_jvm_instruction): Use build_exception_object_ref.
11182
        * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
11183
        (soft_exceptioninfo_call_node): Remove.
11184
        (build_exception_object_ref): Declare.
11185
        * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
11186
        soft_exceptioninfo_call_node.  Move processing ...
11187
        [EXC_PTR_EXPR]: ... here.
11188
        * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
11189
        * parse.y (catch_clause_parameter): Use build_exception_object_ref.
11190
        (source_end_java_method): No java_set_exception_lang_code or
11191
        emit_handlers.
11192
        (build_dot_class_method): Use build_exception_object_ref.
11193
        (try_reference_assignconv): Check EXC_PTR_EXPR not
11194
        soft_exceptioninfo_call_node.
11195
 
11196
2001-03-28  Richard Henderson  
11197
 
11198
        * java-tree.h (throw_node): Define as a single member of
11199
        java_global_trees instead of a separate array.
11200
        (JTI_THROW_NODE): New.
11201
        * decl.c (throw_node): Don't declare.
11202
        (init_decl_processing): Init a scalar throw_node.
11203
        Don't register it for gc.
11204
        * check-init.c (check_init): Reference scalar throw_node.
11205
        * expr.c (build_java_athrow): Likewise.
11206
        * jcf-write.c (generate_bytecode_insns): Likewise.
11207
        * parse.h (BUILD_THROW): Likewise.
11208
 
11209
2001-03-28  Richard Henderson  
11210
 
11211
        * decl.c (end_java_method): Do not save and restore
11212
        flag_non_call_exceptions.
11213
        * parse.y (source_end_java_method): Likewise.
11214
        * lang.c (flag_exceptions): Don't declare.
11215
        (java_init_options): Set flag_non_call_exceptions.  Set
11216
        flag_exceptions here ...
11217
        (java_init): ... not here.
11218
 
11219
2001-03-27  Richard Henderson  
11220
 
11221
        * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
11222
        exceptions_via_longjmp.
11223
 
11224
        * lang.c (flag_new_exceptions): Don't declare it.
11225
        (java_init_options): Or set it.
11226
 
11227
2001-03-27  Richard Henderson  
11228
 
11229
        * decl.c (end_java_method): Rename asynchronous_exceptions to
11230
        flag_non_call_exceptions.
11231
        * parse.y (source_end_java_method): Likewise.
11232
 
11233
2001-03-27  Kaveh R. Ghazi  
11234
 
11235
        * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
11236
 
11237
2001-03-26  Mark Mitchell  
11238
 
11239
        * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
11240
 
11241
2001-03-26  Alexandre Petit-Bianco  
11242
 
11243
        * parse.y (find_as_inner_class): Follow current package
11244
        indications not to mistakingly load an unrelated class.
11245
 
11246
2001-03-25  Kaveh R. Ghazi  
11247
 
11248
        * constants.c (PUTN): Use memcpy, not bcopy.
11249
 
11250
        * lex.c (java_read_char): Use memmove, not bcopy.
11251
 
11252
        * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
11253
 
11254
2001-03-23  Per Bothner  
11255
 
11256
        * verify.c (verify_jvm_instructions):  Replace 3 pop_type by POP_TYPE
11257
        macro for better error pin-pointing.
11258
        * java-tree.h:  Fix typo in comment.
11259
 
11260
        * jcf-write.c (generate_bytecode_insns):  Changes to TRY_FINALLY_EXPR.
11261
        Don't include jsr/goto in exception range.
11262
        Check if start and end of exception range are the same (also TRY_EXPR).
11263
        Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
11264
        However, do emit the following goto even if try_block is empty.
11265
        Defer freeing exception_decl until after the finalizer, to make
11266
        sure the local isn't reused in the finalizer.  Fixes PR java/1208.
11267
 
11268
        * parse.y (java_complete_lhs):  If the try-clause is empty, just
11269
        return the finally-clause and vice versa.
11270
 
11271
2001-03-23  Alexandre Petit-Bianco  
11272
 
11273
        * gcj.texi (Input Options): documented the check for attribute
11274
        `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
11275
        * java-tree.h (flag_force_classes_archive_check): Declared extern.
11276
        * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
11277
        (jcf_parse): Check for the right classes archive if necessary.
11278
        * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
11279
        (jcf_parse_fields): Fixed indentation.
11280
        * jcf-write.c (append_gcj_attribute): New function.
11281
        (generate_classfile): Compute the attribute count, invoke
11282
        `append_gcj_attribute'.
11283
        * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
11284
        turned into bit-fields. New bit-field `right_zip.'
11285
        (JCF_ZERO): Set `right_zip' to zero.
11286
        * lang-options.h (-fforce-classes-archive-check): Added flag.
11287
        * lang.c (flag_force_classes_archive_check): New flag.
11288
        (lang_f_options): New entry `force-classes-archive-check.'
11289
        Fixes PR java/1213.
11290
 
11291
2001-02-07  Andrew Haley  
11292
 
11293
        * gcj.texi (Configure-time Options): Add -fcheck-references.
11294
        * expr.c (build_java_indirect_ref): New function.
11295
        (java_check_reference): New function.
11296
        (build_java_array_length_access): Use build_java_indirect_ref to
11297
        check for null references.
11298
        (build_java_arrayaccess): Likewise.
11299
        (build_get_class): Likewise.
11300
        (build_field_ref): Likewise.
11301
        (invoke_build_dtable): Likewise.
11302
        (build_invokeinterface): Likewise.
11303
        * lang.c (lang_f_options): Add flag_check_references.
11304
        * jvspec.c (jvgenmain_spec): Add flag_check_references.
11305
        * java-tree.h (flag_check_references): New variable.
11306
        * lang.c (flag_check_references): Likewise.
11307
        * parse.y (patch_invoke): Use java_check_reference.
11308
        (patch_assignment): Allow for extra nesting in
11309
        _Jv_CheckArrayStore.
11310
 
11311
2001-03-23  Bryce McKinlay  
11312
 
11313
        * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
11314
        * lex.c (cxx_keywords): Likewise.
11315
 
11316
2001-03-21  Alexandre Petit-Bianco  
11317
 
11318
        * parse.y (qualify_ambiguous_name): Broaden `length'
11319
        recognition. Help MODIFY_EXPR be resolved as expression names.
11320
        Fixes PR java/2066. Fixes PR java/2400.
11321
 
11322
2001-03-21  Bryce McKinlay  
11323
 
11324
        * gjavah.c (process_file): Mark interface definitions with
11325
        "__attribute__ ((java_interface))".
11326
 
11327
2001-03-21  Alexandre Petit-Bianco  
11328
 
11329
        * class.c (layout_class): Fixed push_super_field's second
11330
        argument. Fixes PR java/2333.
11331
        (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
11332
        too early to lay innerclasses out.
11333
 
11334
2001-03-20  Tom Tromey  
11335
            Alexandre Petit-Bianco 
11336
 
11337
        * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
11338
        inside an array reference. Insertion of the array store check
11339
        rewritten. Fixes PR java/2299.
11340
 
11341
2001-03-20  Tom Tromey  
11342
 
11343
        * lex.c (java_read_unicode): Only accept leading `u's.
11344
 
11345
2001-03-20  Tom Tromey  
11346
 
11347
        * jcf-parse.c (read_class): Initialize `class'.
11348
 
11349
2001-03-20  Matt Kraai  
11350
 
11351
        * jcf_parse.c (jcf_parse): Eliminate unused variable.
11352
 
11353
2001-03-19  Mark Mitchell  
11354
 
11355
        * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
11356
        (layout_class): Likewise.
11357
        (layout_class_method): Likewise.
11358
        (emit_register_classes): Likewise.
11359
        * decl.c (builtin_function): Likewise.
11360
        (give_name_to_locals): Likewise.
11361
 
11362
2001-03-19  Per Bothner  
11363
 
11364
        * jcf-parse.c (load_inner_classes):  Check CLASS_LOADED_P
11365
        before trying to load an inner class.
11366
 
11367
        Fixes to process to command-line .class files in two passes.
11368
        * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P):  New flags.
11369
        (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P):  Rename to ..
11370
        (CLASS_FROM_CURRENTLY_COMPILED_P):  ... because it is more general now.
11371
        * class.c (is_compiled_class):  Fix for renamed flag.
11372
        * parse.y (maybe_create_class_interface_decl):  Likewise.
11373
        * jcf-parse.c (yyparse):  Also set if compiling .class files.
11374
        * jcf-parse.c (read_class);  Read current_class.
11375
        (jcf_parse):  Make static.
11376
        (load_inner_classes):  New function, with code moved from jcf_parse,
11377
        because we need to inner classes after the command-line files are read.
11378
        (yyparse):  Set finput to NULL when it doesn't need to be closed.
11379
        Reduce use of main_jcf (basically only for archive) and
11380
        use finput instead of main_jcf->read_state.
11381
        Inline jcf_figure_file_type into yyparse.
11382
        Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
11383
        Defer load_inner_classes and parse_class_file to a second pass,
11384
        after we've correctly mapped command-line .clas fiels to classes.
11385
        (jcf_figure_file_type):  Removed.
11386
        * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE):  Removed flags.
11387
        (JCF_ZERO):  Also clear zipd field.
11388
        * zipfile.h:  Conditionalize on JCF_H insread of JCF_ZIP.
11389
 
11390
2001-03-18  Matt Kraai  
11391
 
11392
        * jcf-parse.c (yyparse): Change ch from char * to char.
11393
 
11394
2001-03-19  Per Bothner  
11395
 
11396
        * jvspec.c (lang_specific_driver):  Check for .zip and .jar files.
11397
        Add constructed filelist-file at end, following -xjava.  Thus any .o
11398
        and library files are not affected by the -xjava.  Also wrap
11399
        explicit @FILE with -xjava and -xnone.
11400
 
11401
2001-03-19  Andrew Haley  
11402
 
11403
        * class.c (build_static_field_ref): Call make_decl_rtl() after
11404
        setting the DECL_EXTERNAL flag.
11405
 
11406
2001-03-17  Per Bothner  
11407
 
11408
        * decl.c (clear_binding_level):  Fix initializer (broke 03-15).
11409
 
11410
        * jcf-write.c (generate_bytecode_insns):  Handle emitting iinc
11411
        when result is is needed (target is STACK_TARGET).
11412
 
11413
        * parse.h (JDEP_SOLV):  Removed.
11414
        * parse.y (register_incomplete_type):  Use JDEP_TO_RESOLVE instead.
11415
 
11416
        * parse.y (incomplete_class_list): Removed.
11417
        (obtain_incomplete_type): Don't use or set incomplete_class_list.
11418
        It doesn't work if resolve_class changes the name of an array type
11419
        that is on the list and then someone else looks for the modified name.
11420
        Also, seems liable to break when compiling multiple source files at
11421
        once.  So the simplest is to just remove incomplete_class_list -
11422
        it is only a minor space win and it is not even clear it saves time.
11423
 
11424
        * parse.y (resolve_class):  Remove unneeded promote_type.
11425
 
11426
2001-03-15  Per Bothner  
11427
 
11428
        * java-tree.h (BLOCK_IS_IMPLICIT):  New flag.
11429
        * parse.h (BLOCK_EXPR_ORIGIN):  Removed macro.
11430
        * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
11431
        Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
11432
 
11433
        * jcf-parse.c (yyparse):  Set/reset input_filename for source file.
11434
        * parse.y (java_expand_classes):  Likewise.
11435
 
11436
        * parse.y (expand_start_java_method):  Was only called once and had a
11437
        misleading name, so inline in caller java_complete_expand_method.
11438
        (enter_a_block):  Likewise inline in enter_block and remove.
11439
 
11440
        Remove junk from when gcc/java was created (by copying from C/C++).
11441
        * decl.c (keep_next_level_flag, keep_next_if_subblocks):  Remove.
11442
        (struct binding_level):  Remove fields keep, keep_if_subblocks,
11443
        more_cleanups_ok, have_cleanups (which have never been used).
11444
        (pushlevel, poplevel):  Remove related useless code.
11445
 
11446
        * class.c (make_class_data):  The class_dtable_decl (i.e. the
11447
        vtable for Class) should be external, except when compiling Class.
11448
 
11449
        * jvspec.c (lang_specific_driver):  Fix -C handling.
11450
        Check -save-temps to see if temp @FILE should be deleted.
11451
        Follow-up to/fix for February 16 patch.
11452
 
11453
        * verify.c (verify_jvm_instructions):  Better error msgs for dup.
11454
        (type_stack_dup):  Remove no-longer neded error check.
11455
 
11456
2001-03-15  Bryce McKinlay  
11457
 
11458
        * mangle.c (mangle_record_type): Rename 'from_pointer' argument
11459
        to 'for_pointer'. If this type is for a pointer (argument) mangling,
11460
        don't surround the element with 'N..E' if the type name is
11461
        unqualified.
11462
 
11463
2001-03-14  Mark Mitchell  
11464
 
11465
        * class.c (build_static_field_ref): Use COPY_DECL_RTL,
11466
        DECL_RTL_SET_P, etc.
11467
        (make_method_value): Likewise.
11468
        (get_dispatch_table): Likewise.
11469
 
11470
        * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
11471
 
11472
2001-03-07  Tom Tromey  
11473
 
11474
        * config-lang.in (lang_requires): Define.
11475
 
11476
2001-03-07  Brad Lucier  
11477
 
11478
        * typeck.c (convert): Check flag_unsafe_math_optimizations,
11479
        not flag_fast_math.
11480
 
11481
2001-03-05  Per Bothner  
11482
 
11483
        Fix a problem where rest_of_decl_compilation applied to
11484
        class_dtable_decl causes problems because it was done too early,
11485
        before output file was opened.
11486
        * decl.c (init_decl_processing):  Remove init of class_dtable_decl.
11487
        * class.c (class_dtable_decl):  Add macro - element of class_roots.
11488
        (make_class_data):  Define class_dtable_decl.
11489
        * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl):  Removed.
11490
 
11491
2001-03-01  Zack Weinberg  
11492
 
11493
        * java/class.c, java/decl.c, java/java-tree.h: Replace all
11494
        uses of 'boolean' with 'bool'.
11495
 
11496
2001-03-01  Zack Weinberg  
11497
 
11498
        * lang-specs.h: Add zero initializer for cpp_spec field to all
11499
        array elements.
11500
 
11501
2001-02-16  Per Bothner  
11502
 
11503
        Handle compiling multiple input files at once, and @FILE syntax.
11504
        * gcj.texi:  Updated documentation to match.
11505
        * java-tree.h (flag_filelist_file, init_src_parse):  New declarations.
11506
        * jcf-parse.c (parse_source_file):  Split into ...
11507
        (parse_source_file_1):  New function - and:
11508
        (parse_source_file_2):  New function.
11509
        (yyparse):  On -ffilelist-file, open and scan named file.
11510
        On first pass over files, only do parse_source_file_1.
11511
        A new second pass calls parse_source_file_2 for each file to compile.
11512
        (init_jcf_parse):  Call init_src_parse.
11513
        * jvspec.c (INDIRECT_FILE_ARG):  New flag.
11514
        (lang_specific_driver):  Support @FILELIST-FILE syntax, as well
11515
        as multiple input file combined in one compilation.
11516
        * lang-options.h:  Add -ffilelist-file
11517
        * lang.c (flag_filelist_file):  New flag variable.
11518
        (lang_f_options):  Handle -ffilelist-file.
11519
        * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
11520
        * parse.h (struct parse_ctxt):  Remove fields incomplete_class and
11521
        gclass_list - use global fields of src_parse_roots instead.
11522
        * parse.y (src_parse_roots):  New array.
11523
        (incomplete_class_list, gclass_list):  New macros.
11524
        (push_parser_context, java_pop_parser_context,
11525
        java_parser_context_resume):  Don't fiddle with deleted fields.
11526
        (various):  Use incomplete_class gclass_list and global macros
11527
        instead of parse_ctxt fields - the lists are global.
11528
        (init_src_parse):  New function.
11529
 
11530
2001-02-23  Richard Kenner  
11531
 
11532
        * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
11533
 
11534
2001-02-20  Alexandre Petit-Bianco  
11535
 
11536
        * parse.y (check_inner_class_access): Moved declaration of local
11537
        `enclosing_decl_type' to the right location.
11538
 
11539
2001-02-19  Bryce McKinlay  
11540
 
11541
        * parse.y (parser_check_super_interface): Don't call
11542
        check_pkg_class_access for an inner interface.
11543
        (parser_check_super): Don't call check_pkg_class_access for inner
11544
        class.
11545
        (do_resolve_class): Simplify enclosing type loop. Don't call
11546
        check_pkg_class_access if CL and DECL are not set.
11547
        (find_in_imports_on_demand): Set DECL if class_type needed to be
11548
        loaded. Don't call check_pkg_class_access for an inner class.
11549
        (check_inner_class_access): Rewritten to implement member access
11550
        rules as per spec 6.6.1.
11551
        (check_pkg_class_access): Handle the empty package correctly.
11552
        (in_same_package): New function. Determine if two classes are in the
11553
        same package.
11554
 
11555
2001-02-18  Bryce McKinlay  
11556
 
11557
        * typeck.c (build_java_array_type): Don't try to poke a public `clone'
11558
        method into array types.
11559
        * parse.y (patch_method_invocation): Bypass access check on clone call
11560
        to array instance.
11561
 
11562
2001-02-15  Alexandre Petit-Bianco  
11563
 
11564
        * expr.c (build_instanceof): Check for arrays when trying fold to
11565
        false.
11566
 
11567
2001-02-15  Jim Meyering  
11568
 
11569
        * Make-lang.in (java.install-common): Depend on `installdirs'.
11570
        (java.install-info): Likewise.
11571
 
11572
2001-02-15  Bryce McKinlay  
11573
 
11574
        * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
11575
 
11576
2001-02-14  Tom Tromey  
11577
            Alexandre Petit-Bianco  
11578
 
11579
        Fix for PR java/1261.
11580
        * typeck.c (build_java_array_type): Add public `clone' method to
11581
        arrays.
11582
        * parse.y (resolve_qualified_expression_name): Use current_class
11583
        when checking for inaccessibility.
11584
        (patch_method_invocation): Fixed error message when accessibility
11585
        denied.  Added `from_super' argument.
11586
 
11587
2001-02-14  Alexandre Petit-Bianco  
11588
 
11589
        * parse.y (resolve_class): Don't build a fake decl. Use the one
11590
        already built.
11591
        * typeck.c (build_java_array_type): Build and assign decl to array
11592
        type.
11593
 
11594
2001-02-14  Alexandre Petit-Bianco  
11595
 
11596
        * parse.y (not_accessible_p): Changed leading comment. Added extra
11597
        `where' argument. Use it to enforce protected access rules.
11598
        (resolve_qualified_expression_name): Added extra argument to
11599
        not_accessible_p.
11600
        (patch_method_invocation): Use argument `primary' to provide
11601
        not_accessible_p with an extra argument.
11602
        (lookup_method_invoke): Added extra argument to not_accessible_p.
11603
        (search_applicable_method_list): Likewise.
11604
 
11605
2001-02-13  Alexandre Petit-Bianco  
11606
 
11607
        * parse.y (resolve_qualified_expression_name): Try to resolve as
11608
        an inner class access only if `decl' is a TYPE_DECL.
11609
 
11610
2001-02-13  Alexandre Petit-Bianco  
11611
 
11612
        * decl.c (classdollar_identifier_node): Initialize.
11613
        * java-tree.h (enum java_tree_index): New entry
11614
        `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
11615
        (classdollar_identifier_node): New macro.
11616
        (ID_CLASSDOLLAR_P): Likewise.
11617
        * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
11618
        (build_dot_class_method_invocation): Likewise.
11619
        (find_applicable_accessible_methods_list): `class$' can't be
11620
        inherited.
11621
 
11622
2001-02-09  Raja R Harinath  
11623
 
11624
        * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
11625
 
11626
2001-02-09  Alexandre Petit-Bianco  
11627
 
11628
        * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
11629
        * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
11630
        gone.
11631
 
11632
2001-02-09  Alexandre Petit-Bianco  
11633
 
11634
        * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
11635
        outside of the `__U' sequence too.
11636
        (unicode_mangling_length): Count `_' or `U' outside of the `__U'
11637
        sequence too.
11638
 
11639
2001-02-09  Alexandre Petit-Bianco  
11640
 
11641
        * jvgenmain.c (error): Reversed 2001-02-01 deletion.
11642
 
11643
2001-02-08  Alexandre Petit-Bianco  
11644
 
11645
        * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
11646
        (JVGENMAIN_OBJS): Likewise.
11647
        * java-tree.h (append_gpp_mangled_name): New prototype.
11648
        * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
11649
        Removed cast calling `gcc_add_root.'
11650
        * jvgenmain.c (mangle_obstack): New global, initialized.
11651
        (main): Use it.
11652
        (do_mangle_class): Constify local `ptr.'
11653
        Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
11654
        append_gpp_mangle_name and update `count' if necessary.
11655
        Use `mangle_obstack.'
11656
        * mangle.c (append_unicode_mangled_name): Removed.
11657
        (append_gpp_mangled_name): Likewise.
11658
        (unicode_mangling_length): Likewise.
11659
        (mangle_member_name): Return type set to `void.'
11660
        (mangle_field_decl): Don't append `U' in escaped names.
11661
        (mangle_method_decl): Likewise.
11662
        (mangle_member_name): Just use `append_gpp_mangled_name.'
11663
        * mangle_name.c: New file.
11664
 
11665
2001-02-07  Per Bothner  
11666
 
11667
        * check-init.c (check_init):  Fix TRY_FINALLY_EXPR logic.
11668
 
11669
        * check-init.c (check_init):  Don't call done_alternative after
11670
        processing loop code, as a LOOP_EXPR never terminates normally.
11671
 
11672
2001-02-08  Joseph S. Myers  
11673
 
11674
        * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
11675
 
11676
2001-02-07  Alexandre Petit-Bianco  
11677
 
11678
        * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
11679
        DECLs.
11680
 
11681
2001-02-06  Tom Tromey  
11682
 
11683
        * lex.c (java_new_lexer): Longer error message.
11684
 
11685
2001-02-05  Jeff Sturm  
11686
            Alexandre Petit-Bianco  
11687
 
11688
        * typeck.c (build_prim_array_type): Added leading comment.
11689
        (build_java_array_type): Moved locals out of
11690
        block. Always create the `data' field, fixed alignment to match
11691
        C++.
11692
 
11693
2001-02-04  Tom Tromey  
11694
 
11695
        * expr.c (java_lang_expand_expr): Don't bother recomputing
11696
        `length'.  Use rest_of_decl_compilation, not make_decl_rtl.
11697
        Fixes PR java/1866.
11698
 
11699
2001-02-05  Alexandre Petit-Bianco  
11700
 
11701
        * parse.y (process_imports): Save the original name of the import
11702
        for better error report.
11703
 
11704
2001-02-04  Bryce McKinlay  
11705
 
11706
        * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
11707
        of macros used when compiling jvspec.c.
11708
        * jvspec.c (lang_specific_driver): Link with the shared
11709
        libgcc by default.
11710
 
11711
2001-02-04  Richard Kenner  
11712
 
11713
        * check-init.c (check_init): Call internal_error instead of fatal.
11714
        * expr.c (java_lang_expand_expr): Likewise.
11715
        * jcf-parse.c (get_constant): Likewise.
11716
        * mangle.c (java_mangle_decl): Likewise.
11717
        * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
11718
        (operator_string): Likewise.
11719
        * check-init.c (check_init): Call abort instead of fatal.
11720
        * class.c (build_class_ref): Likewise.
11721
        * constants.c (write_constant_pool): Likewise.
11722
        * decl.c (start_java_method): Likewise.
11723
        * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
11724
        (java_stack_dup, encode_newarray_type): Likewise.
11725
        (build_java_array_length_access): Likewise.
11726
        (build_java_check_indexed_type, expand_java_pushc): Likewise.
11727
        (build_java_soft_divmod, build_invokeinterface): Likewise.
11728
        * java-tree.h (INNER_CLASS_P): Likewise.
11729
        * jcf-parse.c (parse_signature, get_name_constant): Likewise.
11730
        (give_name_to_class, get_class_constant): Likewise.
11731
        * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
11732
        (find_constant_index, generate_bytecode_conditional): Likewise.
11733
        (generate_bytecode_insns, perform_relocations): Likewise.
11734
        * lex.c (java_unget_unicode, java_lex): Likewise.
11735
        * mangle.c (mangle_type, mangle_record_type): Likewise.
11736
        (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
11737
        (finish_mangling): Likewise.
11738
        * parse.h (MARK_FINAL_PARMS): Likewise.
11739
        * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
11740
        (obtain_incomplete_type, java_complete_class): Likewise.
11741
        (java_check_regular_methods, java_complete_expand_method): Likewise.
11742
        (cut_identifier_in_qualified, check_deprecation): Likewise.
11743
        (patch_invoke, find_applicable_accessible_methods_list): Likewise.
11744
        (java_complete_lhs, lookup_name_in_blocks): Likewise.
11745
        (check_final_variable_indirect_assignment, build_unaryop): Likewise.
11746
        * typeck.c (set_local_type, parse_signature_type): Likewise.
11747
        (parse_signature_string, build_java_signature): Likewise;
11748
        (set_java_signature): Likewise.
11749
        * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
11750
        * class.c (add_method): Call fatal_error instead of fatal.
11751
        (build_static_field_ref): Likewise.
11752
        * expr.c (build_known_method_ref, expand_invoke): Likewise.
11753
        * jcf-parse.c (get_constant, jcf_parse): Likewise.
11754
        * lex.c (java_new_new_lexer): Likewise.
11755
        * jv-scan.c (main): Likewise.
11756
        (fatal_error): Renamed from fatal.
11757
        * jcf-parse.c (yyparse): Call fatal_io_error instead of
11758
        pfatal_with_name.
11759
        * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
11760
        (yyparse): Likewise.
11761
        * jcf-write.c (make_class_file_name, write_classfile): Likewise.
11762
        * lex.c (java_get_line_col): Likewise.
11763
        * jcf-parse.c (load_class): Make errors non-fatal.
11764
        * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
11765
 
11766
2001-02-01  Bryce McKinlay  
11767
 
11768
        * jvgenmain.c (class_mangling_suffix): Remove unused string.
11769
        (error): Remove unused function.
11770
        (main): Don't use "__attribute__ alias" on generated class symbol.
11771
 
11772
2001-01-30  Alexandre Petit-Bianco  
11773
 
11774
        * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
11775
        argument.
11776
        * parse.y (finish_method_declaration): Code accounting for WFLed
11777
        method DECL_NAMEs deleted.
11778
        (check_abstract_method_definitions): Likewise.
11779
        (resolve_type_during_patch): Layout resolved type.
11780
        * typeck.c (lookup_do): Removed unused local.
11781
 
11782
2001-01-30  Bryce McKinlay  
11783
 
11784
        * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
11785
        * decl.c (init_decl_processing): Use integer_minus_one_node, not
11786
        integer_negative_one_node.
11787
        * expr.c (build_java_binop): Likewise.
11788
 
11789
2001-01-24  Jeff Sturm  
11790
 
11791
        * zextract.c (read_zip_archive): Read file_offset before writing
11792
        zipd and consequently clobbering the header contents.
11793
 
11794
2001-01-27  Kaveh R. Ghazi  
11795
 
11796
        * Make-lang.in: Remove all dependencies on defaults.h.
11797
        * decl.c: Don't include defaults.h.
11798
        * expr.c: Likewise.
11799
        * parse.y: Likewise.
11800
 
11801
2001-01-25  Alexandre Petit-Bianco  
11802
 
11803
        * ChangeLog (2001-01-21): Fixed typo.
11804
        * class.c (layout_class_method): Code accounting for WFLed
11805
        method DECL_NAMEs deleted.
11806
        * constant.c (find_methodref_index): Likewise.
11807
        * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
11808
        * java-tree.h (DECL_FUNCTION_WFL): New macro.
11809
        (struct lang_decl): New field `wfl'.
11810
        (java_get_real_method_name): Prototype deleted.
11811
        * mangle.c (mangle_method_decl): Code accounting for WFLed
11812
        method DECL_NAMEs deleted.
11813
        * parse.h (GET_METHOD_NAME): Macro deleted.
11814
        * parse.y (reset_method_name): Deleted.
11815
        (method_header): Set DECL_FUNCTION_WFL.
11816
        (check_abstract_method_header): Code accounting for WFLed method
11817
        DECL_NAMEs deleted.
11818
        (java_get_real_method_name): Deleted.
11819
        (check_method_redefinition): Code accounting for WFLed method
11820
        DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
11821
        (java_check_regular_methods): Likewise.
11822
        (java_check_abstract_methods): Likewise.
11823
        (java_expand_classes): Don't call `reset_method_name.'
11824
        (search_applicable_method_list): Use DECL_NAMEs instead of
11825
        GET_METHOD_NAME.
11826
        * typeck.c (lookup_do): Code accounting for WFLed method
11827
        DECL_NAMEs deleted.
11828
 
11829
2001-01-25  Richard Earnshaw  
11830
 
11831
        * lex.c (java_read_char): Check for EOF from getc first.
11832
 
11833
2001-01-23  Alexandre Petit-Bianco  
11834
 
11835
        * class.c (layout_class): Don't lay the superclass out if it's
11836
        already being laid out.
11837
        * jcf-parse.c (handle_innerclass_attribute): New function.
11838
        (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
11839
        handle_innerclasses_attribute.
11840
        (jcf_parse): Don't load an innerclasses if it's already being
11841
        laid out.
11842
        * jcf-write.c (append_innerclass_attribute_entry): Static
11843
        `anonymous_name' and its initialization deleted. `ocii' and `ini'
11844
        to be zero for anonymous classes.
11845
 
11846
2001-01-23  Alexandre Petit-Bianco  
11847
 
11848
        * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
11849
        necessary.
11850
        * jcf-parse.c (set_source_filename): Use
11851
        MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
11852
 
11853
2001-01-23  Alexandre Petit-Bianco  
11854
 
11855
        * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
11856
        gets a unique asm name.
11857
 
11858
2001-01-23  Alexandre Petit-Bianco  
11859
 
11860
        * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
11861
        (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11862
        if necessary.
11863
        (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
11864
        * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
11865
        * parse.y (lookup_package_type_and_set_next): Deleted.
11866
        (resolve_package): Removed unnecessary code.
11867
        (find_applicable_accessible_methods_list): `finit$' can't be
11868
        inherited.
11869
        * verify.c (pop_argument_types): Added missing prototype.
11870
 
11871
2001-01-23  Bryce McKinlay  
11872
 
11873
        * config-lang.in: Disable java by default.
11874
 
11875
2001-01-23  Tom Tromey  
11876
 
11877
        * gcj.texi (Copying): New node.
11878
        Added copyright information.
11879
 
11880
2001-01-21  Per Bothner  
11881
 
11882
        Various fixes to allow compiling a compressed .jar/.zip archive.
11883
        * zipfile.h (struct ZipFileCache):  Replace by struct ZipFile.
11884
        (struct ZipFile):  Add fields name and next (from  ZipFileCache).
11885
        (struct ZipDirectory):  New field zipf points to owning ZipFile.
11886
        * jcf.h (struct ZipDirectory):  Add forward declaration.
11887
        (struct JCF):   Declare zipd field to have type struct ZipDirectory.
11888
        Remove seen_in_zip and zip_offset fields.
11889
        (JCF_SEEN_IN_ZIP):  New macro.
11890
        * zextract.c (read_zip_archive):  Set ZipDirectory's zipf field.
11891
        * jcf-io.c:  Change all ZipFileCache to ZipFile.
11892
        (read_zip_member):  New function.
11893
        (open_in_zip):  Call read_zip_member.
11894
        * jcf-parse.c (find_in_current_zip):  Remove function.
11895
        (read_class):  Merge in find_in_current_zip functionality.
11896
        Call read_zip_member if needed.
11897
        (parse_zip_file_entries):  Use read_zip_member.
11898
        (process_zip_dir):  Update for removed and added JCF fields.
11899
        (jcf_figure_file_type):  Re-use, don't copy initial ZipFile struct.
11900
 
11901
2001-01-21  Per Bothner  
11902
 
11903
        Minor optimization of static ggc roots.
11904
        * jcf-parse.c (parse_roots):  New static field.
11905
        (current_field, current_method, current_file_list):  Replace by macros
11906
        naming fields of parse_roots.
11907
        (init_jcf_parse):  Combine 3 ggc_add_tree_root calls to 1.
11908
        * class.c (class_roots):  New static field.
11909
        (registered_class, fields_ident, info_ident, class_list):
11910
        New macros naming fields of parse_roots.
11911
        (build_static_field_ref):  Don't register roots here.
11912
        (layout_class):  Static field list replaced by macro class_list.
11913
        (init_class_processing):  Call ggc_add_tree_root for 4 roots.
11914
        Initialize fields_ident and info_ident here.
11915
 
11916
2001-01-21  Per Bothner  
11917
 
11918
        * jcf-parse.c (ggc_mark_jcf):  New function.
11919
        (init_jcf_parse):  Register current_jcf as ggc root.
11920
 
11921
2001-01-21  Per Bothner  
11922
 
11923
        * lang.c (put_decl_node):  Print method's name.
11924
 
11925
2001-01-21  Per Bothner  
11926
 
11927
        * verify.c (VERIFICATION_ERROR_WITH_INDEX):  New macro.
11928
        (verify_jvm_instructions):  Use it, for better error messages on loads.
11929
 
11930
2001-01-21  Per Bothner  
11931
 
11932
        * verify.c (merge_type_state):  Still may have to merge even if
11933
        LABEL_VERIFIED (label).
11934
 
11935
2001-01-21  Per Bothner  
11936
 
11937
        * parse.y (method_header):  Don't set the DECL_NAME of a FUNCTION_DECL
11938
        to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
11939
 
11940
2001-01-19  Per Bothner  
11941
 
11942
        * expr.c (pop_type_0):  Only return object_ptr_type_node on mismatch
11943
        if expeting an interface type.  Refines Tom's change of 2000-09-12.
11944
 
11945
2001-01-18  Per Bothner  
11946
 
11947
        * gcj.texi (Input Options): Mention .java files.
11948
 
11949
2001-01-17  Alexandre Petit-Bianco  
11950
 
11951
        * lang-options.h (-Wunsupported-jdk11): Removed.
11952
        * lang.c (flag_not_overriding): Deleted.
11953
        (flag_static_local_jdk1_1): Likewise.
11954
        (lang_W_options): Removed "unsupported-jdk11" entry.
11955
        * parse.y (java_check_methods): Removed dead code.
11956
 
11957
2001-01-17  Tom Tromey  
11958
 
11959
        Changes suggested by Per Bothner:
11960
        * gcj.texi (Input Options): Don't mention input files.
11961
        (Code Generation): Updated --main information.
11962
        (Invoking jcf-dump): Mention that --javap is incomplete.
11963
        From Alexandre Petit-Bianco:
11964
        (Warnings): Don't mention -Wunsupported-jdk11.
11965
        My stuff:
11966
        (Compatibility): Mention JDK 1.2-ness of libraries.
11967
        (Resources): Mention resources used when writing gcj.
11968
 
11969
2001-01-17  Tom Tromey  
11970
 
11971
        * gcj.texi: New file.
11972
        * Make-lang.in ($(srcdir)/java/gcj.info): New target.
11973
        (java.info): Depend on gcj.info.
11974
        (java/gcj.dvi): New target.
11975
        (java.dvi): Depend on gcj.dvi.
11976
        (java.install-info): Wrote.
11977
 
11978
2001-01-16  Jeff Sturm  
11979
 
11980
        * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
11981
        having called make_decl_rtl.
11982
 
11983
2001-01-14  Per Bothner  
11984
 
11985
        Various patches to emit better messages on verification errors.
11986
        * expr.c (push_type_0):  Return error indication on stack overflow,
11987
        instead of callinfg fatal.
11988
        (push_type):  Now just call push_type_0 (nd fatal on overflow).
11989
        (pop_type_0):  Return detailed error message (in a char** argument).
11990
        (pop_type):  If pop_type_0 fails, print error message.
11991
        (pop_argument_types):  Moved to verify.c.
11992
        * verify.c (pop_argument_types):  Moved from expr.c.
11993
        Return a (possible) error message, rather than void.
11994
        (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING):  New macros.
11995
        (verify_jvm_instruction):  Use new macros, improving error messages.
11996
        For case OPCODE_astore use object_ptr_type_node.
11997
        * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED):  New macros.
11998
        (pop_type_0, push_type_0, pop_argument_types):  Update accordingly.
11999
 
12000
        * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
12001
        constant, return body without wrapper.  (Improves constant folding.)
12002
        * lex.c (build_wfl_node):  Clear TREE_TYPE from returned node.
12003
 
12004
2001-01-13  Per Bothner  
12005
 
12006
        * expr.c (expand_java_field_op):  Assigning to a final field outside
12007
        an initializer does not violate JVM spec, so should be warning, not
12008
        error.  (Sun's verifier does not complain - though MicroSoft's does.)
12009
 
12010
2001-01-12  Joseph S. Myers  
12011
 
12012
        * gjavah.c (version), jcf-dump.c (version): Update copyright year
12013
        to 2001.
12014
 
12015
2001-01-11  Bryce McKinlay  
12016
 
12017
        * parse.y (resolve_expression_name): Permit instance variables from
12018
        enclosing context in super constructor call.
12019
        (resolve_qualified_expression_name): Permit enclosing class's qualified
12020
        "this" in super constructor call.
12021
 
12022
2001-01-10  Mark Mitchell  
12023
 
12024
        * class.c (build_utf8_ref): Remove last argument in call to
12025
        make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
12026
        (build_class_ref): Likewise.
12027
        (build_static_field_ref): Likewise.
12028
        (get_dispatch_table): Likewise.
12029
        (layout_class_method): Likewise.
12030
        (emit_register_classes): Likewise.
12031
        * constants.c (build_constant_data_ref): Likewise.
12032
        * decl.c (builtin_function): Likewise.
12033
        (create_primitive_vtable): Likewise.
12034
        * expr.c (build_known_method_def): Likewise.
12035
        (build_jni_stub): Likewise.
12036
        (java_lang_expand_expr): Likewise.
12037
 
12038
2001-01-10  Tom Tromey  
12039
 
12040
        * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
12041
 
12042
2001-01-08  Alexandre Petit-Bianco  
12043
 
12044
        * java-tree.h (lang_printable_name_wls): New prototype.
12045
        * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
12046
        rather than `current_class' to print type name. Don't prepend type
12047
        names when printing constructor names.
12048
        (lang_printable_name_wls): New function.
12049
        * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
12050
        `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
12051
        * parse.y (patch_method_invocation): Message tuned for constructors.
12052
        (not_accessible_p): Grant `private' access from within
12053
        enclosing contexts.
12054
 
12055
2001-01-07  Alexandre Petit-Bianco  
12056
 
12057
        All files with updated copyright when applicable.
12058
        * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
12059
        * class.c (mangle_class_field): Function removed.
12060
        (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
12061
        (utf8_cmp, cxx_keyword_p): Moved to lex.c.
12062
        (build_class_ref): Call `java_mangle_class_field' instead of
12063
        `mangle_class_field.'
12064
        (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
12065
        (layout_class): Call `java_mangle_decl' instead of
12066
        `mangle_static_field.'
12067
        (cxx_keywords): Initialized static array moved to `lex.c.'
12068
        (layout_class_method): Changed leading comment. Simplified to
12069
        call `java_mangle_decl.' Local `ptr' moved in for loop body.
12070
        * decl.c (lang_mark_tree): Mark field `package_list.'
12071
        * java-tree.h (TYPE_PACKAGE_LIST): New macro.
12072
        (struct lang_type): New field `package_list.'
12073
        (unicode_mangling_length): Prototype removed.
12074
        (append_gpp_mangled_name, append_gpp_mangled_classtype,
12075
        emit_unicode_mangled_name): Likewise.
12076
        (cxx_keyword_p): New prototype.
12077
        (java_mangle_decl, java_mangle_class_field,
12078
        java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
12079
        * jcf-parse.c (jcf_parse_source): Constify `file' argument to
12080
        `build_expr_wfl.'
12081
        * jvgenmain.c (main_method_prefix): Global variable removed.
12082
        (main_method_suffix): Likewise.
12083
        (do_mangle_classname): New function.
12084
        (main): Call it. Format changed to accommodate new mangling scheme.
12085
        * lex.c: (utf8_cmp): Conditionally prototyped.
12086
        (cxx_keywords): Moved from class.c, conditionally defined.
12087
        (utf8_cmp, cxx_keyword_p): Likewise.
12088
        * mangle.c (obstack.h, ggc.h): Included.
12089
        (mangle_field_decl): New function.
12090
        (mangle_method_decl, mangle_type, mangle_pointer_type,
12091
        mangle_array_type, mangle_record_type,
12092
        find_compression_pointer_match, find_compression_array_match,
12093
        find_compression_record_match,
12094
        find_compression_array_template_match, set_type_package_list,
12095
        entry_match_pointer_p, emit_compression_string, init_mangling,
12096
        finish_mangling, compression_table_add, mangle_member_name): Likewise.
12097
        (mangle_obstack): New global.
12098
        (MANGLE_RAW_STRING): New macro.
12099
        (unicode_mangling_length): Turned static.
12100
        (append_unicode_mangled_name): Renamed from
12101
        `emit_unicode_mangled_name.'  Turned static. `mangle_obstack'
12102
        replaces `obstack', removed from the parameter list.
12103
        (append_gpp_mangled_name): Turned static. `mangle_obstack'
12104
        replaces parameter `obstack', removed from the parameter list. Call
12105
        `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
12106
        (append_gpp_mangled_classtype): Removed.
12107
        (compression_table, compression_next): New static variables.
12108
        * parse.y (temporary_obstack): Extern declaration removed.
12109
 
12110
2001-01-05  Alexandre Petit-Bianco  
12111
 
12112
        * parse.y (patch_binop): Compute missing type in error situations.
12113
 
12114
2001-01-05  Bryce McKinlay  
12115
 
12116
        * class.c (make_class_data): Push initial value for "arrayclass".
12117
        * decl.c (init_decl_processing): Add new class field "arrayclass".
12118
 
12119
2001-01-05  Bryce McKinlay  
12120
 
12121
        From patha@softlab.ericsson.se:
12122
        * parse.y (switch_label): Use build, not build1, to construct
12123
        DEFAULT_EXPR.
12124
 
12125
2001-01-04  Neil Booth  
12126
 
12127
        * lang.c (lang_decode_option): Change -MA to -MP.
12128
        * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
12129
        Update to new prototype; do quote targets.
12130
        (jcf_dependency_write): Update.
12131
 
12132
2000-12-22  Bryce McKinlay  
12133
 
12134
        Shorten primitive array allocation path:
12135
        * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
12136
        to create new primitive arrays.
12137
        * expr.c (build_newarray): If generating native code, call
12138
        soft_newarray_node with a reference to the primitive TYPE identifier
12139
        instead of type_value.
12140
 
12141
2000-12-17  Bryce McKinlay  
12142
 
12143
        Fix for PRs gcj/312 and gcj/253:
12144
        * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
12145
        dest if they arn't already.
12146
        * class.c (layout_class): Call maybe_layout_super_class on
12147
        superinterfaces also, but only if compiling from bytecode.
12148
 
12149
        Fix for PR gcj/373:
12150
        * parse.y (create_class): Set ACC_STATIC if class is declared in an
12151
        interface.
12152
 
12153
2000-12-15  Tom Tromey  
12154
 
12155
        * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
12156
        set.
12157
 
12158
2000-12-14  Andrew Haley  
12159
 
12160
        * boehm.c (mark_reference_fields): Change test to correctly detect
12161
        bitmap overflow.
12162
 
12163
2000-12-15  Andreas Jaeger  
12164
 
12165
        * config-lang.in (lang_dirs): Added.
12166
 
12167
2000-12-15  Alexandre Petit-Bianco  
12168
 
12169
        * parse.y (end_artificial_method_body): Fixed undefined behavior.
12170
        Credits go to rth for finding it.
12171
 
12172
2000-12-13  Mike Stump  
12173
 
12174
        * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
12175
 
12176
2000-11-07  Tom Tromey  
12177
 
12178
        * Make-lang.in (JAVA_LEX_C): Added chartables.h.
12179
        * lex.c (java_ignorable_control_p): Removed.
12180
        (java_letter_or_digit_p): Removed.
12181
        (java_start_char_p): New function.
12182
        (java_read_char): Return `int', not `unicode_t'.  Changed
12183
        callers.
12184
        (java_read_unicode): Likewise.
12185
        (java_read_unicode_collapsing_terminators): Likewise.
12186
        (java_get_unicode): Likewise.
12187
        (java_new_lexer): Initialize hit_eof.
12188
        (java_parse_end_comment): Take `int' argument.
12189
        (java_parse_doc_section): Likewise.
12190
        (java_parse_escape_sequence): Don't allow backlash-newline.
12191
        Return `int'.
12192
        * lex.h (JAVA_DIGIT_P): Removed.
12193
        (_JAVA_LETTER_OR_DIGIT_P): Removed.
12194
        (_JAVA_IDENTIFIER_IGNORABLE): Removed.
12195
        (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
12196
        (JAVA_PART_CHAR_P): New macro.
12197
        (UEOF): Now -1.
12198
        (JAVA_CHAR_ERROR): Now -2.
12199
        (java_lexer): New field `hit_eof'.
12200
        * chartables.h: New file.
12201
        * gen-table.pl: new file.
12202
 
12203
2000-11-20  Tom Tromey  
12204
            Alexandre Petit-Bianco  
12205
 
12206
        * parse.y (java_complete_lhs): Only allow compound assignment of
12207
        reference type if type is String.
12208
 
12209
2000-12-09  Alexandre Petit-Bianco  
12210
 
12211
        * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
12212
        jcf-path.c: Likewise.
12213
 
12214
2000-12-09  Anthony Green  
12215
 
12216
        * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
12217
        filestart and filename_length as int values.
12218
 
12219
2000-12-07  Mo DeJong  
12220
 
12221
        * jcf-io.c (find_class): Correct the logic that tests to see if a
12222
        .java file is newer than its .class file. The compiler was
12223
        incorrectly printing a warning when file mod times were equal.
12224
 
12225
2000-12-07  Zack Weinberg  
12226
 
12227
        * jvgenmain.c: Use ISPRINT not isascii.
12228
 
12229
2000-12-06  Alexandre Petit-Bianco  
12230
 
12231
        * parse.y (end_artificial_method_body): Fixed typo.
12232
 
12233
2000-12-04  Alexandre Petit-Bianco  
12234
 
12235
        * parse.y (patch_method_invocation): Pick the correct enclosing
12236
        context when creating inner class instances.
12237
        Fixes gcj/332.
12238
 
12239
2000-11-26  Joseph S. Myers  
12240
 
12241
        * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
12242
        Update copyright year to 2000.
12243
 
12244
2000-11-23  Anthony Green  
12245
 
12246
        * jcf-parse.c (init_jcf_parse): Register current_file_list root.
12247
        Move current_file_list out of yyparse and make it static.
12248
 
12249
        * expr.c: Declare quick_stack and tree_list_free_list as static
12250
        (init_expr_processing): Register quick_stack and
12251
        tree_list_free_list roots.
12252
 
12253
2000-11-22  Alexandre Petit-Bianco  
12254
 
12255
        * parse.y (build_outer_field_access): New local `decl_ctx', use
12256
        it. Check for field's context and current class immediate outer
12257
        context inheritance.
12258
        (outer_field_access_p): Consider fields inherited from the last
12259
        enclosing context.
12260
        (build_access_to_thisn): Stop at the last enclosing context if
12261
        necessary.
12262
        Fixes gcj/367.
12263
 
12264
2000-11-23  J"orn Rennecke 
12265
 
12266
        * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
12267
 
12268
2000-11-22  Bryce McKinlay  
12269
 
12270
        * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
12271
        scratch buffer.
12272
 
12273
2000-11-20  Tom Tromey  
12274
 
12275
        * jv-scan.c (help): Document --complexity.
12276
        (options): Added --complexity.
12277
        (flag_complexity): New global.
12278
        (main): Call `report'.
12279
        * parse-scan.y (complexity): New global.
12280
        (if_then_statement, if_then_else_statement,
12281
        if_then_else_statement_nsi, switch_block_statement_group,
12282
        while_expression, do_statement, for_begin, continue_statement,
12283
        throw_statement, catch_clause, finally, method_invocation,
12284
        conditional_and_expression, conditional_or_expression,
12285
        conditional_expression): Update complexity.
12286
        (reset_report): Reset complexity.
12287
        (report): New function.
12288
 
12289
2000-11-20  Tom Tromey  
12290
 
12291
        * lex.c (yylex): Added STRICT_TK case.
12292
        * parse.y (STRICT_TK): Added.
12293
        * parse-scan.y (STRICT_TK): Added.
12294
        * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
12295
        `;'.  Use 4, not 3, with -k option.  Correctly rename resulting
12296
        file.
12297
        * keyword.h: Rebuilt.
12298
        * keyword.gperf (strictfp): Added.
12299
 
12300
2000-11-20  Tom Tromey  
12301
 
12302
        * lex.c (yylex): Recognize floating point constants with leading
12303
        0.
12304
 
12305
2000-11-19  Kaveh R. Ghazi  
12306
 
12307
        * java-tree.h (cyclic_inheritance_report): Constify.
12308
        * parse.y (cyclic_inheritance_report): Likewise.
12309
 
12310
2000-11-17  Zack Weinberg  
12311
 
12312
        * parse.y (goal): Remove call to ggc_add_string_root.
12313
 
12314
2000-11-16  Zack Weinberg  
12315
 
12316
        * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
12317
        Create string in scratch buffer, then pass to build_string.
12318
 
12319
2000-11-13  Joseph S. Myers  
12320
 
12321
        * parse.y (issue_warning_error_from_context): Add
12322
        ATTRIBUTE_PRINTF.
12323
 
12324
2000-11-11  Anthony Green  
12325
 
12326
        * jcf-parse.c (process_zip_dir): Add finput parameter.
12327
        (jcf_figure_file_type): Call process_zip_dir with appropriate
12328
        argument.
12329
 
12330
2000-11-10  Kaveh R. Ghazi  
12331
 
12332
        * decl.c (copy_lang_decl): Use memcpy, not bcopy.
12333
        * jcf-parse.c (jcf_figure_file_type): Likewise.
12334
 
12335
2000-11-09  Joseph S. Myers  
12336
 
12337
        * parse.y (create_new_parser_context): Use memset () instead of
12338
        bzero ().
12339
 
12340
2000-11-08  Tom Tromey  
12341
 
12342
        * gjavah.c (process_file): Only include gcj/cni.h when generating
12343
        CNI stubs.
12344
 
12345
2000-11-07  Joseph S. Myers  
12346
 
12347
        * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
12348
        (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
12349
        instead of bzero ().
12350
 
12351
2000-11-05  Tom Tromey  
12352
 
12353
        * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
12354
        * lex.c (IS_ZERO): New define.
12355
        (java_perform_atof): Error on floating point underflow.
12356
 
12357
2000-11-04  Tom Tromey  
12358
 
12359
        * lex.c (java_parse_escape_sequence): Only read two octal
12360
        characters if the first one is greater than 3.  Don't allow
12361
        "octal" numbers to include the digits 8 or 9.
12362
 
12363
2000-11-05  Joseph S. Myers  
12364
 
12365
        * Make-lang.in (java.distdir): Remove.
12366
 
12367
2000-11-03  Tom Tromey  
12368
 
12369
        * Make-lang.in (java.dvi): New target.
12370
        Partial fix for PR other/567.
12371
 
12372
        * lang-options.h: Mention -Wout-of-date.
12373
        * jcf-dump.c (flag_newer): New global.
12374
        * gjavah.c (flag_newer): New global.
12375
        * jcf-io.c (find_class): Only warn when flag_newer set.
12376
        * lang.c (flag_newer): New global.
12377
        (struct string_option): New declaration.
12378
        (lang_W_options): New global.
12379
        (process_option_with_no): New function.
12380
        (lang_decode_option): Use it.
12381
 
12382
        * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
12383
        * gjavah.c (cxx_keyword_subst): Handle any number of trailing
12384
        `$'.
12385
 
12386
        * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
12387
        (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
12388
        * lex.c (java_read_unicode): Removed `term_context' argument.
12389
        Recognize any number of `u' in `\u'.
12390
        (java_read_unicode_collapsing_terminators): New function.
12391
        (java_get_unicode): Use it.
12392
        (java_lineterminator): Removed.
12393
        (yylex): Produce error if character literal is newline or single
12394
        quote.  Return if eof found in middle of `//' comment.  EOF in
12395
        `//' comment is only an error if pedantic.
12396
        (java_ignorable_control_p): New function.
12397
        (java_parse_end_comment): Return if eof found in middle of
12398
        comment.
12399
        Include flags.h.
12400
        * jv-scan.c (pedantic): New global.
12401
 
12402
2000-10-31  Alexandre Petit-Bianco  
12403
 
12404
        * parse.y (outer_field_access_p): Inherited fields aren't
12405
        consider outer fields.
12406
        (maybe_build_thisn_access_method): Use
12407
        PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
12408
        (resolve_expression_name): Trigger an error if a static field
12409
        is being accessed as an outer field.
12410
 
12411
2000-10-29  Alexandre Petit-Bianco  
12412
 
12413
        * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
12414
        Fixes gcj/365.
12415
 
12416
2000-10-27  Zack Weinberg  
12417
 
12418
        * Make-lang.in: Move all build rules here from Makefile.in,
12419
        adapt to new context.  Wrap all rules that change the current
12420
        directory in parentheses.  Expunge all references to $(P).
12421
        When one command depends on another and they're run all at
12422
        once, use && to separate them, not ;.  Add OUTPUT_OPTION to
12423
        all object-file generation rules.  Delete obsolete variables.
12424
 
12425
        * Makefile.in: Delete.
12426
        * config-lang.in: Delete outputs= line.
12427
 
12428
2000-10-25  Alexandre Petit-Bianco  
12429
 
12430
        * parse.y (patch_method_invocation): NULLify this_arg when already
12431
        inserted.
12432
        (maybe_use_access_method): Handle call to methods unrelated to the
12433
        current class. Fixed comment.
12434
        Fixes gcj/361.
12435
 
12436
2000-10-24  Alexandre Petit-Bianco  
12437
 
12438
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
12439
        scope.
12440
 
12441
2000-10-24  Tom Tromey  
12442
 
12443
        * lex.c (java_new_lexer): Initialize new fields.  Work around
12444
        broken iconv() implementations.
12445
        (java_read_char): Swap bytes if required.  Use fallback decoder if
12446
        required.
12447
        (byteswap_init, need_byteswap): New globals.
12448
        (java_destroy_lexer): Only close iconv handle if it is in use.
12449
        * lex.h (java_lexer): New fields read_anything, byte_swap,
12450
        use_fallback.
12451
        Made out_buffer unsigned.
12452
 
12453
2000-10-24  Alexandre Petit-Bianco  
12454
 
12455
        * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
12456
        where an enclosing context can be set on the jdep.
12457
        (do_resolve_class): Fixed identation.
12458
 
12459
2000-10-21  Kaveh R. Ghazi  
12460
 
12461
        * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
12462
 
12463
        * jcf-reader.c (peek_attribute, skip_attribute): Only define
12464
        when requested.
12465
 
12466
        * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
12467
 
12468
        * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
12469
 
12470
2000-10-18  Alexandre Petit-Bianco  
12471
 
12472
        * jcf-write.c (OP1): Update `last_bc'.
12473
        (struct jcf_block): Fixed indentation and typo in comments.  New
12474
        field `last_bc'.
12475
        (generate_bytecode_insns): Insert `nop' if `jsr' immediately
12476
        follows `monitorenter'.
12477
        * parse.y (patch_synchronized_statement): New local `tmp'. Call
12478
        `patch_string'.
12479
        Fixes gcj/232.
12480
 
12481
2000-10-16  Tom Tromey  
12482
 
12483
        * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
12484
        * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
12485
        * lang-options.h: Added -MA, -MT, -MF..
12486
        * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
12487
        (DEPEND_TARGET_SET): New macro.
12488
        (DEPEND_FILE_ALREADY_SET): Likewise.
12489
        (init_parse): Handle new flags.
12490
        * jcf.h (jcf_dependency_print_dummies): Declare.
12491
        * Make-lang.in (s-java): Added mkdeps.o.
12492
        * Makefile.in (BACKEND): Added mkdeps.o.
12493
        (../gcjh$(exeext)): Added mkdeps.o.
12494
        (../jcf-dump$(exeext)): Added mkdeps.o.
12495
        * jcf-depend.c: Include mkdeps.h.
12496
        (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
12497
        add_entry): Removed.
12498
        (jcf_dependency_reset): Rewrote.
12499
        (dependencies): New global.
12500
        (jcf_dependency_set_target): Rewrote.
12501
        (jcf_dependency_add_target): Likewise.
12502
        (jcf_dependency_add_file): Likewise.
12503
        (munge): Removed.
12504
        (print_ents): Removed.
12505
        (jcf_dependency_write): Rewrote.
12506
        (print_dummies): New global.
12507
        (jcf_dependency_print_dummies): New function
12508
        (jcf_dependency_write): Call deps_dummy_targets if required.
12509
 
12510
2000-10-18  Alexandre Petit-Bianco  
12511
 
12512
        * gjavah.c (add_class_decl): Removed unused variables `tname',
12513
        `tlen' and `name_index'.
12514
        * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
12515
        * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
12516
        in `wfl_operator' with value.
12517
        (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
12518
        (jcf_figure_file_type): Fixed identation.
12519
        * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
12520
        * parse.y (analyze_clinit_body): New function.
12521
        (static_initializer:): Reset `current_static_block'.
12522
        (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
12523
        `wfl_operator' with new value.
12524
        (lookup_cl): Use EXPR_WFL_FILENAME.
12525
        (maybe_yank_clinit): Handle bogus  bodies, call
12526
        analyze_clinit_body.
12527
        (build_outer_field_access): Access to this$ built from
12528
        current_class, not its outer context.
12529
        (build_access_to_thisn): Fixed leading comment. Tidied things up.
12530
        (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
12531
        (patch_method_invocation): Use `is_static_flag' when already
12532
        initialized.
12533
        (patch_newarray): Removed assignment in ternary operator.
12534
 
12535
2000-10-17  Alexandre Petit-Bianco  
12536
 
12537
        * except.c (free_eh_ranges): Don't free `whole_range'.
12538
 
12539
2000-10-15  Anthony Green  
12540
 
12541
        * decl.c (init_decl_processing): Call init_class_processing before
12542
        anything else.
12543
 
12544
2000-10-13  Alexandre Petit-Bianco  
12545
 
12546
        * check-init.c (check_init): Fixed leading comment. Use
12547
        LOCAL_FINAL_P.
12548
        * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12549
        (give_name_to_locals): Likewise.
12550
        (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
12551
        fields in lang_decl_var.
12552
        * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
12553
        DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
12554
        (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
12555
        (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
12556
        DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
12557
        (LOCAL_FINAL): Rewritten.
12558
        (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
12559
        MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
12560
        (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
12561
        `init_final' fields.
12562
        (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
12563
        `final_uid', `final_liic', `final_ierr' and `local_final' fields.
12564
        (TYPE_HAS_FINAL_VARIABLE): New macro.
12565
        (struct lang_type): Added `afv' field.
12566
        * parse.y (check_static_final_variable_assignment_flag): New function.
12567
        (reset_static_final_variable_assignment_flag): Likewise.
12568
        (check_final_variable_local_assignment_flag): Likewise.
12569
        (reset_final_variable_local_assignment_flag): Likewise.
12570
        (check_final_variable_indirect_assignment): Likewise.
12571
        (check_final_variable_global_assignment_flag): Likewise.
12572
        (add_inner_class_fields): Use LOCAL_FINAL_P.
12573
        (register_fields): Handle local finals and final variables.
12574
        (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
12575
        (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12576
        (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
12577
        on local finals.
12578
        (java_complete_expand_methods): Loop to set
12579
        TYPE_HAS_FINAL_VARIABLE. Call
12580
        `reset_final_variable_local_assignment_flag' and
12581
        `check_final_variable_local_assignment_flag' accordingly before
12582
        and after constructor expansion. Call
12583
        `reset_static_final_variable_assignment_flag'
12584
        before expanding  and after call
12585
        `check_static_final_variable_assignment_flag' if the
12586
        current_class isn't an interface. After all methods have been
12587
        expanded, call `check_final_variable_global_assignment_flag' and
12588
        `check_static_final_variable_assignment_flag' if the current class
12589
        is an interface.
12590
        (maybe_yank_clinit): Fixed typo in comment.
12591
        (build_outer_field_access_methods): Removed old sanity check. Use
12592
        FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12593
        Don't create access methods for finals.
12594
        (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
12595
        (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
12596
        existing DECL_INIT has been processed.
12597
        (java_complete_lhs): Likewise.
12598
        (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
12599
        Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
12600
        logic.
12601
        (patch_assignment): Use LOCAL_FINAL_P.
12602
        (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
12603
        DECL_INITIAL is nullified.
12604
        Fixes gcj/163.
12605
 
12606
2000-10-13  Kaveh R. Ghazi  
12607
 
12608
        * Make-lang.in (parse.c, parse-scan.c): Create atomically.
12609
 
12610
        * Makefile.in (parse.c, parse-scan.c): Likewise.
12611
 
12612
2000-10-12  Mark Mitchell  
12613
 
12614
        * class.c (temporary_obstack): Remove.
12615
        (make_class): Don't mess with obstascks.
12616
        (push_class): Likewise.
12617
        (set_super_info): Likewise.
12618
        (add_method_1): Likewise.
12619
        (add_method): Likewise.
12620
        (add_field): Likewise.
12621
        (build_utf8_ref): Likewise.
12622
        (build_class_ref): Likewise.
12623
        (build_static_field_ref): Likewise.
12624
        (finish_class): Likewise.
12625
        (push_super_field): Likewise.
12626
        (layout_class): Likewise.
12627
        (layout_class_methods): Likewise.
12628
        (init_class_processing): Likewise.
12629
        * constants.c (get_tag_node): Likewise.
12630
        (build_constant_data_ref): Likewise.
12631
        * decl.c (ggc_p): Remove.
12632
        (copy_lang_decl): Use ggc_alloc.
12633
        (complete_start_java_method): Don't mess with obstacks.
12634
        (start_java_method): Likewise.
12635
        (end_java_method): Likewise.
12636
        * except.c (link_handler): Use xmalloc.
12637
        (free_eh_ranges): New function.
12638
        (method_init_exceptions): Use it.
12639
        (add_handler): Use xmalloc.
12640
        (expand_start_java_handler): Don't mess with obstacks.
12641
        (prepare_eh_table_type): Likewise.
12642
        (expand_end_java_handler): Likewise.
12643
        * expr.c (push_value): Likewise.
12644
        (create_label_decl): Likewise.
12645
        (build_jni_stub): Likewise.
12646
        (java_lang_expand_expr): Likewise.
12647
        (note_instructions): Use xrealloc.
12648
        (java_push_constant_from_pool): Don't mess with obstacks.
12649
        (process_jvm_instruction): Likewise.
12650
        * java-tree.h (cyclic_inheritance_report): Remove duplicate
12651
        declaration.
12652
        * jcf-parse.c (get_constant): Don't mess with obstacks.
12653
        (read_class): Likewise.
12654
        (jcf_parse): Likewise.
12655
        * lex.c (expression_obstack): Remove.
12656
        (java_lex): Don't use obstack_free.
12657
        * parse.h (exit_java_complete_class): Don't mess with obstacks.
12658
        (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
12659
        (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
12660
        (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
12661
        * parse.y (gaol): Add more GC roots.
12662
        (add_inner_class_fields): Adjust calls to MANGLE_* macros.
12663
        (lookup_field_wrapper): Likewise.
12664
        (obtain_incomplete_type): Don't mess with obstacks.
12665
        (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
12666
        macros.
12667
        (craft_constructor): Don't mess with obstacks.
12668
        (safe_layout_class): Likewise.
12669
        (java_complete_class): Likewise.
12670
        (source_end_java_method): Likewise.
12671
        (build_outer_field_access_methods): Likewise.
12672
        (build_outer_method_access_method): Likewise.
12673
        (maybe_build_thisn_access_method): Likewise.
12674
        (build_dot_class_method_invocation): Likewise.
12675
        (java_complete_tree): Likewise.
12676
        (java_complete_lhs): Likewise.
12677
        (do_merge_string_cste): Likewise.
12678
        (patch_string_cst): Likewise.
12679
        (array_constructor_check_entry): Likewise.
12680
        * typeck.c (build_java_array_type): Likewise.
12681
        (parse_signature_string): Likewise.
12682
        (build_java_signature): Likewise.
12683
 
12684
2000-10-12  Tom Tromey  
12685
 
12686
        Fix for PR gcj/356:
12687
        * gjavah.c (add_class_decl): Don't special-case inner classes.
12688
        (add_namelet): Likewise.
12689
 
12690
2000-10-11  Rodney Brown  
12691
 
12692
        * java-tree.h: Constify current_encoding.
12693
        * lang.c: Constify current_encoding.
12694
 
12695
2000-10-10  Jeff Sturm  
12696
 
12697
        * jvgenmain.c (class_mangling_suffix): Omit `.'.
12698
        (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
12699
 
12700
2000-10-10  Alexandre Petit-Bianco  
12701
 
12702
        * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
12703
        patch. Fixes gcj/340.
12704
 
12705
2000-10-10  Tom Tromey  
12706
 
12707
        * lex.c (java_new_lexer): Initialize out_first and out_last
12708
        fields.
12709
        * lex.h (java_lexer): Added out_buffer, out_first, out_last.
12710
 
12711
2000-10-09  Alexandre Petit-Bianco  
12712
 
12713
        * parse.y (pop_current_osb): New function.
12714
        (array_type:): Use `dims:', changed actions
12715
        accordingly. Suggested by Anthony Green.
12716
        (array_creation_expression:): Used pop_current_osb.
12717
        (cast_expression:): Likewise.
12718
        (search_applicable_method_list): Fixed indentation.
12719
 
12720
2000-10-08  Anthony Green  
12721
 
12722
        * parse.y (array_type_literal): Remove production.
12723
        (type_literals): Refer to array_type, not array_type_literal.
12724
 
12725
2000-10-07  Alexandre Petit-Bianco  
12726
 
12727
        Patch contributed by Corey Minyard.
12728
        * decl.c (check_local_named_variable): New function.
12729
        (tree check_local_unnamed_variable): Likewise.
12730
        (find_local_variable): Splitted. Call check_local_{un}named_variable.
12731
 
12732
2000-10-07  Anthony Green  
12733
 
12734
        * class.c (layout_class): Handle case where superclass can't be
12735
        layed out yet.
12736
 
12737
2000-10-07  Joseph S. Myers  
12738
 
12739
        * Makefile.in (keyword.h): Refer to GNU FTP site for updated
12740
        gperf.
12741
 
12742
2000-10-05  Tom Tromey  
12743
 
12744
        * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
12745
        * jvgenmain.c (class_mangling_prefix): Removed.
12746
        (class_mangling_suffix): New global.
12747
        (main): Use it.
12748
        * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
12749
        `$'.
12750
        (print_method_info): Handle overrides for static and final
12751
        methods.
12752
        (process_file): Generate declaration for class object field.
12753
        * class.c (cxx_keywords): New array.
12754
        (utf8_cmp): New function.
12755
        (cxx_keyword_p): New function.
12756
        (layout_class_method): Mangle C++ keywords by appending `$'.
12757
        (mangle_field): New function.
12758
        (mangle_class_field): Use mangle_field.  Mangle class name as
12759
        `class$'.
12760
        (mangle_static_field): Use mangle_field.
12761
 
12762
2000-10-03  Alexandre Petit-Bianco  
12763
 
12764
        * decl.c (find_local_variable): Removed uncessary type check and
12765
        fixed range check typo. From Corey Minyard.
12766
 
12767
2000-09-13  Alexandre Petit-Bianco  
12768
 
12769
        * decl.c (give_name_to_locals): New local `code_offset'. Call
12770
        `maybe_adjust_start_pc'.
12771
        * expr.c (note_instructions): New function.
12772
        (expand_byte_code): Don't collect insn starts here.
12773
        (peek_opcode_at_pc): New function.
12774
        (maybe_adjust_start_pc): Likewise.
12775
        * java-tree.h (maybe_adjust_start_pc): Declare.
12776
        (note_instructions): Likewise.
12777
        * jcf-parse.c (parse_class_file): Call `note_instructions'.
12778
 
12779
2000-09-13  Alexandre Petit-Bianco  
12780
 
12781
        * parse.y (field_access:): Fixed indentation.
12782
        (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
12783
 
12784
2000-09-07  Tom Tromey  
12785
 
12786
        Fix for PR gcj/307:
12787
        * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
12788
        JPRIMITIVE_TYPE_P, for arithmetic operators.
12789
        (patch_method_invocation): Indentation fix.
12790
        (try_builtin_assignconv): Handle boolean specially.  Fixed typo.
12791
        (valid_builtin_assignconv_identity_widening_p): Handle boolean.
12792
        (do_unary_numeric_promotion): Cleaned up code.
12793
        (valid_cast_to_p): Handle boolean correctly.
12794
 
12795
2000-09-27  Tom Tromey  
12796
 
12797
        * lex.c (java_read_unicode): Reset bs_count when finished with
12798
        `\u' sequence.
12799
 
12800
2000-10-01  Mark Mitchell  
12801
 
12802
        Convert to GC.
12803
        * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
12804
        * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
12805
        (typeck.o): Depend on ggc.h.
12806
        * class.c (add_method_1): Use GC functions for allocation.
12807
        (init_class_processing): Register roots.
12808
        * decl.c (ggc_p): Set to 1.
12809
        (pending_local_decls): Make it static.
12810
        (push_jvm_slot): Use GC functions for allocation.
12811
        (init_decl_processing): Register roots.
12812
        (give_name_to_locals): Use GC functions for allocation.
12813
        (lang_mark_tree): New function.
12814
        * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
12815
        functions for allocation.
12816
        * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
12817
        * lex.c (java_lex): Use build_string, rather than replicating it
12818
        inline.
12819
        * parse.y (goal): Add more roots.
12820
        (mark_parser_ctxt): New function.
12821
        * typeck.c: Include ggc.h.
12822
 
12823
2000-09-29  Alexandre Petit-Bianco  
12824
 
12825
        * parse.y (maybe_yank_clinit): Also keep  if its body
12826
        contains something else than MODIFY_EXPR.
12827
 
12828
2000-09-23  Mark Mitchell  
12829
 
12830
        * Make-lang.in (JAVA_SRCS): Include java-tree.h.
12831
        * Makefile.in (parse.o): Depend on ggc.h.
12832
        (class.o): Likewise.
12833
        (constants.o): Likewise.
12834
        (decl.o): Likewise.
12835
        (expr.o): Likewise.
12836
        (jcf-parse.o): Likewise.
12837
        (jcf-write.o): Likewise.
12838
        (mangle.o): Likewise.
12839
        * class.c: Include ggc.h.
12840
        (build_static_field_ref): Register GC roots.
12841
        (layout_class): Likewise.
12842
        (init_class_processing): Likewise.
12843
        * constants.c: Include ggc.h.
12844
        (current_constant_pool_data_ref): Remove.
12845
        (tag_nodes): Move it to ...
12846
        (get_tag_node): ... here.  Register GC roots.
12847
        * decl.c: Include ggc.h.  Remove many global tree definitions.
12848
        (throw_node): Define.
12849
        (java_global_trees): Likewise.
12850
        (predef_filenames): Make the size a constant.
12851
        (init_decl_processing): Adjust accordingly.
12852
        (init_decl_processing): Call init_jcf_parse.  Register GC roots.
12853
        * expr.c: Include ggc.h.
12854
        (init_expr_processing): Register GC roots.
12855
        (build_invokeinterface): Likewise.
12856
        * java-tree.h: Replace extern tree declarations with macros.
12857
        (java_global_trees): New variable.
12858
        (java_tree_index): New enumeration.
12859
        (init_jcf_parse): Declare.
12860
        * jcf-parse.c: Include ggc.h.
12861
        (current_class): Remove declaration.
12862
        (main_class): Likewise.
12863
        (all_class_list): Likewise.
12864
        (predefined_filename_p): Adjust for constant size of
12865
        predef_filenames.
12866
        (init_jcf_parse): New function.
12867
        * jcf-write.c: Include ggc.h.
12868
        (generate_classfile): Register GC roots.
12869
        (append_synthetic_attribute): Likewise.
12870
        (append_innerclass_attribute_entry): Likewise.
12871
        * lang.c: Include ggc.h.
12872
        (lang_print_error): Register GC roots.
12873
        * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
12874
        with macros.
12875
        * parse.y: Include ggc.h.
12876
        (wfl_operator): Remove.
12877
        (goal): Register GC roots.
12878
        (java_pop_parser_context): Adjust for new field names.
12879
        (java_parser_context_save_global): Likewse.
12880
        (java_parser_context_restore_global): Likewise.
12881
        (java_parser_context_suspend): Likewise.
12882
        (java_parser_context_resume): Likewise.
12883
        (verify_constructor_circularity): Register GC roots.
12884
        (lookup_cl): Likewise.
12885
        (java_reorder_fields): Likewise.
12886
        (build_current_this): Likewise.
12887
        (class_in_current_package): Likewise.
12888
        (argument_types_convertible): Likewise.
12889
        (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
12890
 
12891
2000-09-14  Tom Tromey  
12892
 
12893
        * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
12894
 
12895
2000-09-13  Tom Tromey  
12896
 
12897
        * jcf-parse.c: Include .
12898
        * jv-scan.c: Include .
12899
 
12900
2000-09-12  Tom Tromey  
12901
 
12902
        * expr.c (pop_type_0): Return `Object' if trying to merge two
12903
        interface types.
12904
        * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
12905
        interface types; `Object' is always a valid supertype.
12906
 
12907
2000-09-12  Tom Tromey  
12908
 
12909
        Fix for PR gcj/33:
12910
        * jv-scan.c (help): Document --encoding.
12911
        (options): Added `encoding' entry.
12912
        (OPT_ENCODING): New define.
12913
        (main): Handle --encoding.
12914
        Include  if nl_langinfo exists.
12915
        * lang-options.h: Document --classpath, --CLASSPATH, --main, and
12916
        --encoding.
12917
        * jcf-parse.c Include  if we have nl_langinfo.
12918
        (parse_source_file): Correctly call java_init_lex.  Added `finput'
12919
        argument.  Use nl_langinfo to determine default encoding.
12920
        * java-tree.h (current_encoding): Declare.
12921
        * parse.y (java_parser_context_restore_global): Don't restore
12922
        `finput'.
12923
        (java_parser_context_save_global): Don't set `finput' field.
12924
        (java_pop_parser_context): Don't restore `finput'.  Free old lexer
12925
        if required.
12926
        * lang.c (current_encoding): New global.
12927
        (lang_decode_option): Recognize `-fencoding='.
12928
        (finish_parse): Don't close finput.
12929
        * parse.h (struct parser_ctxt): Removed `finput' and
12930
        `unget_utf8_value' fields.  Added `lexer' field.
12931
        (java_init_lex): Fixed declaration.
12932
        * lex.c (java_new_lexer): New function.
12933
        (java_destroy_lexer): Likewise.
12934
        (java_read_char): Added `lex' argument.  Handle iconv case.
12935
        (java_read_unicode): Added `lex' argument.  Count backslashes in
12936
        lexer structure.
12937
        (java_init_lex): Added `finput' and `encoding' arguments.  Set
12938
        `lexer' field in ctxp.
12939
        (BAD_UTF8_VALUE): Removed.
12940
        (java_lex): Handle seeing UEOF in the middle of a string literal.
12941
        * lex.h: Include  if HAVE_ICONV defined.
12942
        (java_lexer): New structure.
12943
        (UNGETC): Removed.
12944
        (GETC): Removed.
12945
        (DEFAULT_ENCODING): New define.
12946
        (java_destroy_lexer): Declare.
12947
 
12948
2000-09-12  Tom Tromey  
12949
 
12950
        Fix for PR gcj/343:
12951
        * lex.c (java_init_lex): Initialize java_io_serializable.
12952
        * parse.y (java_io_serializable): New global.
12953
        (valid_ref_assignconv_cast_p): An array can be cast to
12954
        serializable.
12955
 
12956
2000-09-10  Zack Weinberg  
12957
 
12958
        * decl.c, expr.c: Include defaults.h if not already included.
12959
        Don't define the *_TYPE_SIZE macros.
12960
 
12961
2000-09-09  Geoffrey Keating  
12962
 
12963
        * typeck.c (build_java_array_type): Correct first parameter
12964
        in ADJUST_FIELD_ALIGN invocation.
12965
 
12966
2000-09-06  Tom Tromey  
12967
 
12968
        * lang-specs.h: Also recognize `-femit-class-files'.
12969
 
12970
2000-09-05  Alexandre Petit-Bianco  
12971
 
12972
        * verify.c (merge_types): Load the types to merge if necessary.
12973
 
12974
2000-09-02  Anthony Green  
12975
 
12976
        * jcf-io.c: Include zlib.h.
12977
        (open_in_zip): Read compressed class file archives.
12978
        * zipfile.h (ZipDirectory): Add uncompressed_size and
12979
        compression_method fields.
12980
        * zextract.c (read_zip_archive): Collect file compression info.
12981
 
12982
2000-08-15  Bryce McKinlay  
12983
 
12984
        * parse.y (do_resolve_class): Also explore superclasses of
12985
        intermediate enclosing contexts when searching for inner classes.
12986
 
12987
2000-08-11  Alexandre Petit-Bianco  
12988
 
12989
        * parse.y (variable_declarator_id:): Better error message.
12990
        (expression_statement:): Use YYNOT_TWICE.
12991
        (cast_expression:): Likewise.
12992
        (assignment:): Likewise.
12993
 
12994
2000-08-11  Alexandre Petit-Bianco  
12995
 
12996
        * parse.y (do_merge_string_cste): New locals. Create new
12997
        STRING_CSTs each time, use memcpy. Fixes gcj/311.
12998
 
12999
2000-08-07  Hans Boehm  
13000
 
13001
        * boehm.c (mark_reference_fields): Set marking bits for all words in
13002
        a multiple-word record.
13003
        (get_boehm_type_descriptor): Use the procedure marking descriptor for
13004
        java.lang.Class.
13005
 
13006
2000-08-31  Mike Stump  
13007
 
13008
        * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
13009
        jcf-dump$(exeext)): Make parallel safe.
13010
 
13011
2000-08-29  Zack Weinberg  
13012
 
13013
        * jcf-parse.c (set_source_filename): Constify a char *.
13014
        * jcf-write.c (append_innerclasses_attribute,
13015
        make_class_file_name): Constify a char *.  Don't recycle a
13016
        variable for an unrelated purpose.
13017
        * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
13018
        (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
13019
 
13020
2000-08-29  Alexandre Petit-Bianco  
13021
 
13022
        * expr.c (can_widen_reference_to): Fixed indentation.
13023
        * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
13024
        * parse.y: `finit$' replaces `$finit$' in comments.
13025
        (try_builtin_assignconv): Fixed leading comment.
13026
 
13027
2000-08-25  Greg McGary  
13028
 
13029
        * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
13030
 
13031
2000-08-24  Greg McGary  
13032
 
13033
        * lang.c (lang_decode_option): Use ARRAY_SIZE.
13034
        * parse.y (BINOP_LOOKUP): Likewise.
13035
 
13036
2000-08-22  Andrew Haley  
13037
 
13038
        * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
13039
        sign extending. Fixes gcj/321.
13040
        * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
13041
        combining to make a jlong. Fixes gcj/321.
13042
 
13043
2000-08-21  Nix  
13044
 
13045
        * lang-specs.h: Do not process -o or run the assembler if
13046
        -fsyntax-only.
13047
 
13048
2000-08-16  Andrew Haley  
13049
 
13050
        * typeck.c (build_java_array_type): Rewrite code to do array
13051
        alignment.  Take into account back-end macros when aligning array
13052
        data.  Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
13053
        user to set alignment. Fixes gcj/252 and 160.
13054
 
13055
2000-08-09  Tom Tromey  
13056
 
13057
        * parse.y (check_abstract_method_definitions): Now return `int'.
13058
        Check implemented interfaces.  Fixes PR gcj/305.
13059
 
13060
        * parse.y (patch_switch_statement): Disallow `long' in switch
13061
        expressions.  Fixes PR gcj/310.
13062
 
13063
2000-08-15  Alexandre Petit-Bianco  
13064
 
13065
        * decl.c (finit_leg_identifier_node): New global.
13066
        (init_decl_processing): Use `finit$' to initialize
13067
        finit_identifier_node. Use `$finit$' to initialize
13068
        finit_leg_identifier_node.
13069
        * expr.c (expand_java_field_op): Use ID_FINIT_P.
13070
        * java-tree.h (finit_identifier_node): Changed attached comment.
13071
        (finit_leg_identifier_node): New declaration.
13072
        (ID_FINIT_P): Take finit_identifier_node and
13073
        finit_leg_identifier_node into account. This is a backward
13074
        compatibility hack.
13075
 
13076
2000-08-14  Alexandre Petit-Bianco  
13077
 
13078
        * jcf-write.c (generate_bytecode_conditional): Re-installed lost
13079
        Jan 6 2000 patch.
13080
        (generate_bytecode_insns): Check `nargs' before emitting it.
13081
        * verify.c (merge_type_state): Fixed typo.
13082
        * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
13083
        generate_bytecode_{conditional,insns}.
13084
 
13085
2000-08-13  Anthony Green  
13086
 
13087
        * check-init.c (check_init): Add case for BIT_FIELD_REF (required
13088
        for -pg builds).
13089
 
13090
2000-08-10  Alexandre Petit-Bianco  
13091
 
13092
        * class.c (maybe_layout_super_class): Fixed indentation.
13093
        * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
13094
        (java_check_methods): New function declaration.
13095
        * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
13096
        instead of `str_ptr'.
13097
        * jcf-write.c (generate_bytecode_insns): Emit number the of args
13098
        of a `invokeinterface' at the right time.
13099
        * parse.h (WFL_STRIP_BRACKET): New macro.
13100
        (SET_TYPE_FOR_RESOLUTION): Use it.
13101
        * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
13102
        (check_class_interface_creation): Don't check for cross package
13103
        innerclass name clashes.
13104
        (method_header): Behave properly if MDECL is `error_mark_node'.
13105
        (method_declarator): Return `error_mark_node' if bogus current
13106
        class.
13107
        (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
13108
        (resolve_and_layout): New local `decl_type', set and used. Call
13109
        java_check_methods.
13110
        (java_check_methods): New method.
13111
        (java_layout_classes): Use it.
13112
        (resolve_qualified_expression_name): No EH check necessary in
13113
        access$.
13114
        (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
13115
        `case' statement.
13116
        (patch_assignment): Set DECL_INITIAL on integral final local.
13117
 
13118
2000-08-08  Alexandre Petit-Bianco  
13119
 
13120
        * java-tree.h (flag_extraneous_semicolon): New extern.
13121
        * lang-options.h: (-Wextraneous-semicolon): New option.
13122
        * lang.c (flag_redundant): Fixed typo in leading comment.
13123
        (flag_extraneous_semicolon): New global.
13124
        (lang_decode_option): Set `flag_extraneous_semicolon' when
13125
        -Wall. Decode `-Wextraneous-semicolon'.
13126
        * parse.y (type_declaration:): Removed `SC_TK' hack, added
13127
        `empty_statement' rule.
13128
        (class_body_declaration): Likewise.
13129
        (method_body:): Accept `;' as a method body.
13130
        (static_initializer:): Removed `SC_TK' hack.
13131
        (constructor_block_end:): Likewise.
13132
        (empty_statement:): Report deprecated empty declaration. Fixes
13133
        gcj/295
13134
 
13135
2000-08-07  Alexandre Petit-Bianco  
13136
 
13137
        * parse.y (build_dot_class_method_invocation): Changed parameter
13138
        name to `type'. Build signature from `type' and convert it to a
13139
        STRING_CST if it's an array.
13140
        (patch_incomplete_class_ref): `build_dot_class_method_invocation'
13141
        to use `ref_type' directly.
13142
 
13143
2000-08-06  Ovidiu Predescu  
13144
 
13145
        * lang-options.h: Added a comma after the last element to avoid
13146
        syntax errors when other languages define additional options.
13147
 
13148
2000-08-04  Zack Weinberg  
13149
 
13150
        * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
13151
        * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
13152
        (jc1): Link with $(BACKEND).
13153
        (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
13154
 
13155
2000-08-02  Zack Weinberg  
13156
 
13157
        * jvspec.c: Adjust type of second argument to
13158
        lang_specific_driver, and update code as necessary.
13159
 
13160
        * class.c (build_dtable_decl): Initialize dummy.
13161
 
13162
2000-08-01  Alexandre Petit-Bianco  
13163
 
13164
        * parse.y (maybe_yank_clinit): When generating bytecode: non empty
13165
        method bodies not to rule out discarding `'; don't use
13166
         to initialize static fields with constant initializers.
13167
 
13168
2000-08-01  Alexandre Petit-Bianco  
13169
 
13170
        * gjavah.c (print_method_info): Added `synth' parameter. Skip
13171
        synthetic methods.
13172
        (method_synthetic): New global.
13173
        (HANDLE_METHOD): Recognize synthetic method and tell
13174
        `print_method_info' about it.
13175
        (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
13176
        processing a synthetic method.
13177
        * jcf-reader.c (skip_attribute): New function.
13178
        ( skip_attribute): Likewise.
13179
 
13180
2000-08-01  Alexandre Petit-Bianco  
13181
 
13182
        * parse.y (build_outer_field_access): Fixed comments.
13183
        (fix_constructors): Emit the initialization of this$ before
13184
        calling $finit$.
13185
        (resolve_qualified_expression_name): Build an access to `decl' if
13186
        necessary.
13187
 
13188
2000-07-31  Alexandre Petit-Bianco  
13189
 
13190
        * parse-scan.y (curent_class): Non longer const.
13191
        (inner_qualifier, inner_qualifier_length): Deleted.
13192
        (current_class_length): New global.
13193
        (bracket_count): Fixed typo in leading comment.
13194
        (anonymous_count): New global.
13195
        (class_instance_creation_expression:): Handle anonymous classes.
13196
        (anonymous_class_creation:): New rule.
13197
        (push_class_context): Rewritten.
13198
        (pop_class_context): Likewise.
13199
        (INNER_QUALIFIER): Macro deleted.
13200
        (report_class_declaration): call `push_class_context' when
13201
        entering the function. `fprintf' format modified not to use
13202
        INNER_QUALIFIER.
13203
        (report_class_declaration): Assign `package_name' and
13204
        `current_class' to NULL separately.
13205
 
13206
2000-07-31  Alexandre Petit-Bianco  
13207
 
13208
        * expr.c (build_invokeinterface): Call layout_class_methods on
13209
        target interface.
13210
 
13211
2000-07-27  Tom Tromey  
13212
            Anthony Green  
13213
            Alexandre Petit-Bianco  
13214
 
13215
        * class.c (make_class_data): Create vtable for abstract classes.
13216
        (get_dispatch_table): Changed to cope with abstract classes.
13217
 
13218
2000-07-27  Tom Tromey  
13219
 
13220
        * parse.y (patch_method_invocation): Don't reverse the argument
13221
        list when dealing with anonymous class constructors. Fixed typo in
13222
        comment.
13223
 
13224
2000-07-27  Alexandre Petit-Bianco  
13225
 
13226
        * parse.y (build_alias_initializer_parameter_list): Reverse
13227
        crafted list when building aliases for anonymous class
13228
        constructors.
13229
 
13230
2000-07-25  Alexandre Petit-Bianco  
13231
 
13232
        * parse.y (jdep_resolve_class): Don't bother checking potential
13233
        innerclass access if `decl' is NULL.
13234
        (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
13235
        WFL.
13236
 
13237
2000-07-25  Alexandre Petit-Bianco  
13238
 
13239
        * parse.c: Remove (again.)
13240
 
13241
2000-07-24  Alexandre Petit-Bianco  
13242
 
13243
        * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
13244
        * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
13245
        outside the `if' statement, alias to innerclass removed, `decl'
13246
        used to mark the class complete.
13247
 
13248
2000-07-21  Alexandre Petit-Bianco  
13249
 
13250
        * parse.y (simple_name:): Fixed typo in error message.
13251
 
13252
2000-07-21  Alexandre Petit-Bianco  
13253
 
13254
        * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
13255
        or its first operand can be error marks.
13256
 
13257
2000-07-20  Alexandre Petit-Bianco  
13258
 
13259
        * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
13260
        * parse.y (method_header): Likewise.
13261
 
13262
2000-07-19  Alexandre Petit-Bianco  
13263
 
13264
        * parse.y (process_imports): Consider that one might be trying to
13265
        import an innerclass. Fixes gcj/254
13266
 
13267
2000-07-19  Alexandre Petit-Bianco  
13268
 
13269
        * parse.y (find_as_inner_class): Handle the case where the
13270
        enclosing context of an innerclass has been loaded as bytecode.
13271
 
13272
2000-07-19  Alexandre Petit-Bianco  
13273
 
13274
        * parse.y (simple_name:): Reject `$' in type names.
13275
        (resolve_type_during_patch): Use `type' as a second
13276
        argument to resolve_no_layout. Fixes gcj/257.
13277
 
13278
2000-07-18  Bryce McKinlay  
13279
 
13280
        * parse.y (find_most_specific_methods_list): Select the only
13281
        non-abstract method even if max has been set.
13282
        Fixes gcj/285, gcj/298.
13283
 
13284
2000-07-18  Jeff Sturm  
13285
 
13286
        * lang-specs.h: Added %(jc1) to java compiler options.
13287
 
13288
2000-07-14  Zack Weinberg  
13289
 
13290
        * .cvsignore: New file.
13291
 
13292
2000-07-13  Alexandre Petit-Bianco  
13293
 
13294
        * parse.y (not_accessible_p): Access granted to innerclasses
13295
        (indirectly) extending the reference type. Fixes gcj/249.
13296
 
13297
2000-07-13  Alexandre Petit-Bianco  
13298
 
13299
        * parse.y (patch_method_invocation): Fixed comment.
13300
        (maybe_use_access_method): Build this$s to the context of the
13301
        target method, or a type that extends it. Fixes gcj/242.
13302
 
13303
2000-07-13  Mark Mitchell  
13304
 
13305
        * parse.c: Remove.
13306
 
13307
2000-07-13  Alexandre Petit-Bianco  
13308
 
13309
        * parse.y (fold_constant_for_init): Avoid bullish conversion.
13310
 
13311
2000-07-13  Tom Tromey  
13312
 
13313
        * lang-specs.h: Added %{I*}.
13314
 
13315
2000-07-13  Zack Weinberg  
13316
 
13317
        * lang-specs.h: Use the new named specs.  Remove unnecessary braces.
13318
 
13319
2000-07-12  Mark Mitchell  
13320
 
13321
        * parse-scan.c: Remove.
13322
 
13323
2000-07-10  Alexandre Petit-Bianco  
13324
 
13325
        * class.c (set_super_info): Handled protected inner classes.
13326
        (common_enclosing_context_p): Bail early if arguments aren't both
13327
        inner classes.
13328
        (get_access_flags_from_decl): Handle private and protected inner
13329
        classes.
13330
        * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
13331
        (CLASS_PROTECTED): Likewise.
13332
        (struct lang_type): New bitfield `poic'.
13333
        * parse.y (jdep_resolve_class): Call check_inner_class_access on
13334
        inner classes only.
13335
        (check_inner_class_access): Renamed arguments, added
13336
        comments. Handles protected inner classes (fixes gcj/225)
13337
        (not_accessible_p): Fixed comments. Avoid handling inner classes.
13338
 
13339
2000-07-10  Alexandre Petit-Bianco  
13340
 
13341
        * parse.y (resolve_qualified_expression_name): Verify qualified
13342
        access to `this'. Fixes gcj/239.
13343
 
13344
2000-07-10  Alexandre Petit-Bianco  
13345
 
13346
        * jcf-write.c (generate_classfile): Don't install ConstantValue
13347
        for null pointers.
13348
 
13349
2000-07-07  Alexandre Petit-Bianco  
13350
 
13351
        * parse.y (resolve_qualified_expression_name): Handle inner class
13352
        access. Fixes gcj/256.
13353
 
13354
2000-07-07  Alexandre Petit-Bianco  
13355
 
13356
        * jcf-write.c (generate_classfile): Properly install the
13357
        ConstantValue attribute and the initial value constant pool index
13358
        on string constants.
13359
        * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
13360
        class files.
13361
 
13362
2000-07-06  Alexandre Petit-Bianco  
13363
 
13364
        * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
13365
        construct.
13366
        * parse.y (find_as_inner_class): Fixed typo.
13367
        (do_resolve_class): Explore enclosing contexts when searching for
13368
        innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
13369
        (check_inner_class_access): Check `decl' which can be null in case
13370
        of previous errors.
13371
 
13372
2000-07-05  Alexandre Petit-Bianco  
13373
 
13374
        * java-tree.h (java_debug_context): Declared `extern'.
13375
        (safe_layout_class): Likewise.
13376
        * parse.y (resolve_field_access): Field must be `static' in order
13377
        to be replaced by its initial value. Added comments.
13378
        (find_applicable_accessible_methods_list): Fixed typo.
13379
        (find_most_specific_methods_list): Methods found in innerclasses
13380
        take over methods founds in the enclosing contexts.
13381
        (java_complete_tree): Loosen restrictions on the type of DECLs
13382
        that can be replaced by their initialization values.
13383
        (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
13384
 
13385
2000-07-05  Tom Tromey  
13386
 
13387
        * Make-lang.in (PARSE_DIR): New macro.
13388
        (PARSE_RELDIR): Likewise.
13389
        (PARSE_C): Likewise.
13390
        (PARSE_SCAN_C): Likewise.
13391
        ($(PARSE_C)): New target.
13392
        ($(PARSE_SCAN_C)): Likewise.
13393
        (SET_BISON): New macro.
13394
        (BISONFLAGS): Likewise.
13395
        (JAVABISONFLAGS): Likewise.
13396
 
13397
2000-07-02  Bryce McKinlay  
13398
 
13399
        * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
13400
        argument on the first pass for CNI as well as JNI.
13401
        (print_method_info): Set up method name on the first pass only.
13402
 
13403
2000-07-01  Alexandre Petit-Bianco  
13404
 
13405
        * parse.y (parser_qualified_classname): Removed parameter
13406
        `is_static'.
13407
        (create_interface): Removed first passed parameter to
13408
        parser_qualified_classname.
13409
        (create_class): Likewise. Don't install alias on static
13410
        innerclasses. Fixes gcj/275.
13411
 
13412
2000-07-01  Alexandre Petit-Bianco  
13413
 
13414
        * parse.y (maybe_generate_pre_expand_clinit): Don't build a
13415
        debugable statement with empty_stmt_node. Fixes gcj/272
13416
 
13417
2000-07-01  Alexandre Petit-Bianco  
13418
 
13419
        * expr.c (build_instanceof): Layout type after it's loaded. Fixes
13420
        gcj/271.
13421
 
13422
2000-06-29  Alexandre Petit-Bianco  
13423
 
13424
        * jcf-write.c (push_long_const): Appropriately cast short negative
13425
        constant to jword.
13426
 
13427
2000-06-29  Alexandre Petit-Bianco  
13428
 
13429
        * parse.y (verify_constructor_super): Use loop variable
13430
        `m_arg_type' initialized with `mdecl_arg_type'.
13431
 
13432
2000-06-29  Tom Tromey  
13433
 
13434
        * parse.y (resolve_field_access): Handle case where `type_found'
13435
        is NULL.
13436
 
13437
2000-06-27  Alexandre Petit-Bianco  
13438
 
13439
        * expr.c (lookup_field): The same field can be found through two
13440
        different interface. Don't declare it ambiguous in that case.
13441
 
13442
2000-06-27  Tom Tromey  
13443
 
13444
        * lex.c (java_lineterminator): Don't recognize \r after \n.  If \r
13445
        follows \r, then unget it at a lower level.
13446
 
13447
2000-06-26  Tom Tromey  
13448
 
13449
        * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
13450
        java_complete_tree.
13451
 
13452
2000-06-25  Tom Tromey  
13453
 
13454
        * parse.y (for_statement): Wrap expression in a WFL if it is a
13455
        constant.  For PR gcj/268.
13456
 
13457
2000-06-25  Alexandre Petit-Bianco  
13458
 
13459
        * parse.y (do_resolve_class): Minor optimiztion in the package
13460
        list search. Removed unnecessary test and return statement.
13461
        (valid_ref_assignconv_cast_p): Order of arguments to
13462
        enclosing_context_p fixed.
13463
 
13464
2000-06-24  Tom Tromey  
13465
 
13466
        * expr.c (lookup_field): Print error and return error_mark_node if
13467
        field reference is ambiguous.
13468
 
13469
        * parse.y (check_abstract_method_definitions): Also check if
13470
        `other_method' is abstract.
13471
 
13472
2000-06-23  Alexandre Petit-Bianco  
13473
 
13474
        * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
13475
        classes.
13476
        * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
13477
        (struct lang_type): New field `pic'.
13478
        (CLASS_PRIVATE): New macro.
13479
        * parse.y (check_inner_class_access): New function.
13480
        (jdep_resolve_class): Call it.
13481
 
13482
2000-06-23  Tom Tromey  
13483
 
13484
        * parse.y (patch_incomplete_class_ref): Initialize the returned
13485
        class.  For PR gcj/260.
13486
 
13487
2000-06-21  Alexandre Petit-Bianco  
13488
 
13489
        * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
13490
 
13491
2000-06-20  Alexandre Petit-Bianco  
13492
 
13493
        * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13494
        Java specific checks.
13495
        * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
13496
        screened by DECL_P.
13497
        * java-tree.def (CASE_EXPR): Marked 'e'.
13498
        (DEFAULT_EXPR): Likewise.
13499
        * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
13500
        screened by DECL_P.
13501
        * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13502
        Java specific checks.
13503
        (generate_bytecode_insns): Test try_block for BLOCK before using
13504
        BLOCK_EXPR_BODY.
13505
        * parse.y (build_wfl_wrap): Added `location' argument. Set
13506
        EXPR_WFL_LINECOL accordingly.
13507
        (dim_expr:): Wrap constants with WFLs.
13508
        (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
13509
        (resolve_package): Check for `stmt' not being a BLOCK before
13510
        building a debuggable statement with it.
13511
        (make_qualified_primary): Added extra parameter to build_wfl_wrap
13512
        invocation.
13513
        (resolve_field_access): Make sure `decl' is a DECL before treating
13514
        it as such.
13515
        (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
13516
        IDENTIFIER_NODE before treating it as such.
13517
        (patch_new_array_init): Make sure `elt' is a TREE_LIST before
13518
        treating it as such.
13519
        (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
13520
        to be applied only on non array types.
13521
 
13522
2000-06-16  Per Bothner  
13523
 
13524
        * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN):  Don't
13525
        define in terms of DECL_RESULT, as that fails when --enable-checking.
13526
 
13527
2000-06-15  Kaveh R. Ghazi  
13528
 
13529
        * jcf-write.c (CHECK_PUT): Add static prototype.  Make pointer
13530
        types the same in comparison.
13531
        (CHECK_OP): Add static prototype.
13532
 
13533
2000-06-13  Jakub Jelinek  
13534
 
13535
        * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
13536
        * parse.y (java_complete_class): Set DECL_USER_ALIGN.
13537
        * parse.c: Rebuilt.
13538
 
13539
2000-06-11  Kaveh R. Ghazi  
13540
 
13541
        * decl.c (create_primitive_vtable): Prototype.
13542
 
13543
        * jcf-write.c (generate_bytecode_insns): Initialize variable
13544
        `saved_context'.
13545
 
13546
        * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
13547
 
13548
2000-06-09  Bryce McKinlay  
13549
 
13550
        * parse.y (find_applicable_accessible_methods_list): Use a hashtable
13551
        to track searched classes, and do not search the same class more than
13552
        once. Call find_applicable_accessible_methods_list on immediate
13553
        superclass, instead of search_applicable_method_list on all ancestors.
13554
        Fix for PR gcj/238.
13555
 
13556
2000-06-09  Bryce McKinlay  
13557
 
13558
        * parse.y (register_fields): Permit static fields in inner classes
13559
        if they are final. Fix for PR gcj/255.
13560
 
13561
2000-06-06  Alexandre Petit-Bianco  
13562
 
13563
        * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
13564
        * parse.y (find_in_imports): Returned type changed to void,
13565
        leading comment fixed.
13566
        (register_package): New function.
13567
        (qualify_and_find): Likewise.
13568
        (package_declaration:): Use `register_package'.
13569
        (single_type_import_declaration:): Removed local variable
13570
        `node'. Added missing `;' for consistency.
13571
        (type_import_on_demand_declaration:): Use `chainon' to link new
13572
        entries.
13573
        (lookup_field_wrapper): Lookup local variables defined in outer
13574
        contexts first.
13575
        (java_complete_class): Don't reverse the list of imported on demand.
13576
        (do_resolve_class): Reorganized. Removed local variable
13577
        `original_name'. Call `qualify_and_find' with the current package
13578
        name, invoke `find_in_imports_on_demand' right after. Call
13579
        `qualify_and_find' with the packages we've seen so far. Fixed
13580
        operations numbering in comments.
13581
        (java_expand_class): Don't reverse `package_list'.
13582
        (find_most_specific_methods_list): New local variables `abstract'
13583
        and `candidates'. Use them to pick the right method.
13584
 
13585
2000-06-06  Tom Tromey  
13586
 
13587
        * parse.y (check_modifiers_consistency): Don't subtract out
13588
        `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
13589
 
13590
2000-06-04  Philipp Thomas  
13591
 
13592
        * Makefile.in (INTLLIBS): New.
13593
        (LIBS): Add above.
13594
        (DEPLIBS): Ditto.
13595
 
13596
2000-06-02  Alexandre Petit-Bianco  
13597
 
13598
        * class.c (get_dispatch_table): Build the vtable dummy entry list
13599
        element with a null purpose. Fixed leading comment.
13600
        (build_dtable_decl): Build an accurate dtable type when appropriate
13601
        and use it.
13602
 
13603
2000-06-02  Richard Henderson  
13604
 
13605
        * lang.c (lang_get_alias_set): New.
13606
 
13607
2000-05-31  Alexandre Petit-Bianco  
13608
 
13609
        * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
13610
        before using it as the accessed field.
13611
 
13612
2000-05-31  Tom Tromey  
13613
 
13614
        * java-tree.h (boolean_array_vtable, byte_array_vtable,
13615
        char_array_vtable, short_array_vtable, int_array_vtable,
13616
        long_array_vtable, float_array_vtable, double_array_vtable):
13617
        Declare.
13618
        * expr.c (get_primitive_array_vtable): New function.
13619
        (create_primitive_vtable): New function.
13620
        (java_lang_expand_expr): Enable code to statically generate
13621
        arrays.
13622
        * decl.c (init_decl_processing): Create primitive vtables.
13623
        (boolean_array_vtable, byte_array_vtable, char_array_vtable,
13624
        short_array_vtable, int_array_vtable, long_array_vtable,
13625
        float_array_vtable, double_array_vtable): Define.
13626
 
13627
2000-05-26  Zack Weinberg  
13628
 
13629
        * java/parse.y (find_applicable_accessible_methods_list):
13630
        Don't add an uninitialized value to the list.
13631
 
13632
2000-05-25  Tom Tromey  
13633
 
13634
        * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
13635
        when trying to see if field's class should be initialized.  Always
13636
        initialize field's declaring class, not qualified class.
13637
        For PR gcj/162.
13638
 
13639
        * parse.y (array_constructor_check_entry): Pass `wfl_value', not
13640
        `wfl_operator', to maybe_build_primttype_type_ref.
13641
        Fixes PR gcj/235.
13642
 
13643
2000-05-23  Bryce McKinlay  
13644
 
13645
        * parse.y (patch_method_invocation): Don't try to lookup methods
13646
        in primitive types.
13647
 
13648
2000-05-02  Alexandre Petit-Bianco  
13649
 
13650
        * parse.y (resolve_field_access): Call the appropriate 
13651
        before accessing the length of a static array. Craft a decl for
13652
        the field while its time. Fixes PR gcj/129.
13653
 
13654
2000-05-01  Alexandre Petit-Bianco  
13655
 
13656
        * parse.y (resolve_package): Correctly set `*next' (was off by
13657
        one.)
13658
        (resolve_qualified_expression_name): Fixed comment.
13659
 
13660
2000-04-27  Alexandre Petit-Bianco  
13661
 
13662
        * jcf-parse.c (jcf_parse_source): Reset current_class and
13663
        current_function_decl to NULL before parsing a new file.
13664
 
13665
2000-04-27  Alexandre Petit-Bianco  
13666
 
13667
        * parse.y (block_end:): If the collected block doesn't feature a
13668
        statement, insert an empty statement.
13669
 
13670
2000-04-17  Alexandre Petit-Bianco  
13671
 
13672
        * parse.y (maybe_yank_clinit): New function.
13673
        (maybe_generate_pre_expand_clinit): Always link  at the
13674
        end of the list of methods belonging to a class.
13675
        (java_complete_expand_method): Check whether  is really
13676
        necessary and expand it accordingly.
13677
 
13678
2000-04-17  Alexandre Petit-Bianco  
13679
 
13680
        * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
13681
        processed by the method's switch statement.
13682
 
13683
2000-05-19  Tom Tromey  
13684
 
13685
        * java-tree.h: Added init state enum.
13686
        * decl.c (emit_init_test_initialization): Initialize class
13687
        initialization check variable by looking at class' state.
13688
 
13689
2000-05-19  Tom Tromey  
13690
 
13691
        * java-tree.h (build_instanceof): Declare.
13692
        (build_get_class): Declare.
13693
        * parse.y (patch_binop): Use build_instanceof.
13694
        * expr.c (build_instanceof): New function.  If class is final,
13695
        don't make a function call.
13696
        (expand_java_INSTANCEOF): Use it.
13697
        (build_get_class): New function.
13698
 
13699
2000-05-18  Alexandre Oliva  
13700
 
13701
        * jcf-write.c (generate_classfile): Scan the source_file for
13702
        slashes with the right pointer variable.
13703
 
13704
2000-05-17  Andrew Cagney  
13705
 
13706
        * lang.c (lang_decode_option): Update -Wunused flags by calling
13707
        set_Wunused.
13708
        * decl.c (poplevel): Replace warn_unused with warn_unused_label.
13709
 
13710
2000-05-09  Zack Weinberg  
13711
 
13712
        * check_init.c (check_init): Constify local char *.
13713
        * class.c (push_class): Constify local char *.
13714
        * java_tree.h: Update prototypes.
13715
        * jcf-io.c (open_class): Constify filename parameter and
13716
        return value.
13717
        (find_class): Remove redundant string copy.  Cast return from
13718
        open_class.
13719
        * jcf-parse.c (read_class, parse_class_file, yyparse):
13720
        Constify local char *.
13721
        * jcf-write.c (generate_bytecode_insns, generate_classfile):
13722
        Constify local char *.
13723
        * jcf.h (JCF): Constify filename and classname.
13724
        (JCF_FINISH): Cast args to FREE to char * when appropriate.
13725
        * lang.c (init_parse): Constify parameter and return value.
13726
        * lex.c (java_get_line_col): Constify filename parameter.
13727
        * parse.h: Constify parser_ctxt.filename.  Update prototypes.
13728
        * parse.y (java_parser_context_suspend,
13729
        issue_warning_error_from_context, safe_layout_class): Constify
13730
        local char *.
13731
        * parse.c: Regenerate.
13732
 
13733
2000-05-08  Tom Tromey  
13734
 
13735
        * expr.c (build_jni_stub): Cache the result of
13736
        _Jv_LookupJNIMethod.
13737
 
13738
2000-05-05  Alexandre Petit-Bianco  
13739
 
13740
        * decl.c (predef_filenames_size): Now 7.
13741
        (predef_filenames): New seventh entry.
13742
 
13743
2000-05-04  Tom Tromey  
13744
 
13745
        * boehm.c (mark_reference_fields): Don't mark RawData fields.
13746
        Keep track of when we've seen a reference field after a
13747
        non-reference field.
13748
        (get_boehm_type_descriptor): Handle case where we see
13749
        non-reference fields but no trailing reference field.
13750
        * decl.c (rawdata_ptr_type_node): Define.
13751
        (init_decl_processing): Initialize rawdata_ptr_type_node.
13752
        * java-tree.h (rawdata_ptr_type_node): Declare.
13753
 
13754
2000-05-04  Kaveh R. Ghazi  
13755
 
13756
        * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
13757
        specifiers in calls to fprintf.
13758
 
13759
2000-05-03  Andrew Haley  
13760
 
13761
        * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
13762
 
13763
        * javaop.h (WORD_TO_INT): New function.
13764
        (IMMEDIATE_s4): Use WORD_TO_INT.
13765
        * jcf.h (JPOOL_INT): Ditto.
13766
 
13767
        * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
13768
        separator.
13769
 
13770
2000-04-19  Tom Tromey  
13771
 
13772
        * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
13773
        on native function.
13774
        * jcf-parse.c (parse_class_file): Call build_jni_stub for native
13775
        JNI methods.
13776
        * expr.c (build_jni_stub): New function.
13777
        * lang-specs.h: -fjni and -femit-class-file are incompatible.
13778
        * parse.c: Rebuilt.
13779
        * parse.y (java_complete_expand_methods): Expand a native method
13780
        and call build_jni_stub if -fjni given.
13781
        * lang-options.h: Document -fjni.
13782
        * lang.c (flag_jni): New global.
13783
        (lang_f_options): Added `jni' entry.
13784
        * java-tree.h (soft_lookupjnimethod_node,
13785
        soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
13786
        Declare.
13787
        (flag_jni): Declare.
13788
        (build_jni_stub): Declare.
13789
        (struct lang_decl): Added `native' flag.
13790
        (METHOD_NATIVE): Redefined to use `native' field of lang specific
13791
        structure.
13792
        * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
13793
        soft_jnipopsystemframe_node): New globals.
13794
        (init_decl_processing): Set them.  _Jv_InitClass only takes one
13795
        argument.
13796
 
13797
        * java-tree.def: Put into `C' mode.
13798
 
13799
2000-04-27  Tom Tromey  
13800
 
13801
        Fix for PR gcj/2:
13802
        * expr.c (expand_invoke): Generate check to see if object pointer
13803
        is null in nonvirtual invocation case.
13804
        * java-tree.h (soft_nullpointer_node): Declare.
13805
        * decl.c (soft_nullpointer_node): New global.
13806
        (init_decl_processing): Initialize soft_nullpointer_node.
13807
        * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13808
        or `private' methods.
13809
        (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13810
 
13811
2000-04-26  Alexandre Petit-Bianco  
13812
 
13813
        * decl.c (complete_start_java_method): Don't call _Jv_InitClass
13814
        from 
13815
 
13816
2000-04-26  Tom Tromey  
13817
 
13818
        * zextract.c (find_zip_file_start): New function.
13819
        (read_zip_archive): Use it.
13820
 
13821
2000-04-25  Alexandre Petit-Bianco  
13822
 
13823
        * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
13824
 
13825
2000-04-24  Alexandre Petit-Bianco  
13826
 
13827
        * class.c (common_enclosing_context_p): New function.
13828
        * java-tree.h (common_enclosing_context_p): Added prototype.
13829
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
13830
        classes sharing an outer context with the current instance.
13831
        * parse.y (build_access_to_thisn): Fixed leading comment.
13832
        (verify_constructor_super): New local `supper_inner'. Skip
13833
        enclosing context argument in the case of inner class constructors.
13834
        (patch_method_invocation): Insert proper context as second
13835
        parameter to pure inner class constructor super invocations.
13836
 
13837
2000-04-24  Alexandre Petit-Bianco  
13838
 
13839
        * parse.y (end_class_declaration): Reset the interface number
13840
        counter.
13841
 
13842
2000-04-24  Alexandre Petit-Bianco  
13843
 
13844
        * parse.y (source_start_java_method): Deleted unnecessary code.
13845
        (patch_method_invocation): Fixed comment.
13846
 
13847
2000-04-24  Robert Lipe 
13848
 
13849
        * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
13850
 
13851
2000-04-23  Tom Tromey  
13852
 
13853
        * boehm.c (mark_reference_fields): Use int_byte_position.
13854
 
13855
2000-04-22  Tom Tromey  
13856
 
13857
        * boehm.c (mark_reference_fields): Only call byte_position on
13858
        non-static fields.
13859
 
13860
2000-04-22  Tom Tromey  
13861
 
13862
        * boehm.c (mark_reference_fields): Added `last_view_index'
13863
        argument.  Use DECL_FIELD_OFFSET to determine field's offset.
13864
 
13865
2000-04-20  Mo DeJong  
13866
 
13867
        * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
13868
        * parse.y (check_class_interface_creation): Fixed comments. Select
13869
        permitted modifiers for (inner) interfaces. Changed error message
13870
        to report rejected modifiers used with local classes.
13871
 
13872
2000-04-20  Alexandre Petit-Bianco  
13873
 
13874
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
13875
        of directly inherited type considered in scope.
13876
        * parse.y (do_resolve_class): Search inherited classes for inner
13877
        classes.
13878
 
13879
2000-04-20  Tom Tromey  
13880
 
13881
        * parse.y (not_accessible_p): Use member's class, not current
13882
        class, when doing inheritance check for protected reference.
13883
        Fixes PR gcj/124.
13884
 
13885
2000-04-20  Jason Schroeder  
13886
 
13887
        * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
13888
 
13889
2000-04-19  Alexandre Petit-Bianco  
13890
 
13891
        * parse.y (lookup_field_wrapper): Search for final local aliases.
13892
        (resolve_expression_name): Let lookup_field_wrapper search for
13893
        final local aliases. Force the value of `name' if one is found.
13894
        (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
13895
        an expression name. Fixed comments.
13896
 
13897
2000-04-19  Alexandre Petit-Bianco  
13898
 
13899
        * parse.y (yyerror): `msg' can be null, don't use it in that case.
13900
 
13901
2000-04-19  Tom Tromey  
13902
 
13903
        * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
13904
 
13905
2000-04-18  Alexandre Petit-Bianco  
13906
 
13907
        * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
13908
 
13909
2000-04-18  Tom Tromey  
13910
 
13911
        PR gcj/211:
13912
        * gjavah.c (utf8_cmp): Changed return value.
13913
        (cxx_keyword_subst): Handle all C++ keywords.  Allocate new return
13914
        result.
13915
        (cxx_keywords): New global.
13916
        (get_field_name): Handle new result of cxx_keyword_subst.
13917
        (print_method_info): Likewise.
13918
 
13919
2000-04-17  Bryce McKinlay  
13920
 
13921
        * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
13922
        with a newline, for CNI.
13923
        (print_stub_or_jni): Print a space or newline before method name for
13924
        CNI as well as JNI.
13925
        (print_cxx_classname): Don't write leading "::" in CNI stub method.
13926
        (process_file): Include gcj/cni.h if generating CNI stubs.
13927
 
13928
2000-04-16  Tom Tromey  
13929
 
13930
        * gjavah.c (decompile_method): Use print_field_name.
13931
        Fixes PR gcj/205.
13932
 
13933
2000-04-14  Alexandre Petit-Bianco  
13934
 
13935
        * parse.y (java_expand_classes): Reverse the package list once.
13936
        (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
13937
        reduction.
13938
        (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
13939
        the `==' and `!=' operators.
13940
 
13941
2000-04-05  Alexandre Petit-Bianco  
13942
 
13943
        * jcf-write.c (generate_bytecode_insns): At invocation time,
13944
        always relate an interface method to the type of its selector.
13945
 
13946
2000-04-05  Tom Tromey  
13947
 
13948
        Fix for PR gcj/2:
13949
        * expr.c (expand_invoke): Generate check to see if object pointer
13950
        is null in nonvirtual invocation case.
13951
        * java-tree.h (soft_nullpointer_node): Declare.
13952
        * decl.c (soft_nullpointer_node): New global.
13953
        (init_decl_processing): Initialize soft_nullpointer_node.
13954
        * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13955
        or `private' methods.
13956
        (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13957
 
13958
2000-04-05  Tom Tromey  
13959
 
13960
        Fix for PR gcj/140:
13961
        * parse.y (check_final_assignment): Recognize assignments to the
13962
        `length' field of an array when generating class files.
13963
 
13964
2000-04-05  Alexandre Petit-Bianco  
13965
 
13966
        * class.c (decl_hash): Prototype removed.
13967
        (decl_compare): Likewise.
13968
 
13969
2000-04-05  Tom Tromey  
13970
 
13971
        * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
13972
        * parse.y (check_modifiers_consistency): Check for final/volatile
13973
        clash.  Fixes PR gcj/164.
13974
 
13975
2000-04-05  Alexandre Petit-Bianco  
13976
 
13977
        * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
13978
        made global.
13979
        (java_hash_compare_tree_node): Renamed from `decl_compare, made
13980
        global.
13981
        (add_method_1): Use `java_hash_hash_tree_node' and
13982
        `java_hash_compare_tree_node'.
13983
        * java-tree.h: (java_hash_hash_tree_node): Prototyped.
13984
        (java_hash_compare_tree_node): Likewise.
13985
        * parse.y (find_applicable_accessible_methods_list): Create,
13986
        delete and use a hash table to remember already searched interfaces.
13987
 
13988
2000-04-03  Matt Welsh  
13989
 
13990
        * jcf-depend.c (add_entry): Fixed bug where list was always replaced
13991
        with latest entry.
13992
 
13993
2000-04-04  Kaveh R. Ghazi  
13994
 
13995
        * boehm.c (mark_reference_fields, set_bit): Prototype.
13996
        (set_bit): Un-ANSI-fy definition.
13997
 
13998
        * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
13999
        Prototype.
14000
 
14001
        * decl.c (emit_init_test_initialization): Likewise.
14002
 
14003
        * gjavah.c (jni_print_char): Likewise.
14004
 
14005
        * parse.y (create_new_parser_context): Likewise.
14006
 
14007
2000-03-30  Alexandre Petit-Bianco  
14008
 
14009
        * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
14010
        patch missing hunk. Fixed indentation.
14011
 
14012
2000-03-30  Tom Tromey  
14013
 
14014
        * gjavah.c (D_NAN_MASK): Only define as word-reversed when
14015
        HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
14016
 
14017
2000-03-28  Alexandre Petit-Bianco  
14018
 
14019
        * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
14020
        when negative *before* using it as an array index.
14021
        * ChangeLog: Fixed typo.
14022
 
14023
2000-03-28  Alexandre Petit-Bianco  
14024
 
14025
        * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
14026
        to 0 when it reaches -1.
14027
 
14028
2000-03-27  Alexandre Petit-Bianco  
14029
 
14030
        * jcf-parse.c (get_constant): Properly cast `num' during the
14031
        invocation of `add_double'.
14032
        * jcf-write.c (push_long_const): Properly cast `lo' before
14033
        comparing it to short bounds.
14034
        * parse-scan.y (interface_declaration:): Rule re-arrange so that
14035
        `interface_body:' is reduced after the current interface is
14036
        pushed.
14037
 
14038
2000-03-26  Tom Tromey  
14039
 
14040
        * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
14041
        Java-specific `-f' option.
14042
 
14043
2000-03-26  Richard Kenner  
14044
 
14045
        * decl.c (init_decl_processing): Only call initialize_sizetypes once.
14046
        Adjust order of making types.
14047
        Make bitsize_*_node values.
14048
 
14049
2000-03-25  Richard Kenner  
14050
 
14051
        * class.c (make_field_value): Use byte_position.
14052
        * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
14053
        (java_array_data_offset): Likewise.
14054
        * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
14055
        bzero call.
14056
 
14057
2000-03-22  Alexandre Petit-Bianco  
14058
 
14059
        * parse.y (check_abstract_method_definitions): New local
14060
        `end_type_reached'. Make sure we also consider `end_type'.
14061
        (java_check_abstract_method_definitions): Make sure we eventually
14062
        consider `java.lang.Object'.
14063
        (maybe_use_access_method): Don't use access method if not in the
14064
        context of a pure inner class or if the method's context is right.
14065
        (find_applicable_accessible_methods_list): New static flag
14066
        `object_done'. Don't search abstract classes as interfaces. Fixed
14067
        indentation. Fixed the `java.lang.Object' only search. Search
14068
        class interface(s) first, then fully search enclosing contexts.
14069
        (find_most_specific_methods_list): Pick the closest candidate when
14070
        they're all abstract.
14071
 
14072
2000-03-20  Alexandre Petit-Bianco  
14073
 
14074
        * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
14075
        properly initialize `finished_label'. Don't emit gotos for empty
14076
        try statements.
14077
 
14078
2000-03-19  Martin v. Löwis  
14079
 
14080
        * except.c (emit_handlers): Clear catch_clauses_last.
14081
 
14082
2000-03-17  Alexandre Petit-Bianco  
14083
 
14084
        * parse.y (check_method_types_complete): New function.
14085
        (create_class): Reset anonymous class counter only when seeing an
14086
        non inner classe.
14087
        (java_complete_class): JDEP_METHOD: Don't recompute signature
14088
        if incomplete.
14089
 
14090
2000-03-17  Alexandre Petit-Bianco  
14091
 
14092
        * class.c (build_static_ref): Fixed indentation in comment.
14093
        * java-tree.def (TRY_EXPR): Fixed typo in name.
14094
        (CLASS_LITERAL): Likewise.
14095
        * java-tree.h: (TYPE_DOT_CLASS): New macro.
14096
        (struct lang_type): New field `dot_class'.
14097
        * jcf-write.c (generate_bytecode_insns): Fixed error message.
14098
        (generate_classfile): Method `class$' is synthetic.
14099
        * parse.y (build_do_class_method): New function.
14100
        (build_dot_class_method_invocation): Likewise.
14101
        (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
14102
        (resolve_qualified_expression_name): Handle CLASS_LITERAL.
14103
        (qualify_ambiguous_name): Likewise.
14104
        (patch_incomplete_class_ref): Invoke synthetic method if necessary.
14105
        (build_try_statement): Fixed leading comment.
14106
 
14107
2000-03-17  Richard Kenner  
14108
 
14109
        * class.c (make_field_value): Properly handle sizes.
14110
        (get_dispatch_vector): Use tree_low_cst and host_integerp.
14111
        (layout_class_method): Count using trees.
14112
        * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
14113
        * expr.c (java_array_data_offset): Use int_bit_position.
14114
        (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
14115
        (build_invokevirtual): Use tree_low_cst and do computations with trees.
14116
 
14117
2000-03-16  Tom Tromey  
14118
 
14119
        * lang.c (flag_hash_synchronization): New global.
14120
        (lang_f_options): Added `hash-synchronization'.
14121
        * lang-options.h: Mention -fhash-synchronization.
14122
        * java-tree.h (flag_hash_synchronization): Declare.
14123
        * expr.c (java_lang_expand_expr): Only push `sync_info' value when
14124
        hash table synchronization is disabled.
14125
        * decl.c (init_decl_processing): Only push `sync_info' value when
14126
        hash table synchronization is disabled.
14127
        * class.c (make_class_data): Only push `sync_info' field when hash
14128
        table synchronization is disabled.  Removed dead code.
14129
 
14130
2000-03-16  Tom Tromey  
14131
 
14132
        * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
14133
 
14134
2000-03-15  Alexandre Petit-Bianco  
14135
 
14136
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
14137
        classes.
14138
        * parse.y (patch_method_invocation): Handle anonymous classes
14139
        creation in static context.
14140
 
14141
2000-03-15  Alexandre Petit-Bianco  
14142
 
14143
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
14144
        * parse.y (resolve_qualified_expression_name): Use it.
14145
        (patch_method_invocation): Likewise.
14146
 
14147
2000-03-15  Alexandre Petit-Bianco  
14148
 
14149
        * parse.y (register_incomplete_type): JDEP_ENCLOSING set
14150
        depending on the type of dependency which dictates what the
14151
        current class is.
14152
        (unresolved_type_p): Resolved types limited to the current class.
14153
 
14154
2000-03-15  Tom Tromey  
14155
 
14156
        * decl.c (init_decl_processing): Set type of `sync_info' to be
14157
        pointer to Object.
14158
 
14159
        * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
14160
        Correctly compute bit number for current slot.  Zero `high' and
14161
        `low' in DS_LENGTH case.  Don't skip inherited fields.  Use
14162
        mark_reference_fields.
14163
        (mark_reference_fields): New function.
14164
 
14165
2000-03-14  Alexandre Petit-Bianco  
14166
 
14167
        * parse.y (register_incomplete_type): Fixed initialization of
14168
        JDEP_ENCLOSING.
14169
 
14170
2000-02-28  Alexandre Petit-Bianco  
14171
 
14172
        * parse-scan.y (inner_qualifier, inner_qualifier_length): New
14173
        static globals.
14174
        (push_class_context, pop_class_context): New function.
14175
        (class_body:): Call pop_class_context.
14176
        (interface_body:): Likewise.
14177
        (INNER_QUALIFIER): New macro.
14178
        (report_class_declaration): Changed output format and use
14179
        INNER_QUALIFIER. Call push_class_context.
14180
 
14181
2000-02-14  Andrew Haley  
14182
 
14183
        * check-init.c (check_init): Add new cases for unary and binary
14184
        tree nodes.
14185
 
14186
2000-03-13  Alexandre Petit-Bianco  
14187
 
14188
        * parse.y (resolve_package): Set `next' once a type name has been
14189
        progressively discovered.
14190
        (resolve_qualified_expression_name): Propagate resolution only if
14191
        there are remaining qualifiers. Take into account `q' might have
14192
        been cleared after re-qualification.
14193
        * parse.y (patch_method_invocation): New local `resolved'.
14194
        Section dealing with qualified expression rewritten to use
14195
        resolve_field_access.
14196
 
14197
2000-03-13  Alexandre Petit-Bianco  
14198
 
14199
        * parse.h (PUSH_CPC): Fixed indentation.
14200
        (DEBUG_CPC): New macro.
14201
        (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
14202
        SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
14203
        * parse.y (class_body_declaration:): Use
14204
        SET_CPC_INSTANCE_INITIALIZER_STMT.
14205
        (method_declaration:): Check for null current_function_decl.
14206
        (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
14207
        (java_parser_context_pop_initialized_field): Better handling of
14208
        empty lists.
14209
        (maybe_make_nested_class_name): Mark nested class name as
14210
        qualified when necessary.
14211
        (end_class_declaration): Don't call java_parse_context_resume when
14212
        one or more error occurred.
14213
        (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
14214
        (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
14215
        SET_CPC_INITIALIZER_STMT.
14216
        (method_header): Check for inner classes declaring static methods.
14217
        (resolve_qualified_expression_name): Handle situation where `this'
14218
        is implied.
14219
 
14220
2000-03-13  Hans Boehm 
14221
 
14222
        * typeck.c (build_prim_array_type): Correctly set the high word too.
14223
 
14224
2000-03-09  Alexandre Petit-Bianco  
14225
 
14226
        * parse.y (java_complete_expand_methods): Leave  out of
14227
        ordinary methods.
14228
        (maybe_generate_pre_expand_clinit): Put  at the end of the
14229
        list of methods for interfaces.
14230
 
14231
2000-03-07  Alexandre Petit-Bianco  
14232
 
14233
        * parse.y (qualify_ambiguous_name): Properly handle expressions
14234
        using `null'.
14235
 
14236
2000-03-07  Alexandre Petit-Bianco  
14237
 
14238
        * parse.y (check_final_assignment): Extended to process
14239
        COMPOUND_EXPR.
14240
        (patch_assignment): Have check_final_assignment called only once.
14241
 
14242
2000-03-07  Alexandre Petit-Bianco  
14243
 
14244
        * java-tree.h (IS_INIT_CHECKED): New flag.
14245
        * check-init.c (check_init): Test and set IS_INIT_CHECKED.
14246
        * parse.y (patch_string): Call force_evaluation_order on the
14247
        completed string concatenation tree.
14248
        * expr.c (force_evaluation_order): Call force_evaluation_order on
14249
        function's arguments too.
14250
 
14251
2000-03-06  Richard Kenner  
14252
 
14253
        * decl.c (emit_init_test_initialization): Mark KEY as unused.
14254
        * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
14255
        (build_anewarray): Likewise.
14256
        * parse.y (patch_newarray): Likewise.
14257
        * parse.c: Regenerated.
14258
 
14259
2000-03-06  Bryce McKinlay  
14260
 
14261
        * decl.c (init_decl_processing): Added new class fields `depth',
14262
        `ancestors', and `idt' to class_type_node. Use
14263
        _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
14264
        * class.c (make_class_data): Push initial values for new fields.
14265
        * java-tree.h: Updated prototype for `build_invokeinterface'.
14266
        * expr.c (build_invokeinterface): Changed parameters to accept
14267
        `method' tree. Calculate index of `method' in its declaring
14268
        interface. Build call to _Jv_LookupInterfaceMethodIdx.
14269
        (expand_invoke): Call `build_invokeinterface' with new parameters.
14270
        * parse.y (patch_invoke): Call `build_invokeinterface' with new
14271
        parameters.
14272
 
14273
2000-03-06  Bryce McKinlay 
14274
 
14275
        * typeck.c (lookup_do): Search superinterfaces first
14276
        when looking up an interface method. From Godmar Back
14277
        
14278
 
14279
2000-03-06  Tom Tromey  
14280
 
14281
        * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
14282
 
14283
2000-03-02  Alexandre Petit-Bianco  
14284
 
14285
        * java-tree.h (lookup_argument_method2): Declared.
14286
        (safe_layout_class): Prototype moved from parse.h.
14287
        * parse.h (safe_layout_class): Prototype moved to java-tree.h.
14288
        * parse.y (java_check_regular_methods): Local `super_class' gone.
14289
        Call lookup_argument_method2 instead of lookup_argument_method.
14290
        Perform modifier match for methods found declared in implemented
14291
        interfaces. Fixed indentation problem. Overriding/hiding error
14292
        report to take place only for methods found in classes.
14293
        * typeck.c (lookup_argument_method): Changed leading
14294
        comment. Re-written by calling lookup_do.
14295
        (lookup_argument_method2): New function.
14296
        (lookup_java_method): Re-written by calling lookup_do.
14297
        (lookup_do): New function.
14298
 
14299
2000-03-02  Alexandre Petit-Bianco  
14300
 
14301
        * check-init.c (check_init): Removed dead code. Handle (blank)
14302
        final variables.
14303
        * parse.y (declare_local_variables): New local `final_p', set it
14304
        and use it to initialize LOCAL_FINAL.
14305
        (check_final_assignment): Only check FIELD_DECLs.
14306
 
14307
2000-02-17  Tom Tromey  
14308
 
14309
        * Makefile.in (JAVA_OBJS): Added boehm.o.
14310
        (boehm.o): New target.
14311
        * Make-lang.in (JAVA_SRCS): Added boehm.c.
14312
        * java-tree.h (flag_use_boehm_gc): Declare.
14313
        (get_boehm_type_descriptor): Declare.
14314
        * lang.c (lang_f_options): Added `use-boehm-gc'.
14315
        (flag_use_boehm_gc): New global.
14316
        * lang-options.h: Added -fuse-boehm-gc.
14317
        * boehm.c: New file.
14318
        * class.c (get_dispatch_table): If class uses a Boehm type
14319
        descriptor, put it in the vtable.
14320
        (make_class_data): Removed dead code.
14321
 
14322
2000-03-03  Per Bothner  
14323
 
14324
        * decl.c (init_decl_processing):  Initialize sizetype properly.
14325
 
14326
2000-03-01  Alexandre Petit-Bianco  
14327
 
14328
        * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
14329
        (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
14330
        * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
14331
        * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
14332
        (jcf_parse): New local `current'. Load innerclasses seen in outer
14333
        context being processed.
14334
        * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
14335
        * jcf-write.c (append_innerclasses_attribute): New function.
14336
        (append_innerclasses_attribute_entry): Likewise.
14337
        (get_access_flags): Handle static classes. Set anonymous and local
14338
        classes to be private.
14339
        (generate_classfile): Attribute count adjusted. Call
14340
        append_innerclasses_attribute.
14341
        * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
14342
        PURE_INNER_CLASS_TYPE_P.
14343
        * parse.y (parser_qualified_classname): New parameter `is_static',
14344
        produce non qualified name accordingly.
14345
        (block_statement:): Set LOCAL_CLASS_P when declaring local class.
14346
        (create_interface): Added argument to parser_qualified_classname.
14347
        (create_class): Added argument to parser_qualified_classname. Setup
14348
        alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
14349
        (add_inner_class_fields): Fixed indentation.
14350
        (method_declarator): Use PURE_INNER_CLASS_DECP_P.
14351
        (method_declarator): Fixed typo in comment.
14352
        (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
14353
        (build_current_thisn): Likewise.
14354
        (patch_method_invocation): Likewise.
14355
 
14356
2000-03-01  Martin von Löwis  
14357
 
14358
        * decl.c (current_function_decl): Move to toplev.c.
14359
 
14360
2000-02-28  Richard Kenner  
14361
 
14362
        * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
14363
        (DECL_BIT_INDEX): Use underlying representation.
14364
        * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
14365
 
14366
2000-02-27  Richard Kenner  
14367
 
14368
        * expr.c (build_java_ret): Pass proper type to size_binop.
14369
 
14370
2000-02-25  Anthony Green  
14371
 
14372
        * expr.c (build_class_init): Mark the decl to be ignored by
14373
        check_init.
14374
        * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
14375
        * check-init.c: Move DECL_BIT_INDEX to java-tree.h
14376
        * class.c (init_test_hash_newfunc): New function.
14377
        (decl_hash): New function.
14378
        (decl_compare): New function.
14379
        * decl.c (emit_init_test_initialization): New function.
14380
        (complete_start_java_method): Traverse the init test hashtable,
14381
        calling emit_init_test_initialization.
14382
        (always_initialize_class_p): Define.
14383
        * expr.c (build_class_init): Use initialization tests when
14384
        emitting class initialization code.
14385
        (always_initialize_class_p): Declare.
14386
        * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
14387
        1.
14388
        * java-tree.h: Include hash.h.
14389
        (DECL_FUNCTION_INIT_TEST_TABLE): Define.
14390
        (struct lang_decl): Add init_test_table field.
14391
        (init_test_hash_entry): Define.
14392
 
14393
2000-02-25  Alexandre Petit-Bianco  
14394
 
14395
        * gjavah.c (main): Avoid using `argi' to report unimplemented
14396
        options.
14397
 
14398
2000-02-25  Alexandre Petit-Bianco  
14399
 
14400
        * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
14401
        initialize locals to avoid warnings. Local `exception_type' moved
14402
        into if statement.
14403
 
14404
2000-02-25  Alexandre Petit-Bianco  
14405
 
14406
        * parse.y (resolve_expression_name): Use `orig' as a second
14407
        argument to resolve_field_access.
14408
        (resolve_field_access): Removed unnecessary code when dealing with
14409
        static fields.
14410
 
14411
2000-02-23  Alexandre Petit-Bianco  
14412
 
14413
        * class.c (push_super_field): Don't push the field twice.
14414
        * jcf-parse.c (parse_source_file): Call java_reorder_fields.
14415
        * parse.h (java_reorder_fields): Prototyped.
14416
        * parse.y (java_reorder_fields): New function.
14417
        (java_layout_class): Simplified not to worry about re-ordering.
14418
 
14419
2000-02-23  Tom Tromey  
14420
 
14421
        * gjavah.c (print_name): In JNI case, correctly quote string.
14422
        (print_method_info): Don't handle overrides in JNI mode.
14423
 
14424
2000-02-22  Alexandre Petit-Bianco  
14425
 
14426
        * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
14427
        value type set to `boolean_type_node'.
14428
 
14429
2000-01-18  Joerg Brunsmann  
14430
 
14431
        * jcf-dump.c (main): Test for correct condition after
14432
        output file creation.
14433
 
14434
2000-02-19  Anthony Green  
14435
 
14436
        * jcf-depend.c (add_entry): Fix test for first list entry.
14437
 
14438
2000-02-19  Richard Kenner  
14439
 
14440
        * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
14441
        * constants.c (build_constants_constructor): Likewise.
14442
 
14443
2000-02-19  Anthony Green  
14444
 
14445
        * jcf-depend.c (add_entry): Add entries to the end of the list.
14446
 
14447
1999-11-03  Pekka Nikander  
14448
 
14449
        * decl.c (INT_TYPE_SIZE): Define if necessary.
14450
        (expand_java_return): Handle the case of a native integer smaller
14451
        than a JVM integer.
14452
 
14453
2000-02-18  Martin von Löwis  
14454
 
14455
        * gjavah.c (help): Use GCCBUGURL.
14456
        * jv-scan.c (help): Likewise.
14457
        * jcf-dump.c (help): Likewise.
14458
 
14459
2000-02-17  Alexandre Petit-Bianco  
14460
 
14461
        * jcf-write.c (generate_bytecode_insns): Don't generate empty
14462
        `finally' clauses.
14463
 
14464
2000-02-17  Alexandre Petit-Bianco  
14465
 
14466
        * jcf-parse.c (load_class): Call `fatal' if no file containing
14467
        the target class are found.
14468
 
14469
2000-02-16  Zack Weinberg  
14470
 
14471
        * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
14472
        lex.c, lex.h, and PARSE_H to...
14473
        (parse.o, parse-scan.o): ...here, respectively.
14474
 
14475
        * lex.c: Split out code that may trigger SIGFPE from yylex()
14476
        to its own function.
14477
        * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
14478
 
14479
2000-02-16  Kaveh R. Ghazi  
14480
 
14481
        * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
14482
 
14483
2000-02-15  Alexandre Petit-Bianco  
14484
 
14485
        * parse.y (outer_field_access_p): Stop in time when outer contexts
14486
        are exhausted.
14487
        (resolve_qualified_expression_name): Properly qualify *everything*
14488
        after a package.type to be resoled as expression names.
14489
        (find_applicable_accessible_methods_list): Save/restore `class' to
14490
        isolate it from a possible outer context search.
14491
 
14492
2000-02-15  Tom Tromey  
14493
 
14494
        * gjavah.c (jni_print_char): New function.
14495
        (print_full_cxx_name): Use it.
14496
        (decode_signature_piece): Likewise.
14497
        (print_cxx_classname): Likewise.
14498
 
14499
2000-02-15  Kaveh R. Ghazi  
14500
 
14501
        * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
14502
        version.o.
14503
        (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
14504
 
14505
        * gjavah.c: Include version.h.
14506
 
14507
        * jcf-dump.c: Likewise.
14508
 
14509
        * jv-scan.c: Likewise.
14510
 
14511
2000-02-12  Alexandre Petit-Bianco  
14512
 
14513
        * parse.y (outer_field_access_fix): First parameter now a tree
14514
        node. Check for assignment to final. First argument to
14515
        build_outer_field_access_fix modified to accommodate prototype.
14516
        (build_outer_field_access): Don't check for assignment to final
14517
        here.
14518
        (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
14519
        possibly returned by outer_field_access_fix. Changed
14520
        outer_field_access_fix's first argument.
14521
        (check_final_assignment): $finit$'s context is OK.
14522
        (patch_unaryop): Use node instead of its line/column value when
14523
        calling outer_field_access_fix.
14524
 
14525
2000-02-11  Alexandre Petit-Bianco  
14526
 
14527
        * parse.y (interface_declaration:): No longer tagged
14528
        . Re-installed default action.
14529
        (class_member_declaration:): Handle inner interfaces.
14530
        (interface_member_declaration): Handle inner interfaces and
14531
        classes.
14532
        (create_interface): Push error if one seen. Suspend parsing
14533
        context when processing an inner interface.
14534
        (register_fields): Inner class static field limitations not to
14535
        apply to inner interfaces.
14536
 
14537
2000-02-10  Alexandre Petit-Bianco  
14538
 
14539
        * jcf-parse.c (load_class): Update `java_error_count' when a
14540
        class' file can't be found.
14541
        (parse.y): Avoid (byte)code generation when errors seen.
14542
 
14543
2000-02-10  Alexandre Petit-Bianco  
14544
 
14545
        * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
14546
        decodes a valid node.
14547
        (patch_binop): Handle TRUNC_DIV_EXPR.
14548
 
14549
2000-02-10  Alexandre Petit-Bianco  
14550
 
14551
        * parse.y (resolve_package): New local `acc'. Try to progressively
14552
        build and guess a package and type name.
14553
 
14554
2000-02-10  Alexandre Petit-Bianco  
14555
 
14556
        * parse.y (find_applicable_accessible_methods_list): Load and
14557
        layout the search class if necessary.
14558
        (java_complete_tree): Keep to original type of the folded initial
14559
        value.
14560
 
14561
2000-02-09  Alexandre Petit-Bianco  
14562
 
14563
        * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
14564
        Generate error message if circularity is detected. New static
14565
        local `list'.
14566
        * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro.  *
14567
        * jcf-write.c (generate_bytecode_insns): Very simply handle
14568
        SAVE_EXPR.
14569
        * parse.y (java_check_circular_reference): Use
14570
        `cyclic_inheritance_report' during report, if necessary.
14571
        (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
14572
        walking NEW_ARRAY_INIT twice.
14573
 
14574
2000-02-09  Tom Tromey  
14575
 
14576
        * parse.y (check_class_interface_creation): Allow inner classes to
14577
        be `private' or `protected', check modifiers' consistency. Prevent
14578
        block local classes from bearing any modifiers.
14579
 
14580
2000-02-10  Kaveh R. Ghazi  
14581
 
14582
        * except.c (check_start_handlers): Re-add prototype lost in last
14583
        patch.
14584
        (maybe_start_try): Remove excess argument to `check_start_handlers'.
14585
 
14586
2000-02-09  Andrew Haley  
14587
 
14588
        * decl.c (clear_binding_level): Remove excess initializer.
14589
        (maybe_poplevels): Remove unused variable.
14590
        (force_poplevels): Ditto.
14591
        (struct binding_level): Add comment.
14592
 
14593
2000-02-07  Alexandre Petit-Bianco  
14594
 
14595
        * jcf-write.c (generate_classfile): Don't consider
14596
        pre-initialization with reference value (use  instead.)
14597
        * parse.y (java_fix_constructors): No generated constructor for
14598
        interfaces.
14599
        (build_outer_field_access): Removed debug message.
14600
        (outer_field_expanded_access_p): Adapted to bytecode generation.
14601
        (build_outer_field_access_method): Use fix_method_argument_names.
14602
        (build_outer_method_access_method): Fixed indentation. Added
14603
        comment. Handle access method generation for static and also void
14604
        methods.
14605
        (build_access_to_thisn): Inserted debug message.
14606
        (maybe_build_thisn_access_method): Use fix_method_argument_names.
14607
        (resolve_qualified_expression_name): Fixed comment.
14608
        (not_accessible_p): Adapted to bytecode generation. Added comment.
14609
        (patch_method_invocation): Added comment.
14610
        (maybe_use_access_method): Fixed leading comment. Handle static
14611
        methods.
14612
        (java_complete_lhs): Don't shortcut handling of initialized upon
14613
        declaration String type static fields when generating bytecode.
14614
        (patch_unaryop): Handle outer field access when generating
14615
        bytecode.
14616
 
14617
2000-02-03  Alexandre Petit-Bianco  
14618
 
14619
        * java-tree.h (FIELD_THISN): New macro.
14620
        * jcf-write.c (append_synthetic_attribute): New function.
14621
        (generate_classfile): Set "Synthetic" attribute on this$,
14622
        val$ fields, access$ and $finit$ methods. Fixed indentation.
14623
        * parse.y (add_inner_class_fields): Set FIELD_THISN for created
14624
        this$ fields.
14625
        (build_outer_field_access): Turned on access functions usage and
14626
        generation when compiling to bytecode.
14627
        (maybe_use_access_method): Likewise.
14628
 
14629
2000-01-25  Andrew Haley  
14630
 
14631
        * java-except.h (struct eh_range): Add `expanded' field.
14632
        (maybe_start_try): Add end_pc arg.
14633
        (maybe_end_try): Ditto.
14634
        * java-tree.h (force_poplevels): new function.
14635
        * expr.c (expand_byte_code): Don't call maybe_start_try or
14636
        maybe_end_try.
14637
        * except.c (add_handler): Reset expanded.
14638
        (expand_start_java_handler): Set expanded.
14639
        (check_start_handlers): Don't expand a start handler that's
14640
        already been expanded.
14641
        (maybe_start_try): Add end_pc arg.  Only expand a handler which
14642
        ends after end_pc.
14643
        (expand_end_java_handler): call force_poplevels.
14644
        (force_poplevels): new function.
14645
        * decl.c (binding_level): Add start_pc of binding level.
14646
        (maybe_pushlevels): Call maybe_start_try when pushing binding
14647
        levels.
14648
        (maybe_poplevels): Call maybe_end_try when popping binding levels.
14649
        (LARGEST_PC): Define.
14650
        (clear_binding_level): Use LARGEST_PC.
14651
 
14652
        * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
14653
        * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
14654
        (binding_depth, is_class_level, current_pc): new variables.
14655
        (struct binding_level): ditto.
14656
        (indent): new function.
14657
        (push_jvm_slot): add debugging info.
14658
        (maybe_pushlevels): ditto.
14659
        (maybe_poplevels): ditto.
14660
        (pushlevel): ditto.
14661
        (poplevel): ditto.
14662
        (start_java_method): ditto.
14663
        (give_name_to_locals): comment only.
14664
        * except.c (binding_depth, is_class_level, current_pc):
14665
        new variables.
14666
        (expand_start_java_handler): add debugging info.
14667
        (expand_end_java_handler): ditto.
14668
 
14669
2000-02-05  Kaveh R. Ghazi  
14670
 
14671
        * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
14672
        (print_name_for_stub_or_jni, process_file): Constify a char*.
14673
 
14674
2000-02-03  Tom Tromey  
14675
 
14676
        * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
14677
 
14678
2000-01-31  Scott Bambrough  
14679
 
14680
        * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
14681
        assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
14682
        defined to be 1.
14683
 
14684
2000-02-02  Alexandre Petit-Bianco  
14685
 
14686
        * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
14687
        * java-tree.h (TYPE_II_STMT_LIST): New macro.
14688
        (struct lang_type): New field `ii_block'.
14689
        * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
14690
        CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
14691
        * parse.h (struct parser_ctxt): New field `instance_initializers'.
14692
        (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
14693
        CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
14694
        CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
14695
        macros.
14696
        * parse.y (add_instance_initializer): New function.
14697
        (in_instance_initializer): New static global.
14698
        (class_body_declaration:): Link instance initializer block.
14699
        (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
14700
        (array_creation_expression:): Remove unused local.
14701
        (java_parser_context_push_initialized_field): Fixed leading
14702
        comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
14703
        CPC_INSTANCE_INITIALIZER_LIST.
14704
        (java_parser_context_pop_initialized_field): Likewise.
14705
        (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
14706
        (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
14707
        CPC_INITIALIZER_STMT.
14708
        (fix_constructors): New local `class_type'. Use it. Call
14709
        add_instance_initializer.
14710
        (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
14711
        (patch_return): Forbid return in instance initializers.
14712
        (patch_throw_statement): Enforce exception handling in the context
14713
        of instance initializers.
14714
 
14715
2000-02-03  Tom Tromey  
14716
 
14717
        * Make-lang.in (java.mostlyclean): Remove executables in
14718
        `mostlyclean'.
14719
 
14720
2000-01-31  Scott Bambrough  
14721
 
14722
        * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
14723
        HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
14724
        (java_float_finite): Convert to use union Word from javaop.h.
14725
        (java_double_finite): Convert to use union DWord from javaop.h.
14726
 
14727
2000-02-02  Tom Tromey  
14728
 
14729
        * gjavah.c (options): Added `jni' entry.
14730
        (help): Document -jni.
14731
        (flag_jni): New global.
14732
        (process_file): Handle JNI output.  Don't print text from
14733
        -prepend, -add, etc, when generating stubs.  Only remove `.class'
14734
        suffix if it actually exists.
14735
        (main): Create a `.c' file when run with `--jni --stubs'.  Create
14736
        correct output file name with `--jni'.
14737
        (print_include): Mangle header name differently in JNI case.
14738
        (HANDLE_METHOD): In JNI mode, call print_method_info to generate
14739
        method list.
14740
        (print_method_info): Handle JNI case.  Put signature info into
14741
        method name.  Handle case when STREAM is NULL.
14742
        (print_name_for_stub_or_jni): New function.
14743
        (print_stub_or_jni): Renamed from `print_stub'.  Handle JNI.
14744
        (print_cxx_classname): Handle JNI.
14745
        (print_full_cxx_name): Likewise.
14746
        (decode_signature_piece): Likewise.
14747
        (overloaded_jni_method_exists_p): New function.
14748
        (struct method_name): Added `signature' and `sig_length' fields.
14749
        (HANDLE_END_FIELD): Do nothing in JNI mode.
14750
 
14751
2000-02-02  Tom Tromey  
14752
 
14753
        * jv-scan.c: Include version.c, .
14754
        (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
14755
        (options): New array.
14756
        (usage): New function.
14757
        (version): New function.
14758
        (main): Use getopt_long to parse command line.
14759
        * jcf-dump.c: Include version.c, .
14760
        (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
14761
        OPT_JAVAP): New macros.
14762
        (options): New array.
14763
        (usage): Return `void'.  Changed message.
14764
        (help): New function.
14765
        (version): New function.
14766
        (main): Use getopt_long_only to parse command line.
14767
        * gjavah.c: Include .
14768
        (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
14769
        OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
14770
        OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
14771
        (options): New array.
14772
        (java_no_argument): Removed.
14773
        (help): Updated with missing options.
14774
        (main): Use getopt_long_only to parse command line.
14775
        (usage): Changed message.
14776
 
14777
2000-02-01  Alexandre Petit-Bianco  
14778
 
14779
        * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
14780
        * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
14781
        ANONYMOUS_ARRAY_INITIALIZER): New access macros.
14782
        * parse.y (array_creation_expression:): Handle anonymous arrays.
14783
        (build_array_from_name): Don't set `ret_name' if null.
14784
        (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
14785
        (qualify_ambiguous_name): Likewise.
14786
        (java_complete_expand_class): Likewise.
14787
 
14788
2000-02-01  Alexandre Petit-Bianco  
14789
 
14790
        * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
14791
        * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
14792
        (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
14793
        (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
14794
        (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
14795
        AIPL_FUNCTION_COMPLETED_INVOCATION.
14796
        (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
14797
        AIPL_FUNCTION_INVOCATION_READY.
14798
        (AIPL_FUNCTION_DECLARATION): New enum entry.
14799
        * parse.y (reorder_static_initialized): New function.
14800
        (java_parser_context_pop_initialized_field): Use it.
14801
        (add_inner_class_fields): Use
14802
        MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
14803
        augmented. Install marker after last alias initializer, if any.
14804
        (generate_finit): Fixed typo. Don't try to retain only the used
14805
        fields.
14806
        (method_header): Compute and set DECL_FUNCTION_NAP.
14807
        (method_declarator): Fixed comment. Insert alias initializer in
14808
        parameter list.
14809
        (build_alias_initializer_parameter_list): Fixed leading
14810
        comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
14811
        replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
14812
        (java_complete_expand_class): Code to retain only used aliases
14813
        removed.
14814
        (java_complete_expand_methods): New local `first_decl'. Generate
14815
        $finit$ first, then expand the constructors, regular methods and
14816
        .
14817
        (java_complete_expand_method): Don't report error on missing
14818
        return statement if previously detected bogus.
14819
        (fix_constructors): Don't patch constructor parameters list.
14820
        (patch_method_invocation): Use new AIPL enum values. Reverse
14821
        alias initializer list for anonymous classes.
14822
 
14823
2000-01-30  Anthony Green  
14824
 
14825
        * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
14826
        determine how many stack slots to pop.
14827
 
14828
2000-01-29  Alexandre Petit-Bianco  
14829
 
14830
        * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
14831
        error handling/recovery.
14832
        * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
14833
 
14834
2000-01-28  Alexandre Petit-Bianco  
14835
 
14836
        * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
14837
        FIELD_LOCAL_ALIAS_USED): New macros.
14838
        (DECL_FUNCTION_NAP): New macro.
14839
        (struct lang_decl): New field `nap'.
14840
        (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
14841
        (struct lang_type): New fields `finit_stmt_list' and
14842
        `clinit_stmt_list'.
14843
        (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
14844
        * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
14845
        (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
14846
        UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
14847
        (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
14848
        AIPL_FUNCTION_INVOCATION_READY): New enum fields.
14849
        (BUILD_THROW): Macro line separator re-indented.
14850
        * parse.y (end_class_declaration): New function.
14851
        (maybe_generate_pre_expand_clinit): New name for
14852
        java_pre_expand_clinit. Create  off TYPE_CLINIT_STMT_LIST,
14853
        pre-expand static fields.
14854
        (maybe_generate_clinit): Function deleted.
14855
        (check_for_static_method_reference): Prototype's parameter list
14856
        indented.
14857
        (generate_finit): New name for maybe_generate_finit. Changed
14858
        leading comment. Function rewritten to use
14859
        TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
14860
        (build_alias_initializer_parameter_list): New function.
14861
        (java_parser_context_pop_initialized_field): Likewise.
14862
        (add_inner_class_fields): Likewise.
14863
        (type_declaration:): Call end_class_declaration.
14864
        (class_member_declaration:): Likewise.
14865
        (formal_parameter_list:): Fixed typos.
14866
        (formal_parameter:): Use ARG_FINAL_P to mark created tree list
14867
        element. Improved error handling.
14868
        (block_statement:): Call end_class_declaration.
14869
        (anonymous_class_creation:): Likewise.
14870
        (create_anonymous_class): Fixed comments.
14871
        (create_class): Call add_inner_class_fields.
14872
        (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
14873
        (method_header): Use MARK_FINAL_PARMS.
14874
        (finish_method_declaration): Use UNMARK_FINAL_PARMS.
14875
        (method_declarator): Propagate final argument flag.
14876
        (craft_constructor): New local `artificial'. Call
14877
        build_alias_initializer_parameter_list. Use
14878
        CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
14879
        (source_start_java_method): Mark parm decls with LOCAL_FINAL if
14880
        necessary.
14881
        (complete_expand_class): Get rid of unused outer context local
14882
        alias fields.
14883
        (java_complete_expand_methods): Fixed leading
14884
        comment. Generate/pre-expand  first. Changed method
14885
        expansion order to regular, $finit$, constructors, .
14886
        (java_complete_expand_method): Set current_function_decl.
14887
        (fix_constructors): Fix constructor parameter list to account for
14888
        outer context local alias initializers.
14889
        (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14890
        (resolve_expression_name): Lookup outer context local aliases. New
14891
        local `access', use it.
14892
        (patch_method_invocation): Patch inner class ctor invocation with
14893
        outer context local aliases initialization values. $finit$
14894
        invocation patching now includes things generated with
14895
        build_alias_initializer_parameter_list.
14896
        (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14897
        (build_super_invocation): Likewise.
14898
        (patch_assignment): Changed comment.
14899
 
14900
2000-01-27  Andrew Haley  
14901
 
14902
        * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
14903
        (emit_if): Ditto.
14904
        (emit_jsr): Ditto.
14905
 
14906
2000-01-25  Kaveh R. Ghazi  
14907
 
14908
        * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
14909
        concatenation.
14910
        (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
14911
 
14912
        * parse.y (register_fields): Don't pass a format specifier to
14913
        OBSOLETE_MODIFIER_WARNING.
14914
        (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
14915
        instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
14916
        specifier.
14917
        (check_modifiers): Change function into a macro.
14918
        (check_class_interface_creation): Pass a literal format string.
14919
 
14920
2000-01-21  Kaveh R. Ghazi  
14921
 
14922
        * buffer.h: PROTO -> PARAMS.
14923
        * check-init.c: Likewise.
14924
        * class.c: Likewise.
14925
        * constants.c: Likewise.
14926
        * convert.h: Likewise.
14927
        * decl.c: Likewise.
14928
        * except.c: Likewise.
14929
        * expr.c: Likewise.
14930
        * gjavah.c: Likewise.
14931
        * java-except.h: Likewise.
14932
        * java-tree.h: Likewise.
14933
        * jcf-depend.c: Likewise.
14934
        * jcf-dump.c: Likewise.
14935
        * jcf-parse.c: Likewise.
14936
        * jcf-path.c: Likewise.
14937
        * jcf-reader.c: Likewise.
14938
        * jcf-write.c: Likewise.
14939
        * jcf.h: Likewise.
14940
        * jv-scan.c: Likewise.
14941
        * jvgenmain.c: Likewise.
14942
        * jvspec.c: Likewise.
14943
        * lang.c: Likewise.
14944
        * lex.c: Likewise.
14945
        * lex.h: Likewise.
14946
        * parse-scan.y: Likewise.
14947
        * parse.h: Likewise.
14948
        * parse.y: Likewise.
14949
        * typeck.c: Likewise.
14950
        * verify.c: Likewise.
14951
        * xref.c: Likewise.
14952
        * xref.h: Likewise.
14953
        * zextract.c: Likewise.
14954
        * zipfile.h: Likewise.
14955
 
14956
2000-01-18  Alexandre Petit-Bianco  
14957
 
14958
        * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14959
        (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
14960
        * constants.c (build_constant_data_ref): Check for cached
14961
        current_constant_pool_data_ref. Cache current_constant_pool_data_ref
14962
        in TYPE_CPOOL_DATE_REF.
14963
        * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
14964
        MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
14965
        (struct lang_type): New fields `cpool' and `cpool_data_ref'.
14966
        (LOCAL_FINAL): New macro.
14967
        * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
14968
        constant pool -- don't try to reuse.
14969
        (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
14970
        TYPE_LANG_SPECIFIC.
14971
        (find_in_current_zip): Use TYPE_JCF.
14972
        * parse.h (java_check_final): Prototype removed.
14973
        * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
14974
        (maybe_create_class_interface_decl,
14975
        check_class_interface_creation): Likewise.
14976
        (java_expand_finals): Function removed.
14977
        (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
14978
        (block_statement:): Fixed comment.
14979
        (anonymous_class_creation:): Likewise.
14980
        (check_class_interface_creation): Reversed Jan 12, 2000 extra
14981
        argument patch.
14982
        (check_class_interface_creation): Loosened error report on (inner)
14983
        public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
14984
        (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
14985
        (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
14986
        argument patch.
14987
        (create_interface): Likewise.
14988
        (anonymous_class_counter): New static global.
14989
        (create_anonymous_class): Reversed Jan 12, 2000 extra argument
14990
        patch. Fixed comments.
14991
        (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
14992
        anonymous_class_counter when declaring a toplevel class.
14993
        (craft_constructor): Fixed constructor name when handling
14994
        anonymous classes. Anonymous class constructors to feature hidden
14995
        this$ parameter.
14996
        (java_fix_constructors): Added comment.
14997
        (java_check_final): Function removed.
14998
        (java_complete_expand_methods): Fixed comment. Don't generate
14999
        class data, save its outgoing constant pool instead.
15000
        (verify_constructor_super): Skip anonymous class constructor
15001
        hidden this$ parameter.
15002
        (java_expand_classes): New local `saved_ctxp'. Removed call to
15003
        java_expand_finals and java_check_final. Expand anonymous class
15004
        constructors. Generate class data.
15005
        (build_super_invocation): Skip anonymous class hidden this$
15006
        parameter.
15007
        * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
15008
        MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
15009
        (set_java_signature): Likewise.
15010
 
15011
2000-01-18  Joerg Brunsmann  
15012
 
15013
        * gjavah.c: Delete ACC_VISIBILITY define.
15014
        * jcf.h: Add ACC_VISIBILITY define.
15015
        * parse.y: final: rule tagged .
15016
        (java_check_regular_methods): Use ACC_VISIBILITY define for
15017
        default package access check.
15018
        (local_variable_declaration_statement): Use final: rule.
15019
 
15020
2000-01-17  Joerg Brunsmann  
15021
 
15022
        * parse.y (format_parameter:): Use final: rule instead of modifiers:.
15023
        (final:): New rule.
15024
 
15025
2000-01-17  Tom Tromey  
15026
 
15027
        * gjavah.c (print_field_info): Allow non-static final fields.
15028
 
15029
2000-01-14  Alexandre Petit-Bianco  
15030
 
15031
        * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
15032
        * parse.y (patch_anonymous_class): New function.
15033
        (create_anonymous_class): Register incomplete type when the
15034
        class/interface to extends/implement isn't known yet.
15035
        (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
15036
        (verify_constructor_super): Tuned error message.
15037
 
15038
2000-01-14  Alexandre Petit-Bianco  
15039
 
15040
        * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
15041
        (ANONYMOUS_CLASS_P): New macro.
15042
        (TYPE_SIGNATURE, TYPE_JCF): New macros.
15043
        (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
15044
        * parse.y (create_class): Added leading argument.
15045
        (maybe_create_class_interface_decl,
15046
        check_class_interface_creation): Likewise.
15047
        (craft_constructor): New function.
15048
        (verify_constructor_super): Added argument in prototype.
15049
        (class_declaration:): Inserted leading argument.
15050
        (for_begin:): Use FOR_LOOP_P.
15051
        (anonymous_class_creation): Create WFL of the anonymous class to
15052
        instantiate. Call build_new_invocation. Added comments.
15053
        (check_class_interface_creation): Handle parameter `anonymous' in
15054
        verbose mode class creation announce.
15055
        (link_nested_class_to_enclosing): Exclude anonymous classes.
15056
        (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
15057
        anonymous class, even though they appear to have an enclosing
15058
        context.
15059
        (create_interface): Pass extra argument to
15060
        check_class_interface_creation.
15061
        (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
15062
        (create_class): Call check_class_interface_creation and
15063
        maybe_create_class_interface_decl with extra new argument. Don't
15064
        add private this$ to anonymous classes.
15065
        (method_declarator): Insert hidden this$ to anonymous class
15066
        constructors.
15067
        (java_fix_constructors): Deleted code creating default
15068
        constructor. Call craft_constructor instead.
15069
        (java_check_regular_methods): Set `saw_constructor' to 1 for
15070
        anonymous classes.
15071
        (fix_constructors): Pass extra argument to verify_constructor_super.
15072
        (verify_constructor_super): New local `sdecl', use it. Search for
15073
        matching constructor (possibly featuring arguments) in super
15074
        class.
15075
        (lookup_method_invoke): Craft constructor according to arguments
15076
        list when dealing with anonymous class constructors.
15077
        (build_super_invocation): Pass arguments to anonymous class super
15078
        constructors.
15079
        (search_loop): Use FOR_LOOP_P.
15080
        (labeled_block_contains_loop_p): Likewise.
15081
 
15082
2000-01-12  Alexandre Petit-Bianco  
15083
 
15084
        * class.c (set_super_info): Set CLASS_STATIC when appropriate.
15085
        (enclosing_context_p): New function.
15086
        (get_access_flags_from_decl): Handle CLASS_STATIC.
15087
        (maybe_layout_super_class): Extra first argument passed to
15088
        do_resolve_class.
15089
        (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
15090
        ID_INIT_P.
15091
        * decl.c (access0_identifier_node): New global.
15092
        (init_decl_processing): access0_identifier_node initialized.
15093
        (pushdecl): Set DECL_CONTEXT only on non type decls.
15094
        * expr.c (lookup_field): Lookup inner class fields in enclosing
15095
        contexts.
15096
        (expand_invoke): Use ID_INIT_P.
15097
        (expand_java_field_op): Use DECL_CLINIT_P.
15098
        * java-tree.def (CLASS_LITERAL): New tree code.
15099
        * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
15100
        DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
15101
        (struct lang_decl): New field `inner_access'.
15102
        (enclosing_context_p): Prototyped.
15103
        (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
15104
        ID_CLINIT_P): New macros.
15105
        (CLASS_STATIC): New macro.
15106
        (CLASS_ACCESS0_GENERATED_P): New macro.
15107
        (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
15108
        TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
15109
        INNER_CLASS_P): New macros.
15110
        (DECL_INNER_CLASS_LIST): New macro.
15111
        * jcf-parse.c (yyparse): Avoid the use of ANSI string
15112
        concatenation.
15113
        * jcf-write.c (generate_bytecode_insns): binop: Change the type of
15114
        the shift value to int. Fixed typo in comment.
15115
        * lex.c (inst_id, wpv_id): Initialize.
15116
        * mangle.c (unicode_mangling_length): Take `$' into account.
15117
        * parse.h (DRECOVER, RECOVER): Terminate properly.
15118
        (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
15119
        (typedef struct _jdep): New field `enclosing'.
15120
        (JDEP_ENCLOSING): New macro.
15121
        (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
15122
        (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
15123
        (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
15124
        GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
15125
        GET_ENCLOSING_CPC_CONTEXT): New macros.
15126
        (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
15127
        (do_resolve_class): Added extra argument in prototype.
15128
        * parse.y (resolve_class): Added extra argument in prototype.
15129
        (maybe_create_class_interface_decl): Likewise.
15130
        (maybe_use_access_method, build_wfl_wrap): New functions.
15131
        (java_complete_expand_classes, java_complete_expand_class):
15132
        Likewise.
15133
        (java_parser_context_push_initialized_field,
15134
        java_parser_context_suspend, java_parser_context_resume):
15135
        Likewise.
15136
        (maybe_make_nested_class_name, make_nested_class_name,
15137
        set_nested_class_simple_name_value,
15138
        link_nested_class_to_enclosing, find_as_inner_class,
15139
        find_as_inner_class_do, check_inner_class_redefinition,
15140
        build_thisn_assign, build_current_thisn, build_access_to_thisn,
15141
        maybe_build_thisn_access_method, build_outer_field_access,
15142
        build_outer_field_access_methods, build_outer_field_access_expr,
15143
        build_outer_method_access_method, build_new_access_id,
15144
        build_outer_field_access_method, outer_field_access_p,
15145
        outer_field_expanded_access_p, outer_field_access_fix,
15146
        build_incomplete_class_ref, patch_incomplete_class_ref,
15147
        create_anonymous_class): Likewise.
15148
        (inst_id, wpv_id): New static global variables.
15149
        (synchronized:): New rule, tagged .
15150
        (type_declaration:): No longer tagged . Call POP_CPC in sub
15151
        rules.
15152
        (anonymous_class_creation:): New rule, tagged .
15153
        (NEW_TK): Tagged .
15154
        (type_literals, array_type_literal): New rules, tagged .
15155
        (class_declaration:): Removed action when reducing by class_body:
15156
        (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
15157
        using GET_CPC in sub-rules.
15158
        (class_member_declaration): Handle inner classes.
15159
        (method_declaration): When reducing method_header:, reset
15160
        current_function_decl when appropriate.
15161
        (method_declarator:): Set the number of formal parameter to 0 for
15162
        method declared without arguments.
15163
        (constructor_declarator:): Likewise.
15164
        (static_initializer:): List of elements kept in a list.
15165
        (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
15166
        use of the keyword `static' for type declarations.
15167
        (block_statement:): Handle inner class declarations.
15168
        (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
15169
        type qualified `this'.
15170
        (class_instance_creation_expression): Use anonymous_class_creation:
15171
        to handle inner class instances creation. Handle qualified `new'.
15172
        (something_dot_new): Added appropriate actions.
15173
        (create_new_parser_context): New function.
15174
        (java_push_parser_context, java_parser_context_save_global,
15175
        java_parser_context_suspend): Use create_new_parser_context.
15176
        (check_modifiers): Changed leading comment.
15177
        (check_class_interface_creation): Handle interclasses.
15178
        (add_superinterfaces): Fixed comment.
15179
        (create_interface): Build qualified name from the raw_name instead
15180
        of its matching WFL. Push the initialized fields list. raw_name added
15181
        as an extra argument to maybe_create_class_interface_decl.
15182
        (create_class): Build qualified name from the raw_name instead of
15183
        its matching WFL. Removed assignment to current_parsed_class_un.
15184
        Call PUSH_ERROR before returning an error. Suspend the current
15185
        parser context when processing an inner class. Push the
15186
        initialized fields list. raw_name added as an extra argument to
15187
        maybe_create_class_interface_decl. Add the private this$
15188
        field.
15189
        (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
15190
        (register_fields): Get the class type from GET_CPC and handle
15191
        previous errors.  Added code to handle the creation of static
15192
        fields in inner classes. Initialized fields initialization
15193
        statements kept in a list of lists.
15194
        (maybe_generate_finit): Initialized fields initialization
15195
        statements kept in a list of lists. Use GET_CPC.
15196
        (maybe_generate_clinit): Likewise.
15197
        (method_header): Use GET_CPC and GET_CPC_UN.
15198
        (parser_qualified_classname): Handle inner classes.
15199
        (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
15200
        (java_fix_constructors): Hide pointer to enclosing context
15201
        instance in constructor list when dealing with inner classes.
15202
        (jdep_resolve_class): Call resolve_class with extra first argument
15203
        JDEP_ENCLOSING.
15204
        (resolve_class): Add enclosing context as a first extra argument
15205
        to do_resolve_class.
15206
        (do_resolve_class): Call find_as_inner_class. Handle WFLs
15207
        properly.
15208
        (resolve_no_layout): Extra argument added to resolve_class
15209
        invocation.
15210
        (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
15211
        (java_get_real_method_name): Use GET_CPC_UN.
15212
        (check_abstract_method_definitions): Use DECL_CLINIT_P.
15213
        (java_check_abstract_methods): Handle static method declared in
15214
        inner classes by an error.
15215
        (java_check_regular_methods): Use DECL_CLINIT_P.
15216
        (source_start_java_method): Also set DECL_MAX_LOCALS.
15217
        (create_artificial_method): Call java_parser_context_save_global
15218
        and java_parser_context_restore_global instead of saving/restoring
15219
        the context by hand.
15220
        (expand_start_java_method): Improved verbose mode message.
15221
        (java_complete_expand_methods): Fixed leading comment. Use
15222
        DECL_CLINIT_P.
15223
        (fix_constructors): Added assignment to this$ if necessary.
15224
        (java_expand_classes): Call java_complete_expand_classes instead
15225
        of java_complete_expand_methods.
15226
        (make_qualified_primary): Simplified.
15227
        (merge_qualified_name): Optimized for missing left or right parts.
15228
        (resolve_expression_name): Handle access to outer class fields from
15229
        interclasses.
15230
        (resolve_qualified_expression_name): New macro
15231
        RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
15232
        classes. Report error on non appropriate qualification of
15233
        `new'. Handle qualified `this'.
15234
        (not_accessible_p): Allow access to outer class private fields from
15235
        inner classes.
15236
        (patch_method_invocation): Handle method invocations through
15237
        access methods and inner class constructor invocations.
15238
        (find_applicable_accessible_methods_list): Search enclosing
15239
        contexts of an inner class.
15240
        (search_applicable_methods_list): Fixed typo.
15241
        (argument_types_convertible): Handle inner class constructors'
15242
        hidden outer context reference argument.
15243
        (qualify_ambiguous_name): Handle qualified `this'.
15244
        (java_complete_lhs): Handle use of field accessed through
15245
        artificial access methods in various cases of assignments. Handle
15246
        CLASS_LITERAL node.
15247
        (check_final_assignment): Use DECL_CLINIT_P.
15248
        (valid_ref_assignconv_cast_p): Handle the destination being an
15249
        enclosing context of the source.
15250
        (patch_unaryop): Handle use of field accessed through artificial
15251
        access methods.
15252
        (patch_return): Use DECL_CLINIT_P.
15253
        (patch_throw_statement): Use DECL_CLINIT_P.
15254
        (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
15255
        * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
15256
        ID_INIT_P.
15257
 
15258
2000-01-16  Anthony Green  
15259
 
15260
        * parse.y (build_string_concatenation): Only use
15261
        StringBuffer(String) shortcut if String arg is constant.
15262
 
15263
2000-01-12  Alexandre Petit-Bianco  
15264
 
15265
        * jcf-write.c (generate_bytecode_insns): binop: Change the type of
15266
        the shift value to int. Fixed typo in comment.
15267
 
15268
2000-01-11  Mumit Khan  
15269
 
15270
        * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
15271
        * jcf-write.c: Likewise.
15272
        * parse.y: Likewise.
15273
        * parse.c: Regenerate.
15274
 
15275
2000-01-09  Anthony Green  
15276
 
15277
        * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
15278
        bytecodes in the correct order.
15279
 
15280
2000-01-09  Kaveh R. Ghazi  
15281
 
15282
        * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
15283
 
15284
2000-01-06  Anthony Green  
15285
 
15286
        * expr.c (java_lang_expand_expr): Switch to permanent obstack
15287
        before building constant array decl.
15288
 
15289
2000-01-06  Alexandre Petit-Bianco  
15290
 
15291
        * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
15292
        method invocation and typo in conditional expression.
15293
        (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
15294
        the appropriate NOTE_POP.
15295
        * parse.y (patch_binop): Shift value mask to feature the right
15296
        type.
15297
 
15298
1999-12-30  Kaveh R. Ghazi  
15299
 
15300
        * class.c (assume_compiled, assume_compiled_node): Add static
15301
        prototype.
15302
        (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
15303
 
15304
        * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
15305
 
15306
        * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
15307
 
15308
        * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
15309
        to `__modifier' to avoid stringifying it.
15310
 
15311
        * parse.y (verify_constructor_circularity): Don't call a variadic
15312
        function with a non-literal format string.
15313
        (java_check_abstract_methods): Move unreachable code inside
15314
        `continue' statement.
15315
        (lookup_method_invoke): Call xstrdup, not strdup.
15316
 
15317
        * expr.c (expand_java_field_op): Avoid the use of ANSI string
15318
        concatenation.
15319
 
15320
        * jcf-parse.c (yyparse): Likewise.
15321
 
15322
        * jv-scan.c (main): Likewise.
15323
 
15324
1999-12-30  Kaveh R. Ghazi  
15325
 
15326
        * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
15327
        ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
15328
        ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
15329
        concatenation.
15330
 
15331
        * parse.y (synchronized, variable_redefinition_error,
15332
        check_class_interface_creation, create_interface, create_class,
15333
        method_header, finish_method_declaration,
15334
        check_modifiers_consistency, method_declarator,
15335
        complete_class_report_errors, check_abstract_method_definitions,
15336
        java_check_regular_methods, check_throws_clauses,
15337
        java_check_abstract_methods, read_import_dir,
15338
        check_pkg_class_access, declare_local_variables, fix_constructors,
15339
        cut_identifier_in_qualified, resolve_expression_name,
15340
        resolve_qualified_expression_name, patch_method_invocation,
15341
        java_complete_lhs, patch_assignment, try_builtin_assignconv,
15342
        patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
15343
        patch_exit_expr, patch_exit_expr, patch_switch_statement,
15344
        patch_try_statement, patch_synchronized_statement,
15345
        patch_throw_statement, check_thrown_exceptions,
15346
        patch_conditional_expr): Likewise.
15347
 
15348
1999-12-24  Alexandre Petit-Bianco  
15349
 
15350
        * Makefile.in (LIBDEPS): Added gcc's errors.o
15351
        (../jcf-dump$(exeext):): Link with gcc's errors.o
15352
        (../gcjh$(exeext):): Likewise.
15353
        * expr.c (expand_java_NEW): Layout the entire target type instead of
15354
        laying out its methods only.
15355
        (lookup_field): Layout the class after having loaded it.
15356
        * java-tree.h (java_debug_context): Declared.
15357
        * jcf-io.c (toplev.h): Included.
15358
        (find_class): Removed assignment to jcf's outofsynch
15359
        field. Force source file to be read if newer than its matching
15360
        class file. Tweaked debug messages.
15361
        * jcf-parse.c (jcf_out_of_synch): Deleted.
15362
        (read_class): Call to jcf_out_of_synch removed.
15363
        * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
15364
        (jcf_out_of_synch): Prototype deleted.
15365
        * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
15366
        `deprecated' and `class_err': integer turned into bit-fields.
15367
        New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
15368
        * parse.y (package_list): New global.
15369
        (package_declaration:): Record newly parsed package name.
15370
        (extra_ctxp_pushed_p): Static global deleted.
15371
        (java_parser_context_save_global): Create buffer context for the
15372
        purpose of saving globals, if necessary.
15373
        (java_parser_context_restore_global): Pop context pushed for the
15374
        purpose of saving globals, if necessary.
15375
        (java_debug_context_do): New prototype and function.
15376
        (java_debug_context): Likewise.
15377
        (do_resolve_class): Use already parsed package names to qualify
15378
        and lookup class candidate.
15379
        (java_pre_expand_clinit): Removed unnecessary local variable.
15380
 
15381
1999-12-17  Tom Tromey  
15382
 
15383
        * gjavah.c (decode_signature_piece): Print "::" in JArray<>.  This
15384
        fixes PR gcj/119.
15385
        (process_file): Use `\n\' at end of each line in string.
15386
 
15387
1999-12-16  Alexandre Petit-Bianco  
15388
 
15389
        * expr.c (expand_invoke): Layout the loaded class before
15390
        attempting to use it.
15391
        (expand_java_field_op): Allow final field assignments to take
15392
        place in $finit$.
15393
        * typeck.c (convert): Return error_mark_node if expr is null.
15394
 
15395
1999-12-14  Alexandre Petit-Bianco  
15396
 
15397
        * class.c (class_depth): Return -1 if the class doesn't load
15398
        properly.
15399
        * expr.c (can_widen_reference_to): Check for errors during depth
15400
        computation and return 0 accordingly.
15401
        * jcf-parse.c (parse_source_file): Call java_fix_constructors to
15402
        create default constructors and add an other error check.
15403
        * parse.h (java_fix_constructors): Prototyped.
15404
        * parse.y (java_pre_expand_clinit): Likewise.
15405
        (build_super_invocation): Re-prototyped to feature one argument.
15406
        (java_check_circular_reference): Directly use `current'.
15407
        (java_fix_constructors): New function.
15408
        (java_check_regular_methods): Don't create default constructors
15409
        here, but abort if none were found.
15410
        (java_complete_expand_methods): Pre-process  calling
15411
        java_pre_expand_clinit.
15412
        (java_pre_expand_clinit): New function.
15413
        (fix_constructors): build_super_invocation invoked with the
15414
        current method declaration as an argument.
15415
        (build_super_invocation): Use the context of the processed method
15416
        decl argument instead of current_class.
15417
        * typeck.c (lookup_java_method): Take WFLs in method names into
15418
        account.
15419
 
15420
1999-12-14  Per Bothner  
15421
 
15422
        * class.c (make_class_data): flag_keep_inline_functions to keep
15423
        private methods in the method array.
15424
 
15425
1999-12-15  Anthony Green  
15426
 
15427
        * check-init.c (check_init): Take into account both types of
15428
        `throw's when checking for uninitialized variables.
15429
 
15430
1999-12-10  Alexandre Petit-Bianco  
15431
 
15432
        * parse.y (java_complete_lhs): Force conversion of array
15433
        dimensions to int_type_node, that's what runtime's ABI expects.
15434
 
15435
1999-12-10  Alexandre Petit-Bianco  
15436
 
15437
        * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
15438
        operand of a WFL, until the Java front-end gets fixed with regard
15439
        to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
15440
 
15441
1999-12-10  Andrew Haley  
15442
 
15443
        * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
15444
        decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
15445
        expr.c (build_java_athrow): Add support for sjlj-exceptions.
15446
        java-tree.h: Ditto.
15447
        jcf-write.c: Ditto.
15448
 
15449
1999-12-08  Alexandre Petit-Bianco  
15450
 
15451
        * expr.c (java_lang_expand_expr): Switch to permanent obstack
15452
        before calling expand_eh_region_start and expand_start_all_catch.
15453
        * except.c (expand_start_java_handler): Switch to permanent
15454
        obstack before calling expand_eh_region_start.
15455
        (expand_end_java_handler): Switch to permanent obstack before
15456
        calling expand_start_all_catch.
15457
 
15458
1999-12-5  Anthony Green  
15459
 
15460
        * decl.c (init_decl_processing): Mark throw_node as a noreturn
15461
        function with side effects.
15462
        (init_decl_processing): Mark all memory allocating DECLs with
15463
        DECL_IS_MALLOC.
15464
 
15465
1999-12-01  Alexandre Petit-Bianco  
15466
 
15467
        * except.c (expand_end_java_handler): Call
15468
        expand_resume_after_catch and end_catch_handler.
15469
 
15470
1999-11-30  Anthony Green  
15471
 
15472
        * verify.c (verify_jvm_instructions): Create new return label
15473
        chain if non existent (don't rely on the verified state of the jsr
15474
        target.)
15475
 
15476
1999-11-30  Alexandre Petit-Bianco  
15477
 
15478
        * jcf-write.c (generate_bytecode_insns): Fixed indentation for
15479
        COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
15480
 
15481
        * parse.y (patch_assignment): Removed bogus final class test on
15482
        lhs when checking on whether to emit an ArrayStoreException runtime
15483
        check.
15484
        * expr.c (expand_java_arraystore): Likewise.
15485
 
15486
1999-11-28 Anthony Green 
15487
 
15488
        * decl.c (find_local_variable): Reuse single slot decls when
15489
          appropriate.
15490
 
15491
1999-11-24  Alexandre Petit-Bianco  
15492
 
15493
        * jcf-parse.c (saw_java_source): Global variable removed.
15494
        (read_class): Don't use `saw_java_source'. Added extra braces.
15495
        (yyparse): Code setting `saw_java_source' removed.
15496
 
15497
1999-11-24  Mark Mitchell  
15498
 
15499
        * except.c (emit_handlers): Zero catch_clauses after emitting them.
15500
 
15501
1999-11-23  Alexandre Petit-Bianco  
15502
 
15503
        * verify.c (merge_type_state): Non verified subroutines being
15504
        considered more than once to trigger passive type merge.
15505
 
15506
1999-11-23  Alexandre Petit-Bianco  
15507
 
15508
        * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
15509
        in case of error. Error message tuned.
15510
 
15511
1999-11-21  Anthony Green  
15512
 
15513
        * constants.c (find_methodref_index): Unwrap method names before
15514
        inserting them in the constant pool.
15515
 
15516
        * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
15517
 
15518
        * class.c (assume_compiled_node): New typedef.
15519
        (assume_compiled_tree): New static data.
15520
        (find_assume_compiled_node): New function.
15521
        (add_assume_compiled): New function.
15522
        (assume_compiled): New function.
15523
        * class.c (make_class_data): Use assume_compiled.
15524
        (is_compiled_class): Use assume_compiled.
15525
 
15526
        * java-tree.h (add_assume_compiled): Declare.
15527
 
15528
        * lang.c (lang_decode_option): Parse new options.
15529
 
15530
1999-11-17  Alexandre Petit-Bianco  
15531
 
15532
        * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
15533
        int_type_node: that's what `_Jv_AllocObject' expects.
15534
 
15535
1999-11-11  Alexandre Petit-Bianco  
15536
 
15537
        * parse.y (lookup_method_invoke): Use lang_printable_name to
15538
        reliably build the type name during error report. Fixes PR gcj/97.
15539
 
15540
1999-11-09  Tom Tromey  
15541
 
15542
        * jcf-path.c: Include .
15543
        (jcf_path_init): Search for libjava.zip.  Fixes PR gcj/84.
15544
        (DIR_UP): New macro.
15545
 
15546
1999-11-09  Alexandre Petit-Bianco  
15547
 
15548
        * parse.y (source_end_java_method): Resume permanent allocation,
15549
        reversing Apr 27 1998 patch.
15550
        (patch_string_cst): Pop obstacks after having pushed the permanent
15551
        ones.
15552
 
15553
1999-11-05  Tom Tromey  
15554
 
15555
        * class.c (finish_class): Emit inlined methods if any native
15556
        methods exist in the class.  Fixes PR gcj/85.
15557
 
15558
1999-11-04  Alexandre Petit-Bianco  
15559
 
15560
        * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
15561
        (qualify_ambiguous_name): Likewise.
15562
 
15563
1999-11-03  Godmar Back 
15564
 
15565
        * typeck.c: (lookup_java_method):  search all inherited
15566
        interfaces when looking up interface method.
15567
 
15568
1999-11-01  Alexandre Petit-Bianco  
15569
 
15570
        * parse.y (method_header:): Issue error message for rule `type
15571
        error'.
15572
        (synchronized:): Error report when not using synchronized.
15573
 
15574
1999-11-01  Alexandre Petit-Bianco  
15575
 
15576
        * parse.y (resolve_qualified_expression_name): Prevent `this' from
15577
        being used before the superclass constructor has been called.
15578
        (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
15579
        instead of `CALL_THIS_CONSTRUCTOR_P'.
15580
 
15581
1999-10-30  Todd T. Fries 
15582
 
15583
        * check-init.c: Fix typo in comment.
15584
 
15585
1999-10-29  Alexandre Petit-Bianco  
15586
 
15587
        * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
15588
        and final method.
15589
 
15590
1999-10-29  Alexandre Petit-Bianco  
15591
 
15592
        * parse.y (expression_statement:): Call function to report
15593
        improper invocation of a constructor.
15594
        (parse_ctor_invocation_error): New function.
15595
 
15596
1999-10-26  Mark Mitchell  
15597
 
15598
        * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
15599
        remember_end_note.
15600
 
15601
1999-10-21  Tom Tromey  
15602
 
15603
        * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
15604
        in generated `main'.
15605
 
15606
1999-10-21  Alexandre Petit-Bianco  
15607
 
15608
        * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
15609
        (qualify_ambiguous_name): Likewise.
15610
 
15611
1999-10-20  Alexandre Petit-Bianco  
15612
 
15613
        * parse.y (java_complete_tree): fold_constant_for_init to work on
15614
        permanent_obstack.
15615
        (java_complete_lhs): Likewise.
15616
        (array_constructor_check_entry): Complete an initializer element
15617
        on permanent_obstack.
15618
 
15619
1999-10-19  Tom Tromey  
15620
 
15621
        * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
15622
        From Mike Moreton .
15623
 
15624
1999-10-15  Greg McGary  
15625
 
15626
        * java-tree.h (flag_bounds_check): Remove extern decl.
15627
        * lang.c (flag_bounds_check): Remove global variable.
15628
        (lang_f_options): Remove "bounds-check" entry.
15629
        (lang_init_options): Default flag_bounds_check to "on".
15630
 
15631
1999-10-14  Tom Tromey  
15632
 
15633
        * jvgenmain.c (usage): New function.
15634
        (main): Use it.  Also, handle `-D' options.
15635
        * jvspec.c (lang_specific_driver): Recognize -D.
15636
        (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
15637
 
15638
        * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
15639
 
15640
1999-10-14  Kaveh R. Ghazi  
15641
 
15642
        * jcf-dump.c (print_constant, disassemble_method): Don't call a
15643
        variadic function with a non-literal format string.
15644
 
15645
        * parse-scan.y (report_main_declaration): Likewise.
15646
 
15647
        * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
15648
 
15649
        * parse.y (read_import_dir, patch_assignment, patch_binop,
15650
        patch_array_ref): Likewise.
15651
 
15652
        * typeck.c (build_java_array_type): Likewise.
15653
 
15654
        * verify.c (verify_jvm_instructions): Likewise.
15655
 
15656
1999-10-12  Alexandre Petit-Bianco  
15657
 
15658
        * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
15659
 
15660
1999-10-07  Anthony Green  
15661
 
15662
        * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
15663
        where CHECK_PUT may fail for valid reasons.
15664
 
15665
        * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
15666
        UNSAFE_PUTN): New macros.
15667
 
15668
1999-10-04  Tom Tromey  
15669
 
15670
        * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
15671
        well.  Fixes Java PR gcj/59.
15672
        * parse-scan.y (yyerror): Report errors.
15673
 
15674
1999-09-24  Glenn Chambers  
15675
 
15676
        * decl.c (insert_block): Remove unconditional `abort'.
15677
 
15678
1999-09-24  Bernd Schmidt  
15679
 
15680
        * decl.c (builtin_function): No longer static.  New arg CLASS.  Arg
15681
        FUNCTION_CODE now of type int.  All callers changed.
15682
        Set the builtin's DECL_BUILT_IN_CLASS.
15683
 
15684
1999-09-23  Tom Tromey  
15685
 
15686
        * jvspec.c (lang_specific_driver): Don't read spec file if
15687
        -fsyntax-only given.
15688
 
15689
1999-09-22  Tom Tromey  
15690
 
15691
        * lang-specs.h: Added `%(jc1)' to the jc1 spec.
15692
 
15693
        * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
15694
        (WORDS_TO_LONG): Likewise.
15695
        (WORDS_TO_DOUBLE): Likewise.
15696
 
15697
1999-09-14  Alexandre Petit-Bianco  
15698
 
15699
        * jcf-write.c (RELOCATION_VALUE_0): New macro.
15700
        (RELOCATION_VALUE_1): Likewise.
15701
        (emit_iinc, emit_reloc, push_constant1, push_constant2,
15702
        push_in_const, push_long_const): Prototyped.
15703
        (push_constant1): Argument `index' is of type HOST_WIDE_INT.
15704
        (push_constant2): Likewise.
15705
        (push_int_const): Cast find_constant1's integer arguments to `jword'.
15706
        (find_constant_wide): Cast find_constant2's integer arguments to
15707
        `jword'.
15708
        (find_constant_index): Cast find_constant2's and find_constant2's
15709
        integer arguments to `jword'.
15710
        (emit_pop): Argument `value' is of type HOST_WIDE_INT.
15711
        (emit_switch_reloc): Use RELOCATION_VALUE_0.
15712
        (emit_if): Use RELOCATION_VALUE_1.
15713
        (emit_goto): Likewise.
15714
        (emit_jsr): Likewise.
15715
        (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
15716
        argument to push_long_const to HOST_WIDE_INT.
15717
 
15718
1999-09-15  Andreas Schwab  
15719
 
15720
        * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
15721
 
15722
1999-09-20  Nick Clifton  
15723
 
15724
        * lang.c (lang_decode_option): Extend comment.
15725
 
15726
1999-09-16  Alexandre Petit-Bianco  
15727
 
15728
        * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
15729
        instead of fndecl.
15730
 
15731
1999-09-16  Kaveh R. Ghazi  
15732
 
15733
        * gjavah.c (get_field_name, print_method_info, print_include,
15734
        add_namelet): Use xmalloc, not malloc.
15735
 
15736
        * jcf-depend.c (add_entry): Likewise.  Use xstrdup, not strdup.
15737
        (munge): Use xrealloc, not realloc, trust xrealloc to handle a
15738
        NULL pointer.
15739
 
15740
        * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
15741
 
15742
        * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
15743
 
15744
        * jcf-path.c (add_entry): Likewise.
15745
 
15746
        * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
15747
 
15748
        * jv-scan.c (xmalloc): Remove definition.
15749
 
15750
        * jvgenmain.c (xmalloc): Likewise.
15751
 
15752
        * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
15753
 
15754
        * lex.c (java_store_unicode): Use xrealloc, not realloc.
15755
 
15756
        * parse-scan.y: Use concat, not of xmalloc/assign/strcpy.  Use
15757
        concat, not xmalloc/sprintf.
15758
        (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
15759
        (xstrdup): Remove definition.
15760
 
15761
        * parse.y (duplicate_declaration_error_p,
15762
        constructor_circularity_msg, verify_constructor_circularity,
15763
        check_abstract_method_definitions, java_check_regular_methods,
15764
        java_check_abstract_methods, patch_method_invocation,
15765
        check_for_static_method_reference, patch_assignment, patch_binop,
15766
        patch_cast, array_constructor_check_entry, patch_return,
15767
        patch_conditional_expr): Use xstrdup, not strdup.
15768
 
15769
        * zextract.c (ALLOC): Use xmalloc, not malloc.
15770
 
15771
1999-09-12  Kaveh R. Ghazi  
15772
 
15773
        * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
15774
 
15775
        * jvspec.c: Include gcc.h.  Don't include gansidecl.h.
15776
        (do_spec, lang_specific_pre_link, lang_specific_driver,
15777
        input_filename, input_filename_length): Don't declare.
15778
        (main_class_name, jvgenmain_spec, lang_specific_driver):
15779
        Constify a char*.
15780
        (lang_specific_driver): All calls to the function pointer
15781
        parameter now explicitly call `fatal'.
15782
 
15783
1999-09-11  Alexandre Petit-Bianco  
15784
 
15785
        * parse.y (find_applicable_accessible_methods_list): Search
15786
        abstract classes as interfaces.
15787
 
15788
1999-09-09  Alexandre Petit-Bianco  
15789
 
15790
        * class.c (finish_class): We're now outside a valid method
15791
        declaration. Tell the rest of gcc so.
15792
 
15793
1999-09-08  Bruce Korb  autogen@linuxbox.com
15794
 
15795
        * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
15796
 
15797
1999-09-07  Tom Tromey  
15798
 
15799
        * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
15800
        java-array.h.
15801
        (decode_signature_piece): Don't emit "::" in JArray<>.
15802
        (print_namelet): Only print trailing `;' when printing a class.
15803
 
15804
1999-09-10  Bernd Schmidt  
15805
 
15806
        * java-tree.h: Delete declarations for all tree nodes now moved to
15807
        global_trees.
15808
        * decl.c: Delete their definitions.
15809
 
15810
1999-09-04  Mark Mitchell  
15811
 
15812
        * Make-lang.in (jc1): Depend on ggc-callbacks.o.
15813
        * Makefile.in (OBJS): Add ggc-callbacks.o.
15814
        (OBJDEPS): Likewise.
15815
 
15816
1999-09-03  Tom Tromey  
15817
 
15818
        * parse.y (strip_out_static_field_access_decl): Return operand if
15819
        it satisfies JDECL_P.
15820
 
15821
1999-09-02  Tom Tromey  
15822
 
15823
        * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
15824
        Handle nested arrays, like `[[I'.
15825
 
15826
1999-09-02  Kaveh R. Ghazi  
15827
 
15828
        * class.c (finish_class): Remove unused parameter, all callers
15829
        changed.
15830
 
15831
        * expr.c (build_java_athrow): Change return type to void.
15832
        (java_lang_expand_expr): Make sure each case in switch returns a
15833
        value.
15834
 
15835
        * java-tree.h (finish_class): Fix prototype to take void args.
15836
 
15837
        * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
15838
        (main): Issue return from main, not exit.
15839
 
15840
        * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
15841
 
15842
        * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
15843
 
15844
        * jv-scan.c (main): Issue return from main, not exit.
15845
 
15846
        * parse.y (check_abstract_method_definitions,
15847
        java_check_abstract_method_definitions): Add static prototypes.
15848
        (java_complete_expand_methods): Fix call to `finish_class'.
15849
 
15850
        * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
15851
        and `prevpc'.
15852
 
15853
1999-08-30  Kaveh R. Ghazi  
15854
 
15855
        * lang.c (language_string): Constify.
15856
 
15857
1999-08-30  Kaveh R. Ghazi  
15858
 
15859
        * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
15860
        Remove hacks for stuff which comes from libiberty.
15861
 
15862
        * Make-lang.in: Likewise.
15863
 
15864
1999-08-30  Hans-Peter Nilsson  
15865
 
15866
        * Makefile.in (xref.o): Depend on xref.c explicitly.
15867
 
15868
1999-08-29  Kaveh R. Ghazi  
15869
 
15870
        * java-tree.h (lang_printable_name): Constify a char*.
15871
 
15872
        * lang.c (lang_printable_name): Likewise.
15873
 
15874
1999-08-27  Jeffrey A Law  (law@cygnus.com)
15875
 
15876
        * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
15877
        comments in C code.
15878
 
15879
1999-08-26  Tom Tromey  
15880
 
15881
        * gjavah.c (print_cxx_classname): Print "::" before qualified
15882
        name.
15883
 
15884
1999-08-26  Alexandre Petit-Bianco  
15885
 
15886
        * parse.y (lookup_cl): Changed leading comment. Now does its best
15887
        to set the column number.
15888
        (qualify_ambiguous_name): Take WFL wrappers into account.
15889
 
15890
1999-08-25  Gregg Townsend  
15891
 
15892
        * verify.c (verify_jvm_instructions): Don't check instruction
15893
        validity beyond end of method.
15894
 
15895
1999-08-25  Tom Tromey  
15896
 
15897
        * jvspec.c (lang_specific_driver): Correctly handle --help again.
15898
 
15899
1999-08-25  Kaveh R. Ghazi  
15900
 
15901
        * gjavah.c (print_name, print_base_classname, utf8_cmp,
15902
        cxx_keyword_subst, generate_access, name_is_method_p,
15903
        get_field_name, print_field_name, super_class_name, print_include,
15904
        decode_signature_piece, print_class_decls, usage, help,
15905
        java_no_argument, version, add_namelet, print_namelet): Add static
15906
        prototype.
15907
        (print_base_classname, utf8_cmp, cxx_keyword_subst,
15908
        name_is_method_p): Constify a char*.
15909
        (get_field_name): Likewise.  Prefer xstrdup over malloc/strcpy.
15910
        Provide a final else clause in an if-else-if.
15911
        (print_field_info): Add missing final arg in function call to
15912
        `print_field_name'.
15913
        (print_method_info, decompile_method, decode_signature_piece,
15914
        print_c_decl, print_full_cxx_name, print_stub,
15915
        print_mangled_classname, super_class_name, print_include,
15916
        add_namelet, add_class_decl, print_class_decls, process_file,
15917
        help): Constify a char*.
15918
 
15919
        * jcf-write.c (jcf_handler, push_constant1, push_constant2,
15920
        push_int_const, find_constant_wide, find_constant_index,
15921
        push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
15922
        emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
15923
        emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
15924
        emit_if, emit_goto, emit_jsr, call_cleanups,
15925
        make_class_file_name): Add static prototypes.
15926
        (generate_bytecode_return, generate_bytecode_insns): Pass a
15927
        NULL_PTR, not a NULL_TREE.
15928
 
15929
        * jv-scan.c: Include "jcf.h".
15930
        (main): Declare using DEFUN macro.
15931
 
15932
        * jvspec.c (find_spec_file, lang_specific_pre_link,
15933
        lang_specific_driver): Add prototypes.
15934
        (find_spec_file): Constify a char*.
15935
 
15936
        * keyword.gperf (hash, java_keyword): Add prototypes.
15937
 
15938
        * lang.c (lang_print_error): Add static prototype.
15939
        (lang_init): Prefer memcpy over bcopy to avoid casts.
15940
 
15941
        * lex.c (yylex): Add static prototype.
15942
 
15943
        * parse-scan.y: Include "lex.c" earlier.
15944
 
15945
        * parse.h: Remove redundant declaration for `yylex'.
15946
 
15947
        * parse.y (java_decl_equiv, binop_compound_p, search_loop,
15948
        labeled_block_contains_loop_p): Add static prototypes.
15949
        (not_accessible_p): Make static to match prototype.
15950
 
15951
        * verify.c (start_pc_cmp): Don't needlessly cast away const.
15952
 
15953
1999-08-22  Alexandre Petit-Bianco  
15954
 
15955
        * parse.y (check_method_redefinition): Changed leading comment.
15956
        (check_abstract_method_definitions): New function.
15957
        (java_check_abstract_method_definitions): New function.
15958
        (java_check_regular_methods): Call it.
15959
        (verify_constructor_super): Fixed indentation.
15960
        (lookup_method_invoke): Likewise.
15961
 
15962
1999-08-19  Alexandre Petit-Bianco  
15963
 
15964
        * parse.y (method_header): Return a null pointer if the current
15965
        class node is null.
15966
        (finish_method_declaration): Return if the current function decl
15967
        is null.
15968
        (source_start_java_method): Likewise.
15969
        (java_method_add_stmt): Likewise.
15970
 
15971
1999-08-18  Alexandre Petit-Bianco  
15972
 
15973
        * class.c (emit_register_class): Removed unnecessary call to
15974
        start_sequence.
15975
        * parse.y (labeled_block_contains_loop_p): Removed unused local
15976
        variable.
15977
 
15978
1999-08-17  Alexandre Petit-Bianco  
15979
 
15980
        * parse.y (java_refold): Added prototype.
15981
 
15982
1999-08-17  Alexandre Petit-Bianco  
15983
 
15984
        * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
15985
        (java_stabilize_reference): Removed unnecessary `else'.
15986
        (java_complete_lhs): Set flag to remember boolean. Call
15987
        java_refold. Added comments.
15988
        (java_decl_equiv): New function.
15989
        (binop_compound_p): Likewise.
15990
        (java_refold): Likewise.
15991
        (patch_unaryop): Striped static field access assigned to decl and
15992
        op. Changed promotion scheme for ++/-- operators.
15993
        (search_loop): New function.
15994
        (labeled_block_contains_loop_p): Likewise.
15995
        (patch_loop_statement): Call labeled_block_contains_loop_p. Added
15996
        comment.
15997
        (patch_bc_statement): Call search_loop. Fixed comment.
15998
 
15999
1999-08-14  Anthony Green  
16000
 
16001
        * expr.c (java_lang_expand_expr): Mark static array data as
16002
        referenced.
16003
 
16004
1999-08-10  Rainer Orth  
16005
 
16006
        * jvgenmain.c (main): NUL-terminate name_obstack.
16007
 
16008
1999-08-10  Kaveh R. Ghazi  
16009
 
16010
        * check-init.c (check_bool2_init, done_alternative): Add static
16011
        prototypes.
16012
 
16013
        * class.c (add_interface_do, maybe_layout_super_class): Likewise.
16014
        (add_method, build_utf8_ref, build_class_ref,
16015
        append_gpp_mangled_type, layout_class_method): Constify a char*.
16016
 
16017
        * decl.c (push_promoted_type, make_binding_level): Add static
16018
        prototypes.
16019
        (push_promoted_type, pushdecl): Constify a char*.
16020
 
16021
        * except.c (find_handler_in_range, link_handler,
16022
        check_start_handlers): Add static prototypes.
16023
 
16024
        * expr.c (process_jvm_instruction): Constify a char*.
16025
 
16026
        * gjavah.c (main): Constify a char*.
16027
 
16028
        * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
16029
        Constify a char*.
16030
 
16031
        * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
16032
        static prototypes.
16033
        (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
16034
        munge, print_ents): Constify a char*.
16035
 
16036
        * jcf-dump.c (disassemble_method): Constify a char*.
16037
        (print_constant_pool, print_exception_table): Add static prototypes.
16038
        (print_constant, print_exception_table, main, disassemble_method):
16039
        Constify a char*.
16040
 
16041
        * jcf-io.c (find_classfile, find_class): Likewise.
16042
 
16043
        * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
16044
        (set_source_filename, predefined_filename_p): Add static prototypes.
16045
        (set_source_filename, get_constant, get_class_constant,
16046
        find_in_current_zip): Constify a char*.
16047
 
16048
        * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
16049
        static prototypes.
16050
        (add_entry, add_path, jcf_path_classpath_arg,
16051
        jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
16052
 
16053
        * jcf-reader.c (get_attribute, jcf_parse_preamble,
16054
        jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
16055
        jcf_parse_one_method, jcf_parse_methods,
16056
        jcf_parse_final_attributes): Add static prototypes.
16057
        (get_attribute): Constify a char*.
16058
 
16059
        * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
16060
        jcf_dependency_add_target, jcf_path_classpath_arg,
16061
        jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
16062
 
16063
        * jv-scan.c (main): Constify a char*.
16064
        (gcc_obstack_init): Add prototype arguments.
16065
 
16066
        * jvgenmain.c (gcc_obstack_init): Likewise.
16067
        (main): Constify a char*.
16068
 
16069
        * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
16070
        static prototypes.
16071
        (put_decl_string, lang_print_error): Constify a char*.
16072
        (lang_init): Remove redundant extern prototype.
16073
 
16074
        * mangle.c (emit_unicode_mangled_name): Constify a char*.
16075
 
16076
        * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
16077
        Add static prototypes.
16078
        (get_type_from_signature): Constify a char*.
16079
 
16080
        * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
16081
        Add static prototypes.
16082
        (start_pc_cmp): Prefer PTR over GENERIC_PTR.
16083
        (verify_jvm_instructions): Constify a char*.
16084
 
16085
        * xref.c (xref_flag_value): Likewise.
16086
 
16087
        * xref.h (xref_flag_value): Likewise.
16088
 
16089
        * zextract.c (makeword, makelong): Add static prototypes.
16090
        (makeword, makelong): Constify a uch*.
16091
 
16092
1999-08-09  Kaveh R. Ghazi  
16093
 
16094
        * lang.c (java_dummy_print): Constify a char*.
16095
        (lang_print_error): Likewise.
16096
        (lang_init): Remove redundant prototype for `print_error_function'.
16097
        (lang_init_source): Likewise.
16098
        (lang_identify): Constify a char*.
16099
 
16100
1999-08-09  Tom Tromey  
16101
 
16102
        * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
16103
        (WORDS_TO_LONG): Likewise.
16104
        (WORDS_TO_DOUBLE): Likewise.
16105
 
16106
1999-08-04  Kaveh R. Ghazi  
16107
 
16108
        * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
16109
 
16110
        * expr.c (java_stack_pop, java_array_data_offset,
16111
        build_java_throw_out_of_bounds_exception, case_identity,
16112
        build_java_check_indexed_type): Add static prototypes.
16113
        (linenumber_table, expand_invoke, expand_java_field_op,
16114
        build_primtype_type_ref, expand_byte_code): Constify a char*.
16115
 
16116
        * java-tree.h (build_primtype_type_ref, linenumber_table):
16117
        Constify a char*.
16118
        (java_lang_expand_expr): Add prototype.
16119
 
16120
        * lang.c: Include rtl.h and expr.h.  Remove extern prototype for
16121
        `java_lang_expand_expr'.
16122
 
16123
        * lex.c (java_lex_error): Constify a char*.
16124
        (java_get_unicode, java_read_char, java_allocate_new_line,
16125
        java_unget_unicode, java_sneak_unicode): Prototype.
16126
 
16127
        * parse-scan.y (current_class, package_name, method_declarator,
16128
        report_class_declaration, yyerror): Constify a char*.
16129
 
16130
        * parse.h (java_report_errors): Prototype.
16131
        (yyerror): Constify a char*.
16132
 
16133
        * parse.y (classitf_redefinition_error, check_modifiers,
16134
        parse_jdk1_1_error, lookup_package_type,
16135
        lookup_package_type_and_set_next, get_printable_method_name,
16136
        purify_type_name): Constify a char*.
16137
        (build_super_invocation, maybe_generate_finit,
16138
        verify_constructor_super, parser_add_interface,
16139
        add_superinterfaces, jdep_resolve_class, note_possible_classname,
16140
        java_complete_expand_methods, java_expand_finals,
16141
        cut_identifier_in_qualified, java_stabilize_reference,
16142
        do_unary_numeric_promotion, operator_string, do_merge_string_cste,
16143
        merge_string_cste): Prototype.
16144
        (single_type_import_declaration, yyerror,
16145
        variable_redefinition_error, build_array_from_name,
16146
        build_unresolved_array_type, check_class_interface_creation,
16147
        resolve_class, complete_class_report_errors,
16148
        note_possible_classname, read_import_dir,
16149
        find_in_imports_on_demand, resolve_package, fix_constructors,
16150
        check_deprecation, lookup_method_invoke,
16151
        maybe_build_primttype_type_ref, array_constructor_check_entry):
16152
        Constify a char*.
16153
        (java_complete_expand_methods, java_expand_finals): Make static.
16154
        (convert_narrow): Remove static prototype.
16155
 
16156
1999-08-03  J"orn Rennecke 
16157
 
16158
        * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
16159
 
16160
1999-08-02  Richard Henderson  
16161
 
16162
        * decl.c: Include defaults.h instead of expr.h.
16163
        * parse.y: Likewise.
16164
 
16165
1999-08-02  Jakub Jelinek  
16166
 
16167
        * java/decl.c (start_java_method): Change all uses of
16168
        PROMOTE_PROTOTYPES, so that it tests it as a C expression.
16169
        Ensure expr.h is included.
16170
        * java/expr.c (pop_arguments): Ditto.
16171
        * java/parse.y (expand_start_java_method): Ditto.
16172
 
16173
1999-08-01  Kaveh R. Ghazi  
16174
 
16175
        * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
16176
 
16177
1999-07-31  Bernd Schmidt  
16178
 
16179
        * decl.c: Include "function.h".
16180
        * except.c: Likewise.
16181
        * parse.y: Likewise.
16182
        * Makefile.in: Update dependencies.
16183
 
16184
1999-07-30  Kaveh R. Ghazi  
16185
 
16186
        * expr.c (build_java_soft_divmod): Provide a default case in switch.
16187
        (java_lang_expand_expr): Mark parameters `target', `tmode' and
16188
        `modifier' with ATTRIBUTE_UNUSED.
16189
 
16190
        * gjavah.c (process_file): Add braces around ambiguous `else'.
16191
 
16192
        * jcf-dump.c (print_access_flags, localvar_free): Change return
16193
        type to void.
16194
 
16195
        * parse.y (java_complete_expand_method): Initialize variable
16196
        `exception_copy'.
16197
        (resolve_qualified_expression_name): Likewise for `field_decl'.
16198
        (patch_method_invocation): Likewise for `class_to_search'.
16199
        (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
16200
        (patch_assignment): Likewise for `lhs_type'.
16201
 
16202
        * verify.c (verify_jvm_instructions): Remove unused variable
16203
        `caller'.
16204
 
16205
1999-07-25  Richard Henderson  
16206
 
16207
        * decl.c (va_list_type_node): New.
16208
 
16209
1999-07-25  Anthony Green  
16210
 
16211
        * gjavah.c (print_stub): New function.
16212
        (METHOD_IS_NATIVE): New macro.
16213
        (print_mangled_classname): Make static.
16214
        (HANDLE_END_FIELD): Don't emit fields during stub generation.
16215
        (process_file): Perform stub generation.
16216
        (HANDLE_METHOD): Don't emit class decls during stub
16217
        generation.
16218
        (HANDLE_END_METHOD): Take into account stub generation.
16219
        (print_method_info): Handle stub generation.
16220
        (print_stub): New function.
16221
        (print_cxx_classname): Make signature consistant with others.
16222
        (help): Describe -stubs option.
16223
        (main): Create stub file.
16224
        (version): Use version.c.
16225
        (print_full_cxx_name): New function.
16226
        (print_c_decl): Use print_full_cxx_name.
16227
 
16228
1999-07-22  Alexandre Petit-Bianco  
16229
 
16230
        * check-init.c (check_init): Handle MAX_EXPR.
16231
 
16232
1999-07-15  Andrew Haley  
16233
 
16234
        * lang.c (flag_use_divide_subroutine): New variable.
16235
        * typeck.c: (convert_ieee_real_to_integer): Bounds check
16236
        fp-to-integer conversion.
16237
        (convert): Call convert_ieee_real_to_integer when flag_fast_math
16238
        is not set.
16239
 
16240
        * expr.c (build_java_soft_divmod): New function.
16241
        (build_java_binop): Call build_java_soft_divmod if
16242
        flag_use_divide_subroutine is set.
16243
        * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
16244
        soft_lrem_node: new builtin functions.
16245
        (init_decl_processing) Initialize the new builtins.
16246
        * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
16247
        soft_lrem_node: new builtin functions.
16248
        (build_java_soft_divmod): New function.
16249
        * parse.y: Call build_java_soft_divmod if
16250
        flag_use_divide_subroutine is set.
16251
        * parse.c: Rebuilt.
16252
 
16253
        * jvspec.c (lang_specific_driver): Always allow an extra arg (for
16254
        a --specs= arg) even if not linking.
16255
        * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
16256
        -fuse-divide-subroutine
16257
 
16258
1999-07-20  Alexandre Petit-Bianco  
16259
 
16260
        * parse.y (resolve_and_layout): Check methods only once.
16261
        (resolve_qualified_expression_name): Verify thrown exceptions
16262
        compatibility.
16263
        (check_thrown_exceptions): Reject exceptions thrown in
16264
        initializer. Error message tuned.
16265
 
16266
1999-07-14  Andrew Haley  
16267
 
16268
        * expr.c (expand_expr): Do not return the last statement in a
16269
        block as the block's value.
16270
 
16271
1999-07-03  Alexandre Petit-Bianco  
16272
 
16273
        * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
16274
        CALL_EXPR, to avoid order of evaluation changes.
16275
 
16276
1999-07-02  Alexandre Petit-Bianco  
16277
 
16278
        * parse.y (qualify_ambiguous_name): Do not use
16279
        IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
16280
 
16281
1999-07-01  Alexandre Petit-Bianco  
16282
 
16283
        * check-init.c (check_init): Handle MAX_EXPR.
16284
        * expr.c (force_evaluation_order): Force method call arguments to
16285
        be evaluated in left-to-right order.
16286
        * parse.y (qualify_ambiguous_name): Loop again to qualify
16287
        NEW_ARRAY_EXPR properly.
16288
 
16289
1999-06-30  Alexandre Petit-Bianco  
16290
 
16291
        * parse.y (patch_invoke): Resolve unresolved invoked method
16292
        returned type.
16293
        (qualify_ambiguous_name): STRING_CST to qualify expression for
16294
        type name resolution.
16295
 
16296
1999-06-24  Andrew Haley  
16297
 
16298
        * class.c (finish_class): Whenever a deferred method is
16299
        output, rescan the list of methods to see if a new candidate for
16300
        output can be found.
16301
 
16302
1999-06-28  Tom Tromey  
16303
 
16304
        * jvspec.c (lang_specific_driver): Recognize --help.
16305
 
16306
1999-06-25  Alexandre Petit-Bianco  
16307
 
16308
        * parse.y (resolve_package): Fixed bogus return statement.
16309
        (patch_method_invocation): Resolve method invocation beginning with
16310
        a package name qualifier.
16311
 
16312
1999-06-25  Kaveh R. Ghazi  
16313
 
16314
        * Make-lang.in (java.stage1): Depend on stage1-start.
16315
        (java.stage2): Likewise for stage2-start.
16316
        (java.stage3): Likewise for stage3-start.
16317
        (java.stage4): Likewise for stage4-start.
16318
 
16319
1999-06-24  Alexandre Petit-Bianco  
16320
 
16321
        * parse.y (java_complete_lhs): When doing cross referencing, don't
16322
        try to keep file location on a WFL expanded as a CALL_EXPR.
16323
 
16324
1999-06-23  Alexandre Petit-Bianco  
16325
 
16326
        * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
16327
        compiling to class file a void method with an empty method body.
16328
        As a side effect, the bytecode backend will generate the
16329
        appropriate `return' instruction.
16330
 
16331
1999-06-22  Alexandre Petit-Bianco  
16332
 
16333
        * parse.y (lookup_package_type_and_set_next): New function prototype.
16334
        (resolve_package): Search current and imported packages.
16335
        (lookup_package_type_and_set_next): New function.
16336
 
16337
1999-06-22  Andrew Haley  
16338
 
16339
        * verify.c (verify_jvm_instructions): Check for pending blocks
16340
        before invalid PC test and opcode switch, not after.
16341
 
16342
1999-06-21  Andrew Haley  
16343
 
16344
        * except.c (find_handler_in_range): The upper limit for exception
16345
        ranges is exclusive, not inclusive: (start <= pc < end).
16346
        (link_handler): find child pointer which points to outer by
16347
        searching sibling list: previous code incorrectly assumed that
16348
        outer->outer->first_child must point to outer.
16349
        * verify.c (verify_jvm_instructions): FIXME added to code for
16350
        `athrow'.
16351
        (verify_jvm_instructions): Do not assume that the last block
16352
        processed in a subroutine is a block which ends with a `ret'
16353
        instruction.  With some control flows it is possible that the last
16354
        block ends with an `athrow'.
16355
 
16356
1999-06-14  Alexandre Petit-Bianco  
16357
 
16358
        * parse.y (qualify_ambiguous_name): Reorganized the post
16359
        evaluation of non WFL leading expression nodes.
16360
 
16361
1999-06-11  Alexandre Petit-Bianco  
16362
 
16363
        * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
16364
        CONVERT_EXPR.
16365
 
16366
1999-06-10  Alexandre Petit-Bianco  
16367
 
16368
        * parse.y (qualify_ambiguous_name): Handle qualified expression
16369
        beginning with a STRING_CST.
16370
 
16371
1999-06-10  Alexandre Petit-Bianco  
16372
 
16373
        * parse.y (register_fields): Set DECL_INITIAL on both
16374
        pre-initialized static and public fields.
16375
        (resolve_field_access): Static field access expressions to always
16376
        use pointer types.
16377
        (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
16378
        qualification. CONVERT_EXPR to be resolved as an expression name.
16379
        (java_complete_lhs): Identify and access qualified final
16380
        initialized field in switch statement case expression.
16381
        (fold_constant_for_init): Pre-initialized field decl constant to
16382
        be folded.
16383
 
16384
1999-06-07  Alexandre Petit-Bianco  
16385
 
16386
        * parse.y (note_possible_classname): Mark returned node with
16387
        QUALIFIED_P only if the original class name contained a '/'.
16388
 
16389
1999-06-05  Anthony Green  
16390
 
16391
        * Make-lang.in (gcjh): More parallel build fixes.
16392
 
16393
1999-06-03  Mike Stump  
16394
 
16395
        * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
16396
 
16397
1999-06-02  Anthony Green  
16398
 
16399
        * except.c (link_handler): Chain exception handlers in order.
16400
 
16401
1999-06-02  Anthony Green  
16402
 
16403
        * expr.c (expand_byte_code): Fill unreachable bytecode regions
16404
        with nops and process as usual in order to always set correct EH
16405
        ranges.  Emit detailed warnings about unreachable bytecodes.
16406
 
16407
1999-06-02  Anthony Green  
16408
 
16409
        * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
16410
        constant.
16411
 
16412
1999-05-28  Alexandre Petit-Bianco  
16413
 
16414
        * parse.y (lookup_field_wrapper): Unified returned value to NULL
16415
          or the searched field decl.
16416
 
16417
1999-05-28  Alexandre Petit-Bianco  
16418
 
16419
        * parse.y (fold_constant_for_init): Convert numerical constant
16420
        values to the type of the assigned field.
16421
 
16422
1999-05-27  Alexandre Petit-Bianco  
16423
 
16424
        * expr.c (lookup_field): Relaxed the test on class loading error
16425
        detection.
16426
        * parse.y (fold_constant_for_init): Enabeled old code.
16427
 
16428
1999-05-26  Alexandre Petit-Bianco  
16429
 
16430
        * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
16431
        decide the validity of the cast of a java.lang.Cloneable reference
16432
        to an array.
16433
        (patch_conditional_expr): Fixed first argument passed to
16434
        binary_numeric_promotion.
16435
 
16436
1999-05-26  Alexandre Petit-Bianco  
16437
 
16438
        * parse.y (qualify_ambiguous_name): Take into account that a
16439
        CONVERT_EXPR might specify a type as a WFL.
16440
 
16441
1999-05-25  Alexandre Petit-Bianco  
16442
 
16443
        * parse.y (patch_assignment): Save the rhs before using it as an
16444
        argument to _Jv_CheckArrayStore.
16445
 
16446
1999-05-25  Alexandre Petit-Bianco  
16447
 
16448
        * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
16449
 
16450
1999-05-24  Alexandre Petit-Bianco  
16451
 
16452
        * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
16453
        floating point literal only when the exponent indicator has been
16454
        parsed.
16455
 
16456
1999-05-22  Alexandre Petit-Bianco  
16457
 
16458
        * parse.y (formal_parameter:): Construct argument tree list
16459
        element even if a yet unsupported final parameter was encountered.
16460
 
16461
1999-05-18  Alexandre Petit-Bianco  
16462
 
16463
        * parse.y (finish_method_declaration): Issue errors for native or
16464
        abstract methods declared with a method body, as well as for non
16465
        native or non abstract methods with no method body.
16466
 
16467
1999-05-19  Kaveh R. Ghazi  
16468
 
16469
        * class.c (build_utf8_ref): Initialize variable `field'.
16470
 
16471
        * decl.c (init_decl_processing): Initialize variable `field'.
16472
 
16473
        * expr.c (build_known_method_ref): Mark parameters `method_type',
16474
        `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
16475
        (process_jvm_instruction): Likewise for parameter `length'.
16476
 
16477
        * jvspec.c (lang_specific_driver): Mark variables `saw_math',
16478
        `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
16479
        ATTRIBUTE_UNUSED.
16480
 
16481
        * parse.y (maybe_generate_clinit): Remove unused variable
16482
        `has_non_primitive_fields'.
16483
        (find_in_imports_on_demand): Initialize variables `node_to_use'
16484
        and `cl'.
16485
        (patch_binop): Likewise for variable `prom_type'.
16486
        (patch_unaryop): Likewise for variable `prom_type'.
16487
 
16488
        * verify.c (verify_jvm_instructions): Likewise for variable `last'.
16489
 
16490
        * xref.c (xref_table): Add missing initializer.
16491
 
16492
1999-05-14  Tom Tromey  
16493
 
16494
        * java-except.h (struct eh_range): Removed unused `next' member.
16495
        * verify.c (verify_jvm_instructions): Call check_nested_ranges
16496
        after adding all exception handlers.  Sort exception ranges in
16497
        order of start PC.
16498
        (struct pc_index): New structure.
16499
        (start_pc_cmp): New function.
16500
        * except.c (add_handler): Return `void'.  Don't call link_handler;
16501
        instead construct an ordinary linked list and do range
16502
        coalescing.
16503
        (check_nested_ranges): New function.
16504
        (link_handler): Changed interface to allow merging of eh_ranges.
16505
        Split overlapping ranges.  Return `void'.
16506
 
16507
1999-05-17  Alexandre Petit-Bianco  
16508
 
16509
        * parse.y (constructor_block_end:): New rule, tagged .
16510
        (constructor_body:): Use `constructor_block_end' instead of
16511
        `block_end'.
16512
 
16513
1999-05-17  Alexandre Petit-Bianco  
16514
 
16515
        * parse.y (statement_nsi:): Pop `for' statement block.
16516
        (java_complete_lhs): Labeled blocks containing no statement are
16517
        marked as completing normally.
16518
 
16519
1999-05-14  Alexandre Petit-Bianco  
16520
 
16521
        * xref.c (xref_set_current_fp): New function, defined.
16522
        * xref.h (xref_set_current_fp): New function, prototyped.
16523
 
16524
1999-05-14  Alexandre Petit-Bianco  
16525
 
16526
        * check-init.c (check_init): Take into account that
16527
        LABELED_BLOCK_STMT can be empty.
16528
 
16529
1999-05-13  Alexandre Petit-Bianco  
16530
 
16531
        * parse.y (java_check_regular_methods): Warning check on not
16532
        overriding methods with default access in other packages does not
16533
        apply to `'.
16534
        (java_complete_lhs): If block body is an empty_stmt_node, replace
16535
        it by NULL_TREE. This prevents gcc from generating an irrelevant
16536
        warning.
16537
 
16538
1999-05-13  Alexandre Petit-Bianco  
16539
 
16540
        * check-init.c (check_init): Removed code accepting to see things
16541
        falling through default:, when doing xrefs.
16542
        * java-tree.h (do_not_fold): New global variable, declared.
16543
        * parse.y (do_not_fold): New global variable, defined.
16544
        (java_complete_expand_method): Set `do_not_fold' to the value of
16545
        `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
16546
        and reinstall them after them have been purged; do not check for
16547
        initializations; do not issue missing return errors.
16548
        (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
16549
        when doing xrefs.
16550
        (patch_binop): Skip the fold part when doing xrefs.
16551
        (build_string_concatenation): Skip the concatenation part when
16552
        doing xrefs.
16553
        (patch_synchronized_statement): Do not generate a try-finally when
16554
        doing xrefs.
16555
        (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
16556
        and keep the location where the throw was seen.
16557
        * typeck.c (convert): When `do_not_fold' is set, do not attempt
16558
        any treatment on the converted node an simply return a NOP_EXPR of
16559
        the targeted type.
16560
        * xref.c (xref_get_data): New function, defined.
16561
        * xref.h (xref_get_data): New function, declared.
16562
        (XREF_GET_DATA): Use xref_get_data.
16563
 
16564
1999-05-13  Kaveh R. Ghazi  
16565
 
16566
        * gjavah.c (print_include): Cast the result of `strlen' to int
16567
        when comparing against a signed value.
16568
        (add_namelet): Likewise.
16569
 
16570
1999-05-12  Kaveh R. Ghazi  
16571
 
16572
        * expr.c (expand_invoke): Mark parameter `nargs' with
16573
        ATTRIBUTE_UNUSED.
16574
        (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
16575
 
16576
        * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
16577
        ATTRIBUTE_UNUSED.
16578
 
16579
        * jcf-reader.c (get_attribute): Cast a value to long
16580
        when comparing against a signed expression.  Likewise.
16581
 
16582
        * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
16583
        HOST_BITS_PER_CHAR.
16584
 
16585
1999-05-11  Andrew Haley  
16586
 
16587
        * parse.y (source_end_java_method): If the current method contains
16588
        any exception handlers, force asynchronous_exceptions: this is
16589
        necessary because signal handlers in libjava may throw exceptions.
16590
        * decl.c (end_java_method): Ditto.
16591
 
16592
1999-05-11  Tom Tromey  
16593
 
16594
        * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
16595
        flags.
16596
        * jvspec.c (THREAD_NAME): Removed.
16597
        (GC_NAME): Likewise.
16598
        (MATHLIB): Likewise.
16599
        (WITHLIBC): Likewise.
16600
        (GCLIB): Likewise.
16601
        (THREADLIB): Likewise.
16602
        (MATH_LIBRARY): Likewise.
16603
        (lang_specific_driver): Don't add `-l' options to command line.
16604
        Instead, add a single --specs option.  Recognize `-L' options and
16605
        use them to search for spec file.
16606
        (find_spec_file): New function.
16607
        (SPEC_FILE): New define.
16608
 
16609
1999-05-11  Dave Brolley  
16610
 
16611
        * lang-options.h: -MD, -MMD, -M and -MM not needed here for
16612
        cpplib-enabled build.
16613
 
16614
1999-05-05  Per Bothner  
16615
 
16616
        * class.c (make_field_value):  DECL_INITIAL may be a string literal;
16617
        temporarily zero it while calling rest_of_decl_compilation.
16618
 
16619
        * java-tree.h (string_ptr_type_node):  Add declaration.
16620
        * decl.c:  Define and initialize string_ptr_type_node.
16621
        * parse.y (patch_string_cst):  Use string_ptr_type_node.
16622
 
16623
        * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P):  Removed.
16624
        * parse.y (for_statement):  Now unconditionally exit_block.
16625
        (finish_labeled_statement):  No longer exit_block if for-loop.
16626
        (patch_loop_statement):  Check harder if the loop is already labeled.
16627
 
16628
        * parse.y (patch_initialized_static_field):  Removed function.
16629
        (maybe_generate_clinit):  Removed special handling for interfaces.
16630
        (java_complete_expand_methods):  Do a preliminary java_complete_tree
16631
        on  to determine if it can be removed.
16632
        (java_complete_expand_method):  Remove special handling for .
16633
        (java_complete_lhs):  For BLOCK and EXPR_WITH_FILE_LOCATION
16634
        optimize if we get back empty_stmt_node.
16635
        For MODIFY_EXPR, re-do checking of static initializers.
16636
        (fold_constant_for_init):  Don't return immediate if VAR_DECL.
16637
        For VAR_DECL, pass correct context.
16638
 
16639
        * verify.c (verify_jvm_instructions):  Better error messages.
16640
 
16641
1999-05-03  Tom Tromey  
16642
 
16643
        * parse-scan.y (interface_declaration): Call
16644
        report_class_declaration for interfaces.
16645
 
16646
1999-04-30 20:54 -0400  Zack Weinberg  
16647
 
16648
        * Makefile.in: Remove -v from bison command lines.
16649
 
16650
1999-04-30  Alexandre Petit-Bianco  
16651
 
16652
        * check-init.c (check_init): Exclude a case of error when doing
16653
        xrefs.
16654
        * class.c (layout_class_method): Don't generate the error message
16655
        twice when compiling from source.
16656
        * lang-options.h: Added `-Wredundant-modifers' and
16657
        `-Wunusupported-jdk11' flags and help text.
16658
        * lang.c (lang_decode_option): Added support for
16659
        `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
16660
        flag_static_local_jdk11 and flag_redundant set accordingly.
16661
        * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
16662
        * parse.h (EXPR_WFL_ADD_COL): New macro.
16663
        (DECL_END_SOURCE_LINE): Likewise.
16664
        (DECL_INHERITED_SOURCE_LINE): Likewise.
16665
        * parse.y (static_ref_err): New function, prototyped.
16666
        (CCB_TK): Now tagged .
16667
        (class_body:): Remember the location of the closing '}' of a class
16668
        definition when doing xrefs.
16669
        (block:): Likewise.
16670
        (block_end:): Likewise.
16671
        (create_class): Remember the location of the inherited class
16672
        identifier when doing xrefs.
16673
        (register_fields): Added test on first operand of `init' before
16674
        testing it TREE_CODE.
16675
        (method_header): Store the location of the class identifier in the
16676
        class decl when doing xrefs.
16677
        (finish_method_declaration): Don't combine first/last method line
16678
        when doing xref.
16679
        (java_check_regular_methods): Warning check on not overriding
16680
        methods with default access on other packages move before check on
16681
        static methods. Initialization of `aflags' also moved up.
16682
        (resolve_expression_name): Call static_ref_err to report the error.
16683
        (static_ref_err): New function, implemented.
16684
        (resolve_field_access): Returned simplified static field access
16685
        when doing xrefs.
16686
        (resolve_qualified_expression_name): Check for illegal use of
16687
        static fields in a non static context. Call static_ref_err to
16688
        report error in various places.
16689
        (java_complete_tree): Do not fold initialized static fields when
16690
        doing xrefs.
16691
        (java_complete_lhs): Likewise.
16692
 
16693
1999-04-29  Anthony Green  
16694
 
16695
        * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
16696
        create internal labels.
16697
        (lookup_label): Ditto.
16698
 
16699
1999-04-24  Alexandre Petit-Bianco  
16700
 
16701
        * class.c (layout_class_method): Generate 's rtl for
16702
        interfaces.
16703
        * decl.c (complete_start_java_method): Don't call _Jv_InitClass
16704
        for interfaces' .
16705
        * expr.c (lookup_field): Search for fields in interfaces.
16706
        (expand_invoke): Fixed indentation.
16707
        (expand_java_field_op): Likewise. Use IS_CLINIT.
16708
        * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
16709
        (IS_CLINIT): New macro.
16710
        * parse.y (type_declaration:): Call maybe_generate_clinit after an
16711
        interface was parsed.
16712
        (maybe_generate_clinit): Don't generate if the current class is an
16713
        interface with only fields of primitive types.
16714
        (reset_method_name): Use IS_CLINIT.
16715
        (java_complete_expand_method): Expand  when it exists for
16716
        interfaces. Use IS_CLINIT.
16717
        (resolve_expression_name): Use DECL_CONTEXT instead of
16718
        current_class to build static field references.
16719
        (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
16720
        ARRAY_REF when doing xreferencing.
16721
        (check_final_assignment): Fixed typo in leading comment. Use
16722
        IS_CLINIT.
16723
        (patch_array_ref): Don't fully expand array references when
16724
        xreferencing.
16725
        (patch_return): Use IS_CLINIT.
16726
        (patch_throw_statement): Likewise.
16727
 
16728
1999-04-22  Tom Tromey  
16729
 
16730
        * Make-lang.in (JAVA_SRCS): Added check-init.c.
16731
 
16732
1999-04-21  Alexandre Petit-Bianco  
16733
 
16734
        * decl.c (predef_filenames, predef_filenames_size): New globals
16735
        (init_decl_processing): predef_filenames and predef_filenames_size
16736
        initialized.
16737
        * java-tree.h (predef_filenames, predef_filenames_size): Declared
16738
        extern.
16739
        * jcf-parse.c (predefined_filename_p): New function.
16740
        (yyparse): Check that files on the command line are specified only
16741
        once and issue a warning otherwise.
16742
        * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
16743
        * parse.y (source_end_java_method): Nullify NOP method bodies, to
16744
        avoid a gcc warning with -W -Wall turned on.
16745
        (java_expand_classes): Abort if errors were encountered.
16746
        (java_complete_lhs): If the cross reference flag is set, wrap
16747
        field DECL node around a WFL when resolving expression name.
16748
 
16749
1999-04-19  Alexandre Petit-Bianco  
16750
 
16751
        * lang.c (lang_decode_option): Fixed returned value when parsing
16752
        `-fxref=...' and `-Wall'.
16753
        * parse.y (source_end_java_method): Do not generate code when
16754
        flag_emit_xref is set.
16755
        (resolve_expression_name): Do not build static field access when
16756
        flag_emit_xref is set.
16757
        (resolve_field_access): No special treatment on `length' when
16758
        flag_emit_xref is set. Do not build qualified static field access
16759
        when flag_emit_xref is set.
16760
        (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
16761
        when flag_emit_xref is set.
16762
        (patch_assignment): Do not generate array store runtime check when
16763
        flag_emit_xref is set.
16764
        * xref.c (xref_flag_value): Fixed function declaration
16765
        indentation.
16766
        (xset_set_data): New function.
16767
        * xref.h (xref_set_data): Added prototype for new function.
16768
        (typedef struct xref_flag_table): New field data.
16769
        (XREF_GET_DATA): New macro.
16770
 
16771
1999-04-19  Tom Tromey  
16772
 
16773
        * xref.h (enum): Removed trailing comma.
16774
 
16775
        * parse.y (resolve_qualified_expression_name): Added missing
16776
        `break'.
16777
 
16778
1999-04-15  Anthony Green  
16779
 
16780
        * gjavah.c: New prototypes for java_float_finite and
16781
        java_double_finite.
16782
 
16783
1999-04-12  Alexandre Petit-Bianco  
16784
 
16785
        * parse.y (patch_unaryop): Fixed ++/-- operator check on array
16786
        references.
16787
 
16788
1999-04-06  Jeffrey A Law  (law@cygnus.com)
16789
 
16790
        * Makefile.in (TREE_H): Add tree-check.h.
16791
        (RTL_H): Add genrtl.h.
16792
 
16793
1999-04-06  Alexandre Petit-Bianco  
16794
 
16795
        * parse.y (patch_assignment): Added ArrayStoreException runtime
16796
        check.
16797
 
16798
1999-04-06  Per Bothner  
16799
 
16800
        * expr.c (pop_type_0):  New function.
16801
        (pop_type):  Use pop_type_0.
16802
        * java-tree.h (pop_type_0):  New declaration.
16803
        * verify.c (verify_jvm_instructions):  Check return instructions.
16804
 
16805
        * parse.y (patch_binop):  Don't fold if non-constant and emiting
16806
        class files.
16807
 
16808
1999-04-05  Kaveh R. Ghazi  
16809
 
16810
        * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
16811
 
16812
        * gjavah.c: Include math.h earlier.  Include tree.h/java-tree.h.
16813
        (main_jcf): Don't define.
16814
        (process_file): Don't set `main_jcf'.
16815
 
16816
        * java-tree.h (main_jcf): Don't declare.
16817
 
16818
        * jcf-parse.c (main_jcf): Add static definition.
16819
 
16820
        * lang.c (main_jcf): Don't define.
16821
 
16822
1999-04-05  Kaveh R. Ghazi  
16823
 
16824
        * class.c (add_method_1): Cast the argument of `bzero' to PTR.
16825
 
16826
        * decl.c (copy_lang_decl): Likewise for `bcopy'.
16827
 
16828
        * jcf-depend.c: Include "config.h", not .
16829
 
16830
        * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
16831
        `bcopy' to PTR.
16832
 
16833
        * jcf-path.c: Include "config.h", not .
16834
 
16835
        * lex.c: Don't include various system header files.
16836
        (java_init_lex): Cast the argument of `bzero' to PTR
16837
 
16838
        * parse-scan.y (java_push_parser_context): Likewise.
16839
 
16840
        * parse.y (java_push_parser_context): Likewise.
16841
        (patch_bc_statement): Match format specifier to variable argument.
16842
 
16843
        * xref.c: Don't include .
16844
 
16845
1999-04-05  Alexandre Petit-Bianco  
16846
 
16847
        * parse.y (struct parser_ctxt *ctxp): Now global.
16848
        (declare_local_variables): Use WFL compound value for the
16849
        declaration source line value, when doing cross-referencing.
16850
 
16851
1999-03-31  Tom Tromey  
16852
 
16853
        * gjavah.c (print_field_info): Allow constants of other types.
16854
        (print_include): Generate include when new name is proper prefix
16855
        of already printed name.
16856
        (add_namelet): Likewise.
16857
        (cxx_keyword_subst): New function.
16858
        (print_method_info): Use it.
16859
        (print_field_name): New function.
16860
        (get_field_name): New function.
16861
        (print_field_info): Use get_field_name and print_field_name.
16862
 
16863
1999-03-31  Kaveh R. Ghazi  
16864
 
16865
        * Makefile.in (keyword.h): Generate using gperf language 'C', not
16866
        'KR-C', so gperf uses the `const' keyword on strings.
16867
 
16868
        * keyword.gperf (java_keyword): Const-ify a char*.
16869
 
16870
1999-03-30  Alexandre Petit-Bianco  
16871
 
16872
        * parse.y (patch_bc_statement): Fixed identation and a bogus
16873
        `printf' format.
16874
 
16875
1999-03-30  Alexandre Petit-Bianco  
16876
 
16877
        * parse.y (patch_assignment): Allow static variables in other
16878
        classes to be assigned.
16879
 
16880
1999-03-28  Kaveh R. Ghazi  
16881
 
16882
        * class.c (maybe_add_interface): Remove unused variable
16883
        `interface_binfo'.
16884
        (make_class_data): Use = for assignment, not ==.  Likewise.
16885
        (emit_register_classes): Remove unused variable `decl'.
16886
 
16887
        * lex.c: Fix comment so as not to contain an embedded `/*'.
16888
 
16889
        * verify.c (verify_jvm_instructions): Remove unused variable
16890
        `self_type'.
16891
 
16892
1999-03-27  Per Bothner  
16893
 
16894
        * parse.y (complete_loop_body):  Rename to finish_loop_body.
16895
        (complete_labeled_statement):  Rename to finish_labeled_statement.
16896
        (complete_for_loop):  Rename to finish_for_loop.
16897
        (complete_method_declaration):  Rename to finish_method_declaration.
16898
 
16899
        * java-tree.h (continue_identifier_node):  New global node.
16900
        * decl.c:  Define and initialize continue_identifier_node.
16901
        * parse.y (generate_labeled_block):  Remove - no longer needed.
16902
        (build_loop_body):  Use continue_identifier_node for continue block.
16903
        (finish_labeled_statement):  Also do pop_labeled_block actions.
16904
        (java_complete_lhs):  POP_LOOP even if error.
16905
        (build_labeled_block):  Special handling for continue_identifier_node.
16906
        (patch_loop_statement):  Re-organize.
16907
        (patch_bc_statement):  Re-write.
16908
 
16909
1999-03-27  Alexandre Petit-Bianco  
16910
 
16911
        * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
16912
        using a WFL compound value.
16913
        * parse.y (xref.h): Include.
16914
        (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
16915
        WFL compound value.
16916
        (register_fields): Set WFL compound value to lineno if doing
16917
        xrefs.
16918
        (java_complete_expand_method): Call expand_xref if flag_emit_xref
16919
        is set.
16920
        * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
16921
        * xref.h (expand_xref): Prototype renamed from xref_generate.
16922
 
16923
1999-03-27  Alexandre Petit-Bianco  
16924
 
16925
        * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
16926
        (GET_CURRENT_BLOCK): New macro.
16927
        * parse.y (current_static_block): New global variable.
16928
        (method_body:): Define action.
16929
        (complete_method_declaration): Set current_function_decl to NULL
16930
        when work on the current method is done.
16931
        (declare_local_variables): Use GET_CURRENT_BLOCK.
16932
        (java_method_add_stmt): Likewise.
16933
        (java_complete_expand_method): Disable the use of `this' when
16934
        expanding .
16935
        (enter_a_block): If no current method exist, use
16936
        current_static_block to link static initializer blocks.
16937
        (exit_block): Rewritten to use current_static_block when no current
16938
        method decl exists.
16939
        (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
16940
        (patch_return): Forbid the use of `return' in static initializers.
16941
        (patch_throw_statement): Fixed indentation. Issue specific error
16942
        for uncaught thrown checked exception in static initializer
16943
        blocks. Removed FIXME.
16944
 
16945
1999-03-25  Zack Weinberg  
16946
 
16947
        * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
16948
        Link gcj from gcc.o.
16949
 
16950
1999-03-23  Alexandre Petit-Bianco  
16951
 
16952
        * parse.y (find_applicable_accessible_methods_list): When dealing
16953
        with interface: ensure that a given interface or java.lang.Object
16954
        are searched only once.
16955
 
16956
1999-03-23  Kaveh R. Ghazi  
16957
 
16958
        * gjavah.c (print_c_decl): Remove unused argument `flags'.
16959
 
16960
        * jcf-dump.c (print_access_flags): Add braces around if-else.
16961
 
16962
        * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
16963
        COMBINE_INPUTS.
16964
 
16965
        * lex.c (build_wfl_node): Add static prototype.
16966
 
16967
        * lex.h (build_wfl_node): Remove static prototype.
16968
 
16969
        * parse.y: Include lex.c early enough to declare everything needed.
16970
        Ensure calls to `build_wfl_node' pass the proper arguments.
16971
        (create_class): Remove unused variable `super_decl'.
16972
        (get_printable_method_name): Initialize variable `name'.
16973
 
16974
1999-03-22  Alexandre Petit-Bianco  
16975
 
16976
        * Changelog: Fixed 1999-03-22 typos.
16977
        * lang.c (lang_decode_option): Fixed typo in error string in the
16978
        XARG section.
16979
 
16980
1999-03-22  Alexandre Petit-Bianco  
16981
 
16982
        * Makefile.in (JAVA_OBJS): Added entry xref.o.
16983
        (xref.o): New rule.
16984
        * java-tree.h (flag_emit_xref): Declared extern.
16985
        * lang.c (xref.h): Included.
16986
        (flag_emit_xref): New global variable.
16987
        (lang_decode_option): Added support for -fxref.
16988
        * xref.c: Created.
16989
        * xref.h: Likewise.
16990
 
16991
1999-03-21  Manfred Hollstein  
16992
 
16993
        * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
16994
        linked with.
16995
 
16996
1999-03-21  Kaveh R. Ghazi  
16997
 
16998
        * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
16999
        $(srcdir)/../system.h and $(JAVA_TREE_H).
17000
        (jcf-io.o): Depend on $(JAVA_TREE_H).
17001
        (mangle.o): Likewise.
17002
 
17003
        * check-init.c (check_cond_init): Add static prototype.
17004
 
17005
        * class.c (build_java_method_type, hashUtf8String,
17006
        make_field_value, get_dispatch_vector, get_dispatch_table,
17007
        append_gpp_mangled_type, mangle_static_field): Likewise.
17008
        (strLengthUtf8): Hide unused definition.
17009
        (hashUtf8String): Const-ify.
17010
        (make_field_value): Un-ANSI-fy.
17011
 
17012
        * constants.c: Move inclusion of jcf.h above java-tree.h.
17013
        (set_constant_entry, find_class_or_string_constant,
17014
        find_name_and_type_constant, get_tag_node,
17015
        build_constant_data_ref): Add static prototype.
17016
 
17017
        * decl.c (push_jvm_slot, builtin_function,
17018
        lookup_name_current_level): Likewise.
17019
        (builtin_function): Const-ify.
17020
 
17021
        * except.c (expand_start_java_handler, expand_end_java_handler):
17022
        Add static prototype.
17023
 
17024
        * expr.c (flush_quick_stack, push_value, pop_value,
17025
        java_stack_swap, java_stack_dup, build_java_athrow,
17026
        build_java_jsr, build_java_ret, expand_java_multianewarray,
17027
        expand_java_arraystore, expand_java_arrayload,
17028
        expand_java_array_length, build_java_monitor, expand_java_pushc,
17029
        expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
17030
        expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
17031
        expand_compare, expand_test, expand_cond, expand_java_goto,
17032
        expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
17033
        expand_java_field_op, java_push_constant_from_pool): Likewise.
17034
 
17035
        (decode_newarray_type, expand_iinc): Un-ANSI-fy.
17036
        (build_java_arraynull_check): Mark parameters `node' and `type'
17037
        with ATTRIBUTE_UNUSED.
17038
        (note_label): Likewise for parameter `current_pc'.
17039
        (expand_java_call, expand_java_ret): Hide unused definition.
17040
 
17041
        * java-tree.h (make_class, build_constants_constructor,
17042
        java_set_exception_lang_code, pop_labeled_block, emit_handlers,
17043
        init_outgoing_cpool, register_class, emit_register_classes,
17044
        java_layout_seen_class_methods): Prototype.
17045
        (unicode_mangling_length): Const-ify.
17046
        (append_gpp_mangled_name, append_gpp_mangled_classtype,
17047
        emit_unicode_mangled_name, format_int, format_uint,
17048
        jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
17049
        jcf_print_utf8_replace, open_class): Prototype.
17050
 
17051
        * jcf-dump.c: Include "config.h", not .  Don't include
17052
        .  Include tree.h/java-tree.h.
17053
        (utf8_equal_string usage, process_class): Add static prototype.
17054
        (open_class): Don't prototype this here.
17055
        (utf8_equal_string): Match arguments to format specifiers.
17056
        (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
17057
        TABLE_SWITCH, disassemble_method): Likewise.
17058
 
17059
        * jcf-io.c: Include tree.h/java-tree.h.
17060
        (open_class, find_classfile, jcf_print_utf8,
17061
        jcf_print_utf8_replace): Const-ify.
17062
 
17063
        * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
17064
        parse_class_file): Add static prototype.
17065
        (find_in_current_zip): Match definition to existing static
17066
        prototype.
17067
 
17068
        * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
17069
        (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
17070
        finish_jcf_block, define_jcf_label, get_jcf_label_here,
17071
        put_linenumber, localvar_alloc, localvar_free, get_access_flags,
17072
        write_chunks, adjust_typed_op, generate_bytecode_conditional,
17073
        generate_bytecode_return, perform_relocations, init_jcf_state,
17074
        init_jcf_method, release_jcf_state, generate_classfile):
17075
        Add static prototype.
17076
        (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
17077
        (make_class_file_name): Const-ify.
17078
 
17079
        * jcf.h (find_classfile): Const-ify.
17080
 
17081
        * jv-scan.c (reset_report): Remove prototype.
17082
 
17083
        * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
17084
        (error): Rewrite to allow varargs.
17085
 
17086
        * lang.c (lang_f_options): Const-ify.
17087
 
17088
        * lex.c (java_parse_escape_sequence): Add static prototype.
17089
        (java_allocate_new_line): Match definition to existing static
17090
        prototype.
17091
 
17092
        * mangle.c Include tree.h/java-tree.h.
17093
        (unicode_mangling_length, emit_unicode_mangled_name,
17094
        append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
17095
 
17096
        * parse.h (jdep_code): Remove trailing comma in enumeration.
17097
        (java_get_line_col): Move prototype outside of !JC1_LITE test.
17098
        (reset_report): Add prototype.
17099
 
17100
        * verify.c (push_pending_label, merge_types): Add static
17101
        prototypes.
17102
 
17103
        * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
17104
 
17105
1999-03-19  Alexandre Petit-Bianco  
17106
 
17107
        * parse.y (find_applicable_accessible_methods_list): Extend the
17108
        search to superinterfaces when relevant.
17109
        (search_applicable_methods_list): New function.
17110
 
17111
1999-03-18  Alexandre Petit-Bianco  
17112
 
17113
        * class.c (unmangle_classname): Implemented stricter testing
17114
        before setting the QUALIFIED_P flag on an identifier.
17115
 
17116
1999-03-16  Per Bothner  
17117
 
17118
        * parse.y (java_complete_lhs):  Call force_evaluation_order
17119
        after patch_newarray.
17120
        (patch_binop):  Don't call fold if there are side effects.
17121
 
17122
1999-03-16  Alexandre Petit-Bianco  
17123
 
17124
        * parse.y (java_stabilize_reference): Use save_expr instead of
17125
        building a SAVE_EXPR node.
17126
        (java_complete_lhs): Patch the resulting string of the `+='
17127
        operator (if necessary) and complete the RHS after having built
17128
        the cast.
17129
 
17130
1999-03-15  Per Bothner  
17131
 
17132
        * class.c (make_class):  Don't set CLASS_P here (because
17133
        this function is also called by build_java_array_type).
17134
        (push_class):  Set CLASS_P here instead.
17135
        * parse.h (TYPE_CLASS_P):  Check for TYPE_ARRAY_P is redundant.
17136
 
17137
        * jcf-dump.c (print_access_flags):  Take extra parameter to indicate
17138
        context.  If the context is class, perfer "super" over "synchronized".
17139
        * jcf-write.c (generate_classfile):  Don't add ACC_SUPER if interface.
17140
 
17141
        * parse.y (create_class):  Don't call parser_check_super here;
17142
        it is not robust.  Always wait until later.
17143
 
17144
        * parse.y (method_header):  For interfaces, set ACC_ABSTRACT (to
17145
        match what JDK 1.2 does), but don't set ACC_PUBLIC.
17146
 
17147
1999-03-13  Per Bothner  
17148
 
17149
        * lex.c (java_read_char):  UNGET invalid non-initial utf8 character.
17150
        * lex.h (UNGETC):  Change misleading macro.
17151
 
17152
1999-03-12  Alexandre Petit-Bianco  
17153
 
17154
        * parse.y (java_stabilize_reference): Return NODE when patching a
17155
        COMPOUND_EXPR.
17156
        (java_complete_lhs): Put parenthesis around truth values.
17157
 
17158
1999-03-12  Alexandre Petit-Bianco  
17159
 
17160
        * class.c (layout_class_method): Don't make rtl for interface
17161
        methods.
17162
        * parse.h (GET_TYPE_NAME): New macro.
17163
        * parse.y (if_then_statement:): Fixed indentation.
17164
        (if_then_else_statement:): Likewise.
17165
        (for_statement:): Fixed spacing.
17166
        (try_statement:): Fixed indentation.
17167
        (create_interface): Don't force interfaces to be abstract.
17168
        (method_header): Abstract methods are OK in interfaces.
17169
        (declare_local_variables): Fixed typo in comment.
17170
        (java_complete_expand_method): Fixed indentation.
17171
        (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
17172
        non accessible fields.
17173
        (java_stabilize_reference): New function.
17174
        (java_complete_lhs): Fixed indentation. Use
17175
        java_stabilize_reference in compound assignment. Insert the
17176
        cast. If not processing `+' fix string constants before processing
17177
        binop.
17178
 
17179
1999-03-12  Kaveh R. Ghazi  
17180
 
17181
        * constants.c (find_class_or_string_constant): Cast variable `j'
17182
        to a `jword' when comparing against one.
17183
 
17184
        * expr.c (java_lang_expand_expr): Remove unused variables
17185
        `has_finally_p' and `op0'.
17186
 
17187
        * gjavah.c (print_field_info): Cast a value to jint when comparing
17188
        against one.  Likewise for a jlong.
17189
        (add_namelet): Likewise cast a `sizeof' to an int when comparing
17190
        against a signed quantity.
17191
 
17192
        * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
17193
        (print_signature): Don't needlessly dereference variable `str'
17194
 
17195
        * jcf-reader.c (get_attribute): Mark variables `max_stack' and
17196
        `max_locals' with ATTRIBUTE_UNUSED.
17197
        (jcf_parse_class): Likewise for variable `index'.
17198
 
17199
        * parse.h (reverse_jdep_list): Remove static prototype.
17200
 
17201
        * parse.y (build_jump_to_finally): Remove prototype and definition.
17202
        (reverse_jdep_list): Add static prototype.
17203
 
17204
        * typeck.c (convert_ieee_real_to_integer): Remove unused variables
17205
        `assignment' and `expr_decl'.
17206
 
17207
        * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
17208
 
17209
1999-03-12  Andrew Haley  
17210
 
17211
        * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
17212
        we'll need a directory separator and a null character.
17213
 
17214
1999-03-10  Per Bothner  
17215
 
17216
        * jcf-write.c (generate_bytecode_insns):  Handle __builtin_fmod, for %.
17217
 
17218
Tue Mar  9 11:52:08 1999  Alexandre Petit-Bianco  
17219
 
17220
        * parse.y (method_header): Don't set ACC_ABSTRACT flags on
17221
        interfaces.
17222
 
17223
1999-03-05  Per Bothner  
17224
 
17225
        * lex.c (java_parse_end_comment):  Take extra parameter (next char).
17226
 
17227
        * class.c (build_utf8_ref):  Fix possible name class/ambiguity.
17228
 
17229
        * class.c (layout_class_method):  A static method in a base class
17230
        is never overridden, so treat it like it doesn't exist.
17231
        However, do complain about private non-static method overriding
17232
        public static method.
17233
 
17234
        * parse.y:  Don't set unused INITIALIZED_P flag.
17235
        * java-tree.h (INITIALIZED_P):  Removed no-longer needed flag.
17236
 
17237
        * parse.y (find_expr_with_wfl):  Optimize tail-calls.
17238
        (build_array_from_name):  Re-order &index[string] to &string[index].
17239
 
17240
        * parse.y (java_complete_lhs):  Don't call patch_assignment if rhs is
17241
        error_mark (it might catch more errors, but it is more likely to lose).
17242
 
17243
1999-03-06  Kaveh R. Ghazi  
17244
 
17245
        * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
17246
        (parse-scan.o): Depend on toplev.h.
17247
 
17248
        * class.c (make_method_value): Add prototype.  Make it static.
17249
        Remove unused second argument, caller changed.
17250
 
17251
        * expr.c (java_lang_expand_expr): Remove unused variable
17252
        `return_label'.
17253
 
17254
        * java-tree.h: Don't prototype find_in_current_zip.
17255
        Add prototypes for verify_constant_pool, start_java_method,
17256
        end_java_method, give_name_to_locals, expand_byte_code,
17257
        open_in_zip, set_constant_value, find_constant1, find_constant2,
17258
        find_utf8_constant, find_string_constant, find_class_constant,
17259
        find_fieldref_index, find_methodref_index, write_constant_pool,
17260
        count_constant_pool_bytes and encode_newarray_type.
17261
 
17262
        * jcf-dump.c: Remove unused variable `LONG_temp'.
17263
 
17264
        * jcf-parse.c: Include parse.h.
17265
        (jcf_parse_source): Remove unused parameter, all callers changed.
17266
        (jcf_figure_file_type): Add static prototype.
17267
        (find_in_current_zip): Likewise.  Also remove unused parameter,
17268
        all callers changed.
17269
        (read_class): Initialize variable `saved_pos'.
17270
 
17271
        * jcf-reader.c (jcf_parse_preamble): Mark variables
17272
        `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
17273
 
17274
        * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
17275
        (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
17276
        (java_parse_doc_section): Initialize variable `seen_star'.
17277
        (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
17278
        (java_lex_error): Mark parameters `msg' and `forward' with
17279
        ATTRIBUTE_UNUSED.
17280
        (java_get_line_col): Mark parameters `filename' and `line' with
17281
        ATTRIBUTE_UNUSED.
17282
 
17283
        * parse-scan.y: Include toplev.h.
17284
        (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
17285
 
17286
        * parse.h: use `struct JCF', not plain `JCF'.
17287
        (java_parser_context_save_global, java_expand_classes
17288
        java_parser_context_restore_global, java_parse): Add prototypes.
17289
 
17290
        * typeck.c (convert_ieee_real_to_integer): Remove unused variable
17291
        `node'.
17292
 
17293
1999-02-24  Per Bothner  
17294
 
17295
        *  check-init.c (check_init):  COPYN takes word count, not bit count.
17296
 
17297
1999-02-26  Per Bothner  
17298
 
17299
        * typeck.c (convert_ieee_real_to_integer):  Use save_expr instead of
17300
        explicit build_decl.  (Avoids crash in reload when optimizing.)
17301
 
17302
1999-02-25  Per Bothner  
17303
 
17304
        * decl.c (complete_start_java_method):  Handle synchronized method
17305
        even when compiling from bytecode.
17306
 
17307
1999-02-26  Tom Tromey  
17308
 
17309
        * gjavah.c (add_class_decl): Only generate `#include' if outer
17310
        class is not the name of the class we are processing.  Correctly
17311
        append `.h' in #include.
17312
        (process_file): Clean up newlines around generated `#include's.
17313
        (decode_signature_piece): Correctly handle inner classes.
17314
        (struct include): New structure.
17315
        (all_includes): New global.
17316
        (print_include): New function.
17317
        (add_class_decl): Use it.
17318
        (process_file): Likewise.
17319
        (add_class_decl): Generate include for java-array.h if array
17320
        seen.
17321
        (process_file): Don't generate java-array.h include.
17322
 
17323
        * gjavah.c (add_namelet): Check for standard package names here.
17324
        (add_class_decl): Don't check for standard package names here.
17325
 
17326
1999-02-25  Tom Tromey  
17327
 
17328
        * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
17329
        When reading a zip file, only use strncmp if both strings are
17330
        bigger than the buffer length.  Initialize `k' when looping
17331
        through zip file.
17332
 
17333
1999-02-24  Tom Tromey  
17334
 
17335
        * gjavah.c (struct namelet): New structure.
17336
        (add_namelet): New function.
17337
        (print_namelet): New function.
17338
        (print_class_decls): Use add_namelet and print_namelet to generate
17339
        namespaces and not classes.
17340
        (method_printed): New global.
17341
        (HANDLE_END_METHOD): Examine method_printed.
17342
        (print_method_info): Set method_printed when required.  Print
17343
        error if function to be ignored is marked virtual.  Handle $finit$
17344
        method.
17345
        (METHOD_IS_FINAL): New macro.
17346
        (print_field_info): Use it.
17347
        (HANDLE_METHOD): Clear method_printed.
17348
        (method_pass): New global.
17349
        (HANDLE_END_FIELD): Call add_class_decl on the first pass.
17350
        (process_file): Do two passes over both fields and methods.
17351
        (HANDLE_METHOD): Examine method_pass.
17352
        (root): New global.
17353
        (add_class_decl): New function.
17354
        (print_class_decls): Don't scan over entire constant pool.
17355
 
17356
1999-02-23  Tom Tromey  
17357
 
17358
        * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
17359
        disable linking in that case.
17360
 
17361
1999-02-20  Tom Tromey  
17362
 
17363
        * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
17364
        not 0x1f.
17365
 
17366
1999-02-21  Per Bothner  
17367
 
17368
        * decl.c (build_result_decl), java-tree.h:  New method.
17369
        (complete_start_java_method):  Handle synchronized methods.
17370
        Don't build DECL_RESULT here.  (Ordering dependency problem.)
17371
        (start_java_method):  Call build_result_decl here instead  ...
17372
        * parse.y (java_complete_expand_method):  ... and here.
17373
        (expand_start_java_method): Don't call complete_start_java_method here.
17374
        (java_complete_expand_method):  Call it here instead.
17375
        * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT):  Moved to ..
17376
        * java-tree.h:  ... here.
17377
 
17378
        * expr.c (force_evaluation_order):  Fix typo, don't handle ARRAY_REF.
17379
        * parse.y (java_complete_lhs):  Don't call force_evaluation_order
17380
        for ARRAY_REF - it doesn't work when array bounds are checked.
17381
        (patch_array_ref):  Handle it here instead.
17382
 
17383
        * jcf-write.c (generate_classfile):  Emit "Exceptions" attribute.
17384
 
17385
1999-02-19  Per Bothner  
17386
 
17387
        Force left-to-right evaluation of binary operations etc.
17388
        * expr.c (force_evaluation_order), java-tree.h:  New function.
17389
        * parse.y (java_complete_lhs):  Pass binary operations, procedure
17390
        calls, and ARRAY_REFs to force_evaluation_order.
17391
        (various):  Set TREE_SIDE_EFFECTS more carefully.
17392
 
17393
        Tolerate random (non-UTF8) encoding in comments without complaining.
17394
        * lex.c (java_read_char):  Return 0xFFFE if bad UTF8 encoding.
17395
        (java_is_eol):  Handle '\r' followed by '\n' instead of vice versa.
17396
 
17397
        * parse.y (resolve_qualified_expression_name):  Handle error_mark.
17398
        (java_complete_node case EXPR_WITH_FILE_LOCATION):  Likewise.
17399
 
17400
        * parse.y (java_complete_lhs):  Ignore an empty statement in a
17401
        COMPOUND_EXPR.  Don't complain about empty statement after return.
17402
 
17403
1999-02-19  Per Bothner  
17404
 
17405
        * parse.y (obtain_incomplete_type):  Don't wrap unknown types
17406
        in TREE_LIST - just chain the POINTER_TYPEs together.
17407
        (resolve_class):  If type already resolved, return decl.
17408
        After resolving, update TREE_TYPE(class_type), and name (if array).
17409
        * parse.h (do_resolve_class), parse.y:  Make non-static.
17410
        * class.c (maybe_layout_super_class):  Take this_class argument.
17411
        Do do_resolve_class if necessary.
17412
        (layout_class, layout_class_methods): Adjust calls appropriately.
17413
        * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
17414
        JDEP_RESOLVED_P):  Redefined for new TREE_LIST-less convention.
17415
        * typeck.c (build_java_array_type):  Don't call layout_class.
17416
 
17417
1999-02-17  Alexandre Petit-Bianco  
17418
 
17419
        * parse.y (check_pkg_class_access): Allow private class access
17420
        within the same package.
17421
        (strip_out_static_field_access_decl): New function.
17422
        (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
17423
        operator argument before testing its nature.
17424
 
17425
1999-02-03  Per Bothner  
17426
 
17427
        * java-tree.def (FINALLY_EXPR):  Removed.  (Now uses TRY_FINALLY_EXPR.)
17428
        (TRY_EXPR):  Simplify - it no longer has a finally clause.
17429
        * check-init.c (check_init):  Handle TRY_FINALLY_EXPR.
17430
        Simpler handling of TRY_EXPR, which no longer has a finally clause.
17431
        * expr.c (java_lang_expand_expr):  Likewise.
17432
        * java-tree.h (CATCH_EXPR_GET_EXPR):  Removed - no longer needed.
17433
        * parse.h (java_get_catch_block), parse.y:  Removed - no longer needed.
17434
        * parse.y (java_complete_lhs):  Add support for TRY_FIANLLY_EXPR.
17435
        (build_try_statement):  Remove finally parameter and handling.
17436
        (build_try_finally_statement):  New function.
17437
        (patch_try_statement):   No longer need to support finally clause.
17438
        (try_statement):  Update grammar action rules.
17439
        * jcf-write.c (generate_bytecode_insns):  Handle TRY_FINALLY_EXPR.
17440
        Simpler handling of TRY_EXPR, which no longer has a finally clause.
17441
 
17442
1998-11-26  Andrew Haley  
17443
 
17444
        * jcf-parse.c (get_constant): Add braces around computation of 'd'
17445
        when REAL_ARITHMETIC is not defined.  [Oct 26 fix got overwritten -PB]
17446
 
17447
1999-02-17  Andrew Haley  
17448
 
17449
        * class.c (build_utf8_ref): Back out broken patch which was
17450
        intended to to output signatures using '.' as a separator.
17451
 
17452
        * class.c (make_class_data): Output signatures using '.' as a
17453
        separator, rather than '/'.
17454
        (mangled_classname): Likewise.
17455
        (make_field_value): Likewise.
17456
        (make_method_value): Likewise.
17457
        * constants.c (alloc_class_constant): Likewise.
17458
        * expr.c (build_invokeinterface): Likewise.
17459
 
17460
1999-02-11  Alexandre Petit-Bianco  
17461
 
17462
        * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
17463
        of an ancient workaround.
17464
 
17465
1999-02-10  Jeffrey A Law  (law@cygnus.com)
17466
 
17467
        * jvspec.c (xmalloc): Kill the prototype.  It does not belong
17468
        here anymore.
17469
 
17470
1999-02-10  Alexandre Petit-Bianco  
17471
 
17472
        * lex.c (yylex): Encode \0 as UTF8.
17473
 
17474
1999-02-10  Tom Tromey  
17475
 
17476
        * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
17477
        * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
17478
        (libgcj_zip): Renamed.
17479
        * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
17480
        LIBJAVA_ZIP_FILE.
17481
        (jcf_path_init): Use LIBGCJ_ZIP_FILE.
17482
 
17483
        * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
17484
        (GC_NAME): Renamed -lgc to -lgcjgc.
17485
 
17486
1999-02-09  Alexandre Petit-Bianco  
17487
 
17488
        * lex.c (java_lang_cloneable): Initialize.
17489
        * parse.y (java_lang_cloneable): New static variable.
17490
        (qualify_ambiguous_name): Take CONVERT_EXPR into account when
17491
        doing one more qualification round.
17492
        (valid_ref_assignconv_cast_p): Reject null source or
17493
        destination. Allow an array to be cast into java.lang.Cloneable.
17494
        (patch_cast): Swapped two first arguments to first call to
17495
        valid_ref_assignconv_cast_p.
17496
 
17497
1999-02-08  Alexandre Petit-Bianco  
17498
 
17499
        * parse.h: DECL_P renamed JDECL_P.
17500
        * parse.y: DECL_P replaced by JDECL_P.
17501
        (build_array_from_name): Always use pointer's type.
17502
        (patch_bc_statement): Extra code to search continue target in a
17503
        for loop. Fixed comments. Continue target is current loop when
17504
        unlabeled.
17505
 
17506
1999-02-05  Andrew Haley  
17507
 
17508
        * class.c (make_class_data): The superclass of an interface should
17509
        be null, not class Object.
17510
 
17511
        * lex.c (java_lex): Sign extend hex literals.
17512
 
17513
1999-02-04  Andrew Haley  
17514
 
17515
        * class.c (build_utf8_ref): Output signatures using '.' as a
17516
        separator, rather than '/'.
17517
        (make_class_data): Likewise.
17518
 
17519
1999-02-03  Marc Espie 
17520
 
17521
        * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
17522
        mkstemp.o.  Get them from libiberty now.
17523
 
17524
1999-02-02  Jeffrey A Law  (law@cygnus.com)
17525
 
17526
        * jcf-io.c: Do not include sys/stat.h or sys/wait.h
17527
 
17528
1999-02-02  Kaveh R. Ghazi  
17529
 
17530
        * jvspec.c (xmalloc): Fix the prototype to match the one obtained
17531
        from libiberty.h
17532
 
17533
1999-02-02  Per Bothner  
17534
 
17535
        Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
17536
        * jcf-write.c (generate_bytecode_return):  New function.
17537
        (generate_bytecode_insns):  Use it, for RETURN_EXPR.
17538
 
17539
        * jcf-write.c (generate_bytecode_insns):  For REAL_CST that is 0 or 1,
17540
        generate special [fd]const_[01] instructions.
17541
 
17542
        * jcf-parse.c (yyparse):  Don't emit_register_classes if -fsyntax-only.
17543
 
17544
        * verify.c (verify_jvm_instructions):  Do INVALIDATE_PC after
17545
        handling OPCODE_lookupswitch or OPCODE_tableswitch.
17546
 
17547
1999-02-01  Per Bothner  
17548
 
17549
        * parse.y (patch_method_invocation):  Handle calling static methods,
17550
        even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
17551
 
17552
        * parse.y (java_complete_lhs):  Don't complain about unreachable
17553
        exit condition in a do-while statement.
17554
 
17555
1999-01-29  Alexandre Petit-Bianco  
17556
 
17557
        * lex.c (java_read_char): Fixed utf8 decoding.
17558
        (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
17559
        range.
17560
        * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
17561
        comments. Local variable `all_primitive' is gone. Broadened
17562
        acceptance of `0' to floating point targets. `long' can now be
17563
        widened to `double' or `float'.
17564
        (valid_method_invocation_conversion_p): Added leading
17565
        comment. Fixed tabulation.
17566
        (build_string_concatenation): Optimize out left or right empty
17567
        string constants.
17568
 
17569
1999-01-28  Per Bothner  
17570
 
17571
        * jcf-write.c (localvar_alloc):  Only emit entry for
17572
        LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
17573
        (generate_bytecode_insns):  Only call put_linenumber if
17574
        debug_info_level > DINFO_LEVEL_NONE.
17575
        * jvspec.c (lang_specific_driver):  If no -O* or -g* option
17576
        is specified, add -g1 (for compatibility wih javac).
17577
 
17578
1999-01-28  Hans-Peter Nilsson  
17579
 
17580
        * java/Makefile.in: Add missing dependencies for jcf-dump.o,
17581
        gjavah.o, check-init.o, jv-scan.o
17582
 
17583
1999-02-01  Kaveh R. Ghazi  
17584
 
17585
        * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
17586
 
17587
        * gjavah.c: Include config.h and system.h.
17588
 
17589
        * javaop.h (inline): Don't define, its handled by system.h.
17590
        (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
17591
        from `inline' to `static inline'.
17592
 
17593
        * jcf.h (inline): Don't define, its handled by system.h.
17594
 
17595
        * lex.c (inline): Likewise.
17596
 
17597
1999-01-31  Zack Weinberg  
17598
 
17599
        * lang-specs.h: Map -Qn to -fno-ident.
17600
 
17601
1999-01-29  Richard Henderson  
17602
 
17603
        * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
17604
 
17605
1999-01-29  Tom Tromey  
17606
 
17607
        * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
17608
        then cast it to Object before calling `append' method.
17609
 
17610
1999-01-28  Per Bothner  
17611
 
17612
        * check-init.c (check_bool2_init, check_bool_init, check_init):
17613
        Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
17614
        * jcf-write.c (generate_bytecode_insns):  Likewise.
17615
 
17616
1999-01-28  Alexandre Petit-Bianco  
17617
 
17618
        * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
17619
        * parse.y (patch_cast): Allow a boolean to be cast into a
17620
        boolean.
17621
 
17622
1999-01-27  Alexandre Petit-Bianco  
17623
 
17624
        * parse.y: (class_declaration:): Fixed indentation.
17625
        (class_member_declaration:): Extra `;' after field declaration now
17626
        accepted.
17627
        (interface_declaration:): Removed debug messages in error reports.
17628
        (patch_binop): Nodes created and returned inherit the orignal
17629
        node's COMPOUND_ASSIGN_P flag value.
17630
        (patch_cast): Fix cast from char to floating point.
17631
 
17632
1999-01-25  Andrew Haley  
17633
 
17634
        * except.c, java-except.h (expand_resume_after_catch): new
17635
        function.
17636
        * expr.c (java_lang_expand_expr): call expand_resume_after_catch
17637
        to branch back to main flow of control after a catch block.
17638
 
17639
1999-01-23  Kaveh R. Ghazi  
17640
 
17641
        * Makefile.in (parse.o): Depend on $(CONFIG_H) and
17642
        $(srcdir)/../system.h.
17643
        (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
17644
        (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
17645
        (jcf-write.o): Likewise.
17646
        (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17647
        (mangle.o): Depend on $(srcdir)/../toplev.h.
17648
        (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17649
        (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17650
 
17651
        * class.c: Include output.h and parse.h.
17652
        (mangled_classname): Add the `const' keyword to a char*.
17653
        (find_named_method): Hide unused function definition.
17654
        (build_utf8_ref): Change type of variable `c' to unsigned char.
17655
        Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
17656
        (build_class_ref): Add the `const' keyword to a char*.
17657
        (layout_class_method): Remove unused variable `buf'.
17658
 
17659
        * decl.c (find_local_variable): Remove unused variable `rtl'.
17660
        (pushdecl): Likewise for variables `different_binding_level' and
17661
        `oldglobal'.
17662
        (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
17663
        (maybe_build_cleanup): Likewise for parameter `decl'.
17664
 
17665
        * except.c (expand_start_java_handler): Mark parameter `range'
17666
        with ATTRIBUTE_UNUSED.
17667
 
17668
        * expr.c: Include except.h.
17669
        (pop_type): Remove unused variable `i'.
17670
        (pop_value): Likewise for variables `n_words' and `i'.
17671
        (expand_java_arrayload): Likewise for variable `convert'.
17672
        (java_lang_expand_expr): Likewise for variables `op0', `type',
17673
        `mode', `unsignedp', `node' and `elements'.
17674
        (expand_byte_code): Likewise for variables `prev_eh_ranges' and
17675
        `eh_ranges'.
17676
        (process_jvm_instruction): Add a `const' qualifier to a char*.
17677
 
17678
        * gjavah.c (output_directory): Add the `const' keyword to a char*.
17679
        (temp_directory): Likewise.
17680
        (print_c_decl): Likewise.
17681
        (print_method_info): Likewise.
17682
        (decode_signature_piece): Likewise.
17683
        (print_mangled_classname): Likewise.
17684
 
17685
        * java-except.h: Provide prototypes for maybe_start_try,
17686
        maybe_end_try and add_handler.
17687
 
17688
        * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
17689
        (parse_error_context): Likewise.  Also add ATTRIBUTE_PRINTF_2.
17690
        (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
17691
        init_expr_processing, push_super_field, init_class_processing,
17692
        can_widen_reference_to, class_depth, verify_jvm_instructions,
17693
        maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
17694
        set_local_type, merge_type_state, push_type, load_type_state,
17695
        add_interface, find_in_current_zip, append_gpp_mangled_classtype,
17696
        emit_unicode_mangled_name): Add prototypes.
17697
 
17698
        * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
17699
        (print_signature_type): Use ISDIGIT, not isdigit.
17700
        (print_signature): Remove unused variable `j'.
17701
 
17702
        * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
17703
        int when comparing against one.
17704
 
17705
        * jcf-parse.c: Include toplev.h.
17706
 
17707
        * jcf-write.c: Likewise.  Don't include  or .
17708
        (localvar_free): Remove unused variable `i'.
17709
        (generate_bytecode_conditional): Likewise for variable `kind'.
17710
 
17711
        * jv-scan.c: Include config.h and system.h.  Remove redundant
17712
        OS header and gansidecl.h includes.
17713
        (warning): Add the `const' keyword to a char*.  Also add
17714
        ATTRIBUTE_PRINTF_1 to the prototype.  Check ANSI_PROTOTYPES, not
17715
        __STDC__, when determining whether to use ANSI-isms.
17716
        (fatal): Likewise.  Also add ATTRIBUTE_UNUSED.
17717
        (xmalloc): Don't redundantly prototype here.
17718
        (main): Remove unused parameter `envp'.  Also fix the arguments
17719
        passed to function `fatal' to match the format specifier.
17720
 
17721
        * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
17722
 
17723
        * mangle.c: Include toplev.h.
17724
        (emit_unicode_mangled_name): Declare parameter `len'.
17725
 
17726
        * parse.y (parse_warning_context): Add the `const' keyword to a
17727
        char*.  Also add ATTRIBUTE_PRINTF_2 to the prototype.  Check
17728
        `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
17729
        (issue_warning_error_from_context): Add the `const' keyword to
17730
        a char*.
17731
        (parse_error_context): Likewise.  Also check `ANSI_PROTOTYPES'
17732
        not `__STDC__' for whether to use ANSI-isms.
17733
 
17734
        * typeck.c (incomplete_type_error): Mark parameters `value' and
17735
        `type' with ATTRIBUTE_UNUSED.
17736
        (parse_signature_type): Use ISDIGIT, not isdigit.
17737
 
17738
        * verify.c (check_pending_block): Add the `const' keyword to a char*.
17739
        (verify_jvm_instructions): Likewise.  Remove unused variables
17740
        `field_name' and `default_val'.
17741
 
17742
        * zextract.c: Include config.h and system.h.  Remove redundant
17743
        OS header includes.
17744
 
17745
        * zipfile.h: Prototype `read_zip_archive'.
17746
 
17747
1999-01-21  Andrew Haley  
17748
 
17749
        * typeck.c (convert): Allow conversions to void type: some
17750
        optimizations in gcc do this.
17751
 
17752
1999-01-21  Andrew Haley  
17753
 
17754
        * typeck.c (convert_ieee_real_to_integer): New function.
17755
        (convert): When not using fast-math and using hardware fp, convert
17756
        an IEEE NaN to zero.
17757
 
17758
1999-01-18  Andrew Haley  
17759
 
17760
        * parse.y (patch_binop): Do a type conversion from signed to
17761
        unsigned and then back to signed when a ">>>" is found.
17762
 
17763
1999-01-17  Alexandre Petit-Bianco  
17764
 
17765
        * java-tree.h: (check_for_initialization): Added prototype.
17766
        * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
17767
        * parse.y (do_resolve_class): Removed unused locals.
17768
        (read_import_dir): Likewise.
17769
        (resolve_qualified_expression_name): Array creation
17770
        expressions are valid primary expressions.
17771
        (qualify_ambiguous_name): Likewise.
17772
        (patch_synchronized_statement): Removed unused local.
17773
 
17774
1999-01-17  Jeffrey A Law  (law@cygnus.com)
17775
 
17776
        * Makefile.in (zextract.o): Add dependencies.
17777
 
17778
        * Makefile.in: Do not put ^Ls at the start of a line.
17779
 
17780
1999-01-15  Per Bothner  
17781
 
17782
        * expr.c (process_jvm_instruction):  Coerce to correct Throwable
17783
        sub-type the result of the call that gets the exception value.
17784
 
17785
        * parse.y (java_complete_expand_methods):  If flags_syntax_only,
17786
        don't call finish_class.
17787
 
17788
        * parse.y (java_check_regular_methods):  If METHOD_PRIVATE,
17789
        clear found before continuing.
17790
 
17791
        * verify.c (verify_jvm_instructions):  On an array load, allow
17792
        and handle top of stack to be TYPE_NULL.
17793
 
17794
        * gjavah.c (generate_access):  Translate Java package private or
17795
        protected access to C++ public, but with a comment.
17796
 
17797
1999-01-13  Andrew Haley  
17798
 
17799
        * expr.c (generate_name): Name prefix changed to avoid clashes
17800
        with assembler temp labels.
17801
 
17802
        * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
17803
        MODIFY_EXPR.  Without this, code for the assignment may not be
17804
        generated at all and the synchronized statement will read an
17805
        uninitialized variable.
17806
 
17807
1999-01-13  Alexandre Petit-Bianco  
17808
 
17809
        * class.c (maybe_layout_super_class): Fixed returned value.
17810
        * lex.c: Added 1999 to the copyright.
17811
        (java_init_lex): Initialize java_lang_imported.
17812
        * lex.h: Added 1999 to the copyright.
17813
        * parse.h: Added 1999 to the copyright.
17814
        (REGISTER_IMPORT): Fixed typo in trailing macro.
17815
        (CURRENT_OSB): New macro.
17816
        (struct parser_ctxt): New fields osb_depth, osb_limit.
17817
        * parse.y (java_lang_id): New global variable.
17818
        (type_import_on_demand_declaration): Don't import java.lang.* twice.
17819
        (array_creation_expression:): Use CURRENT_OSB.
17820
        (dims:): Uses a stack to keep track of array dimensions.
17821
        (cast_expression:): Use CURRENT_OSB.
17822
        (find_expr_with_wfl): Return NULL if node found doesn't meet the
17823
        conditions.
17824
        (register_fields): Fixed typos in comment.
17825
        (check_method_redefinition): Fixed comment indentation.
17826
        (java_check_regular_methods): Set saved found wfl to NULL after
17827
        having reinstalled it in the previously found DECL_NAME.
17828
 
17829
1999-01-10  Richard Henderson  
17830
 
17831
        * gjavah.c (java_float_finite): Use a union to do type punning.
17832
        (java_double_finite): Likewise.
17833
 
17834
1999-01-09  Per Bothner  
17835
 
17836
        * parse.y (build_new_array_init):  Don't set EXPR_WFL_LINECOL
17837
        on CONSTRUCTOR (since that trashes TREE_CST_RTL).
17838
        (patch_new_array_init):  Clear TREE_CONSTANT also if INDIRECT_REF.
17839
        (register_fields):  Set TREE_STATIC on NEW_ARRAY_INIT, not on
17840
        CONSTRUCTOR (which causes expand_expr to call output_constant_def).
17841
        * expr.c (java_lang_expand_expr):  Check TREE_STATIC of NEW_ARRAY_INIT.
17842
 
17843
1999-01-08  Per Bothner  
17844
 
17845
        * check-init.c (check_init):  If compiling to native, we don't
17846
        see THROW_EXPR.  Instead, look for a call to throw_node (_Jv_Throw).
17847
 
17848
1999-01-08  Tom Tromey  
17849
 
17850
        * parse-scan.y (variable_declarator_id): Set or increment
17851
        bracket_count.
17852
        (bracket_count): New global.
17853
        (formal_parameter): Handle case where bracket pairs trail variable
17854
        declarator id.
17855
 
17856
1999-01-07  Andrew Haley  
17857
 
17858
        * jcf-parse.c (yyparse): variable len changed from a char to an
17859
        int to prevent overflow.
17860
 
17861
1999-01-06  Per Bothner  
17862
 
17863
        * java-tree.h:  Declare read_class.
17864
        * jcf-parse.c (read_class):  New function.
17865
        (load_class):  Now just call read_class.
17866
 
17867
        * java-tree.h (java_parse_abort_on_error):  Only return if new errors.
17868
        * jcf-parse.c (parse_source_file):  Declare save_error_count,
17869
        which is needed by java_parse_abort_on_error macro,
17870
        * parse.y (java_layout_classes, java_expand_classes):  Likewise.
17871
 
17872
        * parse.y (register_fields):  Set TREE_STATIC flag of NEW_ARRAY_INIT
17873
        constructor, if initializing a static field.
17874
        (patch_new_array_init):  Set TREE_CONSTANT if it is.
17875
        * expr.c (java_lang_expand_expr):  For a static array constructor
17876
        of primitive elements, allocate the array itself statically.
17877
        Disabled until we can set the vtable field statically.
17878
 
17879
        * check-init.c:  New file.  Checks for definite assignment.
17880
        * Makefile.in (JAVA_OBJS):  Add check-init.o.
17881
        * parse.y (java_complete_expand_method): Call check_for_initialization.
17882
        * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY):  Moved to java-tree.h.
17883
 
17884
1999-01-06  Graham 
17885
 
17886
        * parse.y : include system.h instead of including
17887
        standard headers directly with the exception of .
17888
 
17889
1999-01-06  Per Bothner  
17890
 
17891
        * lex.h:  Moved static function declarations to lex.c,
17892
        to shut up some -Wall warnings.
17893
        * lex.c:  Static function declarations moved here.
17894
        * jcf-dump.c:  Small fixes to shut up -Wall warnings.
17895
 
17896
1999-01-05  Kaveh R. Ghazi  
17897
 
17898
        * Make-lang.in ($(GCJ).o): Depend on prefix.h.
17899
 
17900
1998-12-22  Per Bothner  
17901
 
17902
        * expr.c (process_jvm_instruction):  Do load_type_state after JSR.
17903
        * verify.c (verify_jvm_instructions):  Fix off-by-one error.
17904
 
17905
        * jcf-write.c (CHECK_PUT):  Add (void) cast to avoid -Wall warnings.
17906
        (localvar_alloc):  Change return type to void,
17907
        (emit_unop):  Remove unused variable size.
17908
 
17909
        * jcf-write.c (struct jcf_block):  Add new union.
17910
        (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC):  New macros.
17911
        (call_cleanups):  New functions.
17912
        (struct jcf_partial):  New fields num_finalizers and return_value_decl.
17913
        (generate_bytecode_insns):  Support CLEANUP_POINT_EXPR and
17914
        WITH_CLEANUP_EXPR.  Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
17915
        * lang.c (lang_init):  Call using_eh_for_cleanups.
17916
        * parse.y (java_complete_lhs):  For SYNCHRONIZED_EXPR, defer
17917
        completing operands to patch_synchronized_statement.
17918
        Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
17919
        (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
17920
        WITH_CLEANUP_EXPR instead of TRY_EXPR.
17921
 
17922
1998-12-20  John F. Carr  
17923
 
17924
        * Make-lang.in: Comment out control-Ls; they upset some makes.
17925
 
17926
1998-12-18  Tom Tromey  
17927
 
17928
        * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
17929
        consistently.
17930
 
17931
1998-12-17  Tom Tromey  
17932
 
17933
        * parse.y (DIR_SEPARATOR): New define.
17934
        (check_class_interface_creation): Use it.
17935
 
17936
        * parse-scan.y (report_main_declaration): Recognize
17937
        `java.lang.String' in argument to main.
17938
 
17939
1998-12-16  Per Bothner  
17940
 
17941
        * parse.y (create_interface):  Remove bogus test.
17942
 
17943
1998-12-16  Per Bothner  
17944
 
17945
        * jcf-parse.c (get_constant):  Set TREE_TYPE for string constants.
17946
        (HANDLE_CONSTANTVALUE):  If flag_emit_class_files, call get_constant.
17947
 
17948
1998-12-16  Tom Tromey  
17949
 
17950
        * parse-scan.y (qualified_name): Use correct sprintf format.
17951
 
17952
1998-12-15  Tom Tromey  
17953
 
17954
        * gjavah.c (print_field_info): Changed how most negative number is
17955
        printed.
17956
 
17957
1998-12-14  Per Bothner  
17958
 
17959
        * parse.y (fold_constant_for_init):  New function.
17960
        (resolve_expression_name):  Don't replace static final
17961
        constant-initialized fields by its value.
17962
        (java_complete_lhs):  New.  Same as java_complete_tree, except does
17963
        not replace static final constant-initialized fields by their values.
17964
        (register_fields):  If there is an initializer, set DECL_INITIAL and
17965
        MODIFY_EXPR_FROM_INITIALIZATION_P.
17966
        (java_complete_tree):  For MODIFY_EXPR, use java_complete_lhs for lhs.
17967
        Only call patch_initialized_static_field if
17968
        MODIFY_EXPR_FROM_INITIALIZATION_P.
17969
        (patch_initialized_static_field):  If not valid constant, clear
17970
        DECL_INITIAL.
17971
 
17972
        * parse.y (lookup_field_wrapper):  Fix thinko.
17973
 
17974
        * parse.y (java_complete_tree):  In EXPR_WITH_FILE_LOCATION,
17975
        set and restore global lineno.
17976
 
17977
1998-12-14  Tom Tromey  
17978
 
17979
        * gjavah.c (print_field_info): If value to print is the smallest
17980
        value of its size, then print as hex to avoid later warnings from
17981
        C++ compiler.
17982
 
17983
1998-12-14  Tom Tromey  
17984
 
17985
        * gjavah.c (decompile_method): Decompile `return null'.
17986
        (process_file): Generate `#pragma interface'.
17987
        (method_declared): New global.
17988
        (print_method_info): Set it.
17989
        (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
17990
        (print_method_info): Handle abstract methods.
17991
 
17992
1998-12-13  Per Bothner  
17993
 
17994
        * parse.y (patch_method_invocation):  If class_decl is null
17995
        (e.g. an array type), use original type.
17996
 
17997
        * parse.y (check_thrown_exceptions):  Temporary hack to suppress
17998
        errors about uncaught exception from clone (of array, specifically).
17999
 
18000
1998-12-13  Tom Tromey  
18001
 
18002
        * gjavah.c (decompile_method): Handle all types of `return'
18003
        opcode.  Decompile `return this' and `return'.
18004
        (method_access): New global.
18005
        (print_method_info): Set it.
18006
        (decompile_method): Don't decompile a synchronized method.
18007
 
18008
1998-12-13  Tom Tromey  
18009
 
18010
        * jcf-reader.c (jcf_parse_one_method): Recognize
18011
        HANDLE_END_METHOD.
18012
        * gjavah.c (HANDLE_END_METHOD): New macro.
18013
        (HANDLE_CODE_ATTRIBUTE): New macro.
18014
        (decompile_method): New function.
18015
        (print_method_info): Don't print `;\n' at end of function decl.
18016
        Include java-opcodes.h.
18017
        (decompiled): New global.
18018
 
18019
1998-12-12  Per Bothner  
18020
 
18021
        * class.c (build_class_ref):  Handle PRIMTYPE.class if
18022
        flag_emit_class_files.
18023
        * expr.c (expand_java_field_op):  Don't optimize java.lang.XXX.TYPE
18024
        if flag_emit_class_files.
18025
        * parse.y (java_complete_tree):  Pre-liminary support for
18026
        COMPONENT_REF - only to handle PRIMCLASS.TYPE.
18027
 
18028
        * parse.y (patch_synchronized_statement):   Don't call monitorexit
18029
        unless block CAN_COMPLETE_NORMALLY.  Propagate that flag properly.
18030
 
18031
        * java-tree.h (DECL_LOCAL_STATIC_VALUE):  Removed - no longer used.
18032
 
18033
        * zipfile.h (opendir_in_zip):  New declaration.
18034
        * jcf-io.c (saw_java_source):  Moved to jcf-parse.c.
18035
        (opendir_in_zip):  New function, using code from open_in_zip.
18036
        (open_in_zip):  Call opendir_in_zip.
18037
        (find_class):  Remove no-longer-used do_class_file parameter,
18038
        but add source_ok parameter.  Change logic so if we find a .java file,
18039
        we don't look for .class in later classpath emtries.
18040
        * jcf-parse.c (load_class):  Pass saw_java_source to find_class.
18041
        (jcf_figure_file_type):  Only call open_in_zip if correct magic number.
18042
        * gjavah.c: Update call to find_class.
18043
        * jcf-dump.c:  Likewise.
18044
 
18045
        * jcf-write.c (put_linenumber):  Handle duplicate line numbers.
18046
        (generate_bytecode_insns):  For EXPR_WITH_FILE_LOCATION, do
18047
        nothing if body is empty_stmt_node.
18048
        Various little fixes so SP gets correctly adjusted.
18049
        For NEW_ARRAY_INIT, handle IGNORE_TARGET.
18050
        For CALL_EXPR, test if static first.
18051
        (generate_classfile):  Ignore fields that are DECL_ARTIFICIAL,
18052
        such as the ones we create for Object and Class.
18053
        Set and restore current_function_decl.
18054
        * parse.y:  Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
18055
        (note_possible_classname):  New function.
18056
        (read_import_entry):  Removed.  Merged with read_import_dir.
18057
        (read_import_dir):  Don't call find_class - that only gives us
18058
        the first classpath entry having the needed package.
18059
        Use the struct buffer data structure from buffer.h.
18060
        (read_import_dir, find_in_imports_on_demand):  The remembered
18061
        class names now use '.' (not '/') as package separator.
18062
 
18063
        * parse.y (java_complete_expand_methods):  Call write_classfile
18064
        here, and not in java_expand_classes (which only gets first class).
18065
 
18066
1998-12-12  Alexandre Petit-Bianco  
18067
 
18068
        * parse.y ():  Do maybe_generate_clinit last.
18069
        (register_fields):  If a static fields has an initializer, just
18070
        chain it on ctxp->static_initialized, and handle later.
18071
        (java_complete_expand_methods):  Force  first.
18072
        (resolve_expression_name, resolve_field_access):  Just get DECL_INITIAL
18073
        - it's already been completed.
18074
        (patch_initialized_static_field):  New function.
18075
        (java_complete_field):  Call it.
18076
 
18077
1998-12-12  Per Bothner  
18078
 
18079
        * expr.c (encode_newarray_type, build_new_array):  New functions.
18080
        * java-tree.h:  Declare build_new_array.
18081
        * jcf-write.c (patch_newarray):  Use build_new_array.
18082
 
18083
        * expr.c (java_lang_expand_exp):  Support NEW_ARRAY_INIT.
18084
        * jcf-write.c (generate_bytecode_insns):  Support NEW_ARRAY_INIT.
18085
 
18086
        * parse.y (patch_new_array_init):  Re-organize.
18087
        Now is passed the actual array (pointer) type of the value.
18088
        Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
18089
        (patch_array_constructor):  Removed - merged into patch_new_array_init.
18090
        (java_complete_tree):  Update patch_new_array_init.
18091
 
18092
        * jcf-write.c (find_constant_index):  New function.
18093
        (generate_bytecode_insns):  Use find_constant_index.
18094
        (generate_classfile):  Use find_constant_index for ConstantValue.
18095
 
18096
1998-12-11  Tom Tromey  
18097
 
18098
        * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
18099
        * decl.c (init_decl_processing): Renamed dtable -> vtable.
18100
        * class.c (make_class_data): Renamed dtable -> vtable, and
18101
        dtable_method_count -> vtable_method_count.
18102
 
18103
1998-12-10  Alexandre Petit-Bianco  
18104
 
18105
        * decl.c (long_zero_node, float_zero_node, double_zero_node): New
18106
        global variables, initialized.
18107
        * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
18108
        Declared new global variables.
18109
        * lex.c (java_lex): Return long_zero_node, float_zero_node,
18110
        double_zero_node, integer_zero_node upon direct matching.
18111
        * parse.y (purify_type_name): Added function prototype.
18112
        (duplicate_declaration_error_p): Consider new_type as potentially
18113
        being a incomplete type. Use purify_type_name on type string.
18114
        (method_header): saved_type: unused variable removed. Don't figure
18115
        return type if method name is invalid.
18116
        (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
18117
        processed by patch_unaryop.
18118
        (patch_unaryop): Fixed typo in comment. Re-convert pre/post
18119
        increment/decrement node into its original type after binary
18120
        numeric promotion on its operands.
18121
 
18122
1998-12-10  Alexandre Petit-Bianco  
18123
 
18124
        * parse.y (array_initializer:): Array init operand is NULL_TREE
18125
        instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
18126
        now an error. Fixed indentation problems.
18127
        (patch_string): Handle error_mark_node as an argument.
18128
        (patch_new_array_init): Fixed indentation problems.
18129
        (array_constructor_check_entry): Removed check on null wfl_value.
18130
        Return an error if wfl_value's walk returns an error.
18131
 
18132
1998-12-09  Alexandre Petit-Bianco  
18133
 
18134
        * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
18135
        * lex.c (java_lex): Remember column position before advancing one
18136
        token. Retain location information on OCB_TK.
18137
        * lex.h (typedef struct java_lc): Added new field.
18138
        * parse.h (GET_SKIP_TYPE): New macro.
18139
        (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
18140
        * parse.y (build_new_array_init, patch_new_array_init,
18141
        patch_array_constructor, maybe_build_array_element_wfl,
18142
        array_constructor_check_entry): New function prototypes.
18143
        (switch_block:): Tagged .
18144
        (OCB_TK): Tagged .
18145
        (array_initializer:): Installed actions.
18146
        (variable_initializer): Build location information on element if
18147
        necessary.
18148
        (switch_statement:): Fixed indentation typo.
18149
        (switch_block:): Redefined default action.
18150
        (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
18151
        (patch_assignment): Removed duplicate code.
18152
        (maybe_build_array_element_wfl, build_new_array_init,
18153
        patch_new_array_init, patch_array_constructor,
18154
        array_constructor_check_entry): New functions.
18155
 
18156
1998-12-07  Alexandre Petit-Bianco  
18157
 
18158
        * parse.y (array_initializer): Tagged .
18159
        (variable_initializer:): Use default rule.
18160
        (array_initializer:): Defined actions.
18161
        (variable_initializers:): Likewise.
18162
        (resolve_qualified_expression_name): Use DECL_CONTEXT to build
18163
        non-static field accesses.
18164
        (patch_invoke): Fixed indentation typo.
18165
        (java_complete_tree): Likewise.
18166
        (build_labeled_block): Changed leading comment. Generate an error
18167
        in case of duplicate loop labels.
18168
        (patch_conditional_expr): Patch results of string concatenation
18169
        operations.
18170
 
18171
1998-12-06  Per Bothner  
18172
 
18173
        * constants.c (find_methodref_index):  When the class is an interface,
18174
        generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
18175
 
18176
        * decl.c (finit_identifier_node):  Use "$finit$", rather than
18177
        "" (which Sun's verifier rejects).
18178
        * parse.y (maybe_generate_finit):  Leave out meaningless final flag.
18179
        (generate_field_initialization_code):  Removed.
18180
        (fix_constructors)  Don't add call to $finit$ here (wrong order).
18181
        (patch_method_invocation):  Add $finit$ call here.
18182
 
18183
        * java-tree.h (CALL_USING_SUPER):  New macro.
18184
        * parse.y (patch_invoke):  Remove im local variable.
18185
        (patch_method_invocation, patch_invoke):  Don't pass super parameter.
18186
        (patch_invoke):  Use CALL_USING_SUPER instead of from_super parameter.
18187
        (resolve_qualified_expression_name):  Maybe set CALL_USING_SUPER.
18188
 
18189
        * jcf-write.c (get_access_flags):  Fix typo ACC_PUBLIC -> ACC_FINAL.
18190
 
18191
        * parse.y (java_complete_tree):  Don't complain about unreachable
18192
        statement if it is empty_stmt_node.
18193
 
18194
        * jcf-write.c (find_constant_wide):  New function.
18195
        (push_long_const):  Use find_constant_wide.
18196
 
18197
        * jcf-write.c (generate_bytecode_insn):  Fix bug in switch handling.
18198
        (generate_bytecode_insn):  Use correct dup variant for MODIFY_EXPR.
18199
        Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
18200
        Emit invokeinterface when calling an interface method.
18201
        Emit invokespecial also when calling super or private methods.
18202
 
18203
        * jcf-write.c (generate_classfile):  Emit ConstantValue attributes.
18204
 
18205
1998-12-06  Per Bothner  
18206
 
18207
        * jcf-dump.c (INVOKE):  If invokeinterface, print number of args.
18208
 
18209
1998-12-03  Alexandre Petit-Bianco  
18210
 
18211
        * java-tree.h (java_layout_seen_class_methods): New function
18212
        prototype.
18213
        (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
18214
        * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
18215
        * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
18216
        * parse.y (method_declarator:): Defined action.
18217
        (issue_warning_error_from_context): input_filename saved, set to
18218
        the appropriate value and restored after java_error is called.
18219
        (build_unresolved_array_type): Fixed comment.
18220
        (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
18221
        (method_header): Deal with return type the same way type are
18222
        handled for fields and method's parameters and local variables
18223
        types are handled.
18224
        (check_method_redefinition): Removed extra CR.
18225
        (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
18226
        (java_layout_seen_class_methods): New function.
18227
        (java_layout_classes): Call java_layout_seen_class_methods.
18228
 
18229
1998-12-03  Per Bothner  
18230
 
18231
        * parse,y (patch_synchronized_statement):  Set CAN_COMPLETE_NORMALLY.
18232
 
18233
1998-12-03  Per Bothner  
18234
 
18235
        * jcf-dump.c (main):  Fix error message.
18236
        * jcf-path.c (add_entry):  Style fix.
18237
 
18238
1998-12-02  Alexandre Petit-Bianco  
18239
 
18240
        * class.c (layout_class_method): Call build_java_argument_signature
18241
        on constructors too.
18242
        * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
18243
        (patch_method_invocation): Define a primary when resolving an
18244
        expression name. Augmented comment on code checking illegal `this'
18245
        usage. Loosened it test by accepting NEW_CLASS_EXPR.
18246
 
18247
1998-12-01  Alexandre Petit-Bianco  
18248
 
18249
        * class.c (layout_class_method): Don't report error on non-static
18250
        overriding static if the method is private.
18251
        * java-tree.h (finish_class): Prototype added.
18252
        * lex.c (java_get_line_col): Handle col argument -2 value.
18253
        * parse.h: All static method declarations moved to parse.y.
18254
        * parse.y: Now contains all static method declarations previously
18255
        found in parse.h.
18256
        (find_expr_with_wfl, missing_return_error,
18257
        unreachable_stmt_error): New functions.
18258
        (java_get_real_method_name): Identify constructors bearing class
18259
        names in source code compiled classes only.
18260
        (java_complete_expand_methods): Call missing_return_error.
18261
        (invocation_mode): Private methods invoked as static methods.
18262
        (java_complete_tree): Call unreachable_stmt_error.
18263
 
18264
1998-12-01  Tom Tromey  
18265
 
18266
        * Makefile.in (+target): Removed.
18267
        (+xmake_file): Likewise.
18268
        (+tmake_file): Likewise.
18269
        (.NOEXPORT): Removed duplicate.
18270
 
18271
1998-11-27  Kaveh R. Ghazi  
18272
 
18273
        * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
18274
 
18275
        * jv-scan.c: Fix xmalloc prototype.  Provide an xmalloc definition.
18276
 
18277
        * jvgenmain.c: Remove the xmalloc prototype, we get it from
18278
        libiberty.h.  Provide an xmalloc definition.
18279
 
18280
        * jvspec.c: Remove the xmalloc prototype.
18281
 
18282
        * parse-scan.y: Include config.h and system.h.  Don't include
18283
        OS headers or gansidecl.h.  Don't prototype xmalloc/xstrdup.
18284
        Provide an xstrdup definition.
18285
 
18286
1998-11-26  Alexandre Oliva  
18287
 
18288
        * jcf-path.c (add_entry): Recognize ".jar" too.
18289
        * lang-specs.h: Likewise.
18290
 
18291
1998-11-26  Per Bothner  
18292
 
18293
        * jcf-write.c (generate_bytecode_insns):  In Call_EXPR, handle
18294
        soft_monitorenter_node, soft_monitorexit_node, throw_node.
18295
 
18296
        * jcf-write.c (generate_bytecode_insns):
18297
        Handle pre/post-increment/decrement of long.
18298
 
18299
        * jcf-write.c (generate_bytecode_insns):
18300
        Handle missing exception handler (finally for synchronized).
18301
 
18302
1998-11-25  Per Bothner  
18303
 
18304
        * java-tree.h (end_params_node):  Declare global.
18305
        * decl.c (end_params_node):  New global.
18306
        (init_decl_processing, start_java_method):  Use end_params_node for
18307
        end of list of parameter types.  Follows correct gcc conventions.
18308
        * expr.c (pop_argument_types, pop_arguments):  Likewise.
18309
        * lang.c (put_decl_node):  Likewise.
18310
        * typeck.c (various places):  Likewise.
18311
        * class.y (various places):  Likewise.
18312
        * parse.y (various places):  Likewise.
18313
 
18314
        * parse.y (java_complete_tree):  Move CAN_COMPLETE_NORMALLY.
18315
        (build_jump_to_finally):  Add missing CAN_COMPLETE_NORMALLY.
18316
 
18317
        * class.c:  Add #include flags.h, remove no-longer needed declaration.
18318
 
18319
        * class.c (layout_class_method):  Remove commented-out code, re-format.
18320
        Don't add vtable entry (or index) for private methods.
18321
        * expr.c (expand_invoke):  A private method is implicitly final.
18322
        * class.c (make_class_data):  If inlining or optimizing,
18323
        skip private methods.
18324
 
18325
        * class.c (finish_class):  New function.  Calls existing methods,
18326
        but alls emits deferred inline functions.
18327
        * jcf-parse.c (parse_class_file):  Call finish_class.
18328
        * parse.y (java_complete_expand_methods):  Likewise.
18329
 
18330
        * expr.c (build_java_binop):  Explicit default, to silence -Wall.
18331
 
18332
        * expr.c (CHECK_PC_IN_RANGE):  Add void cast to kill warnings.
18333
 
18334
1998-11-25  Marc Espie 
18335
 
18336
        * jcf-write.c (generate_bytecode_conditional): Fix typo.
18337
 
18338
1998-11-24  Per Bothner  
18339
 
18340
        * (generate_classfile): Always write class access flag with
18341
        ACC_SUPER set.
18342
 
18343
1998-11-24  Alexandre Petit-Bianco  
18344
 
18345
        * class.c (maybe_layout_super_class): New function.
18346
        (layout_class): Reorganized. Loop on class methods dispatched into
18347
        a new function. Call maybe_layout_super_class.
18348
        (layout_class_methods, layout_class_method): New functions.
18349
        * expr.c (expand_java_NEW): Call layout_class_methods on loaded
18350
        class.
18351
        (expand_invoke): Likewise.
18352
        * java-tree.h (all_class_list): New global variable declared.
18353
        (layout_class_methods, layout_class_method): New function
18354
        prototypes.
18355
        (LAYOUT_SEEN_CLASS_METHODS): New macro.
18356
        * jcf-parse.c (all_class_list): New global variable.
18357
        (load_class): Extended what class_or_name can be. Use parser
18358
        context mechanism to save globals before calling jcf_parse.
18359
        (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
18360
        is set on the file name.
18361
        (jcf_parse): Layout class methods when Object is loaded, otherwise
18362
        record class in all_class_list for delayed method layout.
18363
        (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
18364
        * lang.c (put_decl_node): Decode  into the decl context
18365
        class name.
18366
        * lex.c (java_allocate_new_line): Use xmalloc.
18367
        * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
18368
        pointers, not TREE_LIST elements.
18369
        (struct parser_ctxt): Fixed comment indentations, added comments
18370
        and reordered some fields.
18371
        (java_check_methods): Function prototype removed.
18372
        * parse.y (java_push_parser_context): Use xmalloc.
18373
        (java_parser_context_restore_global): Pop extra pushed ctxp only
18374
        when there's nothing next.
18375
        (maybe_create_class_interface_decl): Fixed comment, add new
18376
        created class decl to all_class_list.
18377
        (method_header): Use GET_REAL_TYPE on argument's types.
18378
        (method_declarator): Use GET_REAL_TYPE, change type to the real
18379
        type in TREE_LIST dependency node. Build argument list with the
18380
        real type.
18381
        (create_jdep_list): Use xmalloc. Removed allocation error message.
18382
        (obtain_incomplete_type): Fixed leading comment. Broadened
18383
        incoming argument meaning.
18384
        (register_incomplete_type): Use xmalloc. Removed allocation error
18385
        message.
18386
        (safe_layout_class): Fixed leading comment.
18387
        (jdep_resolve_class): Reversed if statement condition and switch
18388
        if and else bodies.
18389
        (resolve_and_layout): Fixed leading comment. Broadened incoming
18390
        argument meaning.
18391
        (complete_class_report_errors): New local variable name, for
18392
        clarity. purify_type_name used for all error cases.
18393
        (java_get_real_method_name): Stricter check on constructors.
18394
        (java_check_regular_methods): Reverse methods list only if not
18395
        already laid out. Layout artificial constructor.
18396
        (java_check_methods): Deleted.
18397
        (source_start_java_method): Obtain incomplete type for patchable
18398
        method arguments.
18399
        (java_layout_classes): Fixed leading comment. Use
18400
        LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
18401
        statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
18402
        before returning. Fixed comments.
18403
        (java_expand_classes): Check for errors up front.
18404
        (patch_method_invocation): Class to search is resolved and laid
18405
        out.
18406
 
18407
1998-11-24  Per Bothner  
18408
 
18409
        * expr.c (java_lang_expand_expr):  Add missing emit_queue.
18410
 
18411
        * javaop.h (int8):  Removed - not used.
18412
        (jbyte):  Redefine portably with correct signedness.
18413
 
18414
        * jcf-write.c (generate_bytecode_insns):  Don't free sw_state.cases.
18415
 
18416
        * jcf-write.c (generate_bytecode_insns):  Fix typo
18417
        OPCODE_getstatic to OPCODE_getfield.
18418
 
18419
        * java-tree.def (CASE_EXPR, DEFAULT_EXPR):  Kind is 'x', not '1'.
18420
        * parse.y (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR,
18421
        set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
18422
 
18423
1998-11-19  Alexandre Petit-Bianco  
18424
 
18425
        * jcf-parse.c (jcf_parse_source): Function returned type is
18426
        void. Added prototype.
18427
        (jcf_parse): Function returned type is void.
18428
        (yyparse): Remove call to fclose on the last parsed file.
18429
 
18430
        * java-tree.h (jcf_parse): Changed jcf_parse prototype.
18431
 
18432
1998-11-18  Alexandre Petit-Bianco  
18433
 
18434
        * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
18435
        (layout_class): Cope with methods featuring WFL in decl names.
18436
        * decl.c (unqualified_object_id_node): New global variable,
18437
        initialized.
18438
        (build_decl_no_layout): Removed.
18439
        * expr.c (build_primtype_type_ref): Handle Double.
18440
        (java_lang_expand_expr): Fixed indentations.
18441
        * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
18442
        (flag_wall, flag_redundant, flag_not_overriding,
18443
        flag_static_local_jdk1_1, unqualified_object_id_node): Global
18444
        variable declarations.
18445
        (build_decl_no_layout): Removed prototype.
18446
        (java_get_real_method_name): Added prototype.
18447
        (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
18448
        (java_parse_abort_on_error): Macro now just returns.
18449
        * jcf-parse.c (jcf_parse_source): Check fclose returned
18450
        value. Call emit_register_classes if java_report_errors returns
18451
        zero.
18452
        * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
18453
        flag_static_local_jdk1_1): New integer flags.
18454
        (lang_decode_option): New flags set here.
18455
        * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
18456
        (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
18457
        the flag_redundant variable.
18458
        (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
18459
        when parsing java.lang.Object class.
18460
        (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
18461
        NULL_TREE to build.
18462
        (resolve_qualified_expression_name): Fixed indentation.
18463
        (patch_array_ref): Changed prototype.
18464
        (not_initialized_as_it_should_p): Prototype removed.
18465
        (java_report_errors): Added function prototype.
18466
        * parse.y (formal_parameter:): Changed error message for not yet
18467
        supported final parameters.
18468
        (class_type_list:): Set both PURPOSE and VALUE of created
18469
        TREE_LIST to be class_type.
18470
        (primary_no_new_array:): Handle class literals on primitive types.
18471
        (parse_warning_context): Reinstalled correct force_error and
18472
        do_warning flags setups.
18473
        (java_report_errors): Changed prototype. Return java_error_count
18474
        value.
18475
        (variable_redefinition_error): Consider treating variable type as
18476
        a fake pointer.
18477
        (create_interface): Warn about redundant abstract modifier if
18478
        flag_redundant is set. Changed error message.
18479
        (lookup_field_wrapper): Save/restore globals before/after looking
18480
        up field.
18481
        (duplicate_declaration_error_p): Consider treating declaration
18482
        type as a fake pointer.
18483
        (register_fields): Extract real type from dependency node. Check
18484
        for duplicate field declaration after type adjustment. Use
18485
        DECL_INITIAL to store static final initialized values.
18486
        (method_header): Extract real function type from dependency node.
18487
        (check_abstract_method_header): Use GET_METHOD_NAME.
18488
        (obtain_incomplete_type): Layout fake pointer type.
18489
        (safe_layout_class): Don't try to check for methods before layout.
18490
        (java_complete_class): Don't check for correct throws clause
18491
        elements inheritance here.
18492
        (resolve_and_layout): Broadened name parameter meaning.
18493
        (reset_method_name): Use GET_METHOD_NAME.
18494
        (java_get_real_method_name): New function.
18495
        (java_check_regular_methods): Don't check methods in
18496
        java.lang.Object.  Verify lineage of throws clause elements. Use
18497
        flag_no_overriding in warning report.
18498
        (check_throws_clauses): Don't check if class was from
18499
        bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
18500
        (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
18501
        (declare_local_variables): Use flag_static_local_jdk1_1 to report
18502
        warning on unsupported final local variables. Use build_decl
18503
        instead of build_decl_no_layout. Get real local variable type from
18504
        dependency node.
18505
        (source_start_java_method): Get real parameter type from
18506
        dependency node. Call build_decl instead of build_decl_no_layout.
18507
        (java_layout_classes): Reverse tree and layout type and class as
18508
        required. Mark class as loaded when done.
18509
        (resolve_field_access): Fixed indentation. Restricted condition
18510
        leading to static field access code generation. Set field_type
18511
        decl's TREE_TYPE if QUAL_DECL_TYPE not available.
18512
        (resolve_qualified_expression_name): Initialize type_found to
18513
        null. Handle static field resolved during qualification. Fixed
18514
        layout on non primitive field decl types.
18515
        (not_accessible_p): Fixed typo in comment.
18516
        (patch_method_invocation): Resolve and layout class to search from
18517
        type.
18518
        (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
18519
        layout non primitive type, if necessary. Make method node only to
18520
        report errors.
18521
        (find_applicable_accessible_methods_list): Consider WFL'ed method
18522
        decl names. Fixed indentation.
18523
        (argument_types_convertible): Resolve and layout target type if
18524
        necessary.
18525
        (java_complete_tree): Fixed indentation problems. Rewrote
18526
        CALL_EXPR thrown exceptions check. Re-installed further processing
18527
        of the assignment in certain cases.
18528
        (patch_assignment): Call maybe_build_primttype_type_ref to perform
18529
        inlining on class literals.
18530
        (valid_builtin_assignconv_identity_widening_p): Cope with constant
18531
 
18532
        (valid_method_invocation_conversion_p): Likewise.
18533
        (patch_string): Temporary disable forbidden use of `this' in
18534
        explicit constructor invocations when doing string concatenation
18535
        within their scope.
18536
        (patch_unaryop): Added comment. Reinstalled code to disable
18537
        further check on assignment operation with cast expression RHS.
18538
        (patch_switch_statement): Fixed indentation.
18539
        (build_try_statement): Call build_decl instead of
18540
        build_decl_no_layout.
18541
        (patch_synchronized_statement): Likewise.
18542
        (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
18543
        IS_UNCHECKED_EXPRESSION_P.
18544
        (check_thrown_exceptions_do): Changed leading comment. Resolve and
18545
        layout argument exception type.
18546
        (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
18547
        of IS_UNCHECKED_EXPRESSION_P.
18548
 
18549
1998-11-18  Anthony Green  
18550
 
18551
        * jcf-parse.c (yyparse): Open class file in binary mode.
18552
 
18553
1998-11-15  Per Bothner  
18554
 
18555
        * jvgenmain.c:  Need to #include "gansidecl.h" (to get PROTO).
18556
 
18557
        * jcf-write.c (perform_relocations):  Move check out one loop.
18558
 
18559
1998-11-15  Anthony Green  
18560
 
18561
        * Make-lang.in: Fix reference to srcdir.
18562
        * jv-scan.c: Add missing xmalloc prototype.
18563
        * jvgenmain.c: Ditto.
18564
 
18565
1998-11-15  Per Bothner  
18566
 
18567
        * decl.c (error_mark_node), java-tree.h:  New global.
18568
        * parse.y:  Use empty_stmt_node instead of size_zero_node.
18569
        (build_if_else_statement):  If missing else, use empty_stmt_node.
18570
 
18571
        * parse.y (not_initialized_as_it_should_p):  Removed, with its callers.
18572
        (java_complete_expand_method):  Complain if return is missing.
18573
        (java_check_regular_methods):  Comment out incorrect error check.
18574
        (not_accessible_p):  Fix incorrect handling of protected methods.
18575
        (patch_method_invocation):  Pass correct context to not_accessible_p.
18576
        (find_applicable_accessible_methods_list):  Likewise.
18577
        (qualify_ambiguous_name):  If ARRAY_REF, it's an expression name.
18578
        (java_complete_tree):  For CASE_EXPR and DEFAULT_EXPR, set
18579
        TREE_TYPE (to void_type_node);  otherwise expand_expr crashes.
18580
        (patch_if_else_statement):  Fix setting of CAN_COMPLETE_NORMALLY.
18581
 
18582
        * jcf-write.c (CHECK_OP, CHECK_PUT):  Add some error checking.
18583
        (push_int_const):  Remove reundant NOTE_PUSH.
18584
        (generate_bytecode_insns - case STRING_CST):  Do NOTE_PUSH.
18585
        (- case SWITCH_EXPR):  Fix code generation bug.
18586
        (- case PREDECREMENT_EXPR etc):  Remove redundant NOTE_PUSH.
18587
        (generate_classfile):  More robust for abstract methods.
18588
 
18589
1998-11-15  Anthony Green  
18590
 
18591
        * Makefile.in: jv-scan and jvgenmain all require libiberty.
18592
        * Make-lang.in: Ditto.
18593
 
18594
        * jv-scan.c: Remove xmalloc and xstrdup definitions.
18595
        * jvgenmain: Ditto.
18596
 
18597
1998-11-15  Per Bothner  
18598
 
18599
        * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE):  New macro.
18600
 
18601
        * jcf-io.c (find_class):  Simpler/cleaner structure fixes a bug.
18602
 
18603
1998-11-14  Per Bothner  
18604
 
18605
        Allow uses of interface types to verify.  This is not really
18606
        type-safe, but it matches what Sun does, and is OK as long as
18607
        there are appropriate run-time checks.
18608
        * verify.c (merge_types):  If merging two interface types,
18609
        just set the result to java.lang.Object.
18610
        * expr.c (pop_type):  Any interface is matches by java.lang.Object.
18611
 
18612
1998-11-13  Tom Tromey  
18613
 
18614
        * gjavah.c (main): Handle --output-class-directory argument.
18615
        * jvspec.c (lang_specific_driver): Translate `-d' into
18616
        -foutput-class-dir.
18617
        * jcf.h (jcf_write_base_directory): Declare.
18618
        * lang.c (lang_decode_option): Recognize -foutput-class-dir.
18619
        * lang-options.h: Mention -foutput-class-dir.
18620
        * jcf-write.c (jcf_write_base_directory): New global.
18621
        (make_class_file_name): Put generated .class file into `-d'
18622
        directory, or into source directory if -d not given.  Function now
18623
        static.
18624
        (write_classfile): Free class file name.  Handle case where class
18625
        file name is NULL.
18626
        (DIR_SEPARATOR): New macro.
18627
        Include 
18628
 
18629
        * Makefile.in (prefix): New macro.
18630
 
18631
1998-11-12  Per Bothner  
18632
 
18633
        * parse.y (patch_invoke):  Do less if flag_emit_class_files.
18634
        * expr.c (build_known_method_ref):  Don't check flag_emit_class_files
18635
        here (done in patch_invoke instead).
18636
        (case_identity):  Moved here from parse.y.
18637
 
18638
        * java-tree.h (CAN_COMPLETE_NORMALLY):  New macro.
18639
        * parse.y (java_complete_tree etc):  Maybe set CAN_COMPLETE_NORMALLY.
18640
        * parse.y (java_complete_tree):  Re-order COMPOUND_EXPR in BLOCK
18641
        so they can be efficiently scanned without recursion.
18642
        Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
18643
        * expr.c (java_lang_expand_expr):  Expand statements of COMPOUND_EXPR
18644
        in BLOCK iteratively, rather than recursively.
18645
 
18646
        * parse.y (do_unary_numeric_promotion):  New function.
18647
        (patch_unaryop, patch_binop, patch_array_ref):  Use it.
18648
 
18649
        * parse.y (patch_newarray):  Various fixes.
18650
 
18651
        Re-do handling of switch statements (for proper block scoping).
18652
        * parse.y:  Add just a single block for the enture switch block,
18653
        but don't create any "case blocks".
18654
        (group_of_labels):  Rmeoved unneeded non-terminal.
18655
        CASE_EXPR and DEFAULT_EXPR are added to current block.
18656
        * expr.c (java_lang_expand_expr):  Inline SWITCH_EXPR here.
18657
        Now also need to handle CASE_EXPR and DEFAULT_EXPR.
18658
        * java-tree.h (SWITCH_HAS_DEFAULT):  New macro.
18659
        * parse.y (wfl_operator, print_int_node): Make non-static.
18660
        (java_complete_tree):  CASE_EXPR and DEFAULT_EXPR are now processed
18661
        as part of recursive scan of block.
18662
        (java_expand_switch ):  Removed - inlined into java_lang_expand_expr.
18663
        (patch_switch_statement):  Most tests move dinto java_complete_tree.
18664
 
18665
        * parse.y:  Make various production be non-typed (void).
18666
        * parse.y (parse_error):  Merged into issue_warning_error_from_context.
18667
        * parse.y (add_stmt_to_compound):  Don't create/change extra node.
18668
        (patch_method_invocation_stmt):  Renamed to patch_method_invocation.
18669
 
18670
        * jcf-write.c (struct jcf_handler):  New type.
18671
        (struct jcf_switch_state):  New type.
18672
        (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC):  New relocation kinds.
18673
        (alloc_handler, emit_unop, emit_reloc):  New functions.
18674
        (adjust_typed_op):  Add extra parameter ("max type" offset).
18675
        (emit_switch_reloc, emit_case-reloc):  New function.
18676
        (generate_bytecode_conditional):  Handle REAL_TYPE comparisons.
18677
        (generate_bytecode_insns):  Support REAL_CST, switch statements,
18678
        exception handling, method calls, object/array creation, and more.
18679
 
18680
        * class.c:  Remove some unused variables.
18681
        * constants.c (find_string_constant):  New function.
18682
        (count_constant_pool_bytes):  Fix to correctly handle wide constants.
18683
        * decl.c (complete_start_java_method):  Don't _Jv_InitClass
18684
        if flag_emit_class_files.
18685
 
18686
1998-11-12  Tom Tromey  
18687
 
18688
        * jcf-io.c (find_class): Added explanatory comment.
18689
 
18690
        * jcf-path.c (add_entry): Look for `.zip' at end of filename.  Add
18691
        trailing slash to `.zip' entries.
18692
 
18693
        * jvspec.c (lang_specific_driver): Correctly handle case where
18694
        GC_NAME not defined.
18695
 
18696
1998-11-11  Tom Tromey  
18697
 
18698
        * jvspec.c (GC_NAME): New define.
18699
        (lang_specific_driver): Use GC_NAME.  Add GC_NAME to command line
18700
        if required.
18701
        * Make-lang.in (jvspec.o): Define WITH_GC_.
18702
 
18703
1998-11-11  Per Bothner  
18704
 
18705
        * jcf-dump.c (TABLE_SWITCH):  Fix typos.
18706
 
18707
1998-11-11  Tom Tromey  
18708
 
18709
        * jcf-dump.c (main): Correctly recognize `--'-style long options.
18710
 
18711
1998-11-10  Alexandre Petit-Bianco  
18712
 
18713
        * class.c (is_compiled_class): Call safe_layout_class for class
18714
        compiled from source.
18715
        * conver.h (convert_to_integer, convert_to_real,
18716
        convert_to_pointer): Added prototypes.
18717
        * decl.c (init_decl_processing): Non longer push the decls of
18718
        `methodtable', `constants', `Class', `Field', `dispatchTable'
18719
        `jexception' and `Method'.
18720
        * expr.c (build_invokeinterface): New function.
18721
        (expand_invoke): static variable CLASS_IDENT now in
18722
        build_invokeinterface. Use build_invokeinterface.
18723
        (expand_java_field_op): Moved code to inline
18724
        java.lang.PRIMTYPE.TYPE into a function.
18725
        (build_primtype_type_ref): New function.
18726
        * java-tree.def (INSTANCEOF_EXPR): New tree code.
18727
        * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
18728
        FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
18729
        (DECL_CONSTRUCTOR_P): Fixed typo in comment.
18730
        (DECL_LOCAL_STATIC_VALUE): New macro.
18731
        (build_invokeinterface, build_primtype_type_ref): New function
18732
        prototypes.
18733
        (java_parse_abort_on_error): Macro rewritten.
18734
        * jcf-parse.c (current_method): Add comment to declaration.
18735
        (parse_zip_file_entries, process_zip_dir, void parse_source_file):
18736
        Function prototypes fixed.
18737
        (jcf_parse_source): push/pop parser context. save/restore global.
18738
        (parse_source_file): Fixed leading comment. Now take a
18739
        IDENTIFIER_NODE as an argument. Doesn't check methods, layout
18740
        classes and pop the parser context anymore.
18741
        (yyparse): Push parser context, save globals, parse the source
18742
        file, restore globals and pop the parser context when processing a
18743
        source file.
18744
        * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
18745
        * lex.c (java_parse_doc_section): New function.
18746
        (java_lex): Call java_parse_doc_section when appropriate. Build an
18747
        operator around INSTANCEOF_TK.
18748
        * lex.h (java_lineterminator, java_sprint_unicode,
18749
        java_unicode_2_utf8, java_lex_error, java_store_unicode):
18750
        Prototypes rewritten.
18751
        (java_parse_escape_sequence, java_letter_or_digit_p,
18752
        java_parse_doc_section, java_parse_end_comment, java_get_unicode,
18753
        java_read_unicode, java_store_unicode, java_read_char,
18754
        java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
18755
        Added function prototypes.
18756
        * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
18757
        define.
18758
        (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
18759
        New macros
18760
        (struct parser_ctxt): New fields: deprecated,
18761
        current_parsed_class_un, gclass_list.
18762
        (fix_method_argument_names, issue_warning_error_from_context,
18763
        resolve_package, lookup_package_type): New function prototypes.
18764
        (resolve_expression_name): Fixed function prototype.
18765
        (find_applicable_accessible_methods_list): Fixed indentation, added
18766
        extra argument in prototype.
18767
        (check_final_assignment, build_null_of_type, check_deprecation,
18768
        check_method_redefinition, reset_method_name,
18769
        java_check_regular_methods, java_check_abstract_methods,
18770
        maybe_build_primttype_type_ref): New function prototype.
18771
        * parse.y (conver.h): Include.
18772
        (INSTANCEOF_TK): Tagged .
18773
        (single_type_import_declaration): Use REGISTER_IMPORT macro.
18774
        (relational_expression:): Build binop for instanceof.
18775
        (java_push_parser_context): Remember ctxp->gclass_list across
18776
        contexts.
18777
        (java_pop_parser_context): Simply return if no context
18778
        exists. Remember gclass_list across contexts.
18779
        (issue_warning_error_from_context): New function.
18780
        (parse_error_context): Don't setup ctxp->elc here. Call
18781
        issue_warning_error_from_context instead.
18782
        (parse_warning_context): Likewise.
18783
        (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
18784
        setup. Link new class/interface to ctxp->gclass_list.
18785
        (add_superinterfaces): Register interface as incomplete if not
18786
        loaded.
18787
        (create_class): Remember class unqualified name in
18788
        ctxp->current_parsed_class_un. Check class deprecation.
18789
        (register_fields): Check field deprecation. Remember static final
18790
        field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
18791
        processing INIT.
18792
        (method_header): New local variable ORIG_ARG. Use unqualified
18793
        current class name for check on constructor errors. Promote return
18794
        type if of record type. Argument list fix moved in
18795
        fix_method_argument_names, called here. Check method deprecation.
18796
        (fix_method_argument_names): New function.
18797
        (method_declarator): Promote record typed arguments.
18798
        (safe_layout_class): Check class methods before layout.
18799
        (java_complete_class): Compute field layout when patched.
18800
        (do_resolve_class): Try to load class after having it renamed
18801
        after the package name.
18802
        (get_printable_method_name): Use DECL_CONTEXT.
18803
        (reset_method_name): New function.
18804
        (check_method_redefinition): Use reset_method_name.
18805
        (java_check_regular_methods): New local variable
18806
        SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
18807
        names for error report. Check for compile-time error when method
18808
        found has default (package) access.
18809
        (java_check_abstract_methods): Now takes an interface DECL node as
18810
        an argument. Also reinstall real name on unchecked
18811
        overriding/hiding methods for error report.
18812
        (java_check_methods): Fixed leading comment. Get classes to verify
18813
        from ctxp->gclass_list. Use CHECK_METHODS macro and set
18814
        CLASS_METHOD_CHECKED_P on class verification.
18815
        (lookup_java_method2): Get real method name if necessary.
18816
        (find_in_imports): Don't check package class access here.
18817
        (resolve_package, lookup_package_type): New functions.
18818
        (java_layout_classes): Fixed leading comment. Take classes to be
18819
        laid out from ctxp->gclass_list.
18820
        (java_complete_expand_methods): Don't expand native and abstract
18821
        methods.
18822
        (java_expand_classes): New function.
18823
        (resolve_expression_name): Use additional argument ORIG.  Retrieve
18824
        values of static final field of primitive types.
18825
        (resolve_field_access): Handles static final field of promotive
18826
        type.
18827
        (resolve_qualified_expression_name): Handle STRING_CST as
18828
        primaries and package name resolution. Check deprecation on found
18829
        decls. Set where_found and type_found on non static field resolved
18830
        during qualification. Layout non primitive field decl types.
18831
        (check_deprecation): New function.
18832
        (maybe_access_field): Simplified.
18833
        (patch_method_invocation_stmt): Local variable CLASS_TYPE
18834
        removed. Reverse method's argument when primary is a type. Don't
18835
        use CLASS_TYPE to report problems, use IDENTIFIER_WFL
18836
        instead. Include abstract class in the list of class searchable
18837
        for constructors. Use DECL_CONTEXT of found method for access
18838
        checks. Check method deprecation.
18839
        (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
18840
        converting arguments. Handle INVOKE_INTERFACE.
18841
        (lookup_method_invoke): Search constructor using existing
18842
        infrastructure (don't rely on lookup_java_constructor anymore).
18843
        (find_applicable_accessible_methods_list): Extra argument flag
18844
        LC. Now include constructor in the search.
18845
        (qualify_ambiguous_name): Conditional expression are primaries.
18846
        (not_initialized_as_it_should_p): static final are always
18847
        initialized.
18848
        (java_complete_tree): Pass extra NULL argument to
18849
        resolve_expression_name. Stricter test to carry on patching
18850
        assignments. New case for INSTANCEOF_EXPR.
18851
        (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
18852
        (check_final_assignment, maybe_build_primttype_type_ref): New
18853
        functions.
18854
        (patch_assignment): Detect resolved static finals and carry normal
18855
        assignment error check on them. Inline PRIMTYPE.TYPE read access.
18856
        (try_builtin_assignconv): Access constant 0 on all primitive
18857
        types.
18858
        (valid_builtin_assignconv_identity_widening_p): Accept identical
18859
        types. Accept all promoted type on int type.
18860
        (valid_ref_assignconv_cast_p): Accept a null pointer to be
18861
        assigned to a reference.
18862
        (valid_method_invocation_conversion_p): Accept to check null
18863
        pointers.
18864
        (build_binop): Merge declaration and initialization of local
18865
        variable BINOP.
18866
        (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
18867
        numeric types. Improved validity test for qualify operators on
18868
        references.
18869
        (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
18870
        and PREINCREMENT_EXPR. Also detect resolved static finals of a
18871
        primitive type and issue the appropriate error message.
18872
        (resolve_type_during_patch): Mark class loaded when resolved.
18873
        (patch_cast): Allow null to be cased to reference types.
18874
        (build_null_of_type): New function.
18875
        (patch_array_ref): Handle array on references correctly.
18876
        (patch_return): Removed unused local variable MODIFY. Force
18877
        boolean to be returned as integers. Allows null to be returned by
18878
        a function returning a reference.
18879
        * typeck.c (convert_to_integer, convert_to_real,
18880
        convert_to_pointer): Prototypes moved to convert.h
18881
        (lookup_argument_method): Use method real name, if necessary.
18882
 
18883
1998-10-30  Tom Tromey  
18884
 
18885
        * class.c (build_class_ref): Changed name of primitive classes to
18886
        start with `_Jv_'.
18887
 
18888
        * class.c (make_class_data): Renamed fields: nmethods to
18889
        method_count, method_count to dtable_method_count.  Always set
18890
        `state' field to 0.
18891
        * decl.c (init_decl_processing): Likewise.
18892
 
18893
1998-10-28  Alexandre Petit-Bianco  
18894
 
18895
        * class.c (layout_class): Don't mangle , produce
18896
        __finit instead. Don't verify artificial methods.
18897
        * decl.c (finit_identifier_node): New declared global.
18898
        (init_decl_processing): finit_identifier_node initialized.
18899
        * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
18900
        * java-tree.h (finit_identifier_node): Declared as extern.
18901
        (struct lang_decl): New field called_constructor.
18902
        (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
18903
        (CLASS_HAS_FINIT_P): New macro.
18904
        (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
18905
        explicit constructor invocation.
18906
        (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
18907
        CALL_SUPER_CONSTRUCTOR_P): New macros.
18908
        (write_classfile): Added prototype.
18909
        * jcf-parse.c (jcf_parse_source): Parse and remember for
18910
        generation if the file was seen on the command line.
18911
        (parse_source_file): Don't write the class file here.
18912
        (yyparse): Loop on files rewritten. Set current_jcf.
18913
        (parse_zip_file_entries): Parse class file only if it was found.
18914
        * lang.c (init_parse): Don't open command line provided filename
18915
        here.
18916
        (lang_parse): Don't set main_jcf anymore.
18917
        * parse.h (ABSTRAC_CHECK): Capitalized arguments.
18918
        (JCONSTRUCTOR_CHECK): New macro.
18919
        (JBSC_TYPE_P): New macro.
18920
        (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
18921
        (COMPLETE_CHECK_OP_2): New macro.
18922
        (struct parse_ctxt): New field explicit_constructor_p.
18923
        (check_class_interface_creation): Fixed prototype indentation.
18924
        (patch_method_invocation_stmt): Prototype reflects added argument.
18925
        (patch_invoke): Likewise.
18926
        (complete_method_declaration, build_super_invocation,
18927
        verify_constructor_circularity,
18928
        build_this_super_qualified_invocation, get_printable_method_name,
18929
        patch_conditional_expr, maybe_generate_finit, fix_constructors,
18930
        verify_constructor_super, create_artificial_method,
18931
        start_artificial_method_body, end_artificial_method_body,
18932
        generate_field_initialization_code): New function prototypes.
18933
        * parse.y: Fixed leading comment
18934
        (constructor_header:, constructor_body:, block_end:): Rules tagged
18935
        .
18936
        (type_declaration:): Call maybe_generate_finit.
18937
        (method_declaration:): Action for method_body: placed in new
18938
        function complete_method_declaration, called here.
18939
        (constructor_declaration:): Defined actions. Removed leading
18940
        FIXME.
18941
        (constructor_header:): New rule with action.
18942
        (constructor_body:): Rule rewritten using block_begin: and
18943
        block_end:. Defined actions.
18944
        (constructor_declarator:, explicit_constructor_invocation:):
18945
        Defined actions.
18946
        (block:): Use new rules block_begin: block_end:.
18947
        (block_begin:, block_end:): New rules and actions.
18948
        (block_statements:): Fixed error message for explicit
18949
        constructors.
18950
        (method_invocation:): Call build_this_super_qualified_invocation
18951
        if primary is `this' or `super' was seen.
18952
        (conditional_expression:): Action defined.
18953
        (extra_ctxp_pushed_p): New static global flag.
18954
        (java_parser_context_save_global): Create parser context if
18955
        necessary. Use extra_ctxp_pushed_p to remember it.
18956
        (java_parser_context_restore_global): Pop extra parser context if
18957
        one exists.
18958
        (build_array_from_name): Array on primitive types are marked
18959
        loaded.
18960
        (register_fields): Restore new name in field initializer
18961
        expression if type was altered. Non static fields initialized upon
18962
        declaration marked initialized.
18963
        (maybe_generate_finit): New function.
18964
        (maybe_generate_clinit): Use create_artificial_method,
18965
        start_artificial_method_body, end_artificial_method_body. Generate
18966
        debug info for enclosed initialization statements.
18967
        (method_header): Fixed leading comment. Check constructor
18968
        flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
18969
        accordingly.
18970
        (complete_method_declaration, constructor_circularity_msg,
18971
        verify_constructor_circularity): New functions.
18972
        (get_printable_method_name): New function.
18973
        (check_method_redefinition): Don't rename  methods. Fix
18974
        declared constructor names. Error message for
18975
        constructors modified.
18976
        (java_check_regular_methods): Local variable seen_constructor
18977
        renamed saw_constructor. Skip verification on constructors. Create
18978
        default constructor with create_artificial_method.
18979
        (java_check_methods): Removed unnecessary empty line.
18980
        (create_artificial_method, start_artificial_method_body,
18981
        end_artificial_method_body): New functions.
18982
        (java_layout_classes): Changed leading comment. Reverse fields
18983
        list if necessary. Always layout java.lang.Object if being
18984
        defined.
18985
        (java_complete_expand_methods): Verify constructor circularity.
18986
        (java_complete_expand_method): Call fix_constructor on
18987
        constructors.  Local variable no_ac_found removed. Restore
18988
        bindings if method body expansion failed.
18989
        (fix_constructors, verify_constructor_super,
18990
        generate_field_initialization_code): New function.
18991
        (java_expand_classes): Fixed leading comment. Write class file
18992
        here.
18993
        (resolve_expression_name): Check for illegal instance variable
18994
        usage within the argument scope of an explicit constructor
18995
        invocation.
18996
        (resolve_qualified_expression_name): Pass extra from_super flag
18997
        when invoking patch_method_invocation_stmt. New case for
18998
        conditional expression when used as a primary. Check for error
18999
        when acquiring super.
19000
        (patch_method_invocation_stmt): Added extra argument super. New
19001
        local variable is_static_flag. Set class_to_search according to
19002
        the nature of the constructor invocation. Don't add `this'
19003
        argument when expanding NEW_CLASS_EXPR. Check for illegal method
19004
        invocation within the argument scope of explicit constructor
19005
        invocation. Set is_static according to is_static_flag. Provide
19006
        extra `super' argument to patch_invoke invocation.
19007
        (patch_invoke): New argument from_super. Loop on arguments
19008
        indentation fixed. Pass from_super to invocation_mode. New switch
19009
        case INVOKE_SUPER. Fixed error message in switch default case.
19010
        Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
19011
        value.
19012
        (invocation_mode): Return INVOKE_SUPER mode when appropriate.
19013
        (lookup_method_invoke): Fixed prototypes in candidates list. Error
19014
        message takes constructors into account.
19015
        (find_applicable_accessible_methods_list): Fixed indentation.
19016
        (qualify_ambiguous_name): Take explicit constructor invocation
19017
        into account. Deal with a conditional expression as a primary to
19018
        a method call.
19019
        (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
19020
        case. Added extra argument to patch_method_invocation_stmt.
19021
        Register calls made to explicit constructor `this'. Don't call
19022
        save_expr in ARRAY_REF case when emitting class files. Check for
19023
        illegal use of this when expanding explicit constructor invocation
19024
        arguments.
19025
        (complete_function_arguments): Set and reset parser context
19026
        explicit_constructor_p field value when appropriate.
19027
        (build_super_invocation, build_this_super_qualified_invocation):
19028
        New functions.
19029
        (patch_assignment): Fixed typo.
19030
        (patch_unaryop): Check on final fields occurs only when a decl
19031
        exits.
19032
        (patch_return): Take constructors into account.
19033
        (patch_conditional_expr): New function.
19034
        * typeck.c (build_java_signature): Removed unnecessary empty line.
19035
 
19036
1998-10-28  Jeffrey A Law  (law@cygnus.com)
19037
 
19038
        * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
19039
 
19040
1998-10-28  Tom Tromey  
19041
 
19042
        * decl.c (init_decl_processing): Renamed fields.
19043
        * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
19044
        interface_len, msize fields.
19045
 
19046
        * class.c (make_class_data): Removed subclass_head and
19047
        subclass_next fields.
19048
        * decl.c (init_decl_processing): Removed subclass_head and
19049
        subclass_next fields.
19050
 
19051
1998-10-28  Jeffrey A Law  (law@cygnus.com)
19052
 
19053
        * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
19054
        * mangle.c (emit_unicode_mangled_name): Similarly.
19055
 
19056
1998-10-26  Nick Clifton  
19057
 
19058
        * jcf-parse.c (get_constant): Place braces around code to compute
19059
        'd' when REAL_ARITHMETIC is not defined.
19060
 
19061
1998-10-25  H.J. Lu  (hjl@gnu.org)
19062
 
19063
        * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
19064
        dependency.
19065
 
19066
1998-10-23  Tom Tromey  
19067
 
19068
        * lang-specs.h: `.zip' files are input to jc1.
19069
 
19070
1998-10-22  Per Bothner  
19071
 
19072
        * jvspecs.c:  Add (but don't enable) support for combining multiple
19073
        .class and .java input filenames to a single jc1 invocation.
19074
        Add support for -C flag (copile to .class files).
19075
        Translate -classpath and -CLASSPATH arguments.
19076
        * lang-specs.h:  Don't set %2 spec.
19077
 
19078
1998-10-22  Tom Tromey  
19079
 
19080
        * jcf-path.c (add_entry): Don't add trailing separator if entry is
19081
        a .zip file.
19082
        (add_path): Don't add trailing separator to non-empty path
19083
        elements.
19084
 
19085
        * lang.c (lang_decode_option): Check for -fclasspath and
19086
        -fCLASSPATH before examining other `-f' options.
19087
 
19088
        * java-tree.h (finalize_identifier_node): Don't declare.
19089
        * class.c (make_class_data): Don't push "final" field.
19090
        * decl.c (init_decl_processing): Don't push "final" field.
19091
        (finalize_identifier_node): Removed.
19092
        (init_decl_processing): Don't set finalize_identifier_node.
19093
 
19094
        * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
19095
 
19096
1998-10-11  Anthony Green  
19097
 
19098
        * Make-lang.in (java): Depend on jcf-dump and jv-scan.
19099
        (JV_SCAN_SOURCES): New macro.
19100
        (JCF_DUMP_SOURCES): Likewise.
19101
        (jcf-dump$(exeext)): New target.
19102
        (jv-scan$(exeext)): New target.
19103
 
19104
1998-10-22  Tom Tromey  
19105
 
19106
        * Makefile.in (LEX): Removed.
19107
        (LEXFLAGS): Likewise.
19108
        (SET_BISON): New macro.
19109
        (BISON): Removed.
19110
        ($(PARSE_C)): Use SET_BISON.  Run bison from srcdir to avoid
19111
        spurious diffs in parse.c.
19112
        ($(PARSE_SCAN_C)): Likewise.
19113
        (PARSE_DIR): New macro.
19114
        (PARSE_C): Use it.
19115
        (PARSE_SCAN_C): Likewise.
19116
        (PARSE_RELDIR): New macro.
19117
 
19118
        * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
19119
 
19120
        * jcf-io.c (find_class): Use saw_java_source to determine when to
19121
        look for `.java' file.
19122
        * jcf-parse.c (saw_java_source): New global.
19123
        (yyparse): Set it if `.java' file seen.
19124
 
19125
        * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
19126
        (GCJH_SOURCES): Likewise.
19127
        * Makefile.in (datadir): New macro.
19128
        (libjava_zip): Likewise.
19129
        (JAVA_OBJS): Added jcf-path.o.
19130
        (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
19131
        (../gcjh$(exeext)): Likewise.
19132
        (jcf-path.o): New target.
19133
        * java-tree.h (fix_classpath): Removed decl.
19134
        * jcf-parse.c (fix_classpath): Removed.
19135
        (load_class): Don't call fix_classpath.
19136
        * parse.y (read_import_dir): Don't call fix_classpath.
19137
        * lex.h: Don't mention classpath.
19138
        * lex.c (java_init_lex): Don't initialize classpath.
19139
        * jcf-io.c (classpath): Removed global.
19140
        (find_class): Use jcf_path iteration functions.  Correctly search
19141
        class path for .java file.
19142
        (open_in_zip): New argument `is_system'.
19143
        * jcf-dump.c (main): Call jcf_path_init.  Recognize all new
19144
        classpath-related options.
19145
        * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
19146
        and -I.
19147
        (lang_init): Call jcf_path_init.
19148
        * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
19149
        * lang-specs.h: Handle -I.  Minor cleanup to -M options.
19150
        Correctly put braces around second string in each entry.
19151
        * gjavah.c (main): Call jcf_path_init.  Recognize all the new
19152
        classpath-related options.
19153
        (help): Updated for new options.
19154
        * jcf.h: Declare functions from jcf-path.c.  Don't mention
19155
        `classpath' global.
19156
        * jcf-path.c: New file.
19157
 
19158
        * jcf-depend.c: Include jcf.h.
19159
 
19160
        * jcf-write.c (localvar_alloc): Returns `void'.
19161
        (localvar_free): Removed unused variable.
19162
 
19163
        * lang.c (OBJECT_SUFFIX): Define if not already defined.
19164
        (init_parse): Use OBJECT_SUFFIX, not ".o".
19165
 
19166
1998-10-21  Alexandre Petit-Bianco  
19167
 
19168
        * class.c (emit_register_classes): Renamed from
19169
        emit_register_class.
19170
        * java-tree.h (emit_register_classes): Prototype renamed from
19171
        emit_register_class.
19172
        * jcf-parse.c (yyparse): Call emit_register_classes once before
19173
        returning.
19174
        * parse.y (java_expand_classes): No longer register classes.
19175
 
19176
1998-10-20  Alexandre Petit-Bianco  
19177
 
19178
        * class.c (is_compiled_class): New local variable
19179
        seen_in_zip. Identify classes found in currently compiled source
19180
        file(s).
19181
        * decl.c (complete_start_java_method): Fixed typo.
19182
        * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
19183
        HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
19184
        (CLASS_P): Moved around.
19185
        (java_parse_abort_on_error): Macro moved from jcf-parse.c
19186
        * jcf-parse.c (java_parse_abort_on_error): Macro moved to
19187
        java-tree.h
19188
        (jcf_parse_source): Changed leading comment. Removed unnecessary
19189
        fclose and CLASS_FROM_SOURCE_P marking.
19190
        (parse_source_file): New local variables remember_for_generation
19191
        and filename. Mark parsed file name identifier node. Removed block
19192
        executed when parse_only was null. Set remember_for_generation.
19193
        Use it as an argument to java_pop_parser_context.
19194
        (yyparse): New local variables several_files, list, next node and
19195
        current_file_list. Split ampersand separated file names into
19196
        current_file_list. Iterate through the list and parse accordingly.
19197
        * parse.h (java_pop_parser_context): New function prototype.
19198
        * parse.y (ctxp_for_generation): New static global variable.
19199
        (java_pop_parser_context): New argument generate. Link popped ctxp
19200
        to ctxp_for_generation list accordingly.
19201
        (java_complete_expand_methods): Fixed indentation.
19202
        (java_expand_classes): New function.
19203
 
19204
1998-10-17  Per Bothner  
19205
 
19206
        * Makefile.in:  Link with libiberty.a instead of memmove.o.
19207
 
19208
1998-10-16  Alexandre Petit-Bianco  
19209
 
19210
        * lex.c (setjmp.h): No longer included.
19211
        * lex.h (setjmp.h): Included.
19212
        * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
19213
        (duplicate_declaration_error_p): Renamed from
19214
        duplicate_declaration_error.
19215
        (build_array_from_name): New function prototype.
19216
        * parse.y (setjmp.h): No longer included.
19217
        (variable_declarator_id): Define action.
19218
        (build_array_from_name): New function.
19219
        (duplicate_declaration_error_p): Renamed from
19220
        duplicate_declaration_error.  Fixed leading comment.
19221
        (register_fields): Main `for' loop reorganized. Uses
19222
        SET_TYPE_FOR_RESOLUTION and build_array_from_name.
19223
        (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
19224
        build_array_from_name.
19225
        (resolve_class): Set CLASS_LOADED_P on newly build array dimension
19226
        types.
19227
        (read_import_dir): Don't try to skip `.' and `..'.
19228
        (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
19229
        build_array_from_name. Main `for' loop reorganized.
19230
        (resolve_qualified_expression_name): When building access to a
19231
        field, use the type where the field was found, not its own type.
19232
        (maybe_access_field): Use field DECL_CONTEXT if the type where the
19233
        field was found is null.
19234
        (qualify_ambiguous_name): Sweep through all successive array
19235
        dimensions.
19236
 
19237
1998-10-14  Alexandre Petit-Bianco  
19238
 
19239
        * java-tree.h (pop_labeled_block, lang_printable_name,
19240
        maybe_add_interface, set_super_info, get_access_flags_from_decl,
19241
        interface_of_p, inherits_from_p, fix_classpath,
19242
        complete_start_java_method, emit_handlers, init_outgoing_cpool,
19243
        make_class_data, register_class, alloc_name_constant): New
19244
        function prototypes.
19245
        * lang.c (lang_decode_option): Set argc argument unused. Fixed
19246
        indentation. Added cast to remove warning.
19247
        (lang_printable_name): Set v argument unused.
19248
        (lang_print_error): Added argument to lang_printable_name call.
19249
        (java_dummy_print, print_lang_decl, print_lang_type,
19250
        print_lang_identifier, lang_print_xnode): All argument marked
19251
        unused.
19252
        * lex.c (java_unget_unicode): Removed unnecessary argument.
19253
        (java_allocate_new_line): Unused local variable is gone.
19254
        (java_read_char): Added parenthesis in expressions to remove
19255
        warnings.  Added final return statement.
19256
        (java_read_unicode): Added parenthesis in expression to remove
19257
        warning.
19258
        (java_parse_end_comment): Fixed java_unget_unicode invocation.
19259
        (java_parse_escape_sequence): Likewise.
19260
        (java_lex): Unused local variables are gone. Fixed
19261
        java_unget_unicode invocation.
19262
        * lex.h (set_float_handler): Prototype added when JC1_LITE not
19263
        defined.
19264
        * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
19265
        lang_printable_name invocation in macro.
19266
        (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
19267
        Likewise.
19268
        (duplicate_declaration_error): Suppressed unused argument in
19269
        prototype.
19270
        (identical_subpath_p): Function declaration is gone.
19271
        (patch_invoke): Suppressed unused argument in prototype.
19272
        (patch_cast, build_labeled_block, check_thrown_exceptions):
19273
        Likewise.
19274
        * parse.y (setjmp.h): Included
19275
        (toplev.h): Likewise.
19276
        (field_declaration:): Suppressed unused local
19277
        (label_decl:): Fixed build_labeled_block invocation.
19278
        (java_pop_parser_context): Put extra parenthesis around assignment
19279
        in if.
19280
        (yyerror): Suppressed unused local variables.
19281
        (variable_redefinition_error): Fixed lang_printable_name
19282
        invocation.
19283
        (create_interface): Suppressed unused local variables.
19284
        (create_class): Likewise.
19285
        (duplicate_declaration_error): Suppressed unused argument. Fixed
19286
        lang_printable_name invocation.
19287
        (register_fields): Suppressed unused local variable. Fixed
19288
        duplicate_declaration_error invocation.
19289
        (method_header): Suppressed unused local variable.
19290
        (method_declarator, parser_check_super): Likewise.
19291
        (java_complete_class): Suppressed unused local variable. Fixed
19292
        fatal error message.
19293
        (complete_class_report_errors): Added default: in switch.
19294
        (java_check_regular_methods): Fixed lang_printable_name
19295
        invocations.
19296
        (check_throws_clauses): Likewise.
19297
        (java_check_abstract_methods): Suppressed unused local
19298
        variable. Fixed lang_printable_name invocation.
19299
        (read_import_entry): Added supplemental return statement.
19300
        (read_import_dir): Suppressed unused local variables.
19301
        (check_pkg_class_access, declare_local_variables): Likewise.
19302
        (source_start_java_method): Suppressed unused extern variable
19303
        declarations
19304
        (expand_start_java_method): Suppressed unused extern and local
19305
        variable declarations.
19306
        (java_complete_expand_methods): Likewise.
19307
        (java_complete_expand_method): Suppressed unused local variables.
19308
        (make_qualified_name): Likewise.
19309
        (resolve_qualified_expression_name): Added default: in
19310
        switch. Fixed lang_printable_name invocation.
19311
        (class_instance_creation_expression): Added parenthesis around
19312
        expressions.
19313
        (patch_method_invocation_stmt): Fixed lang_printable_name and
19314
        patch_invoke invocations.
19315
        (check_for_static_method_reference): Fixed lang_printable_name
19316
        invocation.
19317
        (patch_invoke): Suppressed unused arguments and local variables.
19318
        (lookup_method_invoke): Suppressed unused local variables.
19319
        (qualify_ambiguous_name): Added default: in switch.
19320
        (identical_subpath_p): Function removed.
19321
        (patch_assignment): Suppressed unused local variables. Suppressed
19322
        unnecessary if statement. Fixed lang_printable_name invocations.
19323
        (try_builtin_assignconv): Fixed lang_printable_name invocations.
19324
        (valid_ref_assignconv_cast_p): Parenthesis around
19325
        expression. Suppressed unused local variables.
19326
        (build_binop): Suppressed unused local variables. fixed
19327
        lang_printable_name invocations.
19328
        (string_constant_concatenation): Suppressed unused local
19329
        variables.
19330
        (patch_unaryop): Fixed lang_printable_name invocation.
19331
        (patch_cast): Suppressed unnecessary argument. Fixed
19332
        lang_printable_name invocation.
19333
        (patch_array_ref): Fixed lang_printable_name invocation.
19334
        (patch_newarray, patch_return, patch_if_else_statement): Likewise.
19335
        (build_labeled_block): Suppressed unused argument.
19336
        (generate_labeled_block): Fixed build_labeled_block invocation.
19337
        (build_loop_body): Suppressed unused local variables.
19338
        (patch_loop_statement): Likewise.
19339
        (patch_exit): Fixed lang_printable_name invocation.
19340
        (patch_switch_statement): Likewise.
19341
        (case_identity): First argument marked unused.
19342
        (patch_try_statement): Fixed lang_printable_name invocations.
19343
        (patch_synchronized_statement, patch_throw_statement): Likewise.
19344
        (check_thrown_exceptions): Fixed check_thrown_exceptions and
19345
        lang_printable_name invocations.
19346
        (check_thrown_exceptions_do): Suppressed unused argument.
19347
 
19348
1998-10-14  Tom Tromey  
19349
 
19350
        * jcf-write.c (write_classfile): Add output class file as target.
19351
        * lang-options.h: Added -MD, -MMD, -M, and -MM.
19352
        * jcf.h: Added declarations for dependency-tracking functions.
19353
        * lang-specs.h: Handle -M, -MM, MD, and -MMD.
19354
        * lang.c (lang_decode_option): Recognize -MD and -MMD.
19355
        (finish_parse): Call jcf_dependency_write.
19356
        (dependency_tracking): New global.
19357
        (DEPEND_SET_FILE): New define.
19358
        (DEPEND_ENABLE): New define.
19359
        (init_parse): Enable dependency tracking if required.
19360
        Include "flags.h".
19361
        * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
19362
        (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
19363
        (../gcjh$(exeext)): Likewise.
19364
        (jcf-depend.o): New target.
19365
        * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
19366
        (GCJH_SOURCES): Likewise.
19367
        * jcf-io.c (open_class): Call jcf_dependency_add_file.  Added
19368
        dep_name argument.
19369
        (find_classfile): Added dep_name argument.
19370
        (find_class): Compute name of dependency.
19371
        (open_in_zip): Call jcf_dependency_add_file.
19372
        * gjavah.c (output_file): No longer global.
19373
        (usage): Don't mention "gjavah".
19374
        (help): Likewise.
19375
        (java_no_argument): Likewise.
19376
        (version): Likewise.
19377
        (main): Recognize and handle -M family of options.
19378
        (print_mangled_classname): Return is void.
19379
        (process_file): Handle case where output is suppressed.
19380
        (HANDLE_END_FIELD): Likewise.
19381
        (HANDLE_METHOD): Likewise.
19382
        * jcf-depend.c: New file.
19383
 
19384
1998-10-13  Jeffrey A Law  (law@cygnus.com)
19385
 
19386
        * java-tree.def: Add missing newline at EOF.
19387
 
19388
1998-10-13  Tom Tromey  
19389
 
19390
        * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
19391
        (main): Likewise.  Exit with SUCCESS_EXIT_CODE at end of
19392
        function.
19393
        Include  and "system.h".
19394
        (disassemble_method): Undefine RET to avoid clash with
19395
        config/i386/i386.h.
19396
 
19397
1998-10-13  Alexandre Petit-Bianco  
19398
 
19399
        * decl.c (runtime_exception_type_node, error_exception_type_node):
19400
        New global variables.
19401
        (init_decl_processing): Initialized.
19402
        * expr.c (java_lang_expand_expr): Set caught exception type to
19403
        null if catch handler argument doesn't exit.
19404
        * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
19405
        tree codes.
19406
        * java-tree.h (runtime_exception_type_node,
19407
        error_exception_type_node): Global variables declared.
19408
        (DECL_FUNCTION_THROWS): New macro.
19409
        (DECL_FUNCTION_BODY): Modified comment.
19410
        (DECL_SPECIFIC_COUNT): Likewise.
19411
        (struct lang_decl): New field throws_list.
19412
        (IS_UNCHECKED_EXPRESSION_P): New macro.
19413
        * lex.c (java_lex): Generate location information for THROW_TK.
19414
        * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
19415
        EXCEPTIONS_P): New macros.
19416
        (enum jdep_code): New value JDEP_EXCEPTION.
19417
        (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
19418
        BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
19419
        PATCH_METHOD_RETURN_ERROR): New macros.
19420
        (patch_method_invocation_stmt): Added new argument to prototype.
19421
        (patch_synchronized_statement, patch_throw_statement,
19422
        check_thrown_exceptions, check_thrown_exceptions_do,
19423
        purge_unchecked_exceptions, check_throws_clauses): New function
19424
        prototypes.
19425
        * parse.y Fixed typo in keyword section.
19426
        (throw:): Rule tagged .
19427
        (THROW_TK): Keyword tagged .
19428
        (method_header:): Last argument to call to method_header passed
19429
        from throws: rule.
19430
        (throws:, class_type_list:, throw_statement:,
19431
        synchronized_statement:, synchronized:): Defined actions.
19432
        (method_header): New local variable current. Register exceptions
19433
        from throws clause.
19434
        (java_complete_tree): Complete and verify exceptions from throws
19435
        clause.
19436
        (complete_class_report_errors): Error message on exceptions not
19437
        found
19438
        (java_check_regular_methods): Fixed typo. Shortcut on private
19439
        overriding methods. Changed error message on method
19440
        redefinition. Check for throws clause compatibility.
19441
        (check_throws_clauses): New function.
19442
        (java_check_abstract_methods): Use DECL_NAME for wfl or current
19443
        method. Changed error message on method redefinition.
19444
        (currently_caught_type_list): New static variable.
19445
        (java_complete_expand_methods): Purge unchecked exceptions from
19446
        throws clause list. Call PUSH_EXCEPTIONS before walk and
19447
        POP_EXCEPTIONS after.
19448
        (resolve_qualified_expression_name): Pass new argument as NULL to
19449
        patch_method_invocation_stmt.
19450
        (patch_method_invocation_stmt): New argument ref_decl. Invoke
19451
        PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
19452
        argument list when appropriate. Use new argument if non null to
19453
        store selected method decl.
19454
        (patch_invoke): Convert if necessary args of builtin types before
19455
        forming CALL_EXPR. Argument list no longer reversed here.
19456
        (invocation_mode): Treat final methods as static methods.
19457
        (java_complete_tree): New cases for THROW_EXPR: and
19458
        SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
19459
        function call.
19460
        (complete_function_arguments): No more RECORD_TYPE
19461
        conversion. Function parameter nodes no longer saved.
19462
        (valid_ref_assignconv_cast_p): Avoid handling null type.
19463
        (patch_binop): Fixed null constant reference handling.
19464
        (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
19465
        BUILD_THROW macros.
19466
        (patch_try_statement): Fixed comments. Record caught types in
19467
        list, push the list, expand try block and pop the list.
19468
        (patch_synchronized_statement, patch_throw_statement,
19469
        check_thrown_exceptions, check_thrown_exceptions_do,
19470
        purge_unchecked_exceptions): New functions.
19471
        * typeck.c (lookup_argument_method): Allow WFL in place of method
19472
        DECL_NAME during method definition check
19473
 
19474
1998-10-09  Tom Tromey  
19475
 
19476
        * gjavah.c (decode_signature_piece): New function.
19477
        (print_c_decl): Use it.  Added `name_override' argument.
19478
        (print_method_info): Use name_override argument to print_c_decl.
19479
        (seen_fields): Removed.
19480
        (print_field_info): Don't update seen_fields.
19481
        (struct method_name): New structure.
19482
        (method_name_list): New global.
19483
        (print_method_info): Add new method to list of methods.
19484
        (name_is_method_p): New function.
19485
        (print_field_info): If field name has same name as method, then
19486
        change field name.
19487
        (process_file): Parse methods before fields.
19488
        (field_pass): New global.
19489
        (HANDLE_END_FIELD): Take field_pass into account.
19490
 
19491
1998-10-07  Kaveh R. Ghazi  
19492
 
19493
        * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
19494
        (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
19495
 
19496
1998-10-03  Anthony Green  
19497
 
19498
        * jvspec.c: Fix bug in jvgenmain_spec patch.
19499
 
19500
1998-10-02  Alexandre Petit-Bianco  
19501
 
19502
        * Makefile.in (lang.o:): Install dependency on java-tree.def.
19503
        * decl.c (soft_exceptioninfo_call_node): New global variable.
19504
        (init_decl_processing): Fixed indentation. soft_badarrayindex_node
19505
        takes extra integer argument. soft_exceptioninfo_call_node
19506
        initialized.
19507
        * except.c (java_set_exception_lang_code): New function
19508
        (method_init_exceptions): Called here.
19509
        (prepare_eh_table_type): New function.
19510
        (expand_end_java_handler): Called here.
19511
        * expr.c (build_java_throw_out_of_bounds_exception): Now features
19512
        one argument. Modified generation of call to
19513
        soft_badarrayindex_node to use new argument.
19514
        (build_java_arrayaccess): Pass faulty index value to
19515
        build_java_throw_out_of_bounds_exception.
19516
        (generate_name): New function.
19517
        (java_lang_expand_expr): New local variables node, current,
19518
        has_finally_p. Expand TRY_EXPR node.
19519
        (process_jvm_instruction): Replace top of the stack with thrown
19520
        object reference when entering exception handler.
19521
        * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
19522
        specific tree codes.
19523
        * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
19524
        global.
19525
        (DECL_SPECIFIC_COUNT): New macro.
19526
        (prepare_eh_table_type, java_set_exception_lang_code,
19527
        generate_name): New function declarations.
19528
        (match_java_method): Declaration deleted.
19529
        (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
19530
        macros.
19531
        * lex.c (TRY_TK, CATCH_TK): Generate location information.
19532
        * parse.h (redefinition_error, refine_accessible_methods_list,
19533
        can_cast_to_p): Function declaration removed.
19534
        (classitf_redefinition_error, variable_redefinition_error,
19535
        parse_jdk1_1_error, find_applicable_accessible_methods_list,
19536
        find_most_specific_methods_list, argument_types_convertible,
19537
        enter_a_block, valid_builtin_assignconv_identity_widening_p,
19538
        valid_cast_to_p, valid_method_invocation_conversion_p,
19539
        try_reference_assignconv, add_stmt_to_compound,
19540
        build_jump_to_finally, build_tree_list, patch_try_statement,
19541
        java_get_catch_block): New function declarations.
19542
        * parse.y (string_buffer_type): Global variable deleted.
19543
        (group_of_labels, catches, catch_clause, catch_clause_parameter,
19544
        finally): Rules tagged .
19545
        (TRY_TK, CATCH_TK): Token tagged .
19546
        (class_body_declaration:, class_member_declaration:,
19547
        formal_parameter:, explicit_constructor_invocation:,
19548
        interface_member_declaration:, constant_declaration:,
19549
        primary_no_new_array:, class_instance_creation_expression:,
19550
        array_creation_expression:): Issue error on unsuported JDK1.1
19551
        features.
19552
        (try_statement:, catches:, finally:): Define actions.
19553
        (catch_clause_parameter): New rule.
19554
        (catch_clause:): Use new rule catch_clause_parameter.
19555
        (parse_jdk1_1_error): New function.
19556
        (redefinition_error): Renamed classitf_redefinition_error.
19557
        (variable_redefinition_error): New function.
19558
        (check_class_interface_creation): Call
19559
        classitf_redefinition_error.
19560
        (java_complete_tree): Added error message on JDEP_TYPE: case.
19561
        (complete_class_report_errors): Fixed indentation.
19562
        (declare_local_variables): Call variable_redefinition_error.
19563
        (source_end_java_method): Call java_set_exception_lang_code and
19564
        emit_handlers where appropriate.
19565
        (java_method_add_stmt): Call add_stmt_to_block.
19566
        (add_stmt_to_block): New function.
19567
        (lookup_method_invoke): Fixed outside comment. new local variable
19568
        candicates.  Call find_applicable_accessible_methods_list and
19569
        find_most_specific_methods_list when searching for a
19570
        method. Modified error report to list possible candidates when
19571
        applicable.
19572
        (find_applicable_accessible_methods_list,
19573
        find_most_specific_methods_list, argument_types_convertible): New
19574
        function.
19575
        (refine_accessible_methods_list): Function deleted.
19576
        (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
19577
        expr (if applicable) before calling patch_array_ref.
19578
        (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
19579
        (enter_block): Fixed comment.
19580
        (enter_a_block): New function.
19581
        (patch_assignment): Reorganized. Call try_reference_assignconv for
19582
        references. Call valid_cast_to_p instead of can_cast_to_p.
19583
        (try_reference_assignconv,
19584
        valid_builtin_assignconv_identity_widening_p): New functions.
19585
        (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
19586
        (valid_cast_to_p, valid_method_invocation_conversion_p): New
19587
        functions.
19588
        (build_string_concatenation): Don't resolve StringBuffer.
19589
        (patch_cast): Fixed inverted arguments.
19590
        (patch_array_ref): Code to save array expr deleted. Call
19591
        valid_cast_to_p instead of can_cast_to_p.
19592
        (generate_labeled_block): Call generate_name.
19593
        (build_jump_to_finally, build_try_statement, java_get_catch_block,
19594
        patch_try_statement): New functions.
19595
        * typeck.c (match_java_method): Function deleted.
19596
 
19597
1998-10-02  Anthony Green  
19598
 
19599
        * jvspec.c: jvgenmain_spec uses different temporary file names.
19600
 
19601
1998-10-02  Anthony Green  
19602
 
19603
        * jvspec.c (lang_specific_driver): Fail if user specifies
19604
        --main= when not linking.
19605
 
19606
1998-09-28  Tom Tromey  
19607
 
19608
        * class.c (make_class_data): Push value for `thread' field.
19609
        * decl.c (init_decl_processing): Added `thread' field to class.
19610
 
19611
        * class.c (add_field): Always make static fields externally
19612
        visible.
19613
 
19614
1998-09-26  Anthony Green  
19615
 
19616
        * expr.c (build_java_athrow,
19617
        build_java_throw_out_of_bounds_exception, expand_invoke,
19618
        build_newarray, expand_java_multianewarray, build_java_monitor):
19619
        Update comments to reflect _Jv_* function names.
19620
 
19621
1998-09-25  Per Bothner  
19622
 
19623
        * decl.c (complete_start_java_method):  DECL_RESULT is always promoted.
19624
        * decl.c (start_java_method):  Handle PROMOTE_PROTOTYPES target macro.
19625
        * parse.y (expand_start_java_method):  Likewise.
19626
 
19627
1998-09-24  Per Bothner  
19628
 
19629
        * expr.c (pop_arguments):  Handle PROMOTE_PROTOTYPES target macro.
19630
 
19631
        * class.c (push_class):  IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
19632
        (add_field):  No longer need to convert from RECORD_TYPE to pointer,
19633
        * expr.c:  Remove no-longer-needed calls to promote_type.
19634
        * decl.c (give_name_to_locals):  Liekwise.
19635
        * jcf-parse.c (get_class_constant):  Compensate for new signatures.
19636
        * parse.y:  Add/remove promote_type calls as appropriate.
19637
        * typeck.c (parse_signature_type):  Returns POINTER_TYPE for objects.
19638
        (parse_signature_string):  Likewise.
19639
        (build_java_array_type):  Fix for now signature convenions.
19640
 
19641
        * lex.c (java_lex):  Fix (from Alex) for JC1_LITE problem.
19642
 
19643
1998-09-23  Tom Tromey  
19644
 
19645
        * class.c (init_class_processing): libjava function renamed to
19646
        _Jv_RegisterClass.
19647
 
19648
1998-09-22  Alexandre Petit-Bianco  
19649
 
19650
        * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
19651
        * java-tree.def: Fixed DEFTREECODE third argument.
19652
        (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
19653
        CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
19654
        * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
19655
        (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19656
        JAVA_THIS_EXPR): Now replaced by tree code definitions.
19657
        (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
19658
        * lang.c (java_tree_code_type, java_tree_code_length,
19659
        java_tree_code_name): New arrays.
19660
        (lang_init): Append Java tree node definitions to Gcc ones.
19661
        * lex.c (expression_obstack): Declared as extern when JC1_LITE
19662
        defined.
19663
        (java_init_lex): Initialize wfl_append, wfl_string_buffer,
19664
        wfl_to_string.
19665
        (java_lex): Allow declaration of empty string constants. Retain
19666
        location information on CASE_TK and DEFAULT_TK.
19667
        * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
19668
        JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
19669
        Modified to be more robust.
19670
        (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
19671
        (build_new_invocation, try_builtin_assignconv,
19672
        patch_switch_statement, string_constant_concatenation,
19673
        build_string_concatenation, patch_string_cst, patch_string,
19674
        java_expand_switch): New function declarations.
19675
        * parse.y: Rules related to switch and EH tagged .
19676
        (label_id): Set to NULL_TREE
19677
        (wfl_string_buffer, wfl_append, wfl_to_string): New static global
19678
        tree nodes.
19679
        (this_or_super:): Fixed indentation.
19680
        (statement:, statement_nsi:, statement_without_trailing_substatement:,
19681
        statement_expression:): Removed call to RULE on all sub-rules.
19682
        (switch_expression:, switch_labels:): New rules.
19683
        (switch_statement:, switch_block:, switch_block_statement_groups:,
19684
        switch_block_statement_group:, switch_labels:, switch_label:):
19685
        Defined actions.
19686
        (throw_statement:, synchronized_statement:, try_statement:):
19687
        Defined temporary actions.
19688
        (class_instance_creation_expression:): Call
19689
        build_new_invocation. Fixed indentation.
19690
        (field_access): Fixed indentation.
19691
        (method_invocation): Likewise.
19692
        (make_qualified_primary): Use THIS_EXPR.
19693
        (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
19694
        resolving from SUPER, set *type_found.
19695
        (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
19696
        (java_complete_tree): Removed unused local variable `location'. Case
19697
        for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
19698
        NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
19699
        on MODIFY_EXPR: and all binary operator tree code cases. Removed
19700
        STRING_CST: case. default: checks for patchable strings.
19701
        (complete_function_arguments): Transform string constant or
19702
        crafted StringBuffer if necessary.
19703
        (build_method_invocation): Fixed comments.
19704
        (build_new_invocation): New function.
19705
        (patch_assignment): Call try_builtin_assignconv to figure a valid
19706
        assignment conversion between builtin types.
19707
        (try_builtin_assignconv): New function.
19708
        (build_binop): Use URSHIFT_EXPR directly to call build.
19709
        (operator_string): Use UNARY_PLUS_EXPR.
19710
        (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
19711
        operator.
19712
        (do_merge_string_cste, merge_string_cste,
19713
        string_constant_concatenation, build_string_concatenation,
19714
        patch_string, patch_string_cst): New function.
19715
        (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
19716
        (patch_unaryop): Likewise. New test of valid ++/-- operands.
19717
        (build_newarray_node): Use NEW_ARRAY_EXPR.
19718
        (build_this): Use THIS_EXPR.
19719
        (build_return): Enable debug information on return statement.
19720
        (build_if_else_statement): Likewise.
19721
        (complete_labeled_statement): Fixed related comment.
19722
        (build_loop_body): Fixed comment.
19723
        (build_bc_statement): Enable debug information on break/continue
19724
        statements.
19725
        (patch_bc_statement): Fixed typos. Handle SWITCH statement
19726
        context.
19727
        (patch_switch_statement, case_identity, java_expand_switch): New
19728
        functions.
19729
 
19730
1998-09-21  Per Bothner  
19731
 
19732
        * buffer.h (BUFFER_INIT):  New macro.
19733
        * jcf-write.c (struct jcf_partial):  New type.  Put global stuff here.
19734
        Pass (struct jcf_partial *state) to most functions.
19735
        (jcf_block, jcf_relocation):  New types.
19736
        Support labels, branches, conditionals, loops.
19737
 
19738
1998-09-21  Tom Tromey  
19739
 
19740
        * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
19741
 
19742
1998-09-21  Per Bothner  
19743
 
19744
        * decl.c (integer_type_node):  Make it have INT_TYPE_SIZE.
19745
        * verify.c (verify_jvm_instructions):  Use int_type_not (32 bits),
19746
        not integer_type_node (INT_TYPE_SIZ bits).
19747
 
19748
        * parse.y (patch_if_else_statement):  Accept promoted_boolean_type_node.
19749
 
19750
        * jcf-reader.c (get_attribute):  New HANDLE_EXCEPTION_TABLE hook.
19751
        * jcf-dump.c (print_exception_table):  New function.
19752
        (disassemble_method):  Better handling of wide instructions.
19753
        Make more robust for bad input.
19754
 
19755
1998-09-30  Jeffrey A Law  (law@cygnus.com)
19756
 
19757
        * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
19758
        FreeBSD.
19759
 
19760
1998-09-17  Jeffrey A Law  (law@cygnus.com)
19761
 
19762
        * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
19763
 
19764
1998-09-17  Tom Tromey  
19765
 
19766
        * Makefile.in ($(PARSE_H)): Removed target.
19767
 
19768
1998-09-17  Jeffrey A Law  (law@cygnus.com)
19769
 
19770
        * Makefile.in (JAVA_OBJS): Add memmove.o
19771
        (memmove.o): New target & rules.
19772
 
19773
1998-09-15  Tom Tromey  
19774
 
19775
        * expr.c (expand_invoke): Don't generate a call to the class init
19776
        code.
19777
 
19778
1998-09-14  Jeffrey A Law  (law@cygnus.com)
19779
 
19780
        * Makefile.in: Add many missing dependencies.
19781
        * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
19782
        as appropriate.
19783
        * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
19784
        * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
19785
 
19786
1998-09-11  Per Bothner  
19787
 
19788
        * decl.c (complete_start_java_method):  If method is static (and
19789
        not private) call _Jv_InitClass.
19790
        * expr.c (expand_invoke):  Don't call build_class_init.
19791
 
19792
        * jvspec.c (jvgenmain_spec):  Fix spec for generated .o file.
19793
 
19794
1998-09-10  Jeffrey A Law  (law@cygnus.com)
19795
 
19796
        * Make-lang.in (GCJ): Define before using.
19797
 
19798
1998-09-09  Jeffrey A Law  (law@cygnus.com)
19799
 
19800
        * gjavah.c (java_no_argument): Renamed from no_argument to avoid
19801
        losing due to namespace pollution in GNU getopt.h
19802
 
19803
1998-09-09  Tom Tromey  
19804
 
19805
        * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
19806
        (java.all.cross): Likewise.
19807
        (java.rest.encap): Likewise.
19808
 
19809
1998-09-08  Jeffrey A Law  (law@cygnus.com)
19810
 
19811
        * gjavah.c (print_class_decls): Fix thinko in arglist
19812
        * jcv-io.c (find_classfile): Similarly.
19813
 
19814
1998-09-07  Jeffrey A Law  (law@cygnus.com)
19815
 
19816
        * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
19817
 
19818
1998-09-05  Tom Tromey  
19819
 
19820
        * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
19821
        (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
19822
        * Makefile.in (PARSE_C): New macro.
19823
        (PARSE_H): Likewise.
19824
        (PARSE_SCAN_C): Likewise.
19825
        ($(PARSE_C)): Target renamed from parse.c.
19826
        ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
19827
        (clean): Remove parse-scan.c as well.
19828
        (parse.o): Depend on $(PARSE_C).
19829
 
19830
1998-09-05  Anthony Green  
19831
 
19832
        * README, license.terms: Removed.
19833
 
19834
        * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
19835
        decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
19836
        javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
19837
        jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
19838
        keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
19839
        lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
19840
        verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
19841
        and Java trademark attribution.
19842
 
19843
1998-09-04  Tom Tromey  
19844
 
19845
        * Makefile.in: Use gcjh, not gjavah.
19846
        * config-lang.in (stagestuff): Use gcjh, not gjavah.
19847
        * Make-lang.in: Changed gjavah to gcjh everywhere.
19848
 
19849
1998-09-03  Per Bothner  
19850
 
19851
        * gjavah.c:  Support new -prepend -add -append flags.
19852
        (print_method_info):  Method is not virtual if class is final.
19853
 
19854
1998-09-03  Alexandre Petit-Bianco  
19855
 
19856
        * jv-scan.c: Fixed copyright assignment.
19857
        * keyword.gperf: Likewise.
19858
        * keyword.h: Likewise.
19859
        * lex.c: Fixed copyright assignment.
19860
        (java_lex): Push unicode back when parsing '<'.
19861
        * lex.h: Fixed copyright assignment.
19862
        * parse-scan.y: Likewise.
19863
        * parse.h: Fixed copyright assignment.
19864
        (build_debugable_stmt, complete_for_loop): New function prototypes.
19865
        * parse.y: Fixed copyright assignment.
19866
        (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
19867
        size_zero_node when completing a loop with no exit condition.
19868
        (for_statement_nsi:): Define action.
19869
        (for_init:, for_update:): Return size_zero_node when empty.
19870
        (declare_local_variables): Call build_debugable_stmt.
19871
        (build_debugable_stmt): New function.
19872
        (build_loop_body): Build debugable statement around loop
19873
        condition part.
19874
        (complete_loop_body): Take into account the debugable statement
19875
        around the EXIT_EXPR.
19876
        (complete_loop_body): New function.
19877
        (patch_exit_expr): Fixed condition inversion.
19878
 
19879
1998-09-02  Tom Tromey  
19880
 
19881
        * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
19882
        name of thread define.
19883
        * jvspec.c (THREAD_NAME): New macro.
19884
        (GCLIB): Likewise.
19885
        (THREADLIB): Likewise.
19886
        (lang_specific_driver): Recognize attempt to link with thread
19887
        library or gc library.  Recognize -ljava on command line so it
19888
        isn't linked against more than once.
19889
 
19890
1998-09-02  Alexandre Petit-Bianco  
19891
 
19892
        * parse-scan.y (report_main_declaration): Name of the class
19893
        containing `main' can be a qualified name.
19894
 
19895
1998-08-31  Tom Tromey  
19896
 
19897
        * config-lang.in: Changed gjavac to gjc everywhere.
19898
        * Make-lang.in: Changed gjavac to gjc everywhere.
19899
 
19900
1998-08-27  Alexandre Petit-Bianco  
19901
 
19902
        * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
19903
        (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
19904
        and install the files.
19905
        * Makefile.in (JAVA_OBJS_LITE): New variable.
19906
        (compiler:): Now include jv-scan as a dependency.
19907
        (../jv-scan$(exeext), parse-scan.c): New targets.
19908
        (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
19909
        * config-lang.in (compilers): Removed gcj, gjavah from the list.
19910
        * jcf-parse.c (parse_source_file): Call java_layout_classes and
19911
        check for errors even if parse_only.
19912
        * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
19913
        defined.
19914
        (yylex): New function. Uses java_lex body.
19915
        (java_lex): Removed commented out statement. Remove local variable
19916
        literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
19917
        appropriate.  Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
19918
        DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
19919
        SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
19920
        if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
19921
        SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
19922
        where appropriate.
19923
        (java_lex_error): Empty if JC1_LITE is defined.
19924
        (java_get_line_col): Return 0 if JC1_LITE is defined.
19925
        * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
19926
        SET_MODIFIER_CTX): Moved into the section containing the macros
19927
        conditionally defined by JC1_LITE.
19928
        (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
19929
        argument if JC1_LITE is defined.
19930
        (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
19931
        REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
19932
        is defined.
19933
        (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
19934
        FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
19935
        SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
19936
        to different values according to JC1_LITE.
19937
        * parse.h (int_fits_type_p, stabilize_reference): Prototype not
19938
        declared if JC1_LITE set.
19939
        (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
19940
        defined if JC1_LITE not set.
19941
        (struct parser_ctx): Reorganized and skip the jc1 front end part
19942
        if JC1_LITE set.
19943
        (java_layout_classes): New function definition.
19944
        (java_push_parser_context, java_init_lex, yyparse, yylex,
19945
        yyerror): Prototype always declared. All other static function
19946
        prototypes declared only if JC1_LITE is not set.
19947
        * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
19948
        declared in parse.h.
19949
        (java_layout_classes): New function.
19950
        (java_complete_expand_methods): No longer layout the class here.
19951
        * parse-scan.y: New file.
19952
        * jv-scan.c: New file.
19953
 
19954
1998-08-25  Tom Tromey  
19955
 
19956
        * gjavah.c (main): Handle -friend option.
19957
        (friend_specs): New global.
19958
        (generate_access): Handle friend_specs.
19959
        (process_file): Likewise.
19960
        (MAX_FRIENDS): New macro.
19961
        (friend_count): New global.
19962
        (print_cxx_classname): Added `prefix' argument.  Ignore arrays.
19963
        Changed all callers.
19964
 
19965
1998-08-24  Per Bothner  
19966
 
19967
        * jcf-dump.c (process_class):  Move JCF_FINISH use to main,
19968
        (main):  Handle processing all the entries of a named .zip archive.
19969
        * jcf-io.c (jcf_trim_old_input):  New function.
19970
        * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le):  New macros.
19971
 
19972
1998-08-24  Per Bothner  
19973
 
19974
        * lang.c (flag_assume_compiled):  Make default be on.
19975
 
19976
1998-08-21  Per Bothner  
19977
 
19978
        * jcf-dump.c:  Add bunches of flags to control output more.
19979
        (process_class):  New function;  support printing more than one class.
19980
        (main): Support new --print-main and --javap flags.
19981
        * jcf-reader.c (IGNORE_ATTRIBUTE):  New hook.
19982
        * jcf.h (CPOOL_INDEX_IN_RANGE):  New macro.
19983
 
19984
1998-08-20  Per Bothner  
19985
 
19986
        Change mangling of dispatch table to match C++ vtable (w/thunks).
19987
        * class.c (build_dtable_decl), java-tree.h:  New function.
19988
        (make_class_data):  Call it.
19989
        * decl.c (init_decl_processing):  Likewise.
19990
 
19991
1998-08-19  Warren Levy  
19992
 
19993
        * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
19994
        soft_anewarray; adjust args passed.
19995
        * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
19996
        match _Jv_NewObjectArray.
19997
 
19998
1998-08-19  Alexandre Petit-Bianco  
19999
 
20000
        * decl.c (push_labeled_block, pop_labeled_block): New functions.
20001
        * expr.c (loopup_label): Call create_label_decl.
20002
        (create_label_decl): New function.
20003
        (java_lang_expand_expr): Call expand_start_bindings with argument
20004
        set to zero.
20005
        * java-tree.h Added space after PROTO in function declarations
20006
        when necessary.
20007
        (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
20008
        (create_label_decl, push_labeled_block): New function
20009
        declarations.
20010
        * lex.c (label_id): Initialize.
20011
        (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
20012
        switch.
20013
        * parse.h Added space after PROTO in function declarations when
20014
        necessary.
20015
        (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
20016
        LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
20017
        LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
20018
        PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
20019
        macros.
20020
        (struct parser_ctxt): New fields current_loop,
20021
        current_labeled_block.
20022
        (build_if_else_statement, patch_if_else_statement,
20023
        add_stmt_to_compound, patch_exit_expr, build_labeled_block,
20024
        generate_labeled_block, complete_labeled_statement,
20025
        build_bc_statement, patch_bc_statement, patch_loop_statement,
20026
        build_new_loop, build_loop_body, complete_loop_body): New function
20027
        declarations.
20028
        * parse.y (java_warning_count): New global variable.
20029
        (label_id): New static variable.
20030
        (BREAK_TK, CONTINUE_TK): Token tagged .
20031
        (block:): Return size_zero_node when block is empty.
20032
        (empty_statement:): Return size_zero_node.
20033
        (statement:): Implement supplemental action when for_statement: is
20034
        reduced.
20035
        (label_decl:): New rule.
20036
        (labeled_statement:): Rewritten using label_decl. Actions
20037
        implemented.
20038
        (labeled_statement_nsi:): Likewise.
20039
        (if_then_statement): Actions implemented.
20040
        (while_expression): New rule.
20041
        (while_statement:): Rewritten using while_expression. Actions
20042
        implemented.
20043
        (while_statement_nsi:): Likewise.
20044
        (do_statement_begin:): New rule.
20045
        (do_statement:): Rewritten using do_statement_begin. Actions
20046
        implemented.
20047
        (for_statement:): Rewritten using for_begin. Actions implemented.
20048
        (for_statement_nsi:): Likewise.
20049
        (for_header:, for_begin:): New rules.
20050
        (for_init:): Actions implemented.
20051
        (statement_expression_list:, break_statement:,
20052
        continue_statement:): Likewise.
20053
        (yyerror): Count number of issued warning(s).
20054
        (java_report_errors): Report error(s) and/or warning(s).
20055
        (java_complete_class): Use build_java_argument_signature to
20056
        recompute completed method signature.
20057
        (java_check_regular_methods): New locals method_wfl and aflags.
20058
        Use method_wfl instead of lookup_cl during error reports. Fixed
20059
        indentation and modified some error messages. Use
20060
        lang_printable_name in method instead of the DECL_NAME. New code
20061
        to issue warnings on methods not overriding corresponding methods
20062
        private to a different package.
20063
        (java_method_add_stmt): Call add_stmt_to_compound.
20064
        (add_stmt_to_compound): New function.
20065
        (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
20066
        LOOP_EXPR, EXIT_EXPR and COND_EXPR.
20067
        (build_if_else_statement, patch_if_else_statement,
20068
        build_labeled_block, generate_labeled_block,
20069
        complete_labeled_statement, build_new_loop, build_loop_body,
20070
        complete_loop_body, patch_loop_statement, build_bc_statement,
20071
        patch_bc_statement, patch_exit_expr): New functions.
20072
        * typeck.c (build_java_signature): Build argument signature before
20073
        enclosing it in between parenthesis.
20074
 
20075
1998-08-17  Warren Levy  
20076
 
20077
        * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
20078
        (JAVA_OBJS): Added reminder comment
20079
 
20080
1998-08-13  Nick Clifton  
20081
 
20082
        * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
20083
        be interpreted as a long long.
20084
 
20085
1998-08-13  Warren Levy  
20086
 
20087
        * decl.c (init_decl_processing): Use _Jv_InitClass, not
20088
        soft_initialise_class.  Use _Jv_NewMultiArray, not
20089
        soft_multianewarray.  Use _Jv_ThrowBadArrayIndex, not
20090
        soft_badarrayindex.  Use _Jv_CheckCast, not soft_checkcast.  Use
20091
        _Jv_CheckArrayStore, not soft_checkarraystore.  Use
20092
        _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
20093
 
20094
1998-08-12  Per Bothner  
20095
 
20096
        * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
20097
        length_identifier_node):  New global tree node constants.
20098
        * parse.y (kw_super, kw_this, kw_length):  Removed globals.
20099
        Replace uses by super_identifier_node etc.
20100
        * lex.c (kw_super, kw_this, kw_length):  Don't initialize.
20101
 
20102
        * parse.y (resolve_field_access):  Don't special-case ".length" if
20103
        flag_emit_class_files.
20104
        (patch_array_ref):  Leave as ARRAY_REF if flag_emit_class_files.
20105
        * jcf-write.c (generate_bytecode_insns):  Handle ARRAY_REF opcode
20106
        and ARRAY.length.
20107
 
20108
1998-08-11  Per Bothner  
20109
 
20110
        * decl.c (init_decl_processing): Remove unused method_type_node fields.
20111
        * class.c (make_method_value):  Remove init for removed fields.
20112
 
20113
        * class.c (layout_class):  Use build_java_argument_signature.
20114
        * java-tree.h (TYPE_ARGUMENT_SIGNATURE):  New macro.
20115
 
20116
        * typeck.c (push_java_argument_signature):  Removed.  Merged into ...
20117
        (build_java_argument_signature):  Use TYPE_ARGUMENT_SIGNATURE cache.
20118
        (build_java_signature):  Don't use push_java_argument_signature.
20119
 
20120
        * typeck.c (lookup_argument_method):  New function.
20121
        * parse.y (java_check_regular_methods):  Use lookup_argument_method
20122
        instead of lookup_java_method2 followed by lookup_java_method.
20123
 
20124
        * parse.y (check_method_redefinition):  Minor optimization.
20125
 
20126
        * jcf-write.c (generate_bytecode_insns):  Handle RETURN_EXPR,
20127
        MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
20128
 
20129
1998-08-10  Tom Tromey  
20130
 
20131
        * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
20132
        c-pragma.o.
20133
 
20134
        * gjavah.c (java_float_finite): Use K&R-style definition.
20135
        (java_double_finite): Likewise.
20136
        (generate_access): Now returns void.  Changed all callers.
20137
        (last_access_generated): Removed.
20138
        (process_file): Only make a single pass over the .class file.
20139
 
20140
1998-07-29  Per Bothner  
20141
 
20142
        * class.c (get_dispatch_table):  Add extra dummy vtable entry,
20143
        for compatibility for G++ (with -fvtable-thunks).
20144
        * expr.c (build_invokevirtual):  Add one for extra dummy vtable entry.
20145
 
20146
        * gjavah.c (process_file):  Use public inheritance for super-class.
20147
 
20148
1998-07-29  Alexandre Petit-Bianco  
20149
 
20150
        * lex.c (java_init_lex): Initialize ctxp->package.
20151
        * parse.h (struct parser_ctxt): package and package_len replaced
20152
        by tree package, an identifier node. Field method_decl_list is
20153
        gone. Fixed comments.
20154
        (lookup_field_wrapper, merge_qualified_name, not_accessible,
20155
        class_in_current_package): New function prototypes.
20156
        * parse.y (array_type:): Set class loaded flag on primitive type
20157
        arrays.
20158
        (package_declaration:): Assign ctxp->package to the
20159
        identifier node.
20160
        (method_invocation:): Handle invocation of method qualified by
20161
        `super'.
20162
        (single_type_import_declaration:): Removed ambiguity check.
20163
        (java_pop_parser_context): New local variable `next'. Reset and
20164
        set IMPORT_CLASSFILE_NAME flags on current and previous import
20165
        list.
20166
        (java_accstring_lookup): Use new local macro COPY_RETURN.
20167
        (lookup_field_wrapper): New function.
20168
        (parser_qualified_classname): Use merge_qualified_name.
20169
        (parser_check_super_interface): Broaden error message.
20170
        (do_resolve_class): Check for qualified class name in the current
20171
        compilation unit if appropriate.
20172
        (process_imports): Check for already defined classes.
20173
        (check_pkg_class_access): Got rid of call to
20174
        get_access_flags_from_decl.
20175
        (java_complete_expand_methods): Call safe_layout_class based on
20176
        the current class size.
20177
        (make_qualified_primary): Build a WFL qualification on primary if
20178
        none exists.
20179
        (merge_qualified_name): New function.
20180
        (make_qualified_name): Use merge_qualified_name.
20181
        (resolve_expression_name): Use safe_lookup_field.
20182
        (resolve_field_access): Got rid of call to get_access_flags_from_decl.
20183
        (resolve_qualified_expression_name): Likewise. Check on resolved
20184
        element accessibility.
20185
        (not_accessible_p, class_in_current_package): New functions.
20186
        (maybe_access_field): Got rid of call to get_access_flags_from_decl.
20187
        (patch_method_invocation_stmt): Merged common pieces. Check
20188
        accessibility of invoked method.
20189
        (check_for_static_method_reference): Add returned type in error
20190
        message.
20191
        (invocation_mode): Get rid of bogus check on PRIVATE methods.
20192
        (refine_accessible_methods_list): Merged two conditions in test.
20193
        (java_complete_class): Sanity check on stabilize_ref gone.
20194
        * zextract.c (read_zip_archive): Cast lseek second argument to long.
20195
 
20196
1998-07-28  Per Bothner  
20197
 
20198
        * class.c (hashUtf8String):  Fix - use new JavaSoft specification.
20199
 
20200
1998-07-24  Tom Tromey  
20201
 
20202
        * gjavah.c (F_NAN): Removed.
20203
        (F_NAN_MASK): New macro.
20204
        (F_POSITIVE_INFINITY): Removed.
20205
        (F_NEGATIVE_INFINITY): Likewise.
20206
        (java_float_finite): Rewrote.
20207
        (D_NAN_MASK): Renamed.
20208
        (java_double_finite): Rewrote.
20209
        (D_POSITIVE_INFINITY): Removed.
20210
        (D_NEGATIVE_INFINITY): Likewise.
20211
 
20212
        * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
20213
        If verbose, print underlying representation of value in hex.
20214
 
20215
1998-07-24  Per Bothner  
20216
 
20217
        * buffer.h, buffer.c:  New files.
20218
        * Makefile.in (JAVA_OBJS):  Add buffer.o.
20219
 
20220
        Support locals variables and writing their debug entries to .class.
20221
        * jcf-write.c:  Simplify some by user new buffer type.
20222
        (vode_buffer_grow):  Removed.
20223
        (struct localvar_info):  New type.
20224
        (localsvars, localvartable):  New buffers.
20225
        (localvar_alloc, localvar_free):  New functions.
20226
        (generate_bytecode_insns):  Handle local variables.
20227
        (generate_classfile):  Write LocalVariableTable attribute.
20228
 
20229
1998-07-24  Alexandre Petit-Bianco  
20230
 
20231
        * jcf-io.c (open_in_zip): Check the zipfile magic number.
20232
        * zipfile.h (ZIPMAGIC): New macro.
20233
 
20234
1998-07-24  Tom Tromey  
20235
 
20236
        * Makefile.in (gjavah.o): Updated dependencies.
20237
        (jcf-dump.o): Likewise.
20238
        (all.indirect): Use ../gjavah.
20239
        (../gjavah$(exeext)): Likewise.
20240
        (clean): Don't remove gjavah.
20241
        (clean): Remove parse.c, not java/parse.c.
20242
        * Make-lang.in (java): Added gjavah.
20243
        (gjavah$(exeext)): New target.
20244
        (GJAVAH_SOURCES): New macro.
20245
        (java.all.build): Added gjavah.
20246
        (java.all.cross): Likewise.
20247
        (java.rest.encap): Likewise.
20248
        * config-lang.in (compilers, stagestuff): Added gjavah.
20249
 
20250
1998-07-23  Tom Tromey  
20251
 
20252
        * gjavah.c (java_float_finite): New function.
20253
        (java_double_finite): Likewise.
20254
        (F_POSITIVE_INFINITY): New macro.
20255
        (F_NEGATIVE_INFINITY): Likewise.
20256
        (F_NAN): Likewise.
20257
        (D_POSITIVE_INFINITY): Likewise.
20258
        (D_NEGATIVE_INFINITY): Likewise.
20259
        (D_NAN): Likewise.
20260
        (print_field_info): Use java_float_finite and java_double_finite.
20261
 
20262
1998-07-23  Per Bothner  
20263
 
20264
        * parse.y (method_header):  Name "this" implicit argument.
20265
 
20266
1998-07-22  Per Bothner  
20267
 
20268
        * jcf-write.c:  Write out LineNumberTable attribute in .class file.
20269
        (linenumber_buffer, linenumber_ptr, linenumber_limit):  New statics.
20270
        (put_linenumber):  New function.
20271
        (generate_bytecode_insns, generate_classfile):  Write line numbers.
20272
 
20273
1998-07-22  Alexandre Petit-Bianco  
20274
 
20275
        * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
20276
        (lookup_name, build_known_method_ref, build_class_init,
20277
        build_invokevirtual, invoke_build_dtable, match_java_method,
20278
        build_field_ref, pushdecl_force_head, build_java_binop,
20279
        binary_numeric_promotion, build_decl_no_layout,
20280
        build_java_arrayaccess, build_newarray, build_anewarray,
20281
        build_java_array_length_access, build_java_arraynull_check): New
20282
        extern function prototypes.
20283
        (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
20284
        JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
20285
        java-tree.h.
20286
        * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
20287
        to NULL
20288
        * jcf.h (jcf_out_of_synch): New extern function prototype.
20289
        * parse.h: Static/global function implemented in parse.y
20290
        prototyped and declarations moved at the end of the file.
20291
        (DECL_P): Check that the argument isn't null.
20292
        (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
20293
        JAVA_THIS_EXPR): No longer defined here. See java-tree.h
20294
        (QUAL_DECL_TYPE): New macro.
20295
        (PARAMS): Macro definition removed.
20296
        * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
20297
        (return_statement:): Call build_return.
20298
        (field_access:): Call make_qualified_primary in sub rule.
20299
        (method_invocation:): Build method invocation and call
20300
        make_qualified_primary when processing primaries.
20301
        (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
20302
        get_type_from_signature.
20303
        (java_check_regular_method): Extra integer 0 argument when calling
20304
        lookup_java_method2.
20305
        (lookup_java_interface_method2): Extra method DECL argument when
20306
        calling lookup_java_interface_method2.
20307
        (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
20308
        COMPOUND_EXPR node.
20309
        (java_complete_expand_method): Layout current class iff not
20310
        already done. Don't process interface's methods.
20311
        (java_complete_expand_method): Use super class only if it
20312
        exists. Use current class otherwise.
20313
        (make_qualified_primary): New function.
20314
        (resolve_expression_name): Process qualified expression or
20315
        expression from primary the same way.
20316
        (resolve_expression_name): Two last arguments to
20317
        resolve_field_access are now NULL_TREEs.
20318
        (resolve_field_access): New variable is_static. Local field must
20319
        be DECLs. is_static computed on field DECLs only. Append code in
20320
        where_found to the field access if necessary. Use QUAL_DECL_TYPE
20321
        to initialize field_type.
20322
        (resolve_qualified_expression_name): New local variable,
20323
        previous_call_static and is_static. Handle primaries with function
20324
        calls, casts, array references and `this'. `super' now handled as
20325
        `(super_class)this'. Use is_static to clarify boolean expressions.
20326
        Added code to handle case where a proper handle is required to
20327
        access a field. Use QUAL_DECL_TYPE where applicable.
20328
        (maybe_access_field): New function.
20329
        (patch_method_invocation_stmt): New arguments primary, where,
20330
        is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
20331
        deleted. Use `where' as a type to search from if specified. Check
20332
        for static method reference where forbidden. Append primary or
20333
        current_this to the argument list if not calling constructor nor
20334
        static methods.
20335
        (check_for_static_method_reference): New function.
20336
        (patch_invoke): Layout the class on which new is done if
20337
        necessary.
20338
        (lookup_method_invoke): Changed format to report errors on
20339
        methods.
20340
        (qualify_ambiguous_name): New local variable this_found. Now
20341
        handle things from primaries. Method call are considered
20342
        expression names.
20343
        (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
20344
        changed into NULLs.
20345
        (not_initialized_as_it_should_p): Comply with the new DECL_P.
20346
        (java_complete_tree): New case fo RETURN_EXPR. Process function
20347
        call arguments in separate function.
20348
        (complete_function_arguments): New function.
20349
        (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
20350
        anymore.
20351
        (patch_assignment): Take the return function slot into account as
20352
        a RHS. Distinguish assignment from a return.
20353
        (valid_ref_assignconv_cast_p): Use build_java_argument_signature
20354
        when checking methods in interfaces.
20355
        (resolve_type_during_patch): NULL argument to unresolve_type_p
20356
        instead of NULL_TREE.
20357
        (patch_newarray): Fixed typo in comment.
20358
        (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
20359
        (build_return, patch_return): New functions.
20360
        * typeck.c (lookup_java_constructor): Fixed typo in comment.
20361
 
20362
1998-07-21  Per Bothner  
20363
 
20364
        * constants.c (find_name_and_type_constant, find_fieldref_index,
20365
        find_methodref_index):  New methods.
20366
        * expr.c (build_invoke_non_interface):  If flag_emit_class_files,
20367
        just return given method.  Also, rename to build_known_method_ref.
20368
        (expand_invoke):  Rename call to build_invoke_non_interface.
20369
        * java-tree.h, parse.h:  Update prototype.
20370
        * parse.y, decl.c, jcf-parse.c:  Suppress calls to back-end functions
20371
        (such as expand_expr_stmt) if flag_emit_class_files.
20372
        * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
20373
        STACK_TARGET, IGNORE_TARGET):  New macros.
20374
        (code_buffer, code_ptr, code_limit, code_S, code_SP_max):  New globals.
20375
        (generate_bytecode_insn):  New function to generate method's bytecode.
20376
        (generate_classfile):  Node generate Code attribute for a method.
20377
        (code_buffer_grow, push_constant1, push_constant2, push_int_const,
20378
        push_long_const, field_op, adjust_typed_op, maybe_wide):
20379
        New functions used by generate_bytecode_insn.
20380
 
20381
        * typeck.c (signature_include_return):  Remove variable.
20382
        (push_java_argument_signature, build_java_argument_signature):  New.
20383
        (build_java_signature):  Use push_java_argument_signature.
20384
        * parse.y:  Use build_java_argument_signature instead of fiddling
20385
        with signature_include_return.
20386
 
20387
1998-07-17  Tom Tromey  
20388
 
20389
        * gjavah.c (print_c_decl): Always generate JArray<>* for array
20390
        types.
20391
 
20392
        * Makefile.in (all.indirect): Added gjavah$(exeext).
20393
        (gjavah$(exeext)): Added $(exeext).
20394
        (clean): Likewise.
20395
 
20396
1998-07-16  Alexandre Petit-Bianco  
20397
 
20398
        * class.c (layout_class): Call to java_layout_parsed_class replace
20399
        by safe_layout_class.
20400
        * expr.c (build_java_array_length_access): Removed static storage
20401
        class in the function definition.
20402
        (build_java_arraynull_check): Likewise.
20403
        Also fixed typos in two comments.
20404
        * lex.c (java_init_lex): Initialize static global kw_length.
20405
        (java_lex): Use BUILD_OPERATOR on RETURN_TK.
20406
        * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
20407
        java_lex_error.
20408
        (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
20409
        * parse.h (resolve_no_layout): New static function declaration.
20410
        (get_identifier_in_static): Declaration removed.
20411
        (java_layout_parsed_class): Function name declaration changed to
20412
        safe_layout_class.
20413
        (build_newarray_node, patch_newarray, resolve_type_during_patch,
20414
        not_initialized_as_it_should_p, build_this): New static function
20415
        declarations.
20416
        (pushdecl_force_head, build_java_binop, int_fits_type_p,
20417
        binary_numeric_promotion, stabilize_reference,
20418
        build_decl_no_layout, build_java_arrayaccess): Extern function
20419
        declarations moved into their own section.
20420
        (build_newarray, build_anewarray, build_java_array_length_access,
20421
        build_java_arraynull_check): New extern function declarations.
20422
        (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
20423
        (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
20424
        fake tree codes.
20425
        (CALL_CONSTRUCTOR_P): New macro.
20426
        * parse.y (kw_length): New static global tree node.
20427
        (return_statement): Tagged .
20428
        (RETURN_TK): Tagged .
20429
        (variable_declarator_id:): Build variable declaration with an
20430
        empty initialization value if a syntax error was found in the
20431
        initialization part of the variable declaration.
20432
        (statement_without_trailing_substatement:): return_statement: now
20433
        uses the default rule.
20434
        (return_statement:): Temporarily fixed to return NULL_TREE.
20435
        (primary_no_new_array:): Call build_this when THIS_TK was parsed.
20436
        (class_instance_creation_expression:): Class creation rules now
20437
        call build_method_invocation upon reduction.
20438
        (array_creation_expression:): Rules call build_newarray_node upon
20439
        reduction.
20440
        (dim_exprs:): Build a list of dimension expressions.
20441
        (dim_expr:): Store location of the OSB_TK in the dimension
20442
        expression node.
20443
        (method_invocation:): Added a new error rule.
20444
        (build_unresolved_array_type): WFL argument may also be an array
20445
        on a primitive type. Name of the argument changed to reflect this.
20446
        (method_declarator): Insert argument type at the beginning of the
20447
        argument type list and later reverse the list.
20448
        (unresolved_type_p): Argument 'returned' may be optionally
20449
        NULL_TREE.
20450
        (java_layout_class_from_source): Function renamed
20451
        safe_layout_class.
20452
        (resolve_and_layout): Now call resolve_no_layout and
20453
        safe_layout_class.
20454
        (resolve_no_layout): New function.
20455
        (purify_type_name): New function.
20456
        (complete_class_report_errors): Call purify_type_name during error
20457
        report on a type not found.
20458
        (process_imports): error_found local variable doesn't need to be
20459
        initialized to zero.
20460
        (declare_local_variables): New local type_wfl. Fixed typo in error
20461
        message. type_wfl assigned to unresolved type and used to register
20462
        incomplete type. Build a WFL around the variable initialization
20463
        statement so that debug info can be generated on it.
20464
        (source_start_java_method): Reverse argument list after they've
20465
        been processed.
20466
        (current_this): New static global variable.
20467
        (java_complete_expand_methods): Set current_this when appropriate.
20468
        (resolve_expression_name): Build correct static and non static
20469
        field access bearing a simple name.
20470
        (resolve_field_access): Resolve the length field of arrays. Handle
20471
        f.m() cases.
20472
        (patch_method_invocation_stmt): Set the type of the method
20473
        invocation to error_mark_node. This value is later overridden by a
20474
        valid type, if any. Don't handle qualified constructor invocation
20475
        as qualified method invocation. Call lookup_method_invoke with its
20476
        new flag. It's no longer necessary to access the selected method
20477
        as the value of a tree list. Handle constructor invocation.
20478
        (patch_invoke): Reverse argument list when invoking non interface
20479
        methods. Insert call to new as the first argument of the
20480
        constructor.
20481
        (invocation_mode): Return a INVOKE_STATIC is the invoked method is
20482
        defined within a final class. Return INVOKE_STATIC if the invoked
20483
        method is a constructor.
20484
        (lookup_method_invoke): New lc argument is a flag to indicate a
20485
        constructor lookup. Now handle constructor lookup. Choose the most
20486
        specific method in case several were matching the invocation
20487
        requirements. Return a method decl instead of a tree list featuring
20488
        one single method decl element.
20489
        (refine_accessible_methods_list): New lc flag argument to
20490
        indicate that a constructor is being looked up.
20491
        (not_initialized_as_it_should_p): New function.
20492
        (java_complete_tree): Now process fake tree codes
20493
        JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
20494
        save_expr on resolved function call arguments. Case on
20495
        UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
20496
        (patch_assignment): LHS can be a field access expression. When
20497
        dealing with reference, lhs_type is the promoted type of the
20498
        rhs_type, not the RHS. Use not_initialized_as_it_should_p where
20499
        applicable.
20500
        (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20501
        (patch_binop): Use not_initialized_as_it_should_p where
20502
        applicable.
20503
        (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20504
        (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
20505
        where applicable.
20506
        (resolve_type_during_patch): New function.
20507
        (patch_cast): Call resolve_type_during_patch to resolve type and
20508
        report error accordingly.
20509
        (patch_array_ref): Use not_initialized_as_it_should_p where
20510
        applicable. Array base expression is saved before being
20511
        used. Promote the type of an array elements if it contains non
20512
        builtin types.
20513
        (build_newarray_node, patch_newarray, build_this): New functions.
20514
 
20515
1998-07-16  Tom Tromey  
20516
 
20517
        * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
20518
        increment it in `for' statement.
20519
        (print_field_info): If number is inf or nan, don't print it.
20520
        (print_method_info): If method name is `delete', just ignore it.
20521
        (print_c_decl): Special-case jstringArray.
20522
 
20523
        * gjavah.c (help): New function.
20524
        (no_argument): New function.
20525
        (usage): Changed text.
20526
        (main): Rewrote argument handling.  Now handles -v, --help,
20527
        --version.
20528
        (version): New function.
20529
        (found_error): New global.
20530
        (main): Return found_error.
20531
        (generate_access): Set found_error.
20532
        (print_c_decl): Likewise.
20533
 
20534
1998-07-15  Tom Tromey  
20535
 
20536
        * gjavah.c (print_c_decl): Don't print "," when examining field.
20537
        Skip type name when looking at "[L" types.
20538
        (process_file): Now static.
20539
        (generate_access): Now returns int.
20540
        (last_access_generated): New global.
20541
        (process_file): Clear last_access_generated; make multiple passes
20542
        over the class.
20543
        (print_field_info): Just return if generate_access returns true.
20544
        (print_method_info): Likewise.  Also, allow  functions to
20545
        pass through.
20546
        (print_c_decl): Added is_init argument.  Print constructors
20547
        properly.
20548
        (print_cxx_classname): Use UTF8_GET to extract characters from
20549
        string.
20550
        (print_base_classname): New function.
20551
        (print_class_decls): New function.
20552
        (process_file): Use it.
20553
        (utf8_cmp): New function.
20554
 
20555
1998-07-13  Nick Clifton  
20556
 
20557
        * lang-options.h: Format changed to match changes in gcc/toplev.c
20558
        to implement a --help option.
20559
 
20560
1998-07-10  Brendan Kehoe  
20561
 
20562
        * decl.c (init_decl_processing): Revert change to dtable_type.
20563
 
20564
1998-07-09  Per Bothner  
20565
 
20566
        * java-tree.h (CLASS_P):  Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
20567
 
20568
1998-07-08  Brendan Kehoe  
20569
 
20570
        * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
20571
 
20572
        * lang.c (lang_init): Default flag_exceptions to 1, without
20573
        checking to see if it's 2 first.
20574
 
20575
1998-07-08  Jeffrey A Law  (law@cygnus.com)
20576
 
20577
        * constants.c: Include "system.h".
20578
        * decl.c: Likewise.
20579
        * lang.c (flag_new_exceptions): Get via extern now.
20580
        (lang_init_options): New functions.  Turn on flag_new_exceptions.
20581
 
20582
1998-07-07  Alexandre Petit-Bianco  
20583
 
20584
        * lex.c (java_lex): Return 0 when we see an invalid character in
20585
        the input.
20586
 
20587
        * lex.c (java_read_char): Specify extra argument when calling
20588
        java_lex_error.
20589
        (java_read_unicode, java_parse_end_comment,
20590
        java_parse_escape_sequence): Likewise,
20591
        (java_lex): Specify extra argument when calling
20592
        java_lex_error. Test that IDs are beginning with a legal character
20593
        for IDs. Handle invalid characters with an error message and a
20594
        call to java_lex_error.
20595
        (java_lex_error): Adjust column position by new argument
20596
        `forward'. Issue an error even if in the middle of reporting an
20597
        other error.
20598
 
20599
1998-07-07  Brendan Kehoe  
20600
 
20601
        * jcf-io.c (find_class): Zero out BUFFER before we use it, since
20602
        we don't explicitly put a null pointer when we're copying it.
20603
 
20604
1998-07-07  Tom Tromey  
20605
 
20606
        * gjavah.c (print_cxx_classname): New function.
20607
        (super_class_name): Likewise.
20608
        (print_super_fields): Removed.
20609
        (in_super): Removed.
20610
        (print_field_info): Never generate #defines.
20611
        (print_c_decl): Changed generated types to match JNI.  No longer
20612
        print class name before method name.
20613
        (print_method_info): Print "static" before static methods.
20614
        Print "virtual" before non-final methods.
20615
        (usage): Use exit(1), not exit(-1).
20616
        (main): Likewise.
20617
        (print_field_info): Use %.17g to print a double.
20618
        (last_access): New globals.
20619
        (process_file): Initialize last_access.
20620
        (usage): Now static.
20621
        (ACC_VISIBILITY): New define.
20622
        (generate_access): New function.
20623
        (print_field_info): Call it.
20624
        (print_method_info): Likewise.  Also, generate information for all
20625
        methods, not just native methods.  Return void.
20626
        (print_c_decl): Return void.
20627
        (print_field_info): Return void.
20628
 
20629
1998-07-02  Alexandre Petit-Bianco  
20630
 
20631
        * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
20632
        processing the jc1 grammar file. Prefix bison functions and
20633
        variables with java_.
20634
        (parse.c): Dependencies on parse.h and lex.h
20635
        * expr.c (build_java_arrayaccess): Function now global.
20636
        * java-tree.h: Comment reorganized to carry on previous
20637
        classification effort.
20638
        (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
20639
        RESOLVE_TYPE_NAME_P): New flags on WFLs.
20640
        * jcf-parse.c (parse_source_file): java_parse_source_file renamed
20641
        java_parse (new prefix java_ generated by bison).
20642
        (java_layout_parsed_class, java_register_parsed_class): Function
20643
        call removed.
20644
        (yyparse): Removed unnecessary call to init_outgoing_cpool.
20645
        * lex.c (static tree wfl_op): Variable deleted.
20646
        (java_init_lex): Initialize kw_super and kw_this. Initialize more
20647
        ctxp fields to NULL_TREE.
20648
        (java_lex): No longer create WFL for operators. Filename caching
20649
        mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
20650
        created as STRING_CST and later expanded. Removed extra argument
20651
        to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
20652
        and SUPER.
20653
        (build_wfl_node): Removed code in comments.
20654
        * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
20655
        store token and location data in the current bison token.
20656
        * parse.h: Removed pre-processor based symbol prefixes hack. Moved
20657
        static/extern function declaration at the beginning of the file.
20658
        (struct qualification): Data structure definition deleted.
20659
        (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
20660
        (qualify_ambiguous_name): Function declaration modified. Function
20661
        now returns nothing.
20662
        (build_array_ref, patch_array_ref, make_qualified_name,
20663
        resolve_qualified_expression_name, maybe_generate_clinit,
20664
        resolve_field_access): New static function declarations.
20665
        (build_java_arrayaccess): New extern function declaration.
20666
        (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
20667
        (CALL_EXPR_PRIMARY): Macro deleted.
20668
        (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
20669
        (struct parser_ctxt): Field initialized_final
20670
        removed. non_static_initialized, static_initialized: New fields.
20671
        * parse.y (static tree kw_super, static tree kw_this): New global
20672
        static.
20673
        (%union): tree wfl field of operator member replaced by int
20674
        location. WFLs are non longer created for operators.
20675
        (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged .
20676
        (qualified_name:): Now calls make_qualified_name to build the
20677
        identifier.
20678
        (type_declaration:): Consider generating  when class
20679
        parsing completed.
20680
        (variable_declarator:): Directly build an assignment node when the
20681
        variable is initialized when declared.
20682
        (this_or_super:): Build a WFL and set current location when THIS
20683
        or SUPER are parsed.
20684
        (expression_statement:): Wrap statement around a WFL.
20685
        (primary_no_new_array:): Fixed typo. Changed value returned by
20686
        THIS_TK because of its new type (temporary).
20687
        (dim_exprs:): Temporary fix because of OSB_TK's new type.
20688
        (field_access:): Build qualified name with SUPER.
20689
        (method_invocation:): Fixed returned value because of SUPER's new
20690
        type.
20691
        (array_access:): Use OSB_TK location information.
20692
        (post_increment_expression:, post_decrement_expression:,
20693
        unary_expression:, pre_increment_expression:,
20694
        pre_decrement_expression:, unary_expression_not_plus_minus:,
20695
        cast_expression:, multiplicative_expression:,
20696
        additive_expression:, shift_expression:, relational_expression:,
20697
        equality_expression:, and_expression:, exclusive_or_expression:,
20698
        inclusive_or_expression:, conditional_and_expression:,
20699
        conditional_or_expression:, assignment:): Use new location/token
20700
        information available on operators.
20701
        (create_class): Set super_decl_type to NULL_TREE when processing
20702
        java.lang.Object.
20703
        (register_fields): Field initialization is now a MODIFY_EXPR
20704
        node. Chain initialization code to the matching lists (according
20705
        to the field declaration modifiers).
20706
        (maybe_generate_clinit): New function.
20707
        (method_header): Don't set method's DECL_NAME to a WFL when adding
20708
        methods to java.lang.Object.
20709
        (resolve_and_layout): Now can return NULL_TREE if the type
20710
        resolution fails. Otherwise, return the class DECL instead of its
20711
        TYPE.
20712
        (check_method_redefinition): Don't patch method DECL_NAME if it
20713
        belongs to java.lang.Object.
20714
        (process_imports): Simply assign error_found to the value returned
20715
        by check_pkg_class_access.
20716
        (declare_local_variables): Don't use their init statements (if
20717
        any) when parsing error were previously found. Reuse MODIFY_EXPR
20718
        build during parsing as an init statement.
20719
        (java_method_add_stmt): Now return the current method body.
20720
        (java_layout_parsed_class, java_register_parsed_class): Functions
20721
        removed.
20722
        (java_complete_expand_methods): Initialize the constant pool on a
20723
        per class basis. Layout the classes before expanding their method
20724
        bodies. Don't try expand artificial constructor code if error were
20725
        found. Make the classes data and register them if no error were
20726
        found.
20727
        (java_complete_expand_method): Retrieve an artificial constructor
20728
        argument list before entering its body. Assign the top block to
20729
        the artificial constructor function body and set types of declared
20730
        blocks and compound statements to void. Walk method body if not an
20731
        artificial constructor.
20732
        (make_qualified_name, cut_identifier_in_qualified): New functions.
20733
        (resolve_expression_name): Fixed comments. Save/restore the
20734
        current class CLASS_LOADED_P flag value. Build non qualified
20735
        static field access and handle qualified expression names.
20736
        (resolve_field_access, resolve_qualified_expression_name): New
20737
        functions.
20738
        (patch_method_invocation_stmt): Use the new expression resolution
20739
        scheme, calling resolve_field_access when the function call is
20740
        resolved as an expression.
20741
        (qualify_ambiguous_name): Function rewritten to work on qualified
20742
        expression produced by make_qualified_name.
20743
        (java_complete_tree): Promote type when function's argument are
20744
        RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
20745
        the assignment to discover further errors if RHS is a expression
20746
        name that fails to evaluate. Declare LHS initialized even though
20747
        the assignment failed. Don't use the location variable and removed
20748
        extra argument in patch function calls. Now handle the ARRAY_REF
20749
        case and build internal string representation when STRING_CSTs are
20750
        walked.
20751
        (build_method_invocation): Don't wrap function call around a WFL.
20752
        (build_assignment): Likewise. Use the operator location
20753
        information.
20754
        (patch_assignment): Handle array access LHSs. Handle error
20755
        provenance, resulting in a better error report.
20756
        (build_binop): Use op_location from operator as binop location
20757
        information.
20758
        (build_unaryop, build_incdec, build_cast): Likewise.
20759
        (patch_binop): Extract location information from the node. Fixed
20760
        typo in error message.
20761
        (patch_unary_op): Extract location information from the node.
20762
        (build_array_ref, patch_array_ref): New functions.
20763
 
20764
1998-07-01  Tom Tromey  
20765
 
20766
        * expr.c (expand_java_INSTANCEOF): Changed calling convention to
20767
        match _Jv_IsInstanceOf.
20768
        * decl.c (init_decl_processing): Use _Jv_NewArray, not
20769
        soft_newarray.  Use _Jv_IsInstanceOf, not soft_instanceof.
20770
 
20771
1998-06-30  Tom Tromey  
20772
 
20773
        * decl.c (init_decl_processing): Functions are now named
20774
        _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
20775
 
20776
1998-06-29  Per Bothner  
20777
 
20778
        * java-tree.h (load_class):  Add prototype.
20779
        * class.c (is_compiled_class):  Add missing arg to load_class.
20780
        * expr.c (expand_java_NEW):  Call load_class.
20781
        * parse.y (process_import):  Removed bogus use of void return value.
20782
 
20783
1998-06-25  Per Bothner  
20784
 
20785
        * decl.c, java-tree.h (soft_athrow_node):  Renamed to soft_node.
20786
        Function name is "_Jv_Throw" instead of "soft_athrow".
20787
        * decl.c, java-tree.h (soft_new_node):  Renamed to alloc_object_node.
20788
        Function name is "_Jv_AllocObject" instead of "soft_new".
20789
        Takes an extra parameter (object size).
20790
        * expr.c:  Update calls.
20791
 
20792
1998-06-24  Per Bothner  
20793
 
20794
        * lex.c (java_get_line_col):  Handle end-of-file.
20795
        * except.c (expand_end_java_handler):  Handle null type (i.e. finally).
20796
 
20797
1998-06-24  Andrew MacLeod  
20798
 
20799
        * lang.c (lang_init): Make -fexceptions the default.
20800
        * except.c (maybe_start_try, maybe_end_try): Don't do anything if
20801
        exception handling is not turned on.
20802
 
20803
1998-06-23  Andrew MacLeod  
20804
 
20805
        * lang.c (flag_new_exceptions): Make this this default.
20806
        * decl.c (end_java_method): Call emit_handlers.
20807
        * except.c (method_init_exceptions): Set language code and version.
20808
        (expand_start_java_handler): Enable exception, and call
20809
        expand_eh_region_start.
20810
        (expand_end_java_handler): Enable exception, and set up catch blocks.
20811
        (emit_handlers): New routine to generate the saved handlers.
20812
        * java-except.h (emit_handlers): Add prototype.
20813
 
20814
1998-06-12  Per Bothner  
20815
 
20816
        We used to have three different representations of the constant pool:
20817
        the CPool structure, the tree_constant_pool, and the constructures
20818
        used to build the Class object (which may need class and string
20819
        constants) in compiled code.  None were appropriate for compiling
20820
        to .class files, so I did a major overhaul.
20821
 
20822
        First, the tree_constant_pool array was removed.  Things were
20823
        modified to the CPool structure in the JCF could be used.
20824
        Second, a "capacity" field was added to the CPool, and functions
20825
        written to search for a matching constant, adding one if not found.
20826
        The code that generated the Class object was changed to use a CPool.
20827
        The actual TREE_LISTs used to build the CONSTRUCTORs used for
20828
        the static Class object are now only in build_constants_constructor.
20829
        Finally, I wrote code which can generate a .class file (including its
20830
        constant pool) from the RECORD_TYPE of a class.  This is a big step
20831
        on the way to compiling Java source into .class files.
20832
 
20833
        * jcf-write.c:  New file. Writes out a RECORD_TYPE as a .class file.
20834
        * Makefile.in (JAVA_OBJS):  Added jcf-write.o.
20835
 
20836
        * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
20837
        CONSTANT_ResolvedString, CONSTANT_ResolvedClass):  New macros.
20838
        (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
20839
        COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
20840
        (COMPONENT_REF_CLASS):  Replaced by COMPONENT_REF_CLASS_INDEX.
20841
        (lang_type):  Removed constant_pool field.
20842
        * jcf.h (CPool):  Renamed size to count.  Added field capacity.
20843
        (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
20844
        CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT):  New macros.
20845
        Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
20846
 
20847
        * constants.c (current_constant_pool_tags, current_constant_pool_data,
20848
        current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
20849
        * constants.c (build_constants_constructor):  Use new outgoing_cpool.
20850
        (set_constant_entry, find_constant1, find_constant2,
20851
        find_class_constant, count_constant_pool_bytes, write_constant_pool,
20852
        find_utf8_constant, find_class_or_string_constant):  New functions.
20853
 
20854
        * jcf-parse.c (load_class):  Don't save/restore tree-constant_pool.
20855
        (get_constant):  Use current_jcf.cpool instead of tree_constant_pool.
20856
        (give_name_to_class, get_class_constant):  Likewise.
20857
        * jcf-parse.c, java-tree.h (tree_constant_pool):  Removed.
20858
        (get_name_and_type_constant, get_ref_constant):  Removed.
20859
        * parse.h (parser_ctxt):  Remove field tree_constant_pool.
20860
        * parse.y:  Don't save/restore tree_constant_pool.
20861
        * verify.c (verify_jvm_instructions):  Update for new approach.
20862
        * expr.c (expand_invoke, expand_java_field_op): Likewise.
20863
 
20864
        * lang-options.h:  Added -femit-class-file, -femit-class-files.
20865
        * lang.c (flag_emit_class_files), java-tree.h:  New flag.
20866
        (lang_f_options):  Added "emit-class-file(s)".
20867
 
20868
        * expr.c (build_java_arrayaccess):  Generate more efficient array
20869
        bounds checking, by using unsigned compare.
20870
 
20871
        * expr.c (expand_invoke):  Re-arrange error checks to make more robust.
20872
 
20873
1998-06-10  Alexandre Petit-Bianco  
20874
 
20875
        * parse.h: New comment on the handling of unresolved type
20876
        identifiers. JDEPs are now part of the jdep_code enum.
20877
        (typedef struct jdep): Now use enum jdep_code or int, depending on
20878
        availability. Both are narrowed down to an 8 bits bitfield.
20879
        (CALL_EXPR_PRIMARY): Fixed comment.
20880
 
20881
1998-06-10  Tom Tromey  
20882
 
20883
        * Make-lang.in (java): Added gjavac and jvgenmain.
20884
        (java.start.encap): Depend on gjavac.
20885
        (java.rest.encap): Depend on jvgenmain.
20886
 
20887
        * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
20888
        (JAVA_CROSS_NAME): Likewise.
20889
        (java.all.build): Depend on jvgenmain and gjavac.
20890
        (java.all.cross): Depend on jvgenmain and gjavac-cross.
20891
        (jvgenmain$(exeext)): New target.
20892
        (java.install-common): Wrote.
20893
        * config-lang.in (compilers, stagestuff): Added gjavac and
20894
        jvgenmain.
20895
 
20896
1998-06-10  Dave Brolley  
20897
 
20898
        * lang.c (lang_decode_option): New argc/argv interface.
20899
 
20900
1998-06-09  Alexandre Petit-Bianco  
20901
 
20902
        * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
20903
        * decl.c (build_decl_no_layout): New function.
20904
        * expr.c (java_lang_expand_expr): Layout declarations found in
20905
        blocks before they're pushed.
20906
        * jcf-parse.c (load_class): Save current line when parsing class
20907
        file.
20908
        (parse_source_file): Register class before expanding their
20909
        methods.
20910
        * lang.c (put_decl_node): Produce `null' when `void *' is
20911
        processed.
20912
        * lex.c (static tree wfl_op): New static global, for error report
20913
        on casts.
20914
        (java_init_lex): wfl_operator and wfl_op initialized
20915
        here. Filename caching added for wfl_op. Return wfl_op when `(' is
20916
        parsed.
20917
        * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
20918
        patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
20919
        build_unresolved_array_type): New static function definitions.
20920
        (build_decl_no_layout): New extern function declared.
20921
        (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
20922
        faulty modifier exists.
20923
        (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
20924
        (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
20925
        (UNARY_PLUS_EXPR): New fake operator.
20926
        (struct parser_ctxt): New field osb_number.
20927
        * parse.y (static tree wfl_operator): New static WFL for operator
20928
        bound error messages.
20929
        (DECR_TK, INCR_TK): Moved.
20930
        (OP_TK): Tagged .
20931
        (array_type:): Now call build_unresolved_array_type.
20932
        (dim_expr:): Count the number of '[' seen.
20933
        (post_increment_expression, post_decrement_expression,
20934
        pre_increment_expression, pre_decrement_expression,
20935
        unary_expression_not_plus_minus, unary_expression:): Actions are
20936
        now building the corresponding unary expressions.
20937
        (cast_expression:): Actions are now building cast expressions.
20938
        (build_unresolved_array_type): New function.
20939
        (create_interface): Reset the number of declared interfaces.
20940
        (create_class): Likewise.
20941
        (method_header): Methods declared within the scope of an interface
20942
        are now implicitly set public and abstract.
20943
        (java_complete_class): Variable's and parameter's type are patched
20944
        with a promoted type.
20945
        (declare_local_variables): Resolved non builtin types are promoted
20946
        before being used to build a variable decl. Removed type patch
20947
        posted on variable initialization statement.
20948
        (source_start_java_method): Use build_decl_no_layout to build the
20949
        decl of a parameter of incomplete type.
20950
        (java_register_parsed_class): Process interfaces too. Call
20951
        rest_of_decl_compilation on each processed class declarations.
20952
        (java_complete_expand_methods): Don't attempt to expand things in
20953
        interfaces.
20954
        (java_complete_tree): Process CONVERT_EXPR, even though it always
20955
        has a type. Propagate error_mark_node to node's type too. Promote
20956
        method's call argument type and return error_mark_node if
20957
        argument's completion didn't work. MODIFY_EXPR can have a WFL as a
20958
        RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
20959
        handle unary operator nodes.
20960
        (build_assignment): Added comment.
20961
        (print_int_node): New function.
20962
        (patch_assignment): New second argument. New error handling. Use
20963
        print_int_node. Handle references. Use can_cast_to_p to issue
20964
        different error message according to the context and check upon
20965
        the initialization of the RHS.
20966
        (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
20967
        (operator_string): Handle more operators.
20968
        (patch_binop): No longer use a function static
20969
        wfl_operator. Improved error message on shift distance.
20970
        (build_unaryop, build_incdec, build_cast, patch_unaryop,
20971
        patch_cast): New functions.
20972
 
20973
1998-06-05  Per Bothner  
20974
 
20975
        * jvspec.c:  New file.
20976
        * Make-lang.in:  New rules to build gjavac from jvspec.c and ../gcc.c.
20977
 
20978
        * java-tree.h (identifier_subst):  Add declaration.
20979
 
20980
1998-06-04  Tom Tromey  
20981
 
20982
        * jvgenmain.c (main): Generate call to JvRunMain.
20983
 
20984
        * class.c (make_class_data): Push value for "sync_info" field.
20985
        * decl.c (init_decl_processing): Push "sync_info" field.
20986
 
20987
1998-06-03  Per Bothner  
20988
 
20989
        * typeck.c (build_java_array_type):  Set TYPE_NAME to actual
20990
        Java (source) name, not signature.
20991
        Set TYPE_ALIGN to (at least) that of element_type.
20992
 
20993
1998-06-02  Per Bothner  
20994
 
20995
        * class.c:  Moved classname-mangling-rekated code to ...
20996
        * mangle.c:  ... this new file.
20997
        * jvgenmain.c:  New program (needs mangle.c) to generate main program.
20998
        * Makefile.in:  Update for above changes.
20999
 
21000
1998-06-01  Alexandre Petit-Bianco  
21001
 
21002
        * expr.c (truthvalue_conversion): Convert integer and floating
21003
        point value to their truth value.
21004
        * lex.c (java_lex): Handle the `null' literal.
21005
        * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
21006
        (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
21007
        ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
21008
        New macros.
21009
 
21010
        * parse.y: Reorganization/documentation on token declaration.
21011
        (binop_lookup[]): New added new tree codes.
21012
        (relational_expression): Build corresponding binary operators.
21013
        (equality_expression, conditional_and_expression,
21014
        conditional_or_expression): Likewise.
21015
        (java_complete_class): Fix crash in debug message.
21016
        (java_complete_tree): Check initialization of method call
21017
        arguments. Further bogus node evaluation to detect more error
21018
        during assignments. Handles more binary operators.
21019
        (patch_assignment): Use DECL_P.
21020
        (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
21021
        code.
21022
        (operator_string): Handle more case. Compacted source.
21023
        (patch_binop): Changed function comment. Checking for
21024
        uninitialized first operand takes the compound assignment into
21025
        account and uses DECL_P. Checking for uninitialized second operand
21026
        delayed to routine's end. Use macros to issue type bound error
21027
        messages and issue messages on both operands if their types are
21028
        different. Force fixed type into node. Handle all binary
21029
        operators.
21030
 
21031
1998-05-27  Alexandre Petit-Bianco  
21032
 
21033
        * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
21034
        * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
21035
        build operator node and return tokens.
21036
        * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
21037
        * parse.h (java_complete_tree): Changed returned type in prototype.
21038
        (build_method_invocation, build_assignment, patch_assignment,
21039
        patch_binop): New static function declarations.
21040
        (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
21041
        BUILD_EXPR_WFL): New macros.
21042
        * parse.y (enum tree_code binop_lookup[]): New static for token to
21043
        TREE_CODE lookup.
21044
        (%union): Parser union has new sub-structure `operator'.
21045
        (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
21046
        PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
21047
        ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
21048
        ASSIGN_ANY_TK): Tokens tagged `operator'.
21049
        (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
21050
        AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
21051
        MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
21052
        REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
21053
        (assignment_operator:): Rule tagged `operator'.
21054
        (expression_statement:): Re-installed default rule.
21055
        (method_invocation:): Sub rules call build_method_invocation.
21056
        (postfix_expression:): Don't attempt to resolve name here. Just
21057
        return an ID.
21058
        (multiplicative_expression:): Sub-rules build corresponding binop
21059
        expression node.
21060
        (additive_expression:, shift_expression:, and_expression:,
21061
        exclusive_or_expression:, inclusive_or_expression:): Likewise.
21062
        (assignment:): Sub rule invoke build_assignment.
21063
        (assignment_operator:): Default rules on sub rules.
21064
        (force_error): Added documentation on this variable.
21065
        (declare_local_variables): Build initialization calling
21066
        build_assignment.
21067
        (expand_start_java_method): Removed unused rtx declaration. Mark
21068
        arguments as already initialized.
21069
        (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
21070
        (java_complete_expand_methods): Don't process next method if
21071
        completion of the previous one triggered errors.
21072
        (java_complete_expand_method): Call source_end_java_method if no
21073
        error were found during completion.
21074
        (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
21075
        locals declaratilon. Handle names found within a class. Return
21076
        error_mark_node when things aren't found.
21077
        (patch_method_invocation_stmt): Return error_mark_node on failures.
21078
        (patch_invoke): Removed unused local. Return the correct node.
21079
        (java_complete_tree): Now returns a value. The BLOCK section binds
21080
        local identifiers and the type of a BLOCK is now void. Assign the
21081
        result of operand completion on COMPOUND_EXPR. Assign the
21082
        encapsulated node of a WFL to the result of its completion, except
21083
        when the node is an identifier. Now handle MODIFY_EXPR and several
21084
        binary operators. Return error_mark_node on errors.
21085
        (build_method_invocation, build_assignment, patch_assignment,
21086
        build_binop, operator_string, patch_binop): New functions.
21087
        * typeck.c (binary_numeric_promotion): New function.
21088
 
21089
1998-05-21  Per Bothner  
21090
 
21091
        * class.c (identifier_subst):  New convenience wrapper for ident_subst.
21092
        Replace most uses of ident_subst by identifier_subst.
21093
 
21094
        * class.c (push_class_static_dummy_field):  Removed function.
21095
        (build_class_ref):  Find Class object decl by looking up "CNAME.class",
21096
        instead of looking got "class" static field.  Create that decl here.
21097
        (class_identifier_node):  Removed;  no longer needed.
21098
        (init_class_processing):  Don't init class_identifier_node.
21099
        * jcf-parse.c (jcf_parse):  Don't call push_class_static_dummy_field.
21100
        Do nreverse 0 times (instead of twice) for Object and Class.
21101
        * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
21102
 
21103
1998-05-20  Per Bothner  
21104
 
21105
        * jcf-parse.c (parse_class-file):  Set lino to smallest line number,
21106
        while initializing linenumber_count and linenumber_table.
21107
        Do it before init_function_start (which calls emit_line_note).
21108
        * expr.c (expand_byte_code):  Don't need to clear lineno here.
21109
 
21110
1998-05-18  Tom Tromey  
21111
 
21112
        * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
21113
        then mangle number as _N_.
21114
 
21115
        * class.c (mangle_class_field): New function.
21116
        (build_class_ref): Set assembler name of class reference using
21117
        mangle_class_field.
21118
        (push_class_static_dummy_field): Likewise.
21119
 
21120
1998-05-17  Michael Tiemann 
21121
 
21122
        * parse.y (source_start_java_method): Use TREE_SET_CODE instead
21123
        of assigning to TREE_CODE.  The latter method exploits a feature
21124
        of GCC that is not ANSI compliant.
21125
 
21126
1998-05-12  Alexandre Petit-Bianco  
21127
 
21128
        * decl.c (pushdecl_force_head): New function.
21129
        (pushlevel): Removed conditional printf.
21130
        (complete_start_java_method): Don't enter local variable scope if
21131
        function is compiled from source code.
21132
        * expr.c: parse.h now included
21133
        (java_lang_expand_expr): New function.
21134
        * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
21135
        printf. Terminate buffer when doing directories.
21136
        * jcf-parse.c (parse_source_file): Call lang_init_source before
21137
        parsing and before code generation.
21138
        * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
21139
        use printf if the macro is defined.
21140
        * lang.c (lang_init): Install lang_expand_expr hook on
21141
        java_lang_expand_expr.
21142
        (java_dummy_print): New function.
21143
        (lang_init_source): New function.
21144
        * lex.c (java_lex): Remember location of an opening brace at the
21145
        second nesting level.
21146
        (java_is_eol): Unget character seen after a CR if it is EOF.
21147
        * parse.h: Now includes lex.h
21148
        (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
21149
        printf if the macro is defined.
21150
        (expand_start_java_method, build_expr_block, enter_block,
21151
        exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
21152
        New static function declarations.
21153
        (pushdecl_force_head): New extern function declaration.
21154
        (INCOMPLETE_TYPE_P): New macro.
21155
        (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
21156
        (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
21157
        BLOCK_EXPR_ORIGIN): New macros.
21158
        (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
21159
        DECL_SOURCE_LINE_LAST): New macros.
21160
        (struct parser_ctxt): Removed field current_method_decl, redundant
21161
        with the field current_function_decl. Added fields
21162
        first_ccb_indent1 and pending_block.
21163
        * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
21164
        BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
21165
        tagged 
21166
        (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
21167
        (compilation_unit:): Cosmetic on sub rule.
21168
        (type_declaration:): Cosmetic on sub rules. Added an error rule.
21169
        (variable_initializer:): Installed default rule on expression:.
21170
        (method_declaration:): method_header: starts a new
21171
        method. method_body: installs the function body, absorbs blocks
21172
        emitted for temporary variable scopings, pops function's body block
21173
        and merges function's last statement lineno in DECL_SOURCE_LINE.
21174
        (method_body:): Installed default rules.
21175
        (block:): Call enter_block when an opening brace is seen.  Absorb
21176
        scoping blocks and call exit_block when a closing brace is seen.
21177
        (block_statement:): Cosmetic changes.
21178
        (method_invocation:): Create WFL around CALL_EXPR node.
21179
        (patch_stage): Added comment around definition.
21180
        (method_header): Try to use first_ccb_indent1 as the first line of
21181
        the method, so BP debug info are emitted at the first opening
21182
        brace of the function. If the function has no body, use the
21183
        location of the function's name. Override currently defined method
21184
        name with the matching WFL so we can point redefinition errors
21185
        using the location where the function's name was declared.
21186
        (check_abstract_method_header): Interprets DECL_NAME as an
21187
        identifier or as a WFL, accordingly.
21188
        (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
21189
        (check_method_redefinition): Use DECL_NAME as a WFL. Extract
21190
        location and name information out of it and reinstall DECL_NAME to
21191
        its original identifier node value.
21192
        (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
21193
        function's source code).
21194
        (read_import_dir): Test the value returned by find_class and issue
21195
        a fatal accordingly.
21196
        (declare_local_variables): Push a new block for the scope of the
21197
        new variable(s) if code has been already generated at that nesting
21198
        level. Pinpoint redefinition errors using the variable id
21199
        WFLs. Generate initialization code if necessary. If the variable
21200
        type is incomplete, register a patch on its decl.
21201
        (source_start_java_method): Rewritten. Define a new block for the
21202
        function's parameters. Build parameter decl out of function's
21203
        arguments and register them for a patch if their types are
21204
        incomplete.
21205
        (expand_start_java_method): Includes the part of
21206
        source_start_java_method that was pushing the parameter decls and
21207
        completing the method start code.
21208
        (source_end_java_method): Removed call the expand_end_bindings and
21209
        poplevel (already taken care of). Reinstall function's arguments
21210
        and get function's last line of code before calling
21211
        expand_function_end.
21212
        (java_method_add_stmt): New comment before the function's
21213
        code. Complement the second operand of the current COMPOUND_EXPR
21214
        if necessary.
21215
        (java_complete_expand_methods): Don't generate debug info on line
21216
        zero when expanding a generated constructor.
21217
        (java_complete_expand_method): Set start and end line numbers for
21218
        a artificially generated constructor to one and manually call
21219
        enter_block and exit_block when defining it. For all methods:
21220
        expand function's start calling the new expand_start_java_method
21221
        and invoke java_complete_tree on the effective method's body, if
21222
        any.
21223
        (resolve_expression_name): Now use lookup_name_in_blocks to search
21224
        local variable decls and print out an error when variables are
21225
        undefined.
21226
        (patch_method_invocation_stmt): Inserted comment before the
21227
        function's code.
21228
        (lookup_method_invoke): Chain method's arguments using chainon
21229
        with the current arg list as a second argument. Inserted missing
21230
        IDENTIFIER_POINTER when reporting an error on methods not found.
21231
        (refine_accessible_methods_list): Don't retain constructors.
21232
        (patch_arguments): Function removed.
21233
        (java_complete_tree): Inserted comment before the function's
21234
        code. New case for BLOCKs. Moved the WFL case a bit
21235
        further. Complete function's arguments.
21236
        (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
21237
        maybe_absorb_scoping_blocks): New functions.
21238
 
21239
1998-04-27  Alexandre Petit-Bianco  
21240
 
21241
        * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
21242
        previously set.
21243
        * jcf-parse.c (parse_source_file, java_error_count): New forward
21244
        and extern declarations.
21245
        (java_parse_abort_on_error): Macro moved.
21246
        (jcf_parse_source): fatal called if fopen fails. Now calls
21247
        parse_source_file.
21248
        (parse_source_file): New parse_only parameter. Reflects the
21249
        elimination of the second pass.
21250
        (yyparse): parse_source_file called with argument set to 0.
21251
        * jcf.h (JCF_ZERO): Sets java_source to zero.
21252
        * lex.c (java_init_lex): pass argument is gone. Function modified
21253
        to be called once during the analysis of a file.
21254
        (java_unget_unicode): Fixed typo in fatal message.
21255
        (java_get_line_col): Likewise.
21256
        (java_lval): Likewise. String literals no longer built during
21257
        second pass.
21258
        * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
21259
        account.
21260
        * parse.h (MODIFIER_WFL): New macro.
21261
        (parse_check_super, parser_check_super_interface): Now return int.
21262
        (parser_chain_incomplete_item, not_builtin_p,
21263
        complete_method_decl): Declarations removed.
21264
        (build_method_invocation_stmt, build_invoke): Renamed using the
21265
        `patch' instead of `build'
21266
        (register-incomplete_type, obtain_incomplete_type,
21267
        java_complete_tree, java_complete_expand_method,
21268
        unresolved_type_p, create_jdep_list): New function declarations.
21269
        (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
21270
        END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
21271
        (jdep): New typedef on new struct _jdep.
21272
        (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
21273
        JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
21274
        JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
21275
        JDEP_RESOLVED_P): New macros.
21276
        (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
21277
        JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
21278
        JDEP_VARIABLE): New enum values and jdep kinds.
21279
        (jdeplist): New typedef on struct _jdeplist.
21280
        (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
21281
        macros.
21282
        (CALL_EXPR_PRIMARY): New macro.
21283
        (struct parser_ctxt): Fields java_pass, current_method_decl,
21284
        method_decl_list deleted. New field jdeplist.
21285
        (INCOMPLETE_P): Macro deleted.
21286
        * parse.y (single_type_import_declaration:): Removed pass switch.
21287
        (type_import_on_demand_declaration): Likewise.
21288
        (field_declaration:): Removed pass switch on all sub rules.
21289
        (class_declaration:): Call the complete_class_decl removed on
21290
        class_body rules.
21291
        (method_declaration:): Removed second pass switch. No longer chain
21292
        methods decl when method_header reduced.
21293
        (method_header:): Sub rules no longer depend on pass switch.
21294
        (method_declarator:): Likewise.
21295
        (method_body:): Likewise.
21296
        (abstract_method_declaration:): Likewise.
21297
        (block_statement:): Likewise.
21298
        (local_variable_declaration:): Likewise.
21299
        (argument_list:): Likewise.
21300
        (method_invocation:): Likewise. Call to build_method_invocation_stmt
21301
        removed. Partial CLASS_EXPR tree node built instead.
21302
        (postfix_expression:): Removed pass switch on all sub rules.
21303
        (java_pop_parser_context): Free classd_list content.
21304
        (yyerror): Call obstrack_grow0 to finalize error message.
21305
        (check_class_interface_creation): Comment modified to reflect new
21306
        returned value meaning. Removed second pass switch. Return 1 if an
21307
        error was found, 0 otherwise. Adjust pointer on filename if a
21308
        leading path separator was found.
21309
        (maybe_create_class_interface_decl): Removed first pass switch
21310
        when linking the class decl to the class_list. Install a new
21311
        jdep_list for the class.
21312
        (add_superinterfaces): List of unresolved interfaces is
21313
        gone. Unresolved interfaces are directly added to the current
21314
        dependencies list.
21315
        (create_interface): Second pass shortcut removed.
21316
        ctpx->modifier_ctx access through MODIFIER_WFL.
21317
        (create_class): Second pass shortcut removed. Call to
21318
        register_incomplete_type replaces the call to
21319
        parser_chain_incomplete_item.
21320
        (complete_class_decl): Function removed.
21321
        (duplicate_declaration_error): New way of retrieving redeclared
21322
        item type.
21323
        (register_fields): Call to lookup_modifier_cl replaced by
21324
        MODIFIER_WFL. New way of handling unresolved type, using
21325
        unresolved_type_p and obtain_incomplete_type.
21326
        register_incomplete_type replaces call to parser_chain_incomplete_item.
21327
        (patch_stage): New static global variable.
21328
        (method_header): New way of handling unresolved type, using
21329
        unresolved_type_p and obtain_incomplete_type. patch_stage used to
21330
        indicates that the method decl needs to be patched.
21331
        (check_abstract_method_header): Call to lookup_modifier_cl
21332
        replaced by MODIFIER_WFL.
21333
        (method_declarator): Incomplete argument type are registered
21334
        calling register_incomplete_type. Patch on the declared method is
21335
        issued in that case.
21336
        (unresolved_type_p): New function.
21337
        (parser_check_super_interface): New comment to reflect function's
21338
        modified returned type (int). Function and has a new argument
21339
        this_wfl. Call to parse_error_context uses this_wfl instead of
21340
        relying on lookup_cl.
21341
        (parser_check_super): Comment reflects function's new returned
21342
        type (int). Function returns nonzero value on error.
21343
        (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
21344
        register_incomplete_type, jdep_resolve_class): New functions to
21345
        handle incomplete types in declarations.
21346
        (java_complete_class): Rewritten to work with the new incomplete
21347
        type handling scheme.
21348
        (complete_class_report_errors): Likewise.
21349
        (complete_method_decl): Removed: it jobs is now handled by
21350
        java_complete_class.
21351
        (do_resolve_class): Class loaded in not already loaded and not
21352
        found in Java source code.
21353
        (java_check_regular_methods, java_check_abstract_methods): Don't
21354
        call complete_method_decl anymore.
21355
        (lookup_modifier_cl, not_builtin_p): Functions deleted.
21356
        (read_import_dir): Got rid of the pass number dependency.
21357
        (declare_local_variables): New handling of unresolved types (patch
21358
        issued).
21359
        (source_start_java_method): New parameter level. Function called
21360
        with level set to 1 when argument types are potentially
21361
        unresolved.  Called to complete the job with level set to 2 once
21362
        types are complete.
21363
        (source_end_java_method): Call to permanent_allocation
21364
        removed. Waiting to be replaced by a more suitable obstack
21365
        management.
21366
        (java_complete_expand_methods, java_complete_expand_method,
21367
        java_expand_finals): New functions.
21368
        (build_method_invocation_stmt): Renamed
21369
        patch_method_invocation_stmt. Extracts function call expression
21370
        (wfl) and arguments (args) from CALL_EXPR tree operands.
21371
        (build_invoke): Renamed patch_invoke. Fixed typo in fatal
21372
        call. Patch the function and argument operand of the CALL_EXPR
21373
        tree argument.
21374
        (patch_argument, java_complete_tree): New functions.
21375
 
21376
1998-04-20  Per Bothner  
21377
 
21378
        Recover from missing fields and methods (i.e. error instead of fatal).
21379
        * decl.c, java-tree.h (TYPE_identifier_node):  New global constant.
21380
        * expr.c (expand_invoke):  Recover from missing method.
21381
        (expand_java_field_op):  Recover from missing field.
21382
        Inline references to java.lang.{Integer,Char,...}.TYPE.
21383
        * typeck.c (get_type_from_signature), java-tree.h:  New function.
21384
        * class.c (add_method):  Use get_type_from_signature.
21385
        (build_class_ref):  Handle a class that was not found.
21386
        * typeck.c (convert):  Handle conversion to pointers (for convenience).
21387
        * verify.c (verify_jvm_instructions):  Use get_type_from_signature
21388
        instead of lookup_field to handle missing fields.
21389
 
21390
        * jcf-parse.c (process_zip_dir):  Set java_source.
21391
 
21392
1998-04-20  Brendan Kehoe  
21393
 
21394
        * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
21395
 
21396
1998-04-14  Alexandre Petit-Bianco  
21397
 
21398
        * jcf-parse.c (load_class): Don't change input_filename before
21399
        calling jcf_parse_source (but still do it before calling
21400
        jcf_parse).
21401
        (jcf_parse_source): Assign input_filename after having saved the
21402
        parser context.
21403
        * lex.c (java_init_lex): Chain a WFL node to the import on demand
21404
        list. ctxp->modifier_ctx zeroed according to its new
21405
        definition. ctxp->filename initialized. Removed
21406
        JAVA_MODIFIER_CTX_UNMARK.
21407
        (java_unget_unicode): Update the character based column position.
21408
        (java_allocate_new_line): ref_count not used anymore. Always free
21409
        ctxp->p_line. Initialize c_line->char_col to 0.
21410
        (java_get_unicode): Update the character based column position.
21411
        (java_lex): Use ctxp->elc to store current position in source
21412
        file, at the beginning of the parsed token. Set modifier_ctx entry
21413
        corresponding to the parse modifier to a WFL node. Return a WFL
21414
        node when an identifier is parsed.
21415
        (java_lex_error): Now uses ctxp->elc to store current position in
21416
        source.
21417
        (build_wfl_node, java_is_eol, java_get_line_col): New functions.
21418
        * lex.h (build_wfl_node): New function definitions.
21419
        (struct java_line): ref_count and next fields are gone. New field
21420
        char_col.
21421
        (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21422
        JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
21423
        (JAVA_COLUMN_DELTA): New macro.
21424
        (java_lc): New typedef on new struct _java_lc.
21425
        * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
21426
        (parse_error_context, parse_warning_context): Changed prototypes.
21427
        (java_get_line_col): Added as an available global function.
21428
        (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
21429
        (IC_DECL): Replaced by macro IC_TYPE
21430
        (DEPEND_WFL): New macro.
21431
        (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
21432
        wrong modifier.
21433
        (exit_java_complete_class): Removed a commented out statement.
21434
        (struct parser_ctxt): Added comments on fields. modifier_ctx is
21435
        now an array of tree nodes. Deleted fields line_list and
21436
        e_line. New field elc, to replace e_line.
21437
        * parse.y (array_type:): Build WFL node.
21438
        (qualified_name:): Build a single WFL node out of two. Retain
21439
        the location information of the first node in the resulting node.
21440
        (package_declaration:): Use package name as a WFL node
21441
        (single_type_import_declaration:): Use imported name as a WFL node.
21442
        (type_import_on_demand_declaration:): Use root of the imported
21443
        packages as a WFL node.
21444
        (field_declaration:): Removed unused local variable cl.
21445
        (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
21446
        (yyerror): New static elc. Removed static error_line, error_pos.
21447
        New local code_from_source. Save ctxp->elc into elc at the first
21448
        pass. Call java_get_line_col to get a string of the line where
21449
        the error occurred.
21450
        (debug_line): Removed static function.
21451
        (parse_error_context, parse_warning_context): Parameter cl is now
21452
        a WFL node. Use its value to initialize ctxp->elc.
21453
        (redefinition_error): Parameter cl is now a WFL node.
21454
        (parse_add_interface): New parameter wfl. No longer call
21455
        lookup_cl, use wfl instead.
21456
        (check_class_interface_creation): Parameter cl is now a WFL node.
21457
        (maybe_create_class_interface_decl): Likewise.
21458
        (add_superinterfaces): New function.
21459
        (create_interface): Removed local cl, node, super_decl,
21460
        super_decl_type.  Function now uses id as a WFL node. Better
21461
        warning/error report on obsolete or forbidden mix of
21462
        modifiers. Now calls add_superinterfaces to register interfaces.
21463
        (create_class): Removed local cl, node. Local variable id is used
21464
        as a WFL node. Better error report on forbidden modifier
21465
        mix. Uses add_superinterfaces to register interfaces.
21466
        (find_field): Argument cl is now a WFL node. Now store the WFL
21467
        node of a fields that needs to be checked for their
21468
        initialization.
21469
        (method_header): Local variable node non longer used. Local
21470
        variable id replaces cl.
21471
        (check_modifiers_consistency): Local variable cl is now a WFL
21472
        node.
21473
        (method_declarator): Local variable cl replaced by parameter id.
21474
        (parser_qualified_name): Now uses parameter name as a WFL node.
21475
        (parser_check_super_interface): New parameter wfl, for achieve
21476
        greater accuracy during error reports.
21477
        (parser_chain_incomplete_item): New parameter named location. Used,
21478
        along the decl, to construct the incomplete item node.
21479
        (java_complete_class): resolve_class now uses WFL node extracted
21480
        from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
21481
        where appropriate.
21482
        (complete_method_decl): Unresolved function's argument types are WFL.
21483
        (resolve_class): Parameter cl is now a WFL node.
21484
        (resolve_and_layout): Likewise.
21485
        (do_resolve_class): Likewise. Try first to use cl and then do the
21486
        lookup on the decl when calling check_pkg_class_access.
21487
        (complete_class_report_errors): Use IC_TYPE in place of
21488
        TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
21489
        instead of doing a lookup over the decl.
21490
        (java_check_final): Use WFL info from field tree list.
21491
        (lookup_cl): Rewritten and returns a statically defined WFL node.
21492
        (lookup_modifier_cl): Now uses information from WFL nodes.
21493
        (process_imports): Likewise.
21494
        (read_import_dir): name and cl arguments replaced by a single WFL
21495
        node. Function modified accordingly.
21496
        (find_in_imports_on_demand): Now uses WFL node.
21497
        (check_pkg_class_access): cl argument is now a WFL node.
21498
        (declare_local_variables): Fixed to use WFL nodes.
21499
        (resolve_expression_name): Likewise.
21500
        (build_method_invocation_stmt): name_combo argument renamed
21501
        wfl. Function modified to use WFL nodes.
21502
        (build_invoke): cl used as a WFL node when calling build_expr_wfl.
21503
        (lookup_method_invoke): cl is now a WFL node. Added missing
21504
        IDENTIFIER_POINTER to class type decl name.
21505
 
21506
1998-04-14  Dave Brolley  
21507
 
21508
        * lang.c (init_parse): Now returns char* containing the filename.
21509
 
21510
1998-04-10  Per Bothner  
21511
 
21512
        * class.c (layout_class):  Mangle repeated arg types to match cc1plus.
21513
 
21514
        * decl.c, java-tree.h (integer_four_node):  New INTEGER_CST node.
21515
        * class.c (make_class_data):  If flag_assume_compiled, initial class
21516
        state is CSTATE_PREPARED; make superclass and interfaces direct
21517
        references, rather than constant pool indexes.
21518
 
21519
1998-04-09  Alexandre Petit-Bianco  
21520
 
21521
        * parser.y: Include flags.h. Removed debug variable pl.
21522
        (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
21523
        (block:): Likewise.
21524
        (labeled_statement_nsi:): Generate debug info when reducing
21525
        expression_statement:.
21526
        (check_pkg_class_access): get_access_flags_from_decl invocation
21527
        fixed for new CLASS_* flags location.
21528
        (source_end_java_method): Save/restore parser context when
21529
        entering/leaving this routine. Restore lineno to its right value
21530
        before calling expand_end_bindings.
21531
        (build_method_invocation_stmt): build_invoke called with the
21532
        current line information.
21533
        (build_invoke): New argument cl. Wrap the function call around a
21534
        wfl node.
21535
        (refine_accessible_methods_list): Changed comment, removed
21536
        unnecessary code.
21537
        * parse.h: Fixed typo in comments.
21538
        (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
21539
        (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
21540
        (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
21541
        parser_ccb_indent.
21542
        * lex.c (java_lex): Record the last closing curly bracket of a
21543
        function.
21544
        * jcf-parse.c (jcf_parse_source): Now calls
21545
        java_check_methods. Clarified comment, fixed typo.
21546
 
21547
1998-04-09  Dave Brolley  
21548
 
21549
        * lang.c (init_parse): Expose for non USE_CPPLIB builds.
21550
        (finish_parse): Expose for non USE_CPPLIB builds.
21551
 
21552
1998-04-08  Jeffrey A Law  (law@cygnus.com)
21553
 
21554
        * lang.c (lang_print_xnode): New function.
21555
 
21556
1998-04-03  Per Bothner  
21557
 
21558
        * decl.c (class_dtable_decl), java-tree.h:  New tree node.
21559
        * class.c (get_dispatch_vector, get_dispatch_table):  New functions
21560
        used to build a class's dispatch table.
21561
        (make_class_data):  Generate dispatch table if flag_assume_compiled.
21562
        Set dtable of class object to address of class_dtable_decl.
21563
 
21564
        * decl.c (int_decl_processing):  Make soft_badarrayindex_node
21565
        be volatile and have side effects - generates better code.
21566
 
21567
        * class.c, expr.c, parse.y:  CLASS_INTERFACE, CLASS_FINAL, etc:
21568
        These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
21569
 
21570
        * expr.c (expand_invoke):  If class is final, method is
21571
        effectively final, so can call it directly.
21572
 
21573
        * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE):  New macros.
21574
 
21575
        * Makefile.in, Make-lang.in:  Add missing $(exeext)s.
21576
 
21577
1998-03-19  Alexandre Petit-Bianco  
21578
 
21579
        * parse.y (build_method_invocation_stmt): Removed extra argument
21580
        to build_invoke.
21581
 
21582
1998-03-16  Alexandre Petit-Bianco  
21583
 
21584
        * expr.c (dtable_indent): Now static global.
21585
        (expand_invoke): Now call invoke_build_dtable and
21586
        build_invokevirtual.
21587
        (invoke_build_dtable, build_invokevirtual): New functions.
21588
        * jcf-io.c (find_class): Defer issuing a warning by setting
21589
        jcf->outofsynch to 1.
21590
        * jcf-parse.c (jcf_out_of_synch): New function.
21591
        (load_class): Test this_jcf.outofsynch flag and call
21592
        jcf_out_of_synch accordingly.
21593
        * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
21594
        comment indentation.
21595
        * lex.c (java_get_unicode): Fixed code indentation.
21596
        (java_lex): Create string literal. Fixed typo. Removed several
21597
        premature obstack_free.
21598
        * parse.h: New enums for name resolution and invocation mode.
21599
        (struct qualification): New data structure.
21600
        (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
21601
        (do_resolve_class, build_method_invocation_stmt,
21602
        breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
21603
        debug_line, identical_subpath_p, invocation_mode,
21604
        refine_accessible_methods_list, build_invoke,
21605
        lookup_method_invoke): New functions declared.
21606
        (build_invokevirtual, invoke_build_dtable, match_java_method,
21607
        build_field_ref, jcf_out_of_synch): New references to external
21608
        functions.
21609
        (struct parse_ctxt): Removed artificial_constructor field.
21610
        * parse.y: (array_type:): Type defined for this rule.
21611
        (class_type:): Installed default rule for interface_type:.
21612
        (array_type:): Now build Java array type.
21613
        (qualified_name:): Now use obstack_grow0.
21614
        (method_declaration:): Skip the artificial constructor added to
21615
        the list, if any.
21616
        (abstract_method_declaration:): Execute the code only during pass 1.
21617
        (block:): Installed default rule in block_statements:.
21618
        (block_statement:): Add the statement to the method during pass 2.
21619
        (statement_expression): Installed default rule for
21620
        method_invocation:.
21621
        (argument_list:): Added code to build the argument list.
21622
        (method_invocation:): Added call to create the method invocation
21623
        node.
21624
        (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
21625
        (debug_line): New function for debug.
21626
        (complete_class_decl): No longer do something during pass 1.
21627
        (method_header): Use BUILD_PTR_FROM_NAME.
21628
        (parser_qualified_classname): Use obstack_grow0. Removed bogus
21629
        obstack_free.
21630
        (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
21631
        function's main comment.
21632
        (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
21633
        classes.
21634
        (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
21635
        (resolve_class): Now works with arrays.
21636
        (do_resolve_class, resolve_and_layout): New functions.
21637
        (java_check_regular_methods): Reverse method list before and after
21638
        having processed it. No longer set ctxp->artificial_constructor.
21639
        (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
21640
        accordingly. Fixed typo in issued error message. Now use
21641
        obstack_grow0.
21642
        (find_in_imports_on_demand): Now use obstack_grow0.
21643
        (declare_local_variables): Use BUILD_PTR_FROM_NAME.
21644
        (source_end_java_method): Call expand_expr_stmt instead of
21645
        expand_expr. Calls it before calling expand_function_end.
21646
        (java_method_add_stmt): Do nothing if errors were found during
21647
        parsing.
21648
        (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
21649
        (build_method_invocation_stmt, build_invoke, invocation_mode,
21650
        lookup_method_invoke, refine_accessible_methods_list,
21651
        qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
21652
        New functions.
21653
        * typeck.c (build_java_signature): Properly end method signature
21654
        if return type skipped.
21655
        (match_java_method): New function.
21656
 
21657
1998-03-16  Per Bothner  
21658
 
21659
        * jcf-io.c (find_classfile):  If USE_JCF_STDIO, fopen in binary mode.
21660
 
21661
1998-02-25  Alexandre Petit-Bianco  
21662
 
21663
        * expr.c (build_invoke_non_interface): New function.
21664
        (methods_ident, ncode_ident): Now static globals.
21665
        (expand_invoke): Use build_invoke_non_interface.
21666
        * java-tree.h (struct lang_decl): New field function_decl_body.
21667
        (DECL_FUNCTION_BODY): New macro.
21668
        * jcf-parse.c (jcf_parse_source): Deeper check before setting
21669
        CLASS_FROM_SOURCE_P.
21670
        (parse_source_file): Fixed typos. Call java_layout_parsed_class
21671
        before starting pass 2. Call to java_generate_parsed_class replaced
21672
        by java_register_parsed_class.
21673
        * lex.c: Fixed typo in header. Some line width related formating.
21674
        * lex.h: Some line width related formating.
21675
        * parse.h (source_end_java_method, resolve_expression_name,
21676
        complete_class_decl, maybe_create_class_interface_decl,
21677
        check_class_interface_creation): New static function declarations.
21678
        (java_layout_parsed_class, java_method_add_stmt): New function
21679
        declarations.
21680
        (struct parser_ctxt): Field mark_class_generate removed. New
21681
        fields class_list and artificial_constructor.
21682
        * parse.y: Fixed typo in header.
21683
        (class_declaration:): Call complete_class_decl when class body
21684
        parsed.
21685
        (method_declaration:): Call source_end_java_method in pass 2 when
21686
        the method body is defined.
21687
        (postfix_expression:): Do expression name resolution on sub-rule
21688
        name during pass 2.
21689
        (create_class, create_interface): Merged common pieces.
21690
        (check_class_interface_creation, maybe_create_class_interface_decl):
21691
        New functions.
21692
        (complete_class_decl): New function.
21693
        (register_fields): Fixed line width related typo.
21694
        (method_header): Correctly skip first argument when fixing
21695
        argument line. Changed the loop.
21696
        (java_check_circular_reference): Now use ctxp->class_list.
21697
        (java_complete_class): Removed start/stop marking.
21698
        (java_check_regular_methods): Now takes a class decl as an
21699
        argument.  Add default constructor if none were encountered.
21700
        (java_check_methods): Now use ctxp->class_list. Changed call to
21701
        java_check_regular_methods.
21702
        (source_start_java_method): Set DECL_ARG_TYPE for each function
21703
        arguments.
21704
        (source_end_java_method, java_method_add_stmt): New functions.
21705
        (java_generate_parsed_class): No longer exists.
21706
        (java_layout_parsed_class, java_register_parsed_class): New functions.
21707
        (resolve_expression_name): New function.
21708
 
21709
1998-02-12  Alexandre Petit-Bianco  
21710
 
21711
        * jcf-parse.c: (parse_source_file): Check on errors after init lex.
21712
        * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
21713
        until pass initializations are done. Call read_import_dir with
21714
        pass set to 0.
21715
        * parse.h: (lookup_modifier_cl): New function declared.
21716
        (INTERFACE_FIELD_MODIFIERS): New macro.
21717
        (OBSOLETE_MODIFIER_WARNING): New macro.
21718
        * parse.y: (register_fields): Class type and current field name in
21719
        local variables. Check modifier(s) if adding field(s) to an interface.
21720
        (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
21721
        and report errors using the faulty modifier line context.
21722
        (lookup_modifier_cl): New function.
21723
        (read_import_dir): Detect and report default import processing
21724
        failure.
21725
 
21726
1998-02-11  Brendan Kehoe  
21727
 
21728
        Add a pair of -fassume-compiled/-fno-assume-compiled options.
21729
        * class.c (is_compiled_class): Return 1 after making sure it
21730
        qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
21731
        * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
21732
        * java-tree.h (flag_assume_compiled): Add decl.
21733
        * lang.c (lang_f_options): Add the flag.
21734
        (flag_assume_compiled): Add decl, default to 0.
21735
 
21736
1998-02-11  Alexandre Petit-Bianco  
21737
 
21738
        * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
21739
        (is_compiled_class): Likewise.
21740
        (layout_class): Likewise.
21741
        (layout_class): Detect and lay out classes defined in source code.
21742
        (interface_of_p, add_interface_do, may_add_interface): New
21743
        function.
21744
        (add_interface): Now use add_interface_do.
21745
        (add_method_1): New function.
21746
        (add_method): Now use add_method_1.
21747
        (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
21748
        (complete_start_java_method): New function.
21749
        (start_java_mehod): Now call complete_start_java_method.
21750
        * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
21751
        (expand_invoke): Likewise and fixed typo.
21752
        *gjava.c: (print_super_field): Use new argument to find_class
21753
        DO_CLASS_FILE.
21754
        (main): Likewise.
21755
        *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
21756
        (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
21757
        QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
21758
        IDENTIFIER_NODE.
21759
        (CLASS_COMPLETE_P): New flag on TYPE_DECL.
21760
        (add_method_1, push_class): New prototypes.
21761
        *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
21762
        *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
21763
        directory where the class was found.
21764
        (find_class): New argument DO_CLASS_FILE. Function find_class
21765
        modified accordingly.
21766
        *jcf-parse.c: (fix_class_path): New function.
21767
        (load_class): Use new VERBOSE argument. load_class now finds and
21768
        loads/parses .class/.java files. Save read_state of current_jcf
21769
        if necessary.
21770
        (java_parser_abort_on_error): New macro.
21771
        (jcf_parse_source, parse_source_file): New function.
21772
        (jcf_parse): Fixed typo.
21773
        (yyparse): Call parse_source_file () only.
21774
        (process_zip_dir): Fixed typo, fix zdir->filename_length when
21775
        writing the real class name back in the zip directory entry.
21776
        (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
21777
        (jcf_figure_file_type): Fixed bogus alloc and bcopy.
21778
        *jcf.h: (typedef struct JCF): New fields java_source and zipd.
21779
        (find_class): Prototype fixed.
21780
        *lex.c: Added 1998 time stamp.
21781
        Removed all static global variables, moved into the parser
21782
        context data structure.. Now include unistd.h if SEEK_SET not
21783
        defined.
21784
        (java_init_lex): Rewritten.
21785
        (java_sneak_unicode): Modified current unicode access in current line.
21786
        (java_unget_unicode): Likewise.
21787
        (java_allocate_new_line): New allocation management.
21788
        (java_read_char): Modified access and storage of unget_utf8_value.
21789
        New way of processing current unicode.
21790
        (java_store_unicode, java_read_unicode): Fixed typo in declaration.
21791
        (java_get_unicode): Now use the parser context.
21792
        (java_lineterminator): Likewise.
21793
        (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
21794
        of the reentrant parser implementation. Function now use the
21795
        parser context data structure and java_lval. Fixed production of
21796
        the float and double constant "out of range" error message. Fixed
21797
        obstack use. Return integer value when hitting a modifier. Now
21798
        return type for TRUE, FALSE and other predefined types. Return
21799
        identifier as a TREE_LIST list containing the current line context
21800
        as the TREE_VALUE sub-node.
21801
        (java_unicode_2_utf8): Fixed typo in declaration.
21802
        (java_lex_error): Now use the parser context data structure.
21803
        *lex.h: Added 1998 time stamp.
21804
        (struct java_line): New fields ref_count and next.
21805
        (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21806
        JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
21807
        (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
21808
        *parse.h: Added 1998 time stamp.
21809
        (java_parse_source_file): Renamed from parse_source_file.
21810
        (YYERROR_NOW, YYNOT_TWICE): Fixed.
21811
        (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
21812
        INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
21813
        JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
21814
        THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
21815
        END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
21816
        CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
21817
        (struct parser_ctxt): New data structure to keep the parser context.
21818
        *parse.y: Added 1998 time stamp, got rid of static global variables.
21819
        (java_error_count, ctxp): New global variables.
21820
        (%union): New value field.
21821
        (numeric_type, integral_type): Rules removed.
21822
        (primitive_type): Rule defined to handle integral, float, double and
21823
        boolean types.
21824
        (qualified_name, package_declaration,
21825
        single_type_import_declaration, type_import_on_demand_declaration,
21826
        modifiers, class_declaration, super, interfaces,
21827
        interface_type_list, class_body, field_declaration,
21828
        field_declaration, variable_declarators, variable_declarator,
21829
        variable_declarator_id, method_declaration, method_header,
21830
        formal_parameter_list, formal_parameter, method_body, block,
21831
        static, interface_declaration, extends_interfaces,
21832
        abstract_method_declaration, local_variable_declarators): Rules now
21833
        define actions.
21834
        (force_error, do_warning): New global statics.
21835
        (push_parser_context, parser_context_save_global,
21836
        parser_context_restore_global, pop_parser_context): New functions.
21837
        (yyerror): Now uses the global parser context. Fixed use of obstack.
21838
        (parse_error, parse_error_context, parse_warning_context,
21839
        java_accstring_lookup, redefinition_error, check_modifiers,
21840
        parser_add_interface, create_interface, create_class, find_field,
21841
        duplicate_declaration_error, register_fields, method_header,
21842
        check_modifiers_consistency, check_abstract_method_header,
21843
        method_declarator, parser_qualified_classname,
21844
        parser_check_super_interface, parser_check_super,
21845
        parser_chain_incomplete_item, java_check_circular_reference,
21846
        layout_class_from_source, java_complete_class,
21847
        complete_method_decl, resolve_class, complete_class_report_errors,
21848
        java_check_final, check_method_redefinition,
21849
        java_check_regular_methods, java_check_abstract_methods,
21850
        java_check_methods, lookup_java_interface_method2,
21851
        lookup_java_method2, lookup_cl, find_name_in_single_imports,
21852
        process_imports, find_in_imports, read_import_entry,
21853
        read_import_dir, find_in_imports_on_demand,
21854
        check_pkg_class_access, not_builtin_p, declare_local_variables,
21855
        source_start_java_method, java_generate_parsed_class): New
21856
        functions.
21857
        *typeck.c: (signature_include_return): New global variable.
21858
        (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
21859
        to add the function returned type in the signature.
21860
 
21861
1998-02-09  Brendan Kehoe  
21862
 
21863
        * jcf-io.c (open_in_zip): Use strncmp and LEN.
21864
 
21865
1998-01-29  Dave Brolley  
21866
 
21867
        * Make-lang.in (java.info): Added.
21868
        (java.install-info): Added
21869
 
21870
1998-01-27  Brendan Kehoe  
21871
 
21872
        * Makefile.in (clean): Also remove java/parse.c.
21873
 
21874
1998-01-26  Brendan Kehoe  
21875
 
21876
        Add a pair of -fbounds-check/-fno-bounds-check options.
21877
        * lang.c (lang_decode_option): Add code to grok arguments.
21878
        (flag_bounds_check): Add decl.
21879
        (lang_f_options): New array w/ the option in it.
21880
        * java-tree.h (flag_bounds_check): Add decl.
21881
        * lang-options.h: New file.
21882
        * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
21883
        of a static macro value.
21884
        (JAVA_ARRAY_EXCEPTION): Delete macro.
21885
 
21886
1998-01-23  Per Bothner  
21887
 
21888
        * typeck.c (build_java_array_type):  Fix two bugs in previous change.
21889
        * expr.c (build_anewarray):  Add missing promote_type.
21890
 
21891
1998-01-22  Per Bothner  
21892
 
21893
        Add array types with known length to optimize bounds checking.
21894
        * typeck.c (build_java_array_type):  Take length parameter.
21895
        (java_array_type_length, build_prim_array_type):  New functions.
21896
        * java-tree.h:  Update for new functions.
21897
        * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
21898
        * class.c:  Use build_prim_array_type.
21899
        * expr.c (can_widen_reference_to):  Handle known-length array types.
21900
        (verify_jvm_instructions):  Keep track of integer push instructions
21901
        followed by newarray/anewarray, so we can build known-length arrays.
21902
        (JAVA_ARRAY_DATA_OFFSET):  Replace by ...
21903
        (java_array_data_offset):  New function.
21904
        (build_java_array_length_access):  New function.  Optimize if constant.
21905
        (build_java_arrayaccess):  Constant fold bounds check.
21906
        (expand_java_newarray, expand_java_anewarray):  Replaced by ...
21907
        (build_newarray, build_anewarray):  New functions.
21908
        (ARRAY_NEW_NUM, ARRAY_NEW_PTR):  Use build_{a,}newarray.
21909
        * verify.c (merge_types):  Handle known-lengh array types.
21910
 
21911
1998-01-19  Per Bothner  
21912
 
21913
        * expr.c (expand_byte_code):  Fix performace bug, which caused
21914
        searching linenumber_table to be linear rather than constant.
21915
 
21916
1997-12-12  Per Bothner  
21917
 
21918
        * Makefile.in (BISON, BISONFLAGS):  Add missing macros.
21919
 
21920
        * decl.c, java-tree.h (soft_fmod_node):  New global.
21921
        * decl.c (init_decl_processing):  Define __builtin_fmod.
21922
        * expr.c (build_java_binop):  Implement TRUNC_MOD_EXPR for REAL_TYPE
21923
        using __builtin_fmod.
21924
 
21925
1997-12-04  Alexandre Petit-Bianco  
21926
 
21927
        * keyword.h: New file, output of keyword.gperf as processed by
21928
        gperf.
21929
        * lex.c (java_lex_init): Initialize java_error_flag.
21930
        * parse.c (YYERROR_NOW): Uses java_error_flag.
21931
        * parse.y: New static java_error_flag. Useless definition of
21932
        buffer_error gone.
21933
        * parse.y (java_error): Portable error recovery using
21934
        java_error_flag (not yet completely tuned).
21935
 
21936
1997-12-04  Brendan Kehoe  
21937
 
21938
        * Makefile.in (parse.c): Use $(srcdir) for parse.y.
21939
 
21940
1997-12-03  Alexandre Petit-Bianco  
21941
 
21942
        * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
21943
        (parse.c, lex.c, keyword.h): New rules for Java source code
21944
        front-end.
21945
        * parse.c: Renamed into jcf-parse.c.
21946
        * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
21947
        * keyword.gperf: New file, Java keywords.
21948
        * parse.y: New file, Java language grammar.
21949
        * parse.h: New file, Java language grammar definitions.
21950
        * lex.c: New file, Java language lexer.
21951
        * lex.h: New file, Java language lexer definitions.
21952
 
21953
1997-12-03  Per Bothner  
21954
 
21955
        * decl.c (clinit_identifier_node), java-tree.h:  New global.
21956
        * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P):  Removed.
21957
        * verify.c (verify_jvm_instructions):  Inline use of removed macros.
21958
        * expr.c (expand_java_field_op):  Check for invalid assignment
21959
        to final field.
21960
 
21961
        * jcf-reader.c (get_attribute):  Test for wrong attribute length.
21962
 
21963
1997-10-27  Per Bothner  
21964
 
21965
        * verify.c (verify_jvm_instructions):  When processing a handler,
21966
        attempt to set the current_subr to the right value.
21967
        (More complicated code combines Sep 17 and Oct 22 versions.)
21968
 
21969
1997-10-24  Per Bothner  
21970
 
21971
        * class.c (push_class):  Figure out (guess) name of source file.
21972
        * parse.c  (set_source_filename):  Set DECL_SOURCE_FILE of class decl.
21973
        (give_name_to_class):  Don't guess source name;  use DECL_SOURCE_FILE.
21974
        (parse_class_file):  Change return type from int to void.
21975
        Call debug_start_source_file/debug_end_source_file.
21976
 
21977
        * expr.c (build_java_binop):  Fix masking 2nd operand.
21978
        * decl.c (init_decl_processing):  Set sizetype first.
21979
 
21980
1997-10-22  Per Bothner  
21981
 
21982
        * verify.c (verify_jvm_instructions):  Don't set current_subr to NULL.
21983
        (Revert Sep 17 change.)
21984
 
21985
1997-10-21  Alexandre Petit-Bianco  
21986
 
21987
        * parse.c (process_zip_dir): Skip ZIP entries not bearing the
21988
        .class extension in their name and fix thing so we don't process
21989
        them parse_zip_file_entries().
21990
        (parse_zip_file_entries): Cleaned unused local variables.
21991
 
21992
1997-10-20  Per Bothner  
21993
 
21994
        * expr.c (can_widen_reference_to):  Allows equal array element types.
21995
        (expand_byte_code):  PRE_RET must expand OPERAND_VALUE (to get index).
21996
        * jcf-dump.c (RET):  Get (and print) index.
21997
 
21998
        * verify.c (verify_jvm_instructions case OPCODE_anewarray):
21999
        Promote element type to POINTER_TYPE.
22000
 
22001
1997-10-20  Alexandre Petit-Bianco  
22002
 
22003
        * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
22004
        find_in_current_zip, jcf_figure_file_type): Moved from
22005
        jcf-reader.c to parse.c.
22006
        * zextract.c: (read_zip_archive): takes file_comment_length possible
22007
        field into account.
22008
 
22009
1997-10-20  Per Bothner  
22010
 
22011
        * verify.c (verify_jvm_instructions):  Var can also be promoted to int.
22012
 
22013
        * verify.c (merge_types):  Handle array types even better ...
22014
 
22015
1997-10-17  Per Bothner  
22016
 
22017
        * expr.c (java_stack_pop):  Fix use of NULL_TREE for TYPE_SECOND.
22018
 
22019
        * java-tree.h (PUSH_FIELD):  Set DECL_ARTIFICIAL.
22020
        * class.c (make_class_data):  Don't build fields_decl if no fields.
22021
        When building fields_decl, skip if DECL_ARTIFICIAL.
22022
 
22023
        * expr.c (java_stack_swap):  Update stack_type_map.
22024
        * verify.c (merge_types):  Handle array types better.
22025
 
22026
1997-10-15  Per Bothner  
22027
 
22028
        * class.c (add_field):  Don't promote short integral fields to
22029
        int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
22030
        * expr.c (push_value):  Promote and convert short integral values.
22031
 
22032
        * decl.c, java-tree.h (integer_two_node):  New constant node.
22033
        * verify.c (merge_types):  Check for TYPE_RETURN_ADDR.
22034
 
22035
1997-10-15  Alexandre Petit-Bianco  
22036
 
22037
        * class.c (append_gpp_mangled_type): Use function argument
22038
        unpromoted type to generate mangled name.
22039
 
22040
1997-10-13  Alexandre Petit-Bianco  
22041
 
22042
        * constants.c (build_constant_data_ref): Now uses current_class
22043
        instead of main_class.
22044
        (build_constants_constructor): Now uses current_class instead of
22045
        main_class.
22046
        * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
22047
        of the global variable SeepZipFiles done here.
22048
        * zextract.c (read_zip_archive): extra_field optional field taken
22049
        into account while computing the position of the class file in the
22050
        archive.
22051
        * verify.c (verify_jvm_instructions): Use current_jcf to search
22052
        the constant pool.
22053
        * parse.c (load_class): First search for the class to load in the
22054
        current zip file. Saves current_jcf (restored before returning
22055
        from that function). Don't call JCF_FINISH in the class was found
22056
        in the current ZIP file.
22057
        (jcf_parse): If the class was found in the current ZIP file, save
22058
        its tree_constant_pool (for later reuse).
22059
        (parse_class_file): New function. Process each method defined in
22060
        the current class and record the class as to be later registered.
22061
        (yyparse): Rewritten. Figure the type of the current file and switch
22062
        accordingly.
22063
        * lang.c: New global variable current_jcf.
22064
        (lang_init): Removed compiling_from_source test (done later, in
22065
        yyparse). Removed call the jcf_parse ().
22066
        * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
22067
        (typedef struct JCF): New fields seen_in_zip (to mark a class found
22068
        in the current ZIP file) and zip_offset (offset to the class data in
22069
        the current zip file).
22070
        * jcf-reader.c: zipfile.h included.
22071
        localToFile: New ZipFileCache static global variable
22072
        (parse_zip_file_entries): New function. Browse the current ZIP
22073
        file directory and process each class found.
22074
        (process_zip_dir): New function. Register each class found in the
22075
        ZIP file directory. The class aren't parsed but a valid JCF is
22076
        link to each of them.
22077
        (find_in_current_zip): New function. Search for a class in the
22078
        current ZIP file directory. If found, prepare the class so that it
22079
        can be loaded.
22080
        (jcf_figure_file_type): New function. Examine the file structure
22081
        to figure a class file, a ZIP file. If none of these categories are
22082
        matched, a source file is assumed.
22083
        * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
22084
        SeenZipFile: New global variable.
22085
        (open_in_zip): Use zipmember's length to accelerate the search for
22086
        a member. If zipmember was NULL and zip file successfully read,
22087
        return 0.
22088
        * java-tree.h: New global variable current_jcf declared.  Added
22089
        declaration for current_constant_pool_tags, current_constant_pool_data,
22090
        current_constant_pool_length, current_constant_pool_data_ref.
22091
        (struct lang_type): Augmented with two fields. struct JCF *jcf (to
22092
        store the JCF of classes seen in a zip file) and tree *constant_pool
22093
        (to save a loaded class constant pool). current_class declared here.
22094
        * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
22095
        retrieve method_ref_constant.
22096
        (PUSHC): java_push_constant_from_pool now uses current_jcf.
22097
        (OBJECT): get_class_constant now uses current_jcf.
22098
        (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
22099
        (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
22100
        (expand_invoke): Now uses current_class instead of main_class
22101
        (build_class_init): Now uses current_class instead of main_class
22102
        * class.c: New static global variable registered_class.
22103
        (register_class): New function.
22104
        (emit_register_class): Modified to use registered_class instead of
22105
        main_class
22106
        (is_compiled_class): Now take into account class seen in the archive.
22107
 
22108
1997-10-06  Per Bothner  
22109
 
22110
        * except.h:  Renamed to: java-except.h.
22111
        * parse.c, except.c, expr.c, verify.c:  Update #include accordingly.
22112
        * except.c:  Add semi-working (commented out) implementation.
22113
 
22114
        * expr.c (expand_iinc):  Add needed flush_quick_stack.
22115
        * parse.c (set_source_filename):  New function.
22116
        (give_name_to_class):  Set input_filename from package.classname.java.
22117
 
22118
        * jcf-io.c (find_class):  Don't look first in ".".
22119
 
22120
1997-10-01  Alexandre Petit-Bianco  
22121
 
22122
        * zextract.c (read_zip_archive): Now takes into account the
22123
        extra_field field.
22124
        * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
22125
 
22126
1997-09-20  Per Bothner  
22127
 
22128
        * constants.c, java-tree.h (build_internal_class_name):  New function.
22129
        (alloc_class_constant):  Re-implement using build_internal_class_name.
22130
        * class.c (make_class_data):  Likewise.
22131
        * class.c (hashUtf8String):  Make hash algorithm match String.hashCode.
22132
 
22133
1997-09-17  Per Bothner  
22134
 
22135
        * verify.c (verify_jvm_instructions):  Temporarily set current_subr
22136
        to NULL before pushing an exception handler target.
22137
 
22138
        * expr.c (flush_quick_stack):  Save from low stack indexes to high.
22139
        (java_stack_swap, java_stack_dup):  Re-write to be safe from
22140
        clobbering registers.
22141
        (build_class_init):  New function.
22142
 
22143
1997-09-17  Alexandre Petit-Bianco  
22144
 
22145
        * typeck.c (build_java_array_type): Temporary use
22146
        permanent_obstack to create the array 'length' field.
22147
        * expr.c (lookup_label): Temporay use permanent_obstack to create
22148
        label if not found.
22149
        * class.c (push_super_field): Tempory use permanent_obstack.
22150
 
22151
1997-09-15  Alexandre Petit-Bianco  
22152
 
22153
        * typeck.c (type_for_mode): Now handles double_type_node and
22154
        float_type_node.
22155
        * verify.c (verify_jvm_instructions): The instruction following
22156
        the wide bytecode is checked. OPCODE_ret added to the list of
22157
        wide.
22158
 
22159
1997-09-11  Alexandre Petit-Bianco  
22160
 
22161
        * class.c (make_class): Temporary use permanent_obstack. Set the
22162
        class CLASS_P field to 1.
22163
        (push_class): Temporary use permanent_obstack.
22164
        (set_super_info): Temporary use permanent_obstack.
22165
        (add_method): Temporary use permanent_obstack, set
22166
        METHOD_TRANSIENT().
22167
        (add_field): Temporary use permanent_obstack. Sets
22168
        FIELD_VOLATILE() and FIELD_TRANSIENT().
22169
        (build_class_ref): Temporary use permanent_obstack if the class
22170
        isn't compiled.
22171
        (build_static_field_ref): Temporary use permanent_obstack when
22172
        creating field's rtl.
22173
        (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
22174
        ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
22175
        and fields. Function finalized, as far as flag handling.
22176
        (push_class_static_dummy_field): Temporary use permanent_obstack.
22177
        (emit_register_class): Force generation of class registration at
22178
        -O3 or deeper.
22179
        * decl.c (end_java_method): Call permanent_allocation() before
22180
        returning.
22181
        * expr.c (can_widen_reference_to): Added comment to interface
22182
        handling, fixed typo.
22183
        (lookup_field): Now uses CLASS_P() to correct FIXME
22184
        (expand_invoke): Verification on public && !static &&
22185
        !abstract moved into soft_lookupinterfacemethod (kaffe).
22186
        Use Object class dtable if objectref is an array when expanding
22187
        invokeinterface.
22188
        (java_push_constant_from_pool): Temporary use permanent_obstack
22189
        for CONSTANT_string
22190
        * parse.c (get_ref_constant): Temporary use permanent_obstack to
22191
        create constant references.
22192
        (get_constant): Temporary use permanent_obstack to create constant.
22193
        (load_class): Temporary use permanent_obstack to load class.
22194
        (jcf_parse): Temporary use permanent_obstack to perform class
22195
        layout.
22196
        * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
22197
        (build_java_signature): Temporary use permanent_obstack.
22198
        * verify.c: (verify_jvm_instruction): removed unnecessary verification
22199
        on ACC_SUPER flag.
22200
        * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
22201
        (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
22202
        (CLASS_P): Defined
22203
 
22204
1997-09-11  Per Bothner  
22205
 
22206
        * class.c (append_gpp_mangled_type):  Fix typo.
22207
        (emit_register_class):  Use main_class to get class object, rather
22208
        than looking for no-longer-existing static decl starting with _CL.
22209
        * typeck.c (parse_signature_type):  Promote array element type
22210
        if it is a RECORD_TYPE.
22211
 
22212
1997-09-10  Per Bothner  
22213
 
22214
        * class.c (push_class_static_dummy_field):  New function.
22215
        (mangle_static_field):  New. Do G++-style mangling of static fields.
22216
        (layout_class):  Mandle static fields here, not in add_field.
22217
        (build_class_ref):  The class object is now a dummy static field.
22218
        * decl.c (find_local_variable):  Look for best, instead of first match.
22219
        * expr.c (push_type):  Always promote_type, not just for RECORD_TYPE.
22220
        (build_java_athrow):  Don't check here if exception is Throwable.
22221
        * java-tree.h (TYPE_UNSET):  Renamed to TYPE_UNKNOWN.
22222
        (TYPE_USED):  Removed.  No longer used ...
22223
        * parse.c (jcf_parse):  Call push_class_static_dummy_field.
22224
        * verify.c (push_pending_label):  New function.
22225
        (push_pending_block):  Renamed to check_pending_block.
22226
        (merge_types):  Remove unneeded suuport for TYPE_UNUSED.
22227
        (verify_jvm_instructions):  Only reset prev_eh_ranges (to force
22228
        re-checking possible handlers) after a store (less wasted work).
22229
        Check for null handler (finally) before calling add_handler.
22230
        Various changes to (finally?) correctly handle try/finally.
22231
 
22232
1997-09-09  Brendan Kehoe  
22233
 
22234
        * class.c: Include stdio.h.
22235
 
22236
1997-09-04  Per Bothner  
22237
 
22238
        * expr.c (expand_invoke):  Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
22239
        to make sure class is initialized before static/special invoke.
22240
 
22241
        * verify.c (verify_jvm_instructions):  On a store instruction,
22242
        call find_local_variable to force pre-allocation of decl and rtx.
22243
        * decl.c (push_jvm_slot):  Set DECL_REGISTER on stack slots.
22244
 
22245
1997-09-03  Per Bothner  
22246
 
22247
        * class.c (build_class_ref):   Strip off "promoted_" if need be.
22248
        (make_field_value): Call build_java_signature when needed.
22249
        (layout_class):  Don't make_function_rtl if METHOD_ABSTRACT.
22250
        * expr.c (build_java_athrow):  Don't push_value of exception.
22251
        (build_java_binop):  Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
22252
        match specification of [fd]cmp[lg] for NaNs.
22253
        (expand_byte_code):  Add support for exception handler ranges.
22254
        * except.c:  Add skeleton for EH code-generation.
22255
        * verify.c (merge_types):  Treat all promoted integral types as equal.
22256
        * constants.c (build_constants_constructor):  To force creation of
22257
        current_constant_pool_data_ref, call build_constant_data_ref.
22258
 
22259
        * javaop.def (lload):  Fix typo.
22260
        * jcf-dump.c (main):  Clear filename to prevent possibly-bad free.
22261
 
22262
1997-09-02  Brendan Kehoe  
22263
 
22264
        * parse.c: Don't include function.h.
22265
 
22266
1997-08-27  Per Bothner  
22267
 
22268
        * except.[ch]:  New files.
22269
        * Makefile.in (JAVA_OBJS):  Add except.o
22270
        * expr.c:  Temporary warning about unimplemented exceptions.
22271
        * verify.c:  Verify exception handlers.
22272
 
22273
        * jcf-dump.c (disassemble_method):  Print exception table.
22274
 
22275
1997-08-27  Alexandre Petit-Bianco  
22276
 
22277
        * expr.c (verify_jvm_instructions): Started a thorough
22278
        verification of invoke* bytecodes.
22279
        (expand_byte_code): flush quick stack if PC is the target of a
22280
        branch.  and undef RET (conflicting with config/i386/i386.h).
22281
        (expand_java_arrayload): Fixed bogus cast, when Boolean type is
22282
        used.
22283
        (expand_invoke): Now handles invokeinterface and do more
22284
        verification according to the bytecode.
22285
        (lookup_field): Don't try to load the class if processing
22286
        dtable_type.
22287
        (can_widen_reference_to): Now handles interfaces.
22288
        * decl.c (init_decl_processing): New global variable
22289
        soft_lookupinterfacemethod_node, declared in java-tree.h.
22290
        Call set_super_info on string_type_node.
22291
        * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
22292
        defined.
22293
        * class.c (set_super_info): Fills the CLASS_* flags according to
22294
        access_flags.
22295
        (get_access_flags_from_decl): Handles all class flags.
22296
 
22297
1997-08-26  Per Bothner  
22298
 
22299
        * class.c (add_method):  Zero out newly-allocated DECL_LANG_SPECIFIC.
22300
        * parse.c (yyparse):  Check for abstract method, and missing code.
22301
        * expr.c (expand_byte_code):  Change interface.
22302
        * lang.c (put_decl_node):  Print promoted types prettier.
22303
        * verify.c (verify_jvm_instruction):  Change interface.
22304
        Partial support for scanning exception table.
22305
        For load instructions, handle promoted integral types.
22306
 
22307
1997-08-21  Per Bothner  
22308
 
22309
        * verify.c:  New file, with contents moved from expr.c.
22310
        * expr.c:  Bunch of stuff (mostly verification) moved to verify.c.
22311
        * typeck.c (is_array_type_p):  Moved here from expr.c.
22312
        * java-tree.h:  Add some now-needed function declarations.
22313
        * Makefile.in (JAVA_OBJS): Added verify.o.
22314
 
22315
1997-08-20  Alexandre Petit-Bianco  
22316
 
22317
        * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
22318
        METHOD_ABSTRACT flag.
22319
 
22320
        * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
22321
        (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
22322
        (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
22323
 
22324
        * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
22325
        variables.
22326
        (start_java_method): Hook for SYNCHRONIZED methods.
22327
 
22328
        * expr.c (build_java_jsr, build_java_ret): New functions
22329
        (JSR,PRE): New macros
22330
        (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
22331
        (verify_jvm_instructions): tableswitch, lookupswitch,
22332
        monitorenter, monitorexit, goto_w: verified.
22333
        (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
22334
        (build_java_monitor): New function.
22335
        (MONITOR_OPERATION): Modified to call build_java_monitor()
22336
        (verify_jvm_instructions): Started a thorough verification of
22337
        invoke* bytecodes.
22338
 
22339
1997-08-19  Per Bothner  
22340
 
22341
        Support verification of jsr/ret subroutines (used for try/finally).
22342
        * decl.c (return_address_type_node):  New type node.
22343
        * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
22344
        RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
22345
        LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED):  New macros.
22346
        (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
22347
        TYPE_USED):  New macros for special types in type_map.
22348
 
22349
        * java-tree.h (BCODE_JUMP_TARGET):  Renamed to BCODE_TARGET.
22350
        (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET):  Replaced by
22351
        BCODE_JUMP_TARGET.
22352
        * expr.c (expand_byte_code):  Fix logic to warn of unused instructions.
22353
 
22354
        * expr.c (can_widen_reference_to):  New function.
22355
        (pop_type):  Use it.
22356
        (merge_type_state):  Support handling start of subroutine.
22357
        (push_pending_block):  Return char* error message, instead of calling
22358
        fatal on an error.  Also handle subroutines.
22359
        (verify_jvm_instructions):  Handle errors from push_poending_block.
22360
        Support jsr and ret instructions.
22361
 
22362
1997-08-19  Per Bothner  
22363
 
22364
        * jcf-io.c (find_classfile):  Fix thinko.
22365
        * jcf-dump.c:  Add CONVERT2 (to match changed javaop.def).
22366
 
22367
1997-08-12  Jason Merrill  
22368
 
22369
        * Makefile.in (BISON): Remove.
22370
 
22371
1997-08-07  Per Bothner  
22372
 
22373
        * Makefile.in:  Convert to autoconf.
22374
        * config-lang.in (outputs):  Added java/Makefile.
22375
 
22376
        * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
22377
        Rename cc1java to jc1.
22378
 
22379
        * lang.c (init_parse, finihs_parse):  New functions #ifdef USE_CPPLIB.
22380
        * Makefile.in (INTERNAL_CFLAGS):  Add @extra_c_flags.
22381
 
22382
        * class.c (class_depth):  Do load_class if needed.
22383
 
22384
        Mostly better verification.
22385
        * decl.c (pushdecl):  Set TYPE_STUB_DECL for a type.
22386
        (init_decl_processing):  Change return type of soft_checkcast.
22387
        * expr.c (expand_java_CHECKCAST):  Do push_value of the "casted" value.
22388
        * lang.c (put_decl_string, put_decl_node, lang_printable_name,
22389
        lang_print_error):  New functions.
22390
        (lang_init):  Set global hook print_error_function to lang_print_error.
22391
        * expr.c:  In the type_map ptr_type_node is only used for null now.
22392
        (pop_type, merge_types):  Hence ptr_type_node matches any reference.
22393
        (merge_types):  Dererence pointer to record types before comparing.
22394
        (decode_newarray_type, merge_types):  On error just return NULL.
22395
        (build_java_binop):  Add preliminary implementation (with warning)
22396
        for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
22397
        (lookup_label):  Set DECL_IGNORED_P (for dwarf2out).
22398
        (expand_compare, expand_java_goto, expand_java_call):  Don't
22399
        push_pending_block, since that only makes sense when verifying.
22400
        (merge_type_state):  Different return codes.
22401
        (push_pending_block):  A block may need to be verified more than once.
22402
        (expand_byte_code):  Warn about unused code at code generation time.
22403
        (verify_jvm_instruction):  Changed logic, since code may need to be
22404
        re-verified if type-state has changed.  Also, better error handling.
22405
        Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
22406
        Improve newarray, anewarray, ?aload, athrow,
22407
        * java-tree.h (LABEL_CHANGED):  New macro.
22408
 
22409
1997-08-05  Alexandre Petit-Bianco  
22410
 
22411
        * decl.c (soft_athrow_node): New global variable initialized.
22412
        * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
22413
        * typeck.c (convert): Added support for REAL_TYPE.
22414
        (convert_to_char): New function.
22415
        (convert): Handle CHAR_TYPE.
22416
        * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
22417
        SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
22418
        (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
22419
        promoted type.
22420
        (verify_jvm_instructions): Added break a the end of bogus unop: label.
22421
        (OPCODE_astore): Pop an int operand from the type stack
22422
        (OPCODE_astore): Push the promoted type onto the stack
22423
        (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
22424
        (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
22425
        to Use The Right Things.
22426
        (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
22427
        compatible with INT. BOOLEAN is made equivalent to BYTE.
22428
        (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
22429
        OPCODE_ifnonnull): Now supported.
22430
        (build_java_athrow): New function.
22431
 
22432
1997-08-04  Per Bothner  
22433
 
22434
        Rename method name  to match G++ (and fix mangling).
22435
        * class.c (layout_class):  Replace method name of  by class name.
22436
        (make_method_value):  Do inverse renaming of constructor from .
22437
        * java-tree.h (DECL_CONSTRUCTOR_P):  New macro.
22438
        * typeck.c (lookup_java_constructor):  New function.
22439
        * expr.c (expand_invoke):  If method_name is , call
22440
        lookup_java_constructor to find constructor.
22441
 
22442
        * parse.c (get_constant):  Handle CONSTANT_Float and CONSTANT_Double.
22443
 
22444
1997-08-01  Alexandre Petit-Bianco  
22445
 
22446
        * parse.c (get_class_constant): Modified to handle array "classes"
22447
        * typeck.c (set_local_type): Bug fixed when filling type_map[] with
22448
        wide type.
22449
        (convert): Modified to handle real type.
22450
        * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
22451
        soft_multianewarray, soft_newarray_node, soft_throw_node): New global
22452
        variables declared.
22453
        * decl.c (soft_badarrayindex_node, soft_anewarray_node,
22454
        soft_multianewarray, soft_newarray_node, soft_throw_node): New
22455
        global variables initialized.
22456
        (find_local_variable): Handles the case of a pointer
22457
        (end_java_method): Restore the use of one more scope
22458
        * expr.c (build_java_arraynull_check, build_java_arrayaccess,
22459
        build_java_array_length_access, expand_java_arrayload,
22460
        expand_java_arraystore, expand_java_array_length,
22461
        expand_java_multianewarray, expand_java_anewarray,
22462
        build_java_check_indexed_type, is_array_type_p,
22463
        build_java_throw_out_of_bound_exception): New functions.
22464
        (STORE_INTERNAL): Now forces type of the decl to be type of the value.
22465
        (OPCODE_arraylength, OPCODE_newarray, OPCODE_astore,
22466
        OPCODE_aload): Implemented code for verification.
22467
        (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
22468
        ARRAY_NEW_MULTI): Macro defined.
22469
        (CONVERT): Modified to invoke convert().
22470
        (case OPCODE_aload2): Fixed index typo from 2 to 1.
22471
 
22472
1997-07-31  Per Bothner  
22473
 
22474
        * class.c (push_class):  Set DECL_ARTIFICIAL (for dbxout.c).
22475
        (build_class_ref, is_compiled_class):  Handle pointer-to-record types.
22476
        (make_class_data):  Field name needs '/' as package prefix.
22477
        * expr.c (type_stack_dup, java_stack_dup):  Fix fencepost errors.
22478
 
22479
1997-07-25  Per Bothner  
22480
 
22481
        Implement debug information for local variables.
22482
        * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
22483
        DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
22484
        DECL_LOCAL_SLOT_CHAIN):  New macros.
22485
        (struct lang_decl_var):  New type.
22486
        * parse.c (give_name_to_locals):  Move to decl.c.
22487
        * decl.c (give_name_to_locals):  Re-written to Do The Right Thing.
22488
        (start_java_method):  Re-write parameter handling.
22489
        (pending_local_decls):  New global variable.
22490
        (push_jvm_slot, maybe_pushlevels, maybe_poplevels):  New functions.
22491
        (find_local_variable):  Accept pc so we can skips decls not in range.
22492
        (struct binding_level):  Add end_pc field.
22493
        * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
22494
        (various):  Change so current pc gets passed to find_local_variable.
22495
 
22496
        * decl.c (init_decl_processing):  Re-arrange fields in
22497
        class_type_node and and method_type_node to match kaffe 0.9.1.
22498
        * class.c (make_method_value, make_class_data):  Update
22499
        initializations to match.
22500
 
22501
1997-07-16  Per Bothner  
22502
 
22503
        * class.c (unicode_mangling_length, emit_unicode_mangled_name,
22504
        append_gpp_mangled_name, append_gpp_mangled_type):  New functions.
22505
        (push_super_field):  New function.
22506
        (make_class_data):  Handle inheritance of class static initializer.
22507
        (layout_class):  New name mangling.
22508
        * constants.c (build_constant_data_ref):  Init type of data array
22509
        to a one-element array.
22510
        (build_constants_constructor):  Set DECL_SIZE from complete array type.
22511
        * decl.c:  Rename class_type, object_type etc to class_type_node,
22512
        object_type_node etc.  Make former inherit from latter.
22513
        * expr.c (expand_invoke):  Add cast of function address.
22514
        * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE):  New.
22515
        * parse.c (yyparse):  Don't call layout_class here.
22516
        * typeck.c (build_java_array_type):  Set TYPE_ARRAY_ELEMENT.
22517
 
22518
1997-06-14  Per Bothner  
22519
 
22520
        * decl.c, class.c:  Update method type to match latest Kaffe snapshot.
22521
        * constants.c (lookup_name_constant):  Renamed to alloc_name_constant.
22522
        (alloc_class_constant):  New.
22523
        * expr.c (expand_invoke):  Make sure method's class is initialized.
22524
        * class.c (interits_from_p, emit_register_class):  New functions.
22525
        * parse.c (yyparse):  Call emit_register_class.
22526
 
22527
1997-06-09  Per Bothner  
22528
 
22529
        * constants.c:  New file, to handle constant pool.
22530
        * Makefile.in (JAVA_OBJS):  Add constants.o.
22531
        * decl.c (init_decl_processing):  Update, fix, finish various structs.
22532
        (pushdecl_top_level):  New.
22533
        * parse.c (layout_class):  Moved to class.c.
22534
        * expr.c (java_push_constant_from_pool):  New function.
22535
        * class.c (build_class_ref):  Make work fully
22536
        (make_class_data):  Emit super-class, constant pool, interface vector.
22537
 
22538
1997-06-03  Per Bothner  
22539
 
22540
        java-tree.h (DECL_SIGNATURE, BCODE_EMITTED):  Remove.
22541
        (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P):  New.
22542
        * class.c (class_depth):  New function.
22543
        (lookup_named_class):  Replaced by new function lookup_class.
22544
        * decl.c (object_type_node, string_type_node):  New.
22545
        Remove various types that we no longer need.
22546
        * expr.c (verify_jvm_instructions):  New separate verifier pass.
22547
        (push_type, pop_type):  New functions for verifier.
22548
        (type_stack_dup, pop_argument_types, merge_types):  Likewise.
22549
        (expand_byte_code):  Simplify, since we assume already verified.
22550
        (expand_invoke):  Now mostly works.
22551
        * javaop.def:  Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
22552
        * lang.c (main_class):  Move to parse.c.  Don't make_class yet.
22553
        * parse.c:  Wait to allocate class object until we know its name.
22554
        (layout_class):  Calculate DECL_VINDEX for each virtual method.
22555
        * typeck.c (get_array_type):  Rename to ...
22556
        (build_java_array_type):  ... and provide working implementation.
22557
        (build_java_signature):  New function - build Java signature of type.
22558
        (set_java_signature):  New function - cache signature with type.
22559
        (lookup_java_method):  New function.
22560
 
22561
1997-05-06  Per Bothner  
22562
 
22563
        * class.c (ident_subst):  Take extra SUFFIX parameter.
22564
        (add_field):  Set DECL_ASSEMBLER_NAME of static fields;  more.
22565
        (set_constant_value, build_static_field_ref, is_compiled_class):  New.
22566
        (build_class_ref):  Actually implement.
22567
        * decl.c, java-tree.h:  Renamed some xx_type to xx_type_node.
22568
        * decl.c (builtin_function):  New.
22569
        (init_decl_processing):  Update for current Kaffe.  Declare some
22570
        builtin Kaffe functions.
22571
        * expr.c (build_address_of):  New.
22572
        (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
22573
        Renamed (from expand_java_new etc), and added working implementations.
22574
        (build_field_ref):  Now also handle static fields.
22575
        (expand_invoke):  Implement invokestatic, and start implement rest.
22576
        * java-opcodes.h:  Use javaop.def to avoid duplicated list.
22577
        * javaop.def:  Rename invokevirt -> invokevirtual.
22578
        * lang.c (use_handles):  Removed.
22579
        * parse.c:  Add support for ConstantValue attribute.
22580
        Handle nested loading of a class.  (JPOOL_UTF):  New.
22581
 
22582
1997-03-11  Per Bothner  
22583
 
22584
        * expr.c (expand_java_pushc):  Support #ifndef REAL_ARITHMETIC case.
22585
 
22586
1997-02-27  Per Bothner  
22587
 
22588
        * Make-lang.in (java.install-man):  New empty rule.
22589
        * typeck.c (set_local_type):  New function.
22590
        * expr.c (STORE_INTERNAL):  Call find_local_variable,
22591
        not find_stack_slot.  Call set_local_type.
22592
 
22593
1997-02-12  Per Bothner  
22594
 
22595
        * java-tree.h:  Various new macros for constructing RECORD_TYPEs,
22596
        and building RECORD_TYPE CONSTRUCTORs.
22597
        Also support for creating Utf8Const objects from an INDETIFIER_NODE.
22598
 
22599
        * lang.c (use_handles):  Change the default to 0.
22600
        * decl.c:  Define and build class_type, field_type, utf8const_type.
22601
        * class.c (make_class_data, make_field_value,
22602
        get_access_flags_from_decl, build_class_ref, build_utf8_ref,
22603
        hashUtf8String, strLengthUtf8, mangled_classname:
22604
        Functions to build reflective data structures.
22605
        * parse.c (yyparse):  Call make_class_data.
22606
 
22607
        * jcf-io.c (open_class, find_classfile):  New functions.
22608
        * jcf-dump.c:  Support reading classfile from explicitly-named
22609
        class file (without CLASSPATH searching).
22610
 
22611
1996-10-24  Per Bothner  
22612
 
22613
        * jcf-reader.c:  Add parameter list to HANDLE_CONSTANT_Utf8.
22614
        * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
22615
        Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
22616
        (get_constant):  Now trivial for CONSTANT_Utf8.
22617
 
22618
        * jcf.h:  Make NEW_CPOOL the default.
22619
        * jcf.h, jcf-reader.c, parse.c:  Remove support for !NEW_CPOOL.
22620
 
22621
1996-10-24  Per Bothner  
22622
 
22623
        New directory.
22624
 
22625
 
22626
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
22627
2006, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
22628
 
22629
Copying and distribution of this file, with or without modification,
22630
are permitted in any medium without royalty provided the copyright
22631
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.