]> gcc.gnu.org Git - gcc.git/blame - gcc/java/ChangeLog
dwarf2-signal.h: Remove x86_64.
[gcc.git] / gcc / java / ChangeLog
CommitLineData
50cbc605
AH
12003-01-14 Andrew Haley <aph@redhat.com>
2
3 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
4 varargs function -- correct.
5
6 * parse.y (patch_assignment): Copy the rhs of an assignment into a
7 temporary if the RHS is a reference.
8
0a2f0c54
KG
92003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10
b3504bc1
KG
11 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
12 * keyword.h: Regenerated.
13
0a2f0c54
KG
14 * All Files: Convert to ISO C style function definitions.
15
43a4a12b
NN
162003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
17
18 * parse.y (check_pkg_class_access): ANSIfy definition.
19
77d3109b
KG
202003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21
d12689d2
KG
22 * decl.c, parse-scan.y, parse.y: Don't cast return value of
23 xmalloc et al.
24
77d3109b
KG
25 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
26
17211ab5
GK
272003-01-09 Geoffrey Keating <geoffk@apple.com>
28
29 Merge from pch-branch:
30
31 2002-12-02 Geoffrey Keating <geoffk@apple.com>
32
33 * Make-lang.in (java/gjavah.o): Update dependencies.
34 * gjavah.c: Include ggc.h.
35
36 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
37
38 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
39 (JCFDUMP_OBJS): Add ggc-none.o.
40 (java/jcf-dump.o): Depend on GGC_H.
41 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
42 CPool substructures.
43 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
44 * jcf-dump.c: Include ggc.h.
45
46 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
47
48 * jcf.h (union cpool_entry): New.
49 (struct CPool): Use gengtype to mark. Change field 'data' to be
50 an array of unions.
51 (struct JCF): Use gengtype to mark.
52 (CPOOL_UINT): Update for new cpool_entry type.
53 (CPOOL_USHORT1): Likewise.
54 (CPOOL_USHORT2): Likewise.
55 (CPOOL_FINISH): Use GC to free cpool subfields.
56 * parse.h (struct parser_ctxt): Mark field current_jcf.
57 * lex.c (java_init_lex): Use GC to allocate struct JCF.
58 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
59 (main_jcf): Use gengtype to mark.
60 (ggc_mark_jcf): Delete.
61 (get_constant): Update for new cpool_entry type.
62 (give_name_to_class): Likewise.
63 (get_class_constant): Likewise.
64 (init_outgoing_cpool): Use GGC to allocate struct CPool.
65 (java_parse_file): Use GGC to allocate struct JCF.
66 (init_jcf_parse): Don't call ggc_add_root.
67 * jcf-reader.c (jcf_parse_constant_pool): Update for new
68 cpool_entry type.
69 * java-tree.h (current_jcf): Use gengtype to mark.
70 (CPOOL_UTF): Update for new cpool_entry type.
71 (outgoing_cpool): Use gengtype to mark.
72 (struct lang_type): GC struct JCF and struct CPool.
73 * config-lang.in (gtfiles): Add jcf.h.
74 * constants.c (find_tree_constant): New.
75 (set_constant_entry): Allocate cpool subfields using GGC. Update
76 for new cpool_entry type.
77 (find_constant1): Update for new cpool_entry type.
78 (find_constant2): Likewise.
79 (find_utf8_constant): Use find_tree_constant.
80 (find_class_or_string_constant): Remove unnecessary cast to jword.
81 Update for new cpool_entry type.
82 (count_constant_pool_bytes): Update for new cpool_entry type.
83 (write_constant_pool): Likewise.
84 (alloc_name_constant): Use find_tree_constant.
85 (build_constants_constructor): Update for new cpool_entry type.
86
87 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
88
89 * parse.y (mark_parser_ctxt): Delete.
90 (goal): Don't use ggc_add_root.
91 (create_new_parser_context): Use GC to allocate struct parser_ctxt.
92 (java_pop_parser_context): Let GC free parser_ctxt.
93 (java_parser_context_resume): Likewise.
94 * parse.h (struct parser_ctxt): Use gengtype to mark.
95 (ctxp): Likewise.
96 (ctxp_for_generation): Likewise.
97 * lex.h (struct java_lc_s): Mark for gengtype.
98 (java_lexer): Rearrange for gengtype.
99 * config-lang.in (gtfiles): Add lex.h, parse.h.
100
b3339cf7
KG
1012003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
102
d2097937
KG
103 * All Files: Remove PARAMS macro.
104
6ff2fe39
KG
105 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
106 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
107 `__STDC__' macros.
108
b3339cf7
KG
109 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
110 VA_CLOSE.
111
8a4c5898
CC
1122003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
113
114 * Make-lang.in (java.install-common, java.uninstall,
115 java.install-info, java.install-man): Prepend $(DESTDIR)
116 to destination paths in all (un)installation commands.
117 (java.install-common): Rewrite $(LN) command to support
118 DESTDIR with "ln" as well as with "ln -s".
119
2f23f5c1
NN
1202003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
121
122 * java-tree.h: Protect against multiple inclusion.
123
b47ffb8f
TT
1242003-01-07 Tom Tromey <tromey@redhat.com>
125
126 * class.c (add_assume_compiled): Don't adjust parent if we're
127 already at the root of tree.
128
c7c50494
KG
1292003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
130
131 * lang.c (dump_compound_expr): Prototype.
132
f3ce4aba
TT
1332003-01-03 Tom Tromey <tromey@redhat.com>
134
135 Fix for PR java/8712:
136 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
137 when simply checking against `null'.
138
60db58b2
TT
1392003-01-03 Tom Tromey <tromey@redhat.com>
140
0320cac3
TT
141 * gcj.texi (Standard Properties): Document http.proxyHost and
142 http.proxyPort.
143
60db58b2
TT
144 * gcj.texi (GNU Classpath Properties): Document new properties.
145
43c6a96a
SB
1462003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
147
148 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
149 java/lang-options.h, java/mangle.c, java/mangle_name.c,
150 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
151
f309ff0a
SB
1522003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
153
154 * Make-lang.in, boehm.c, buffer.c,
155 buffer.h, builtins.c, class.c,
156 config-lang.in, constants.c,
157 convert.h, decl.c, except.c,
158 expr.c, java-except.h,
159 java-tree.h, javaop.def,
160 jcf-parse.c, jcf-write.c,
161 jv-scan.c, jvgenmain.c,
43c6a96a 162 jvspec.c, keyword.gperf,
f309ff0a
SB
163 keyword.h, lang-options.h,
164 lang-specs.h, lang.c, lex.c,
165 lex.h, mangle.c, mangle_name.c,
166 parse-scan.y, parse.h, parse.y,
167 typeck.c, verify.c, xref.c,
168 xref.h: Replace "GNU CC" with
169 "GCC" in the copyright header.
170
171 * check-init.c, gjavah.c, javaop.h,
172 jcf-depend.c, jcf-dump.c, jcf-io.c,
173 jcf-path.c, jcf-reader.c, jcf.h,
174 zextract.c, zipfile.h: These files are
175 "part of GCC". Also say "GCC" not "GNU CC".
176
9a280a6e
DD
1772002-12-30 DJ Delorie <dj@redhat.com>
178
e2f45c30 179 * Make-lang.in: Protect against texi2pod/pod2man failing.
9a280a6e 180
bdefb2ab
JM
1812002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
182
183 * gcj.texi: Use @copying.
184
239b7dea
MM
1852002-12-27 Mark Mitchell <mark@codesourcery.com>
186
187 * gjavah.c (print_name_for_stub_or_jni): Adjust call to
188 print_cxx_classname.
189 (print_cxx_classname): Add add_scope parameter.
190 (print_class_decls): Do not emit a semicolon after the extern
191 "Java" block.
43c6a96a 192 (process_file): Adjust calls to print_cxx_classname.
239b7dea 193
df82908a
JM
1942002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
195
196 * gcj.texi: Include Cover Texts in man page.
197
d3ab697b
JS
1982002-12-23 Jeff Sturm <jsturm@one-point.com>
199
200 * class.c (build_static_field_ref): Check FIELD_FINAL.
201
202 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
203 instead of current_constant_pool_data_ref.
204 * java-tree.h (current_constant_pool_data_ref): Undefine.
205 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
206 * jcf-parse.c (init_outgoing_cpool): Don't initialize
207 current_constant_pool_data_ref.
208
209 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
210 not build_internal_class_name.
211
212 * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
213 Use it when class ref isn't certain to be compiled.
214
46d40353
JM
2152002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
216
217 * gcj.texi: Include gcc-common.texi.
218 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
219 $(srcdir)/doc/include/gcc-common.texi.
220
fba1caab
AG
2212002-12-22 Anthony Green <green@redhat.com>
222
223 * gcj.texi (Limitations): Add note about org.xml.sax and
224 org.w3c.dom.
225
913746e3
TT
2262002-12-20 Tom Tromey <tromey@redhat.com>
227
228 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
229 where minimum case value is Integer.MIN_VALUE.
230 Fixes PR java/8955.
231
71d082af
AH
2322002-12-18 Andrew Haley <aph@redhat.com>
233
234 * parse.y (patch_invoke): Force evaluation order when `check' is
235 set. For PR libgcj/8945.
236
7a04c51b
MM
2372002-12-16 Mark Mitchell <mark@codesourcery.com>
238
239 * gcj.texi: Change version number to 3.4.
240
0cc1565a
RM
2412002-12-05 Ranjit Mathew <rmathew@hotmail.com>
242 Andrew Haley <aph@redhat.com>
243
244 * parse.y (source_end_java_method): Remove custom encoding of line
245 numbers for a function decl before passing it to the back end.
246
421f9e60
AH
2472002-12-03 Andrew Haley <aph@redhat.com>
248
249 * class.c (make_class_data): New field, "chain".
250 * decl.c (java_init_decl_processing): Likewise.
251
6b55b27f
TT
2522002-12-02 Tom Tromey <tromey@redhat.com>
253
254 For PR java/8740:
255 * parse.y (do_resolve_class): Handle qualified name via
256 recursion.
257
4977bab6
ZW
2582002-11-30 Zack Weinberg <zack@codesourcery.com>
259
260 * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
261 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
262 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
263 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
264 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
265 Include coretypes.h and tm.h.
266 * Make-lang.in: Update dependencies.
267
d1aed877
KG
2682002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
269
270 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
271
b4bbc8b7
DN
2722002-11-25 Diego Novillo <dnovillo@redhat.com>
273
274 * jcf-reader.c: Don't expand JCF_readu4 inside the
275 expansion of JCF_SKIP.
276
4977bab6
ZW
2772002-11-25 Diego Novillo <dnovillo@redhat.com>
278
279 * jcf-reader.c: Don't expand JCF_readu4 inside the
280 expansion of JCF_SKIP.
281
dd06be9e
TT
2822002-11-22 Tom Tromey <tromey@redhat.com>
283
284 * parse.y (patch_binop): Cast right hand side of shift expression
285 to `int'. Fixes PR java/8676.
286
34744d4e
RM
2872002-11-22 Ranjit Mathew <rmathew@hotmail.com>
288 Andrew Haley <aph@redhat.com>
289
290 * gcc/java/jcf-write.c (write_classfile): Remove target
291 class file, if it exists, before renaming the temporary
292 class file to it.
293
f3226a90
JT
2942002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
295
296 * jvspec.c (lang_specific_spec_functions): New.
297
5602b49d
TT
2982002-11-18 Tom Tromey <tromey@redhat.com>
299
300 Fix for PR java/7912:
301 * expr.c (can_widen_reference_to): Allow cast of array to
302 Cloneable or Serializable.
303 * java-tree.h (java_lang_cloneable_identifier_node): Declare.
304 (java_io_serializable_identifier_node): Likewise.
305 * parse.y (java_lang_cloneable, java_io_serializable): Removed.
306 (valid_ref_assignconv_cast_p): Use new identifier nodes.
307 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
308 java_io_serializable.
309 * decl.c (java_init_decl_processing): Initialize
310 java_lang_cloneable_identifier_node and
311 java_io_serializable_identifier_node.
312 (java_lang_cloneable_identifier_node): New global.
313 (java_io_serializable_identifier_node): Likewise.
314
a92cb0c3
JMH
3152002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de>
316
317 * buffer.c: Remove unnecessary casts.
318 * check-init.c: Likewise.
319 * class.c: Likewise.
320 * constants.c: Likewise.
321 * decl.c: Likewise.
322 * except.c: Likewise.
323 * gjavah.c: Likewise.
324 * jcf-io.c: Likewise.
325 * jcf-parse.c: Likewise.
326 * jcf-path.c: Likewise.
327 * jvspec.c: Likewise.
328 * lang.c: Likewise.
329 * lex.c: Likewise.
330 * verify.c: Likewise.
331
5bd717f1
TT
3322002-11-06 Tom Tromey <tromey@redhat.com>
333
334 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
335 a JNI header.
336
c034b453
TT
3372002-11-05 Tom Tromey <tromey@redhat.com>
338
339 Fix for PR java/6388.
340 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
341 * java-tree.h (enum java_tree_index): New values
342 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
343 (decimal_int_max, decimal_long_max): New defines.
344 * lex.c (yylex): Rewrote range checking. Sign extend literals.
345 (error_if_numeric_overflow): Rewrote range checking.
346 * decl.c (java_init_decl_processing): Initialize decimal_int_max,
347 decimal_long_max.
348
21140beb
TT
3492002-11-02 Tom Tromey <tromey@redhat.com>
350
60b68525
TT
351 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
352
21140beb
TT
353 * class.c (make_method_value): Put class name, not signature, into
354 `throws' field. For PR java/8415.
355
3752ac08
TT
3562002-10-24 Tom Tromey <tromey@redhat.com>
357
358 * gcj.texi (Invoking gij): Document --showversion.
359 (Standard Properties): java.library.path now set.
360
0d3911c9
TT
3612002-10-23 Tom Tromey <tromey@redhat.com>
362
363 * gjavah.c (decode_signature_piece): In JNI mode, print
364 `jobjectArray' when array depth is nonzero.
365 Fixes PR java/8296.
366
c1ddb5c8
AH
3672002-10-15 Andrew Haley <aph@redhat.com>
368
369 * parse.y (patch_invoke): Call force_evaluation_order on a static
370 arg list.
371 (resolve_qualified_expression_name): Call force_evaluation_order
372 on a arg list that is part of a Qualified Expression Name.
373
374 * lang.c (dump_compound_expr): New.
375 (java_dump_tree): New.
376
63bb20d4
RM
3772002-10-20 Ranjit Mathew <rmathew@hotmail.com>
378
379 * gcj.texi: Added item describing the GCJ runtime property
380 "gnu.gcj.progname".
381
ba0bb02d
RH
3822002-10-15 Richard Henderson <rth@redhat.com>
383
384 * jcf-parse.c (get_constant): Fix type warning.
385
dbd1e2d8
AH
3862002-10-15 Andrew Haley <aph@redhat.com>
387
388 * java-tree.h (java_inlining_merge_static_initializers): Declare.
389 (java_inlining_map_static_initializers): Declare.
390
3eb429b2
AH
3912002-10-14 Andrew Haley <aph@redhat.com>
392
393 * tree-inline.c (remap_block): All local class initialization
394 flags go in the outermost scope.
395 (expand_call_inline): Call java_inlining_map_static_initializers.
396 (expand_call_inline): Call java_inlining_merge_static_initializers.
397 * java/lang.c (merge_init_test_initialization): New.
398 (java_inlining_merge_static_initializers): New.
399 (inline_init_test_initialization): New.
400 (java_inlining_map_static_initializers): New.
401
37d2b7e2
MW
4022002-10-11 Mark Wielaard <mark@klomp.org>
403
404 * gcj.texi (Compatibility): Add Limitations and Extensions section.
405
7bdfd72e
KG
4062002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
407
408 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
409
c6449a1d
KG
4102002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
411
412 * parse.y (merge_string_cste): Add parentheses around & within |.
413
8f6d2e96
TT
4142002-10-08 Tom Tromey <tromey@redhat.com>
415
416 * parse.y (variable_declarator_id): Simplify error path for
417 array declarator error. For PR java/8003.
418
36624850
ZW
4192002-10-08 Zack Weinberg <zack@codesourcery.com>
420
421 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
422 bug_report_url.
423
ce5bb293
AH
4242002-10-08 Andrew Haley <aph@redhat.com>
425
426 * parse.y (attach_init_test_initialization_flags): Check for
427 error_mark_node.
428
36624850 4292002-10-07 Anthony Green <green@redhat.com>
6a921942 430
36624850 431 * parse.y (merge_string_cste): Fix bug in string concatenation.
6a921942 432
f42ee52f
MK
4332002-10-03 Michael Koch <konqueror@gmx.de>
434
435 * gcj.texi (Standard properties):
436 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
437
f963b5d9
RS
4382002-10-02 Roger Sayle <roger@eyesopen.com>
439
440 PR optimization/6627
441 * lang.c (java_init): If storing the vbit in function
442 pointers, ensure that force_align_functions_log is atleast
443 one to aid compatability with g++ vtables.
444
6f7e9e94
NS
4452002-10-01 Nathan Sidwell <nathan@codesourcery.com>
446
447 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
448 foul of type-based aliasing.
449
71dff728
AG
4502002-09-30 Anthony Green <green@redhat.com>
451
452 * gcj.texi (Invoking jv-scan): Fix texinfo.
453
acc59b85
AG
4542002-09-28 Anthony Green <green@redhat.com>
455
456 * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
457 (Code Generation): Add -fno-assert documentation.
458 * jv-scan.c (flag_assert): New global.
459 (options): Add assert option.
460 (help): Add --no-assert documentation.
461 * parse-scan.y (flag_assert): New global.
462 * lang.c (lang_f_options): Add -fassert/-fno-assert support.
463 (flag_assert): New global.
464 * java-tree.h (flag_assert): New global.
465 * lex.c (java_lex): Obey flag_assert.
466 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
467 calling cc1.
468
fc5295fa
AH
4692002-09-26 Andrew Haley <aph@redhat.com>
470
471 * expr.c (build_java_array_length_access): Check for null pointer.
472 * expr.c (expand_java_arrayload): Likewise.
473
aa2046c4
RH
4742002-09-21 Richard Henderson <rth@redhat.com>
475
36624850 476 * jcf-parse.c (get_constant): Decode from IEEE no matter
aa2046c4
RH
477 what the target format.
478
ee142fe7
KH
4792002-09-20 Kazu Hirata <kazu@cs.umass.edu>
480
481 * ChangeLog: Follow spelling conventions.
482 * class.c: Likewise.
483 * decl.c: Likewise.
484 * expr.c: Likewise.
485 * gjavah.c: Likewise.
486 * java-tree.h: Likewise.
487 * jcf-dump.c: Likewise.
488 * jcf-parse.c: Likewise.
489 * jvspec.c: Likewise.
490 * lang.c: Likewise.
491 * mangle.c: Likewise.
492 * parse.y: Likewise.
493
6a022513
TT
4942002-09-17 Tom Tromey <tromey@redhat.com>
495
496 * lex.c (java_read_unicode_collapsing_terminators): Handle case
497 where \r appears at EOF. Fixes PR java/7950.
498
4977bab6
ZW
4992002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
500
501 * jvspec.c (lang_specific_driver): Remove unused variable.
502
36a5eadd
GK
5032002-09-16 Geoffrey Keating <geoffk@apple.com>
504
505 * java-tree.h (union lang_tree_node): Add chain_next option.
506
efdc7e19
RH
5072002-09-16 Richard Henderson <rth@redhat.com>
508
509 * jcf-parse.c (get_constant): Runtime check for IEEE format;
510 use new real.h interface.
511 * jcf-write.c (find_constant_index): Use new real.h interface.
512 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
513
6522685d
KH
5142002-09-15 Kazu Hirata <kazu@cs.umass.edu>
515
25facd31 516 * lang.c: Follow spelling conventions.
6522685d 517
6e471ea7
PB
5182002-09-11 Per Bothner <per@bothner.com>
519
520 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
521 constant to the type of the field.
522 (java_complete_tree): Remove now-redundant code.
523
524 * parse.y (fold_constant_for_init): 'null' is not a constant expr.
525
23114b69
JR
5262002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
527
528 For PR java/5794:
529 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
530 return label if a ret instruction for the jsr has been reached.
531
f724acb8
RM
5322002-09-09 Ranjit Mathew <rmathew@hotmail.com>
533
534 * parse.y (DIR_SEPARATOR): Don't define.
535 (check_class_interface_creation): Use IS_DIR_SEPARATOR.
536
b139fcfd
AH
5372002-08-28 Andrew Haley <aph@redhat.com>
538
539 * verify.c (verify_jvm_instructions): Allow exception handler
540 inside code that is being protected, but generate a warning.
541 * except.c (link_handler): Initialize `expanded' in new eh_range.
542 (binding_depth, is_class_level, current_pc): Declare extern.
543
f60518c8
MW
5442002-09-01 Mark Wielaard <mark@klomp.org>
545
546 * gcj.texi: Add chapter about system properties.
547 Fixed some typos.
548
83dd5fae
TT
5492002-08-26 Tom Tromey <tromey@redhat.com>
550
551 * parse.y (try_builtin_assignconv): Allow narrowing primitive
552 conversion if RHS_TYPE is byte, short, or char.
553
00a8b314
TT
5542002-08-22 Tom Tromey <tromey@redhat.com>
555
556 * gcj.texi (Invoking gij): Document -cp and -classpath.
557
0d811e1a
TT
5582002-08-21 Tom Tromey <tromey@redhat.com>
559
79a3cb18
TT
560 * Make-lang.in (java/jcf-path.o): Use $(datadir), not
561 $(prefix)/share. For PR libgcj/7633.
562
0d811e1a
TT
563 For PR java/6005 and PR java/7611:
564 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
565 (java_can_use_bit_fields_p): New function.
566
ca75573a
TT
5672002-08-16 Tom Tromey <tromey@redhat.com>
568
569 * gcj.texi (Class Initialization): Mention class initialization of
570 arrays.
571
7149627b
AH
5722002-07-30 Andrew Haley <aph@cambridge.redhat.com>
573
574 * Make-lang.in (java-tree-inline.o): New.
575 (JAVA_OBJS): Add java-tree-inline.o.
576 * parse.y (source_end_java_method): Call java_optimize_inline.
577 (java_expand_method_bodies): Save method's tree in
578 DECL_SAVED_TREE.
579 (add_stmt_to_compound): Keep track of the number of statments.
580 * lang.c (java_init): Enable flag_inline_trees.
581 (java_post_options): If flag_inline_functions is on, enable
582 flag_inline_trees instread.
583 (decl_constant_value): New.
584 (java_tree_inlining_walk_subtrees): New.
585 * java-tree.h (DECL_NUM_STMTS): New macro.
586 (java_optimize_inline): Declare.
587 * expr.c (java_expand_expr): Allow a BLOCK to return a value.
588 Handle a LABEL_EXPR.
589 * decl.c (build_result_decl): If we already have a DECL_RESULT
590 don't make another.
591 (dump_function): New.
592 (java_optimize_inline): New.
593 (dump_function): New.
594
ee1884cb
JR
5952002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
596
597 For PR java/7483:
598 * parse.y (build_assertion): Invert return from
599 desiredAssertionStatus.
600
097684ce
BM
6012002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
602
36624850 603 * jcf-write.c (get_access_flags): Return correct access flags for
097684ce
BM
604 private and protected inner classes.
605
22aa533e
NS
6062002-08-08 Nathan Sidwell <nathan@codesourcery.com>
607
608 * java/Make-lang.in (java.mostlyclean): Remove coverage files.
609
b3426eb9
GK
6102002-08-05 Geoffrey Keating <geoffk@redhat.com>
611
612 * mangle_name.c: Don't include obstack.h twice.
613 * xref.c: Don't include obstack.h.
614
6d9f628e
GK
6152002-08-04 Geoffrey Keating <geoffk@redhat.com>
616
617 * class.c: (permanent_obstack): Delete declaration.
618 * constants.c: (permanent_obstack): Delete declaration.
619 * except.c: (permanent_obstack): Delete declaration.
620 * expr.c: (permanent_obstack): Delete declaration.
621 * jcf-parse.c: (permanent_obstack): Delete declaration.
622 (saveable_obstack): Delete declaration.
623 * parse.h: (permanent_obstack): Delete declaration.
624 * typeck.c: (permanent_obstack): Delete declaration.
625
d500c5d7
JM
6262002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
627
628 * gcj.texi (version-gcc): Increase to 3.3.
629
e75abdab
TT
6302002-07-22 Tom Tromey <tromey@redhat.com>
631
632 * lex.c (java_lex): Check for `e' or `E' after 0.
633
8943a0b4
RH
6342002-07-21 Richard Henderson <rth@redhat.com>
635
636 * lang.c (java_unsafe_for_reeval): New.
637 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
638
2f8dd115
NB
6392002-07-21 Neil Booth <neil@daikokuya.co.uk>
640
641 * jcf-path.c (GET_ENV_PATH_LIST): Remove.
642 (jcf_path_init): Use GET_ENVIRONMENT.
643
c5358a5d
RS
6442002-07-10 Roger Sayle <roger@eyesopen.com>
645 Zack Weinberg <zack@codesourcery.com>
646
647 * builtins.c (initialize_builtins): Remove defines that
648 handled C/C++ specific junk hereby removed from builtins.def.
649
5351f1ca
NB
6502002-07-07 Neil Booth <neil@daikokuya.co.uk>
651
652 * lang.c (java_post_options): Update prototype.
653
df061a43
RS
6542002-07-05 Roger Sayle <roger@eyesopen.com>
655
c5358a5d 656 * builtins.c (initialize_builtins): Ignore the additional
df061a43
RS
657 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
658 the builtins.def file.
659
68a830fe
TT
6602002-07-01 Tom Tromey <tromey@redhat.com>
661
662 For PR libgcj/7073:
663 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
664 specially.
665
6a2dd09a
RS
6662002-07-01 Roger Sayle <roger@eyesopen.com>
667
668 * java/decl.c (builtin_function): Accept additional parameter.
669 (java_init_decl_processing): Pass an additional NULL_TREE
670 argument to builtin_function.
671
32c4621e
M
6722002-06-29 T.J. Mather <tjmather@maxmind.com>
673
674 * gcj.texi: Fixed gcj invocation example so that it compiles.
675
bd466c7b
KG
6762002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
677
57ddd19c
KG
678 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
679 * parse.y (mark_parser_ctxt): Likewise.
33780b45
KG
680 (check_modifiers, declare_local_variables): Avoid incorrect
681 hardcoded constant 10.
57ddd19c 682
bd466c7b
KG
683 * lex.c (java_read_char): Avoid "comparison is always true"
684 warning.
685
b6532e57
AS
6862002-06-25 Andreas Schwab <schwab@suse.de>
687
688 * expr.c (JSR): Avoid undefined operation on PC.
689
eb6b51b9
KG
6902002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
691
692 * decl.c (clear_binding_level): Const-ify.
693
6d61f1bd
AD
6942002-06-13 Akim Demaille <akim@epita.fr>
695
696 * parse.y (class_declaration, interface_declaration): Make sure
697 all their rules have an action, in order to avoid meaningless `$$
698 = $1' and their type clashes.
699
c6226a7e
TT
7002002-06-11 Tom Tromey <tromey@redhat.com>
701
702 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
703 * parse-scan.y (statement_without_trailing_substatement): Added
704 assert_statement.
705 (assert_statement): New rule.
706 * java-tree.h (struct lang_type) [assertions]: New field.
707 (TYPE_USES_ASSERTIONS): New macro.
708 (CLASS_USES_ASSERTIONS): Likewise.
709 (FIELD_SYNTHETIC): New define.
710 * lex.c (java_lval;): Added ASSERT_TK.
711 * parse.y (ASSERT_TK): Added.
712 (statement_without_trailing_substatement): Added assert_statement.
713 (assert_statement): New rule.
714 (build_assertion): New function.
715 (maybe_generate_pre_expand_clinit): Create and initialize
716 $assertionsDisabled.
717 (lookup_package_type): Removed decl.
718 * keyword.h: Rebuilt.
719 * keyword.gperf (assert): New token.
720
e35b68b0
AD
7212002-06-10 Akim Demaille <akim@epita.fr>
722
723 * parse.y (interface_type_list, class_member_declaration)
724 (unary_expression_not_plus_minus): Remove duplicate %type.
725 Whitespace changes.
726
950ac1d3
TT
7272002-06-09 Tom Tromey <tromey@redhat.com>
728
ac57655a
TT
729 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
730
950ac1d3
TT
731 * parse.y (method_header): Give error message in all cases.
732 Fixes PR java/6865.
733
36d010ca
BM
7342002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
735
736 Don't use RTL inlining. Fix for PR java/6820.
737 * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
738 (flag_really_inline): New.
739 (java_decode_option): Set flag_really_inline if -finline-functions
740 is seen.
741 (java_post_options): New function. Turn off inlining unless
742 flag_really_inline is set.
743
64e68197
BM
7442002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
745
36624850 746 * gjavah.c (throwable_p): Accept argument as either a classname or
64e68197
BM
747 signature fragment. Create null-terminated classname string for super
748 when calling itself recursively.
36624850 749 (decode_signature_piece): Skip first character from class name
64e68197
BM
750 signature when calling throwable_p.
751
c238d806
L
7522002-06-08 H.J. Lu (hjl@gnu.org)
753
754 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
755
f06cafdf
TT
7562002-06-04 Tom Tromey <tromey@redhat.com>
757
758 * jcf-write.c (perform_relocations): Optmize a goto to a goto.
759
0bb5f0e4
MK
7602002-06-04 Michael Koch <konqueror@gmx.de>
761
762 * gcj.texi (Input Options): Fixed typo.
763
c02ebb18
ZW
7642002-06-04 Zack Weinberg <zack@codesourcery.com>
765
766 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
767 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
768 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
769 and all now-pointless local variables. Rename other local
770 variables to reflect their not being handles.
771
772 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
773 #if JCF_USE_STDIO blocks.
774
775 * parse.y: Add missing semicolon at end of rule.
776
e2500fed
GK
7772002-06-03 Geoffrey Keating <geoffk@redhat.com>
778
779 * check-init.c (attach_initialized_static_class): Delete, unused.
780 * parse.y: Use htab_t instead of struct hashtable, update
781 all uses.
782 * java-tree.h: Include hashtab.h instead of hash.h.
783 (struct lang_decl_func): Use htab_t, set up for gengtype.
784 (struct init_test_hash_entry): Delete.
785 (struct treetreehash_entry): New.
c02ebb18 786 (java_treetreehash_find): New
e2500fed
GK
787 (java_treetreehash_new): New prototype.
788 (java_treetreehash_create): New prototype.
789 (java_mark_tree): Delete prototype.
790 (java_hash_hash_tree_node): Delete prototype.
791 (java_hash_compare_tree_node): Delete prototype.
792 (attach_initialized_static_class): Delete prototype.
793 * expr.c (build_class_init): Update to use java_treetreehash
794 functions.
795 (java_expand_expr): Update to use htab_t.
796 (emit_init_test_initialization): Likewise.
797 * decl.c (java_mark_tree): Delete.
798 * class.c (init_test_hash_newfunc): Delete.
799 (java_hash_hash_tree_node): Delete.
800 (java_hash_compare_tree_node): Delete.
801 (add_method_1): Update to use java_treetreehash functions.
802 (JAVA_TREEHASHHASH_H): New macro.
803 (java_treetreehash_hash): New function.
804 (java_treetreehash_compare): New function.
805 (java_treetreehash_find): New function.
806 (java_treetreehash_new): New function.
807 (java_treetreehash_create): New function.
808 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
809
810 * Make-lang.in (java/parse.o): Depend on debug.h.
811 * java-tree.h (struct lang_identifier): Use gengtype.
812 (union lang_tree_node): New.
813 (struct lang_decl_func): Use gengtype.
814 (struct lang_decl_var): Likewise.
815 (struct lang_decl): Likewise.
816 * parse.y: Include debug.h.
817 * lang.c (LANG_HOOKS_MARK_TREE): Delete.
818
819 * lang.c (struct language_function): New dummy structure.
820
821 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
822 descriminator for DECL_LANG_SPECIFIC.
823 (struct lang_decl_func): Rename from struct lang_decl.
824 (enum lang_decl_desc): New.
825 (struct lang_decl): Make it a union. Update all the accessor macros.
826 (struct lang_type): Use gengtype.
827 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
828 * decl.c (java_dup_lang_specific_decl): All lang_decl structures
829 are now the same size.
830 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
831 use discriminator to mark DECL_LANG_SPECIFIC.
832
833 * Make-lang.in (gt-java-builtins.h): New rule.
834 (java/builtins.o): Add dependency on gt-<filename>.h.
835 * builtins.c: Use gengtype for roots.
836 (union string_or_tree): Use gengtype.
837 (struct builtin_record): Use gengtype.
838 * config-lang.in (gtfiles): Add builtins.c.
839
840 * Make-lang.in (gt-java-class.h, gt-java-constants.h,
841 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
842 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
843 gt-java-parse.h, gtype-java.h): Add rules to generate.
844 (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
845 (class.o): Add dependency on gt-*.h.
846 (constants.o): Likewise.
847 (decl.o): Likewise.
848 (expr.o): Likewise.
849 (jcf-parse.o): Likewise.
850 (jcf-write.o): Likewise.
851 (lang.o): Likewise.
852 * config-lang.in (gtfiles): New.
853 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
854 * constants.c: Replace uses of ggc_add_* with GTY markers.
855 Include gt-*.h.
856 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
857 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
858 * java-tree.h: Replace uses of ggc_add_* with GTY markers.
859 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
860 Include gt-*.h.
861 * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
862 Include gt-*.h.
863 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
864 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
865 gt-*.h.
866 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
867 Include gtype-java.h.
868
c442c002
TT
8692002-06-02 Tom Tromey <tromey@redhat.com>
870
871 Fix for PR java/5913:
872 * parse.y (patch_binop): Call patch_string on op1.
873
48711f4d
TT
8742002-06-02 Tom Tromey <tromey@redhat.com>
875
876 Fix for PR java/1343, PR java/6336:
877 * parse.y (make_nested_class_name): Remove extraneous `else'; fix
878 formatting. Changed return type.
879 (anonymous_class_counter): Moved to top of file.
880 (maybe_make_nested_class_name): Append number to class name for
881 function-local classes.
882
11ad4784
ZW
8832002-05-28 Zack Weinberg <zack@codesourcery.com>
884
885 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
886 * Make-lang.in: Update dependency lists.
887
a15135c9
MM
8882002-05-18 Mark Mitchell <mark@codesourcery.com>
889
890 * gjavah.c (throwable_p): Do not free the name of the class after
891 passing it to find_class.
892 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
893 * jcf-io.c (dirent.h): Include it.
894 (fnmatch.h): Likewise.
895 (compare_path): New function.
896 (java_or_class_file): Likewise.
897 (memoized_dirlist_entry): New type.
898 (memoized_dirlist_lookup_eq): New function.
899 (memoized_dirlists): New variable.
900 (caching_stat): New function.
901 (memoized_class_lookup_eq): New function.
902 (memoized_class_lookups): Likewise.
903 (find_class): Use memoized_class_lookups and caching_stat.
904 * jcf.h (JCF_USE_SCANDIR): Define.
905 * parse.y (java_expand_classes): Write the class files in reverse
906 order.
c02ebb18 907
1e6347d8
RO
9082002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
909
910 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
911
2f9a2cd7
MM
9122002-05-13 Mark Mitchell <mark@codesourcery.com>
913
914 * jcf-write.c (write_classfile): Unlink the temporary file if it
915 cannot be renamed. Use concat to build up the name of the
916 temporary file.
917
281524f4
MM
9182002-05-08 Mark Mitchell <mark@codesourcery.com>
919
c02ebb18 920 * jcf-write.c (write_classfile): Write the file to a
281524f4
MM
921 temporary file and then rename it.
922
6b9b5de2
TT
9232002-05-07 Tom Tromey <tromey@redhat.com>
924
5643bb97
TT
925 * gjavah.c (throwable_p): Use xstrdup, not strdup.
926
6b9b5de2
TT
927 Fix for PR java/1200:
928 * gjavah.c (throwable_p): New function.
929 (decode_signature_piece): Use it. A `WeakReference' isn't the
930 same as a `jweak'.
931 Include hashtab.h.
932 (gcjh_streq): New function.
933
2c7e9098
AJ
9342002-05-07 Andreas Jaeger <aj@suse.de>
935
c02ebb18 936 * parse.y (finish_for_loop): Fix if statement.
2c7e9098 937
486e8c0c
TT
9382002-05-06 Tom Tromey <tromey@redhat.com>
939
940 Fix for PR java/5941:
941 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
942 loop update expression.
943 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
944 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
945
30b50f90
MW
9462002-05-04 Mark Wielaard <mark@klomp.org>
947
948 For PR java/6519:
949 * parse.y (build_string_concatenation): Return just op1 only when op2
950 is null and op1 is a STRING_CST, otherwise always construct a
951 StringBuffer.
952
0a32c5ea
TT
9532002-04-27 Tom Tromey <tromey@redhat.com>
954
955 For PR java/6382:
956 * parse.y (string_convert_int_cst): New function.
957 (merge_string_cste): Use it.
958
ff45c01e
NB
9592002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
960
961 * java-tree.h (java_parse_file): Update.
962 (java_set_yydebug): Remove.
963 * jcf-parse.c (yydebug): Remove.
964 (java_set_yydebug): Die.
965 (java_parse_file): Update.
966 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
967
9127b2da
TT
9682002-04-24 Tom Tromey <tromey@redhat.com>
969
970 For PR java/6425:
971 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
972 EXPR_WFL_QUALIFICATION of qual_wfl.
973
67f0a6bf
PB
9742002-04-23 Per Bothner <per@bothner.com>
975
976 * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
977 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
978 (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
979
3d3707c1
TT
9802002-04-23 Tom Tromey <tromey@redhat.com>
981
982 For PR java/6314:
983 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
984 recognize `-fcompile-resource='.
985 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
986 a bit.
987
920f81e7
APB
9882002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
989
990 * jcf-parse.c: (yyparse): Don't prepend "./" to relative
991 paths. Fixes PR java/2791.
992
a2761d68
AH
9932002-04-19 Andrew Haley <aph@redhat.com>
994
c02ebb18
ZW
995 * jcf-write.c (push_long_const): lo, hi: New variables.
996 Use rshift_double to extract the high part of a 64-bit long.
997 Use WORD_TO_INT to extract the low part.
a2761d68 998
c02ebb18
ZW
999 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
1000 HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
1001 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
a2761d68 1002
7a228918
NB
10032002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
1004
1005 * typeck.c (incomplete_type_error): Remove.
1006
b798d8b6
BM
10072002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1008
1009 * class.c (make_class_data): Set DECL_ALIGN on static class data,
1010 for hash synchronization.
1011 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
1012 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
1013 class_type_node.
1014
1cde1d05
MW
10152002-04-16 Mark Wielaard <mark@klomp.org>
1016
1017 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
1018 negative zero.
1019
3020a7f5
BM
10202002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1021
1022 Fix for PR java/6294:
1023 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
1024 interfaces.
2c7e9098 1025
10aa83c7
BM
10262002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1027
1028 Fix for PR java/6085:
1029 * parse.y (patch_method_invocation): Always use build_access_to_thisn
1030 to get enclosing "this" argument for inner-class constructor
1031 invocation. Pass correct arguments to build_access_to_thisn.
1032
9fef1fe3
AG
10332002-04-10 Andreas Jaeger <aj@suse.de>
1034
1035 * gcj.texi (Input Options): Fix extdirs patch.
1036
10372002-04-10 Anthony Green <green@redhat.com>
1038
1039 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
1040
10412002-04-09 Anthony Green <green@redhat.com>
1042
1043 * gcj.texi (Input Options): Add --extdirs documentation.
1044 * jcf-dump.c (OPT_extdirs): New macro.
1045 (options): Add extdirs option.
1046 (help): Describe --extdirs.
1047 (main): Handle OPT_extdirs.
1048 * gjavah.c (OPT_extdirs): New macro.
1049 (options): Add extdirs option.
1050 (help): Describe --extdirs.
1051 (main): Handle OPT_extdirs.
1052 * jcf-path.c (jcf_path_init): Add extdirs support.
1053 (jcf_path_extdirs_arg): New function.
1054 (extensions): New variable to hold extensions path entries.
1055 * jvspec.c: Remove -fextdirs= when compiling main().
1056 * lang.c (java_decode_option): Handle -fextdirs=.
1057 * jcf.h (jcf_path_extdirs_arg): Declare new function.
1058 * Make-lang.in: Compile jcf-path with version info for use in
1059 identifying the appropriate libgcj.jar.
1060
66133721
TT
10612002-04-08 Tom Tromey <tromey@redhat.com>
1062
1063 For PR libgcj/5303:
1064 * .cvsignore: Added rmic.1 and rmiregistry.1.
1065 * gcj.texi (Top): Link to new nodes.
1066 (Invoking rmic): New node.
1067 (Invoking rmiregistry): Likewise.
1068 * Make-lang.in (java.generated-manpages): Added rmic.1 and
1069 rmiregistry.1.
1070 (java.maintainer-clean): Likewise.
1071 ($(srcdir)/java/rmic.1): New target.
1072 ($(srcdir)/java/rmiregistry.1): Likewise.
1073 (java.install-man): Handle rmic.1 and rmiregistry.1.
1074
00b224f8
BM
10752002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1076
1077 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
1078 Add note about handling uncaught exceptions. Add an exception handler
1079 to example.
1080
0b055ea1
BM
10812002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1082
1083 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
1084 after using it to patch CALL_EXPR.
1085
92c76eba
BM
10862002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1087
1088 * gcj.texi (Invocation): Document CNI invocation API.
1089
78ef5b89
NB
10902002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
1091
1092 * expr.c (truthvalue_conversion): Rename. Update.
1093 (expand_compare): Update.
1094 * java-tree.h (java_truthvalue_conversion): New.
1095 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1096
dffd7eb6
NB
10972002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1098
1099 * java-tree.h (java_mark_addressable): New.
1100 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1101 * typeck.c (mark_addressable): Rename, update.
1102
ceef8ce4
NB
11032002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1104
1105 * expr.c (build_java_binop): Update.
1106 * java-tree.h (java_signed_type, java_unsigned_type,
1107 java_signed_or_unsigned_type): Update.
1108 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1109 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1110 * parse.y (patch_binop): Update.
1111 * typeck.c (signed_or_unsigned_type, unsigned_type,
1112 signed_type): Update.
1113
7cb32822
NB
11142002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1115
1116 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
1117 (java_dummy_print): Remove.
1118 (lang_print_error): Rename. Exit early if inhibiting output.
1119 (inhibit_error_printing_function): New.
1120 (java_init): Don't set hook.
1121 (lang_init_source): Use new boolean.
1122
5bebbee7
MK
11232002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
1124
1125 * parse.y (do_resolve_class): Fix infinite recursion.
1126
bce54832
TT
11272002-03-29 Tom Tromey <tromey@redhat.com>
1128
1129 * parse.y (check_inner_circular_reference): Ignore incomplete
1130 types.
1131
b0c48229
NB
11322002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1133
1134 * Make-lang.in (builtins.o): Update.
1135 * boehm.c (get_boehm_type_descriptor): Update.
1136 * builtins.c: Include langhooks.h.
1137 * decl.c (java_init_decl_processing): Update.
1138 * java-tree.h (java_type_for_mode, java_type_for_size): New.
1139 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1140 Redefine.
1141 * typeck.c (type_for_mode, type_for_size): Update.
1142
5843e870
MK
11432002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
1144
1145 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
1146
073681c5
TT
11472002-03-28 Tom Tromey <tromey@redhat.com>
1148
1149 * except.c (expand_end_java_handler): If the handler type is NULL,
1150 use java.lang.Throwable. Fixes PR java/5986.
1151
242747e5
APB
11522002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com>
1153
1154 Fix for PR java/4715:
1155 * jcf-parse.c (parse_source_file_3): New function.
1156 (read_class): Call it.
1157 (java_parse_file): Likewise.
1158
f5eb5fd0
JH
1159Thu Mar 28 13:22:22 CET 2002 Jan Hubicka <jh@suse.cz>
1160
1161 * java/lang.c (java_init_options): Set flag_trapping_math to 0.
1162
c187b20e
BM
11632002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1164
1165 * parse.y (resolve_package): Initialize "decl".
1166 (lookup_package_type): Remove unused function.
1167
2f418289
BM
11682002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1169
1170 Fix for PR java/5993:
1171 * parse.y (resolve_package): Return the decl if resolution was
2c7e9098 1172 successful. Don't special case "java.lang" and "java.lang.reflect"
2f418289
BM
1173 packages. Set type_name to the merged identifier.
1174 (resolved_qualified_expression_name): Print error using "name" if
1175 resolve_package returns NULL_TREE.
1176
39bea374
TT
11772002-03-27 Tom Tromey <tromey@redhat.com>
1178
1179 * expr.c (expand_invoke): Don't generate null pointer check if
1180 we're calling <init>.
1181
c9d892a8
NB
11822002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1183
1184 * expr.c (java_lang_expand_expr): Rename java_expand_expr,
1185 fix prototype.
1186 * java-tree.h (java_lang_expand_expr): Similarly.
1187 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1188 (java_init): Don't set hook.
1189
05833095
BM
11902002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1191
1192 Fix for PR java/5850:
1193 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
1194 context if field was not found in the current scope.
1195 * expr.c (lookup_field): Don't look in enclosing contexts.
1196
c8c21a8c
TT
11972002-03-26 Tom Tromey <tromey@redhat.com>
1198
1199 Fix for PR java/5942:
1200 * parse.y (init_src_parse): Added sanity check.
1201 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
1202 elements, not 11.
1203
4f0ade92
NB
12042002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
1205
1206 * decl.c (lang_mark_tree): Rename java_mark_tree.
1207 * java-tree.h (java_mark_tree): New.
1208 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1209
15e5ad76
ZW
12102002-03-25 Zack Weinberg <zack@codesourcery.com>
1211
1212 * lex.c: Change java_perform_atof to take normal parameters
1213 instead of a pointer to a parameter block. Call it directly
1214 from java_lex.
1215
caaabaa1
MW
12162002-03-22 Mark Wielaard <mark@klomp.org>
1217
1218 Fix for PR java/5368:
1219 * parse.y (resolve_qualified_expression_name): Use decl not field_decl
1220 when printing error message.
1221
c88770e9
NB
12222002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
1223
1224 * decl.c (maybe_build_cleanup): Remove.
1225
c58408bf
TT
12262002-03-22 Tom Tromey <tromey@redhat.com>
1227
1228 Andrew Haley <aph@cambridge.redhat.com>
1229
1230 * expr.c (build_field_ref): Don't build a check if the field is a
1231 member of `this'.
1232
6c18d181
EB
12332002-03-21 Eric Blake <ebb9@email.byu.edu>
1234
1235 Fix for PR java/6026:
1236 * lex.c (java_lex): Fix parsing of consecutive floats.
1237
a5778545
TT
12382002-03-21 Tom Tromey <tromey@redhat.com>
1239
1240 * parse.y (build_access_to_thisn): Stop when FROM is not an inner
1241 class.
1242
43577e6b
NB
12432002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
1244
1245 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
1246 insert_block, getdecls, kept_level_p, global_bindings_p): New.
1247
fe911510
NF
12482002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
1249
2c7e9098 1250 * gcj.texi: @code{gcj} becomes @command{gcj}.
15e5ad76
ZW
1251 @code{gcc} becomes @command{gcc}.
1252 GcjRaw changed to gnu.gcc.RawData.
1253
7afff7cf
NB
12542002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
1255
1256 * decl.c (start_java_method): Use new hook.
1257 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
1258 (java_init): Remove old hook.
1259
c2d8e20a
APB
12602002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com>
1261
1262 * builtins.c (define_builtin): Do nothing if `type' is null.
1263 Fixes PR java/5876.
1264
6befbee5
BM
12652002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1266
1267 * parse.y (parser_check_super_interface): Fix error message
1268 grammar/order.
1269
320c81a6
KG
12702002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1271
1272 * jcf-parse.c (get_constant): Delete unused variables.
1273
52dabb6c
NB
12742002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
1275
1276 * java-tree.h (java_parse_file): New.
1277 * jcf-parse.c (yyparse): Rename java_parse_file.
1278 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
1279
568d1435
BM
12802002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1281
1282 * parse.y (craft_constructor): Return the constructor decl.
1283 (java_expand_classes): Update comments.
1284 (lookup_method_invoke): Call fix_constructors immediately for
1285 anonymous class. Fixes PR java/5935.
1286
8d39b447
AG
12872002-03-15 Anthony Green <green@redhat.com>
1288
1289 * jcf-parse.c (yyparse): Don't emit class registration
1290 constructor when compiling resource files.
1291
2f9834e8
KG
12922002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1293
1294 * lang.c (java_tree_code_type, java_tree_code_length,
1295 tree_code_name): Delete.
1296 (tree_code_type, tree_code_length, tree_code_name): Define.
1297 (java_init): Don't try to copy into the various tree_code
1298 arrays.
1299
f792bce5
TT
13002002-03-12 Tom Tromey <tromey@redhat.com>
1301
8a611251
TT
1302 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
1303 UTF-8, not UCS-2. Fixes PR java/5923.
1304
f792bce5
TT
1305 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
1306 a call_expr wrapped in a convert. Fixes PR java/5848.
1307
acf8bc25
BM
13082002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1309
1310 * jcf-write.c (write_classfile): Improve error strings.
1311
e0b1c206
EB
13122002-03-11 Eric Blake <ebb9@email.byu.edu>
1313
1314 * lex.c: Adjust comments to GNU standards.
1315
13162002-03-11 Eric Blake <ebb9@email.byu.edu>
1317
1318 Fix for PR java/5902:
1319 * lex.c (java_lex): Fix parsing of literals.
1320
884523df
BM
13212002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1322
1323 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
1324 to prevent it getting evaluated twice in the store checking case.
1325 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
1326 examining OBJECT.
1327
45597167
BM
13282002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1329
1330 * decl.c (java_init_decl_processing): Make sure class_type_node
1331 alignment is not less than 64 bits if hash synchronization is enabled.
1332
edcc88c1
PB
13332002-03-08 Per Bothner <per@bothner.com>
1334
1335 * parse.y (java_complete_lhs): Check if patch_assignment
1336 returned an error-mark.
1337
1338 * parse.y (try_builtin_assignconv): Don't special-case zero.
1339
5295f849
PB
13402002-03-08 Per Bothner <per@bothner.com>
1341
1342 Fix for PR java/5812.
1343 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label
be3ac45e 1344 here instead of in JSR macro. Likewise with load_type_state call.
5295f849 1345 Do the latter on if the return_pc has been verified (the jsr returns).
be3ac45e 1346 (JSR): Now just call build_java_jsr.
5295f849 1347
d3e1c36d
JS
13482002-03-07 Jeff Sturm <jsturm@one-point.com>
1349
1350 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
1351 (java.install-common): Link native driver to
1352 JAVA_TARGET_INSTALL_NAME.
1353
6d6b5cd7
DB
13542002-03-05 David Billinghurst <David.Billinghurst@riotinto.com>
1355
1356 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
1357 * builtins.c(sin_builtin): Likewise
1358 * builtins.c(sqrt_builtin): Likewise
1359
ba31d94e
ZW
13602002-03-03 Zack Weinberg <zack@codesourcery.com>
1361
1362 * java/expr.c, java/jcf-parse.c, java/lex.c:
1363 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
1364 REAL_ARITHMETIC blocks unconditional. Delete some further
1365 #ifdef blocks predicated on REAL_ARITHMETIC.
1366
ca7558fc
KG
13672002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1368
1369 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
1370 explicit sizeof/sizeof.
1371 * decl.c (java_init_decl_processing): Likewise.
1372 * jcf-parse.c (init_jcf_parse): Likewise.
1373 * parse.y (init_src_parse): Likewise.
1374
2a85660d
PB
13752002-03-02 Per Bothner <per@bothner.com>
1376
1377 Make --CLASSPATH by a synonym for --classpath and -classpath.
1378 Implement --bootclasspath.
1379 * jcf-path.c (classpath_u): Rename static variable to classpath_user.
1380 (classpath_l): Remove.
1381 (jcf_path_CLASSPATH_arg): Remove.
1382 (jcf_path_bootclasspath_arg): New function.
1383 (jcf_path_seal): Simplify accordingly.
1384
1385 * jcf.h (jcf_path_bootclasspath_arg): New declarations.
1386 (jcf_path_CLASSPATH): Remove declaration.
1387 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*.
1388 (lang_specific_driver): Translate -bootclasspath.
1389 * lang-options.h: Add --bootclasspath. Update --CLASSPATH.
1390 * lang.c (decode_lang_options): Do jcf_path_init first.
1391 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath.
1392 * gjavah.c: Also handle --bootclasspath.
1393 Handle --CLASSPATH as a synonum for --classpath.
1394 * jcf-dump.c: Likewise.
1395
1396 "." is not part of system path, but is the default for --classpath.
1397 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs.
1398 (jcf_path_seal): Add "." if no CLASSPATH specified.
1399
1400 * gcj.texi: Document changes.
1401
2060fd4c
BM
14022002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1403
1404 * expr.c (build_java_arraystore_check): Fix formatting.
1405
4f647d52
APB
14062002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
1407
1408 Fix for PR java/5758, java/5632:
1409 * jcf-parse.c (load_class): Renamed local variable, consider `.' an
1410 inner-class separator too.
1411 * parse.y (do_resolve_class): New local `decl_result.'
1412 Progressively build a name for what can have been loaded.
1413
022dcc46
BM
14142002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1415
1416 * expr.c (java_array_data_offset): Removed function.
1417 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
1418 (build_java_array_length_access): Obtain "length" value using a
1419 COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
1420 (build_java_arrayaccess): Correct comment. Access "data" using a
1421 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
1422 (build_java_arraystore_check): New function.
1423 (expand_java_arraystore): Use build_java_arraystore_check.
1424 * parse.y (patch_assignment): Simplify code to insert a store check
1425 when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
1426 * check-init.c (check_init): Update to reflect that an array length
1427 access is now a COMPONENT_REF.
1428 * gcj.texi (Code Generation): Improve documentation of
1429 -fno-bounds-check. Add documentation for -fno-store-check.
1430 * java-tree.h (flag_store_check): Declare.
1431 (build_java_arraystore_check): Declare.
1432 * lang.c (flag_store_check): Initialize to 1.
1433 (lang_f_options): Add store-check option.
1434 * jvspec.c: Don't pass store-check option to jvgenmain.
1435 * lang-options.h: Add help string for -fno-store-check.
1436
63e1b1c4
NB
14372002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
1438
1439 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
1440 * java-tree.h (java_dup_lang_specific_decl): New.
1441 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
1442
f458d1d5
ZW
14432002-02-27 Zack Weinberg <zack@codesourcery.com>
1444
1445 * builtins.c, decl.c: Delete traditional-mode-related code
1446 copied from the C front end but not used, or used only to
1447 permit the compiler to link.
1448
d2fb5329
TT
14492002-02-22 Tom Tromey <tromey@redhat.com>
1450
1451 Fix for PR java/2369:
1452 * jvspec.c (verify_class_name): New function.
1453 (lang_specific_driver): Call it.
1454 (JAVA_START_CHAR_P): New macro.
1455 (JAVA_PART_CHAR_P): Likewise.
1456
dcb36804
PB
14572002-02-22 Per Bothner <per@bothner.com>
1458
022dcc46 1459 * class.c: Change vtable to be more compatible with g++ v3 abi.
dcb36804
PB
1460 (get_dispatch_table): Prepend offset-to-top (always 0) and
1461 type_info pointer (currently unimplemented hence NULL) to vtable.
1462 Specifically, prepend offset-to-top and typeinfo ptr (currently null).
1463 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
1464 Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
1465 (build_dtable_decl): Add declarations for new fields.
1466
453c182f
PB
14672002-02-20 Per Bothner <per@bothner.com>
1468
1469 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
1470 to finit$ (otherwise generate_bytecode_insns drops it). However, we
1471 don't need to set it on the COMPOUND_EXPR - the caller does that.
1472
3babb2e3
NF
14732002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
1474
15e5ad76
ZW
1475 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
1476 `--CLASSPATH' becomes `--classpath.'
1477 * gjavah.c: Likewise.
1478 * jcf-dump.c: Likewise.
1479 * lang-options.h: Likewise.
1480 * lang.c: Likewise.
1481 * jcf-path.c: Updated comment.
1482 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
1483 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
1484 * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
1485 (jcf_path_CLASSPATH_arg): Ditto.
1486 (classpath_u): Updated leading comment.
3babb2e3 1487
9fe2cc05
PB
14882002-02-20 Per Bothner <per@bothner.com>
1489
1490 * builtins.c (check_for_builtin): New function.
1491 (build_call_or_builtin): Remove.
1492 * java-tree.h: Update accordingly.
1493 * expr.c (expand_invoke): Use build + check_for_builtin instead
1494 of build_call_or_builtin.
1495 * parse.y (patch_invoke): Likewise. This avoids needlessly creating
1496 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
1497 flag (which had caused jcf-write to incorrectly emit invokevirtual).
1498
6b6294f1
TT
14992002-02-17 Tom Tromey <tromey@redhat.com>
1500
1501 * java-tree.h (TYPE_STRICTFP): New macro.
1502 (struct lang_type) [strictfp]: New field.
1503 (CLASS_STRICTFP): New macro.
1504 (METHOD_STRICTFP): New macro.
1505 (struct lang_decl) [strictfp]: New field.
1506 * parse.y (method_header): Disallow strictfp constructor or
1507 abstract method.
1508 (STRICT_TK): Move before MODIFIER_TK.
1509 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
1510 (METHOD_MODIFIERS): Likewise.
1511 (INTERFACE_MODIFIERS): Likewise.
1512 * jcf-write.c (get_access_flags): Likewise.
1513 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
1514 (add_method_1): Likewise.
1515 (get_access_flags_from_decl): Likewise.
1516 * jcf-dump.c (print_access_flags): Print in standard order. Also,
1517 recognize strictfp flag.
1518 * jcf.h (ACC_STRICT): New define.
1519
5667c33d
DB
15202002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com>
1521
1522 * class.c(build_utf8_ref): Move declaration of decl_size
1523
5d65aeb7
TT
15242002-02-07 Tom Tromey <tromey@redhat.com>
1525
1526 * gcj.texi (Input Options): --CLASSPATH does not suppress system
1527 path.
1528
10c45943
AG
15292002-02-04 Anthony Green <green@redhat.com>
1530
1531 * class.c (build_utf8_ref): Put UTF-8 constants into merged
1532 sections if available.
1533
14b71055
BM
15342002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1535
1536 * parse.y (java_expand_classes): Fix typo in static field loop.
1537
f0c75752
RH
15382002-02-02 Richard Henderson <rth@redhat.com>
1539
1540 * class.c (add_field): Mark static fields external.
1541 (build_class_ref): Remove redundant set.
1542 * parse.y (java_expand_classes): Mark static fields of classes
1543 to be compiled as local.
1544 * jcf-parse.c (parse_class_file): Likewise.
1545
d4ad1c90
NF
15462002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk>
1547
1548 * gcj.texi (About CNI): New node.
1549
58fae3f7
CR
15502002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
1551
1552 PR java/5080
1553 * jcf-parse.c : Check for HAVE_LOCALE_H before using
1554 setlocale() with LC_CTYPE as a parameter.
1555 * jv-scan.c: Same.
1556
8512bbd7
JM
15572002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
1558
1559 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
1560 Follow GNU Coding Standards for --version.
1561
adc8cb5d
TT
15622002-01-28 Tom Tromey <tromey@redhat.com>
1563
1564 * expr.c (build_jni_stub): Ensure storage for `meth' is
1565 generated.
1566 * parse.y (java_complete_expand_methods): Set
1567 current_function_decl before building JNI stub.
1568
1d8478d7 15692002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
15e5ad76 1570
1d8478d7
AT
1571 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
1572 BUILT_IN_SQRTF.
1573
fec763fc
TT
15742002-01-22 Tom Tromey <tromey@redhat.com>
1575
1576 * decl.c (java_init_decl_processing): Use add_predefined_file.
1577 Predefine RawData.java.
1578 (predef_filenames): Removed.
1579 (java_init_decl_processing): Don't register predef_filenames.
1580 * jcf-parse.c (add_predefined_file): New function.
1581 (predefined_filename_p): Rewrote.
1582 (predefined_filename_p): No longer static.
1583 * decl.c (java_init_decl_processing): Call initialize_builtins.
1584 * Make-lang.in (JAVA_OBJS): Added builtins.o.
1585 (java/builtins.o): New target.
1586 * builtins.c: New file.
1587 * parse.y (patch_invoke): Use build_call_or_builtin.
1588 * java-tree.h (build_call_or_builtin): Declare.
1589 (initialize_builtins): Declare.
1590 (java_set_exception_lang_code): Removed unused declaration.
1591 (PREDEF_FILENAMES_SIZE): Removed.
1592 (java_tree_index): Added JTI_PREDEF_FILENAMES.
1593 (predef_filenames): New define.
1594 (add_predefined_file): Declare.
1595 (predefined_filename_p): Declare.
1596 * expr.c (expand_invoke): Use build_call_or_builtin.
1597
cc586d70
KG
15982002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1599
1600 * parse.y (patch_switch_statement): Fix format specifier.
1601
0df29596
TT
16022002-01-16 Tom Tromey <tromey@redhat.com>
1603
1604 More for PR java/5365:
1605 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
1606 default.
1607 (process_file): Generate include for
1608 java.lang.UnsupportedOperationExceptions.
1609
e1886ae0
AJ
16102002-01-15 Andreas Jaeger <aj@suse.de>
1611
1612 * .cvsignore: Add man pages.
1613
9c874875
TT
16142002-01-15 Tom Tromey <tromey@redhat.com>
1615
1616 Fix for PR java/5365:
1617 * gjavah.c (process_file): Turn class name into a file name.
1618
707635f9
MK
16192002-01-14 Matthias Klose <doko@debian.org>
1620
1621 * gcj.texi: Fix whitespace and formatting errors in the
1622 synopsis of the man pages. Update copyright.
1623
e6a5e462
TT
16242002-01-14 Tom Tromey <tromey@redhat.com>
1625
1626 For PR libgcj/5303:
1627 * Make-lang.in (java.install-man): Handle jv-convert man page.
1628 (java.generated-manpages): Added jv-convert.1.
1629 (java.uninstall): Remove jv-convert.1.
1630 (java.maintainer-clean): Likewise.
1631 ($(srcdir)/java/jv-convert.1): New target.
1632 * gcj.texi (Top): Link to jv-convert node.
1633 (Individual utilities): Likewise.
1634 (Invoking jv-convert): New node.
1635
0b0d4c5b 16362001-01-10 Jeff Sturm <jsturm@one-point.com>
f0c75752 1637 Martin Kahlert <martin.kahlert@infineon.com>
0b0d4c5b
JS
1638
1639 * jcf-parse.c (get_constant): Don't swap lo/hi for big
1640 endian targets when HOST_BITS_PER_WIDE_INT >= 64.
1641
c0b65ff1 16422002-01-03 Graham Stott <grahams@redhat.com>
79ab76fd 1643
f0c75752
RH
1644 * class.c (compile_resource_file): Update copyright date.
1645 Constify filename parameter.
1646 (java-tree.h): Update copyright date.
1647 (compile_resource_file): Constify filename parameter.
79ab76fd 1648
22e85ed4
GS
16492002-01-03 Graham Stott <grahams@redhat.com>
1650
f0c75752
RH
1651 * gcc/jcf-parse.c: Update copyright date.
1652 (yyparse): Constify resource_filename.
22e85ed4 1653
5e65297b
KG
16542002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1655
1656 * parse.y (src_parse_roots): Don't needlessly zero init.
1657
12cfb4fc
TT
16582001-12-31 Tom Tromey <tromey@redhat.com>
1659
1660 * parse.y (dump_java_tree): New function.
1661 (source_end_java_method): Call it.
1662 (end_class_declaration): Likewise.
1663 * lang.c (java_decode_option): Call dump_switch_p.
1664
dab722ee
TT
16652001-12-28 Tom Tromey <tromey@redhat.com>
1666
1667 * gen-table.pl: Don't process characters after \uffff. Added
1668 comment pointing to input file.
1669
7b0295ab
KG
16702001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1671
1672 * gen-table.pl: Const-ify output. Document the location of a
1673 suitable unicode input file.
1674
1675 * chartables.h: Regenerate.
1676
c083a819
KG
16772001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1678
1679 * chartables.h: Const-ify.
1680 * gjavah.c (options): Likewise.
1681 * jcf-dump.c (options): Likewise.
1682 * jv-scan.c (options): Likewise.
1683 * lex.c (java_start_char_p, java_part_char_p): Likewise.
1684 * parse.y (binop_lookup): Likewise.
1685
0b5826ac
KG
16862001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1687
1688 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
1689 the static arrays that are output.
1690 * jvspec.c (jvgenmain_spec): Make static.
1691 * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
1692 * keyword.h: Regenerate.
1693 * lang.c (string_option, process_option_with_no, lang_f_options,
1694 lang_W_options): Const-ify.
1695 * lex.c (java_lex): Likewise.
1696
9a07cfaf
RH
16972001-12-21 Richard Henderson <rth@redhat.com>
1698
1699 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
1700 (get_boehm_type_descriptor): ... here. Arrange for the
1701 TREE_TYPE to get set properly.
1702
f44fefca
RH
17032001-12-21 Richard Henderson <rth@redhat.com>
1704
ef969525
RH
1705 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
1706 only if the target requires collect2.
1707
f44fefca
RH
1708 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
1709
84a944b3
TT
17102001-12-20 Tom Tromey <tromey@redhat.com>
1711
1712 For PR java/4509:
1713 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
1714 CAN_COMPLETE_NORMALLY for the node.
1715 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
1716 generate code for second branch if first branch can't complete
1717 normally.
1718 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
1719 the loop head if the loop body can't complete normally.
1720
2d93b924
TT
17212001-12-20 Tom Tromey <tromey@redhat.com>
1722
1723 For PR java/4766:
1724 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
1725 case where `finally' clause can't complete normally.
1726
f2af50db
TT
17272001-12-20 Tom Tromey <tromey@redhat.com>
1728
1729 Fixes PR java/5057:
1730 * parse.y (analyze_clinit_body): Added this_class parameter.
1731 Check for more cases where we must keep <clinit>.
1732 (maybe_yank_clinit): Cleaned up flow control.
1733
7899e8b9
BM
17342001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1735
e1886ae0 1736 * decl.c (java_init_decl_processing): Don't initialize
7899e8b9
BM
1737 finit_leg_identifier_node.
1738 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
1739 (finit_leg_identifier_node): Remove.
1740 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
1741
de4984af
BM
17422001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1743
e1886ae0 1744 * mangle.c (mangle_member_name): Don't special-case for
de4984af
BM
1745 NO_DOLLAR_IN_LABEL.
1746 * mangle_name.c (unicode_mangling_length): Likewise.
1747 (append_unicode_mangled_name): Likewise.
1748 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
1749 code.
1750
08514ae4
BM
17512001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1752
1753 * expr.c (build_java_array_length_access): Don't force null pointer
1754 check unless flag_check_references is set.
1755
56b8325e
TT
17562001-12-20 Tom Tromey <tromey@redhat.com>
1757
1758 Fix for PR java/3417:
1759 * parse.y (patch_assignment): Added special processing for
1760 `return'.
1761 (patch_return): Don't convert booleans to integers, and don't
1762 special-case `null'.
1763
38be19f6
JM
17642001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
1765
1766 * config-lang.in (diff_excludes): Remove.
1767
b11cc610
JM
17682001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
1769
1770 * gcj.texi: Update link to GCC manual.
1771
e97562f5
TT
17722001-12-17 Tom Tromey <tromey@redhat.com>
1773
1774 * parse.y (link_nested_class_to_enclosing): Removed useless
1775 statement.
1776
2c5187c5
TT
17772001-12-16 Tom Tromey <tromey@redhat.com>
1778
1779 * mangle.c (mangle_method_decl): Never emit `C2' constructor.
1780 Fixes PR java/5088.
1781
a83f01f0
JM
17822001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
1783
1784 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
1785 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
1786 spelling errors.
1787
faf31866
KG
17882001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1789
1790 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
1791
9a8de998
BM
17922001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1793
1794 * decl.c (java_init_decl_processing): Build otable_type correctly.
1795 otable_decl is an otable_type.
1796
861ef928
BM
17972001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
1798
1799 * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
e1886ae0 1800 otable_type, otable_ptr_type, method_symbol_type,
861ef928
BM
1801 method_symbols_array_type, method_symbols_array_ptr_type): New
1802 field/global tree definitions.
1803 (flag_indirect_dispatch): New flag.
e1886ae0 1804 * decl.c (java_init_decl_processing): Initialize new otable and
861ef928
BM
1805 otable_syms type nodes and decls. Add new field "index" to
1806 method_type_node.
1807 * class.c (build_method_symbols_entry): New function.
1808 (make_method_value): Set "index" to to method's vtable index for
1809 virtual methods when indirect-dispatch is not used.
a83f01f0 1810 (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
861ef928
BM
1811 and set vtable_method_count to -1. Set otable and otable_syms field
1812 if indirect-dispatch is used and there was something to put in them.
1813 (build_method_symbols_entry): New function.
1814 (emit_offset_symbol_table): New function.
1815 * expr.c (get_offset_table_index): New function.
e1886ae0 1816 (build_invokevirtual): Build array reference to otable at the index
861ef928
BM
1817 returned by get_offset_table_index, and use the result as the vtable
1818 offset.
1819 (build_invokeinterface): Similar.
e1886ae0
AJ
1820 * jcf-parse.c (yyparse): If indirect-dispatch, call
1821 emit_offset_symbol_table at the end of compilation, after all classes
861ef928
BM
1822 have been generated.
1823 * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
1824 * lang.c (flag_indirect_dispatch): Define.
1825 (lang_f_options): Add indirect-dispatch flag.
1826
f1727481
MK
18272001-12-14 Matthias Klose <doko@debian.org>
1828
1829 * gcj.texi: Markup for man page generation. Document missing
1830 options printed by <tool> --help.
1831 Terminate description of gij's -ms option with a dot.
1832 * Make-lang.in ($(srcdir)/java/*.1): New targets.
1833 (java.generated-manpages java.install-man, java.uninstall,
1834 java-maintainer-clean) Updated.
1835
eec87542
HB
18362001-12-14 Hans Boehm <Hans_Boehm@hp.com>
1837
1838 * class.c (get_dispatch_table): Fix java vtable layout
1839 for TARGET_VTABLE_USES_DESCRIPTORS.
1840 * decl.c (java_init_decl_processing): Initialize
1841 alloc_no_finalizer_node, finalize_identifier_node.
1842 * expr.c (class_has_finalize_method): New function.
1843 (expand_java_NEW): Generate calls for finalizer-free allocation.
1844 (build_invokevirtual): Fix java vtable layout for
1845 TARGET_VTABLE_USES_DESCRIPTORS.
e1886ae0 1846 * java-tree.h (enum java_tree_index): New entries:
eec87542
HB
1847 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
1848 (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
1849 (class_has_finalize_method): declare.
1850 (HAS_FINALIZER_P): New macro.
1851 * parse.y (patch_invoke): Generate calls for finalizer-free
1852 allocation.
1853
81deb0a3
MK
18542001-12-12 Matthias Klose <doko@debian.org>
1855
1856 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
1857 whitespace at end of line.
1858
34026199
TT
18592001-12-11 Tom Tromey <tromey@redhat.com>
1860
1861 * lex.c (java_init_lex): Define wfl_to_string as
1862 gnu.gcj.runtime.StringBuffer unless generating bytecode.
1863
a3bcfa67
JS
18642001-12-11 Jeff Sturm <jsturm@one-point.com>
1865
1866 * class.c (make_method_value): Use null_pointer_node to
1867 represent empty exception table.
1868
3afdfae8
TT
18692001-12-10 Tom Tromey <tromey@redhat.com>
1870
1871 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
1872
96a9c44f
DR
1873Mon Dec 10 06:09:57 2001 Douglas B. Rupp <rupp@gnat.com>
1874
1875 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
1876
a5cb134d
PB
18772001-12-09 Per Bothner <per@bothner.com>
1878
1879 * check-init.c (current_switch_has_default): New static field.
1880 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
1881 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
1882 DEFAULT_EXPR seen, simulate a default alternative that copies state.
1883
1aca9b81
TT
18842001-12-09 Tom Tromey <tromey@redhat.com>
1885
1886 * check-init.c (check_init): Don't allow pre- or post- increment
1887 or decrement of final variable.
1888 (final_assign_error): Minor error message rewording.
1889
4440ffc4
TT
18902001-12-08 Tom Tromey <tromey@redhat.com>
1891
0854b1c4
TT
1892 * java-tree.h: Fixed typo.
1893
5fcab235
TT
1894 * gjavah.c (decompile_method): Don't decompile to `return this'
1895 for static methods.
1896
7b35f6c9
TT
1897 * gjavah.c (cxx_keywords): Re-sorted.
1898 * lex.c (cxx_keywords): Re-sorted.
1899
897c9e66
TT
1900 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
1901 else.
1902
4440ffc4
TT
1903 * gjavah.c (print_namelet): Clear subnamelets.
1904 (HANDLE_METHOD): Set `method_printed' earlier.
1905
8f25dc28
TT
19062001-12-07 Tom Tromey <tromey@redhat.com>
1907
1908 * lang.c (lang_f_options): Added
1909 optimize-static-class-initialization.
1910 (java_decode_option): Removed special case.
1911
a9040c77
PB
19122001-12-07 Per Bothner <per@bothner.com>
1913
1914 * check-init.c (check_init): Fix typo freeing memory twice.
1915
5412ef6b
PB
19162001-12-05 Per Bothner <per@bothner.com>
1917
1918 Restore support for static class initialization optimization.
1919 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
1920 * check-init.c (check_int): At end of BLOCK handle initialization
1921 blocks, which used to be done in java_complete_expand_method but did
1922 not handle the case where check_for_initialization might allocate
1923 more than a word of bits.
1924 * decl.c (lang_make_tree): The smic field is now a tree.
1925 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field.
1926 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro.
1927
1928 * parse.y (emit_test_initialization): Combine hash_lookup calls.
1929
1930 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
1931 Change from a hash table to a list.
1932 (struct_lang_decl): Change field 'smic' to match.
1933 * class.c (add_method_1): Initialize
1934 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
1935 * parse.y (adjust_init_test_initialization): Removed - inlined into -
1936 (java_expand_method_bodies): -here, since 'smic' is now a list.
1937 (patch_invoke): Add to 'smic' list, instead of hash_lookup.
1938
1939 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT.
1940
1941 * class.c (java_hash_compare_tree_node): Fix casts.
1942
4f88ccda
PB
19432001-12-04 Per Bothner <per@bothner.com>
1944
1945 * check-init.c: Handle definite unassignment to finals in addition
1946 to definite assignment.
1947 (loop_current_locals): New field.
1948 (num_current_locals, int start_current_locals, num_current_words):
1949 Make static.
1950 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses.
1951 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
1952 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros.
1953 (get_variable_decl, check_final_reassigned): New functions.
1954 (check_init, check_bool_init): Modify as needed for checking finals.
1955 (check_for_initialization): Take extra parameter and return void.
1956 Do extra start-up logic to check final fields for assignment.
1957 * parse.y (check_static_final_variable_assignment_flag,
1958 reset_static_final_variable_assignment_flag, check_final_assignment,
1959 check_final_variable_local_assignment_flag,
1960 reset_final_variable_indirect_assignment_flag,
1961 reset_final_variable_global_assignment_flag): Remove functions.
1962 (java_complete_expand_methods, outer_field_access_fix,
1963 patch_assignment): Remove no-longer used logic.
1964 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments.
1965 * parse.y (register_fields, java_complete_tree): Update accordingly.
1966
1967 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca.
1968 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New.
1969 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS.
1970
1971 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off.
1972
1973 * java-tree.h (DECL FINAL): New bit-field.
1974 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL.
1975 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL.
1976 (DECL_INIT_CALLS_THIS): New macro.
1977 (struct lang_decl): New bit-field init_calls_this.
1978 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
1979 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
1980 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now
1981 use it for both local variables and final fields.
1982 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr,
1983 and local_final.
1984 (struct lang_type): Remove hfv bit-field.
1985 (check_for_initialization): Change to return void.
1986
1987 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros.
1988 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS.
1989 * check-init.c (final_assign_error): New helper function.
1990 (check_final_reassigned, check_init): Use it.
1991 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
e1886ae0 1992
4f88ccda
PB
1993 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all
1994 bit-fields to unsigned.
1995
87d4ad08
PB
19962001-12-03 Per Bothner <per@bothner.com>
1997
1998 * parse.y (patch_binop): Minor constant folding.
1999
2000 * parse.y (build_current_thisn): Shorter 'buffer'.
2001
aedcdb65
PB
20022001-12-03 Per Bothner <per@bothner.com>
2003
2004 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
2005 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
2006 * jcf-write.c (generate_bytecode_insns): Remove support for
2007 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
2008 * check-init.c (check_init): Likewise.
2009
82ff672e
PB
20102001-12-03 Per Bothner <per@bothner.com>
2011
2012 * verify.c (subroutine_nesting): New function.
2013 (verify_jvm_instructions): Use it to fix logic for checking that
2014 we're done with the current subroutine.
2015
2016 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
2017 OPCODE_instanceof use POP_TYPE macro for better diagnostics.
2018
98a63868
PB
20192001-12-03 Per Bothner <per@bothner.com>
2020
2021 * jcf.h: Fix obvious typo in comment.
2022 * typeck.c (build_null_signature): Add comment.
2023
c725bd79
NB
20242001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
2025
2026 * expr.c: Remove leading capital from diagnostic messages, as
2027 per GNU coding standards.
2028 * jcf-io.c: Similarly.
2029 * jcf-parse.c: Similarly.
2030 * jv-scan.c: Similarly.
2031 * jvspec.c: Similarly.
2032 * mangle.c: Similarly.
2033
b736dee6
TCH
20342001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw>
2035 Alexandre Petit-Bianco <apbianco@redhat.com>
2036
e1886ae0 2037 * expr.c (build_java_arrayaccess): Call save_expr on array for
7e5f4bee 2038 correct evaluation order, modified comment, fixed indentation.
b736dee6
TCH
2039 * parse.y: (patch_assignment): Correctly extract the array base
2040 from the tree generate by build_java_arrayaccess, added comments.
2041 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
2042 Fixes PR java/3096, PR java/3803, PR java/3965.
2043
357351e5
NB
20442001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
2045
2046 * expr.c (expand_byte_code): Remove trailing periods from messages.
2047 * jcf-parse.c (load_class, jcf_parse): Similarly.
2048 * jcf-write.c (generate_classfile): Similarly.
2049 * lex.c (java_lex): Similarly.
2050
a7c5337d
BM
20512001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2052
2053 * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
2054
d3945f0a
JM
20552001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
2056
2057 * Make-lang.in (java.generated-manpages): New dummy target.
2058
b856c15d
RO
20592001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2060
2061 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
2062 ASM_FINAL_SPEC.
2063 (lang_specific_pre_link): Use set_input to set input_filename.
2064 Append `main' here.
2065 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
2066 (main): Fix definition.
2067 Strip `main' from classname.
2068 Fixes PR java/227.
2069
9c2fcf09
RS
20702001-11-18 Roger Sayle <roger@eyesopen.com>
2071
2072 * parse.h (java_expand_switch): Remove old prototype.
2073
8aeb42d0
TT
20742001-11-18 Tom Tromey <tromey@redhat.com>
2075
2076 Fix for PR java/1401:
2077 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
2078 arg0 is null.
2079 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
2080 correctly.
2081
22703ccc
NB
20822001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
2083
2084 * lang.c (finish_parse): Rename to java_finish.
2085 (LANG_HOOKS_FINISH, java_finish): New.
2086
f5e99456
NB
20872001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
2088
2089 * decl.c (init_decl_processing): Rename java_init_decl_processing.
2090 * java-tree.h: New prototype.
2091 * lang.c (java_init): Update prototype. Combine with old init_parse.
2092
150f086d
TT
20932001-11-13 Tom Tromey <tromey@redhat.com>
2094
2095 * gjavah.c (method_signature): New global.
2096 (HANDLE_METHOD): Set it.
2097 (decompile_return_statement): New function.
2098 (decompile_method): Use it.
2099 (print_method_info): Removed `synth' argument.
2100
5d69f816
NB
21012001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
2102
2103 * java-tree.h (java_set_yydebug): New.
2104 * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
2105 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
2106 (print_lang_decl, print_lang_type, print_lang_identifier,
2107 print_lang_statistics, lang_print_xnode): Remove.
2108
3ac88239
NB
21092001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
2110
2111 * jcf-parse.c (init_lex): Remove.
2112 * lang.c (language_string, lang_identify): Remove.
2113 (struct lang_hooks): Constify.
2114 (LANG_HOOKS_NAME): Override.
2115 (init_parse): Update.
2116
b21d216c
AF
21172001-11-08 Andreas Franck <afranck@gmx.de>
2118
e1886ae0 2119 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
b21d216c
AF
2120 program_transform_name the way suggested by autoconf.
2121 (java.install-common): Also transform auxiliary program names with
2122 program_transform_name.
2123
1fa73144
TT
21242001-11-08 Tom Tromey <tromey@cygnus.com>
2125
2126 * parse.y (trap_overflow_corner_case): New rule.
2127 (unary_expression): Use it.
2128 * lex.c (java_init_lex): Don't set minus_seen.
2129 (yylex): Don't use minus_seen. Communicate overflow to parser for
2130 it to handle.
2131 (error_if_numeric_overflow): New function.
2132 * parse.h (minus_seen): Removed field.
2133 (JAVA_RADIX10_FLAG): New define.
2134
5a21a051
TT
21352001-11-07 Tom Tromey <tromey@redhat.com>
2136
2137 Patch for PR java/1414:
2138 * parse.y (case_label_list): New global.
2139 (goal): Register case_label_list with GC.
2140 (java_complete_lhs): Save new case on case_label_list.
2141 (patch_switch_statement): Check for duplicate case labels.
2142
5573cb39
APB
21432001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com>
2144
2145 * parse.y (patch_assignment): Removed unused third argument.
2146 (java_complete_lhs): Removed unused third argument to patch_assignment.
2147
d23c55c2
NB
21482001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
2149
2150 * lang.c: Include langhooks-def.h.
2151 * Make-lang.in: Update.
2152
5b7874aa
ZW
21532001-10-31 Zack Weinberg <zack@codesourcery.com>
2154
2155 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
2156
2b472f91
BM
21572001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2158
2159 * mangle.c (find_compression_record_match): Don't match compression
2160 records for package name elements unless they occur at the start of
2161 the name. Fix for PR java/4717.
2162
961b8e70
BM
21632001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2164
2165 * expr.c (expand_java_field_op): Don't special-case references to
2166 java.lang.PRIMTYPE.TYPE.
2167 (build_primtype_type_ref): Removed.
2168 * java-tree.h (build_primtype_type_ref): Remove prototype.
2169 * parse.y (maybe_build_primttype_type_ref): Removed.
2170 (complete_function_arguments): Don't special-case references to
2171 java.lang.PRIMTYPE.TYPE.
2172 (patch_assignment): Likewise.
2173 (array_constructor_check_entry): Likewise.
2174
98f705b9
APB
21752001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
2176
2177 * mangle.c (static tree compression_table): Fixed leading comment.
2178 * parse.h (struct parser_ctxt): Fixed field comment.
2179 * parse.y (check_pkg_class_access): New prototype, fixed leading
2180 comment, new parameter used to emit error only if passed as true.
2181 (parse_check_super): Pass extra argument to check_pkg_class_access.
2182 (do_resolve_class): Likewise.
2183 (process_imports): Likewise.
2184 (read_import_dir): Fixed indentation.
2185 (find_in_imports_on_demand): New local class_type_name. Local
2186 node_to_use deleted. while loop changed into for loop. Report
2187 multiple definition only for accessible classes. Improved error
2188 message.
2189 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
2190 assigned to parameter list, fixed indentation. while loop changed
2191 into for loop, restore TREE_CHAIN on local `tem' before the next
2192 iteration.
2193
8ac61af7
RK
2194Tue Oct 23 14:02:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2195
2196 * lang.c (lang_get_alias_set): Deleted.
2197
0df6c2c7
KG
21982001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2199
299b5f9e
KG
2200 * gjavah.c (jni_print_char): Fix thinko in last change.
2201
0df6c2c7
KG
2202 * gjavah.c (jni_print_char, decode_signature_piece): Use
2203 safe-ctype macros and/or fold extra calls into fewer ones.
2204 * lex.c (java_read_unicode, java_lex): Likewise.
2205 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
2206 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
2207 * mangle_name.c (append_unicode_mangled_name,
2208 unicode_mangling_length): Likewise.
2209
17ed6335
RH
22102001-10-17 Richard Henderson <rth@redhat.com>
2211
2212 * Make-lang.in (java/lang.o): Depend on langhooks.h.
2213
c83303d8
APB
22142001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com>
2215
2216 * lang.c (langhooks.h): Included.
2217 (LANG_HOOKS_INIT): Redefined.
2218 (LANG_HOOKS_INIT_OPTIONS): Likewise.
2219 (LANG_HOOKS_DECODE_OPTION): Likewise.
2220 (struct lang_hooks lang_hooks): New initialization.
2221
be98560f
PB
22222001-10-11 Per Bothner <per@bothner.com>
2223
89b894e1
PB
2224 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
2225 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
2226 The former is simpler, and jcf-write.c handles it better.
2227 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
2228 or WITH_CLEANUP_EXPR.
2229 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no
2230 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
2231
be98560f
PB
2232 * parse.y (patch_if_else_statement): If the condition is constant,
2233 optimize away the test.
2234
3fb5c0eb
APB
22352001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
2236
2237 * parse.y (patch_cast): Call patch_string on the first operand of
c83303d8 2238 the incoming node, update it if necessary. Fixes PR java/4510.
3fb5c0eb 2239
908fecca
BM
22402001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2241
2242 * parse.y (find_as_inner_class): Don't disregard the enclosing scope
2243 when name qualifier matches a package name.
2244
f3ca28bf
TT
22452001-10-08 Tom Tromey <tromey@redhat.com>
2246
2247 Fix for PR java/4489:
2248 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
2249 force a new label when computing `body_block'.
2250
8b60264b
KG
22512001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2252
2253 * jcf-io.c (format_uint): Const-ify.
2254 * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
2255 * lex.c (java_get_line_col): Likewise.
2256 * parse.y (build_incdec): Likewise.
2257
3fb5c0eb
APB
22582001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
2259
2260 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
c83303d8 2261 a NULL enclosing context if appropriate. Fixes PR java/4466.
3fb5c0eb 2262
7754e0a9
APB
22632001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
2264
2265 * parse.y (patch_assignment): Use lvalue's original TYPE when
2266 building the final COMPOUND_EXPR.
2267 (try_reference_assignconv): Fixed leading comment.
2268
e9546ca4
APB
22692001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
2270
2271 * parse.y (check_final_variable_indirect_assignment): For
2272 COMPOUND_EXPR, return only if finals were found initialized
2273 properly, if not, keep on checking.
2274 (check_final_variable_global_assignment_flag): New local
2275 error_found, set when appropriate and used to decide whether to
2276 report uninitialized finals. Fixed typo in comment.
2277
f6a67a81
APB
22782001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com>
2279
2280 * decl.c (init_decl_processing): Fixed typo in predef_filenames
2281 last three initializations. Fixes PR java/4360.
2282
67231816
RH
22832001-09-21 Richard Henderson <rth@redhat.com>
2284
2285 * class.c (get_dispatch_table): Handle function descriptors.
2286 (build_dtable_decl): Likewise.
2287 * expr.c (build_invokevirtual): Likewise.
2288
870a5b8a
APB
22892001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com>
2290
2291 * parse.y (patch_method_invocation): Build class initialization
2292 when static finals are used to qualify method invocation.
2293 Fixes PR java/4366.
2294
2e3b2d2c
APB
22952001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
2296
2297 * parse.h: (WFL_STRIP_BRACKET): Re-written using
2298 build_type_name_from_array_name.
2299 (STRING_STRIP_BRACKETS): New macro.
2300 * parse.y (build_type_name_from_array_name): New function.
2301 (array_creation_expression:): Accumulate []s instead of [s.
2302 (cast_expression:): Accumulate []s instead of [s after cast type
2303 name.
2304 (build_array_from_name): Local string deleted, use
2305 build_type_name_from_array_name.
2306 (build_unresolved_array_type): Accumulate []s instead of [s after
2307 type name.
2308 (register_fields): Fixed comment.
2309 (resolve_class): Local name, base deleted, new locals tname and
2310 array_dims. Use build_type_name_from_array_name. Use array_dims to
2311 build array type.
2312 (purify_type_name): Use STRING_STRIP_BRACKETS.
2313
e64c46ce
AJ
23142001-09-18 Andreas Jaeger <aj@suse.de>
2315
2316 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
2317 * jv-scan.c: Likewise.
2318
3fb5c0eb
APB
23192001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
2320
2321 * parse.y (patch_method_invocation): Inner class creation context
2322 check not enforced within constructors. Fixes PR java/1873.
2323
7a91449c
TT
23242001-09-16 Tom Tromey <tromey@redhat.com>
2325
2326 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
2327 NOTE_PUSH for single-case push. Fixes PR java/4189.
2328
653d5d95
APB
23292001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
2330
2331 * java-tree.h (TYPE_IMPORT_LIST): New macro.
2332 (TYPE_IMPORT_DEMAND_LIST): Likewise.
2333 (struct lang_type): New fields import_list and import_demand_list.
2334 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
2335 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
2336 (do_resolve_class): New local saved_enclosing_type, initialized,
2337 passed as parameter to find_in_imports and find_in_imports_on_demand.
2338 (find_in_imports): Added paramater enclosing_type, use its
2339 TYPE_IMPORT_LIST when applicable.
2340 (find_in_imports_on_demand): Added parameter enclosing_type, use
2341 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
2342 declaration and initialization.
2343 (fold_constant_for_init): Switch/restore current_class to the
2344 appropriate context.
2345
6d334db8
MM
23462001-09-13 Mark Mitchell <mark@codesourcery.com>
2347
2348 * verify.c (verify_jvm_instructions): Fix typo.
2349
83182544
KG
23502001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2351
2352 * expr.c (expand_invoke): Const-ification.
2353 * parse.y (patch_method_invocation): Likewise.
2354
fd033052
KG
23552001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2356
2357 * gjavah.c (cxx_keywords): Const-ification.
2358 * keyword.gperf (java_keyword): Likewise.
2359 * lang.c (java_tree_code_name): Likewise.
2360 * lex.c (cxx_keywords): Likewise.
2361 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
2362
fcbc317f
RH
23632001-09-11 Richard Henderson <rth@redhat.com>
2364
2365 * parse.h (ctxp_for_generation): Mark extern.
2366
c347e68d
RH
23672001-09-10 Richard Henderson <rth@redhat.com>
2368
2369 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
2370
6a9f6727
MK
23712001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
2372
2373 * typeck.c (java_array_type_length, build_prim_array_type):
2374 Represent empty arrays by NULL index.
2375
0ef02b2d
APB
23762001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com>
2377
2378 * java-tree.h (compile_resource_file): Grouped with other prototypes.
e64c46ce 2379 * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
0ef02b2d 2380
f2767a67
AG
23812001-09-06 Anthony Green <green@redhat.com>
2382
2383 * class.c (O_BINARY): Define if necessary.
2384 (registerResource_libfunc): Declare.
2385 (init_class_processing): Initilize registerResource_libfunc.
2386 (compile_resource_file): New function.
2387 * java-tree.h (resource_name): Declare.
2388 (compile_resource_file): Declare.
2389 * jcf-parse.c (yyparse): Handle compiling java resource files.
2390 * lang.c (java_decode_option): Handle -fcompile-resource option.
2391 * jvspec.c (lang_specific_driver): Handle -R flag for compiling
2392 resource files.
2393 * gcj.texi (Code Generation): Add documentation for -R flag.
2394
731866ba
APB
23952001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
2396
2397 * jcf-write.c (generate_classfile): Issue an error in case of
2398 field/initial value mismatch.
2399 * parse.y (analyze_clinit_body): Keep <clinit> if an array is
2400 being initialized and we're generating bytecode.
2401 (java_complete_lhs): In MODIFY_EXPR section: added comments,
2402 set DECL_INITIAL properly when appropriate.
2403 Fixes PR java/4230
2404 Fixes PR java/4204
2405
0286a91d
PB
24062001-09-01 Per Bothner <per@bothner.com>
2407
2408 * parse.y (maybe_yank_clinit): A field without an initializer is not
2409 relevant. All initializers except static final and constant require
2410 <clinit>, regardless of flag_emit_class_files.
2411
289b57ee
PB
24122001-08-31 Per Bothner <per@bothner.com>
2413
2414 * class.c (set_constant_value): When not emiting class files, then a
2415 String ConstantValue is a utf8const_ptr_type.
2416
be0c7ff4
PB
24172001-08-30 Per Bothner <per@bothner.com>
2418
2419 * jcf-write.c (generate_classfile): Check that field is primitive
2420 or string before emitting ConstantValue attribute.
e64c46ce 2421
f0cdee96
PB
24222001-08-30 Per Bothner <per@bothner.com>
2423
2424 * parse.y (resolve_qualified_expression_name): If creating a
2425 COMPOUND_EXPR, set it's type correctly.
2426
bc8a5e56
PB
24272001-08-30 Per Bothner <per@bothner.com>
2428
2429 * jcf-io.c (open_class): Set filename field.
2430
2431 * jcf-parse,c (parse_class_file): Set current_function_decl
2432 for better error message when Code attribute is missing.
2433
2434 * lang.c (put_decl_node, lang_print_error): Re-arrange for
2435 better diagnostics, especially for constructors.
e64c46ce 2436
1b9ee723
PB
24372001-08-30 Per Bothner <per@bothner.com>
2438
2439 * jcf-write.c (generate_classfile): Don't write ConstantValue
2440 attribute if field is not final, for compatibility with jdk.
2441
2442 * jcf-write.c (generate_classfile): Convert ConstantValue values
2443 to correct type. Work-around for front-end bug.
2444 * class.c (set_constant_value): Error if constant has wrong type.
2445
6e4302ec
PB
24462001-08-30 Per Bothner <per@bothner.com>
2447
2448 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and
2449 "Double" are printed at verbosity 1.
2450
2451 * jcf-dump.c (main): Disable flag_print_attributes if --javap.
2452
2453 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long.
2454
3ed218d4
APB
24552001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
2456
2457 * parse.y (patch_assignment): Don't verify final re-assignment here.
2458 (java_complete_lhs): Verify assignments to finals calling
2459 patch_assignment. Verify re-assignments to finals before calling
2460 patch_assignment.
2461
24622001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
2463
2464 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
2465 Fixes PR java/1413
2466
24672001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
2468
2469 * lex.c (java_lex): new local found_hex_digits. Set and then used
2470 in test to reject invalid hexadecimal numbers.
2471 * parse.y (java_complete_tree): Prevent unwanted cast with
2472 initialized floating point finals.
2473 (patch_binop): Emit a warning when detecting a division by zero,
2474 mark result not constant, don't simplify non integer division.
2475
1a27eec1
PB
24762001-08-28 Per Bothner <per@bothner.com>
2477
2478 * jcf-write.c (generate_bytecode_insns): For increments and
9a07cfaf 2479 decrements just recurse to push constant. Improvement on Mark's patch.
1a27eec1 2480
06657dcd
MM
24812001-08-28 Mark Mitchell <mark@codesourcery.com>
2482
2483 * jcf-write.c (generate_bytecode_insns): Generate an integer to
2484 real conversion for increments and decrements of reals.
2485
1ca09b48
APB
24862001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
2487
2488 * parse.y (resolve_qualified_expression_name): Handle unresolved
2489 qualified expressions, prevent numerical qualifiers, fixed typo.
2490 Fixes PR java/4141
2491
7b02957e
APB
24922001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
2493
2494 * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
2495 don't report anything but deprecated class when marked so. Handle
2496 VAR_DECL.
2497 (patch_method_invocation): Check deprecation on methods and types.
2498 (patch_binop): code becomes an enum tree_code, added default: to
2499 switch to handle that. Detect division by zero, try to fold and
2500 return before using a subroutine.
2501
496849ba
APB
25022001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
2503
2504 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
e64c46ce 2505 file smaller than 4 bytes.
496849ba
APB
2506 * parse.y (check_inner_circular_reference): New function.
2507 (check_circular_reference): Likewise.
2508 (array_initializer:): Accept {,}.
2509 (java_check_circular_reference): Rewritten using
2510 check_circular_reference and check_inner_circular_reference.
2511 (java_complete_expand_method): Unconditionally save and restore
2512 the unpurged exception list.
2513 (build_dot_class_method_invocation): Unmangle signature parameter.
2514
66b461ce
TT
25152001-08-21 Tom Tromey <tromey@redhat.com>
2516
2517 * decl.c (init_decl_processing): Add `throws' field to method
2518 descriptor.
2519 * class.c (make_method_value): Compute `throws' field for method.
2520
df1c5346
APB
25212001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
2522
2523 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
2524 circularity is detected.
2525 (ctors_unchecked_throws_clause_p): Fixed leading comment.
2526
c8af3574
RH
25272001-08-17 Richard Henderson <rth@redhat.com>
2528
2529 * class.c (emit_register_classes): Add align parameter to
2530 call to assemble_integer.
2531
17126208
APB
25322001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com>
2533
2534 * jcf-parse.c (load_class): New locals saved and class_loaded. If
2535 loading a class_or_name fails, try considering an innerclass name
2536 and load the enclosing context.
2537 * parse.y (resolve_inner_class): New function.
2538 (find_as_inner_class): Added leading comment.
2539 (register_incomplete_type): Keep the current context as enclosing
2540 context for JDEP_FIELD dependencies.
2541 (do_resolve_class): Locals new_class_decl and super initialized to
2542 NULL. Call resolve_inner_class, explore the enclosing context
2543 superclass if necessary.
2544 Fixes PR java/4007
2545
4266d0b2
TT
25462001-08-16 Tom Tromey <tromey@redhat.com>
2547
2548 * jcf-dump.c (main): Updated for change to jcf_path_seal.
2549 * gjavah.c (main): Updated for change to jcf_path_seal.
2550 * lang.c (version_flag): New global.
2551 (java_decode_option): Recognize `-version'.
2552 (java_init): Update for change to jcf_path_seal.
2553 * jcf.h (jcf_path_seal): Added `print' argument.
2554 * jcf-path.c (jcf_path_seal): Added `print' argument.
2555
e78d8e51
ZW
25562001-08-13 Zack Weinberg <zackw@panix.com>
2557
2558 * Make-lang.in (java/decl.o): Update dependencies.
2559 * decl.c: Include libfuncs.h, don't include toplev.h.
2560
17126208
APB
25612001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com>
2562
2563 * decl.c (init_decl_processing): exception_type_node,
2564 class_not_found_type_node, and no_class_def_found_type_node
2565 initialized. predef_filenames augmented accordingly.
2566 instinit_identifier_node initialized.
2567 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
2568 * java-tree.h (enum java_tree_index): New entries
2569 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
2570 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
2571 (exception_type_node): New macro.
2572 (class_not_found_type_node): Likewise.
2573 (no_class_def_found_type_node): Likewise.
2574 (instinit_identifier_node): Likewise.
2575 (PREDEF_FILENAMES_SIZE): Adjusted.
2576 (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
2577 (struct lang_type): Fixed typo in bitfield name.
2578 (DECL_INSTINIT_P): New macro.
2579 (ID_INSTINIT_P): Likewise.
2580 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
2581 attribute.
2582 * parse.y (encapsulate_with_try_catch): New function.
2583 (generate_instinit): Likewise.
2584 (build_instinit_invocation): Likewise.
2585 (ctors_unchecked_throws_clause_p): Likewise.
2586 (add_instance_initializer): Deleted.
2587 (build_instance_initializer): Likewise.
2588 (in_instance_initializer): Likewise.
2589 (check_method_redefinition): instinit$ not to be verified.
2590 (java_complete_expand_methods): Generate instinit$, simplified code.
2591 (build_dot_class_method): Eliminated unnecessary locals. Use
2592 encapsulate_with_try_catch, removed unnecessary code.
2593 (fix_constructors): New local iii. Use build_instinit_invocation.
2594 (patch_method_invocation): Added comment.
2595 (maybe_use_access_method): Don't consider instinit$.
2596 (find_applicable_accessible_methods_list): Shorten the search for
2597 instinit$ too.
2598 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
2599 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
2600 (patch_throw_statement): Likewise. Fixed typo.
e64c46ce 2601
6ba57472
DE
26022001-08-12 David Edelsohn <edelsohn@gnu.org>
2603
2604 Revert:
2605 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2606 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
2607 ASM_FINAL_SPEC.
2608 (lang_specific_pre_link): Use set_input to set input_filename.
2609 Append `main' here.
2610 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
2611 (main): Fix definition.
2612 Strip `main' from classname.
2613 Fixes PR java/227.
2614
94aca342
ZW
26152001-08-11 Zack Weinberg <zackw@panix.com>
2616
2617 * lex.h: Don't include setjmp.h. Don't define
2618 SET_FLOAT_HANDLER or prototype set_float_handler.
2619
17126208
APB
26202001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com>
2621
2622 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
2623 `poplevel' in the right order.
2624
2cc07db4
RH
26252001-08-09 Richard Henderson <rth@redhat.com>
2626
2627 * Make-lang.in (class.o): Depend on TARGET_H.
2628 * class.c (emit_register_classes): Use target hooks instead of
2629 assemble_constructor and assemble_destructor.
2630
4009bb7d
APB
26312001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com>
2632
2633 * check-init.c (flags.h): Include
2634 (check_init): Don't report uninitialized static class
2635 initialization flags, don't free bit index when doing static class
2636 initialization optimization.
2637 (check_for_initialization): Return type changed to `unsigned int.'
2638 (attach_initialized_static_class): New function.
2639 * class.c (add_method_1): Create the initialized static class
2640 table if necessary.
2641 (finish_class): Always emit deferred inline methods.
2642 * decl.c (emit_init_test_initialization): Moved to expr.c
2643 (complete_start_java_method): Don't traverse
2644 DECL_FUNCTION_INIT_TEST_TABLE.
2645 (lang_mark_tree): Mark hash tables in function decls.
2646 * expr.c (emit_init_test_initialization): Moved from decl.c.
2647 (build_class_init): Create LAG_DECL_SPECIFIC for the static class
2648 initialization flag, set DECL_CONTEXT and
2649 LOCAL_CLASS_INITIALIZATION_FLAG.
2650 (java_lang_expand_expr): Emit initialization code for static class
2651 initialized flags when entering block, if necessary.
2652 * gcj.texi (-fno-optimize-static-class-initialization): Documented.
2653 * java-tree.h (flag_optimize_sci): New global variable declaration.
2654 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
2655 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
2656 (LOCAL_FINAL_P): Fixed typo in comment.
2657 (FINAL_VARIABLE_P): Likewise.
2658 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
2659 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
2660 (struct lang_decl): New fields `ict', `smic' and `cif.'
2661 (check_for_initialization): New returned value for global.
2662 (attach_initialized_static_class): New global function.
2663 (STATIC_CLASS_INIT_OPT_P): New macro.
2664 * lang-options.h (-fno-optimize-static-class-initialization): New flag.
2665 * lang.c (java_decode_option): Handle
2666 `-fno-optimize-static-class-initialization'
2667 * parse.y (start_complete_expand_method): New function.
2668 (java_expand_method_bodies): Likewise.
2669 (attach_init_test_initialization_flags): Likewise.
2670 (adjust_init_test_initialization): Likewise.
2671 (emit_test_initialization): Likewise.
2672 (java_complete_expand_methods): Nullify abstract and native method
2673 bodies.
2674 (java_complete_expand_method): New locals `fbody', `block_body'
2675 and `exception_copy.' Reorganized: directly return on empty method
2676 bodies, call `start_complete_expand_method', remember definitely
2677 initialized static class in function, don't expand method bodies.
2678 (java_expand_classes): Call `java_expand_method_bodies' before
2679 `finish_class' when compiling to native.
2680 (resolve_expression_name): Use `orig' after building outer class
2681 field access.
2682 (patch_invoke): Remember static method invokations.
2683
47907859
RH
26842001-08-06 Richard Henderson <rth@redhat.com>
2685
9a07cfaf 2686 * class.c (emit_register_classes): Pass a symbol_ref and priority
47907859
RH
2687 to assemble_constructor.
2688
36e10d77
APB
26892001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
2690
2691 * java-tree.h (all_class_filename): New macro.
2692 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
2693 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
2694 newly created IDENTIFIER_NODE to `all_class_filename.'
2695
f2f25b6d
JS
26962001-08-01 Jeff Sturm <jsturm@one-point.com>
2697
9a07cfaf
RH
2698 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
2699 Use ggc_add_tree_root to register roots.
e64c46ce 2700
6ad7895a
APB
27012001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
2702
2703 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
2704 second operand calling check_init.
2705 * decl.c (complete_start_java_method): Swaped second and third
2706 arguments while creating WITH_CLEANUP_EXPR node.
2707 * jcf-write.c (generate_bytecode_insns): Use second operand
2708 instead of third when handling WITH_CLEANUP_EXPR.
2709 * parse.y (java_complete_lhs): Expand second operand of
2710 WITH_CLEANUP_EXPR nodes.
2711 (patch_synchronized_statement): Swaped second and third arguments
2712 while creating WITH_CLEANUP_EXPR node.
2713
9d7d8362
APB
27142001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
2715
2716 * parse.y (create_interface): Avoid cyclic inheritance report when
2717 syntax error encountered during class definition.
2718 Fixes PR java/2956
2719
578672a2
RO
27202001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2721
2722 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
2723 ASM_FINAL_SPEC.
2724 (lang_specific_pre_link): Use set_input to set input_filename.
2725 Append `main' here.
2726 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
2727 (main): Fix definition.
2728 Strip `main' from classname.
2729 Fixes PR java/227.
2730
6a65ea5b
TT
27312001-07-18 Tom Tromey <tromey@redhat.com>
2732
2733 For PR java/2812:
2734 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
2735 * lex.c (java_new_lexer): Use ICONV_CONST.
2736 (java_read_char): Likewise.
2737 * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
2738 (jv-scan$(exeext)): Likewise.
2739
9d7d8362
APB
27402001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
2741
2742 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
2743 * parse.y (check_class_interface_creation): Allow `private' if the
2744 enclosing is not an interface.
2745 (create_interface): Interface tagged public if the enclosing
2746 context is an interface.
2747 (create_class): Class tagged public if the enclosing context
2748 is an interface.
2749 Fixes PR java/2959
2750
27512001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
2752
2753 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
2754 Fixes PR java/2665
2755
e6290e74
TJ
27562001-07-14 Tim Josling <tej@melbpc.org.au>
2757
2758 * check-init.c (check_init): Remove references to EXPON_EXPR.
2759
9d7d8362
APB
27602001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
2761
2762 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
2763 TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
2764 Fixes PR java/3602
2765
4b2dc1b2
TT
27662001-07-13 Tom Tromey <tromey@redhat.com>
2767
2768 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
2769 invocation.
2770
b6e3e1ff
APB
27712001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
2772
2773 * parse.y (patch_method_invocation): Don't override primary if one
2774 is already provided, but let this$<n> be built. Fixed comment.
2775
27762001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
2777
2778 * parse.y (empty_statement:): Report empty statement error only
2779 when found at class declaration level.
2780 Fixes PR java/3635
2781
a3cb5122
TT
27822001-07-12 Tom Tromey <tromey@redhat.com>
2783
2784 * expr.c (expand_load_internal): New function.
2785 (LOAD_INTERNAL): Use it.
2786
29fcdaae
APB
27872001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com>
2788
2789 * parse.y (verify_constructor_super): Compare anonymous class ctor
2790 args with `valid_method_invocation_conversion_p.'
2791 Fixes PR java/3285
2792
2df37a59
APB
27932001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
2794
2795 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
2796 `-fsyntax-only.' Fixes PR java/3248
2797
27982001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
2799
2800 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
2801
28022001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
2803
2804 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
2805 current function is static. Fixes PR java/1970
2806
28072001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
2808
2809 * parse.y (patch_method_invocation): Add enclosing context to ctor
2810 calls if necessary. Fixes PR java/2953
2811
28122001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
2813
2814 * parse.y (resolve_package): Abort if qualified expression member
2815 isn't right.
2816 (qualify_ambiguous_name): Don't qualify as type if `this' in use.
2817 Fixes PR java/1391
2818
74d04dd1
ZW
28192001-07-07 Zack Weinberg <zackw@stanford.edu>
2820
2821 * verify.c: Don't use // comments.
2822
af418b8c
TT
28232001-07-05 Tom Tromey <tromey@redhat.com>
2824
2825 * lang.c (flag_assume_compiled): Removed.
2826 * java-tree.h (flag_assume_compiled): Removed.
2827 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
2828 -fhash-synchronization, -fuse-divide-subroutine,
2829 -fcheck-references, -femit-class-file, -femit-class-files,
2830 -fassume-compiled. Updated --encoding information. Changed
2831 -foutput-class-dir to `-d'.
2832
84a5b4f8
DB
28332001-07-04 Daniel Berlin <dan@cgsoftware.com>
2834
2835 * jcf-parse.c (parse_class_file): Add lineno parameter to
2836 debug_start_source_file call.
2837
0671eaf6
JM
28382001-07-04 Joseph S. Myers <jsm28@cam.ac.uk>
2839
2840 * gcj.texi: Use gpl.texi.
2841 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
2842 dependencies and use doc/include in search path.
2843
9be7529d
JS
28442001-07-03 Jeff Sturm <jsturm@one-point.com>
2845
2846 * parse.y (fix_constructors): Test if a CALL_EXPR invokes
2847 `this'. If so, don't build instance initializers.
2848
51e23701
APB
28492001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com>
2850
2851 * parse.y (resolve_expression_name): Improved error message for
2df37a59 2852 inner class cases. Fixes PR java/1958
51e23701 2853
46f018e1
GDR
28542001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
2855
2856 * lang.c: #include diagnostic.h
2857 (lang_print_error): Add a `diagnostic_context *' parameter.
2858 (java_dummy_print): Likewise.
2859 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
2860
51e23701
APB
28612001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
2862
2863 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
2864 * jcf.h (typedef struct JCF): New bitfield `finished.'
2865 (JCF_FINISH): Set `finished.'
2866 (JCF_ZERO): Reset `finished.'
2867 Fixes PR java/2633
2868
28692001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
2870
2871 * parse.y (class_body_declaration:): Don't install empty instance
2872 initializers.
2873 Fixes PR java/1314
2874
4a70e37e
APB
28752001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
2876
2877 * class.c (set_super_info): Call `set_class_decl_access_flags.'
2878 (set_class_decl_access_flags): New function.
2879 * java-tree.h (set_class_decl_access_flags): New prototype.
2880 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
2881 (parse_class_file): New local `decl_max_locals.' Take wide types
2882 into account to compute DECL_MAX_LOCALS.
2883 * parse.y (type_import_on_demand_declaration:): Ignore duplicate
2884 imports on demand.
2885
561a0365
JM
28862001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl>
2887
2888 * zipfile.h: Use GCC_JCF_H instead of JCF_H.
2889
8e41c4f3
APB
28902001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
2891
2892 * class.c (java_hash_tree_node): Fixed indentation in leading comment.
2893 * parse.y (do_resolve_class): Moved comments out to leading comment
2894 section. Removed local `start', New local `_ht' and
2895 `circularity_hash.' Record `enclosing' in hash table and search
2896 it to detect circularity. Use `enclosing' as an argument to
2897 `lookup_cl.' Free the hash table when done.
2898
c01b7cdf
TT
28992001-06-19 Tom Tromey <tromey@redhat.com>
2900
2901 * lex.c (java_read_char): Disallow invalid and overlong
2902 sequences. Fixes PR java/2319.
2903
21a6bb3c
JS
29042001-06-05 Jeff Sturm <jsturm@one-point.com>
2905
2906 * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
2907
0c90837b
APB
29082001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com>
2909
2910 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
2911 arguments accordingly.
2912
1347cc4f
JM
29132001-06-02 Joseph S. Myers <jsm28@cam.ac.uk>
2914
2915 * gcj.texi: Move contents to just after title page.
2916
12e248d6
APB
29172001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
2918
2919 * parse.y (type_literals:): Use `build_incomplete_class_ref' with
2920 builtin type.
2921 (patch_incomplete_class_ref): Build the class ref, build the class
2922 init if necessary, complete the tree.
2923 Fixes PR java/2605
2924
19559012
APB
29252001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
2926
2927 * parse.y (lookup_field_wrapper): Test `name' code.
2928 (resolve_qualified_expression_name): Test `qual_wfl' code.
2929 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
2930 handle `qual_wfl' by code.
2931 (maybe_build_primttype_type_ref): Test `wfl' code.
2932
eb153223
TP
29332001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2934
2935 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
2936 fdl.texi.
2937 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
2938 the dvi file in the java directory.
2939
88657302
RH
29402001-05-25 Sam TH <sam@uchicago.edu>
2941
2942 * gen-table.pl javaop.h jcf.h lex.h,
2943 parse.h: Fix header include guards.
2944
719f0fde
JM
29452001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
2946
2947 * jv-scan.c (version): Update copyright year.
2948
075516bc
PB
29492001-05-21 Per Bothner <per@bothner.com>
2950
2951 * jcf-parse.c (read_class): If class is from .class or .zip file
2952 and it's already been read, don't push/pop parser context.
2953
9d289604
PB
29542001-05-18 Per Bothner <per@bothner.com>
2955
2956 * jvspec.c (lang_specific_pre_link): Re-arrange the linker
9a07cfaf 2957 command line so the jvgenmain-generated main program comes first.
9d289604 2958
48187504
TT
29592001-05-15 Tom Tromey <tromey@redhat.com>
2960
2961 * class.c (build_utf8_ref): Don't generate identifier based on
2962 utf8const contents.
2963
f17f1898
RH
29642001-05-12 Richard Henderson <rth@redhat.com>
2965
2966 * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
2967 * expr.c (java_lang_expand_expr): Expand it.
2968 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
2969 calling build_exception_object_ref.
2970 * parse.y (catch_clause_parameter): Likewise.
2971 (build_dot_class_method): Likewise.
2972 (try_reference_assignconv): Likewise.
2973 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
2974 * jcf-write.c (generate_bytecode_insns): Likewise.
2975
352b3f3f
APB
29762001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
2977
2978 * parse.y (build_unresolved_array_type): Set
2979 EXPR_WFL_QUALIFICATION on the newly created wfl.
2980 Fixes PR java/2538. Fixes PR java/2535.
2981
41ee0877
APB
29822001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
2983
17126208 2984 * parse.y (fix_constructors): Removed unnecessary assignment to
41ee0877
APB
2985 local. Moved assignment to `this$<n>', fixed comments and
2986 indentation.
2987 (build_wfl_wrap): Fixed indentation.
2988 Fixes PR java/2598, java/2579 and java/2658.
2989
4def8930
MD
29902001-05-03 Mo DeJong <mdejong@redhat.com>
2991
9a07cfaf 2992 * lex.c (java_new_lexer): Call iconv_close on temp handle used to
4def8930
MD
2993 check for byte swap.
2994
8fc6a63c
JS
29952000-05-02 Jeff Sturm <jsturm@one-point.com>
2996
2997 * expr.c (build_class_init): Move MODIFY_EXPR
2998 outside of COND_EXPR. Remove variable `call'.
2999
3e411c3f
KG
30002001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3001
3002 * decl.c: NULL_PTR -> NULL.
3003 * jcf-write.c: Likewise.
3004
0cd015ea
TT
30052001-05-01 Tom Tromey <tromey@redhat.com>
3006
3007 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
3008 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
3009 * gcj.texi: Updated copyright text. Include fdl.texi.
3010 (Top): Link to new node.
3011
6a117d00
PB
30122001-05-01 Per Bothner <per@bothner.com>
3013
3014 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon.
3015
063df563
PB
30162001-05-01 Per Bothner <per@bothner.com>
3017
3018 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the
3019 import_list contains the name, not the TREE_PURPOSE.
3020
962584ea
KG
30212001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3022
3023 * jcf-io.c (read_zip_member): Cast to long in comparison with
3024 signed value.
3025
3026 * jvspec.c (lang_specific_driver): Initialize variables.
3027
3028 * mangle.c (find_compression_record_match): Likewise.
3029
3030 * typeck.c (build_null_signature): Provide static prototype. Mark
3031 parameter with ATTRIBUTE_UNUSED.
3032
3033 * verify.c (verify_jvm_instructions): Initialize variable.
3034
86d9e8d8
BM
30352001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3036
3037 * parse.y (do_resolve_class): Check for cyclic inheritance during
e64c46ce 3038 inner class resolution.
86d9e8d8 3039
9c491eb8
PB
30402001-04-27 Per Bothner <per@bothner.com>
3041
3042 * parse.y (java_expand_classes): Don't change ctxp_for_generation
3043 while iterating, since that could cause gc to lose stuff.
3044
56fe39c8
PB
30452001-04-26 Per Bothner <per@bothner.com>
3046
3047 Fix method search wrt scope of inner classes to match JLS2.
3048 * typeck.c (build_null_signature): New static function.
3049 (has_method): New function. Uses build_null_signature and lookup_do.
3050 * java-tree.h (has_method): New declaration.
3051 * parse.y (find_applicable_accessible_methods_list): Do not search
3052 context of inner classes here.
3053 (patch_method_invocation): Search scope, ie. current and outer clases,
3054 for method matching simple name, to find class.
3055
8789b9fa
PB
30562001-04-26 Per Bothner <per@bothner.com>
3057
3058 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
3059 Fix thinko: If a single case, use if_icmpeq, not ifeq.
3060
3061 * constants.c (find_methodref_with_class_index): New function.
3062 (find_methodref_index): Use find_methodref_with_class_index.
3063 * java-tree.h (find_methodref_with_class_index): New declaration.
3064 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
3065 DECL_CONTEXT, instead use new find_methodref_with_class_index function.
3066 If context changed from interface to class, don't use invokeinterface.
3067
5acea42b
PB
30682001-04-25 Per Bothner <per@bothner.com>
3069
3070 * verify.c (verify_jvm_instructions): For field instructions,
3071 check that field index is valid. For invoke instructions, check that
3072 method index is valid.
3073
dd6f3662
AO
30742001-04-25 Alexandre Oliva <aoliva@redhat.com>
3075
3076 * config-lang.in (target_libs): Copy from $libgcj_saved.
3077
28f7d9d0
BM
30782001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
3079
3080 * decl.c (init_decl_processing): Add new class "protectionDomain"
3081 field.
3082 * class.c (make_class_data): Set initial value for "protectionDomain".
3083
d4c3ec27
KG
30842001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3085
3086 * jvspec.c (lang_specific_driver): Fix memory allocation
3087 deficit, by using concat in lieu of xmalloc/sprintf.
3088
3c0ce750
PB
30892001-04-20 Per Bothner <per@bothner.com>
3090
3091 Fixes to compile multiple .class files at once.
3092 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P.
3093 * java-tree.h (CLASS_PARSED_P): New macro.
3094 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P.
3095 * jcf-parse.c (jcf_parse_source): Inline into read_class.
3096 (read_class): Avoid some code duplication.
3097 Don't call JCF_FINISH for a .class file - might be needed later.
3098 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P
3099 rather than CLASS_LOADED_P, since latter implies class laid out.
3100 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2.
3101 * parse.y: Don't need to set CLASS_LOADED_P for array types.
3102
d6684bc8
KG
31032001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3104
3105 * Make-lang.in (java/boehm.o): Depend on toplev.h.
3106
3107 * boehm.c: Include toplev.h.
3108
10e2af38
TT
31092001-04-06 Tom Tromey <tromey@redhat.com>
3110 Alexandre Petit-Bianco <apbianco@redhat.com>
3111
3112 Fix for PR gcj/1404 and PR gcj/2332:
3113 * parse.y (build_array_from_name): If we use the type_wfl then
3114 accumulate dimensions from the original type as well.
3115 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
3116
2d9fea5d
TT
31172001-04-06 Tom Tromey <tromey@redhat.com>
3118
3119 * parse.y (analyze_clinit_body): Return true if the second operand
3120 of a METHOD_EXPR is nonzero.
3121
613bb86e
TT
31222001-04-06 Tom Tromey <tromey@redhat.com>
3123
3124 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
3125 directory.
3126 ($(srcdir)/java/parse.c): Likewise.
3127
8b66cd8f
APB
31282001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com>
3129
3130 * gcj.texi: Use `which-gcj' instead of `which-g77.'
3131 (version-gcc): Initialized.
3132 (which-gcj): Likewise.
3133
73c299fc
APB
31342001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
3135
3136 * java-tree.h (struct lang_decl): New macro
3137 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
3138 * parse.y (build_instance_initializer): New function.
3139 (add_instance_initializer): Use it.
3140 (java_fix_constructors): Set `current_class' before fix pass.
3141 (fix_constructors): Just return if already fixed. Move `super()'
3142 invokation ahead. Use `build_instance_initializer.'
3143 Fixes PR java/1315.
3144
93a6eb78 31452001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
e64c46ce 3146
93a6eb78
APB
3147 * parse.y (resolve_qualified_expression_name): Pass field's
3148 DECL_CONTEXT to `not_accessible_p.'
3149 (not_accessible_p): Changed parameters order in `inherits_from_p'
3150 invokation.
3151
4956c16e
AH
31522001-03-27 Andrew Haley <aph@cambridge.redhat.com>
3153
3154 * lang-options.h: Add flag_check_references.
3155
3cc48399
PB
31562001-04-04 Per Bothner <per@bothner.com>
3157
3158 * java-tree.h (CONSTANT_VALUE_P): New macro.
3159 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
3160 * parse.y (maybe_build_class_init_for_field): New static function.
3161 (resolve_expression_name, resolve_field_access): Use
e64c46ce 3162 maybe_build_class_init_for_field instead of build_class_init
3cc48399
PB
3163 This does not do the init if the field is compile-time-constant.
3164 (resolve_field_access): Simplify.
3165
3166 * parse.y (fold_constant_for_init): Merge test into switch.
3167
d02af173
ZW
31682001-04-03 Zack Weinberg <zackw@stanford.edu>
3169
3170 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
3171 on gansidecl.h.
3172 * buffer.c, jvgenmain.c: Don't include gansidecl.h.
3173
44a2150d
ZW
31742001-04-02 Zack Weinberg <zackw@stanford.edu>
3175
3176 * expr.c (pop_type_0): Save the result of the first
e64c46ce 3177 lang_printable_name call in a scratch buffer, so it
44a2150d
ZW
3178 won't be clobbered by the second call.
3179
de307574
APB
31802001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
3181
3182 * parse-scan.y (array_type:): Rewritten.
3183 (type_declaration:): `empty_statement' replaces `SC_TK.'
3184 (class_member_declaration:): `empty statement' added.
3185 (method_body:): Simplified.
3186 (static_initializer:): Likewise.
3187 (primary_no_new_array:): Use `type_literals.'
3188 (type_literals:): New rule.
3189 (dims:): Set and update `bracket_count.'
3190 Fixes PR java/1074. Fixes PR java/2412.
3191
2ff50199
APB
31922001-03-28 Hans Boehm <boehm@acm.org>
3193
3194 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
3195 (get_boehm_type_descriptor): Set type on returned value to be a
3196 pointer length integer.
3197
80122075
KG
31982001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3199
3200 * expr.c (pop_type_0): Call `concat' rather than building the
3201 string manually.
3202 (pop_type): Add format specifier in call to `error'.
3203
3204 * parse.y (patch_method_invocation): Avoid casting away
3205 const-ness.
3206
0f5c1ee4
JO
32072001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
3208
3209 * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
3210
52a11cbf
RH
32112001-03-28 Richard Henderson <rth@redhat.com>
3212
3213 IA-64 ABI Exception Handling:
3214 * Make-lang.in (except.o): Don't depend on eh-common.h.
3215 * check-init.c (check_init): Handle EXC_PTR_EXPR.
3216 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
3217 [soft_exceptioninfo_call_node]: Remove.
3218 [eh_personality_libfunc, lang_eh_runtime_type]: New.
3219 (end_java_method): No emit_handlers.
3220 * except.c (java_set_exception_lang_code): Remove.
3221 (method_init_exceptions): Don't call it.
3222 (prepare_eh_table_type): No CATCH_ALL_TYPE.
3223 (build_exception_object_ref): New.
3224 (expand_end_java_handler): Update for except.h name changes.
3225 (emit_handlers, expand_resume_after_catch): Remove.
3226 * expr.c (java_lang_expand_expr): Update for except.h name changes.
3227 (process_jvm_instruction): Use build_exception_object_ref.
3228 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
3229 (soft_exceptioninfo_call_node): Remove.
3230 (build_exception_object_ref): Declare.
3231 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
3232 soft_exceptioninfo_call_node. Move processing ...
3233 [EXC_PTR_EXPR]: ... here.
3234 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
3235 * parse.y (catch_clause_parameter): Use build_exception_object_ref.
3236 (source_end_java_method): No java_set_exception_lang_code or
3237 emit_handlers.
3238 (build_dot_class_method): Use build_exception_object_ref.
3239 (try_reference_assignconv): Check EXC_PTR_EXPR not
3240 soft_exceptioninfo_call_node.
3241
ce1c98ea
RH
32422001-03-28 Richard Henderson <rth@redhat.com>
3243
3244 * java-tree.h (throw_node): Define as a single member of
3245 java_global_trees instead of a separate array.
3246 (JTI_THROW_NODE): New.
3247 * decl.c (throw_node): Don't declare.
3248 (init_decl_processing): Init a scalar throw_node.
3249 Don't register it for gc.
3250 * check-init.c (check_init): Reference scalar throw_node.
3251 * expr.c (build_java_athrow): Likewise.
3252 * jcf-write.c (generate_bytecode_insns): Likewise.
3253 * parse.h (BUILD_THROW): Likewise.
3254
da7da8f9
RH
32552001-03-28 Richard Henderson <rth@redhat.com>
3256
3257 * decl.c (end_java_method): Do not save and restore
3258 flag_non_call_exceptions.
3259 * parse.y (source_end_java_method): Likewise.
3260 * lang.c (flag_exceptions): Don't declare.
3261 (java_init_options): Set flag_non_call_exceptions. Set
3262 flag_exceptions here ...
3263 (java_init): ... not here.
3264
531073e7
RH
32652001-03-27 Richard Henderson <rth@redhat.com>
3266
3267 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
3268 exceptions_via_longjmp.
3269
461fc4de
RH
3270 * lang.c (flag_new_exceptions): Don't declare it.
3271 (java_init_options): Or set it.
3272
c1e9f663
RH
32732001-03-27 Richard Henderson <rth@redhat.com>
3274
3275 * decl.c (end_java_method): Rename asynchronous_exceptions to
3276 flag_non_call_exceptions.
979988f3 3277 * parse.y (source_end_java_method): Likewise.
c1e9f663 3278
911e6107
KG
32792001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3280
3281 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
3282
b850de4f
MM
32832001-03-26 Mark Mitchell <mark@codesourcery.com>
3284
3285 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
3286
ce06965e
APB
32872001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
3288
3289 * parse.y (find_as_inner_class): Follow current package
3290 indications not to mistakingly load an unrelated class.
3291
cb9b7a8c
KG
32922001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3293
3294 * constants.c (PUTN): Use memcpy, not bcopy.
3295
3296 * lex.c (java_read_char): Use memmove, not bcopy.
3297
3298 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
3299
fa029f45
PB
33002001-03-23 Per Bothner <per@bothner.com>
3301
3302 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
3303 macro for better error pin-pointing.
3304 * java-tree.h: Fix typo in comment.
3305
3306 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
3307 Don't include jsr/goto in exception range.
3308 Check if start and end of exception range are the same (also TRY_EXPR).
3309 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
3310 However, do emit the following goto even if try_block is empty.
3311 Defer freeing exception_decl until after the finalizer, to make
3312 sure the local isn't reused in the finalizer. Fixes PR java/1208.
3313
3314 * parse.y (java_complete_lhs): If the try-clause is empty, just
3315 return the finally-clause and vice versa.
3316
b124f72e
APB
33172001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
3318
3319 * gcj.texi (Input Options): documented the check for attribute
3320 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
3321 * java-tree.h (flag_force_classes_archive_check): Declared extern.
3322 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
3323 (jcf_parse): Check for the right classes archive if necessary.
3324 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
3325 (jcf_parse_fields): Fixed indentation.
3326 * jcf-write.c (append_gcj_attribute): New function.
3327 (generate_classfile): Compute the attribute count, invoke
3328 `append_gcj_attribute'.
3329 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
ee142fe7 3330 turned into bit-fields. New bit-field `right_zip.'
b124f72e
APB
3331 (JCF_ZERO): Set `right_zip' to zero.
3332 * lang-options.h (-fforce-classes-archive-check): Added flag.
3333 * lang.c (flag_force_classes_archive_check): New flag.
3334 (lang_f_options): New entry `force-classes-archive-check.'
3335 Fixes PR java/1213.
3336
4ff17c6a
AH
33372001-02-07 Andrew Haley <aph@redhat.com>
3338
3339 * gcj.texi (Configure-time Options): Add -fcheck-references.
3340 * expr.c (build_java_indirect_ref): New function.
3e02b1c3 3341 (java_check_reference): New function.
4ff17c6a
AH
3342 (build_java_array_length_access): Use build_java_indirect_ref to
3343 check for null references.
3344 (build_java_arrayaccess): Likewise.
3345 (build_get_class): Likewise.
3346 (build_field_ref): Likewise.
3347 (invoke_build_dtable): Likewise.
3348 (build_invokeinterface): Likewise.
3349 * lang.c (lang_f_options): Add flag_check_references.
3350 * jvspec.c (jvgenmain_spec): Add flag_check_references.
3351 * java-tree.h (flag_check_references): New variable.
3352 * lang.c (flag_check_references): Likewise.
e64c46ce 3353 * parse.y (patch_invoke): Use java_check_reference.
3e02b1c3
AH
3354 (patch_assignment): Allow for extra nesting in
3355 _Jv_CheckArrayStore.
4ff17c6a 3356
f2a29271
BM
33572001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
3358
3359 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
3360 * lex.c (cxx_keywords): Likewise.
3361
2ff50199
APB
33622001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
3363
3364 * parse.y (qualify_ambiguous_name): Broaden `length'
3365 recognition. Help MODIFY_EXPR be resolved as expression names.
3366 Fixes PR java/2066. Fixes PR java/2400.
3367
60c87482
BM
33682001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
3369
e64c46ce 3370 * gjavah.c (process_file): Mark interface definitions with
60c87482
BM
3371 "__attribute__ ((java_interface))".
3372
96c6f628
APB
33732001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
3374
3375 * class.c (layout_class): Fixed push_super_field's second
3376 argument. Fixes PR java/2333.
3377 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
3378 too early to lay innerclasses out.
3379
7abecd65
TT
33802001-03-20 Tom Tromey <tromey@redhat.com>
3381 Alexandre Petit-Bianco <apbianco@redhat.com>
3382
3383 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
3384 inside an array reference. Insertion of the array store check
3385 rewritten. Fixes PR java/2299.
3386
4aed8938
TT
33872001-03-20 Tom Tromey <tromey@redhat.com>
3388
3389 * lex.c (java_read_unicode): Only accept leading `u's.
3390
ddd705d1
TT
33912001-03-20 Tom Tromey <tromey@redhat.com>
3392
3393 * jcf-parse.c (read_class): Initialize `class'.
3394
de83bf66
MK
33952001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
3396
3397 * jcf_parse.c (jcf_parse): Eliminate unused variable.
3398
92643fea
MM
33992001-03-19 Mark Mitchell <mark@codesourcery.com>
3400
3401 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
3402 (layout_class): Likewise.
3403 (layout_class_method): Likewise.
3404 (emit_register_classes): Likewise.
3405 * decl.c (builtin_function): Likewise.
3406 (give_name_to_locals): Likewise.
3407
54646811
PB
34082001-03-19 Per Bothner <per@bothner.com>
3409
80fc2e84
PB
3410 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
3411 before trying to load an inner class.
3412
54646811
PB
3413 Fixes to process to command-line .class files in two passes.
3414 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
3415 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
3416 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
3417 * class.c (is_compiled_class): Fix for renamed flag.
3418 * parse.y (maybe_create_class_interface_decl): Likewise.
3419 * jcf-parse.c (yyparse): Also set if compiling .class files.
3420 * jcf-parse.c (read_class); Read current_class.
3421 (jcf_parse): Make static.
3422 (load_inner_classes): New function, with code moved from jcf_parse,
3423 because we need to inner classes after the command-line files are read.
3424 (yyparse): Set finput to NULL when it doesn't need to be closed.
3425 Reduce use of main_jcf (basically only for archive) and
3426 use finput instead of main_jcf->read_state.
3427 Inline jcf_figure_file_type into yyparse.
3428 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
3429 Defer load_inner_classes and parse_class_file to a second pass,
3430 after we've correctly mapped command-line .clas fiels to classes.
3431 (jcf_figure_file_type): Removed.
3432 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
3433 (JCF_ZERO): Also clear zipd field.
3434 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
3435
34362001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
3437
3438 * jcf-parse.c (yyparse): Change ch from char * to char.
3439
8b1edcee
PB
34402001-03-19 Per Bothner <per@bothner.com>
3441
3442 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
3443 Add constructed filelist-file at end, following -xjava. Thus any .o
3444 and library files are not affected by the -xjava. Also wrap
54646811 3445 explicit @FILE with -xjava and -xnone.
8b1edcee 3446
6bc5f6cb
AH
34472001-03-19 Andrew Haley <aph@cambridge.redhat.com>
3448
9a07cfaf
RH
3449 * class.c (build_static_field_ref): Call make_decl_rtl() after
3450 setting the DECL_EXTERNAL flag.
6bc5f6cb 3451
daaaf29f
PB
34522001-03-17 Per Bothner <per@bothner.com>
3453
90f59043
PB
3454 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
3455
478e7ed6
PB
3456 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
3457 when result is is needed (target is STACK_TARGET).
3458
daaaf29f 3459 * parse.h (JDEP_SOLV): Removed.
d148b6aa 3460 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
daaaf29f 3461
d148b6aa
PB
3462 * parse.y (incomplete_class_list): Removed.
3463 (obtain_incomplete_type): Don't use or set incomplete_class_list.
3464 It doesn't work if resolve_class changes the name of an array type
3465 that is on the list and then someone else looks for the modified name.
3466 Also, seems liable to break when compiling multiple source files at
3467 once. So the simplest is to just remove incomplete_class_list -
3468 it is only a minor space win and it is not even clear it saves time.
daaaf29f
PB
3469
3470 * parse.y (resolve_class): Remove unneeded promote_type.
3471
4763d38f
PB
34722001-03-15 Per Bothner <per@bothner.com>
3473
b16e8f08
PB
3474 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
3475 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
3476 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
3477 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
8b1edcee 3478
3a2e5926
PB
3479 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
3480 * parse.y (java_expand_classes): Likewise.
8b1edcee 3481
47a50de9
PB
3482 * parse.y (expand_start_java_method): Was only called once and had a
3483 misleading name, so inline in caller java_complete_expand_method.
3a2e5926 3484 (enter_a_block): Likewise inline in enter_block and remove.
47a50de9 3485
4763d38f
PB
3486 Remove junk from when gcc/java was created (by copying from C/C++).
3487 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
3488 (struct binding_level): Remove fields keep, keep_if_subblocks,
3489 more_cleanups_ok, have_cleanups (which have never been used).
3490 (pushlevel, poplevel): Remove related useless code.
19f8e04b 3491
69ca5554
PB
3492 * class.c (make_class_data): The class_dtable_decl (i.e. the
3493 vtable for Class) should be external, except when compiling Class.
3494
7d32abcd
PB
3495 * jvspec.c (lang_specific_driver): Fix -C handling.
3496 Check -save-temps to see if temp @FILE should be deleted.
3497 Follow-up to/fix for February 16 patch.
3498
19f8e04b
PB
3499 * verify.c (verify_jvm_instructions): Better error msgs for dup.
3500 (type_stack_dup): Remove no-longer neded error check.
3501
551bf03c
BM
35022001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
3503
3504 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
3505 to 'for_pointer'. If this type is for a pointer (argument) mangling,
e64c46ce 3506 don't surround the element with 'N..E' if the type name is
551bf03c
BM
3507 unqualified.
3508
19e7881c
MM
35092001-03-14 Mark Mitchell <mark@codesourcery.com>
3510
d1d61788
MM
3511 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
3512 DECL_RTL_SET_P, etc.
19e7881c
MM
3513 (make_method_value): Likewise.
3514 (get_dispatch_table): Likewise.
3515
3516 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
8b1edcee 3517
bcacc465
TT
35182001-03-07 Tom Tromey <tromey@redhat.com>
3519
3520 * config-lang.in (lang_requires): Define.
3521
de6c5979
BL
35222001-03-07 Brad Lucier <lucier@math.purdue.edu>
3523
3524 * typeck.c (convert): Check flag_unsafe_math_optimizations,
3525 not flag_fast_math.
3526
6d37cf2f
PB
35272001-03-05 Per Bothner <per@bothner.com>
3528
3529 Fix a problem where rest_of_decl_compilation applied to
3530 class_dtable_decl causes problems because it was done too early,
3531 before output file was opened.
3532 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
3533 * class.c (class_dtable_decl): Add macro - element of class_roots.
3534 (make_class_data): Define class_dtable_decl.
3535 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
3536
d6edb99e
ZW
35372001-03-01 Zack Weinberg <zackw@stanford.edu>
3538
3539 * java/class.c, java/decl.c, java/java-tree.h: Replace all
3540 uses of 'boolean' with 'bool'.
3541
f7143427
ZW
35422001-03-01 Zack Weinberg <zackw@stanford.edu>
3543
3544 * lang-specs.h: Add zero initializer for cpp_spec field to all
3545 array elements.
3546
fea2d5da
PB
35472001-02-16 Per Bothner <per@bothner.com>
3548
3549 Handle compiling multiple input files at once, and @FILE syntax.
e4087691 3550 * gcj.texi: Updated documentation to match.
fea2d5da
PB
3551 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
3552 * jcf-parse.c (parse_source_file): Split into ...
3553 (parse_source_file_1): New function - and:
3554 (parse_source_file_2): New function.
3555 (yyparse): On -ffilelist-file, open and scan named file.
3556 On first pass over files, only do parse_source_file_1.
3557 A new second pass calls parse_source_file_2 for each file to compile.
3558 (init_jcf_parse): Call init_src_parse.
3559 * jvspec.c (INDIRECT_FILE_ARG): New flag.
3560 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
3561 as multiple input file combined in one compilation.
3562 * lang-options.h: Add -ffilelist-file
3563 * lang.c (flag_filelist_file): New flag variable.
3564 (lang_f_options): Handle -ffilelist-file.
3565 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
3566 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
3567 gclass_list - use global fields of src_parse_roots instead.
3568 * parse.y (src_parse_roots): New array.
3569 (incomplete_class_list, gclass_list): New macros.
3570 (push_parser_context, java_pop_parser_context,
3571 java_parser_context_resume): Don't fiddle with deleted fields.
3572 (various): Use incomplete_class gclass_list and global macros
3573 instead of parse_ctxt fields - the lists are global.
3574 (init_src_parse): New function.
3575
9b58f739
RK
3576Fri Feb 23 15:28:39 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3577
3578 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
3579
064a552c
APB
35802001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
3581
3582 * parse.y (check_inner_class_access): Moved declaration of local
3583 `enclosing_decl_type' to the right location.
3584
a648f4e4
BM
35852001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
3586
e64c46ce 3587 * parse.y (parser_check_super_interface): Don't call
a648f4e4 3588 check_pkg_class_access for an inner interface.
e64c46ce 3589 (parser_check_super): Don't call check_pkg_class_access for inner
a648f4e4 3590 class.
e64c46ce 3591 (do_resolve_class): Simplify enclosing type loop. Don't call
a648f4e4
BM
3592 check_pkg_class_access if CL and DECL are not set.
3593 (find_in_imports_on_demand): Set DECL if class_type needed to be
3594 loaded. Don't call check_pkg_class_access for an inner class.
3595 (check_inner_class_access): Rewritten to implement member access
3596 rules as per spec 6.6.1.
3597 (check_pkg_class_access): Handle the empty package correctly.
3598 (in_same_package): New function. Determine if two classes are in the
3599 same package.
3600
35ab11f0
BM
36012001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
3602
3603 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
3604 method into array types.
3605 * parse.y (patch_method_invocation): Bypass access check on clone call
3606 to array instance.
e64c46ce 3607
055adbaa
APB
36082001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
3609
3610 * expr.c (build_instanceof): Check for arrays when trying fold to
3611 false.
3612
e658449e
JM
36132001-02-15 Jim Meyering <meyering@lucent.com>
3614
fd48c9b5
DD
3615 * Make-lang.in (java.install-common): Depend on `installdirs'.
3616 (java.install-info): Likewise.
e658449e 3617
4238a754
BM
36182001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
3619
3620 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
3621
e101152f 36222001-02-14 Tom Tromey <tromey@redhat.com>
9a07cfaf 3623 Alexandre Petit-Bianco <apbianco@cygnus.com>
e101152f 3624
055adbaa
APB
3625 Fix for PR java/1261.
3626 * typeck.c (build_java_array_type): Add public `clone' method to
3627 arrays.
3628 * parse.y (resolve_qualified_expression_name): Use current_class
e101152f 3629 when checking for inaccessibility.
055adbaa 3630 (patch_method_invocation): Fixed error message when accessibility
e101152f
APB
3631 denied. Added `from_super' argument.
3632
36332001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
3634
3635 * parse.y (resolve_class): Don't build a fake decl. Use the one
3636 already built.
3637 * typeck.c (build_java_array_type): Build and assign decl to array
3638 type.
3639
36402001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
3641
3642 * parse.y (not_accessible_p): Changed leading comment. Added extra
3643 `where' argument. Use it to enforce protected access rules.
3644 (resolve_qualified_expression_name): Added extra argument to
3645 not_accessible_p.
3646 (patch_method_invocation): Use argument `primary' to provide
3647 not_accessible_p with an extra argument.
3648 (lookup_method_invoke): Added extra argument to not_accessible_p.
3649 (search_applicable_method_list): Likewise.
3650
863cd85a
APB
36512001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
3652
3653 * parse.y (resolve_qualified_expression_name): Try to resolve as
3654 an inner class access only if `decl' is a TYPE_DECL.
3655
94807d33
APB
36562001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
3657
3658 * decl.c (classdollar_identifier_node): Initialize.
e64c46ce 3659 * java-tree.h (enum java_tree_index): New entry
94807d33
APB
3660 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
3661 (classdollar_identifier_node): New macro.
3662 (ID_CLASSDOLLAR_P): Likewise.
3663 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
3664 (build_dot_class_method_invocation): Likewise.
3665 (find_applicable_accessible_methods_list): `class$' can't be
3666 inherited.
3667
30f87f1a
APB
36682001-02-09 Raja R Harinath <harinath@cs.umn.edu>
3669
3670 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
3671
36722001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
3673
3674 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
3675 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
3676 gone.
3677
1e97aa40
APB
36782001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
3679
3680 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
3681 outside of the `__U' sequence too.
3682 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
3683 sequence too.
3684
a395f5ab
APB
36852001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
3686
3687 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
3688
1b43b6be
APB
36892001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
3690
3691 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
3692 (JVGENMAIN_OBJS): Likewise.
e64c46ce 3693 * java-tree.h (append_gpp_mangled_name): New prototype.
1b43b6be
APB
3694 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
3695 Removed cast calling `gcc_add_root.'
3696 * jvgenmain.c (mangle_obstack): New global, initialized.
3697 (main): Use it.
3698 (do_mangle_class): Constify local `ptr.'
3699 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
3700 append_gpp_mangle_name and update `count' if necessary.
3701 Use `mangle_obstack.'
3702 * mangle.c (append_unicode_mangled_name): Removed.
3703 (append_gpp_mangled_name): Likewise.
3704 (unicode_mangling_length): Likewise.
3705 (mangle_member_name): Return type set to `void.'
3706 (mangle_field_decl): Don't append `U' in escaped names.
3707 (mangle_method_decl): Likewise.
3708 (mangle_member_name): Just use `append_gpp_mangled_name.'
3709 * mangle_name.c: New file.
3710
4a83be51
PB
37112001-02-07 Per Bothner <per@bothner.com>
3712
3713 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
3714
3715 * check-init.c (check_init): Don't call done_alternative after
3716 processing loop code, as a LOOP_EXPR never terminates normally.
3717
7e5fd99f
JM
37182001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
3719
3720 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
3721
1456345e
APB
37222001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
3723
3724 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
3725 DECLs.
3726
77aff9f9
TT
37272001-02-06 Tom Tromey <tromey@redhat.com>
3728
3729 * lex.c (java_new_lexer): Longer error message.
3730
c00dd14e
JS
37312001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
3732 Alexandre Petit-Bianco <apbianco@cygnus.com>
3733
3734 * typeck.c (build_prim_array_type): Added leading comment.
3735 (build_java_array_type): Moved locals out of
3736 block. Always create the `data' field, fixed alignment to match
3737 C++.
3738
6d091870
TT
37392001-02-04 Tom Tromey <tromey@redhat.com>
3740
3741 * expr.c (java_lang_expand_expr): Don't bother recomputing
3742 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
3743 Fixes PR java/1866.
3744
1ebb5e73
APB
37452001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
3746
3747 * parse.y (process_imports): Save the original name of the import
3748 for better error report.
3749
ca5b1ff8
BM
37502001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
3751
3752 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
3753 of macros used when compiling jvspec.c.
3754 * jvspec.c (lang_specific_driver): Link with the shared
3755 libgcc by default.
3756
400500c4
RK
3757Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3758
3759 * check-init.c (check_init): Call internal_error instead of fatal.
3760 * expr.c (java_lang_expand_expr): Likewise.
3761 * jcf-parse.c (get_constant): Likewise.
3762 * mangle.c (java_mangle_decl): Likewise.
3763 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
3764 (operator_string): Likewise.
3765 * check-init.c (check_init): Call abort instead of fatal.
3766 * class.c (build_class_ref): Likewise.
3767 * constants.c (write_constant_pool): Likewise.
3768 * decl.c (start_java_method): Likewise.
3769 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
3770 (java_stack_dup, encode_newarray_type): Likewise.
3771 (build_java_array_length_access): Likewise.
3772 (build_java_check_indexed_type, expand_java_pushc): Likewise.
3773 (build_java_soft_divmod, build_invokeinterface): Likewise.
3774 * java-tree.h (INNER_CLASS_P): Likewise.
3775 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
3776 (give_name_to_class, get_class_constant): Likewise.
3777 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
3778 (find_constant_index, generate_bytecode_conditional): Likewise.
3779 (generate_bytecode_insns, perform_relocations): Likewise.
3780 * lex.c (java_unget_unicode, java_lex): Likewise.
3781 * mangle.c (mangle_type, mangle_record_type): Likewise.
3782 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
3783 (finish_mangling): Likewise.
3784 * parse.h (MARK_FINAL_PARMS): Likewise.
3785 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
3786 (obtain_incomplete_type, java_complete_class): Likewise.
3787 (java_check_regular_methods, java_complete_expand_method): Likewise.
3788 (cut_identifier_in_qualified, check_deprecation): Likewise.
3789 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
3790 (java_complete_lhs, lookup_name_in_blocks): Likewise.
3791 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
3792 * typeck.c (set_local_type, parse_signature_type): Likewise.
3793 (parse_signature_string, build_java_signature): Likewise;
3794 (set_java_signature): Likewise.
3795 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
3796 * class.c (add_method): Call fatal_error instead of fatal.
3797 (build_static_field_ref): Likewise.
3798 * expr.c (build_known_method_ref, expand_invoke): Likewise.
3799 * jcf-parse.c (get_constant, jcf_parse): Likewise.
3800 * lex.c (java_new_new_lexer): Likewise.
3801 * jv-scan.c (main): Likewise.
3802 (fatal_error): Renamed from fatal.
3803 * jcf-parse.c (yyparse): Call fatal_io_error instead of
3804 pfatal_with_name.
3805 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
3806 (yyparse): Likewise.
3807 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
3808 * lex.c (java_get_line_col): Likewise.
3809 * jcf-parse.c (load_class): Make errors non-fatal.
3810 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
e64c46ce 3811
4bae4eb5
BM
38122001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
3813
3814 * jvgenmain.c (class_mangling_suffix): Remove unused string.
3815 (error): Remove unused function.
3816 (main): Don't use "__attribute__ alias" on generated class symbol.
3817
c0b00d37
APB
38182001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
3819
3820 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
3821 argument.
3822 * parse.y (finish_method_declaration): Code accounting for WFLed
3823 method DECL_NAMEs deleted.
3824 (check_abstract_method_definitions): Likewise.
3825 (resolve_type_during_patch): Layout resolved type.
3826 * typeck.c (lookup_do): Removed unused local.
3827
4bae4eb5 38282001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
eb59e547
BM
3829
3830 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
3831 * decl.c (init_decl_processing): Use integer_minus_one_node, not
3832 integer_negative_one_node.
3833 * expr.c (build_java_binop): Likewise.
3834
4bae4eb5 38352001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
7be00c49
JS
3836
3837 * zextract.c (read_zip_archive): Read file_offset before writing
3838 zipd and consequently clobbering the header contents.
3839
c913b6f1
KG
38402001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3841
3842 * Make-lang.in: Remove all dependencies on defaults.h.
3843 * decl.c: Don't include defaults.h.
3844 * expr.c: Likewise.
3845 * parse.y: Likewise.
3846
c4faeb92
APB
38472001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
3848
3849 * ChangeLog (2001-01-21): Fixed typo.
3850 * class.c (layout_class_method): Code accounting for WFLed
3851 method DECL_NAMEs deleted.
3852 * constant.c (find_methodref_index): Likewise.
3853 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
3854 * java-tree.h (DECL_FUNCTION_WFL): New macro.
3855 (struct lang_decl): New field `wfl'.
3856 (java_get_real_method_name): Prototype deleted.
3857 * mangle.c (mangle_method_decl): Code accounting for WFLed
3858 method DECL_NAMEs deleted.
3859 * parse.h (GET_METHOD_NAME): Macro deleted.
3860 * parse.y (reset_method_name): Deleted.
3861 (method_header): Set DECL_FUNCTION_WFL.
3862 (check_abstract_method_header): Code accounting for WFLed method
3863 DECL_NAMEs deleted.
3864 (java_get_real_method_name): Deleted.
3865 (check_method_redefinition): Code accounting for WFLed method
3866 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
3867 (java_check_regular_methods): Likewise.
3868 (java_check_abstract_methods): Likewise.
3869 (java_expand_classes): Don't call `reset_method_name.'
3870 (search_applicable_method_list): Use DECL_NAMEs instead of
3871 GET_METHOD_NAME.
3872 * typeck.c (lookup_do): Code accounting for WFLed method
3873 DECL_NAMEs deleted.
3874
97876d66
RE
38752001-01-25 Richard Earnshaw <rearnsha@arm.com>
3876
3877 * lex.c (java_read_char): Check for EOF from getc first.
3878
493d561d
APB
38792001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
3880
3881 * class.c (layout_class): Don't lay the superclass out if it's
3882 already being laid out.
3883 * jcf-parse.c (handle_innerclass_attribute): New function.
3884 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
3885 handle_innerclasses_attribute.
3886 (jcf_parse): Don't load an innerclasses if it's already being
3887 laid out.
3888 * jcf-write.c (append_innerclass_attribute_entry): Static
3889 `anonymous_name' and its initialization deleted. `ocii' and `ini'
3890 to be zero for anonymous classes.
3891
38922001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
3893
3894 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
3895 necessary.
3896 * jcf-parse.c (set_source_filename): Use
3897 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
3898
38992001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
3900
3901 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
3902 gets a unique asm name.
3903
39042001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
3905
3906 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
3907 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
3908 if necessary.
3909 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
3910 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
3911 * parse.y (lookup_package_type_and_set_next): Deleted.
3912 (resolve_package): Removed unnecessary code.
3913 (find_applicable_accessible_methods_list): `finit$' can't be
e64c46ce 3914 inherited.
493d561d
APB
3915 * verify.c (pop_argument_types): Added missing prototype.
3916
7c01b2b5
BM
39172001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
3918
3919 * config-lang.in: Disable java by default.
3920
80261b56
TT
39212001-01-23 Tom Tromey <tromey@redhat.com>
3922
3923 * gcj.texi (Copying): New node.
3924 Added copyright information.
3925
a4796c80
PB
39262001-01-21 Per Bothner <per@bothner.com>
3927
3928 Various fixes to allow compiling a compressed .jar/.zip archive.
3929 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
3930 (struct ZipFile): Add fields name and next (from ZipFileCache).
3931 (struct ZipDirectory): New field zipf points to owning ZipFile.
3932 * jcf.h (struct ZipDirectory): Add forward declaration.
3933 (struct JCF): Declare zipd field to have type struct ZipDirectory.
3934 Remove seen_in_zip and zip_offset fields.
3935 (JCF_SEEN_IN_ZIP): New macro.
3936 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
3937 * jcf-io.c: Change all ZipFileCache to ZipFile.
3938 (read_zip_member): New function.
3939 (open_in_zip): Call read_zip_member.
3940 * jcf-parse.c (find_in_current_zip): Remove function.
3941 (read_class): Merge in find_in_current_zip functionality.
3942 Call read_zip_member if needed.
3943 (parse_zip_file_entries): Use read_zip_member.
3944 (process_zip_dir): Update for removed and added JCF fields.
3945 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
3946
b5c4fed9
PB
39472001-01-21 Per Bothner <per@bothner.com>
3948
3949 Minor optimization of static ggc roots.
3950 * jcf-parse.c (parse_roots): New static field.
3951 (current_field, current_method, current_file_list): Replace by macros
3952 naming fields of parse_roots.
3953 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
3954 * class.c (class_roots): New static field.
3955 (registered_class, fields_ident, info_ident, class_list):
3956 New macros naming fields of parse_roots.
3957 (build_static_field_ref): Don't register roots here.
3958 (layout_class): Static field list replaced by macro class_list.
3959 (init_class_processing): Call ggc_add_tree_root for 4 roots.
3960 Initialize fields_ident and info_ident here.
3961
3432b91b
PB
39622001-01-21 Per Bothner <per@bothner.com>
3963
3964 * jcf-parse.c (ggc_mark_jcf): New function.
3965 (init_jcf_parse): Register current_jcf as ggc root.
3966
2c36c7fd
PB
39672001-01-21 Per Bothner <per@bothner.com>
3968
3969 * lang.c (put_decl_node): Print method's name.
3970
9c0c88ac
PB
39712001-01-21 Per Bothner <per@bothner.com>
3972
3973 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
3974 (verify_jvm_instructions): Use it, for better error messages on loads.
3975
230cbd5f
PB
39762001-01-21 Per Bothner <per@bothner.com>
3977
c4faeb92 3978 * verify.c (merge_type_state): Still may have to merge even if
230cbd5f
PB
3979 LABEL_VERIFIED (label).
3980
e6b6db0d
PB
39812001-01-21 Per Bothner <per@bothner.com>
3982
3983 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
3984 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
3985
b57300bc
PB
39862001-01-19 Per Bothner <per@bothner.com>
3987
3988 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
3989 if expeting an interface type. Refines Tom's change of 2000-09-12.
3990
ee08d4cc
PB
39912001-01-18 Per Bothner <per@bothner.com>
3992
3993 * gcj.texi (Input Options): Mention .java files.
3994
b1117741
APB
39952001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
3996
3997 * lang-options.h (-Wunsupported-jdk11): Removed.
3998 * lang.c (flag_not_overriding): Deleted.
3999 (flag_static_local_jdk1_1): Likewise.
4000 (lang_W_options): Removed "unsupported-jdk11" entry.
4001 * parse.y (java_check_methods): Removed dead code.
4002
2dc73168
TT
40032001-01-17 Tom Tromey <tromey@redhat.com>
4004
4005 Changes suggested by Per Bothner:
4006 * gcj.texi (Input Options): Don't mention input files.
4007 (Code Generation): Updated --main information.
4008 (Invoking jcf-dump): Mention that --javap is incomplete.
4009 From Alexandre Petit-Bianco:
4010 (Warnings): Don't mention -Wunsupported-jdk11.
4011 My stuff:
4012 (Compatibility): Mention JDK 1.2-ness of libraries.
4013 (Resources): Mention resources used when writing gcj.
4014
bc65b5ec
TT
40152001-01-17 Tom Tromey <tromey@redhat.com>
4016
4017 * gcj.texi: New file.
4018 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
4019 (java.info): Depend on gcj.info.
4020 (java/gcj.dvi): New target.
4021 (java.dvi): Depend on gcj.dvi.
4022 (java.install-info): Wrote.
4023
930f6690
JS
40242001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
4025
4026 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
4027 having called make_decl_rtl.
4028
00b4575d
PB
40292001-01-14 Per Bothner <per@bothner.com>
4030
984ad2c6
PB
4031 Various patches to emit better messages on verification errors.
4032 * expr.c (push_type_0): Return error indication on stack overflow,
4033 instead of callinfg fatal.
4034 (push_type): Now just call push_type_0 (nd fatal on overflow).
4035 (pop_type_0): Return detailed error message (in a char** argument).
4036 (pop_type): If pop_type_0 fails, print error message.
4037 (pop_argument_types): Moved to verify.c.
4038 * verify.c (pop_argument_types): Moved from expr.c.
4039 Return a (possible) error message, rather than void.
4040 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
4041 (verify_jvm_instruction): Use new macros, improving error messages.
4042 For case OPCODE_astore use object_ptr_type_node.
4043 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
4044 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
4045
00b4575d
PB
4046 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
4047 constant, return body without wrapper. (Improves constant folding.)
4048 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
4049
d9da31dd
PB
40502001-01-13 Per Bothner <per@bothner.com>
4051
4052 * expr.c (expand_java_field_op): Assigning to a final field outside
4053 an initializer does not violate JVM spec, so should be warning, not
4054 error. (Sun's verifier does not complain - though MicroSoft's does.)
e64c46ce 4055
a67a383a
JM
40562001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
4057
4058 * gjavah.c (version), jcf-dump.c (version): Update copyright year
4059 to 2001.
4060
7e1376a1
BM
40612001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
4062
4063 * parse.y (resolve_expression_name): Permit instance variables from
4064 enclosing context in super constructor call.
4065 (resolve_qualified_expression_name): Permit enclosing class's qualified
4066 "this" in super constructor call.
4067
6c418184
MM
40682001-01-10 Mark Mitchell <mark@codesourcery.com>
4069
4070 * class.c (build_utf8_ref): Remove last argument in call to
4071 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
4072 (build_class_ref): Likewise.
4073 (build_static_field_ref): Likewise.
4074 (get_dispatch_table): Likewise.
4075 (layout_class_method): Likewise.
4076 (emit_register_classes): Likewise.
4077 * constants.c (build_constant_data_ref): Likewise.
4078 * decl.c (builtin_function): Likewise.
4079 (create_primitive_vtable): Likewise.
4080 * expr.c (build_known_method_def): Likewise.
4081 (build_jni_stub): Likewise.
4082 (java_lang_expand_expr): Likewise.
e64c46ce 4083
0adc3d8a
TT
40842001-01-10 Tom Tromey <tromey@redhat.com>
4085
4086 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
4087
761491c8
APB
40882001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
4089
4090 * java-tree.h (lang_printable_name_wls): New prototype.
4091 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
4092 rather than `current_class' to print type name. Don't prepend type
4093 names when printing constructor names.
4094 (lang_printable_name_wls): New function.
4095 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
4096 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
4097 * parse.y (patch_method_invocation): Message tuned for constructors.
4098 (not_accessible_p): Grant `private' access from within
4099 enclosing contexts.
e64c46ce 4100
dc08e603
APB
41012001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
4102
4103 All files with updated copyright when applicable.
4104 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
4105 * class.c (mangle_class_field): Function removed.
4106 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
4107 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
4108 (build_class_ref): Call `java_mangle_class_field' instead of
4109 `mangle_class_field.'
4110 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
e64c46ce 4111 (layout_class): Call `java_mangle_decl' instead of
dc08e603
APB
4112 `mangle_static_field.'
4113 (cxx_keywords): Initialized static array moved to `lex.c.'
4114 (layout_class_method): Changed leading comment. Simplified to
4115 call `java_mangle_decl.' Local `ptr' moved in for loop body.
4116 * decl.c (lang_mark_tree): Mark field `package_list.'
4117 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
4118 (struct lang_type): New field `package_list.'
4119 (unicode_mangling_length): Prototype removed.
4120 (append_gpp_mangled_name, append_gpp_mangled_classtype,
4121 emit_unicode_mangled_name): Likewise.
4122 (cxx_keyword_p): New prototype.
4123 (java_mangle_decl, java_mangle_class_field,
4124 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
4125 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
4126 `build_expr_wfl.'
4127 * jvgenmain.c (main_method_prefix): Global variable removed.
4128 (main_method_suffix): Likewise.
4129 (do_mangle_classname): New function.
a83f01f0 4130 (main): Call it. Format changed to accommodate new mangling scheme.
dc08e603
APB
4131 * lex.c: (utf8_cmp): Conditionally prototyped.
4132 (cxx_keywords): Moved from class.c, conditionally defined.
4133 (utf8_cmp, cxx_keyword_p): Likewise.
4134 * mangle.c (obstack.h, ggc.h): Included.
4135 (mangle_field_decl): New function.
4136 (mangle_method_decl, mangle_type, mangle_pointer_type,
4137 mangle_array_type, mangle_record_type,
4138 find_compression_pointer_match, find_compression_array_match,
4139 find_compression_record_match,
4140 find_compression_array_template_match, set_type_package_list,
4141 entry_match_pointer_p, emit_compression_string, init_mangling,
4142 finish_mangling, compression_table_add, mangle_member_name): Likewise.
4143 (mangle_obstack): New global.
4144 (MANGLE_RAW_STRING): New macro.
4145 (unicode_mangling_length): Turned static.
4146 (append_unicode_mangled_name): Renamed from
4147 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
4148 replaces `obstack', removed from the parameter list.
4149 (append_gpp_mangled_name): Turned static. `mangle_obstack'
e64c46ce 4150 replaces parameter `obstack', removed from the parameter list. Call
dc08e603
APB
4151 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
4152 (append_gpp_mangled_classtype): Removed.
4153 (compression_table, compression_next): New static variables.
4154 * parse.y (temporary_obstack): Extern declaration removed.
4155
761491c8
APB
41562001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
4157
4158 * parse.y (patch_binop): Compute missing type in error situations.
4159
5bb11b2e
BM
41602001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
4161
4162 * class.c (make_class_data): Push initial value for "arrayclass".
4163 * decl.c (init_decl_processing): Add new class field "arrayclass".
4164
ac39dac0
BM
41652001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
4166
4167 From patha@softlab.ericsson.se:
e64c46ce 4168 * parse.y (switch_label): Use build, not build1, to construct
ac39dac0
BM
4169 DEFAULT_EXPR.
4170
a5a4ce3c
NB
41712001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
4172
4173 * lang.c (lang_decode_option): Change -MA to -MP.
4174 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
4175 Update to new prototype; do quote targets.
4176 (jcf_dependency_write): Update.
4177
d27fd99a
BM
41782000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
4179
4180 Shorten primitive array allocation path:
4181 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
4182 to create new primitive arrays.
e64c46ce 4183 * expr.c (build_newarray): If generating native code, call
d27fd99a
BM
4184 soft_newarray_node with a reference to the primitive TYPE identifier
4185 instead of type_value.
e64c46ce 4186
c1eacb70
BM
41872000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
4188
4189 Fix for PRs gcj/312 and gcj/253:
4190 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
4191 dest if they arn't already.
e64c46ce 4192 * class.c (layout_class): Call maybe_layout_super_class on
c1eacb70
BM
4193 superinterfaces also, but only if compiling from bytecode.
4194
6d003d5c
BM
4195 Fix for PR gcj/373:
4196 * parse.y (create_class): Set ACC_STATIC if class is declared in an
4197 interface.
4198
325de66c
TT
41992000-12-15 Tom Tromey <tromey@redhat.com>
4200
4201 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
4202 set.
4203
e35990c4
AH
42042000-12-14 Andrew Haley <aph@redhat.com>
4205
4206 * boehm.c (mark_reference_fields): Change test to correctly detect
4207 bitmap overflow.
4208
53714cda
AJ
42092000-12-15 Andreas Jaeger <aj@suse.de>
4210
4211 * config-lang.in (lang_dirs): Added.
4212
1e0cdc10
APB
42132000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
4214
4215 * parse.y (end_artificial_method_body): Fixed undefined behavior.
4216 Credits go to rth for finding it.
4217
e9e42530
MS
42182000-12-13 Mike Stump <mrs@wrs.com>
4219
4220 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
4221
3f27e3f8
TT
42222000-11-07 Tom Tromey <tromey@cygnus.com>
4223
4224 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
4225 * lex.c (java_ignorable_control_p): Removed.
4226 (java_letter_or_digit_p): Removed.
4227 (java_start_char_p): New function.
4228 (java_read_char): Return `int', not `unicode_t'. Changed
4229 callers.
4230 (java_read_unicode): Likewise.
4231 (java_read_unicode_collapsing_terminators): Likewise.
4232 (java_get_unicode): Likewise.
4233 (java_new_lexer): Initialize hit_eof.
4234 (java_parse_end_comment): Take `int' argument.
4235 (java_parse_doc_section): Likewise.
4236 (java_parse_escape_sequence): Don't allow backlash-newline.
4237 Return `int'.
4238 * lex.h (JAVA_DIGIT_P): Removed.
4239 (_JAVA_LETTER_OR_DIGIT_P): Removed.
4240 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
4241 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
4242 (JAVA_PART_CHAR_P): New macro.
4243 (UEOF): Now -1.
4244 (JAVA_CHAR_ERROR): Now -2.
4245 (java_lexer): New field `hit_eof'.
4246 * chartables.h: New file.
4247 * gen-table.pl: new file.
4248
568aac9c 42492000-11-20 Tom Tromey <tromey@cygnus.com>
9a07cfaf 4250 Alexandre Petit-Bianco <apbianco@cygnus.com>
568aac9c
TT
4251
4252 * parse.y (java_complete_lhs): Only allow compound assignment of
4253 reference type if type is String.
4254
f34ff6d6
APB
42552000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
4256
4257 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
4258 jcf-path.c: Likewise.
4259
6e5589e8
AG
42602000-12-09 Anthony Green <green@redhat.com>
4261
4262 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
4263 filestart and filename_length as int values.
4264
8000caee
MD
42652000-12-07 Mo DeJong <mdejong@redhat.com>
4266
4267 * jcf-io.c (find_class): Correct the logic that tests to see if a
4268 .java file is newer than its .class file. The compiler was
4269 incorrectly printing a warning when file mod times were equal.
4270
f6bbde28
ZW
42712000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
4272
4273 * jvgenmain.c: Use ISPRINT not isascii.
4274
46142b26
APB
42752000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
4276
4277 * parse.y (end_artificial_method_body): Fixed typo.
4278
f8b93ea7
APB
42792000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
4280
4281 * parse.y (patch_method_invocation): Pick the correct enclosing
4282 context when creating inner class instances.
4283 Fixes gcj/332.
4284
45441c5b
JM
42852000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
4286
4287 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
4288 Update copyright year to 2000.
4289
1510057a
AG
42902000-11-23 Anthony Green <green@redhat.com>
4291
4292 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
4293 Move current_file_list out of yyparse and make it static.
4294
4295 * expr.c: Declare quick_stack and tree_list_free_list as static
4296 (init_expr_processing): Register quick_stack and
4297 tree_list_free_list roots.
4298
5e18f6d6
APB
42992000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
4300
4301 * parse.y (build_outer_field_access): New local `decl_ctx', use
4302 it. Check for field's context and current class immediate outer
4303 context inheritance.
4304 (outer_field_access_p): Consider fields inherited from the last
4305 enclosing context.
4306 (build_access_to_thisn): Stop at the last enclosing context if
4307 necessary.
4308 Fixes gcj/367.
4309
9196ece5
R
4310Thu Nov 23 02:19:14 2000 J"orn Rennecke <amylaar@redhat.com>
4311
4312 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
4313
c385cdf6
BM
43142000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
4315
4316 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
4317 scratch buffer.
4318
1535cc88
TT
43192000-11-20 Tom Tromey <tromey@cygnus.com>
4320
4321 * jv-scan.c (help): Document --complexity.
4322 (options): Added --complexity.
4323 (flag_complexity): New global.
4324 (main): Call `report'.
4325 * parse-scan.y (complexity): New global.
4326 (if_then_statement, if_then_else_statement,
4327 if_then_else_statement_nsi, switch_block_statement_group,
4328 while_expression, do_statement, for_begin, continue_statement,
4329 throw_statement, catch_clause, finally, method_invocation,
4330 conditional_and_expression, conditional_or_expression,
4331 conditional_expression): Update complexity.
4332 (reset_report): Reset complexity.
4333 (report): New function.
4334
d828bc42
TT
43352000-11-20 Tom Tromey <tromey@cygnus.com>
4336
4337 * lex.c (yylex): Added STRICT_TK case.
4338 * parse.y (STRICT_TK): Added.
4339 * parse-scan.y (STRICT_TK): Added.
4340 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
4341 `;'. Use 4, not 3, with -k option. Correctly rename resulting
4342 file.
4343 * keyword.h: Rebuilt.
4344 * keyword.gperf (strictfp): Added.
4345
4e7842a0
TT
43462000-11-20 Tom Tromey <tromey@cygnus.com>
4347
4348 * lex.c (yylex): Recognize floating point constants with leading
4349 0.
4350
7e9355c6
KG
43512000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4352
4353 * java-tree.h (cyclic_inheritance_report): Constify.
4354 * parse.y (cyclic_inheritance_report): Likewise.
4355
a8a05998
ZW
43562000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
4357
4358 * parse.y (goal): Remove call to ggc_add_string_root.
4359
520a57c8
ZW
43602000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
4361
4362 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
4363 Create string in scratch buffer, then pass to build_string.
4364
88f3c477
JM
43652000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
4366
4367 * parse.y (issue_warning_error_from_context): Add
4368 ATTRIBUTE_PRINTF.
4369
ac51395d
AG
43702000-11-11 Anthony Green <green@redhat.com>
4371
4372 * jcf-parse.c (process_zip_dir): Add finput parameter.
4373 (jcf_figure_file_type): Call process_zip_dir with appropriate
4374 argument.
4375
4e135bdd
KG
43762000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4377
4378 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
4379 * jcf-parse.c (jcf_figure_file_type): Likewise.
4380
2e09e75a
JM
43812000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
4382
4383 * parse.y (create_new_parser_context): Use memset () instead of
4384 bzero ().
4385
136c35df
TT
43862000-11-08 Tom Tromey <tromey@cygnus.com>
4387
4388 * gjavah.c (process_file): Only include gcj/cni.h when generating
4389 CNI stubs.
4390
961192e1
JM
43912000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
4392
4393 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
4394 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
4395 instead of bzero ().
4396
099a5150
TT
43972000-11-05 Tom Tromey <tromey@cygnus.com>
4398
4399 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
4400 * lex.c (IS_ZERO): New define.
4401 (java_perform_atof): Error on floating point underflow.
4402
cbf53a1d
TT
44032000-11-04 Tom Tromey <tromey@cygnus.com>
4404
4405 * lex.c (java_parse_escape_sequence): Only read two octal
4406 characters if the first one is greater than 3. Don't allow
4407 "octal" numbers to include the digits 8 or 9.
4408
436a88a6
JM
44092000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
4410
4411 * Make-lang.in (java.distdir): Remove.
4412
747800ee
TT
44132000-11-03 Tom Tromey <tromey@cygnus.com>
4414
4e2c8d44
TT
4415 * Make-lang.in (java.dvi): New target.
4416 Partial fix for PR other/567.
4417
b7436b72
TT
4418 * lang-options.h: Mention -Wout-of-date.
4419 * jcf-dump.c (flag_newer): New global.
4420 * gjavah.c (flag_newer): New global.
4421 * jcf-io.c (find_class): Only warn when flag_newer set.
4422 * lang.c (flag_newer): New global.
4423 (struct string_option): New declaration.
4424 (lang_W_options): New global.
4425 (process_option_with_no): New function.
4426 (lang_decode_option): Use it.
4427
0160fbe1
TT
4428 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
4429 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
4430 `$'.
4431
747800ee
TT
4432 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
4433 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
4434 * lex.c (java_read_unicode): Removed `term_context' argument.
4435 Recognize any number of `u' in `\u'.
4436 (java_read_unicode_collapsing_terminators): New function.
4437 (java_get_unicode): Use it.
4438 (java_lineterminator): Removed.
4439 (yylex): Produce error if character literal is newline or single
4440 quote. Return if eof found in middle of `//' comment. EOF in
4441 `//' comment is only an error if pedantic.
4442 (java_ignorable_control_p): New function.
4443 (java_parse_end_comment): Return if eof found in middle of
4444 comment.
4445 Include flags.h.
4446 * jv-scan.c (pedantic): New global.
4447
ee5f86dc
APB
44482000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
4449
4450 * parse.y (outer_field_access_p): Inherited fields aren't
4451 consider outer fields.
4452 (maybe_build_thisn_access_method): Use
4453 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
4454 (resolve_expression_name): Trigger an error if a static field
4455 is being accessed as an outer field.
4456
7ccd2fc9 44572000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
f6bbde28 4458
7ccd2fc9
APB
4459 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
4460 Fixes gcj/365.
4461
b8dad04b
ZW
44622000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
4463
4464 * Make-lang.in: Move all build rules here from Makefile.in,
4465 adapt to new context. Wrap all rules that change the current
4466 directory in parentheses. Expunge all references to $(P).
4467 When one command depends on another and they're run all at
4468 once, use && to separate them, not ;. Add OUTPUT_OPTION to
4469 all object-file generation rules. Delete obsolete variables.
4470
4471 * Makefile.in: Delete.
4472 * config-lang.in: Delete outputs= line.
4473
2cb3951d
APB
44742000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
4475
4476 * parse.y (patch_method_invocation): NULLify this_arg when already
4477 inserted.
4478 (maybe_use_access_method): Handle call to methods unrelated to the
4479 current class. Fixed comment.
4480 Fixes gcj/361.
4481
ee5f86dc
APB
44822000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
4483
4484 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
4485 scope.
4486
07b5e470
TT
44872000-10-24 Tom Tromey <tromey@cygnus.com>
4488
4489 * lex.c (java_new_lexer): Initialize new fields. Work around
4490 broken iconv() implementations.
4491 (java_read_char): Swap bytes if required. Use fallback decoder if
4492 required.
4493 (byteswap_init, need_byteswap): New globals.
4494 (java_destroy_lexer): Only close iconv handle if it is in use.
4495 * lex.h (java_lexer): New fields read_anything, byte_swap,
4496 use_fallback.
4497 Made out_buffer unsigned.
4498
8ac1de05
APB
44992000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
4500
4501 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
4502 where an enclosing context can be set on the jdep.
4503 (do_resolve_class): Fixed identation.
4504
80393943
KG
45052000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4506
4507 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
f6bbde28 4508
80393943
KG
4509 * jcf-reader.c (peek_attribute, skip_attribute): Only define
4510 when requested.
4511
4512 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
4513
4514 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
4515
c7303e41
APB
45162000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
4517
4518 * jcf-write.c (OP1): Update `last_bc'.
4519 (struct jcf_block): Fixed indentation and typo in comments. New
4520 field `last_bc'.
4521 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
4522 follows `monitorenter'.
4523 * parse.y (patch_synchronized_statement): New local `tmp'. Call
4524 `patch_string'.
4525 Fixes gcj/232.
4526
316a06a1
TT
45272000-10-16 Tom Tromey <tromey@cygnus.com>
4528
4529 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
4530 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
4531 * lang-options.h: Added -MA, -MT, -MF..
4532 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
4533 (DEPEND_TARGET_SET): New macro.
4534 (DEPEND_FILE_ALREADY_SET): Likewise.
4535 (init_parse): Handle new flags.
4536 * jcf.h (jcf_dependency_print_dummies): Declare.
4537 * Make-lang.in (s-java): Added mkdeps.o.
4538 * Makefile.in (BACKEND): Added mkdeps.o.
4539 (../gcjh$(exeext)): Added mkdeps.o.
4540 (../jcf-dump$(exeext)): Added mkdeps.o.
4541 * jcf-depend.c: Include mkdeps.h.
4542 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
4543 add_entry): Removed.
4544 (jcf_dependency_reset): Rewrote.
4545 (dependencies): New global.
4546 (jcf_dependency_set_target): Rewrote.
4547 (jcf_dependency_add_target): Likewise.
4548 (jcf_dependency_add_file): Likewise.
4549 (munge): Removed.
4550 (print_ents): Removed.
4551 (jcf_dependency_write): Rewrote.
4552 (print_dummies): New global.
4553 (jcf_dependency_print_dummies): New function
4554 (jcf_dependency_write): Call deps_dummy_targets if required.
4555
dba41d30
APB
45562000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
4557
4558 * gjavah.c (add_class_decl): Removed unused variables `tname',
4559 `tlen' and `name_index'.
4560 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
4561 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
4562 in `wfl_operator' with value.
4563 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
4564 (jcf_figure_file_type): Fixed identation.
4565 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
4566 * parse.y (analyze_clinit_body): New function.
4567 (static_initializer:): Reset `current_static_block'.
4568 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
4569 `wfl_operator' with new value.
4570 (lookup_cl): Use EXPR_WFL_FILENAME.
4571 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
4572 analyze_clinit_body.
4573 (build_outer_field_access): Access to this$<n> built from
4574 current_class, not its outer context.
4575 (build_access_to_thisn): Fixed leading comment. Tidied things up.
f6bbde28 4576 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
dba41d30
APB
4577 (patch_method_invocation): Use `is_static_flag' when already
4578 initialized.
4579 (patch_newarray): Removed assignment in ternary operator.
4580
1a2ebe6d
APB
45812000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
4582
dba41d30 4583 * except.c (free_eh_ranges): Don't free `whole_range'.
1a2ebe6d 4584
8e7ab3ff
AG
45852000-10-15 Anthony Green <green@redhat.com>
4586
4587 * decl.c (init_decl_processing): Call init_class_processing before
4588 anything else.
4589
c7303e41
APB
45902000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
4591
4592 * check-init.c (check_init): Fixed leading comment. Use
4593 LOCAL_FINAL_P.
4594 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
4595 (give_name_to_locals): Likewise.
4596 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
4597 fields in lang_decl_var.
4598 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
4599 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
4600 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
4601 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
4602 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
4603 (LOCAL_FINAL): Rewritten.
4604 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
4605 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
4606 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
4607 `init_final' fields.
4608 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
4609 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
4610 (TYPE_HAS_FINAL_VARIABLE): New macro.
4611 (struct lang_type): Added `afv' field.
4612 * parse.y (check_static_final_variable_assignment_flag): New function.
4613 (reset_static_final_variable_assignment_flag): Likewise.
4614 (check_final_variable_local_assignment_flag): Likewise.
4615 (reset_final_variable_local_assignment_flag): Likewise.
4616 (check_final_variable_indirect_assignment): Likewise.
4617 (check_final_variable_global_assignment_flag): Likewise.
4618 (add_inner_class_fields): Use LOCAL_FINAL_P.
4619 (register_fields): Handle local finals and final variables.
4620 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
4621 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
4622 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
4623 on local finals.
4624 (java_complete_expand_methods): Loop to set
4625 TYPE_HAS_FINAL_VARIABLE. Call
f6bbde28 4626 `reset_final_variable_local_assignment_flag' and
c7303e41
APB
4627 `check_final_variable_local_assignment_flag' accordingly before
4628 and after constructor expansion. Call
4629 `reset_static_final_variable_assignment_flag'
f6bbde28 4630 before expanding <clinit> and after call
c7303e41
APB
4631 `check_static_final_variable_assignment_flag' if the
4632 current_class isn't an interface. After all methods have been
4633 expanded, call `check_final_variable_global_assignment_flag' and
4634 `check_static_final_variable_assignment_flag' if the current class
f6bbde28 4635 is an interface.
c7303e41
APB
4636 (maybe_yank_clinit): Fixed typo in comment.
4637 (build_outer_field_access_methods): Removed old sanity check. Use
4638 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
4639 Don't create access methods for finals.
4640 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
4641 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
f6bbde28 4642 existing DECL_INIT has been processed.
c7303e41
APB
4643 (java_complete_lhs): Likewise.
4644 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
4645 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
4646 logic.
4647 (patch_assignment): Use LOCAL_FINAL_P.
4648 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
4649 DECL_INITIAL is nullified.
4650 Fixes gcj/163.
4651
4b945402
KG
46522000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4653
4654 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
f6bbde28 4655
4b945402
KG
4656 * Makefile.in (parse.c, parse-scan.c): Likewise.
4657
1f8f4a0b
MM
46582000-10-12 Mark Mitchell <mark@codesourcery.com>
4659
4660 * class.c (temporary_obstack): Remove.
4661 (make_class): Don't mess with obstascks.
4662 (push_class): Likewise.
4663 (set_super_info): Likewise.
4664 (add_method_1): Likewise.
4665 (add_method): Likewise.
4666 (add_field): Likewise.
4667 (build_utf8_ref): Likewise.
4668 (build_class_ref): Likewise.
4669 (build_static_field_ref): Likewise.
4670 (finish_class): Likewise.
4671 (push_super_field): Likewise.
4672 (layout_class): Likewise.
4673 (layout_class_methods): Likewise.
4674 (init_class_processing): Likewise.
4675 * constants.c (get_tag_node): Likewise.
4676 (build_constant_data_ref): Likewise.
4677 * decl.c (ggc_p): Remove.
4678 (copy_lang_decl): Use ggc_alloc.
4679 (complete_start_java_method): Don't mess with obstacks.
4680 (start_java_method): Likewise.
4681 (end_java_method): Likewise.
4682 * except.c (link_handler): Use xmalloc.
4683 (free_eh_ranges): New function.
4684 (method_init_exceptions): Use it.
4685 (add_handler): Use xmalloc.
4686 (expand_start_java_handler): Don't mess with obstacks.
4687 (prepare_eh_table_type): Likewise.
4688 (expand_end_java_handler): Likewise.
4689 * expr.c (push_value): Likewise.
4690 (create_label_decl): Likewise.
4691 (build_jni_stub): Likewise.
4692 (java_lang_expand_expr): Likewise.
4693 (note_instructions): Use xrealloc.
4694 (java_push_constant_from_pool): Don't mess with obstacks.
4695 (process_jvm_instruction): Likewise.
4696 * java-tree.h (cyclic_inheritance_report): Remove duplicate
4697 declaration.
4698 * jcf-parse.c (get_constant): Don't mess with obstacks.
4699 (read_class): Likewise.
4700 (jcf_parse): Likewise.
a83f01f0 4701 * lex.c (expression_obstack): Remove.
1f8f4a0b
MM
4702 (java_lex): Don't use obstack_free.
4703 * parse.h (exit_java_complete_class): Don't mess with obstacks.
4704 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
4705 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
4706 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
4707 * parse.y (gaol): Add more GC roots.
4708 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
4709 (lookup_field_wrapper): Likewise.
4710 (obtain_incomplete_type): Don't mess with obstacks.
a83f01f0 4711 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
1f8f4a0b
MM
4712 macros.
4713 (craft_constructor): Don't mess with obstacks.
4714 (safe_layout_class): Likewise.
4715 (java_complete_class): Likewise.
4716 (source_end_java_method): Likewise.
4717 (build_outer_field_access_methods): Likewise.
4718 (build_outer_method_access_method): Likewise.
4719 (maybe_build_thisn_access_method): Likewise.
4720 (build_dot_class_method_invocation): Likewise.
4721 (java_complete_tree): Likewise.
4722 (java_complete_lhs): Likewise.
4723 (do_merge_string_cste): Likewise.
4724 (patch_string_cst): Likewise.
4725 (array_constructor_check_entry): Likewise.
4726 * typeck.c (build_java_array_type): Likewise.
4727 (parse_signature_string): Likewise.
4728 (build_java_signature): Likewise.
f6bbde28 4729
3c1d1e7b
TT
47302000-10-12 Tom Tromey <tromey@cygnus.com>
4731
4732 Fix for PR gcj/356:
4733 * gjavah.c (add_class_decl): Don't special-case inner classes.
4734 (add_namelet): Likewise.
4735
a93eddcf
APB
47362000-10-11 Rodney Brown <RodneyBrown@mynd.com>
4737
4738 * java-tree.h: Constify current_encoding.
4739 * lang.c: Constify current_encoding.
4740
47412000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
4742
4743 * jvgenmain.c (class_mangling_suffix): Omit `.'.
4744 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
4745
47462000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
4747
4748 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
4749 patch. Fixes gcj/340.
4750
2e165c53
TT
47512000-10-10 Tom Tromey <tromey@cygnus.com>
4752
4753 * lex.c (java_new_lexer): Initialize out_first and out_last
4754 fields.
4755 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
4756
c7303e41
APB
47572000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
4758
4759 * parse.y (pop_current_osb): New function.
4760 (array_type:): Use `dims:', changed actions
4761 accordingly. Suggested by Anthony Green.
4762 (array_creation_expression:): Used pop_current_osb.
4763 (cast_expression:): Likewise.
4764 (search_applicable_method_list): Fixed indentation.
4765
47662000-10-08 Anthony Green <green@redhat.com>
4767
4768 * parse.y (array_type_literal): Remove production.
4769 (type_literals): Refer to array_type, not array_type_literal.
4770
29f8b718
APB
47712000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
4772
4773 Patch contributed by Corey Minyard.
4774 * decl.c (check_local_named_variable): New function.
4775 (tree check_local_unnamed_variable): Likewise.
4776 (find_local_variable): Splitted. Call check_local_{un}named_variable.
4777
7fd9a516
AG
47782000-10-07 Anthony Green <green@redhat.com>
4779
4780 * class.c (layout_class): Handle case where superclass can't be
4781 layed out yet.
4782
20d431c9
JM
47832000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
4784
4785 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
4786 gperf.
4787
e0a0c416
TT
47882000-10-05 Tom Tromey <tromey@cygnus.com>
4789
4790 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
4791 * jvgenmain.c (class_mangling_prefix): Removed.
4792 (class_mangling_suffix): New global.
4793 (main): Use it.
4794 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
4795 `$'.
4796 (print_method_info): Handle overrides for static and final
4797 methods.
4798 (process_file): Generate declaration for class object field.
4799 * class.c (cxx_keywords): New array.
4800 (utf8_cmp): New function.
4801 (cxx_keyword_p): New function.
4802 (layout_class_method): Mangle C++ keywords by appending `$'.
4803 (mangle_field): New function.
4804 (mangle_class_field): Use mangle_field. Mangle class name as
4805 `class$'.
4806 (mangle_static_field): Use mangle_field.
4807
6e22695a
APB
4808Tue Oct 3 13:44:37 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
4809
4810 * decl.c (find_local_variable): Removed uncessary type check and
4811 fixed range check typo. From Corey Minyard.
4812
4813Wed Sep 13 16:06:52 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
4814
4815 * decl.c (give_name_to_locals): New local `code_offset'. Call
e64c46ce 4816 `maybe_adjust_start_pc'.
6e22695a
APB
4817 * expr.c (note_instructions): New function.
4818 (expand_byte_code): Don't collect insn starts here.
4819 (peek_opcode_at_pc): New function.
4820 (maybe_adjust_start_pc): Likewise.
4821 * java-tree.h (maybe_adjust_start_pc): Declare.
4822 (note_instructions): Likewise.
dba41d30 4823 * jcf-parse.c (parse_class_file): Call `note_instructions'.
6e22695a
APB
4824
4825Wed Sep 13 11:50:35 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
4826
4827 * parse.y (field_access:): Fixed indentation.
4828 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
4829
7e51098e
TT
48302000-09-07 Tom Tromey <tromey@cygnus.com>
4831
4832 Fix for PR gcj/307:
4833 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
4834 JPRIMITIVE_TYPE_P, for arithmetic operators.
4835 (patch_method_invocation): Indentation fix.
4836 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
4837 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
4838 (do_unary_numeric_promotion): Cleaned up code.
4839 (valid_cast_to_p): Handle boolean correctly.
4840
5beededc
TT
48412000-09-27 Tom Tromey <tromey@cygnus.com>
4842
4843 * lex.c (java_read_unicode): Reset bs_count when finished with
4844 `\u' sequence.
4845
f15b9af9
MM
48462000-10-01 Mark Mitchell <mark@codesourcery.com>
4847
4848 Convert to GC.
4849 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
4850 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
4851 (typeck.o): Depend on ggc.h.
4852 * class.c (add_method_1): Use GC functions for allocation.
4853 (init_class_processing): Register roots.
4854 * decl.c (ggc_p): Set to 1.
4855 (pending_local_decls): Make it static.
4856 (push_jvm_slot): Use GC functions for allocation.
4857 (init_decl_processing): Register roots.
4858 (give_name_to_locals): Use GC functions for allocation.
4859 (lang_mark_tree): New function.
4860 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
4861 functions for allocation.
4862 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
4863 * lex.c (java_lex): Use build_string, rather than replicating it
4864 inline.
4865 * parse.y (goal): Add more roots.
4866 (mark_parser_ctxt): New function.
4867 * typeck.c: Include ggc.h.
f6bbde28 4868
99eaf8d4
APB
48692000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
4870
4871 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
4872 contains something else than MODIFY_EXPR.
4873
19e223db
MM
48742000-09-23 Mark Mitchell <mark@codesourcery.com>
4875
4876 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
4877 * Makefile.in (parse.o): Depend on ggc.h.
4878 (class.o): Likewise.
4879 (constants.o): Likewise.
4880 (decl.o): Likewise.
4881 (expr.o): Likewise.
4882 (jcf-parse.o): Likewise.
4883 (jcf-write.o): Likewise.
4884 (mangle.o): Likewise.
4885 * class.c: Include ggc.h.
4886 (build_static_field_ref): Register GC roots.
4887 (layout_class): Likewise.
4888 (init_class_processing): Likewise.
4889 * constants.c: Include ggc.h.
4890 (current_constant_pool_data_ref): Remove.
4891 (tag_nodes): Move it to ...
4892 (get_tag_node): ... here. Register GC roots.
4893 * decl.c: Include ggc.h. Remove many global tree definitions.
4894 (throw_node): Define.
4895 (java_global_trees): Likewise.
4896 (predef_filenames): Make the size a constant.
4897 (init_decl_processing): Adjust accordingly.
4898 (init_decl_processing): Call init_jcf_parse. Register GC roots.
4899 * expr.c: Include ggc.h.
4900 (init_expr_processing): Register GC roots.
4901 (build_invokeinterface): Likewise.
4902 * java-tree.h: Replace extern tree declarations with macros.
4903 (java_global_trees): New variable.
4904 (java_tree_index): New enumeration.
4905 (init_jcf_parse): Declare.
4906 * jcf-parse.c: Include ggc.h.
4907 (current_class): Remove declaration.
4908 (main_class): Likewise.
4909 (all_class_list): Likewise.
4910 (predefined_filename_p): Adjust for constant size of
4911 predef_filenames.
4912 (init_jcf_parse): New function.
4913 * jcf-write.c: Include ggc.h.
4914 (generate_classfile): Register GC roots.
4915 (append_synthetic_attribute): Likewise.
4916 (append_innerclass_attribute_entry): Likewise.
4917 * lang.c: Include ggc.h.
4918 (lang_print_error): Register GC roots.
4919 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
4920 with macros.
4921 * parse.y: Include ggc.h.
4922 (wfl_operator): Remove.
4923 (goal): Register GC roots.
4924 (java_pop_parser_context): Adjust for new field names.
4925 (java_parser_context_save_global): Likewse.
4926 (java_parser_context_restore_global): Likewise.
4927 (java_parser_context_suspend): Likewise.
4928 (java_parser_context_resume): Likewise.
4929 (verify_constructor_circularity): Register GC roots.
4930 (lookup_cl): Likewise.
4931 (java_reorder_fields): Likewise.
4932 (build_current_this): Likewise.
4933 (class_in_current_package): Likewise.
4934 (argument_types_convertible): Likewise.
4935 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
f6bbde28 4936
4c4b521a
TT
49372000-09-14 Tom Tromey <tromey@cygnus.com>
4938
4939 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
4940
6b8a24cd
TT
49412000-09-13 Tom Tromey <tromey@cygnus.com>
4942
4943 * jcf-parse.c: Include <locale.h>.
4944 * jv-scan.c: Include <locale.h>.
4945
86e4b1e4
TT
49462000-09-12 Tom Tromey <tromey@cygnus.com>
4947
4948 * expr.c (pop_type_0): Return `Object' if trying to merge two
4949 interface types.
4950 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
4951 interface types; `Object' is always a valid supertype.
4952
d19cbcb5
TT
49532000-09-12 Tom Tromey <tromey@cygnus.com>
4954
4955 Fix for PR gcj/33:
4956 * jv-scan.c (help): Document --encoding.
4957 (options): Added `encoding' entry.
4958 (OPT_ENCODING): New define.
4959 (main): Handle --encoding.
4960 Include <langinfo.h> if nl_langinfo exists.
4961 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
4962 --encoding.
4963 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
4964 (parse_source_file): Correctly call java_init_lex. Added `finput'
4965 argument. Use nl_langinfo to determine default encoding.
4966 * java-tree.h (current_encoding): Declare.
4967 * parse.y (java_parser_context_restore_global): Don't restore
4968 `finput'.
4969 (java_parser_context_save_global): Don't set `finput' field.
4970 (java_pop_parser_context): Don't restore `finput'. Free old lexer
4971 if required.
4972 * lang.c (current_encoding): New global.
4973 (lang_decode_option): Recognize `-fencoding='.
4974 (finish_parse): Don't close finput.
4975 * parse.h (struct parser_ctxt): Removed `finput' and
4976 `unget_utf8_value' fields. Added `lexer' field.
4977 (java_init_lex): Fixed declaration.
4978 * lex.c (java_new_lexer): New function.
4979 (java_destroy_lexer): Likewise.
4980 (java_read_char): Added `lex' argument. Handle iconv case.
4981 (java_read_unicode): Added `lex' argument. Count backslashes in
4982 lexer structure.
4983 (java_init_lex): Added `finput' and `encoding' arguments. Set
4984 `lexer' field in ctxp.
4985 (BAD_UTF8_VALUE): Removed.
4986 (java_lex): Handle seeing UEOF in the middle of a string literal.
4987 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
4988 (java_lexer): New structure.
4989 (UNGETC): Removed.
4990 (GETC): Removed.
4991 (DEFAULT_ENCODING): New define.
4992 (java_destroy_lexer): Declare.
4993
ee17a290
TT
49942000-09-12 Tom Tromey <tromey@cygnus.com>
4995
4996 Fix for PR gcj/343:
4997 * lex.c (java_init_lex): Initialize java_io_serializable.
4998 * parse.y (java_io_serializable): New global.
4999 (valid_ref_assignconv_cast_p): An array can be cast to
5000 serializable.
5001
d8ea8f28
ZW
50022000-09-10 Zack Weinberg <zack@wolery.cumb.org>
5003
5004 * decl.c, expr.c: Include defaults.h if not already included.
5005 Don't define the *_TYPE_SIZE macros.
5006
0caae6dd
GK
50072000-09-09 Geoffrey Keating <geoffk@cygnus.com>
5008
5009 * typeck.c (build_java_array_type): Correct first parameter
5010 in ADJUST_FIELD_ALIGN invocation.
5011
f0bee8b3
TT
50122000-09-06 Tom Tromey <tromey@cygnus.com>
5013
5014 * lang-specs.h: Also recognize `-femit-class-files'.
5015
3e99f50c
APB
50162000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
5017
5018 * verify.c (merge_types): Load the types to merge if necessary.
5019
3ca8c9ae
AG
50202000-09-02 Anthony Green <green@redhat.com>
5021
5022 * jcf-io.c: Include zlib.h.
5023 (open_in_zip): Read compressed class file archives.
5024 * zipfile.h (ZipDirectory): Add uncompressed_size and
5025 compression_method fields.
5026 * zextract.c (read_zip_archive): Collect file compression info.
5027
e1d565ab
BM
50282000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
5029
f6bbde28 5030 * parse.y (do_resolve_class): Also explore superclasses of
e1d565ab
BM
5031 intermediate enclosing contexts when searching for inner classes.
5032
29f8b718
APB
50332000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
5034
5035 * parse.y (variable_declarator_id:): Better error message.
5036 (expression_statement:): Use YYNOT_TWICE.
5037 (cast_expression:): Likewise.
5038 (assignment:): Likewise.
5039
354e99ce
APB
50402000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
5041
5042 * parse.y (do_merge_string_cste): New locals. Create new
5043 STRING_CSTs each time, use memcpy. Fixes gcj/311.
5044
7c097ee9
HB
50452000-08-07 Hans Boehm <boehm@acm.org>
5046
5047 * boehm.c (mark_reference_fields): Set marking bits for all words in
5048 a multiple-word record.
5049 (get_boehm_type_descriptor): Use the procedure marking descriptor for
5050 java.lang.Class.
f6bbde28 5051
3d919a0e
MS
50522000-08-31 Mike Stump <mrs@wrs.com>
5053
5054 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
5055 jcf-dump$(exeext)): Make parallel safe.
5056
63ad61ed
ZW
50572000-08-29 Zack Weinberg <zack@wolery.cumb.org>
5058
5059 * jcf-parse.c (set_source_filename): Constify a char *.
5060 * jcf-write.c (append_innerclasses_attribute,
5061 make_class_file_name): Constify a char *. Don't recycle a
5062 variable for an unrelated purpose.
5063 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
5064 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
5065
c00f0fb2
APB
50662000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
5067
5068 * expr.c (can_widen_reference_to): Fixed indentation.
5069 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
5070 * parse.y: `finit$' replaces `$finit$' in comments.
5071 (try_builtin_assignconv): Fixed leading comment.
5072
94574545
GM
50732000-08-25 Greg McGary <greg@mcgary.org>
5074
5075 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
5076
6e2aa220
GM
50772000-08-24 Greg McGary <greg@mcgary.org>
5078
5079 * lang.c (lang_decode_option): Use ARRAY_SIZE.
5080 * parse.y (BINOP_LOOKUP): Likewise.
5081
9b1ee05b
AH
50822000-08-22 Andrew Haley <aph@cygnus.com>
5083
5084 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
5085 sign extending. Fixes gcj/321.
5086 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
5087 combining to make a jlong. Fixes gcj/321.
5088
05a3d06e 50892000-08-21 Nix <nix@esperi.demon.co.uk>
f6bbde28 5090
05a3d06e
N
5091 * lang-specs.h: Do not process -o or run the assembler if
5092 -fsyntax-only.
5093
65f69237
AH
50942000-08-16 Andrew Haley <aph@cygnus.com>
5095
5096 * typeck.c (build_java_array_type): Rewrite code to do array
5097 alignment. Take into account back-end macros when aligning array
5098 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
5099 user to set alignment. Fixes gcj/252 and 160.
5100
2e0f0aff
TT
51012000-08-09 Tom Tromey <tromey@cygnus.com>
5102
1175b9b4
TT
5103 * parse.y (check_abstract_method_definitions): Now return `int'.
5104 Check implemented interfaces. Fixes PR gcj/305.
5105
2e0f0aff
TT
5106 * parse.y (patch_switch_statement): Disallow `long' in switch
5107 expressions. Fixes PR gcj/310.
5108
25bdcbc5
APB
51092000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
5110
5111 * decl.c (finit_leg_identifier_node): New global.
5112 (init_decl_processing): Use `finit$' to initialize
5113 finit_identifier_node. Use `$finit$' to initialize
5114 finit_leg_identifier_node.
5115 * expr.c (expand_java_field_op): Use ID_FINIT_P.
5116 * java-tree.h (finit_identifier_node): Changed attached comment.
5117 (finit_leg_identifier_node): New declaration.
5118 (ID_FINIT_P): Take finit_identifier_node and
5119 finit_leg_identifier_node into account. This is a backward
5120 compatibility hack.
5121
81baa09a
APB
51222000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
5123
5124 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
5125 Jan 6 2000 patch.
5126 (generate_bytecode_insns): Check `nargs' before emitting it.
5127 * verify.c (merge_type_state): Fixed typo.
5128 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
5129 generate_bytecode_{conditional,insns}.
5130
458530ee
AG
5131Sun Aug 13 09:41:49 2000 Anthony Green <green@redhat.com>
5132
5133 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
5134 for -pg builds).
5135
34d4df06
APB
51362000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
5137
5138 * class.c (maybe_layout_super_class): Fixed indentation.
5139 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
5140 (java_check_methods): New function declaration.
5141 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
5142 instead of `str_ptr'.
5143 * jcf-write.c (generate_bytecode_insns): Emit number the of args
5144 of a `invokeinterface' at the right time.
5145 * parse.h (WFL_STRIP_BRACKET): New macro.
5146 (SET_TYPE_FOR_RESOLUTION): Use it.
dba41d30 5147 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
34d4df06
APB
5148 (check_class_interface_creation): Don't check for cross package
5149 innerclass name clashes.
dba41d30 5150 (method_header): Behave properly if MDECL is `error_mark_node'.
34d4df06
APB
5151 (method_declarator): Return `error_mark_node' if bogus current
5152 class.
5153 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
5154 (resolve_and_layout): New local `decl_type', set and used. Call
5155 java_check_methods.
5156 (java_check_methods): New method.
5157 (java_layout_classes): Use it.
5158 (resolve_qualified_expression_name): No EH check necessary in
5159 access$<n>.
5160 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
5161 `case' statement.
5162 (patch_assignment): Set DECL_INITIAL on integral final local.
5163
5f1c312a
APB
51642000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
5165
5166 * java-tree.h (flag_extraneous_semicolon): New extern.
5167 * lang-options.h: (-Wextraneous-semicolon): New option.
5168 * lang.c (flag_redundant): Fixed typo in leading comment.
5169 (flag_extraneous_semicolon): New global.
5170 (lang_decode_option): Set `flag_extraneous_semicolon' when
5171 -Wall. Decode `-Wextraneous-semicolon'.
5172 * parse.y (type_declaration:): Removed `SC_TK' hack, added
5173 `empty_statement' rule.
5174 (class_body_declaration): Likewise.
5175 (method_body:): Accept `;' as a method body.
5176 (static_initializer:): Removed `SC_TK' hack.
5177 (constructor_block_end:): Likewise.
5178 (empty_statement:): Report deprecated empty declaration. Fixes
5179 gcj/295
5180
25bdcbc5 51812000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
f0f3a777
APB
5182
5183 * parse.y (build_dot_class_method_invocation): Changed parameter
dba41d30 5184 name to `type'. Build signature from `type' and convert it to a
f0f3a777
APB
5185 STRING_CST if it's an array.
5186 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
5187 to use `ref_type' directly.
5188
64c04091
OP
5189Sun Aug 6 00:47:24 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
5190
5191 * lang-options.h: Added a comma after the last element to avoid
5192 syntax errors when other languages define additional options.
5193
a36556a8
ZW
51942000-08-04 Zack Weinberg <zack@wolery.cumb.org>
5195
5196 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
5197 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
5198 (jc1): Link with $(BACKEND).
5199 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
5200
50e60bc3
ZW
52012000-08-02 Zack Weinberg <zack@wolery.cumb.org>
5202
37620334
ZW
5203 * jvspec.c: Adjust type of second argument to
5204 lang_specific_driver, and update code as necessary.
5205
50e60bc3
ZW
5206 * class.c (build_dtable_decl): Initialize dummy.
5207
f0f3a777
APB
52082000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
5209
5210 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
5211 method bodies not to rule out discarding `<clinit>'; don't use
5212 <clinit> to initialize static fields with constant initializers.
5213
52142000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
5215
5216 * gjavah.c (print_method_info): Added `synth' parameter. Skip
5217 synthetic methods.
5218 (method_synthetic): New global.
5219 (HANDLE_METHOD): Recognize synthetic method and tell
5220 `print_method_info' about it.
5221 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
5222 processing a synthetic method.
5223 * jcf-reader.c (skip_attribute): New function.
5224 ( skip_attribute): Likewise.
5225
52262000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
5227
5228 * parse.y (build_outer_field_access): Fixed comments.
5229 (fix_constructors): Emit the initialization of this$<n> before
5230 calling $finit$.
5231 (resolve_qualified_expression_name): Build an access to `decl' if
5232 necessary.
5233
52342000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
5235
5236 * parse-scan.y (curent_class): Non longer const.
5237 (inner_qualifier, inner_qualifier_length): Deleted.
5238 (current_class_length): New global.
5239 (bracket_count): Fixed typo in leading comment.
5240 (anonymous_count): New global.
5241 (class_instance_creation_expression:): Handle anonymous classes.
5242 (anonymous_class_creation:): New rule.
5243 (push_class_context): Rewritten.
5244 (pop_class_context): Likewise.
5245 (INNER_QUALIFIER): Macro deleted.
5246 (report_class_declaration): call `push_class_context' when
5247 entering the function. `fprintf' format modified not to use
5248 INNER_QUALIFIER.
5249 (report_class_declaration): Assign `package_name' and
a83f01f0 5250 `current_class' to NULL separately.
f0f3a777
APB
5251
52522000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
5253
5254 * expr.c (build_invokeinterface): Call layout_class_methods on
5255 target interface.
5256
13107ec0 52572000-07-27 Tom Tromey <tromey@cygnus.com>
f6bbde28 5258 Anthony Green <green@cygnus.com>
13107ec0
TT
5259 Alexandre Petit-Bianco <apbianco@cygnus.com>
5260
5261 * class.c (make_class_data): Create vtable for abstract classes.
5262 (get_dispatch_table): Changed to cope with abstract classes.
5263
da632f2c
APB
52642000-07-27 Tom Tromey <tromey@cygnus.com>
5265
5266 * parse.y (patch_method_invocation): Don't reverse the argument
5267 list when dealing with anonymous class constructors. Fixed typo in
5268 comment.
5269
52702000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
5271
5272 * parse.y (build_alias_initializer_parameter_list): Reverse
5273 crafted list when building aliases for anonymous class
5274 constructors.
5275
1e12ab9b
APB
52762000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
5277
5278 * parse.y (jdep_resolve_class): Don't bother checking potential
5279 innerclass access if `decl' is NULL.
5280 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
5281 WFL.
5282
4c31fe99
APB
52832000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
5284
5285 * parse.c: Remove (again.)
5286
1e12ab9b
APB
52872000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
5288
5289 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
5290 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
5291 outside the `if' statement, alias to innerclass removed, `decl'
5292 used to mark the class complete.
5293
f4530f43
APB
52942000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
5295
5296 * parse.y (simple_name:): Fixed typo in error message.
5297
e7c7bcef
APB
52982000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
5299
5300 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
5301 or its first operand can be error marks.
5302
53032000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
5304
5305 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
5306 * parse.y (method_header): Likewise.
5307
02ae6e2e
APB
53082000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
5309
5310 * parse.y (process_imports): Consider that one might be trying to
5311 import an innerclass. Fixes gcj/254
5312
e7c7bcef
APB
53132000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
5314
5315 * parse.y (find_as_inner_class): Handle the case where the
5316 enclosing context of an innerclass has been loaded as bytecode.
5317
4142b247
APB
53182000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
5319
f6bbde28 5320 * parse.y (simple_name:): Reject `$' in type names.
4142b247
APB
5321 (resolve_type_during_patch): Use `type' as a second
5322 argument to resolve_no_layout. Fixes gcj/257.
5323
cab8e2bd
BM
53242000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
5325
f6bbde28 5326 * parse.y (find_most_specific_methods_list): Select the only
cab8e2bd
BM
5327 non-abstract method even if max has been set.
5328 Fixes gcj/285, gcj/298.
5329
ca2875c4
JS
53302000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
5331
5332 * lang-specs.h: Added %(jc1) to java compiler options.
5333
bfbbc080
ZW
53342000-07-14 Zack Weinberg <zack@wolery.cumb.org>
5335
5336 * .cvsignore: New file.
5337
11b26d72
APB
53382000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
5339
5340 * parse.y (not_accessible_p): Access granted to innerclasses
5341 (indirectly) extending the reference type. Fixes gcj/249.
5342
53432000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
5344
5345 * parse.y (patch_method_invocation): Fixed comment.
5346 (maybe_use_access_method): Build this$<n>s to the context of the
5347 target method, or a type that extends it. Fixes gcj/242.
5348
649c9142
MM
53492000-07-13 Mark Mitchell <mark@codesourcery.com>
5350
5351 * parse.c: Remove.
5352
ee97d354
APB
53532000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
5354
5355 * parse.y (fold_constant_for_init): Avoid bullish conversion.
5356
44fadf1e
TT
53572000-07-13 Tom Tromey <tromey@cygnus.com>
5358
5359 * lang-specs.h: Added %{I*}.
5360
ea414c97
ZW
53612000-07-13 Zack Weinberg <zack@wolery.cumb.org>
5362
5363 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
5364
792abd35
MM
53652000-07-12 Mark Mitchell <mark@codesourcery.com>
5366
5367 * parse-scan.c: Remove.
5368
11b26d72
APB
53692000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
5370
5371 * class.c (set_super_info): Handled protected inner classes.
5372 (common_enclosing_context_p): Bail early if arguments aren't both
5373 inner classes.
5374 (get_access_flags_from_decl): Handle private and protected inner
5375 classes.
5376 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
5377 (CLASS_PROTECTED): Likewise.
dba41d30 5378 (struct lang_type): New bitfield `poic'.
11b26d72
APB
5379 * parse.y (jdep_resolve_class): Call check_inner_class_access on
5380 inner classes only.
5381 (check_inner_class_access): Renamed arguments, added
5382 comments. Handles protected inner classes (fixes gcj/225)
5383 (not_accessible_p): Fixed comments. Avoid handling inner classes.
5384
53852000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
5386
5387 * parse.y (resolve_qualified_expression_name): Verify qualified
dba41d30 5388 access to `this'. Fixes gcj/239.
11b26d72 5389
e67eb1a0 53902000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
2f2bd00a 5391
e67eb1a0
APB
5392 * jcf-write.c (generate_classfile): Don't install ConstantValue
5393 for null pointers.
2f2bd00a 5394
11b26d72
APB
53952000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
5396
5397 * parse.y (resolve_qualified_expression_name): Handle inner class
5398 access. Fixes gcj/256.
5399
629d4b4d
APB
54002000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
5401
5402 * jcf-write.c (generate_classfile): Properly install the
5403 ConstantValue attribute and the initial value constant pool index
5404 on string constants.
5405 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
5406 class files.
5407
0c2b8145
APB
54082000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
5409
5410 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
5411 construct.
5412 * parse.y (find_as_inner_class): Fixed typo.
5413 (do_resolve_class): Explore enclosing contexts when searching for
5414 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
5415 (check_inner_class_access): Check `decl' which can be null in case
5416 of previous errors.
5417
54182000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
5419
dba41d30 5420 * java-tree.h (java_debug_context): Declared `extern'.
0c2b8145
APB
5421 (safe_layout_class): Likewise.
5422 * parse.y (resolve_field_access): Field must be `static' in order
5423 to be replaced by its initial value. Added comments.
5424 (find_applicable_accessible_methods_list): Fixed typo.
5425 (find_most_specific_methods_list): Methods found in innerclasses
5426 take over methods founds in the enclosing contexts.
5427 (java_complete_tree): Loosen restrictions on the type of DECLs
5428 that can be replaced by their initialization values.
dba41d30 5429 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
0c2b8145 5430
0267da64
TT
54312000-07-05 Tom Tromey <tromey@cygnus.com>
5432
5433 * Make-lang.in (PARSE_DIR): New macro.
5434 (PARSE_RELDIR): Likewise.
5435 (PARSE_C): Likewise.
5436 (PARSE_SCAN_C): Likewise.
5437 ($(PARSE_C)): New target.
5438 ($(PARSE_SCAN_C)): Likewise.
5439 (SET_BISON): New macro.
5440 (BISONFLAGS): Likewise.
5441 (JAVABISONFLAGS): Likewise.
5442
1bbee75b
BM
54432000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
5444
f6bbde28
ZW
5445 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
5446 argument on the first pass for CNI as well as JNI.
5447 (print_method_info): Set up method name on the first pass only.
5448
98a52c2c
APB
54492000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
5450
5451 * parse.y (parser_qualified_classname): Removed parameter
5452 `is_static'.
5453 (create_interface): Removed first passed parameter to
5454 parser_qualified_classname.
5455 (create_class): Likewise. Don't install alias on static
5456 innerclasses. Fixes gcj/275.
5457
54582000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
5459
5460 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
5461 debugable statement with empty_stmt_node. Fixes gcj/272
5462
54632000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
5464
5465 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
5466 gcj/271.
5467
c1c8f8cc
APB
54682000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
5469
5470 * jcf-write.c (push_long_const): Appropriately cast short negative
5471 constant to jword.
5472
cf1b2274
APB
54732000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
5474
5475 * parse.y (verify_constructor_super): Use loop variable
5476 `m_arg_type' initialized with `mdecl_arg_type'.
5477
6eaeeb55
TT
54782000-06-29 Tom Tromey <tromey@cygnus.com>
5479
5480 * parse.y (resolve_field_access): Handle case where `type_found'
5481 is NULL.
5482
18ee3d5e
APB
54832000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
5484
5485 * expr.c (lookup_field): The same field can be found through two
5486 different interface. Don't declare it ambiguous in that case.
5487
61d5c158
TT
54882000-06-27 Tom Tromey <tromey@cygnus.com>
5489
5490 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
5491 follows \r, then unget it at a lower level.
5492
70541f45
TT
54932000-06-26 Tom Tromey <tromey@cygnus.com>
5494
5495 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
5496 java_complete_tree.
5497
774d2baf
TT
54982000-06-25 Tom Tromey <tromey@cygnus.com>
5499
5500 * parse.y (for_statement): Wrap expression in a WFL if it is a
5501 constant. For PR gcj/268.
5502
d6baf6f5
APB
55032000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
5504
5505 * parse.y (do_resolve_class): Minor optimiztion in the package
17126208 5506 list search. Removed unnecessary test and return statement.
d6baf6f5
APB
5507 (valid_ref_assignconv_cast_p): Order of arguments to
5508 enclosing_context_p fixed.
5509
120f0c10
TT
55102000-06-24 Tom Tromey <tromey@cygnus.com>
5511
ae4a4c88
TT
5512 * expr.c (lookup_field): Print error and return error_mark_node if
5513 field reference is ambiguous.
5514
120f0c10
TT
5515 * parse.y (check_abstract_method_definitions): Also check if
5516 `other_method' is abstract.
5517
cf1748bf
APB
55182000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
5519
5520 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
5521 classes.
5522 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
dba41d30 5523 (struct lang_type): New field `pic'.
cf1748bf
APB
5524 (CLASS_PRIVATE): New macro.
5525 * parse.y (check_inner_class_access): New function.
5526 (jdep_resolve_class): Call it.
5527
f1ff439a
TT
55282000-06-23 Tom Tromey <tromey@cygnus.com>
5529
5530 * parse.y (patch_incomplete_class_ref): Initialize the returned
5531 class. For PR gcj/260.
5532
9a7ab4b3
APB
55332000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
5534
5535 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
5536
55372000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
5538
5539 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
5540 Java specific checks.
5541 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
5542 screened by DECL_P.
5543 * java-tree.def (CASE_EXPR): Marked 'e'.
5544 (DEFAULT_EXPR): Likewise.
5545 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
5546 screened by DECL_P.
5547 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
5548 Java specific checks.
5549 (generate_bytecode_insns): Test try_block for BLOCK before using
5550 BLOCK_EXPR_BODY.
5551 * parse.y (build_wfl_wrap): Added `location' argument. Set
5552 EXPR_WFL_LINECOL accordingly.
5553 (dim_expr:): Wrap constants with WFLs.
5554 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
5555 (resolve_package): Check for `stmt' not being a BLOCK before
5556 building a debuggable statement with it.
5557 (make_qualified_primary): Added extra parameter to build_wfl_wrap
5558 invocation.
5559 (resolve_field_access): Make sure `decl' is a DECL before treating
5560 it as such.
5561 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
5562 IDENTIFIER_NODE before treating it as such.
5563 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
5564 treating it as such.
5565 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
5566 to be applied only on non array types.
5567
55682000-06-16 Per Bothner <per@bothner.com>
5569
5570 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
5571 define in terms of DECL_RESULT, as that fails when --enable-checking.
f6bbde28 5572
ffb1f63d
KG
55732000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5574
5575 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
5576 types the same in comparison.
5577 (CHECK_OP): Add static prototype.
5578
11cf4d18
JJ
55792000-06-13 Jakub Jelinek <jakub@redhat.com>
5580
5581 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
5582 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
5583 * parse.c: Rebuilt.
5584
5ac9118e
KG
55852000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5586
5587 * decl.c (create_primitive_vtable): Prototype.
5588
5589 * jcf-write.c (generate_bytecode_insns): Initialize variable
5590 `saved_context'.
5591
5592 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
5593
ad69b5b6
BM
55942000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
5595
5596 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
5597 to track searched classes, and do not search the same class more than
5598 once. Call find_applicable_accessible_methods_list on immediate
5599 superclass, instead of search_applicable_method_list on all ancestors.
5600 Fix for PR gcj/238.
5601
cf1748bf
APB
56022000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
5603
5604 * parse.y (register_fields): Permit static fields in inner classes
5605 if they are final. Fix for PR gcj/255.
5606
9a7ab4b3
APB
56072000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
5608
5609 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
5610 * parse.y (find_in_imports): Returned type changed to void,
5611 leading comment fixed.
5612 (register_package): New function.
5613 (qualify_and_find): Likewise.
5614 (package_declaration:): Use `register_package'.
5615 (single_type_import_declaration:): Removed local variable
5616 `node'. Added missing `;' for consistency.
5617 (type_import_on_demand_declaration:): Use `chainon' to link new
5618 entries.
5619 (lookup_field_wrapper): Lookup local variables defined in outer
5620 contexts first.
5621 (java_complete_class): Don't reverse the list of imported on demand.
5622 (do_resolve_class): Reorganized. Removed local variable
5623 `original_name'. Call `qualify_and_find' with the current package
5624 name, invoke `find_in_imports_on_demand' right after. Call
5625 `qualify_and_find' with the packages we've seen so far. Fixed
5626 operations numbering in comments.
5627 (java_expand_class): Don't reverse `package_list'.
5628 (find_most_specific_methods_list): New local variables `abstract'
5629 and `candidates'. Use them to pick the right method.
5630
14d075d8
TT
5631Tue Jun 6 11:39:05 2000 Tom Tromey <tromey@ferrule.cygnus.com>
5632
5633 * parse.y (check_modifiers_consistency): Don't subtract out
5634 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
5635
603832a0
PT
56362000-06-04 Philipp Thomas <pthomas@suse.de>
5637
5638 * Makefile.in (INTLLIBS): New.
5639 (LIBS): Add above.
5640 (DEPLIBS): Ditto.
5641
8f975c18
APB
5642Fri Jun 2 16:48:55 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
5643
5644 * class.c (get_dispatch_table): Build the vtable dummy entry list
e64c46ce 5645 element with a null purpose. Fixed leading comment.
8f975c18 5646 (build_dtable_decl): Build an accurate dtable type when appropriate
e64c46ce 5647 and use it.
8f975c18 5648
2e761e49
RH
56492000-06-02 Richard Henderson <rth@cygnus.com>
5650
5651 * lang.c (lang_get_alias_set): New.
5652
0f145be8
APB
56532000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
5654
5655 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
5656 before using it as the accessed field.
5657
2771fe54
TT
56582000-05-31 Tom Tromey <tromey@cygnus.com>
5659
5660 * java-tree.h (boolean_array_vtable, byte_array_vtable,
5661 char_array_vtable, short_array_vtable, int_array_vtable,
5662 long_array_vtable, float_array_vtable, double_array_vtable):
5663 Declare.
5664 * expr.c (get_primitive_array_vtable): New function.
5665 (create_primitive_vtable): New function.
5666 (java_lang_expand_expr): Enable code to statically generate
5667 arrays.
5668 * decl.c (init_decl_processing): Create primitive vtables.
5669 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
5670 short_array_vtable, int_array_vtable, long_array_vtable,
5671 float_array_vtable, double_array_vtable): Define.
5672
30a3caef
ZW
56732000-05-26 Zack Weinberg <zack@wolery.cumb.org>
5674
5675 * java/parse.y (find_applicable_accessible_methods_list):
5676 Don't add an uninitialized value to the list.
5677
b8c5b1c6
TT
56782000-05-25 Tom Tromey <tromey@cygnus.com>
5679
40aaba2b
TT
5680 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
5681 when trying to see if field's class should be initialized. Always
5682 initialize field's declaring class, not qualified class.
5683 For PR gcj/162.
5684
b8c5b1c6
TT
5685 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
5686 `wfl_operator', to maybe_build_primttype_type_ref.
5687 Fixes PR gcj/235.
5688
6518c7b5
BM
56892000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
5690
5691 * parse.y (patch_method_invocation): Don't try to lookup methods
5692 in primitive types.
5693
611a4b87
APB
56942000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
5695
5696 * parse.y (resolve_field_access): Call the appropriate <clinit>
5697 before accessing the length of a static array. Craft a decl for
5698 the field while its time. Fixes PR gcj/129.
f6bbde28 5699
6b48deee
APB
57002000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
5701
5702 * parse.y (resolve_package): Correctly set `*next' (was off by
5703 one.)
5704 (resolve_qualified_expression_name): Fixed comment.
5705
0ba154aa
APB
5706Thu Apr 27 17:47:34 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
5707
f6bbde28 5708 * jcf-parse.c (jcf_parse_source): Reset current_class and
e64c46ce 5709 current_function_decl to NULL before parsing a new file.
0ba154aa 5710
c280e37a
APB
5711Thu Apr 27 17:25:33 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
5712
5713 * parse.y (block_end:): If the collected block doesn't feature a
e64c46ce 5714 statement, insert an empty statement.
c280e37a 5715
92d83515
APB
57162000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
5717
f6bbde28
ZW
5718 * parse.y (maybe_yank_clinit): New function.
5719 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
5720 end of the list of methods belonging to a class.
5721 (java_complete_expand_method): Check whether <clinit> is really
5722 necessary and expand it accordingly.
92d83515 5723
ec5bb3cf
APB
57242000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
5725
5726 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
5727 processed by the method's switch statement.
5728
67db0ce7
TT
57292000-05-19 Tom Tromey <tromey@cygnus.com>
5730
5731 * java-tree.h: Added init state enum.
5732 * decl.c (emit_init_test_initialization): Initialize class
5733 initialization check variable by looking at class' state.
5734
43490bec
TT
57352000-05-19 Tom Tromey <tromey@cygnus.com>
5736
5737 * java-tree.h (build_instanceof): Declare.
5738 (build_get_class): Declare.
5739 * parse.y (patch_binop): Use build_instanceof.
5740 * expr.c (build_instanceof): New function. If class is final,
5741 don't make a function call.
5742 (expand_java_INSTANCEOF): Use it.
5743 (build_get_class): New function.
5744
062edaed
AO
57452000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
5746
5747 * jcf-write.c (generate_classfile): Scan the source_file for
5748 slashes with the right pointer variable.
5749
078721e1
AC
5750Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
5751
5752 * lang.c (lang_decode_option): Update -Wunused flags by calling
e64c46ce 5753 set_Wunused.
078721e1
AC
5754 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
5755
46543024 57562000-05-09 Zack Weinberg <zack@wolery.cumb.org>
3b304f5b
ZW
5757
5758 * check_init.c (check_init): Constify local char *.
5759 * class.c (push_class): Constify local char *.
5760 * java_tree.h: Update prototypes.
5761 * jcf-io.c (open_class): Constify filename parameter and
5762 return value.
5763 (find_class): Remove redundant string copy. Cast return from
5764 open_class.
5765 * jcf-parse.c (read_class, parse_class_file, yyparse):
5766 Constify local char *.
5767 * jcf-write.c (generate_bytecode_insns, generate_classfile):
5768 Constify local char *.
5769 * jcf.h (JCF): Constify filename and classname.
5770 (JCF_FINISH): Cast args to FREE to char * when appropriate.
5771 * lang.c (init_parse): Constify parameter and return value.
5772 * lex.c (java_get_line_col): Constify filename parameter.
5773 * parse.h: Constify parser_ctxt.filename. Update prototypes.
5774 * parse.y (java_parser_context_suspend,
5775 issue_warning_error_from_context, safe_layout_class): Constify
5776 local char *.
5777 * parse.c: Regenerate.
5778
4c6a8973
TT
57792000-05-08 Tom Tromey <tromey@cygnus.com>
5780
5781 * expr.c (build_jni_stub): Cache the result of
5782 _Jv_LookupJNIMethod.
5783
e117276e
APB
57842000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
5785
5786 * decl.c (predef_filenames_size): Now 7.
5787 (predef_filenames): New seventh entry.
5788
652f2504
TT
57892000-05-04 Tom Tromey <tromey@cygnus.com>
5790
5791 * boehm.c (mark_reference_fields): Don't mark RawData fields.
5792 Keep track of when we've seen a reference field after a
5793 non-reference field.
5794 (get_boehm_type_descriptor): Handle case where we see
5795 non-reference fields but no trailing reference field.
5796 * decl.c (rawdata_ptr_type_node): Define.
5797 (init_decl_processing): Initialize rawdata_ptr_type_node.
5798 * java-tree.h (rawdata_ptr_type_node): Declare.
5799
ccedaff3
KG
58002000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5801
5802 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
5803 specifiers in calls to fprintf.
5804
dd5d6281
TT
58052000-05-03 Andrew Haley <aph@cygnus.com>
5806
5807 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
5808
5809 * javaop.h (WORD_TO_INT): New function.
5810 (IMMEDIATE_s4): Use WORD_TO_INT.
5811 * jcf.h (JPOOL_INT): Ditto.
5812
5813 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
5814 separator.
5815
dd5d6281 58162000-04-19 Tom Tromey <tromey@cygnus.com>
7145d9fe
TT
5817
5818 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
5819 on native function.
5820 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
5821 JNI methods.
5822 * expr.c (build_jni_stub): New function.
5823 * lang-specs.h: -fjni and -femit-class-file are incompatible.
5824 * parse.c: Rebuilt.
5825 * parse.y (java_complete_expand_methods): Expand a native method
5826 and call build_jni_stub if -fjni given.
5827 * lang-options.h: Document -fjni.
5828 * lang.c (flag_jni): New global.
5829 (lang_f_options): Added `jni' entry.
5830 * java-tree.h (soft_lookupjnimethod_node,
5831 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
5832 Declare.
5833 (flag_jni): Declare.
5834 (build_jni_stub): Declare.
5835 (struct lang_decl): Added `native' flag.
5836 (METHOD_NATIVE): Redefined to use `native' field of lang specific
5837 structure.
5838 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
5839 soft_jnipopsystemframe_node): New globals.
5840 (init_decl_processing): Set them. _Jv_InitClass only takes one
5841 argument.
5842
5843 * java-tree.def: Put into `C' mode.
5844
e815887f
TT
58452000-04-27 Tom Tromey <tromey@cygnus.com>
5846
5847 Fix for PR gcj/2:
5848 * expr.c (expand_invoke): Generate check to see if object pointer
5849 is null in nonvirtual invocation case.
5850 * java-tree.h (soft_nullpointer_node): Declare.
5851 * decl.c (soft_nullpointer_node): New global.
5852 (init_decl_processing): Initialize soft_nullpointer_node.
5853 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
5854 or `private' methods.
5855 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
5856
ad81223c
APB
5857Wed Apr 26 14:29:33 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
5858
5859 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
e64c46ce 5860 from <clinit>
ad81223c 5861
f1acc01e
TT
58622000-04-26 Tom Tromey <tromey@cygnus.com>
5863
5864 * zextract.c (find_zip_file_start): New function.
5865 (read_zip_archive): Use it.
5866
e803d3b2
APB
58672000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
5868
5869 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
5870
152de068
APB
58712000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
5872
5873 * class.c (common_enclosing_context_p): New function.
5874 * java-tree.h (common_enclosing_context_p): Added prototype.
5875 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
5876 classes sharing an outer context with the current instance.
5877 * parse.y (build_access_to_thisn): Fixed leading comment.
5878 (verify_constructor_super): New local `supper_inner'. Skip
5879 enclosing context argument in the case of inner class constructors.
5880 (patch_method_invocation): Insert proper context as second
5881 parameter to pure inner class constructor super invocations.
5882
93220702
APB
5883Mon Apr 24 14:59:36 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
5884
5885 * parse.y (end_class_declaration): Reset the interface number
e64c46ce 5886 counter.
93220702 5887
dfb99c83
APB
58882000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
5889
17126208 5890 * parse.y (source_start_java_method): Deleted unnecessary code.
f6bbde28 5891 (patch_method_invocation): Fixed comment.
dfb99c83 5892
e60a8c26
RL
58932000-04-24 Robert Lipe <robertlipe@usa.net>
5894
5895 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
5896
3c8c10b8
TT
58972000-04-23 Tom Tromey <tromey@cygnus.com>
5898
5899 * boehm.c (mark_reference_fields): Use int_byte_position.
5900
8a008c41
TT
59012000-04-22 Tom Tromey <tromey@cygnus.com>
5902
5903 * boehm.c (mark_reference_fields): Only call byte_position on
5904 non-static fields.
5905
d5f76aba
TT
59062000-04-22 Tom Tromey <tromey@cygnus.com>
5907
5908 * boehm.c (mark_reference_fields): Added `last_view_index'
5909 argument. Use DECL_FIELD_OFFSET to determine field's offset.
5910
a40d21da
APB
5911Thu Apr 20 17:41:28 2000 Mo DeJong <mdejong@cygnus.com>
5912
5913 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
5914 * parse.y (check_class_interface_creation): Fixed comments. Select
e64c46ce
AJ
5915 permitted modifiers for (inner) interfaces. Changed error message
5916 to report rejected modifiers used with local classes.
a40d21da
APB
5917
59182000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
5919
5920 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
5921 of directly inherited type considered in scope.
5922 * parse.y (do_resolve_class): Search inherited classes for inner
5923 classes.
5924
473e7b07
TT
59252000-04-20 Tom Tromey <tromey@cygnus.com>
5926
5927 * parse.y (not_accessible_p): Use member's class, not current
5928 class, when doing inheritance check for protected reference.
5929 Fixes PR gcj/124.
5930
c52fbf0f
JS
5931Thu Apr 20 18:20:58 2000 Jason Schroeder <shrode@subnature.com>
5932
5933 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
5934
f2760b27
APB
59352000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
5936
5937 * parse.y (lookup_field_wrapper): Search for final local aliases.
5938 (resolve_expression_name): Let lookup_field_wrapper search for
5939 final local aliases. Force the value of `name' if one is found.
5940 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
5941 an expression name. Fixed comments.
5942
807bc1db
APB
59432000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
5944
5945 * parse.y (yyerror): `msg' can be null, don't use it in that case.
5946
ecb36604
TT
59472000-04-19 Tom Tromey <tromey@cygnus.com>
5948
5949 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
5950
48a840d9
APB
59512000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
5952
5953 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
5954
83c1f628
TT
59552000-04-18 Tom Tromey <tromey@cygnus.com>
5956
5957 PR gcj/211:
5958 * gjavah.c (utf8_cmp): Changed return value.
5959 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
5960 result.
5961 (cxx_keywords): New global.
5962 (get_field_name): Handle new result of cxx_keyword_subst.
5963 (print_method_info): Likewise.
5964
a7384840
BM
59652000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
5966
f6bbde28 5967 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
a7384840 5968 with a newline, for CNI.
f6bbde28 5969 (print_stub_or_jni): Print a space or newline before method name for
a7384840
BM
5970 CNI as well as JNI.
5971 (print_cxx_classname): Don't write leading "::" in CNI stub method.
f6bbde28 5972 (process_file): Include gcj/cni.h if generating CNI stubs.
a7384840 5973
3e0768f0
TT
59742000-04-16 Tom Tromey <tromey@cygnus.com>
5975
5976 * gjavah.c (decompile_method): Use print_field_name.
5977 Fixes PR gcj/205.
5978
48a840d9
APB
59792000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
5980
5981 * parse.y (java_expand_classes): Reverse the package list once.
5982 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
5983 reduction.
5984 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
5985 the `==' and `!=' operators.
5986
cedea510
APB
59872000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
5988
5989 * jcf-write.c (generate_bytecode_insns): At invokation time,
5990 always relate an interface method to the type of its selector.
f6bbde28 5991
e803d3b2
APB
59922000-04-05 Tom Tromey <tromey@cygnus.com>
5993
5994 Fix for PR gcj/2:
5995 * expr.c (expand_invoke): Generate check to see if object pointer
5996 is null in nonvirtual invocation case.
5997 * java-tree.h (soft_nullpointer_node): Declare.
5998 * decl.c (soft_nullpointer_node): New global.
5999 (init_decl_processing): Initialize soft_nullpointer_node.
6000 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
6001 or `private' methods.
6002 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
6003
bc2874c9
TT
60042000-04-05 Tom Tromey <tromey@cygnus.com>
6005
6006 Fix for PR gcj/140:
6007 * parse.y (check_final_assignment): Recognize assignments to the
6008 `length' field of an array when generating class files.
6009
256172c4
APB
60102000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
6011
6012 * class.c (decl_hash): Prototype removed.
6013 (decl_compare): Likewise.
6014
e0fc4118
TT
60152000-04-05 Tom Tromey <tromey@cygnus.com>
6016
6017 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
6018 * parse.y (check_modifiers_consistency): Check for final/volatile
6019 clash. Fixes PR gcj/164.
6020
e0422ed0
APB
60212000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
6022
6023 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
6024 made global.
6025 (java_hash_compare_tree_node): Renamed from `decl_compare, made
6026 global.
6027 (add_method_1): Use `java_hash_hash_tree_node' and
6028 `java_hash_compare_tree_node'.
6029 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
6030 (java_hash_compare_tree_node): Likewise.
6031 * parse.y (find_applicable_accessible_methods_list): Create,
6032 delete and use a hash table to remember already searched interfaces.
6033
4200941b
MW
60342000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
6035
6036 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
6037 with latest entry.
6038
c0b864fc
KG
60392000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6040
6041 * boehm.c (mark_reference_fields, set_bit): Prototype.
6042 (set_bit): Un-ANSI-fy definition.
6043
6044 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
6045 Prototype.
6046
6047 * decl.c (emit_init_test_initialization): Likewise.
6048
6049 * gjavah.c (jni_print_char): Likewise.
6050
6051 * parse.y (create_new_parser_context): Likewise.
6052
7a678b64 6053Thu Mar 30 15:26:56 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
64ea4a5e
APB
6054
6055 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
6056 patch missing hunk. Fixed indentation.
6057
05411ecf
TT
60582000-03-30 Tom Tromey <tromey@cygnus.com>
6059
6060 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
6061 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
6062
acbedd7c
APB
60632000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
6064
6065 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
6066 when negative *before* using it as an array index.
6067 * ChangeLog: Fixed typo.
6068
0981a859
APB
60692000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
6070
6071 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
6072 to 0 when it reaches -1.
6073
60742000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
6075
6076 * jcf-parse.c (get_constant): Properly cast `num' during the
acbedd7c 6077 invocation of `add_double'.
0981a859
APB
6078 * jcf-write.c (push_long_const): Properly cast `lo' before
6079 comparing it to short bounds.
6080 * parse-scan.y (interface_declaration:): Rule re-arrange so that
6081 `interface_body:' is reduced after the current interface is
6082 pushed.
6083
a843e0ce
TT
60842000-03-26 Tom Tromey <tromey@cygnus.com>
6085
6086 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
6087 Java-specific `-f' option.
6088
ad41cc2a
RK
6089Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6090
6091 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
6092 Adjust order of making types.
6093 Make bitsize_*_node values.
6094
770ae6cc
RK
6095Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6096
6097 * class.c (make_field_value): Use byte_position.
6098 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
6099 (java_array_data_offset): Likewise.
6100 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
6101 bzero call.
6102
165f37bc
APB
61032000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
6104
6105 * parse.y (check_abstract_method_definitions): New local
6106 `end_type_reached'. Make sure we also consider `end_type'.
0981a859
APB
6107 (java_check_abstract_method_definitions): Make sure we eventually
6108 consider `java.lang.Object'.
6109 (maybe_use_access_method): Don't use access method if not in the
6110 context of a pure inner class or if the method's context is right.
6111 (find_applicable_accessible_methods_list): New static flag
165f37bc 6112 `object_done'. Don't search abstract classes as interfaces. Fixed
0981a859
APB
6113 indentation. Fixed the `java.lang.Object' only search. Search
6114 class interface(s) first, then fully search enclosing contexts.
6115 (find_most_specific_methods_list): Pick the closest candidate when
165f37bc
APB
6116 they're all abstract.
6117
124906f9
APB
6118Mon Mar 20 08:58:51 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
6119
6120 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
dba41d30 6121 properly initialize `finished_label'. Don't emit gotos for empty
124906f9
APB
6122 try statements.
6123
c14f7160
ML
6124