]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/java/ChangeLog
c-common.h: Prototype min_precision and c_build_qualified_type here...
[thirdparty/gcc.git] / gcc / java / ChangeLog
CommitLineData
50e60bc3
ZW
12000-08-02 Zack Weinberg <zack@wolery.cumb.org>
2
3 * class.c (build_dtable_decl): Initialize dummy.
4
13107ec0
TT
52000-07-27 Tom Tromey <tromey@cygnus.com>
6 Anthony Green <green@cygnus.com>
7 Alexandre Petit-Bianco <apbianco@cygnus.com>
8
9 * class.c (make_class_data): Create vtable for abstract classes.
10 (get_dispatch_table): Changed to cope with abstract classes.
11
da632f2c
APB
122000-07-27 Tom Tromey <tromey@cygnus.com>
13
14 * parse.y (patch_method_invocation): Don't reverse the argument
15 list when dealing with anonymous class constructors. Fixed typo in
16 comment.
17
182000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
19
20 * parse.y (build_alias_initializer_parameter_list): Reverse
21 crafted list when building aliases for anonymous class
22 constructors.
23
1e12ab9b
APB
242000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
25
26 * parse.y (jdep_resolve_class): Don't bother checking potential
27 innerclass access if `decl' is NULL.
28 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
29 WFL.
30
4c31fe99
APB
312000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
32
33 * parse.c: Remove (again.)
34
1e12ab9b
APB
352000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
36
37 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
38 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
39 outside the `if' statement, alias to innerclass removed, `decl'
40 used to mark the class complete.
41
f4530f43
APB
422000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
43
44 * parse.y (simple_name:): Fixed typo in error message.
45
e7c7bcef
APB
462000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
47
48 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
49 or its first operand can be error marks.
50
512000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
52
53 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
54 * parse.y (method_header): Likewise.
55
562000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
57
58 * parse.y (find_as_inner_class): Handle the case where the
59 enclosing context of an innerclass has been loaded as bytecode.
60
4142b247
APB
612000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
62
63 * parse.y (simple_name:): Reject `$' in type names.
64 (resolve_type_during_patch): Use `type' as a second
65 argument to resolve_no_layout. Fixes gcj/257.
66
ca2875c4
JS
672000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
68
69 * lang-specs.h: Added %(jc1) to java compiler options.
70
bfbbc080
ZW
712000-07-14 Zack Weinberg <zack@wolery.cumb.org>
72
73 * .cvsignore: New file.
74
11b26d72
APB
752000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
76
77 * parse.y (not_accessible_p): Access granted to innerclasses
78 (indirectly) extending the reference type. Fixes gcj/249.
79
802000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
81
82 * parse.y (patch_method_invocation): Fixed comment.
83 (maybe_use_access_method): Build this$<n>s to the context of the
84 target method, or a type that extends it. Fixes gcj/242.
85
649c9142
MM
862000-07-13 Mark Mitchell <mark@codesourcery.com>
87
88 * parse.c: Remove.
89
ee97d354
APB
902000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
91
92 * parse.y (fold_constant_for_init): Avoid bullish conversion.
93
44fadf1e
TT
942000-07-13 Tom Tromey <tromey@cygnus.com>
95
96 * lang-specs.h: Added %{I*}.
97
ea414c97
ZW
982000-07-13 Zack Weinberg <zack@wolery.cumb.org>
99
100 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
101
792abd35
MM
1022000-07-12 Mark Mitchell <mark@codesourcery.com>
103
104 * parse-scan.c: Remove.
105
11b26d72
APB
1062000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
107
108 * class.c (set_super_info): Handled protected inner classes.
109 (common_enclosing_context_p): Bail early if arguments aren't both
110 inner classes.
111 (get_access_flags_from_decl): Handle private and protected inner
112 classes.
113 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
114 (CLASS_PROTECTED): Likewise.
115 (struct lang_type): New bitfield `poic.'
116 * parse.y (jdep_resolve_class): Call check_inner_class_access on
117 inner classes only.
118 (check_inner_class_access): Renamed arguments, added
119 comments. Handles protected inner classes (fixes gcj/225)
120 (not_accessible_p): Fixed comments. Avoid handling inner classes.
121
1222000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
123
124 * parse.y (resolve_qualified_expression_name): Verify qualified
125 access to `this.' Fixes gcj/239.
126
e67eb1a0 1272000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
2f2bd00a 128
e67eb1a0
APB
129 * jcf-write.c (generate_classfile): Don't install ConstantValue
130 for null pointers.
2f2bd00a 131
11b26d72
APB
1322000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
133
134 * parse.y (resolve_qualified_expression_name): Handle inner class
135 access. Fixes gcj/256.
136
629d4b4d
APB
1372000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
138
139 * jcf-write.c (generate_classfile): Properly install the
140 ConstantValue attribute and the initial value constant pool index
141 on string constants.
142 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
143 class files.
144
0c2b8145
APB
1452000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
146
147 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
148 construct.
149 * parse.y (find_as_inner_class): Fixed typo.
150 (do_resolve_class): Explore enclosing contexts when searching for
151 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
152 (check_inner_class_access): Check `decl' which can be null in case
153 of previous errors.
154
1552000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
156
157 * java-tree.h (java_debug_context): Declared `extern.'
158 (safe_layout_class): Likewise.
159 * parse.y (resolve_field_access): Field must be `static' in order
160 to be replaced by its initial value. Added comments.
161 (find_applicable_accessible_methods_list): Fixed typo.
162 (find_most_specific_methods_list): Methods found in innerclasses
163 take over methods founds in the enclosing contexts.
164 (java_complete_tree): Loosen restrictions on the type of DECLs
165 that can be replaced by their initialization values.
166 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p.'
167
0267da64
TT
1682000-07-05 Tom Tromey <tromey@cygnus.com>
169
170 * Make-lang.in (PARSE_DIR): New macro.
171 (PARSE_RELDIR): Likewise.
172 (PARSE_C): Likewise.
173 (PARSE_SCAN_C): Likewise.
174 ($(PARSE_C)): New target.
175 ($(PARSE_SCAN_C)): Likewise.
176 (SET_BISON): New macro.
177 (BISONFLAGS): Likewise.
178 (JAVABISONFLAGS): Likewise.
179
1bbee75b
BM
1802000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
181
182 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
183 argument on the first pass for CNI as well as JNI.
184 (print_method_info): Set up method name on the first pass only.
185
98a52c2c
APB
1862000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
187
188 * parse.y (parser_qualified_classname): Removed parameter
189 `is_static'.
190 (create_interface): Removed first passed parameter to
191 parser_qualified_classname.
192 (create_class): Likewise. Don't install alias on static
193 innerclasses. Fixes gcj/275.
194
1952000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
196
197 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
198 debugable statement with empty_stmt_node. Fixes gcj/272
199
2002000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
201
202 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
203 gcj/271.
204
c1c8f8cc
APB
2052000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
206
207 * jcf-write.c (push_long_const): Appropriately cast short negative
208 constant to jword.
209
cf1b2274
APB
2102000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
211
212 * parse.y (verify_constructor_super): Use loop variable
213 `m_arg_type' initialized with `mdecl_arg_type'.
214
6eaeeb55
TT
2152000-06-29 Tom Tromey <tromey@cygnus.com>
216
217 * parse.y (resolve_field_access): Handle case where `type_found'
218 is NULL.
219
18ee3d5e
APB
2202000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
221
222 * expr.c (lookup_field): The same field can be found through two
223 different interface. Don't declare it ambiguous in that case.
224
61d5c158
TT
2252000-06-27 Tom Tromey <tromey@cygnus.com>
226
227 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
228 follows \r, then unget it at a lower level.
229
70541f45
TT
2302000-06-26 Tom Tromey <tromey@cygnus.com>
231
232 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
233 java_complete_tree.
234
774d2baf
TT
2352000-06-25 Tom Tromey <tromey@cygnus.com>
236
237 * parse.y (for_statement): Wrap expression in a WFL if it is a
238 constant. For PR gcj/268.
239
d6baf6f5
APB
2402000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
241
242 * parse.y (do_resolve_class): Minor optimiztion in the package
243 list search. Removed unecessary test and return statement.
244 (valid_ref_assignconv_cast_p): Order of arguments to
245 enclosing_context_p fixed.
246
120f0c10
TT
2472000-06-24 Tom Tromey <tromey@cygnus.com>
248
ae4a4c88
TT
249 * expr.c (lookup_field): Print error and return error_mark_node if
250 field reference is ambiguous.
251
120f0c10
TT
252 * parse.y (check_abstract_method_definitions): Also check if
253 `other_method' is abstract.
254
cf1748bf
APB
2552000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
256
257 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
258 classes.
259 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
260 (struct lang_type): New field `pic.'
261 (CLASS_PRIVATE): New macro.
262 * parse.y (check_inner_class_access): New function.
263 (jdep_resolve_class): Call it.
264
f1ff439a
TT
2652000-06-23 Tom Tromey <tromey@cygnus.com>
266
267 * parse.y (patch_incomplete_class_ref): Initialize the returned
268 class. For PR gcj/260.
269
9a7ab4b3
APB
2702000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
271
272 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
273
2742000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
275
276 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
277 Java specific checks.
278 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
279 screened by DECL_P.
280 * java-tree.def (CASE_EXPR): Marked 'e'.
281 (DEFAULT_EXPR): Likewise.
282 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
283 screened by DECL_P.
284 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
285 Java specific checks.
286 (generate_bytecode_insns): Test try_block for BLOCK before using
287 BLOCK_EXPR_BODY.
288 * parse.y (build_wfl_wrap): Added `location' argument. Set
289 EXPR_WFL_LINECOL accordingly.
290 (dim_expr:): Wrap constants with WFLs.
291 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
292 (resolve_package): Check for `stmt' not being a BLOCK before
293 building a debuggable statement with it.
294 (make_qualified_primary): Added extra parameter to build_wfl_wrap
295 invocation.
296 (resolve_field_access): Make sure `decl' is a DECL before treating
297 it as such.
298 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
299 IDENTIFIER_NODE before treating it as such.
300 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
301 treating it as such.
302 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
303 to be applied only on non array types.
304
3052000-06-16 Per Bothner <per@bothner.com>
306
307 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
308 define in terms of DECL_RESULT, as that fails when --enable-checking.
309
ffb1f63d
KG
3102000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
311
312 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
313 types the same in comparison.
314 (CHECK_OP): Add static prototype.
315
11cf4d18
JJ
3162000-06-13 Jakub Jelinek <jakub@redhat.com>
317
318 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
319 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
320 * parse.c: Rebuilt.
321
5ac9118e
KG
3222000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
323
324 * decl.c (create_primitive_vtable): Prototype.
325
326 * jcf-write.c (generate_bytecode_insns): Initialize variable
327 `saved_context'.
328
329 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
330
ad69b5b6
BM
3312000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
332
333 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
334 to track searched classes, and do not search the same class more than
335 once. Call find_applicable_accessible_methods_list on immediate
336 superclass, instead of search_applicable_method_list on all ancestors.
337 Fix for PR gcj/238.
338
cf1748bf
APB
3392000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
340
341 * parse.y (register_fields): Permit static fields in inner classes
342 if they are final. Fix for PR gcj/255.
343
9a7ab4b3
APB
3442000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
345
346 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
347 * parse.y (find_in_imports): Returned type changed to void,
348 leading comment fixed.
349 (register_package): New function.
350 (qualify_and_find): Likewise.
351 (package_declaration:): Use `register_package'.
352 (single_type_import_declaration:): Removed local variable
353 `node'. Added missing `;' for consistency.
354 (type_import_on_demand_declaration:): Use `chainon' to link new
355 entries.
356 (lookup_field_wrapper): Lookup local variables defined in outer
357 contexts first.
358 (java_complete_class): Don't reverse the list of imported on demand.
359 (do_resolve_class): Reorganized. Removed local variable
360 `original_name'. Call `qualify_and_find' with the current package
361 name, invoke `find_in_imports_on_demand' right after. Call
362 `qualify_and_find' with the packages we've seen so far. Fixed
363 operations numbering in comments.
364 (java_expand_class): Don't reverse `package_list'.
365 (find_most_specific_methods_list): New local variables `abstract'
366 and `candidates'. Use them to pick the right method.
367
14d075d8
TT
368Tue Jun 6 11:39:05 2000 Tom Tromey <tromey@ferrule.cygnus.com>
369
370 * parse.y (check_modifiers_consistency): Don't subtract out
371 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
372
603832a0
PT
3732000-06-04 Philipp Thomas <pthomas@suse.de>
374
375 * Makefile.in (INTLLIBS): New.
376 (LIBS): Add above.
377 (DEPLIBS): Ditto.
378
8f975c18
APB
379Fri Jun 2 16:48:55 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
380
381 * class.c (get_dispatch_table): Build the vtable dummy entry list
382 element with a null purpose. Fixed leading comment.
383 (build_dtable_decl): Build an accurate dtable type when appropriate
384 and use it.
385
2e761e49
RH
3862000-06-02 Richard Henderson <rth@cygnus.com>
387
388 * lang.c (lang_get_alias_set): New.
389
0f145be8
APB
3902000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
391
392 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
393 before using it as the accessed field.
394
2771fe54
TT
3952000-05-31 Tom Tromey <tromey@cygnus.com>
396
397 * java-tree.h (boolean_array_vtable, byte_array_vtable,
398 char_array_vtable, short_array_vtable, int_array_vtable,
399 long_array_vtable, float_array_vtable, double_array_vtable):
400 Declare.
401 * expr.c (get_primitive_array_vtable): New function.
402 (create_primitive_vtable): New function.
403 (java_lang_expand_expr): Enable code to statically generate
404 arrays.
405 * decl.c (init_decl_processing): Create primitive vtables.
406 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
407 short_array_vtable, int_array_vtable, long_array_vtable,
408 float_array_vtable, double_array_vtable): Define.
409
30a3caef
ZW
4102000-05-26 Zack Weinberg <zack@wolery.cumb.org>
411
412 * java/parse.y (find_applicable_accessible_methods_list):
413 Don't add an uninitialized value to the list.
414
b8c5b1c6
TT
4152000-05-25 Tom Tromey <tromey@cygnus.com>
416
40aaba2b
TT
417 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
418 when trying to see if field's class should be initialized. Always
419 initialize field's declaring class, not qualified class.
420 For PR gcj/162.
421
b8c5b1c6
TT
422 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
423 `wfl_operator', to maybe_build_primttype_type_ref.
424 Fixes PR gcj/235.
425
6518c7b5
BM
4262000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
427
428 * parse.y (patch_method_invocation): Don't try to lookup methods
429 in primitive types.
430
611a4b87
APB
4312000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
432
433 * parse.y (resolve_field_access): Call the appropriate <clinit>
434 before accessing the length of a static array. Craft a decl for
435 the field while its time. Fixes PR gcj/129.
436
6b48deee
APB
4372000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
438
439 * parse.y (resolve_package): Correctly set `*next' (was off by
440 one.)
441 (resolve_qualified_expression_name): Fixed comment.
442
0ba154aa
APB
443Thu Apr 27 17:47:34 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
444
445 * jcf-parse.c (jcf_parse_source): Reset current_class and
446 current_function_decl to NULL before parsing a new file.
447
c280e37a
APB
448Thu Apr 27 17:25:33 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
449
450 * parse.y (block_end:): If the collected block doesn't feature a
451 statement, insert an empty statement.
452
92d83515
APB
4532000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
454
455 * parse.y (maybe_yank_clinit): New function.
456 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
457 end of the list of methods belonging to a class.
458 (java_complete_expand_method): Check whether <clinit> is really
459 necessary and expand it accordingly.
460
ec5bb3cf
APB
4612000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
462
463 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
464 processed by the method's switch statement.
465
67db0ce7
TT
4662000-05-19 Tom Tromey <tromey@cygnus.com>
467
468 * java-tree.h: Added init state enum.
469 * decl.c (emit_init_test_initialization): Initialize class
470 initialization check variable by looking at class' state.
471
43490bec
TT
4722000-05-19 Tom Tromey <tromey@cygnus.com>
473
474 * java-tree.h (build_instanceof): Declare.
475 (build_get_class): Declare.
476 * parse.y (patch_binop): Use build_instanceof.
477 * expr.c (build_instanceof): New function. If class is final,
478 don't make a function call.
479 (expand_java_INSTANCEOF): Use it.
480 (build_get_class): New function.
481
062edaed
AO
4822000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
483
484 * jcf-write.c (generate_classfile): Scan the source_file for
485 slashes with the right pointer variable.
486
078721e1
AC
487Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
488
489 * lang.c (lang_decode_option): Update -Wunused flags by calling
490 set_Wunused.
491 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
492
46543024 4932000-05-09 Zack Weinberg <zack@wolery.cumb.org>
3b304f5b
ZW
494
495 * check_init.c (check_init): Constify local char *.
496 * class.c (push_class): Constify local char *.
497 * java_tree.h: Update prototypes.
498 * jcf-io.c (open_class): Constify filename parameter and
499 return value.
500 (find_class): Remove redundant string copy. Cast return from
501 open_class.
502 * jcf-parse.c (read_class, parse_class_file, yyparse):
503 Constify local char *.
504 * jcf-write.c (generate_bytecode_insns, generate_classfile):
505 Constify local char *.
506 * jcf.h (JCF): Constify filename and classname.
507 (JCF_FINISH): Cast args to FREE to char * when appropriate.
508 * lang.c (init_parse): Constify parameter and return value.
509 * lex.c (java_get_line_col): Constify filename parameter.
510 * parse.h: Constify parser_ctxt.filename. Update prototypes.
511 * parse.y (java_parser_context_suspend,
512 issue_warning_error_from_context, safe_layout_class): Constify
513 local char *.
514 * parse.c: Regenerate.
515
4c6a8973
TT
5162000-05-08 Tom Tromey <tromey@cygnus.com>
517
518 * expr.c (build_jni_stub): Cache the result of
519 _Jv_LookupJNIMethod.
520
e117276e
APB
5212000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
522
523 * decl.c (predef_filenames_size): Now 7.
524 (predef_filenames): New seventh entry.
525
652f2504
TT
5262000-05-04 Tom Tromey <tromey@cygnus.com>
527
528 * boehm.c (mark_reference_fields): Don't mark RawData fields.
529 Keep track of when we've seen a reference field after a
530 non-reference field.
531 (get_boehm_type_descriptor): Handle case where we see
532 non-reference fields but no trailing reference field.
533 * decl.c (rawdata_ptr_type_node): Define.
534 (init_decl_processing): Initialize rawdata_ptr_type_node.
535 * java-tree.h (rawdata_ptr_type_node): Declare.
536
ccedaff3
KG
5372000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
538
539 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
540 specifiers in calls to fprintf.
541
dd5d6281
TT
5422000-05-03 Andrew Haley <aph@cygnus.com>
543
544 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
545
546 * javaop.h (WORD_TO_INT): New function.
547 (IMMEDIATE_s4): Use WORD_TO_INT.
548 * jcf.h (JPOOL_INT): Ditto.
549
550 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
551 separator.
552
dd5d6281 5532000-04-19 Tom Tromey <tromey@cygnus.com>
7145d9fe
TT
554
555 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
556 on native function.
557 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
558 JNI methods.
559 * expr.c (build_jni_stub): New function.
560 * lang-specs.h: -fjni and -femit-class-file are incompatible.
561 * parse.c: Rebuilt.
562 * parse.y (java_complete_expand_methods): Expand a native method
563 and call build_jni_stub if -fjni given.
564 * lang-options.h: Document -fjni.
565 * lang.c (flag_jni): New global.
566 (lang_f_options): Added `jni' entry.
567 * java-tree.h (soft_lookupjnimethod_node,
568 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
569 Declare.
570 (flag_jni): Declare.
571 (build_jni_stub): Declare.
572 (struct lang_decl): Added `native' flag.
573 (METHOD_NATIVE): Redefined to use `native' field of lang specific
574 structure.
575 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
576 soft_jnipopsystemframe_node): New globals.
577 (init_decl_processing): Set them. _Jv_InitClass only takes one
578 argument.
579
580 * java-tree.def: Put into `C' mode.
581
e815887f
TT
5822000-04-27 Tom Tromey <tromey@cygnus.com>
583
584 Fix for PR gcj/2:
585 * expr.c (expand_invoke): Generate check to see if object pointer
586 is null in nonvirtual invocation case.
587 * java-tree.h (soft_nullpointer_node): Declare.
588 * decl.c (soft_nullpointer_node): New global.
589 (init_decl_processing): Initialize soft_nullpointer_node.
590 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
591 or `private' methods.
592 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
593
ad81223c
APB
594Wed Apr 26 14:29:33 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
595
596 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
597 from <clinit>
598
f1acc01e
TT
5992000-04-26 Tom Tromey <tromey@cygnus.com>
600
601 * zextract.c (find_zip_file_start): New function.
602 (read_zip_archive): Use it.
603
e803d3b2
APB
6042000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
605
606 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
607
152de068
APB
6082000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
609
610 * class.c (common_enclosing_context_p): New function.
611 * java-tree.h (common_enclosing_context_p): Added prototype.
612 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
613 classes sharing an outer context with the current instance.
614 * parse.y (build_access_to_thisn): Fixed leading comment.
615 (verify_constructor_super): New local `supper_inner'. Skip
616 enclosing context argument in the case of inner class constructors.
617 (patch_method_invocation): Insert proper context as second
618 parameter to pure inner class constructor super invocations.
619
93220702
APB
620Mon Apr 24 14:59:36 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
621
622 * parse.y (end_class_declaration): Reset the interface number
623 counter.
624
dfb99c83
APB
6252000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
626
627 * parse.y (source_start_java_method): Deleted unecessary code.
628 (patch_method_invocation): Fixed comment.
629
e60a8c26
RL
6302000-04-24 Robert Lipe <robertlipe@usa.net>
631
632 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
633
3c8c10b8
TT
6342000-04-23 Tom Tromey <tromey@cygnus.com>
635
636 * boehm.c (mark_reference_fields): Use int_byte_position.
637
8a008c41
TT
6382000-04-22 Tom Tromey <tromey@cygnus.com>
639
640 * boehm.c (mark_reference_fields): Only call byte_position on
641 non-static fields.
642
d5f76aba
TT
6432000-04-22 Tom Tromey <tromey@cygnus.com>
644
645 * boehm.c (mark_reference_fields): Added `last_view_index'
646 argument. Use DECL_FIELD_OFFSET to determine field's offset.
647
a40d21da
APB
648Thu Apr 20 17:41:28 2000 Mo DeJong <mdejong@cygnus.com>
649
650 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
651 * parse.y (check_class_interface_creation): Fixed comments. Select
652 permitted modifiers for (inner) interfaces. Changed error message
653 to report rejected modifiers used with local classes.
654
6552000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
656
657 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
658 of directly inherited type considered in scope.
659 * parse.y (do_resolve_class): Search inherited classes for inner
660 classes.
661
473e7b07
TT
6622000-04-20 Tom Tromey <tromey@cygnus.com>
663
664 * parse.y (not_accessible_p): Use member's class, not current
665 class, when doing inheritance check for protected reference.
666 Fixes PR gcj/124.
667
c52fbf0f
JS
668Thu Apr 20 18:20:58 2000 Jason Schroeder <shrode@subnature.com>
669
670 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
671
f2760b27
APB
6722000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
673
674 * parse.y (lookup_field_wrapper): Search for final local aliases.
675 (resolve_expression_name): Let lookup_field_wrapper search for
676 final local aliases. Force the value of `name' if one is found.
677 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
678 an expression name. Fixed comments.
679
807bc1db
APB
6802000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
681
682 * parse.y (yyerror): `msg' can be null, don't use it in that case.
683
ecb36604
TT
6842000-04-19 Tom Tromey <tromey@cygnus.com>
685
686 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
687
48a840d9
APB
6882000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
689
690 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
691
83c1f628
TT
6922000-04-18 Tom Tromey <tromey@cygnus.com>
693
694 PR gcj/211:
695 * gjavah.c (utf8_cmp): Changed return value.
696 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
697 result.
698 (cxx_keywords): New global.
699 (get_field_name): Handle new result of cxx_keyword_subst.
700 (print_method_info): Likewise.
701
a7384840
BM
7022000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
703
704 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
705 with a newline, for CNI.
706 (print_stub_or_jni): Print a space or newline before method name for
707 CNI as well as JNI.
708 (print_cxx_classname): Don't write leading "::" in CNI stub method.
709 (process_file): Include gcj/cni.h if generating CNI stubs.
710
3e0768f0
TT
7112000-04-16 Tom Tromey <tromey@cygnus.com>
712
713 * gjavah.c (decompile_method): Use print_field_name.
714 Fixes PR gcj/205.
715
48a840d9
APB
7162000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
717
718 * parse.y (java_expand_classes): Reverse the package list once.
719 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
720 reduction.
721 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
722 the `==' and `!=' operators.
723
cedea510
APB
7242000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
725
726 * jcf-write.c (generate_bytecode_insns): At invokation time,
727 always relate an interface method to the type of its selector.
728
e803d3b2
APB
7292000-04-05 Tom Tromey <tromey@cygnus.com>
730
731 Fix for PR gcj/2:
732 * expr.c (expand_invoke): Generate check to see if object pointer
733 is null in nonvirtual invocation case.
734 * java-tree.h (soft_nullpointer_node): Declare.
735 * decl.c (soft_nullpointer_node): New global.
736 (init_decl_processing): Initialize soft_nullpointer_node.
737 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
738 or `private' methods.
739 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
740
bc2874c9
TT
7412000-04-05 Tom Tromey <tromey@cygnus.com>
742
743 Fix for PR gcj/140:
744 * parse.y (check_final_assignment): Recognize assignments to the
745 `length' field of an array when generating class files.
746
256172c4
APB
7472000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
748
749 * class.c (decl_hash): Prototype removed.
750 (decl_compare): Likewise.
751
e0fc4118
TT
7522000-04-05 Tom Tromey <tromey@cygnus.com>
753
754 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
755 * parse.y (check_modifiers_consistency): Check for final/volatile
756 clash. Fixes PR gcj/164.
757
e0422ed0
APB
7582000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
759
760 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
761 made global.
762 (java_hash_compare_tree_node): Renamed from `decl_compare, made
763 global.
764 (add_method_1): Use `java_hash_hash_tree_node' and
765 `java_hash_compare_tree_node'.
766 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
767 (java_hash_compare_tree_node): Likewise.
768 * parse.y (find_applicable_accessible_methods_list): Create,
769 delete and use a hash table to remember already searched interfaces.
770
4200941b
MW
7712000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
772
773 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
774 with latest entry.
775
c0b864fc
KG
7762000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
777
778 * boehm.c (mark_reference_fields, set_bit): Prototype.
779 (set_bit): Un-ANSI-fy definition.
780
781 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
782 Prototype.
783
784 * decl.c (emit_init_test_initialization): Likewise.
785
786 * gjavah.c (jni_print_char): Likewise.
787
788 * parse.y (create_new_parser_context): Likewise.
789
7a678b64 790Thu Mar 30 15:26:56 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
64ea4a5e
APB
791
792 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
793 patch missing hunk. Fixed indentation.
794
05411ecf
TT
7952000-03-30 Tom Tromey <tromey@cygnus.com>
796
797 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
798 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
799
acbedd7c
APB
8002000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
801
802 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
803 when negative *before* using it as an array index.
804 * ChangeLog: Fixed typo.
805
0981a859
APB
8062000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
807
808 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
809 to 0 when it reaches -1.
810
8112000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
812
813 * jcf-parse.c (get_constant): Properly cast `num' during the
acbedd7c 814 invocation of `add_double'.
0981a859
APB
815 * jcf-write.c (push_long_const): Properly cast `lo' before
816 comparing it to short bounds.
817 * parse-scan.y (interface_declaration:): Rule re-arrange so that
818 `interface_body:' is reduced after the current interface is
819 pushed.
820
a843e0ce
TT
8212000-03-26 Tom Tromey <tromey@cygnus.com>
822
823 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
824 Java-specific `-f' option.
825
ad41cc2a
RK
826Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
827
828 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
829 Adjust order of making types.
830 Make bitsize_*_node values.
831
770ae6cc
RK
832Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
833
834 * class.c (make_field_value): Use byte_position.
835 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
836 (java_array_data_offset): Likewise.
837 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
838 bzero call.
839
165f37bc
APB
8402000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
841
842 * parse.y (check_abstract_method_definitions): New local
843 `end_type_reached'. Make sure we also consider `end_type'.
0981a859
APB
844 (java_check_abstract_method_definitions): Make sure we eventually
845 consider `java.lang.Object'.
846 (maybe_use_access_method): Don't use access method if not in the
847 context of a pure inner class or if the method's context is right.
848 (find_applicable_accessible_methods_list): New static flag
165f37bc 849 `object_done'. Don't search abstract classes as interfaces. Fixed
0981a859
APB
850 indentation. Fixed the `java.lang.Object' only search. Search
851 class interface(s) first, then fully search enclosing contexts.
852 (find_most_specific_methods_list): Pick the closest candidate when
165f37bc
APB
853 they're all abstract.
854
124906f9
APB
855Mon Mar 20 08:58:51 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
856
857 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
858 properly initialize `finished_label.' Don't emit gotos for empty
859 try statements.
860
c14f7160
ML
861