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