12017-07-04 Release Manager 2 3 * GCC 6.4.0 released. 4 52016-12-21 Release Manager 6 7 * GCC 6.3.0 released. 8 92016-09-22 Richard Biener <rguenther@suse.de> 10 11 * class.c (push_super_field): Set DECL_CONTEXT. 12 * mangle.c (java_mangle_decl): Re-sync with lhd_set_decl_assembler_name. 13 142016-08-22 Release Manager 15 16 * GCC 6.2.0 released. 17 182016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 19 20 PR java/70839 21 * decl.c (parse_version): Remove minor handling. 22 232016-04-28 Matthias Klose <doko@ubuntu.com> 24 25 * decl.c (parse_version): Don't encode the minor version in the abi 26 version. 27 282016-04-27 Release Manager 29 30 * GCC 6.1.0 released. 31 322016-01-04 Jakub Jelinek <jakub@redhat.com> 33 34 Update copyright years. 35 36 * jcf-dump.c (version): Update copyright notice dates. 37 382015-11-11 Andrew MacLeod <amacleod@redhat.com> 39 40 * boehm.c: Remove unused header files. 41 * builtins.c: Likewise. 42 * class.c: Likewise. 43 * constants.c: Likewise. 44 * decl.c: Likewise. 45 * except.c: Likewise. 46 * expr.c: Likewise. 47 * java-gimplify.c: Likewise. 48 * jcf-dump.c: Likewise. 49 * jcf-io.c: Likewise. 50 * jcf-parse.c: Likewise. 51 * jvgenmain.c: Likewise. 52 * lang.c: Likewise. 53 * mangle.c: Likewise. 54 * mangle_name.c: Likewise. 55 * resource.c: Likewise. 56 * typeck.c: Likewise. 57 * verify-glue.c: Likewise. 58 * verify-impl.c: Likewise. 59 * zextract.c: Likewise. 60 612015-10-30 Richard Sandiford <richard.sandiford@arm.com> 62 63 * jcf-parse.c (get_constant): Use real_from_target rather than 64 real_from_target_fmt. 65 662015-10-29 Andrew MacLeod <amacleod@redhat.com> 67 68 * boehm.c: Reorder #include's and remove duplicates. 69 * builtins.c: Likewise. 70 * class.c: Likewise. 71 * constants.c: Likewise. 72 * decl.c: Likewise. 73 * except.c: Likewise. 74 * expr.c: Likewise. 75 * java-gimplify.c: Likewise. 76 * jcf-dump.c: Likewise. 77 * jcf-io.c: Likewise. 78 * jcf-parse.c: Likewise. 79 * jvgenmain.c: Likewise. 80 * lang.c: Likewise. 81 * mangle.c: Likewise. 82 * mangle_name.c: Likewise. 83 * resource.c: Likewise. 84 * typeck.c: Likewise. 85 * verify-glue.c: Likewise. 86 * verify-impl.c: Likewise. 87 882015-10-22 Mikhail Maltsev <maltsevm@gmail.com> 89 90 * decl.c (java_mark_decl_local): Use flag_checking instead of 91 ENABLE_CHECKING. 92 932015-07-15 Andrew MacLeod <amacleod@redhat.com> 94 95 * expr.c: Remove multiline #include comment. 96 972015-07-12 Aldy Hernandez <aldyh@redhat.com> 98 99 * class.c: Fix double word typos. 100 * java-except.h: Same. 101 * jcf-reader.c: Same. 102 1032015-07-10 Andrew MacLeod <amacleod@redhat.com> 104 105 * java-gimplify.c: Include cfghooks.h rather than predict.h. 106 1072015-07-07 Andrew MacLeod <amacleod@redhat.com> 108 109 * boehm.c: Adjust includes. 110 * builtins.c: Likewise. 111 * class.c: Likewise. 112 * constants.c: Likewise. 113 * decl.c: Likewise. 114 * except.c: Likewise. 115 * expr.c: Likewise. 116 * java-gimplify.c: Likewise. 117 * jcf-dump.c: Likewise. 118 * jcf-io.c: Likewise. 119 * jcf-parse.c: Likewise. 120 * jvgenmain.c: Likewise. 121 * lang.c: Likewise. 122 * mangle.c: Likewise. 123 * mangle_name.c: Likewise. 124 * resource.c: Likewise. 125 * typeck.c: Likewise. 126 * verify-glue.c: Likewise. 127 1282015-06-25 Andrew MacLeod <amacleod@redhat.com> 129 130 * class.c: Remove ipa-ref.h and plugin-api.h from include list. 131 * decl.c: Likewise. 132 * jcf-parse.c: Likewise. 133 * resource.c: Likewise. 134 1352015-06-25 Richard Sandiford <richard.sandiford@arm.com> 136 137 * jcf-io.c (memoized_class_lookups): Use nofree_string_hash. 138 (find_class): Likewise. 139 1402015-06-25 Richard Sandiford <richard.sandiford@arm.com> 141 142 * java-tree.h (treetreehasher): Inherit from ggc_ptr_hash 143 rather than ggc_hasher. 144 (ict_hasher, type_assertion_hasher): Likewise. 145 1462015-06-25 Richard Sandiford <richard.sandiford@arm.com> 147 148 * jcf-io.c (charstar_hash): Inherit from nofree_ptr_hash rather 149 than typed_noop_remove. Remove redudant typedefs. 150 1512015-06-17 Andrew MacLeod <amacleod@redhat.com> 152 153 * boehm.c: Do not include input.h, line-map.h or is-a.h. 154 * builtins.c: Likewise. 155 * class.c: Likewise. 156 * constants.c: Likewise. 157 * decl.c: Likewise. 158 * except.c: Likewise. 159 * expr.c: Likewise. 160 * java-gimplify.c: Likewise. 161 * jcf-dump.c: Likewise. 162 * jcf-io.c: Likewise. 163 * jcf-parse.c: Likewise. 164 * jvgenmain.c: Likewise. 165 * lang.c: Likewise. 166 * mangle.c: Likewise. 167 * mangle_name.c: Likewise. 168 * resource.c: Likewise. 169 * typeck.c: Likewise. 170 * verify-glue.c: Likewise. 171 * verify-impl.c: Likewise. 172 1732015-06-08 Andrew MacLeod <amacleod@redhat.com> 174 175 * boehm.c : Adjust include files. 176 * builtins.c : Likewise. 177 * class.c : Likewise. 178 * constants.c : Likewise. 179 * decl.c : Likewise. 180 * except.c : Likewise. 181 * expr.c : Likewise. 182 * java-gimplify.c : Likewise. 183 * java-tree.h : Likewise. 184 * jcf-dump.c : Likewise. 185 * jcf-io.c : Likewise. 186 * jcf-parse.c : Likewise. 187 * jcf-reader.c : Likewise. 188 * jvgenmain.c : Likewise. 189 * lang.c : Likewise. 190 * mangle.c : Likewise. 191 * mangle_name.c : Likewise. 192 * resource.c : Likewise. 193 * typeck.c : Likewise. 194 * verify-glue.c : Likewise. 195 * verify-impl.c : Likewise. 196 1972015-06-05 Aldy Hernandez <aldyh@redhat.com> 198 199 * jcf-parse.c: Include toplev.h. 200 2012015-06-05 Aldy Hernandez <aldyh@redhat.com> 202 203 * class.c: Remove pending_static_fields. 204 (add_field): Remove use of pending_static_fields. 205 (java_write_globals): Remove. 206 * decl.c (java_mark_class_local): Remove use of 207 pending_static_fields. 208 * java-tree.h: Remove pending_static_fields and 209 java_write_globals. 210 * jcf-parse.c (java_parse_file): Call global_decl_processing. 211 * lang.c (LANG_HOOKS_WRITE_GLOBALS): Remove. 212 2132015-06-04 Andrew MacLeod <amacleod@redhat.com> 214 215 * boehm.c: Adjust includes for restructured coretypes.h. 216 * builtins.c: Likewise. 217 * class.c: Likewise. 218 * constants.c: Likewise. 219 * decl.c: Likewise. 220 * except.c: Likewise. 221 * expr.c: Likewise. 222 * java-gimplify.c: Likewise. 223 * jcf-dump.c: Likewise. 224 * jcf-io.c: Likewise. 225 * jcf-parse.c: Likewise. 226 * jvgenmain.c: Likewise. 227 * lang.c: Likewise. 228 * mangle.c: Likewise. 229 * mangle_name.c: Likewise. 230 * resource.c: Likewise. 231 * typeck.c: Likewise. 232 * verify-glue.c: Likewise. 233 * verify-impl.c: Likewise. 234 2352015-05-20 David Malcolm <dmalcolm@redhat.com> 236 237 * jcf-parse.c (set_source_filename): Replace write through 238 ORDINARY_MAP_FILE_NAME with direct access to "to_file". 239 2402015-04-18 Trevor Saunders <tsaunders@mozilla.com> 241 242 * jcf-io.c: Adjust for hash_table changes. 243 2442015-01-30 Joseph Myers <joseph@codesourcery.com> 245 246 * class.c, expr.c, jcf-parse.c, jvspec.c: All callers of 247 fatal_error changed to pass input_location as first argument. 248 2492015-10-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 250 251 * builtins.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h 252 fixed-value.h function.h hard-reg-set.h hashtab.h insn-config.h 253 real.h statistics.h stmt.h varasm.h. 254 2552015-01-09 Michael Collison <michael.collison@linaro.org> 256 257 * boehm.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 258 input.h, alias.h, symtab.h, options.h, fold-const.h, 259 wide-int.h, and inchash.h due to flattening of tree.h. 260 * builtins.c: Ditto. 261 * class.c: Ditto. 262 * constants.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 263 input.h, alias.h, symtab.h, options.h, fold-const.h, 264 wide-int.h, and inchash.h due to flattening of tree.h. 265 * decl.c: Ditto. 266 * except.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 267 input.h, alias.h, symtab.h, fold-const.h, 268 wide-int.h, and inchash.h due to flattening of tree.h. 269 * expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 270 input.h, alias.h, symtab.h, fold-const.h, 271 wide-int.h,inchash.h and real.h due to flattening of tree.h. 272 * gimplify.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 273 input.h, alias.h, symtab.h, options.h, fold-const.h, 274 wide-int.h, and inchash.h due to flattening of tree.h. 275 * jcf-dump.c: Ditto. 276 * jcf-io.c: Ditto. 277 * jcf-parse.c: Ditto. 278 * jvgenmain.c: Ditto. 279 * lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 280 input.h, alias.h, symtab.h, fold-const.h, 281 wide-int.h, and inchash.h due to flattening of tree.h. 282 * mangle.c: Include hash-set.h, machmode.h, vec.h, double-int.h, 283 input.h, alias.h, symtab.h, options.h, fold-const.h, 284 wide-int.h, and inchash.h due to flattening of tree.h. 285 * mangle_name.c: Ditto. 286 * resource.c: Ditto. 287 * typeck.c: Ditto. 288 * verify-glue.c: Ditto. 289 * verify-impl.c: Ditto. 290 2912015-01-05 Jakub Jelinek <jakub@redhat.com> 292 293 Update copyright years. 294 295 * jcf-dump.c (version): Update copyright notice dates. 296 2972014-11-24 Richard Biener <rguenther@suse.de> 298 299 PR java/64004 300 * class.c (build_classdollar_field): Do not set TREE_READONLY. 301 3022014-11-19 David Malcolm <dmalcolm@redhat.com> 303 304 Merger of git branch "gimple-classes-v2-option-3". 305 * ChangeLog.gimple-classes: New. 306 * java-gimplify.c (java_gimplify_block): Strengthen local "outer" 307 from gimple to gbind *. 308 3092014-11-11 David Malcolm <dmalcolm@redhat.com> 310 311 * gcc/ChangeLog.jit: New. 312 3132014-10-29 Richard Sandiford <richard.sandiford@arm.com> 314 315 * builtins.c, java-tree.h, typeck.c: Remove redundant enum from 316 machine_mode. 317 3182014-10-28 Andrew MacLeod <amacleod@redhat.com> 319 320 * class.c: Adjust include files. 321 * decl.c: Ditto. 322 * jcf-parse.c: Ditto. 323 * resource.c: Ditto. 324 3252014-10-27 Andrew MacLeod <amacleod@redhat.com> 326 327 * java-gimplify.c: Adjust include files. 328 3292014-10-22 Alan Modra <amodra@gmail.com> 330 331 * mangle.c (finish_mangling): Cast result of obstack_base to (char *). 332 * typeck.c (build_java_argument_signature): Likewise. 333 (build_java_signature): Likewise. 334 3352014-10-16 Andrew MacLeod <amacleod@redhat.com> 336 337 * class.c: Adjust include files. 338 * resource.c: Likewise. 339 3402014-10-15 Evgeny Stupachenko <evstupac@gmail.com> 341 342 PR target/63536 343 * lang.c (java_print_error_function): Add check on NULL function 344 context. 345 3462014-10-12 Trevor Saunders <tsaunders@mozilla.com> 347 348 * class.c, decl.c, except.c, expr.c, java-tree.h, lang.c: Use 349 hash_table instead of hashtab. 350 3512014-10-07 Marek Polacek <polacek@redhat.com> 352 353 * jvgenmain.c (main): Provide declarations for JvRunMain{,Name}. 354 3552014-07-08 Mark Wielaard <mjw@redhat.com> 356 357 * builtins.c (putVolatile_builtin): Use build_qualified_type 358 instead of build_type_variant. 359 (getVolatile_builtin): Likewise. 360 (build_classdollar_field): Likewise. 361 3622014-06-24 Trevor Saunders <tsaunders@mozilla.com> 363 364 * jcf-io.c: Adjust. 365 3662014-06-11 Jan Hubicka <hubicka@ucw.cz> 367 368 * java/class.c (build_utf8_ref): Update handling for section names 369 that are no longer trees. 370 (emit_register_classes_in_jcr_section): Update. 371 3722014-06-07 Jan Hubicka <hubicka@ucw.cz> 373 374 * class.c (build_utf8_ref): Use set_decl_section_name. 375 (emit_register_classes_in_jcr_section): Likewise. 376 (emit_register_classes_in_jcr_section): Likewise. 377 3782014-05-17 Trevor Saunders <tsaunders@mozilla.com> 379 380 * class.c (add_method_1): Adjust. 381 (java_treetreehash_new): Likewise. 382 * constants.c (set_constant_entry): Likewise. 383 (cpool_for_class): Likewise. 384 * decl.c (make_binding_level): Likewise. 385 (java_dup_lang_specific_decl): Likewise. 386 * expr.c (add_type_assertion): Likewise. 387 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise. 388 (lang_decl): don't use variable_size gty attribute. 389 (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Adjust. 390 (lang_type): Don't use variable_size gty attribute. 391 * jcf-parse.c (java_parse_file): Adjust. 392 (process_zip_dir): Likewise. 393 * jcf.h: Remove usage of variable_size gty attribute. 394 * jcf-reader.c (jcf_parse_constant_pool): Adjust. 395 (jcf_parse_bootstrap_methods): Likewise. 396 3972014-05-17 Trevor Saunders <tsaunders@mozilla.com> 398 399 * constants.c (set_constant_entry): Adjust. 400 4012014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com> 402 403 * boehm.c (mark_reference_fields): Don't update the mask when 404 setting pointer_after_end. 405 4062014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 407 Mike Stump <mikestump@comcast.net> 408 Richard Sandiford <rdsandiford@googlemail.com> 409 410 * boehm.c: Include wide-int.h. 411 (mark_reference_fields): Use a wide_int mask. 412 (get_boehm_type_descriptor): Use wide-int interfaces. 413 * expr.c: Include wide-int.h. 414 (build_newarray): Remove bogus "== INTEGER_CST". 415 (expand_java_pushc): Use real_from_integer. 416 (build_field_ref): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED. 417 * jcf-parse.c: Include wide-int.h. 418 (get_constant): Use wide-int interfaces. 419 4202014-01-02 Richard Sandiford <rdsandiford@googlemail.com> 421 422 Update copyright years 423 4242014-01-02 Tobias Burnus <burnus@net-b.de> 425 426 * jcf-dump.c (version): Update copyright notice dates. 427 * gcj.texi: Bump @copying's copyright year. 428 4292013-12-19 Jakub Jelinek <jakub@redhat.com> 430 431 PR other/59545 432 * class.c (hashUtf8String): Compute hash in unsigned type. 433 * javaop.h (WORD_TO_INT): Avoid signed integer overflow. 434 4352013-11-22 Andrew MacLeod <amacleod@redhat.com> 436 437 * java-gimplify.c: Add required include files from gimple.h. 438 4392013-11-22 David Malcolm <dmalcolm@redhat.com> 440 441 * class.c (maybe_layout_super_class): Update comment. 442 * decl.c (java_add_stmt): Remove use of input_filename macro. 443 * jcf-parse.c (set_source_filename): Remove use of 444 input_filename macro. 445 (parse_class_file): Remove use of input_line and input_filename 446 macros. 447 (java_parse_file): Remove use of input_filename macro. 448 4492013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 450 451 * class.c, expr.c: Replace tree_low_cst (..., 0) with tree_to_shwi 452 throughout. 453 4542013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 455 456 * class.c, expr.c: Replace host_integerp (..., 0) with 457 tree_fits_shwi_p throughout. 458 4592013-11-14 Andrew MacLeod <amacleod@redhat.com> 460 461 * java-gimplify.c: Include only gimplify.h and gimple.h as needed. 462 4632013-11-14 Diego Novillo <dnovillo@google.com> 464 465 * builtins.c: Include stor-layout.h. 466 Include stringpool.h. 467 * class.c: Include stringpool.h. 468 Include stor-layout.h. 469 Include varasm.h. 470 * constants.c: Include stringpool.h. 471 Include stor-layout.h. 472 * decl.c: Include stor-layout.h. 473 Include stringpool.h. 474 Include varasm.h. 475 * except.c: Include stringpool.h. 476 Include stor-layout.h. 477 * expr.c: Include stringpool.h. 478 Include stor-layout.h. 479 * jcf-parse.c: Include stringpool.h. 480 * mangle.c: Include stringpool.h. 481 * resource.c: Include stringpool.h. 482 Include stor-layout.h. 483 * typeck.c: Include stor-layout.h. 484 Include stringpool.h. 485 * verify-glue.c: Include stringpool.h. 486 4872013-11-12 Andrew MacLeod <amacleod@redhat.com> 488 489 * java-gimplify.c: Include gimplify.h. 490 4912013-11-07 Jeff Law <law@redhat.com> 492 493 * builtins.c (initialize_builtins): Provide __builtin_trap. 494 4952013-10-29 David Malcolm <dmalcolm@redhat.com> 496 497 Patch autogenerated by refactor_symtab.py from 498 https://github.com/davidmalcolm/gcc-refactoring-scripts 499 revision 58bb219cc090b2f4516a9297d868c245495ee622 500 501 * decl.c (java_mark_decl_local): Update for conversion of symtab types 502 to a true class hierarchy. 503 5042013-10-14 David Malcolm <dmalcolm@redhat.com> 505 506 * lang.c (java_handle_option): Update for introduction of 507 gcc::dump_manager. 508 5092013-09-25 Tom Tromey <tromey@redhat.com> 510 511 * Make-lang.in (jvspec.o): Remove. 512 (CFLAGS-java/jvspec.o): New variable. 513 ($(XGCJ)$(exeext), java_OBJS): Use java/jvspec.o 514 (java/jvspec.o-warn): Rename from jvspec.o-warn. 515 (JAVA_TREE_H, java/jcf-dump.o, java/boehm.o, java/builtins.o) 516 (java/class.o, java/constants.o, java/decl.o, java/except.o) 517 (java/expr.o, java/jcf-depend.o, java/jcf-parse.o) 518 (java/jvgenmain.o, java/lang.o, java/mangle.o, java/mangle_name.o) 519 (java/resource.o java/typeck.o, java/win32-host.o) 520 (java/verify-glue.o, java/verify-impl.o, java/zextract.o) 521 (java/java-gimplify.o, java/jcf-io.o, java/jcf-path.o): Remove. 522 5232013-09-25 Tom Tromey <tromey@redhat.com> 524 525 * Make-lang.in (jvspec.o): Don't use subshell. 526 5272013-06-05 Jan Hubicka <jh@suse.cz> 528 529 * class.c (emit_register_classes_in_jcr_section): Use DECL_PRESERVE_P 530 instead of mark_decl_referenced. 531 5322013-05-29 Jan Hubicka <jh@suse.cz> 533 534 * decl.c (java_mark_decl_local): Update for new symtab flags. 535 5362013-05-22 Matthias Klose <doko@ubuntu.com> 537 538 * jvspec.c (jvgenmain_spec): Add %I to cc1 call. 539 5402013-05-16 Jason Merrill <jason@redhat.com> 541 542 * Make-lang.in (jc1$(exeext)): Use link mutex. 543 5442013-05-06 Jakub Jelinek <jakub@redhat.com> 545 546 PR libgcj/57074 547 * class.c (emit_symbol_table): Use array type of the 548 right size for the_syms_decl and its DECL_INITIAL, instead 549 of symbols_array_type. Set TREE_TYPE (the_syms_decl) to it. 550 (emit_assertion_table): Use array type of the right size 551 for table_decl and its DECL_INITIAL. 552 5532013-04-15 Gerald Pfeifer <gerald@pfeifer.com> 554 555 * gcj.texi (Configure-time Options): Refer to GCC, not gcc. 556 (Resources): Adjust reference to Mauve. 557 Remove link to java.sun.com. 558 Refer to GCC, not gcc. 559 5602013-04-09 Richard Biener <rguenther@suse.de> 561 562 * expr.c (build_java_binop): Pass a type to build_int_cst. 563 5642013-03-22 Kai Tietz <ktietz@redhat.com> 565 566 * lang.c (put_decl_node): Don't iterate over end_params_node. 567 5682013-01-03 Jakub Jelinek <jakub@redhat.com> 569 570 * jcf-dump.c (version): Update copyright notice dates. 571 5722012-11-16 Diego Novillo <dnovillo@google.com> 573 574 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 575 576 * boehm.c: Use new vec API in vec.h. 577 * class.c: Likewise. 578 * constants.c: Likewise. 579 * decl.c: Likewise. 580 * expr.c: Likewise. 581 * java-tree.h: Likewise. 582 * jcf-parse.c: Likewise. 583 * resource.c: Likewise. 584 * verify-glue.c: Likewise. 585 5862012-11-15 Jan Hubicka <jh@suse.cz> 587 588 * builtins.c (define_builtin): Accept ECF flags and 589 use set_call_expr_flags. 590 (initialize_builtins): Update. 591 5922012-10-01 Lawrence Crowl <crowl@google.com> 593 594 * Make-lang.in (JAVA_OBJS): Add dependence on hash-table.o. 595 (JCFDUMP_OBJS): Add dependence on hash-table.o. 596 (jcf-io.o): Add dependence on hash-table.h. 597 * jcf-io.c (memoized_class_lookups): Change to use type-safe hash table. 598 5992012-09-24 Lawrence Crowl <crowl@google.com> 600 601 * decl.c (java_init_decl_processing): Change to new double_int API. 602 * jcf-parse.c (get_constant): Likewise. 603 * boehm.c (mark_reference_fields): Likewise. 604 (get_boehm_type_descriptor): Likewise. 605 6062012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com> 607 608 * jcf.h (CPool): Use the "atomic" GTY option for the tags field. 609 (bootstrap_method): Likewise for the bootstrap_arguments field. 610 6112012-07-16 Steven Bosscher <steven@gcc.gnu.org> 612 613 * java-gimplify.c: Include dumpfile.h instead of tree-dump.h 614 * Make-lang.in: Fix dependencies. 615 6162012-07-11 Steven Bosscher <steven@gcc.gnu.org> 617 618 * java-tree.h (force_evaluation_order): Remove prototype. 619 * expr.c (force_evaluation_order): Remove unused function. 620 6212012-07-11 Steven Bosscher <steven@gcc.gnu.org> 622 623 * decl.c: Do not include libfuncs.h. 624 * class.c: Do not include defaults.h. 625 * jvgenmain.c: Likewise. 626 * magnle.c: Likewise. 627 * Make-lang.in (decl.o): Fix dependencies. 628 6292012-07-08 Steven Bosscher <steven@gcc.gnu.org> 630 631 * verify.h: Do not include system.h and coretypes.h here. 632 * verify-impl.c: Include them here instead. 633 6342012-07-05 Uros Bizjak <ubizjak@gmail.com> 635 636 * jcf-io.c (read_zip_member): Initialize d_stream. 637 6382012-05-31 Steven Bosscher <steven@gcc.gnu.org> 639 640 * resource.c: Do not include output.h. 641 6422012-05-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 643 644 PR java/52815 645 * class.c (emit_register_classes_in_jcr_section): Revise placement 646 of #ifdef JCR_SECTION_NAME. 647 6482012-04-22 Jan Hubicka <jh@suse.cz> 649 650 * class.c (build_utf8_ref): Do not mark varpool node as needed. 651 6522012-04-20 Jan Hubicka <jh@suse.cz> 653 654 * class.c (make_local_function_alias): Do not mark symbol referenced. 655 6562012-04-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 657 658 * jcf-dump.c (print_constant): Cast JPOOL_USHORT2, JPOOL_USHORT1 659 results to long to match formats. 660 6612012-04-11 Andrew Haley <aph@redhat.com> 662 663 * jcf-reader.c (jcf_parse_bootstrap_methods): Add 664 ATTRIBUTE_UNUSED. 665 6662012-04-11 Andrew Haley <aph@redhat.com> 667 668 * jcf.h (bootstrap_method): New. 669 (BootstrapMethods): New. 670 (JCF): Add BootstrapMethods. 671 (enum cpool_tag): Add MethodHandle, MethodType, and InvokeDynamic. 672 * jcf-reader.c (jcf_parse_bootstrap_methods): New. 673 (jcf_parse_constant_pool): Handlers for MethodHandle, MethodType, 674 and InvokeDynamic. 675 (jcf_parse_bootstrap_methods): New. 676 * javaop.def (invokedynamic): New opcode. 677 * jcf-parse.c (get_constant): An unknown constant type should not 678 be an internal error, but a fatal one. Make it so. 679 * jcf-dump.c (HANDLE_BOOTSTRAP_METHODS_ATTRIBUTE): New. 680 (HANDLE_END_BOOTSTRAP_METHODS): New. 681 (print_constant): Handlers for MethodHandle, MethodType, and 682 InvokeDynamic. 683 6842012-04-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 685 686 * class.c (emit_register_classes_in_jcr_section): Set DECL_USER_ALIGN. 687 Clear TREE_READONLY. 688 6892012-03-29 Steven Bosscher <steven@gcc.gnu.org> 690 691 PR java/52730 692 * class.c (emit_register_classes_in_jcr_section): New function. 693 (emit_Jv_RegisterClass_calls): New function, split out from ... 694 (emit_register_classes): ... here. Reorganize. Do not call 695 output_constant. 696 6972012-01-23 Andreas Schwab <schwab@linux-m68k.org> 698 699 * lang.c (java_init_options_struct): Set 700 frontend_set_flag_trapping_math. 701 7022012-01-01 Jakub Jelinek <jakub@redhat.com> 703 704 * jcf-dump.c (version): Update copyright notice dates. 705 7062011-12-03 Matthias Klose <doko@ubuntu.com> 707 708 * expr.c (SPECIAL_WIDE): Fix typo in message. 709 7102011-11-23 Jeffrey A Law (law@cygnus.com) 711 712 * lang.c (java_init_options_struct): Disable optimizations 713 which assume a NULL pointer dereference will cause a fault. 714 7152011-11-07 Richard Henderson <rth@redhat.com> 716 717 * builtins.c (compareAndSwapInt_builtin): Use can_compare_and_swap_p. 718 (compareAndSwapLong_builtin): Likewise. 719 (compareAndSwapObject_builtin): Likewise. 720 (VMSupportsCS8_builtin): Likewise. 721 7222011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 723 724 * Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK. 725 7262011-10-15 Tom Tromey <tromey@redhat.com> 727 Dodji Seketeli <dodji@redhat.com> 728 729 * jcf-parse.c (set_source_filename): Adjust to the new map API. 730 7312011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> 732 733 * class.c (build_static_field_ref): Delete old interface with two 734 parallel arrays to hold standard builtin declarations, and replace 735 it with a function based interface that can support creating 736 builtins on the fly in the future. Change all uses, and poison 737 the old names. Make sure 0 is not a legitimate builtin index. 738 * decl.c (java_init_decl_processing): Ditto. 739 * except.c (compareAndSwapLong_builtin): Ditto. 740 (compareAndSwapObject_builtin): Ditto. 741 (putVolatile_builtin): Ditto. 742 (define_builtin): Ditto. 743 (check_for_builtin): Ditto. 744 * expr.c (rewrite_arglist_getcaller): Ditto. 745 (expand_java_field_op): Ditto. 746 7472011-08-24 Joseph Myers <joseph@codesourcery.com> 748 749 * Make-lang.in (CFLAGS-java/jcf-io.o, CFLAGS-java/jcf-path.o): 750 New. 751 (java/jcf-io.o, java/jcf-path.o): Remove explicit compilation 752 rules. 753 7542011-08-18 Peter Collingbourne <peter@pcc.me.uk> 755 756 * expr.c (expand_invoke) Use the type of the method rewrite 757 target. 758 7592011-08-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 760 761 * jcf-dump.c (print_constant): Cast first frexp arg. 762 7632011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 764 765 * Make-lang.in ($(XGCJ)$(exeext)): Add $(EXTRA_GCC_LIBS). 766 7672011-07-19 Richard Guenther <rguenther@suse.de> 768 769 * builtins.c (static): Use fold_build_pointer_plus. 770 * class.c (make_class_data): Likewise. 771 (build_symbol_entry): Likewise. 772 * except.c (build_exception_object_ref): Likewise. 773 * expr.c (build_java_arrayaccess): Likewise. 774 (build_field_ref): Likewise. 775 (build_known_method_ref): Likewise. 776 (build_invokevirtual): Likewise. 777 7782011-07-06 Richard Guenther <rguenther@suse.de> 779 780 * decl.c (java_init_decl_processing): 781 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2. 782 7832011-06-21 Andrew MacLeod <amacleod@redhat.com> 784 785 * builtins.c: Add sync_ or SYNC__ to builtin names. 786 * expr.c: Add sync_ or SYNC__ to builtin names. 787 7882011-06-07 Richard Guenther <rguenther@suse.de> 789 790 * decl.c (java_init_decl_processing): Call build_common_nodes, 791 build_common_nodes_2 at the beginning. Remove then duplicate 792 initializations. 793 7942011-06-07 Richard Guenther <rguenther@suse.de> 795 796 * decl.c (java_init_decl_processing): Properly initialize 797 size_type_node. 798 7992011-05-30 Joern Rennecke <joern.rennecke@embecosm.com> 800 801 PR middle-end/46500 802 * expr.c: Include "tm.h" . 803 8042011-05-26 Nathan Froyd <froydnj@codesourcery.com> 805 806 * decl.c (poplevel): Don't access TREE_TYPE of BLOCKs. 807 * expr.c (build_jni_stub): Likewise. 808 8092011-05-24 Joseph Myers <joseph@codesourcery.com> 810 811 * Make-lang.in ($(XGCJ)$(exeext)): Use libcommon-target.a instead 812 of prefix.o. 813 8142011-05-20 Joseph Myers <joseph@codesourcery.com> 815 816 * Make-lang.in ($(XGCJ)$(exeext)): Don't explicitly use intl.o and 817 version.o. 818 (JCFDUMP_OBJS): Remove errors.o, version.o and intl.o. 819 (JVGENMAIN_OBJS): Remove errors.o and intl.o. 820 (java/jcf-dump.o, java/jvgenmain.o): Depend in $(DIAGNOSTIC_H). 821 * jcf-dump.c: Include diagnostic.h. 822 (main): Initialize diagnostics. 823 * jvgenmain.c: Include diagnostic.h. 824 (main): Initialize diagnostics. 825 8262011-05-11 Nathan Froyd <froydnj@codesourcery.com> 827 828 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): Use TYPE_MINVAL. 829 8302011-05-07 Eric Botcazou <ebotcazou@adacore.com> 831 832 * java-tree.h (global_bindings_p): Adjust prototype. 833 * decl.c (global_bindings_p): Return bool. 834 8352011-05-05 Nathan Froyd <froydnj@codesourcery.com> 836 837 * expr.c (expand_java_switch): Call build_case_label. 838 (expand_java_add_case): Likewise. 839 8402011-04-29 Richard Guenther <rguenther@suse.de> 841 842 PR middle-end/48819 843 * constants.c (build_constants_constructor): Use ptr_type_node for 844 temp. 845 8462011-04-20 Jim Meyering <meyering@redhat.com> 847 848 * jcf-parse.c (java_parse_file): Remove useless if-before-free. 849 8502011-04-18 Jim Meyering <meyering@redhat.com> 851 852 * jcf-parse.c: Fix typo in comment. 853 8542011-04-14 Nathan Froyd <froydnj@codesourcery.com> 855 856 * decl.c (poplevel): Use BLOCK_CHAIN and block_chainon. 857 8582011-04-12 Nathan Froyd <froydnj@codesourcery.com> 859 860 * java-tree.h (union lang_tree_node): Check for TS_COMMON before 861 calling TREE_CHAIN. 862 8632011-04-11 Martin Jambor <mjambor@suse.cz> 864 865 * decl.c (java_mark_decl_local): Call cgraph_get_node instead of 866 cgraph_node and handle returned NULL. 867 8682011-03-25 Kai Tietz <ktietz@redhat.com> 869 870 * jcf-parse.c (java_read_sourcefilenames): Use filename_cmp 871 instead of strcmp. 872 (set_source_filename): Likewise. 873 * win32-host.c (jcf_open_exact_case): Likewise. 874 8752011-03-21 Kai Tietz <ktietz@redhat.com> 876 877 PR target/12171 878 * lang.c (java_attribute_table): Adjust table. 879 8802011-02-13 Joseph Myers <joseph@codesourcery.com> 881 882 * jvspec.c (jvgenmain_spec): Remove %{a*}. 883 8842011-01-21 Kai Tietz <kai.tietz@onevision.com> 885 886 PR bootstrap/47215 887 * decl.c (java_init_decl_processing): Remove 888 va_list_type_node related type initializations. 889 8902011-01-11 Kai Tietz <kai.tietz@onevision.com> 891 892 PR bootstrap/47215 893 * decl.c (java_init_decl_processing): Initialize 894 long_integer_type_node. 895 8962011-01-07 Kai Tietz <kai.tietz@onevision.com> 897 898 PR bootstrap/47215 899 * decl.c (java_init_decl_processing): Initialize unsigned_type_node. 900 9012011-01-07 Kai Tietz <kai.tietz@onevision.com> 902 903 * decl.c (java_init_decl_processing): Setup va_list_type_node. 904 9052011-01-03 Jakub Jelinek <jakub@redhat.com> 906 907 * jcf-dump.c (version): Update copyright notice dates. 908 9092010-12-15 Dave Korn <dave.korn.cygwin@gmail.com> 910 911 * decl.c (java_init_decl_processing): Initialise integer_three_node. 912 * lang.c (put_decl_node): Handle nested function decls. 913 9142010-12-07 Joseph Myers <joseph@codesourcery.com> 915 916 * jcf-parse.c: Don't include assert.h. 917 (java_parse_file): Use gcc_assert. 918 9192010-12-03 Joseph Myers <joseph@codesourcery.com> 920 921 * lang.opt (static-libgcj): New option. 922 9232010-12-01 Joseph Myers <joseph@codesourcery.com> 924 925 * jcf-parse.c: Don't include toplev.h. 926 * Make-lang.in (java/jcf-parse.o): Don't depend on toplev.h. 927 9282010-11-30 Joseph Myers <joseph@codesourcery.com> 929 930 * boehm.c: Don't include toplev.h. 931 * Make-lang.in (java/boehm.o): Don't depend on toplev.h. 932 9332010-11-30 Joseph Myers <joseph@codesourcery.com> 934 935 * expr.c, lang.c, mangle.c, mangle_name.c, typeck.c, 936 verify-glue.c: Don't include toplev.h. 937 * Make-lang.in: Dependencies for above files changed to remove 938 toplev.h. 939 9402010-11-29 Joseph Myers <joseph@codesourcery.com> 941 942 * boehm.c: Include "config.h" instead of <config.h>. 943 * builtins.c: Don't include <stdarg.h>. 944 * class.c: Don't include "stdio.h". 945 (O_BINARY): Don't define here. 946 * jcf-depend.c: Don't include <assert.h>. 947 (jcf_dependency_set_dep_file, jcf_dependency_init, 948 jcf_dependency_write): Use gcc_assert. 949 * jcf-io.c (O_BINARY): Don't define here. 950 * jcf-path.c: Don't include "tm.h". 951 (jcf_path_init): Use getenv instead of GET_ENVIRONMENT. 952 * resource.c: Don't include "stdio.h". 953 (O_BINARY): Don't define here. 954 * verify-impl.c: Don't include <stdio.h>. 955 9562010-11-17 Joseph Myers <joseph@codesourcery.com> 957 958 * jcf-parse.c (java_parse_file): Take no arguments. 959 * java-tree.h (java_parse_file): Update prototype. 960 9612010-11-09 Joern Rennecke <amylaar@spamcop.net> 962 Andrew Haley <aph@redhat.com> 963 964 PR java/46386 965 * config/pdp11/t-pdp11 (java/constants.o-warn): Remove. 966 9672010-11-12 Joseph Myers <joseph@codesourcery.com> 968 969 * Make-lang.in (jvspec.o, java/lang.o): Use $(OPTS_H). 970 * lang.c (java_handle_option): Take location_t parameter. 971 9722010-11-10 Joseph Myers <joseph@codesourcery.com> 973 974 * expr.c (expand_java_field_op): Use %' in diagnostic. 975 * jcf-parse.c (java_parse_file): Use %' in diagnostics. 976 * jvspec.c (lang_specific_driver): Use %' in diagnostic. 977 * lang.c (java_post_options): Use %' in diagnostics. 978 9792010-11-06 Joern Rennecke <amylaar@spamcop.net> 980 981 PR middle-end/46314 982 * class.c: Include target.h. 983 (make_local_function_alias): 984 Use targetm.asm_out.generate_internal_label. 985 * expr.c (lookup_label, generate_name): Likewise. 986 9872010-11-03 Joern Rennecke <joern.rennecke@embecosm.com> 988 989 PR bootstrap/44335 990 * jfc-parse.c (target.h): Include. 991 (handle_constant): Use targetm.words_big_endian and 992 targetm.float_words_big_endian. 993 (get_constant): Use targetm.float_words_big_endian. 994 9952010-10-13 Richard Henderson <rth@redhat.com> 996 997 * lang.c (java_eh_personality): Update call to 998 build_personality_function. 999 10002010-10-12 Joseph Myers <joseph@codesourcery.com> 1001 1002 * Make-lang.in (java/lang.o): Use $(OPTIONS_H) instead of 1003 options.h. 1004 10052010-10-11 Nathan Froyd <froydnj@codesourcery.com> 1006 1007 * decl.c (java_init_decl_processing): Use build_function_type_list 1008 instead of build_function_type. 1009 * jcf-parse.c (java_emit_static_constructor): Likewise. 1010 * builtins.c (initialize_builtins): Likewise. 1011 10122010-10-08 Joseph Myers <joseph@codesourcery.com> 1013 1014 * lang.c (java_init_options_struct): New. Split out from 1015 java_init_options. 1016 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define. 1017 10182010-10-04 Andi Kleen <ak@linux.intel.com> 1019 1020 * Make-lang.in (xgcj, jc1, jcf-dump, jvgenmain): 1021 Add + to build rule. 1022 10232010-09-29 Joseph Myers <joseph@codesourcery.com> 1024 1025 * lang.opt: Don't use VarExists. 1026 10272010-09-29 Joseph Myers <joseph@codesourcery.com> 1028 1029 * java-tree.h (flag_filelist_file, flag_assert, flag_jni, 1030 flag_force_classes_archive_check, flag_redundant, flag_newer, 1031 flag_use_divide_subroutine, flag_use_atomic_builtins, 1032 flag_use_boehm_gc, flag_hash_synchronization, 1033 flag_check_references, flag_optimize_sci, flag_indirect_classes, 1034 flag_indirect_dispatch, flag_store_check, 1035 flag_reduced_reflection): Remove. 1036 * jcf-dump.c (flag_newer): Remove. 1037 * jcf.h (quiet_flag): Remove. 1038 * parse.h (quiet_flag): Remove. 1039 10402010-09-28 Richard Henderson <rth@redhat.com> 1041 1042 * lang.c: Include "target.h". 1043 (java_eh_personality): Use targetm.except_unwind_info. 1044 * Make-lang.in (lang.o): Update deps. 1045 10462010-09-27 Andrew Haley <aph@redhat.com> 1047 1048 PR java/45773 1049 * jvgenmain.c (main): Fix arg processing. 1050 10512010-09-22 Joseph Myers <joseph@codesourcery.com> 1052 1053 * jvspec.c (lang_specific_driver): Handle OPT__help instead of 1054 OPT_fhelp. 1055 * lang.opt (-CLASSPATH, -all-warnings, -bootclasspath, -classpath, 1056 -dependencies, -encoding, -extdirs, -include-directory, 1057 -include-directory=, -output-class-directory, 1058 -output-class-directory=, -resource, -resource=, 1059 -user-dependencies): New. 1060 10612010-09-16 Richard Guenther <rguenther@suse.de> 1062 1063 * jcf-parse.c (current_file_list): Remove. 1064 (java_parse_file): Use build_translation_unit_decl. Adjust. 1065 10662010-09-03 Joseph Myers <joseph@codesourcery.com> 1067 1068 * lang.opt (d): New. 1069 10702010-09-03 H.J. Lu <hongjiu.lu@intel.com> 1071 1072 PR java/45504 1073 * jvgenmain.c (main): Check "-D XXX=YYY". 1074 10752010-09-02 Joseph Myers <joseph@codesourcery.com> 1076 1077 * jvspec.c (jvgenmain_spec): Don't handle -fnew-verifier. 1078 10792010-09-02 Joseph Myers <joseph@codesourcery.com> 1080 1081 * lang.opt (CLASSPATH, bootclasspath, classpath, encoding, 1082 fCLASSPATH=): Mark as Java options and as aliases. 1083 * jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*. 1084 (lang_specific_driver): Don't handle options marked as aliases. 1085 * lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_. 1086 10872010-08-22 Joseph Myers <joseph@codesourcery.com> 1088 1089 * Make-lang.in (jvspec.o): Update dependencies. 1090 * jvspec.c: Include opts.h. 1091 (PARAM_ARG): Remove. 1092 (find_spec_file): Do not add leading -specs=. 1093 (lang_specific_driver): Use cl_decoded_option structures. 1094 * lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding, 1095 extdirs, fmain=, s-bc-abi): New options. 1096 10972010-08-20 Nathan Froyd <froydnj@codesourcery.com> 1098 1099 * class.c: Use FOR_EACH_VEC_ELT. 1100 * expr.c: Likewise. 1101 * jcf-parse.c: Likewise. 1102 * resource.c: Likewise. 1103 11042010-08-16 Joseph Myers <joseph@codesourcery.com> 1105 1106 * lang.opt (MD_, MMD_, version): Mark RejectDriver. 1107 11082010-08-05 David Daney <ddaney@caviumnetworks.com> 1109 1110 * class.c (build_utf8_ref): Fix code formatting from previous commit. 1111 11122010-08-05 David Daney <ddaney@caviumnetworks.com> 1113 1114 * class.c (build_utf8_ref): Make decl DECL_USER_ALIGN. 1115 11162010-07-27 Joseph Myers <joseph@codesourcery.com> 1117 1118 * lang.c (java_handle_option): Update prototype and return value 1119 type. 1120 11212010-07-27 Joseph Myers <joseph@codesourcery.com> 1122 1123 * lang.c (java_option_lang_mask): New. 1124 (java_init_options): Update prototype. 1125 (LANG_HOOKS_OPTION_LANG_MASK): Define. 1126 11272010-07-15 Nathan Froyd <froydnj@codesourcery.com> 1128 1129 * java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN. 1130 * boehm.c: Likewise. 1131 * class.c: Likewise. 1132 * decl.c: Likewise. 1133 * expr.c: Likewise. 1134 * jcf-parse.c: Likewise. 1135 * typeck.c: Likewise. 1136 * verify-glue.c: Likewise. 1137 11382010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org> 1139 1140 * boehm.c: Include diagnostic-core.h in every file that includes 1141 toplev.h. 1142 * class.c: Likewise. 1143 * constants.c: Likewise. 1144 * decl.c: Likewise. 1145 * except.c: Likewise. 1146 * expr.c: Likewise. 1147 * jcf-parse.c: Likewise. 1148 * mangle.c: Likewise. 1149 * mangle_name.c: Likewise. 1150 * resource.c: Likewise. 1151 * typeck.c: Likewise. 1152 * verify-glue.c: Likewise. 1153 11542010-07-05 Nathan Froyd <froydnj@codesourcery.com> 1155 1156 PR bootstrap/44825 1157 * class.c (make_class_data): Cast result of VEC_length calls to int. 1158 11592010-07-05 Nathan Froyd <froydnj@codesourcery.com> 1160 1161 * constants.c (build_constants_constructor): Use build_constructor 1162 instead of build_constructor_from_list. 1163 * class.c (make_method_value): Likewise. 1164 (get_dispatch_table): Likewise. 1165 (make_class_data): Likewise. 1166 (emit_indirect_register_classes): Likewise. 1167 (emit_symbol_table): Likewise. 1168 (add_assertion_table_entry): Likewise. 1169 (emit_assertion_table): Likewise. 1170 (make_field_value): Use build_constructor_single instead of 1171 build_constructor_from_list. 1172 11732010-06-28 Nathan Froyd <froydnj@codesourcery.com> 1174 1175 * java-tree.h (struct lang_type) [catch_classes]: Change type to a 1176 VEC. 1177 * except.c (prepare_eh_table_type): Call CONSTRUCTOR_APPEND_ELT 1178 instead of tree_cons. 1179 * class.c (make_class): Add dummy entry to TYPE_CATCH_CLASSES. 1180 (emit_catch_table): Adjust for new type of TYPE_CATCH_CLASSES. 1181 11822010-06-28 Steven Bosscher <steven@gcc.gnu.org> 1183 1184 * lang.c: Do not include except.h 1185 * except.c: Likewise. 1186 (doing_eh): New, moved from except.c (in gcc/) but removed the 1187 do_warning flag. 1188 (maybe_start_try): Update doing_eh call. 1189 * Make-lang.in: Update dependencies. 1190 11912010-06-23 Anatoly Sokolov <aesok@post.ru> 1192 1193 * decl.c (java_init_decl_processing): Use double_int_to_tree instead 1194 of build_int_cst_wide. 1195 * boehm.c (set_bit): Remove. 1196 (mark_reference_fields): Use double_int type for 'mask' argument. 1197 Use double_int_setbit instead of set_bit. 1198 (get_boehm_type_descriptor): Use double_int_setbit instead of 1199 set_bit. Use double_int_to_tree instead of build_int_cst_wide. 1200 12012010-06-10 Gerald Pfeifer <gerald@pfeifer.com> 1202 1203 * gcj.texi: Move to GFDL version 1.3. Fix copyright years. 1204 12052010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com> 1206 1207 * jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation. 1208 1209 * jcf-parse.c (java_parse_file): Likewise. 1210 (process_zip_dir): Likewise. 1211 1212 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise. 1213 (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise. 1214 1215 * expr.c (add_type_assertion): Likewise. 1216 1217 * decl.c (make_binding_level): Likewise. 1218 (java_dup_lang_specific_decl): Likewise. 1219 1220 * constants.c (set_constant_entry): Likewise. 1221 (cpool_for_class): Likewise. 1222 1223 * class.c (add_method_1): Likewise. 1224 (java_treetreehash_new): Likewise. 1225 1226 * java-tree.h (struct lang_type): Add variable_size GTY option. 1227 (struct lang_decl): Likewise. 1228 1229 * jch.h (struct cpool_entry): Likewise. 1230 1231 * java-tree.h (java_treetreehash_create): Remove parameter ggc. 1232 1233 * except.c (prepare_eh_table_type): Update 1234 java_treetreehash_create call. 1235 1236 * class.c (add_method_1): Update java_treetreehash_create call. 1237 (java_treetreehash_create): Remove parameter gc. Use 1238 htab_create_ggc. 1239 12402010-06-04 Joseph Myers <joseph@codesourcery.com> 1241 1242 * jvspec.c (lang_specific_driver): Use GCC-specific formats in 1243 diagnostics. 1244 12452010-05-30 Steven Bosscher <steven@gcc.gnu.org> 1246 1247 * except.c: Include tm.h. 1248 12492010-05-28 Joseph Myers <joseph@codesourcery.com> 1250 1251 * jvspec.c (lang_specific_driver): Use fatal_error instead of 1252 fatal. Use warning instead of error for warnings. 1253 12542010-05-28 Nathan Froyd <froydnj@codesourcery.com> 1255 1256 * expr.c (get_symbol_table_index): Add spaces in expression. 1257 12582010-05-28 Nathan Froyd <froydnj@codesourcery.com> 1259 1260 * java-tree.h (method_entry): Declare. Declare VECs containing it. 1261 (struct lang_type): Change type of otable_methods, atable_methods, and 1262 itable_methods to VECs. Fix comment for atable_methods. 1263 (emit_symbol_table): Take a VEC instead of a tree. 1264 (get_symbol_table_index): Take a VEC * instead of a tree *. 1265 * class.c (add_table_and_syms): Take a VEC instead of a tree. 1266 (emit_symbol_table): Update for changed parameter type. 1267 * expr.c (get_symbol_table_index): Likewise. 1268 12692010-05-27 Steven Bosscher <steven@gcc.gnu.org> 1270 1271 * buildings.c: Pretend to be a backend file by undefining 1272 IN_GCC_FRONTEND (still need rtl.h here). 1273 12742010-05-26 Nathan Froyd <froydnj@codesourcery.com> 1275 1276 * java-tree.h (struct lang_decl_func): Change type of throws_list 1277 field to a VEC. 1278 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type 1279 of DECL_FUNCTION_THROWS. 1280 * class.c (make_method_value): Likewise. 1281 12822010-05-26 Nathan Froyd <froydnj@codesourcery.com> 1283 1284 * class.c (utf8_decl_list): Delete. 1285 (build_utf8_ref): Remove references to it. 1286 * java-tree.h (all_class_list): Delete. 1287 (predef_filenames): Delete. 1288 (enum java_tree_index) [JTI ALL_CLASS_LIST,JTI_PREDEF_FILENAMES]: 1289 Delete. 1290 * jcf-parse.c (parse_roots): Decrease size to 2. 1291 (current_file_list): Convert to a VEC. 1292 (all_class_list): Declare. 1293 (jcf_parse): Adjust for new type of all_class_list. 1294 (java_layout_seen_class_methods): Likewise. 1295 (predefined_filenames): Declare. 1296 (add_predefined_file): Use it. 1297 (predefined_filename_p): Likewise. 1298 (java_parse_file): Adjust for new type of current_file_list. 1299 13002010-05-25 Jakub Jelinek <jakub@redhat.com> 1301 1302 * lang.c (java_classify_record): Return RECORD_IS_INTERFACE 1303 for interfaces. 1304 1305 PR debug/43260 1306 * java-tree.h (pending_static_fields): New extern declaration. 1307 (java_write_globals): New prototype. 1308 * lang.c (LANG_HOOKS_WRITE_GLOBALS): Define. 1309 * decl.c (java_mark_class_local): When clearing DECL_EXTERNAL 1310 of a static field push it into pending_static_fields vector. 1311 * class.c (pending_static_fields): New variable. 1312 (add_field): If static field is not DECL_EXTERNAL, push it into 1313 pending_static_fields vector. 1314 (java_write_globals): New function. 1315 13162010-05-24 Nathan Froyd <froydnj@codesourcery.com> 1317 1318 * expr.c (quick_stack): Change type to a VEC. Update comment. 1319 (tree_list_free_list): Delete. 1320 (flush_quick_stack): Update for quick_stack type change. 1321 (push_value): Likewise. 1322 (pop_value): Likewise. 1323 13242010-05-23 Steven Bosscher <steven@gcc.gnu.org> 1325 1326 * java-gimplify.c: Do not include tm.h, toplev.h. 1327 * typeck.c: Do not include tm.h. 1328 * mangle_name.c: Do not include tm.h. 1329 * jcf-dump.c: Do not include tm.h, ggc.h. 1330 * class.c: Do not include rtl.h, tm_p.h, target.h, except.h, cgraph.h. 1331 * decl.c: Do not include tm.h, rtl.h, function.h, expr.h, except.h, 1332 and timevar.h. 1333 * jcf-parse.c: Do not include tm.h and tm_p.h. 1334 * resource.c: Do not include tm.h, rtl.h, flags.h, obstack.h, 1335 target.h, and expr.h. 1336 * except.c: Do not include tm.h, rtl.h, function.h. 1337 * builtins.c: Do not include convert.h. Explain why RTL headers 1338 have to be included here. 1339 * verify-glue.c: Do not include tm.h. 1340 * jcf-depend.c: Do not include tm.h. 1341 * jcf-reader.c: Include ggc.h. 1342 * jcf-io.c: Do not include tm.h, toplev.h. 1343 * expr.c: Do not include tm.h, rtl.h, expr.h, except.h, tm_p.h, 1344 gimple.h. 1345 * lang.c: Do not include rtl.h, expr.h. 1346 * Make-lang.in: Update dependencies. 1347 13482010-05-23 Steven Bosscher <steven@gcc.gnu.org> 1349 1350 * jcf-parse.c: Include bitmap.h. 1351 * Make-lang.in: Update dependencies. 1352 13532010-05-20 Jakub Jelinek <jakub@redhat.com> 1354 1355 PR debug/43521 1356 * decl.c (start_java_method): Set DECL_ARTIFICIAL on the 'this' 1357 PARM_DECL. 1358 13592010-05-19 Anatoly Sokolov <aesok@post.ru> 1360 1361 * jcf-parse.c (get_constant): Use double_int_to_tree instead of 1362 build_int_cst_wide_type. 1363 13642010-05-18 Nathan Froyd <froydnj@codesourcery.com> 1365 1366 * expr.c (pop_arguments): Fix use of undeclared variable. 1367 13682010-05-18 Nathan Froyd <froydnj@codesourcery.com> 1369 1370 * expr.c (expand_java_multianewarray): Use build_call_vec instead of 1371 build_call_list. 1372 (pop_arguments): Return a VEC instead of a tree. Take a method type 1373 rather than a list of argument types. 1374 (rewrite_rule): Change signature. of rewrite_arglist member. 1375 (rewrite_arglist_getcaller): Update signature. 1376 (rewrite_arglist_getclass): Likewise. 1377 (maybe_rewrite_invocation): Update for rewrite_arglist change. 1378 (build_known_method_ref): Take a VEC instead of a tree. 1379 (invoke_build_dtable): Likewise. 1380 (expand_invoke): Update calls to pop_arguments. Use build_call_vec 1381 instead of build_call_list. 1382 (build_jni_stub): Use build_call_vec instead of build_call_list. 1383 * java-tree.h (maybe_rewrite_invocation): Update declaration. 1384 (build_known_method_ref): Likewise. 1385 (invoke_build_dtable): Likewise. 1386 13872010-05-14 Nathan Froyd <froydnj@codesourcery.com> 1388 1389 PR 44103 1390 * java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a 1391 vector. Move call to build_constructor... 1392 (FINISH_RECORD_CONSTRUCTOR): ...here. Add necessary arguments. Clear 1393 TREE_CONSTANT on the constructor. 1394 (PUSH_SUPER_VALUE): Change first argument to a vector. 1395 (PUSH_FIELD_VALUE): Likewise. 1396 * resource.c (compile_resource_data): Update calls to above macros. 1397 * constants.c (build_constants_constructor): Likewise. 1398 * class.c (build_utf8_ref): Likewise. 1399 (make_field_value): Likewise. 1400 (make_method_value): Likewise. 1401 (add_table_and_syms): New function. 1402 (make_class_data): Call it. Update calls to above macros. 1403 (build_symbol_table_entry): New function. 1404 (build_symbol_entry): Call it. Update calls to above macros. 1405 (emit_symbol_table): Likewise. 1406 (make_catch_class_record): Update calls to above macros. 1407 (build_assertion_table_entry): New function. 1408 (add_assertion_table_entry): Call it. 1409 (emit_assertion_table): Likewise. 1410 14112010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org> 1412 1413 PR 40989 1414 * lang.c (java_handle_option): Add argument kind. 1415 14162010-04-18 Eric Botcazou <ebotcazou@adacore.com> 1417 1418 * decl.c (java_init_decl_processing): Remove argument in call to 1419 initialize_sizetypes 1420 14212010-04-07 Jakub Jelinek <jakub@redhat.com> 1422 1423 * exception.cc (_Jv_Throw): Avoid set but not used warning. 1424 * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in 1425 sizeof to avoid set but not used warnings. 1426 14272010-01-20 Joern Rennecke <amylaar@spamcop.net> 1428 1429 * lang.c (java_post_options): Constify variable "dot". 1430 1431 * jcf-parse.c (set_source_filename): Constify variable "dot". 1432 (load_class): Constify variable "separator". 1433 Use get_identifier_with_length. 1434 1435 * jvspec.c (lang_specific_driver): Constify two variables named "p". 1436 14372010-01-09 Jakub Jelinek <jakub@redhat.com> 1438 1439 * jcf-dump.c (version): Update copyright notice dates. 1440 14412009-11-28 Jakub Jelinek <jakub@redhat.com> 1442 1443 * jvspec.c (lang_specific_driver): Remove unused 1444 saw_verbose_flag variable. 1445 * jcf-dump.c (main): Remove unused general_purpose_bits 1446 variable. 1447 * builtins.c (initialize_builtins): Remove unused float_ftype_float 1448 variable. 1449 * expr.c (java_stack_pop): Remove unused val variable. 1450 (build_jni_stub): Remove unused res_type variable. 1451 * verify-impl.c (check_field_constant): Remove unused len variable. 1452 14532009-10-20 Joel Dice <dicej@mailsnare.net> 1454 1455 PR java/28474 1456 * mangle_name.c (append_unicode_mangled_name): Fix mangling 1457 of names with multiple underscores and "U". 1458 (unicode_mangling_length): Likewise. 1459 14602009-10-03 Simon Baldwin <simonb@google.com> 1461 1462 * config-lang.in (lang_dirs): Remove zlib. 1463 14642009-09-28 Richard Henderson <rth@redhat.com> 1465 1466 * builtins.c (initialize_builtins): Update call to 1467 build_common_builtin_nodes. 1468 * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New. 1469 14702009-09-14 Richard Henderson <rth@redhat.com> 1471 1472 * builtins.c (initialize_builtins): Update call to 1473 build_common_builtin_nodes. 1474 * decl.c (java_init_decl_processing): Don't call 1475 default_init_unwind_resume_libfunc. 1476 * except.c: Include tree-iterator.h. 1477 (build_exception_object_var): New. 1478 (build_exception_object_ref): Use it. 1479 (expand_end_java_handler): Initialize it from __builtin_eh_pointer. 1480 Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR. 1481 * java-tree.h (DECL_FUNCTION_EXC_OBJ): New. 1482 14832009-09-13 Richard Guenther <rguenther@suse.de> 1484 Rafael Avila de Espindola <espindola@google.com> 1485 1486 * decl.c (do_nothing): Remove. 1487 (java_init_decl_processing): Do not set lang_eh_runtime_type. 1488 * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency. 1489 * lang.c (java_eh_personality): New. 1490 (java_eh_personality_decl): Likewise. 1491 (LANG_HOOKS_EH_PERSONALITY): Define. 1492 14932009-09-03 Diego Novillo <dnovillo@google.com> 1494 1495 * lang.c (lang_hooks): Remove const qualifier. 1496 14972009-09-01 Jakub Jelinek <jakub@redhat.com> 1498 1499 * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT 1500 type. 1501 15022009-09-01 Richard Guenther <rguenther@suse.de> 1503 1504 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove. 1505 * java-tree.h (java_mark_addressable): Likewise. 1506 * typeck.c (java_mark_addressable): Likewise. 1507 15082009-08-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1509 1510 * Make-lang.in (java.install-pdf): Install gcj.pdf in 1511 $(pdfdir)/gcc, alongside the other manuals. 1512 15132009-08-12 Andrew Haley <aph@redhat.com> 1514 1515 * builtins.c (compareAndSwapInt_builtin): Use 1516 flag_use_atomic_builtins. 1517 (compareAndSwapLong_builtin): Likewise. 1518 (compareAndSwapObject_builtin): Likewise. 1519 * jvspec.c: Add flag_use_atomic_builtins. 1520 * gcj.texi: Likewise. 1521 * java-tree.h: Likewise. 1522 * lang.opt: Likewise. 1523 15242009-08-11 Dodji Seketeli <dodji@redhat.com> 1525 1526 PR debug/40990 1527 * lang.c (put_decl_node): Outputs different level of information 1528 depending on the verbosity level. 1529 15302009-07-31 Andrew Haley <aph@redhat.com> 1531 1532 PR java/40867 1533 * decl.c (java_replace_references): Set EXPR_LOCATION on all 1534 generated expressions. 1535 (binding_level.loc): new field. 1536 (clear_binding_level): Initialize loc. 1537 (set_input_location): New function. 1538 (pushlevel): Set new binding_level.loc. 1539 (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY. 1540 (start_java_method): Set DECL_SOURCE_LOCATION of this new method. 1541 (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt. 1542 15432009-07-17 Richard Guenther <rguenther@suse.de> 1544 1545 PR c/40401 1546 * java-gimplify.c (java_genericize): Do not gimplify here. 1547 But replace all local references. 1548 (java_gimplify_expr): Do not replace local references here. 1549 (java_gimplify_modify_expr): Likewise. 1550 * jcf-parse.c (java_parse_file): Do not finalize the CU or 1551 optimize the cgraph here. 1552 * decl.c (java_replace_reference): Make static. 1553 (java_replace_references): New function. 1554 (end_java_method): Clear base_decl_map. 1555 * java-tree.h (java_replace_references): Declare. 1556 (java_replace_reference): Remove. 1557 15582009-07-14 Taras Glek <tglek@mozilla.com> 1559 Rafael Espindola <espindola@google.com> 1560 1561 * Make-lang.in (java.install-plugin): New target for 1562 installing plugin headers. 1563 15642009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 1565 1566 * class.c: Replace %J by an explicit location. Update all calls. 1567 15682009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 1569 1570 * jcf-parse.c: Replace %H by an explicit location. Update all calls. 1571 15722009-06-29 Andrew Haley <aph@redhat.com> 1573 1574 PR java/40590 1575 * java-tree.h (cxx_keyword_p): New declaration. 1576 * mangle_name.c (utf8_cmp): Move here from mangle.c. 1577 (cxx_keywords): Likewise. 1578 (cxx_keyword_p): Likewise. 1579 (MANGLE_CXX_KEYWORDS): New macro. 1580 (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS. 1581 (append_gpp_mangled_name): Likewise. 1582 * mangle.c: Move code to mangle_name.c. 1583 (mangle_member_name): Don't call cxx_keyword_p. 1584 15852009-06-12 Aldy Hernandez <aldyh@redhat.com> 1586 1587 * java-gimplify.c (java_gimplify_block): New argument to 1588 build_empty_stmt. 1589 * expr.c (force_evaluation_order): Same. 1590 * typeck.c: Add location to build_decl or PUSH_FIELD calls. 1591 * class.c: Same. 1592 * decl.c: Same. 1593 * jcf-parse.c: Same. 1594 * constants.c: Same. 1595 * resource.c: Same. 1596 * except.c: Same. 1597 * builtins.c: Same. 1598 * expr.c: Same. 1599 * java-tree.h (PUSH_FIELD): Add location field. 1600 16012009-06-09 Ian Lance Taylor <iant@google.com> 1602 1603 * verify.h: Remove extern "C". 1604 16052009-06-07 Ian Lance Taylor <iant@google.com> 1606 1607 * jcf-parse.c (handle_constant): Change local variable 'kind' to 1608 unsigned int. 1609 16102009-06-01 Ian Lance Taylor <iant@google.com> 1611 1612 * jcf-io.c (find_class): Use CONST_CAST. 1613 16142009-05-27 Ian Lance Taylor <iant@google.com> 1615 1616 * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to 1617 $(LINKER). 1618 (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise. 1619 16202009-05-26 Ian Lance Taylor <iant@google.com> 1621 1622 * Make-lang.in (jvspec.o): Use $(COMPILER). 1623 ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise. 1624 (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise. 1625 16262009-05-12 Alexandre Oliva <aoliva@redhat.com> 1627 1628 * Make-lang.in (GCJ): Renamed to... 1629 (XGCJ): ... this. 1630 16312009-04-27 Ian Lance Taylor <iant@google.com> 1632 1633 * builtins.c (java_builtins): Add casts to enum type. 1634 * verify-impl.c (check_class_constant): Add cast to enum type. 1635 (check_constant, check_wide_constant): Likewise. 1636 16372009-04-27 Richard Guenther <rguenther@suse.de> 1638 1639 PR java/38374 1640 * constants.c (build_constants_constructor): Retain the old 1641 pointer type as valid TYPE_POINTER_TO after patching the 1642 type of the constant pool decl. 1643 16442009-04-24 Ian Lance Taylor <iant@google.com> 1645 1646 * jcf-parse.c (handle_constant): Add cast to enum type. 1647 16482009-04-21 Taras Glek <tglek@mozilla.com> 1649 1650 * builtins.c: Update GTY annotations to new syntax 1651 * decl.c: Likewise 1652 * java-tree.h: Likewise 1653 * jcf.h: Likewise 1654 * lang.c: Likewise 1655 16562009-04-21 Joseph Myers <joseph@codesourcery.com> 1657 1658 * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and 1659 license notices. 1660 16612009-04-18 Ian Lance Taylor <iant@google.com> 1662 1663 * verify-impl.c (verify_instructions_0): Add cast to enum type. 1664 16652009-04-09 Paolo Bonzini <bonzini@gnu.org> 1666 1667 * builtins.c (compareAndSwapLong_builtin, 1668 compareAndSwapInt_builtin, compareAndSwapObject_builtin, 1669 VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc. 1670 16712009-03-31 Richard Guenther <rguenther@suse.de> 1672 1673 * java-gimplify.c (java_gimplify_expr): Do not manually gimplify 1674 the first operand of binary and comaprison expressions. 1675 16762009-03-30 Joseph Myers <joseph@codesourcery.com> 1677 1678 PR rtl-optimization/323 1679 * lang.c (java_post_options): Set flag_excess_precision_cmdline. 1680 Give an error for -fexcess-precision=standard for processors where 1681 the option is significant. 1682 16832009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1684 1685 * lang.opt: Unify help text for -Wdeprecated. 1686 16872009-02-03 Jakub Jelinek <jakub@redhat.com> 1688 1689 * jcf-dump.c (version): Update copyright notice dates. 1690 16912009-01-16 Richard Guenther <rguenther@suse.de> 1692 1693 PR tree-optimization/38835 1694 PR middle-end/36227 1695 * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR. 1696 16972008-12-05 Sebastian Pop <sebastian.pop@amd.com> 1698 1699 PR bootstrap/38262 1700 * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS. 1701 17022008-11-04 Andrew Haley <aph@redhat.com> 1703 1704 PR java/37068 1705 * jcf-parse.c (java_emit_static_constructor): Don't call 1706 cgraph_build_static_cdtor. Rewrite. 1707 17082008-10-24 Jakub Jelinek <jakub@redhat.com> 1709 1710 * Make-lang.in (check-java-subtargets): New target. 1711 17122008-10-16 David Edelsohn <edelsohn@gnu.org> 1713 1714 PR target/35483 1715 * Make-lang.in (class.o): Depend on $(TM_P_H). 1716 (expr.o): Same. 1717 * class.c: Include tm_p.h. 1718 * expr.c: Include tm_p.h. 1719 17202008-10-14 Andrew Haley <aph@redhat.com> 1721 1722 * constants.c (build_constant_data_ref): Make sure we only build 1723 one copy of the decl for the constant pool. 1724 17252008-09-22 Andrew Haley <aph@redhat.com> 1726 1727 * expr.c (rules): Add new rule for 1728 gnu.java.lang.VMCPStringBuilder.toString. 1729 (rewrite_rule.new_classname): New field. 1730 (maybe_rewrite_invocation): Use new_classname field instead of 1731 DECL_CONTEXT (*method_p). 1732 Allow rewrite_arglist to be NULL. 1733 17342008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com> 1735 1736 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. 1737 (java_get_callee_fndecl): Kill. 1738 17392008-09-17 Jan Hubicka <jh@suse.cz> 1740 1741 PR c++/18071 1742 * class.c (add_method_1): Do not initialize DECL_INLINE. 1743 (make_local_function_alias): Likewise. 1744 * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE. 1745 * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE. 1746 17472008-09-09 Richard Guenther <rguenther@suse.de> 1748 1749 * decl.c (build_result_decl): Remove no longer applicable 1750 promotion. 1751 17522008-09-05 David Daney <ddaney@avtrex.com> 1753 1754 * gcj.texi (-freduced-reflection): Clarify option's restrictions. 1755 17562008-08-21 David Daney <ddaney@avtrex.com> 1757 1758 * class.c (make_class_data): Don't add field_index when 1759 flag_reduced_reflection set. 1760 17612008-08-12 Ulrich Weigand <uweigand@de.ibm.com> 1762 1763 * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT. 1764 17652008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 1766 1767 PR 28875 1768 * lang.c (java_handle_option): Replace set_Wunused with 1769 warn_unused. 1770 17712008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1772 1773 * gcj.texi: Update copyright years. Do not list GPL as 1774 Invariant Section. 1775 17762008-07-29 Jakub Jelinek <jakub@redhat.com> 1777 1778 * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT 1779 from ctype's sizes. 1780 1781 * class.c (build_utf8_ref): Pad initializer string to utf8const_type's 1782 alignment. 1783 17842008-07-29 Jan Hubicka <jh@suse.cz> 1785 1786 * lang.c (java_post_options): Remove handling of flag_no_inline. 1787 17882008-07-28 Richard Guenther <rguenther@suse.de> 1789 1790 Merge from gimple-tuples-branch. 1791 1792 2008-07-18 Richard Guenther <rguenther@suse.de> 1793 1794 * expr.c: Include tree-iterator.h. 1795 * Make-lang.in (expr.o): Add tree-iterator.h dependency. 1796 1797 2008-07-18 Aldy Hernandez <aldyh@redhat.com> 1798 1799 * java-gimplify.c: Include gimple.h instead of tree-gimple.h. 1800 * expr.c: Same. 1801 1802 2008-07-14 Aldy Hernandez <aldyh@redhat.com> 1803 1804 * java-gimplify.c (java_gimplify_expr): Same. 1805 (java_gimplify_modify_expr): Same. 1806 * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN. 1807 1808 2008-05-02 Diego Novillo <dnovillo@google.com> 1809 1810 * expr.c (build_java_throw_out_of_bounds_exception): Fix 1811 mixed declarations and code. 1812 1813 2008-05-02 Doug Kwan <dougkwan@google.com> 1814 1815 * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to 1816 _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0. 1817 1818 2008-02-19 Diego Novillo <dnovillo@google.com> 1819 1820 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html 1821 1822 * java-gimplify.c (java_gimplify_self_mod_expr): Change 1823 gimple_seq arguments to gimple_seq *. Update all users. 1824 1825 2007-11-26 Aldy Hernandez <aldyh@redhat.com> 1826 1827 * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p 1828 sequences. 1829 (java_gimplify_self_mod_expr): Same. 1830 * java-tree.h (java_gimplify_expr): Make pre_p and post_p 1831 sequences. 1832 18332008-07-24 Jan Hubicka <jh@suse.cz> 1834 1835 * java/decl.c: Include cgraph.h 1836 (end_java_method): Remove non-unit-at-a-time code. 1837 (java_mark_decl_local): Likewise; sanity check that we don't touch 1838 finalized nodes. 1839 18402008-07-15 Jan Hubicka <jh@suse.cz> 1841 1842 * lang.c (java_init_options): Enable unit-at-a-time by default. 1843 18442008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1845 1846 * Make-lang.in (jvspec.o): Fix dependencies. 1847 18482008-07-06 Tom Tromey <tromey@redhat.com> 1849 1850 * Make-lang.in (java/parse.o-warn): Remove. 1851 (java/jcf-io.o-warn): Remove. 1852 18532008-07-05 Tom Tromey <tromey@redhat.com> 1854 1855 * jcf-io.c: Don't include fnmatch.h. Don't use JCF_USE_SCANDIR. 1856 (compare_path): Remove. 1857 (java_or_class_file): Likewise. 1858 (memoized_dirlist_entry): Likewise. 1859 (memoized_dirlist_hash): Likewise. 1860 (memoized_dirlist_lookup_eq): Likewise. 1861 (memoized_dirlists): Likewise. 1862 (caching_stat): Likewise. 1863 (find_class): Use stat. 1864 * jcf.h (JCF_USE_SCANDIR): Remove. 1865 18662008-06-30 Joshua Sumali <jsumali@redhat.com> 1867 1868 * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and 1869 doc/rebuild-gcj-db.1 1870 (java.uninstall): Likewise. 1871 (java.maintainer-clean): Likewise. 1872 (aot-compile.pod): New rule. 1873 (rebuild-gcj-db.pod): New rule. 1874 (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1 1875 * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db. 1876 18772008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1878 1879 * Make-lang.in (java/jcf-io.o-warn): New. 1880 18812008-06-24 Tom Tromey <tromey@redhat.com> 1882 1883 * jcf-path.c (jcf_path_init): Don't name variable 'try'. 1884 * expr.c (add_type_assertion): Rename argument. 1885 (build_java_arrayaccess): Don't name variable 'throw'. 1886 (ARRAY_NEW_MULTI): Don't name variable 'class'. 1887 * jcf-io.c (find_class): Don't name variable 'class'. 1888 * mangle.c (compression_table_add): Don't name variable 'new'. 1889 * constants.c (cpool_for_class): Rename argument. 1890 (alloc_constant_fieldref): Likewise. 1891 * jcf-parse.c (handle_innerclass_attribute): Don't name variable 1892 'class'. 1893 (read_class): Likewise. 1894 (parse_zip_file_entries): Likewise. 1895 (process_zip_dir): Likewise. 1896 * decl.c (java_mark_class_local): Rename argument. 1897 * class.c (GEN_TABLE): Use type_name, not typename. 1898 (gen_indirect_dispatch_tables): Likewise. 1899 (add_field): Rename argument. 1900 (is_compiled_class): Likewise. 1901 (safe_layout_class): Likewise. 1902 (emit_assertion_table): Likewise. 1903 * typeck.c (has_method): Rename argument. 1904 19052008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1906 1907 * class.c (ident_subst, mangled_classname, unmangle_classname, 1908 gen_indirect_dispatch_tables, add_method_1, 1909 build_fieldref_cache_entry, make_local_function_alias, 1910 layout_class, java_treetreehash_find, java_treetreehash_new, 1911 split_qualified_name): Fix for -Wc++-compat. 1912 * constants.c (set_constant_entry, cpool_for_class): Likewise. 1913 * decl.c (make_binding_level, java_dup_lang_specific_decl, 1914 start_java_method): Likewise. 1915 * except.c (prepare_eh_table_type): Likewise. 1916 * expr.c (type_assertion_hash, note_instructions): Likewise. 1917 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC, 1918 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise. 1919 * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class): 1920 Likewise. 1921 * jcf-parse.c (reverse, java_read_sourcefilenames, 1922 annotation_grow, rewrite_reflection_indexes, java_parse_file, 1923 process_zip_dir): Likewise. 1924 * jcf-path.c (add_entry, add_path, jcf_path_init, 1925 jcf_path_extdirs_arg): Likewise. 1926 * jcf-reader.c (jcf_parse_constant_pool): Likewise. 1927 * jvgenmain.c (do_mangle_classname): Likewise. 1928 * lang.c (put_decl_string): Likewise. 1929 * verify-impl.c (make_state_copy, make_state, add_new_state): 1930 Likewise. 1931 19322008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1933 1934 * gcj.texi: Expand TABs, remove whitespace from blank lines. 1935 19362008-06-14 Tom Tromey <tromey@redhat.com> 1937 1938 PR java/36247: 1939 * class.c (build_class_ref): Initialize this_classdollar when 1940 needed. 1941 19422008-05-23 Andrew Haley <aph@redhat.com> 1943 1944 * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full 1945 pathname of source file. 1946 19472008-05-12 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 1948 1949 * jcf-dump.c (print_constant): Use 1950 HOST_LONG_LONG_FORMAT. 1951 19522008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com> 1953 1954 * decl.c (java_init_decl_processing): Change DECL_IS_PURE to 1955 DECL_PURE_P. 1956 19572008-04-23 Paolo Bonzini <bonzini@gnu.org> 1958 1959 * class.c (build_utf8_ref): Don't set TREE_INVARIANT. 1960 (build_classdollar_field): Don't set TREE_INVARIANT. 1961 (get_dispatch_table): Don't set TREE_INVARIANT. 1962 (make_class_data): Don't set TREE_INVARIANT. 1963 (build_symbol_entry): Don't set TREE_INVARIANT. 1964 (emit_symbol_table): Don't set TREE_INVARIANT. 1965 * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT. 1966 (build_ref_from_constant_pool): Don't set TREE_INVARIANT. 1967 * resource.c (compile_resource_data): Don't set TREE_INVARIANT. 1968 * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT. 1969 19702008-04-03 Tom Tromey <tromey@redhat.com> 1971 1972 * Make-lang.in (java_OBJS): New variable. 1973 19742008-04-03 Paolo Bonzini <bonzini@gnu.org> 1975 1976 * java-tree.h (insert_block): Kill. 1977 * decl.c (insert_block): Kill. 1978 19792008-04-01 Joseph Myers <joseph@codesourcery.com> 1980 1981 * gcj.texi: Include gpl_v3.texi instead of gpl.texi 1982 * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of 1983 gpl.texi. 1984 19852008-03-27 Tom Tromey <tromey@redhat.com> 1986 1987 * Make-lang.in: Revert automatic dependency patch. 1988 19892008-03-25 Tom Tromey <tromey@redhat.com> 1990 1991 * Make-lang.in: Removed most explicit .o targets. 1992 (java/jvspec.o): Reduce to variable setting. Moved to java/. 1993 ($(GCJ)$(exeext)): Update. 1994 (JAVA_OBJS): New variable. 1995 (JCFDUMP_OBJS): Reformat. 1996 (java_OBJS): New variable. 1997 (java/jvspec.o-warn): Update. 1998 (java/parse.o-warn): Remove. 1999 (JAVA_TREE_H): Remove. 2000 (java/jcf-io.o): Reduce to variable setting. 2001 (ALL_CPPFLAGS): Likewise. 2002 20032008-03-12 Paolo Bonzini <bonzini@gnu.org> 2004 2005 * mangle.c (java_mangle_decl): Remove dead check. 2006 20072008-03-11 Paolo Bonzini <bonzini@gnu.org> 2008 2009 * jcf-parse.c (java_parse_file): Assert binding levels are 2010 left in order. 2011 * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack): 2012 Delete. 2013 20142008-03-02 Jakub Jelinek <jakub@redhat.com> 2015 2016 * jcf-dump.c (version): Update copyright notice dates. 2017 20182008-02-29 Tom Tromey <tromey@redhat.com> 2019 2020 * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on 2021 method. 2022 * java-tree.h (struct lang_decl_func): Remove obsolete comment. 2023 20242008-02-26 Tom Tromey <tromey@redhat.com> 2025 2026 * lang.c (java_post_options): Remove conditional. 2027 * expr.c (expand_byte_code): Remove old location code. 2028 * jcf-parse.c (set_source_filename): Remove old location code. 2029 (give_name_to_class): Likewise. 2030 (jcf_parse): Likewise. 2031 (duplicate_class_warning): Likewise. 2032 (parse_class_file): Likewise. 2033 (java_parse_file): Likewise. 2034 * decl.c (finish_method): Remove old location code. 2035 * class.c (push_class): Remove old location code. 2036 20372008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2038 2039 PR other/35107 2040 * Make-lang.in (jc1): Add $(GMPLIBS). 2041 20422008-01-23 David Daney <ddaney@avtrex.com> 2043 2044 * class.c (hide) Rename to... 2045 (java_hide_decl) ... this throughout, and make public. 2046 * resource.c (Jr_count): Remove. 2047 (compile_resource_data): Call java_mangle_resource_name to generate 2048 decl name. Make resource decl public and hidden. 2049 * mangle.c (java_mangle_resource_name): New function. 2050 * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare 2051 functions. 2052 20532008-01-04 Andrew Haley <aph@redhat.com> 2054 2055 PR java/17779 2056 * jcf-parse.c (parse_zip_file_entries): Move decl to compile on 2057 C90. 2058 20592008-01-03 Andrew Haley <aph@redhat.com> 2060 2061 PR java/17779 2062 * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if 2063 we're about to re-layout the type. 2064 20652007-12-20 Alexandre Oliva <aoliva@redhat.com> 2066 2067 * lang.c (java_classify_record): Don't return 2068 RECORD_IS_INTERFACE for now. 2069 20702007-12-18 Andrew Haley <aph@redhat.com> 2071 2072 PR java/27643 2073 * jcf-parse.c (java_parse_file): Remove call to 2074 java_mark_class_local. 2075 (parse_class_file): Reinstate call to java_mark_class_local here. 2076 * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is 2077 already set, call java_mangle_decl() and make_decl_rtl() to 2078 rewrite its name as a hidden alias. 2079 20802007-12-15 Alexandre Oliva <aoliva@redhat.com> 2081 2082 PR debug/7081 2083 * lang.c (java_classify_record): New. 2084 (LANG_HOOKS_CLASSIFY_RECORD): Override. 2085 20862007-11-26 Andreas Krebbel <krebbel1@de.ibm.com> 2087 2088 PR 34081/C++ 2089 * decl.c (finish_method): Pass 'false' for the new 2090 allocate_struct_function parameter. 2091 20922007-11-26 Alexandre Oliva <aoliva@redhat.com> 2093 2094 * expr.c (build_jni_stub): Use the computed jni func type for 2095 variable meth. 2096 20972007-11-26 Alexandre Oliva <aoliva@redhat.com> 2098 2099 * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID. 2100 21012007-11-26 Alexandre Oliva <aoliva@redhat.com> 2102 2103 * expr.c (type_assertion_hash): Hash type uids rather than 2104 tree pointers. 2105 21062007-11-17 David Daney <ddaney@avtrex.com> 2107 Andrew Haley <aph@redhat.com> 2108 2109 * constants.c (build_constants_constructor): Use POINTER_SIZE 2110 insead of BITS_PER_WORD in big-endian work around. 2111 21122007-11-07 Tom Tromey <tromey@redhat.com> 2113 2114 PR java/34019: 2115 * gcj.texi (Input Options): Add missing noun. 2116 21172007-11-02 Tom Tromey <tromey@redhat.com> 2118 2119 PR java/33765: 2120 * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files. 2121 * zipfile.h (ZIPEMPTYMAGIC): New define. 2122 21232007-11-01 Tom Tromey <tromey@redhat.com> 2124 2125 * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h. 2126 (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h. 2127 (java/jcf-io.o): Depend on zipfile.h. 2128 21292007-10-17 Richard Guenther <rguenther@suse.de> 2130 2131 * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H) 2132 dependencies. 2133 21342007-10-03 Andrew Haley <aph@redhat.com> 2135 2136 PR java/33639 2137 * class.c (mangled_classname): Detect and replace illegal 2138 characters in assembly language symbols. 2139 (gen_indirect_dispatch_tables): Call mangled_classname() on 2140 the type. 2141 21422007-09-27 Jakub Jelinek <jakub@redhat.com> 2143 2144 * lang.c (java_print_error_function): Add third argument. 2145 21462007-09-15 Tom Tromey <tromey@redhat.com> 2147 2148 * java-tree.h (struct lang_decl_func) <function_decl_body>: 2149 Remove. 2150 <init_final>: Likewise. 2151 * lang.c (java_dump_tree): Update. 2152 * java-tree.h (DECL_FUNCTION_BODY): Remove. 2153 21542007-09-11 Jan Hubicka <jh@suse.cz> 2155 2156 * decl.c (java_expand_body): Kill. 2157 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. 2158 21592007-09-06 Tom Tromey <tromey@redhat.com> 2160 2161 * jcf-parse.c (parse_class_file): Re-enter the current file. 2162 21632007-09-07 Roman Zippel <zippel@linux-m68k.org> 2164 2165 * boehm.c (mark_reference_fields): Move misaligned pointer check 2166 after JREFERENCE_TYPE_P test 2167 21682007-09-06 Roman Zippel <zippel@linux-m68k.org> 2169 2170 * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr 2171 if pointer is misaligned. 2172 21732007-09-06 Tom Tromey <tromey@redhat.com> 2174 2175 * lang.c (java_post_options): Update. 2176 * jcf-parse.c (set_source_filename): Update. 2177 (give_name_to_class): Update. 2178 (jcf_parse): Update. 2179 (duplicate_class_warning): Update. 2180 (parse_class_file): Update. 2181 (java_parse_file): Update. 2182 * expr.c (expand_byte_code): Update. 2183 21842007-09-05 Sandra Loosemore <sandra@codesourcery.com> 2185 2186 * decl.c (finish_method): Use set_cfun. 2187 21882007-09-04 Andrew Haley <aph@redhat.com> 2189 2190 * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup" 2191 when using the ARM EABI. 2192 21932007-09-03 Daniel Jacobowitz <dan@codesourcery.com> 2194 2195 * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB. 2196 21972007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2198 2199 * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for 2200 CONST_CAST. 2201 * jcf.h (JCF_FINISH): Likewise. 2202 22032007-08-28 Tom Tromey <tromey@redhat.com> 2204 2205 * Make-lang.in (java.tags): Don't tag '*.y' files. 2206 22072007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2208 2209 * lang.c (java_decl_ok_for_sibcall): Likewise. 2210 22112007-08-21 Paul Brook <paul@codesourcery.com> 2212 Nathan Sidwell <nathan@codesourcery.com> 2213 Mark Mitchell <mark@codesourcery.com> 2214 Joseph Myers <joseph@codesourcery.com> 2215 2216 * jcf-dump.c (version): Use pkgversion_string. Update copyright 2217 date. 2218 22192007-08-20 Richard Guenther <rguenther@suse.de> 2220 2221 * lang.c (java_tree_inlining_walk_subtrees): Remove. 2222 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove. 2223 22242007-08-17 Tom Tromey <tromey@redhat.com> 2225 2226 * typeck.c (find_method_in_interfaces): Update. 2227 * jcf-parse.c (load_class): Update. 2228 * java-gimplify.c (java_gimplify_component_ref): Removed. 2229 (java_gimplify_modify_expr): Update. Removed pre_p and post_p 2230 arguments. 2231 (java_gimplify_expr): Update. 2232 * decl.c (java_init_decl_processing): Update. 2233 * class.c (set_constant_value): Update. 2234 (make_class_data): Update. 2235 (finish_class): Update. 2236 (build_static_field_ref): Update. 2237 (is_compiled_class): Update. 2238 (maybe_layout_super_class): Update. 2239 (layout_class): Update. 2240 (layout_class_method): Update. 2241 * java-tree.h (CAN_COMPLETE_NORMALLY): Removed. 2242 (lang_decl_var) <am, final_iud, cif>: Removed fields. 2243 (lang_decl_func) <init_calls_this>: Removed field. 2244 (lang_type) <dot_class, verify_method>: Removed fields. 2245 (FIELD_NESTED_ACCESS): Removed. 2246 (FIELD_NESTED_ACCESS_P): Removed. 2247 (DECL_FIELD_FINAL_IUD): Removed. 2248 (DECL_LOCAL_FINAL_IUD): Removed 2249 (LOCAL_FINAL_P): Removed. 2250 (FINAL_VARIABLE_P): Removed. 2251 (CLASS_FINAL_VARIABLE_P): Removed. 2252 (DECL_BIT_INDEX): Removed. 2253 (DECL_INIT_CALLS_THIS): Removed. 2254 (FIELD_LOCAL_ALIAS): Removed. 2255 (FIELD_LOCAL_ALIAS_USED): Removed. 2256 (FIELD_THISN): Removed. 2257 (DECL_FUNCTION_INIT_TEST_CLASS): Removed. 2258 (LOCAL_CLASS_INITIALIZATION_FLAG): Removed. 2259 (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed. 2260 (TYPE_DOT_CLASS): Removed. 2261 (TYPE_VERIFY_METHOD): Removed. 2262 (ID_CLASSDOLLAR_P): Removed. 2263 (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>: 2264 Removed. 2265 (classdollar_identifier_node): Removed. 2266 (TYPE_UNKNOWN): Removed. 2267 (CLASS_FROM_SOURCE_P): Removed. 2268 * expr.c (build_jni_stub): Update. 2269 (force_evaluation_order): Update. 2270 (build_java_empty_stmt): Update. 2271 (build_class_init): Update. 2272 (java_stack_swap): Update. 2273 (build_jni_stub): Update. 2274 22752007-08-17 Tom Tromey <tromey@redhat.com> 2276 2277 * java-tree.h (LABEL_TYPE_STATE): Removed. 2278 (load_type_state): Removed. 2279 (LABEL_PC): Removed. 2280 (LABEL_VERIFIED): Removed. 2281 (type_states): Declare. 2282 * expr.c (type_states): New global. 2283 (load_type_state): Now static. Use type_states. Changed 2284 argument. 2285 (lookup_label): Don't set LABEL_PC. 2286 (expand_byte_code): Don't use LABEL_VERIFIED. 2287 (note_instructions): Initialize type_states. 2288 * verify-glue.c (vfy_note_stack_depth): Rewrote. 2289 (vfy_note_stack_type): Use type_states. 2290 (vfy_note_local_type): Likewise. 2291 22922007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2293 2294 * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST. 2295 * jcf.h (JCF_FINISH): Likewise. 2296 22972007-07-31 Nick Clifton <nickc@redhat.com> 2298 2299 * java-gimplify.c: Change copyright header to refer to version 3 2300 of the GNU General Public License and to point readers at the 2301 COPYING3 file and the FSF's license web page. 2302 * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c, 2303 decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in, 2304 resource.c, except.c, builtins.c, jvspec.c, java-tree.def, 2305 javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt, 2306 jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h, 2307 verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c, 2308 parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise. 2309 23102007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2311 2312 * jcf-io.c (find_class): Fix -Wcast-qual warnings. 2313 23142007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2315 2316 * lang.c (java_get_callee_fndecl): Constify. 2317 23182007-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2319 2320 * mangle.c (set_type_package_list): Constify. 2321 * verify-glue.c (vfy_make_string): Delete. 2322 * verify.h (vfy_make_string): Likewise. 2323 23242007-07-26 Tom Tromey <tromey@redhat.com> 2325 2326 * java-tree.h (push_labeled_block, pop_labeled_block): Remove. 2327 (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, 2328 EXIT_BLOCK_LABELED_BLOCK): Likewise. 2329 * lang.c (java_tree_inlining_walk_subtrees): Update. 2330 (java_dump_tree): Likewise. 2331 * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR): 2332 Remove. 2333 * decl.c (push_labeled_block, pop_labeled_block): Remove. 2334 * java-gimplify.c (java_gimplify_labeled_block_expr, 2335 java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove. 2336 (java_gimplify_expr): Update. 2337 23382007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2339 2340 * class.c (java_treetreehash_hash, java_treetreehash_compare): 2341 Constify. 2342 * expr.c (type_assertion_eq): Likewise. 2343 * jcf-io.c (compare_path): Likewise. 2344 * jcf-parse.c (cmpstringp): Likewise. 2345 * verify-impl.c (get_one_type, compute_argument_types, 2346 compute_return_type): Likewise. 2347 23482007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 2349 2350 PR target/32462 2351 PR libgcj/32465 2352 * class.c (hide): Wrap in HAVE_GAS_HIDDEN. 2353 23542007-07-12 Richard Guenther <rguenther@suse.de> 2355 2356 * expr.c (expand_java_return): RETURN_EXPR has void type. 2357 (build_jni_stub): Likewise. Use a comparison against zero 2358 for null-pointer test in COND_EXPR. 2359 (build_field_ref): Build POINTER_PLUS_EXPR with correct 2360 type. Convert result instead. 2361 (build_invokevirtual): Likewise. 2362 23632007-07-09 Geoffrey Keating <geoffk@apple.com> 2364 2365 PR 32617 2366 * lang.c (java_init): Remove setting of force_align_functions_log. 2367 * class.c (add_method_1): Set DECL_ALIGN of non-static method 2368 to cope with ptrmemfunc_vbit_in_pfn. 2369 23702007-07-03 David Daney <ddaney@avtrex.com> 2371 2372 * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to 2373 include path. 2374 (doc/gcj.dvi): Same. 2375 (doc/gcj.pdf): Same. 2376 (java/index.html): Same. 2377 23782007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com> 2379 2380 * class.c (make_class_data): Build the index in sizetype. 2381 Use POINTER_PLUS_EXPR instead of PLUS_EXPR when 2382 adding to a pointer type. 2383 (build_symbol_entry): Likewise. 2384 * expr.c (build_java_arrayaccess): Likewise. 2385 (build_field_ref): Likewise. 2386 (build_known_method_ref): Likewise. 2387 (build_invokevirtual): Likewise. 2388 * except.c (build_exception_object_ref): Do a 2389 NEGATIVE and then a POINTER_PLUS_EXPR instead 2390 of a MINUS_EXPR. 2391 23922007-06-11 Rafael Ávila de Espíndola <espindola@google.com> 2393 2394 * typeck.c (java_signed_type): Remove. 2395 * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove. 2396 * java-tree.h (java_signed_type): Remove. 2397 23982007-05-18 Geoffrey Keating <geoffk@apple.com> 2399 2400 * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx. 2401 (print_constant): Likewise. 2402 24032007-05-14 Rafael Ávila de Espíndola <espindola@google.com> 2404 2405 * expr.c (build_java_binop): Use unsigned_type_for instead of 2406 java_unsigned_type. 2407 * java-tree.h (java_unsigned_type): Remove. 2408 * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove. 2409 * typeck.c (java_unsigned_type): Remove. 2410 24112007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com> 2412 2413 * java-tree.h (lang_tree_node): Use GENERIC_NEXT 2414 instead of checking GIMPLE_STMT_P in chain_next. 2415 24162007-04-06 Colin Walters <walters@redhat.com> 2417 2418 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701 2419 * jcf-io.c (open_class): Copy 'filename'. 2420 24212007-04-03 Andrew Haley <aph@redhat.com> 2422 2423 * jvgenmain.c (main): Change main to use class$, not class$$. 2424 (do_mangle_classname): Likewise. 2425 * class.c (hide): New function. 2426 (add_field): Hide everything that shouldn't be visible outside a 2427 DSO. 2428 (build_static_class_ref): Likewise. 2429 (build_classdollar_field): Likewise. 2430 (make_class_data): Likewise. 2431 (layout_class_method): Likewise. 2432 * expr.c (special_method_p): New function. 2433 2434 * class.c (push_class): Don't bogusly guess the source filename. 2435 * jcf-parse.c (give_name_to_class): Don't set input_location from 2436 DECL_ARTIFICIAL decls. 2437 24382007-03-30 Rafael Ávila de Espíndola <espindola@google.com> 2439 2440 * typeck.c (java_signed_or_unsigned_type): Removed. 2441 (java_signed_type): use get_signed_or_unsigned_type instead of 2442 java_signed_or_unsigned_type. 2443 (java_unsigned_type): Ditto. 2444 * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed. 2445 * java-tree.h (java_signed_or_unsigned_type): Removed. 2446 24472007-03-26 Tom Tromey <tromey@redhat.com> 2448 2449 * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1. 2450 (java.maintainer-clean): Likewise. 2451 (java.install-man): Likewise. 2452 (.INTERMEDIATE): Removed grmiregistry.pod. 2453 (grmiregistry.pod): Removed. 2454 * gcj.texi (Invoking gcjh): Removed. 2455 (Invoking gjnih): Likewise. 2456 (Invoking grmiregistry): Likewise. 2457 (direntry): Updated. 2458 (Top): Likewise. 2459 (which-gcj): Removed. 2460 24612007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 2462 2463 * Make-lang.in: Add install-pdf target as copied from 2464 automake v1.10 rules. 2465 24662007-02-27 Brooks Moses <brooks.moses@codesourcery.com> 2467 2468 * gcj.texi: Standardize title page. 2469 24702007-02-18 Kazu Hirata <kazu@codesourcery.com> 2471 2472 * class.c: Fix a comment typo. 2473 24742007-02-15 Sandra Loosemore <sandra@codesourcery.com> 2475 Brooks Moses <brooks.moses@codesourcery.com> 2476 Lee Millward <lee.millward@codesourcery.com> 2477 2478 * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead 2479 of build3. 2480 (BUILD_MONITOR_EXIT): Likewise. 2481 2482 * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr. 2483 (java_gimplify_modify_expr): Likewise. 2484 2485 * class.c (cache_this_class_ref): Use build_call_expr. 2486 (build_static_field_ref): Likewise. 2487 (emit_indirect_register_classes): Likewise. 2488 (emit_register_classes): Likewise. 2489 2490 * resource.c (write_resource_constructor): Use build_call_expr. 2491 2492 * builtins.c (builtin_creator_function): Change interpretation of 2493 the second parameter to be the whole CALL_EXPR instead of the arglist. 2494 (max_builtin): Tweak parameter list. Use new CALL_EXPR accessors. 2495 (min_builtin): Likewise. 2496 (abs_builtin): Likewise. 2497 (java_build_function_call_expr): Likewise. 2498 (convert_real): Likewise. 2499 (UNMARSHAL3): Likewise. 2500 (UNMARSHAL4): Likewise. 2501 (UNMARSHAL5): Likewise. 2502 (build_arglist_for_builtin): Delete. Fix callers to use 2503 build_call_expr instead. 2504 (putObject_builtin): Tweak parameter list. Use new CALL_EXPR 2505 accessors. 2506 (compareAndSwapInt_builtin): Likewise. 2507 (compareAndSwapLong_builtin): Likewise. 2508 (compareAndSwapObject_builtin): Likewise. 2509 (putVolatile_builtin): Likewise. 2510 (getVolatile_builtin): Likewise. 2511 (VMSupportsCS8_builtin): Likewise. 2512 (check_for_builtin): Pass entire CALL_EXPR to builtin expander 2513 instead of arglist. 2514 2515 * expr.c (build_java_athrow): Use build_call_nary instead of build3. 2516 (build_java_throw_out_of_bounds_exception): Likewise. 2517 (java_check_reference): Likewise. 2518 (build_java_arraystore_check): Likewise. 2519 (build_newarray): Likewise. 2520 (build_anewarray): Likewise. 2521 (expand_java_multinewarray): Use build_call_list instead of build3. 2522 (build_java_monitor): Use build_call_nary instead of build3. 2523 (java_create_object): Likewise. 2524 (expand_java_NEW): Likewise. 2525 (build_instanceof): Likewise. 2526 (expand_java_CHECKCAST): Likewise. 2527 (build_java_soft_divmod): Likewise. 2528 (build_java_binop): Likewise. 2529 (build_field_ref): Likewise. 2530 (build_class_init): Likewise. 2531 (rewrite_arglist_getcaller): Use build_call_expr. 2532 (build_invokeinterface): Use build_call_nary instead of build3. 2533 (expand_invoke): Use build_call_list instead of build3. 2534 (build_jni_stub): Use build_call_nary, build_call_list, or 2535 build_call_expr instead of build3. 2536 (expand_java_field_op): Use build_call_expr instead of build3. 2537 (force_evaluation_order): Use new CALL_EXPR accessors. 2538 2539 * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors. 2540 25412007-02-15 David Daney <ddaney@avtrex.com> 2542 2543 * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1. 2544 (java.maintainer-clean):Add gc-analyze.1. 2545 (.INTERMEDIATE): Add gc-analyze.pod. 2546 (gc-analyze.pod): New rule. 2547 (java.install-man): Install gc-analyze.1 2548 * gcj.texi: Add new section for the gc-analyze program. 2549 25502007-02-07 Andrew Haley <aph@redhat.com> 2551 2552 * class.c (uncache_this_class_ref): New. 2553 * expr.c (build_jni_stub): Initialize the class. 2554 (expand_byte_code): Call uncache_this_class_ref after generating 2555 code. 2556 25572007-02-06 Tom Tromey <tromey@redhat.com> 2558 2559 PR java/30714: 2560 * jvspec.c (lang_specific_driver): Check for the '-' in '-I'. 2561 25622007-02-03 Kazu Hirata <kazu@codesourcery.com> 2563 2564 * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos. 2565 25662007-02-02 Andrew Haley <aph@redhat.com> 2567 2568 * expr.c (expand_byte_code): Call cache_this_class_ref() and 2569 cache_cpool_data_ref(). 2570 Set TYPE_CPOOL_DATA_REF. 2571 (cache_cpool_data_ref): New function. 2572 * constants.c (build_ref_from_constant_pool): Remove special-case 2573 code for flag_indirect_classes. 2574 (build_constant_data_ref): Move special-case code for 2575 flag_indirect_classes here from build_ref_from_constant_pool. 2576 * decl.c (finish_method): Move class initialization from here to 2577 cache_this_class_ref. 2578 * class.c (cache_this_class_ref): New function. 2579 (build_class_ref): Use this_classdollar for the ouput class. 2580 25812007-02-02 David Daney <ddaney@avtrex.com> 2582 2583 * class.c (is_compiled_class): Move check to avoid reloading 2584 current class. 2585 (layout_class_method): Don't calculate DECL_EXTERNAL if it is 2586 already set. 2587 25882007-02-01 Andrew Haley <aph@redhat.com> 2589 2590 PR java/30641 2591 * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap. 2592 25932007-01-31 Kazu Hirata <kazu@codesourcery.com> 2594 2595 * class.c, jcf-parse.c: Fix comment typos. 2596 25972007-01-30 Tom Tromey <tromey@redhat.com> 2598 2599 * gcj.texi (Strings): Fix documentation for JvNewString. 2600 26012007-01-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2602 2603 * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some 2604 typos. 2605 26062007-01-30 Ben Elliston <bje@au.ibm.com> 2607 2608 * jvspec.c (lang_specific_driver): Remove unused classpath_args. 2609 26102007-01-29 Tom Tromey <tromey@redhat.com> 2611 2612 PR java/30607: 2613 * jvspec.c (lang_specific_driver): Handle separate -I argument. 2614 * lang.opt (-I): Add 'Separate'. 2615 26162007-01-29 Andrew Haley <aph@redhat.com> 2617 2618 * class.c (add_method_1): Mark fndecl as external unless we are 2619 compiling it into this object file. 2620 26212007-01-24 Andrew Haley <aph@redhat.com> 2622 2623 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a 2624 type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC. 2625 26262007-01-22 Andrew Haley <aph@redhat.com> 2627 2628 * builtins.c (VMSupportsCS8_builtin): New function. 2629 26302007-01-23 Andrew Pinski <pinskia@gmail.com> 2631 2632 PR java/30454 2633 * jcf-io.c (opendir_in_zip): Close the file 2634 and free zipf before returning after an error. 2635 26362007-01-16 Tom Tromey <tromey@redhat.com> 2637 2638 * java-tree.def: Added copyright header. 2639 26402007-01-15 Tom Tromey <tromey@redhat.com> 2641 2642 * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed 2643 case. 2644 * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>: 2645 Removed case. 2646 * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed. 2647 (EXPR_WFL_NODE): Likewise. 2648 (EXPR_WFL_LINECOL): Likewise. 2649 (EXPR_WFL_FILENAME): Likewise. 2650 (EXPR_WFL_LINENO): Likewise. 2651 (build_expr_wfl, expr_add_location): Don't declare. 2652 (build_unknown_wfl): Removed. 2653 (EXPR_WFL_FILENAME_NODE): Removed. 2654 (EXPR_WFL_COLNO): Removed. 2655 (EXPR_WFL_SET_LINECOL): Removed. 2656 (DECL_FUNCTION_WFL): Removed. 2657 (DECL_FIELD_FINAL_WFL): Removed. 2658 (struct lang_decl_func) <wfl>: Removed field. 2659 <called_constructor>: Likewise. 2660 <inner_access>: Likewise. 2661 (struct lang_decl_var) <wfl>: Removed field. 2662 (DECL_CONSTRUCTOR_CALLS): Removed. 2663 (DECL_FUNCTION_ACCESS_DECL): Likewise. 2664 (DECL_FUNCTION_INNER_ACCESS): Likewise. 2665 (DECL_SPECIFIC_COUNT): Likewise. 2666 * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed. 2667 * expr.c (build_expr_wfl): Removed. 2668 (expr_add_location): Likewise. 2669 26702007-01-12 Tom Tromey <tromey@redhat.com> 2671 2672 * jcf-dump.c (main): Updated call to find_class. 2673 * lang.c (java_init): Removed dead code. 2674 * jcf-parse.c (read_class): Don't use java_source field. Removed 2675 dead code. 2676 (parse_zip_file_entries): Don't use java_source field. 2677 (process_zip_dir): Likewise. 2678 (jcf_parse): Removed dead code. 2679 (java_parse_file): Likewise. 2680 (read_class): Updated call to find_class. 2681 * jcf-io.c (find_class): Don't use java_source field. Removed 2682 'source_ok' argument, .java logic. 2683 * jcf.h (JCF) <java_source>: Removed field. 2684 (JCF_ZERO): Updated. (find_class): Updated. 2685 * decl.c: Removed dead code. 2686 * class.c: Removed dead code. 2687 26882007-01-11 Tom Tromey <tromey@redhat.com> 2689 2690 * typeck.c (convert): Don't use flag_emit_class_files. 2691 * lang.c (java_post_options): Don't use flag_emit_class_files. 2692 (java_handle_option): Don't use flag_extraneous_semicolon or 2693 flag_redundant. 2694 * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use 2695 flag_emit_class_files. 2696 (load_class): Likewise. 2697 * java-tree.h (flag_emit_class_files): Don't declare. 2698 (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files. 2699 (flag_extraneous_semicolon): Don't declare. 2700 (flag_not_overriding): Likewise. 2701 (flag_static_local_jdk1_1): Likewise. 2702 (flag_redundant): Likewise. 2703 * expr.c (build_newarray): Don't use flag_emit_class_files. 2704 * class.c (DEFAULT_ENABLE_ASSERT): Don't use 2705 flag_emit_class_files. 2706 (build_class_ref): Likewise. 2707 * builtins.c (check_for_builtin): Don't use 2708 flag_emit_class_files. 2709 27102007-01-10 Tom Tromey <tromey@redhat.com> 2711 2712 * lang.c (java_can_use_bit_fields_p): Removed. 2713 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed. 2714 27152007-01-09 Andrew Haley <aph@redhat.com> 2716 2717 * expr.c (build_java_arrayaccess): Rewrite to generate array 2718 access in canonical form. 2719 (expand_java_arraystore): Use build_fold_addr_expr() on address of 2720 array access. 2721 27222007-01-03 Andrew Haley <aph@redhat.com> 2723 2724 PR java/28754 2725 * expr.c (expand_java_field_op): If we're initializing a field's 2726 declaring interface we should not also initialize the class 2727 context in which it was referenced. 2728 27292007-01-02 Tom Tromey <tromey@redhat.com> 2730 2731 * java-tree.h (compiling_from_source, current_encoding, 2732 JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE, 2733 JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE, 2734 JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE, 2735 JTI_WFL_OPERATOR): Removed 2736 (finit_identifier_node, instinit_identifier_node, 2737 length_identifier_node, super_identifier_node, 2738 continue_identifier_node, access0_identifier_node, wfl_operator): 2739 Removed. 2740 (cyclic_inheritance_report, 2741 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND, 2742 DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR, 2743 DECL_FIXED_CONSTRUCTOR_P): Removed. 2744 (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>: 2745 Removed. 2746 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST, 2747 TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed. 2748 (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block, 2749 import_list, import_demand_list>: Removed. 2750 (java_layout_seen_class_methods, init_jcf_parse, init_src_parse, 2751 cxx_keyword_p): Removed. 2752 (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P, 2753 TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED, 2754 CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P, 2755 IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME, 2756 IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT, 2757 PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P, 2758 CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P, 2759 LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR, 2760 RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P, 2761 IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER, 2762 NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P, 2763 PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P, 2764 CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P, 2765 CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P, 2766 FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT, 2767 BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count, 2768 java_parse_abort_on_error, extract_field_decl): Removed. 2769 (finput): Declare. 2770 * lang.c: (compiling_from_source, current_encoding): Removed. 2771 (java_handle_option): Ignore -fencoding. 2772 * parse.h: Don't include lex.h. 2773 (java_error_count, int_fits_type_p, stabilize_reference, RULE, 2774 RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW, 2775 YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS, 2776 INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS, 2777 INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS, 2778 MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context, 2779 ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class, 2780 CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME, 2781 OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2, 2782 BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P, 2783 JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P, 2784 JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P, 2785 IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS, 2786 MANGLE_OUTER_LOCAL_VARIABLE_NAME, 2787 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID, 2788 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING, 2789 SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS, 2790 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP, 2791 AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION, 2792 AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION, 2793 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC, 2794 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED, 2795 LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK, 2796 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY, 2797 LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, 2798 PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS, 2799 IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE, 2800 ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER, 2801 INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE, 2802 INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL, 2803 JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS, 2804 JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE, 2805 JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct 2806 jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, 2807 JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET, 2808 STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE, 2809 BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL, 2810 EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE, 2811 GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0, 2812 COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND, 2813 BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR, 2814 PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED, 2815 CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT, 2816 CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P, 2817 GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE, 2818 GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC, 2819 GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC, 2820 PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST, 2821 CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST, 2822 CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT, 2823 CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT, 2824 SET_CPC_STATIC_INITIALIZER_STMT, 2825 SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG, 2826 java_complete_class, java_check_circular_reference, 2827 java_fix_constructors, java_layout_classes, java_reorder_fields, 2828 java_method_add_stmt, java_get_line_col, reset_report, 2829 java_init_lex, yyparse, java_parse, yyerror, java_expand_classes, 2830 java_finish_classes, ctxp, ctxp_for_generation, 2831 ctxp_for_generation_last): Removed. 2832 * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR. 2833 * mangle.c (utf8_cmp): New function. 2834 (cxx_keywords): New global. 2835 (cxx_keyword_p): New function. 2836 * jvspec.c (JAVA_START_CHAR): Removed obsolete comment. 2837 * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, 2838 NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR, 2839 CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR, 2840 THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT, 2841 CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed. 2842 * Make-lang.in (java.srcextra): Do nothing. 2843 (parse.c, keyword.h, gt-java-parse.h): Removed targets. 2844 (JAVA_OBJS): Don't mention deleted files. 2845 (java.mostlyclean): Likewise. 2846 (java.clean): Likewise. 2847 (JAVA_LEX_C): Removed. 2848 (buffer.o, check-init.o, parse.o): Remove unused targets. 2849 (typeck.o): Updated. 2850 * jcf-parse.c (read_class): Comment out unused code. 2851 (java_layout_seen_class_methods): New function. 2852 (parse_source_file_1, parse_source_file_2, parse_source_file_3): 2853 Removed. 2854 (java_parse_file): Comment out unused code. Don't use 'ctxp'. 2855 (init_jcf_parse): Removed. 2856 * config-lang.in (gtfiles): Remove deleted files. 2857 * decl.c (java_init_decl_processing): Don't initialize 2858 finit_identifier_node, instinit_identifier_node, 2859 length_identifier_node, super_identifier_node, 2860 continue_identifier_node, access0_identifier_node. Don't call 2861 init_jcf_parse. 2862 * class.c (cyclic_inheritance_report): New global. 2863 (add_method_1): Don't use 2864 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND. 2865 (maybe_layout_super_class): Comment out code. 2866 (safe_layout_class): New function. 2867 * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR, 2868 DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR, 2869 UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR, 2870 NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR, 2871 INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR. 2872 (java_gimplify_case_expr): Removed. 2873 (java_gimplify_default_expr): Likewise. 2874 (java_gimplify_new_array_init): Likewise. 2875 * parse.y: Removed. 2876 * keyword.gperf, keyword.h: Removed. 2877 * chartables.h: Removed. 2878 * check-init.c: Removed. 2879 * buffer.c, buffer.h: Removed. 2880 * convert.h: Removed. 2881 * gen-table.pl: Removed. 2882 * lex.c, lex.h: Removed. 2883 28842007-01-02 Andrew Haley <aph@redhat.com> 2885 2886 * expr.c (expand_java_arraystore): Make sure we perform a bounds 2887 check at runtime before we perform a type check. 2888 28892006-12-19 Andrew Haley <aph@redhat.com> 2890 2891 * decl.c: Bump minor BC ABI version. 2892 28932006-12-13 Gary Benson <gbenson@redhat.com> 2894 2895 * jcf-depend.c (jcf_dependency_add_file): Mark filename unused. 2896 28972006-12-12 Tom Tromey <tromey@redhat.com> 2898 2899 * lang-specs.h: Pass -M options to jc1. 2900 * jcf-depend.c (jcf_dependency_add_file): Don't emit 2901 dependencies. 2902 29032006-12-07 Mohan Embar <gnustuff@thisiscool.com> 2904 2905 * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR. 2906 29072006-12-06 Mohan Embar <gnustuff@thisiscool.com> 2908 2909 * lang-specs.h: Pass '%U'-based options as separate arguments. 2910 29112006-12-05 Tom Tromey <tromey@redhat.com> 2912 2913 PR java/29495: 2914 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and 2915 classes as well. 2916 * class.c (add_field): Handle ACC_SYNTHETIC. 2917 (add_method_1): Likewise. Handle bridge and varargs. 2918 (get_access_flags_from_decl): Handle synthetic, bridge, varargs, 2919 annotation. 2920 (set_class_decl_access_flags): Handle synthetic and annotation. 2921 * java-tree.h (METHOD_BRIDGE): New macro. 2922 (METHOD_VARARGS): Likewise. 2923 (TYPE_SYNTHETIC): Likewise. 2924 (TYPE_ANNOTATION): Likewise. 2925 (lang_type): New fields 'synthetic' and 'annotation'. 2926 (lang_decl_func): New fields 'varargs' and 'bridge'. 2927 29282006-12-04 Andrew Haley <aph@redhat.com> 2929 2930 * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if 2931 there's no map. 2932 29332006-11-29 Gary Benson <gbenson@redhat.com> 2934 2935 * expr.c (rewrite_arglist_getcaller): Reorder. 2936 29372006-11-29 Andrew Haley <aph@redhat.com> 2938 2939 * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE. 2940 * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE. 2941 29422006-11-23 Andrew Haley <aph@redhat.com> 2943 2944 * expr.c (rewrite_arglist_getcaller): New. 2945 (rewrite_arglist_getclass): Fix indentation. 2946 (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and 2947 gnu.classpath.VMStackWalker.getCallingClassLoader(). 2948 * builtins.c (initialize_builtins): Remove duplicate def'n of 2949 __sync_synchronize. 2950 Add __builtin_return_address. 2951 29522006-11-22 Andrew Haley <aph@redhat.com> 2953 2954 * jcf-reader.c (get_attribute): Mark attr_type unused. 2955 2956 * builtins.c (compareAndSwapObject_builtin): Fix declaration. 2957 29582007-01-08 Richard Guenther <rguenther@suse.de> 2959 2960 * lex.c (do_java_lex): Use build_int_cst_wide_type. 2961 * jcf-parse.c (get_constant): Likewise. 2962 29632006-11-12 Jan Hubicka <jh@suse.cz> 2964 2965 * resource.c (compile_resource_data): Update for new varpool names. 2966 * java/class.c (build_utf8_ref): Likewise. 2967 29682006-11-12 David Daney <ddaney@avtrex.com> 2969 2970 PR java/29805 2971 * typeck.c (build_java_array_type): Increase buffer sizes. 2972 29732006-11-11 Richard Guenther <rguenther@suse.de> 2974 2975 * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR, 2976 FIX_FLOOR_EXPR and FIX_ROUND_EXPR. 2977 29782006-11-06 Andrew Haley <aph@redhat.com> 2979 2980 * java-tree.h (CONSTANT_LazyFlag): New. 2981 * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag. 2982 * jcf-parse.c (handle_innerclass_attribute): Write attribute to 2983 reflection_data. 2984 (handle_constant): Return 0 for dummy cpool entries. 2985 Handle constants of kind Class. 2986 Handle constants of kind NameAndType. 2987 (handle_enclosingmethod_attribute): New. 2988 (handle_signature_attribute): New. 2989 (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New. 2990 (HANDLE_SIGNATURE_ATTRIBUTE): New. 2991 (handle_constant): Use unmangle_classname()rather than calling 2992 identifier_subst() directly. 2993 29942006-11-02 Andrew Haley <aph@redhat.com> 2995 2996 * java-tree.h (FIELD_ENUM): New. 2997 (lang_decl_var.field_enum): New. 2998 (lang_type.enum_class): New. 2999 (CLASS_ENUM): New. 3000 * class.c (set_class_decl_access_flags): Handle enum types. 3001 (add_field): Handle enum fields. 3002 (get_access_flags_from_decl): Likewise. 3003 3004 * class.c (make_class_data): Put reflection_data into rodata. 3005 30062006-11-01 Andrew Haley <aph@redhat.com> 3007 3008 * jcf-parse.c (field_offsets, bit_obstack): New variables. 3009 (jcf_parse): Write end marker to annotation_data. 3010 (java_parse_file): Create field_offsets bitmap. Destroy it. 3011 (annotation_grow, annotation_rewrite_byte) 3012 (annotation_rewrite_short, annotation_rewrite_int) 3013 (annotation_read_short, annotation_write_byte) 3014 (annotation_write_short, annotation_write_int) 3015 (handle_long_constant, handle_constant, handle_element_value) 3016 (handle_annotation, handle_annotations) 3017 (handle_annotation_attribute, rewrite_reflection_indexes) 3018 (handle_member_annotations, handle_parameter_annotations) 3019 (handle_default_annotation): New functions. 3020 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE) 3021 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE) 3022 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) 3023 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) 3024 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions. 3025 * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New. 3026 (TYPE_REFLECTION_DATA): New. 3027 (TYPE_REFLECTION_DATASIZE): New. 3028 * jcf.h (enum cpool_tag): Convert a bunch of #define constants to 3029 an enum. 3030 * jcf-reader.c (get_attribute): Pass field/method index and 3031 attribute type to get_attribute(). 3032 * constants.c (find_class_or_string_constant): Make nonstatic. 3033 (cpool_for_class): Likewise. 3034 (build_constants_constructor): Separate string and scalar types. 3035 * class.c (make_class_data): Generate field_indexes permutation. 3036 Pass it to rewrite_reflection_indexes(). 3037 (make_class_data): Generate constructor for reflection_data field. 3038 30392006-10-20 Tom Tromey <tromey@redhat.com> 3040 3041 * gcj.texi (Top): Don't mention jv-scan. 3042 (Invoking gcj): Likewise. 3043 (Invoking gcjh): Likewise. 3044 (Invoking gjnih): Likewise. 3045 (Invoking gij): Likewise. 3046 (Invoking gcj-dbtool): Likewise. 3047 (Invoking jv-scan): Removed. 3048 * parse-scan.y: Removed. 3049 * jv-scan.c: Removed. 3050 * config-lang.in (stagestuff): Don't mention jv-scan. 3051 * Make-lang.in (java): Removed jv-scan. 3052 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise. 3053 (JVSCAN_OBJS): Removed. 3054 (jv-scan$(exeext)): Likewise. 3055 (JAVA_MANFILES): Removed jv-scan.1. 3056 (java.uninstall): Don't mention jv-scan. 3057 (java.mostlyclean): Likewise. 3058 (java.maintainer-clean): Likewise. 3059 (.INTERMEDIATE): Likewise. 3060 (java/jv-scan.o): Removed. 3061 (jv-scan.pod): Likewise. 3062 (java.srcextra): Don't mention parse-scan.c. 3063 (java.mostlyclean): Likewise. 3064 (java/parse-scan.c): Removed. 3065 (java/parse-scan.o-warn): Removed. 3066 (java/parse-scan.o): Removed. 3067 30682006-10-20 Tom Tromey <tromey@redhat.com> 3069 3070 * lang.c (java_handle_option): Don't use 3071 jcf_write_base_directory. 3072 * jcf.h (jcf_write_base_directory): Removed. 3073 * parse.y (java_expand_classes): Don't call write_classfile. 3074 * config-lang.in (gtfiles): Removed jcf-write.c. 3075 * Make-lang.in (JAVA_OBJS): Removed jcf-write.o. 3076 (java/jcf-write.o): Removed. 3077 * jcf-parse.c (parse_class_file): Don't call write_classfile. 3078 * java-tree.h (write_classfile): Removed declaration. 3079 * jcf-write.c: Removed. 3080 30812006-10-20 Tom Tromey <tromey@redhat.com> 3082 3083 * Make-lang.in (java): Removed gjnih, gcjh. 3084 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise. 3085 (GCJH_OBJS): Removed. 3086 (GJNIH_OBJS): Likewise. 3087 (gjnih$(exeext)): Likewise. 3088 (gcjh$(exeext)): Likewise. 3089 (JAVA_MANFILES): Removed gcjh.1, gjnih.1. 3090 (java.install-common): Don't special case gcjh. 3091 (java.uninstall): Don't mention gcjh, gjnih. 3092 (java.mostlyclean): Likewise. 3093 (java.maintainer-clean): Likewise. 3094 (.INTERMEDIATE): Likewise. 3095 (gcjh.pod): Removed. 3096 (gjnih.pod): Likewise. 3097 (GCJH_TARGET_INSTALL_NAME): Removed. 3098 (java/gjavah-jni.o): Removed. 3099 (java/gjavah.o): Likewise. 3100 * config-lang.in (stagestuff): Removed gjnih, gcjh. 3101 * gjavah.c: Removed. 3102 31032006-10-17 Tom Tromey <tromey@redhat.com> 3104 3105 * jcf-dump.c (print_element_value): Expect a utf8 constant in the 3106 "string" case. 3107 31082006-10-17 Tom Tromey <tromey@redhat.com> 3109 3110 * jvgenmain.c (main): Handle -findirect-dispatch. 3111 * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to 3112 jvgenmain. 3113 31142006-10-06 Andrew Haley <aph@redhat.com> 3115 3116 * builtins.c (compareAndSwapInt_builtin): Check that we really do 3117 have a compare_and_swap builtin. 3118 (compareAndSwapLong_builtin): Likewise. 3119 (compareAndSwapObject_builtin): Likewise. 3120 31212006-10-04 Andrew Haley <aph@redhat.com> 3122 3123 * builtins.c (java_builtins): Add compareAndSwapInt, 3124 compareAndSwapLong, compareAndSwapObject, putOrderedInt, 3125 putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile, 3126 putObjectVolatile, getObjectVolatile, getIntVolatile, 3127 getLongVolatile, getLong. 3128 (UNMARSHAL3): New macro. 3129 (UNMARSHAL4): Likewise. 3130 (UNMARSHAL5): Likewise. 3131 (build_arglist_for_builtin): New function. 3132 (build_addr_sum, build_check_this): New functions. 3133 (putObject_builtin. compareAndSwapInt_builtin, 3134 compareAndSwapLong_builtin, compareAndSwapObject_builtin, 3135 putVolatile_builtin, getVolatile_builtin): New builtins. 3136 31372006-06-08 Andrew Haley <aph@redhat.com> 3138 3139 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to 3140 get_symbol_table_index(). 3141 (maybe_rewrite_invocation): Set SPECIAL if we need to access a 3142 private method. 3143 (build_known_method_ref): New arg: special. Pass it to 3144 get_symbol_table_index. 3145 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of 3146 the method list. 3147 (build_invokevirtual): New arg: special. Pass it to 3148 get_symbol_table_index. 3149 (expand_invoke): New variable: special. 3150 Pass it to maybe_rewrite_invocation(). 3151 Pass it to build_known_method_ref(). 3152 * class.c (build_symbol_entry): Add new arg: special. Use it to 3153 build the symbol table conbstructor. 3154 (emit_symbol_table): Extract SPECIAL from the method list and pass 3155 it to build_symbol_entry(). 3156 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set 3157 special accordingly. 3158 31592006-09-08 Andrew Haley <aph@redhat.com> 3160 3161 * class.c (layout_class_method): Use build_java_signature, not 3162 build_java_argument_signature. Use lookup_java_method, not 3163 lookup_argument_method. 3164 31652006-08-16 Jakub Jelinek <jakub@redhat.com> 3166 Bryce McKinlay <bryce@mckinlay.net.nz> 3167 3168 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed. 3169 31702006-07-18 Tom Tromey <tromey@redhat.com> 3171 3172 * lang.opt: Added missing -W options. 3173 31742006-07-12 Tom Tromey <tromey@redhat.com> 3175 3176 PR java/28329: 3177 * lang-specs.h: Pass '%U'-based options as separate arguments. 3178 Use -faux-classpath. 3179 * lang.c (java_handle_option): Handle OPT_faux_classpath. 3180 * lang.opt (faux-classpath): New option. 3181 31822006-07-07 Tom Tromey <tromey@redhat.com> 3183 3184 * class.c (make_class_data): Set value for reflection_data field. 3185 * decl.c (java_init_decl_processing): Add reflection_data field. 3186 31872006-07-07 Tom Tromey <tromey@redhat.com> 3188 3189 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals 3190 earlier. 3191 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise. 3192 31932006-07-07 Andrew Haley <aph@redhat.com> 3194 3195 * jcf-parse.c (set_source_filename): Don't check for 3196 CLASS_FROM_CURRENTLY_COMPILED_P. 3197 Remove // comments. 3198 31992006-07-07 Andrew Haley <aph@redhat.com> 3200 3201 * java-tree.h (java_read_sourcefilenames): Declare. 3202 * lang.c (java_handle_option): Call java_read_sourcefilenames(). 3203 * lang.opt (fsource-filename): New opt. 3204 * lang-specs.h: Add -fsource-filename. 3205 * jcf-parse.c (num_files, filenames): New variables. 3206 (reverse, cmpstringp, java_read_sourcefilenames, 3207 find_sourcefile): New. 3208 (set_source_filename): Call find_sourcefile to find the real name 3209 of a source file. 3210 32112006-06-27 Tom Tromey <tromey@redhat.com> 3212 3213 * jcf-reader.c (get_attribute): Handle EnclosingMethod, 3214 Signature, LocalVariableTypeTable, annotation attributes. 3215 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro. 3216 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise. 3217 (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'. 3218 (HANDLE_METHOD): Likewise. 3219 (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro. 3220 (print_annotation): New function. 3221 (print_element_value): Likewise. 3222 (indent): Likewise. 3223 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro. 3224 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise. 3225 (print_parameter_annotations): New function. 3226 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro. 3227 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): 3228 Likewise. 3229 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise. 3230 (print_annotations): New function. 3231 32322006-06-23 Tom Tromey <tromey@redhat.com> 3233 3234 * lang-specs.h: Default -fsource and -ftarget to 1.5. If 3235 emitting class files, always use 1.5. 3236 * gcj.texi (Input Options): Document -fsource. 3237 (Code Generation): Document -ftarget. 3238 32392006-06-21 Tom Tromey <tromey@redhat.com> 3240 3241 PR java/28089: 3242 * expr.c (expand_java_field_op): Initialize field's declaring 3243 class. 3244 32452006-06-20 Tom Tromey <tromey@redhat.com> 3246 3247 * expr.c (push_value): Always flush quick stack. 3248 32492006-06-19 Tom Tromey <tromey@redhat.com> 3250 3251 * expr.c (push_value): Also flush quick stack if value is a 3252 component_ref. 3253 32542006-06-19 Tom Tromey <tromey@redhat.com> 3255 3256 * expr.c (push_value): Flush quick stack if value has side 3257 effects. 3258 32592006-06-13 Tom Tromey <tromey@redhat.com> 3260 3261 * class.c (is_compiled_class): Explicitly check for current 3262 class. 3263 32642006-06-09 Tom Tromey <tromey@redhat.com> 3265 3266 * gjavah.c (decompile_method): Don't decompile a static field 3267 accessor method. 3268 32692006-06-06 Tom Tromey <tromey@redhat.com> 3270 3271 * lang-specs.h <jc1>: Add .jar file to command line if 3272 -fsaw-java-file. Also, remove -ffilelist-file in this case. 3273 32742006-06-05 Tom Tromey <tromey@redhat.com> 3275 3276 * jcf-dump.c (print_access_flags): Handle varargs, bridge, 3277 synthetic, enum, annotation. 3278 * jcf.h (ACC_BRIDGE): New macro. 3279 (ACC_VARARGS): Likewise. 3280 (ACC_SYNTHETIC): Likewise. 3281 (ACC_ENUM): Likewise. 3282 (ACC_ANNOTATION): Likewise. 3283 32842006-06-04 Tom Tromey <tromey@redhat.com> 3285 3286 * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options. 3287 * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource, 3288 and -ftarget. 3289 (lang_specific_driver): Removed dead code. Add -fsaw-java-file 3290 when needed. Handle classpath-setting. 3291 * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o. 3292 * lang-specs.h: Rewrote. 3293 32942006-06-04 Tom Tromey <tromey@redhat.com> 3295 3296 * jcf-io.c (find_class): Set source_ok to 0. 3297 * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning. 3298 (parse_class_file): Don't call java_mark_class_local. 3299 (java_parse_file): Skip .java files. Call java_mark_class_local 3300 before lowering any code. 3301 (parse_zip_file_entries): Don't call duplicate_class_warning 3302 here. 3303 (process_zip_dir): ... call it here. 3304 * class.c (add_field): Don't mark field external if it is being 3305 compiled into this object. 3306 (make_class_data): Handle situation where class_dtable_decl is 3307 created before Class is compiled. 3308 (is_compiled_class): Don't assume files in zip are compiled into 3309 this object. 3310 (layout_class_method): Don't mark method external if it is being 3311 compiled into this object. 3312 33132006-06-04 Tom Tromey <tromey@redhat.com> 3314 3315 * jcf-path.c (jcf_path_compute): New function. 3316 * jcf.h (jcf_path_compute): Declare. 3317 33182006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3319 3320 * decl.c: Include langhooks.h. 3321 (builtin_function): Remove. 3322 (java_init_decl_processing): Replace calls to builtin_function 3323 with add_builtin_function. 3324 * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o. 3325 (java/decl.o): Depend on langhooks.h. 3326 * java-tree.h (builtin_function): Remove. 3327 33282006-10-10 Brooks Moses <bmoses@stanford.edu> 3329 3330 * Make-lang.in: Added "java.pdf", "gcj.pdf" target support. 3331 33322006-09-12 Tom Tromey <tromey@redhat.com> 3333 3334 * expr.c (push_value): Always flush quick stack. 3335 33362006-09-12 Tom Tromey <tromey@redhat.com> 3337 3338 PR java/29013: 3339 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note 3340 the push of the called method's return result. 3341 33422006-09-12 Tom Tromey <tromey@redhat.com> 3343 3344 * jvspec.c (lang_specific_driver): Read spec file even if 3345 -fsyntax-only. 3346 33472006-09-12 Tom Tromey <tromey@redhat.com> 3348 3349 PR java/28754: 3350 * expr.c (expand_java_field_op): Initialize field's declaring 3351 interface if necessary. 3352 33532006-09-12 Tom Tromey <tromey@redhat.com> 3354 3355 PR java/28892: 3356 * expr.c (expand_java_field_op): No error for assignments not in 3357 class initializer or constructor. 3358 33592006-08-22 Andrew Haley <aph@redhat.com> 3360 3361 * decl.c (java_add_stmt): Give the statement list a type. 3362 33632006-08-16 Jakub Jelinek <jakub@redhat.com> 3364 Bryce McKinlay <bryce@mckinlay.net.nz> 3365 3366 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed. 3367 33682006-08-10 Simon Martin <simartin@users.sourceforge.net> 3369 3370 PR java/8923 3371 * parse.y (build_incdec): Emit an error instead of an ICE if '++' 3372 or '--' is used with a constant operand. 3373 (java_complete_lhs): When processing a '++' or '--' expression, 3374 don't call java_complete_tree but java_complete_lhs, so that a 3375 static final variable operand is never replaced by its value. This 3376 avoids an ICE later on. 3377 (patch_unaryop): Fixed typo in comment. 3378 33792006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3380 3381 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 3382 33832006-07-12 Bryce McKinlay <mckinlay@redhat.com> 3384 3385 * builtins.c (check_for_builtin): If a builtin could result in a 3386 direct call being generated, don't use it if flag_indirect_dispatch 3387 is set. 3388 33892006-07-12 Bryce McKinlay <mckinlay@redhat.com> 3390 3391 * gcj.texi (Invocation): Corrections for Invocation API example. 3392 33932006-07-04 Andrew Haley <aph@redhat.com> 3394 3395 * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the 3396 entry. 3397 33982006-06-21 Andrew Haley <aph@redhat.com> 3399 3400 * java-tree.h (update_aliases): Remove 3401 * expr.c (expand_iinc): Remove call to update_aliases(). 3402 (STORE_INTERNAL): Likewise. 3403 * decl.c (update_aliases, initialize_local_variable) 3404 (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls. 3405 34062006-06-19 Andrew Haley <aph@redhat.com> 3407 3408 PR java/1305 3409 PR java/27908 3410 * expr.c (java_modify_addr_for_volatile): New function. 3411 (expand_java_field_op): Handle volatile fields. 3412 * java-gimplify.c (java_gimplify_component_ref): Call 3413 java_modify_addr_for_volatile to give the field_ref the correct 3414 volatile type. 3415 (java_gimplify_modify_expr): Likewise. 3416 * java-tree.h (java_modify_addr_for_volatile): New decl. 3417 34182006-06-17 Karl Berry <karl@gnu.org> 3419 3420 * gcj.texi (@dircategory): Use "Software development" instead 3421 of "Programming", following the Free Software Directory. 3422 34232006-06-16 Andrew Haley <aph@redhat.com> 3424 3425 * class.c (make_class_data): When using flag_indirect_classes, 3426 don't initialize the vtable of Class instances. 3427 34282006-06-09 Andrew Haley <aph@redhat.com> 3429 3430 PR java/1305 3431 PR java/27908 3432 * builtins.c (initialize_builtins): Add __sync_synchronize(). 3433 * class.c (add_field): Mark volatile fields. 3434 * java-gimplify.c (java_gimplify_expr): Call new functions to 3435 handle self-modifying exprs and COMPONENT_REFs. 3436 (java_gimplify_component_ref): New. 3437 (java_gimplify_modify_expr): Add handling for volatiles. 3438 34392006-06-08 Tom Tromey <tromey@redhat.com> 3440 3441 * gcj.texi (libgcj Runtime Properties): Document 3442 gnu.gcj.user.realname. 3443 34442006-06-08 Andrew Haley <aph@redhat.com> 3445 3446 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to 3447 get_symbol_table_index(). 3448 (maybe_rewrite_invocation): Set SPECIAL if we need to access a 3449 private method. 3450 (build_known_method_ref): New arg: special. Pass it to 3451 get_symbol_table_index. 3452 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of 3453 the method list. 3454 (build_invokevirtual): New arg: special. Pass it to 3455 get_symbol_table_index. 3456 (expand_invoke): New variable: special. 3457 Pass it to maybe_rewrite_invocation(). 3458 Pass it to build_known_method_ref(). 3459 * class.c (build_symbol_entry): Add new arg: special. Use it to 3460 build the symbol table conbstructor. 3461 (emit_symbol_table): Extract SPECIAL from the method list and pass 3462 it to build_symbol_entry(). 3463 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set 3464 special accordingly. 3465 34662006-06-06 David Daney <ddaney@avtrex.com> 3467 3468 * gcj.texi (libgcj Runtime Properties): Document 3469 gnu.gcj.runtime.NameFinder.show_raw and 3470 gnu.gcj.runtime.NameFinder.remove_unknown. 3471 34722006-06-06 Tom Tromey <tromey@redhat.com> 3473 3474 * jcf-dump.c (print_access_flags): Handle varargs, bridge, 3475 synthetic, enum, annotation. 3476 * jcf.h (ACC_BRIDGE): New macro. 3477 (ACC_VARARGS): Likewise. 3478 (ACC_SYNTHETIC): Likewise. 3479 (ACC_ENUM): Likewise. 3480 (ACC_ANNOTATION): Likewise. 3481 34822006-06-06 Mike Stump <mrs@apple.com> 3483 3484 * Make-lang.in: Rename to htmldir to build_htmldir to avoid 3485 installing during build. 3486 34872006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com> 3488 3489 * gcj.texi (Extensions): Document the new gcj-dbtool-based 3490 classname-to-library resolution mechanism. 3491 Declare the old gnu.gcj.runtime.VMClassLoader.library_control 3492 mechanism deprecated. 3493 (libgcj Runtime Properties): Document 3494 gnu.gcj.runtime.VMClassLoader.library_control's new default. 3495 34962006-05-29 Jakub Jelinek <jakub@redhat.com> 3497 3498 * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64) 3499 bit wide type. 3500 (jword): Define to uint64 on 64-bit arches. 3501 * jcf-dump.c (print_constant): Cast JPOOL_UINT to long. 3502 35032006-05-28 Kazu Hirata <kazu@codesourcery.com> 3504 3505 * class.c, except.c, expr.c, java-gimplify.c: Fix comment 3506 typos. 3507 35082006-05-26 Tom Tromey <tromey@redhat.com> 3509 3510 * expr.c (java_push_constant_from_pool): Handle 'ldc class'. 3511 * verify-glue.c (vfy_class_type): New function. 3512 * verify-impl.c (check_constant): Allow 'ldc class'. 3513 * verify.h (vfy_class_type): Declare. 3514 35152006-05-25 Andrew Haley <aph@redhat.com> 3516 3517 PR java/27756 3518 * decl.c (maybe_pushlevels): When variable ranges are non-nested 3519 update all lifetimes, not just the first one. 3520 35212006-05-24 Tom Tromey <tromey@redhat.com> 3522 3523 * java-tree.h: Fixed flag documentation. 3524 35252006-05-24 Tom Tromey <tromey@redhat.com> 3526 3527 PR libgcj/27729: 3528 * jcf.h (ACC_INVISIBLE): Changed value. 3529 35302006-05-24 Andrew Haley <aph@redhat.com> 3531 3532 PR java/27754 3533 * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a 3534 COMPOUND_EXPR. 3535 35362006-05-16 H.J. Lu <hongjiu.lu@intel.com> 3537 3538 * lang.opt (femit-class-file): Remove VarExists. 3539 35402006-05-16 Tom Tromey <tromey@redhat.com> 3541 3542 * verify-impl.c (verify_instructions_0) <op_return>: Special case 3543 for Object.<init>. 3544 35452006-05-16 H.J. Lu <hongjiu.lu@intel.com> 3546 3547 PR driver/26885 3548 * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with 3549 $(GCC_OBJS). 3550 35512006-05-14 H.J. Lu <hongjiu.lu@intel.com> 3552 3553 * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H). 3554 (java/expr.o): Replace target.h with $(TARGET_H). 3555 (java/parse.o): Likewise. 3556 35572006-05-10 Andrew Haley <aph@redhat.com> 3558 3559 * class.c (emit_indirect_register_classes): Fix comment. 3560 35612006-05-04 Tom Tromey <tromey@redhat.com> 3562 3563 * java-tree.h (uses_jv_markobj_p): Declare. 3564 * class.c (uses_jv_markobj_p): Removed. 3565 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define. 3566 (get_boehm_type_descriptor): Use it. 3567 (uses_jv_markobj_p): Moved from class.c. Return bool. 3568 35692006-05-04 Tom Tromey <tromey@redhat.com> 3570 3571 * java-tree.def (THIS_EXPR): Now a tcc_expression. 3572 35732006-05-04 Andrew Haley <aph@redhat.com> 3574 3575 * class.c (make_field_value): Always build_address_of fdecl if 3576 there is an initializer. 3577 35782006-05-03 Andrew Haley <aph@redhat.com> 3579 3580 PR libgcj/27352 3581 * expr.c (maybe_rewrite_invocation): New function. 3582 (rewrite_arglist_getclass): Likewise. 3583 (rules): New. 3584 (expand_invoke): Call maybe_rewrite_invocation. 3585 * parse.y (patch_invoke): Likewise. 3586 * java-tree.h: (maybe_rewrite_invocation): New function. 3587 35882006-04-21 Andrew Haley <aph@redhat.com> 3589 3590 * lang.c (java_init): Handle flag_indirect_classes. 3591 * jvgenmain.c: Use "class$$" instead of "class$". 3592 * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as 3593 DECLs. 3594 (mangle_class_field): Special case "class$$" as well as "class$". 3595 * constants.c (build_ref_from_constant_pool): If 3596 flag_indirect_classes, generate a ref into the heap. 3597 * decl.c (constants_field_decl_node, 3598 constants_data_field_decl_node): New. 3599 * class.c (build_static_class_ref): New. 3600 (build_classdollar_field): Factor out from build_class_ref(). 3601 (make_field_value): Handle static fields in heap. 3602 (make_class_data): Make sure we get a static ref to class. 3603 Make class initializer const if flag_indirect_classes. 3604 (register_class): Build a class_ref for initialization if 3605 flag_indirect_classes. 3606 (emit_indirect_register_classes): New. 3607 36082006-04-08 Kazu Hirata <kazu@codesourcery.com> 3609 3610 * expr.c, gjavah.c: Fix comment typos. 3611 36122006-04-03 Andrew Haley <aph@redhat.com> 3613 3614 PR java/26858 3615 * expr.c (build_field_ref): Don't check the field offset if 3616 flag_syntax_only. 3617 36182006-03-30 Andrew Haley <aph@redhat.com> 3619 3620 PR java/26858 3621 * lang.c (java_attribute_table): New. 3622 (LANG_HOOKS_ATTRIBUTE_TABLE): Define. 3623 * expr.c (build_field_ref): Add a null pointer check for all 3624 fields of offset > 4k. Don't do so for accesses via the this 3625 pointer, which we know can never be null. 3626 * class.c (build_java_method_type): Mark arg 1 of all nonstatic 3627 methods nonnull. 3628 36292006-03-30 Carlos O'Donell <carlos@codesourcery.com> 3630 3631 * Make-lang.in: Rename docdir to gcc_docdir. 3632 36332006-03-30 Tom Tromey <tromey@redhat.com> 3634 3635 PR java/26042: 3636 * parse.y (java_reorder_fields): Reset superclass field's size as 3637 well. 3638 36392006-03-28 Tom Tromey <tromey@redhat.com> 3640 3641 PR java/26390: 3642 * parse.y (find_most_specific_methods_list): Added 'class' 3643 argument. 3644 (lookup_method_invoke): Updated. 3645 36462006-03-15 Tom Tromey <tromey@redhat.com> 3647 3648 * jcf-write.c (generate_bytecode_insns): Use qualifying type for 3649 non-static method calls. 3650 36512006-03-15 David Daney <ddaney@avtrex.com> 3652 3653 * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its 3654 declaration. 3655 36562006-03-15 David Daney <ddaney@avtrex.com> 3657 3658 * lang.opt (-freduced-reflection): New option. 3659 * lang.c (java_post_options): Generate an error if 3660 -freduced-reflection used with -fjni or -findirect-dispatch. 3661 * java-tree.h (flag_reduced_reflection): Declare new variable. 3662 * boehm.c (get_boehm_type_descriptor): Indicate all pointers 3663 if bitmap overflows and flag_reduced_reflection set. 3664 * class.c (uses_jv_markobj_p): New function. 3665 (make_class_data): Moved generation of vtable to before 3666 reflection data, generate less reflection data if 3667 flag_reduced_reflection set. 3668 * gcj.texi: Document -freduced-reflection. 3669 36702006-03-15 Tom Tromey <tromey@redhat.com> 3671 3672 PR java/26638: 3673 * class.c (get_interface_method_index): Don't put <clinit> into 3674 interface table. 3675 36762006-03-15 Tom Tromey <tromey@redhat.com> 3677 3678 * parse.y (analyze_clinit_body): Ignore empty statements. 3679 36802006-03-08 David Daney <ddaney@avtrex.com> 3681 3682 * gcj.texi: Document -static-libgcj option. 3683 36842006-02-20 Andrew Haley <aph@redhat.com> 3685 3686 * jcf-parse.c (parse_class_file): Set input_location from 3687 current_class. 3688 36892006-02-15 Andrew Haley <aph@redhat.com> 3690 3691 * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here. 3692 (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL, 3693 TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here. 3694 36952006-02-09 Andrew Haley <aph@redhat.com> 3696 3697 PR java/26192 3698 * expr.c (expand_invoke): Allow methods in arrays to be resolved 3699 in their superclass. 3700 3701 * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for 3702 array types. 3703 37042006-02-08 Tom Tromey <tromey@redhat.com> 3705 3706 PR java/22578: 3707 * check-init.c (check_init): Handle VIEW_CONVERT_EXPR. 3708 * builtins.c (convert_real): New function. 3709 (java_builtins): Handle Float.intBitsToFloat, 3710 Float.floatToRawIntBits, Double.longBitsToDouble, 3711 Double.doubleToRawLongBits. 3712 37132006-02-07 Andrew Haley <aph@redhat.com> 3714 3715 * expr.c (expand_invoke): (BC mode.) If we find a method in a 3716 class other than the one in which we expected to find it, ignore 3717 the result. 3718 3719 PR java/25535 3720 * constants.c (build_constants_constructor): move initializer into 3721 first halfword on a 64-bit big-endian machine. 3722 37232006-02-04 Tom Tromey <tromey@redhat.com> 3724 3725 PR java/25676: 3726 * builtins.c (max_builtin): Skip floating point 'max'. 3727 (min_builtin): Skip floating point 'min'. 3728 (check_for_builtin): Never return NULL_TREE. 3729 37302006-02-04 Tom Tromey <tromey@redhat.com> 3731 3732 PR java/26097: 3733 * expr.c (push_type): Avoid side effect in gcc_assert. 3734 37352006-02-04 Roger Sayle <roger@eyesopen.com> 3736 3737 * decl.c (java_init_decl_processing): Create char_type_node as a 3738 regular INTEGER_TYPE node. 3739 (push_promoted_type): Preserve TYPE_STRING_FLAG on types. 3740 * typeck.c (convert): No longer check for CHAR_TYPEs but instead 3741 test for char_type_node and promoted_char_type_node as special 3742 instances of INTEGER_TYPE tree codes. 3743 (promote_type,build_java_signature): Likewise. 3744 * jcf-write.c (adjust_typed_op): Likewise. 3745 * mangle.c (mangle_type): Likewise. 3746 * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE. 3747 * parse.h (JINTEGRAL_TYPE_P): Likewise. 3748 37492006-02-04 Andreas Tobler <a.tobler@schweiz.ch> 3750 3751 * expr.c (java_stack_swap): Revert gcc_assert patch. 3752 37532006-02-03 Ben Elliston <bje@au.ibm.com> 3754 3755 * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout. 3756 * typeck.c: Likewise. 3757 * verify-impl.c: Likewise. 3758 * class.c: Likewise. 3759 * decl.c: Likewise. 3760 * jcf-parse.c: Likewise. 3761 * constants.c: Likewise. 3762 * check-init.c: Likewise. 3763 * jcf-write.c: Likewise. 3764 * verify-glue.c: Likewise. 3765 * mangle.c: Likewise. 3766 * expr.c: Likewise. 3767 * lang.c: Likewise. 3768 * boehm.c: Likewise. 3769 37702006-02-01 Jan Hubicka <jh@suse.cz> 3771 3772 * decl.c (end_java_method): Kill hack disabling unit-at-a-time. 3773 * lang.c (java_init_options): Set no_unit_at_a_time_default. 3774 37752006-01-30 Andrew Haley <aph@redhat.com> 3776 3777 PR java/21428 3778 * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this"). 3779 37802006-01-21 Joseph S. Myers <joseph@codesourcery.com> 3781 3782 * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version): 3783 Update copyright notice dates. 3784 37852006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3786 3787 * jvspec.c (lang_specific_spec_functions): Remove. 3788 37892006-01-06 Tom Tromey <tromey@redhat.com> 3790 3791 * gcj.texi (Arrays): Added more documentation for 3792 JvNewObjectArray. 3793 (Primitive types): Correct information about primitive classes. 3794 (Reference types): New node. 3795 (Index): New node. 3796 37972005-12-16 Alexandre Oliva <aoliva@redhat.com> 3798 3799 * jcf-parse.c (set_source_filename): Set the decl source location 3800 even when returning early. 3801 38022005-12-15 Tom Tromey <tromey@redhat.com> 3803 Andrew Haley <aph@redhat.com> 3804 3805 PR java/25429 3806 * parse.y (resolve_expression_name): Don't generate accessor 3807 methods for constant fields. 3808 38092005-12-13 Andrew Haley <aph@redhat.com> 3810 3811 PR java/25366 3812 PR java/25368 3813 * class.c (maybe_layout_super_class): Update current_class before 3814 calling do_resolve_class. 3815 38162005-12-12 H.J. Lu <hongjiu.lu@intel.com> 3817 3818 PR java/25330 3819 * jcf-write.c (write_classfile): Use PID in temporary class 3820 file. Save/restore errno when reporting error. 3821 38222005-12-10 Terry Laurenzo <tlaurenzo@gmail.com> 3823 3824 PR java/9861 3825 * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J' 3826 to bare_function_type and including the return type 3827 * builtins.c (initialize_builtins) : Change builtin mangled name 3828 constants to conform to new mangling scheme 3829 38302005-12-08 Andrew Haley <aph@redhat.com> 3831 3832 PR libgcj/25265 3833 * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE. 3834 (soft_abstractmethod_node): New. 3835 * expr.c (build_field_ref): Add in-line check for missing field. 3836 * decl.c (java_init_decl_processing): Add soft_nosuchfield_node. 3837 38382005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3839 3840 * Make-lang.in (java.all.build, java.install-normal): Remove. 3841 38422005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 3843 3844 * Make-lang.in: Remove all dependencies on s-gtype, except for 3845 gt-java-parse.h. 3846 38472005-12-07 Richard Sandiford <richard@codesourcery.com> 3848 3849 * class.c (build_utf8_ref, emit_register_classes): Use 3850 switch_to_section and get_section. 3851 38522005-12-06 Tom Tromey <tromey@redhat.com> 3853 3854 PR java/25283: 3855 * parse.y (patch_new_array_init): Revert previous patch. 3856 (lookup_method_invoke): Use size-less array type when creating an 3857 anonymous constructor. 3858 38592005-12-05 Tom Tromey <tromey@redhat.com> 3860 3861 * parse.y (patch_new_array_init): Don't set length on array. 3862 38632005-12-02 Richard Guenther <rguenther@suse.de> 3864 3865 * java-gimplify.c (java_gimplify_labeled_block_expr): Use 3866 buildN instead of build. 3867 * class.c (finish_class): Likewise. 3868 * expr.c (java_create_object): Likewise. 3869 38702005-11-28 Tom Tromey <tromey@redhat.com> 3871 3872 PR java/18278: 3873 * expr.c (build_jni_stub): Unwrap the return value. 3874 * java-tree.h (soft_unwrapjni_node): New define. 3875 (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE. 3876 * decl.c (java_init_decl_processing): Initialize 3877 soft_unwrapjni_node. 3878 38792005-11-24 Bryce McKinlay <mckinlay@redhat.com> 3880 3881 * gcj.texi (gij options): Add -Xss documentation. 3882 38832005-11-08 Wil Mahan <wmahan@gmail.com> 3884 3885 PR java/23617 3886 * zextract.c (read_zip_archive): Fix out of memory error when 3887 reading jar files with zip-style comments. 3888 38892005-11-07 Terry Laurenzo <tlaurenzo@gmail.com> 3890 3891 * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object 3892 formats. 3893 * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED 3894 38952005-10-12 Nathan Sidwell <nathan@codesourcery.com> 3896 Wil Mahan <wmahan@gmail.com> 3897 3898 PR java/23620 3899 * class.c (make_class): Create empty binfo here. 3900 (set_super_info): Only create binfo if we have superclasses. 3901 39022005-10-03 Ranjit Mathew <rmathew@gcc.gnu.org> 3903 3904 PR java/24127 3905 * parse.y (method_header): Make the result of the rule a NULL_TREE 3906 when a parsing error occurs. 3907 39082005-09-29 Tom Tromey <tromey@redhat.com> 3909 3910 PR java/24120: 3911 * jcf-io.c (memoized_dirlist_hash): New function. 3912 (caching_stat): Use it. 3913 39142005-09-21 Ranjit Mathew <rmathew@gcc.gnu.org> 3915 3916 PR java/21418 3917 * class.c (inherits_from_p): Try to lay out super class 3918 if it is not already laid out. 3919 (maybe_layout_super_class): Handle the case where SUPER_CLASS 3920 is a NULL_TREE. 3921 39222005-09-18 James A. Morrison <phython@gcc.gnu.org> 3923 3924 * builtins.c (max_builtin, min_builtin, abs_builtin, 3925 java_build_function_call_expr): Use fold_buildN. 3926 * class.c (layout_class_method): Likewise. 3927 * expr.c (java_truthvalue_conversion, build_java_jsr, 3928 build_java_arrayaccess, expand_java_arrayload, expand_iinc, 3929 build_java_binop, build_field_ref, expand_compare, 3930 build_known_method_ref, build_invokevirtual, 3931 process_jvm_instruction): Likewise. 3932 * parse.y (patch_binop, patch_exit_expr): Likewise. 3933 * typeck.c (convert_ieee_real_to_integer): Likewise. 3934 (convert): Don't call fold after convert_ieee_real_to_integer. 3935 39362005-09-14 Bryce McKinlay <mckinlay@redhat.com> 3937 3938 PR java/23891 3939 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for 3940 the newly created type. Set import lists here, not in create_class. 3941 (jdep_resolve_class): Set current_class. 3942 (do_resolve_class): Use current_class's TYPE_PACKAGE to determine 3943 the current package context, not ctxp->package. 3944 (cicp_cache): Removed. 3945 (class_in_current_package): Simplify implementation using TYPE_PACKAGE. 3946 * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE. 3947 * java-tree.h (TYPE_PACKAGE): New macro. 3948 (struct lang_type): New member 'package'. 3949 39502005-09-09 Andrew Haley <aph@redhat.com> 3951 3952 PR libgcj/23182 3953 * expr.c (pop_type_0): If the expected type is object or ptr 3954 (i.e. void*), return the type of the object we just popped from 3955 the stack. 3956 39572005-09-06 Andrew Pinski <pinskia@physics.uc.edu> 3958 3959 * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's 3960 BLOCK_EXPR_BODY before returning the new BIND_EXPR. 3961 39622005-09-06 Kazu Hirata <kazu@codesourcery.com> 3963 3964 * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h, 3965 jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment 3966 typos. Follow spelling conventions. 3967 39682005-09-05 Ranjit Mathew <rmathew@hotmail.com> 3969 3970 PR java/23431 3971 * typeck.c (lookup_do): Look up interfaces for the original class, 3972 not the base class. 3973 * parse.y (java_check_regular_methods): Fix diagnostic message for 3974 more restrictive overriding of a method from an interface. 3975 39762005-08-16 Tom Tromey <tromey@redhat.com> 3977 3978 * class.c (make_class_data): Always emit JV_STATE_PRELOADING for 3979 class' initial state. 3980 39812005-08-16 Ranjit Mathew <rmathew@hotmail.com> 3982 3983 PR java/22113 3984 * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing 3985 `literal_token' for large numeric input tokens. 3986 39872005-08-16 Ranjit Mathew <rmathew@hotmail.com> 3988 3989 PR java/19870 3990 * parse.y (nested_field_access_p): Rename to nested_member_access_p 3991 and expand to handle method accesses across nested classes. 3992 (build_outer_method_access_method): Rename to 3993 build_nested_method_access_method. Minor adjustments to comments. 3994 (resolve_expression_name): Use the newly-renamed 3995 nested_member_access_p method. 3996 (resolve_qualified_expression_name): Likewise. 3997 (patch_method_invocation): Also consider static methods for access 3998 method generation. Minor adjustments to comments. 3999 (maybe_use_access_method): Use the more general 4000 nested_memeber_access_p to determine access across nested class 4001 boundaries. Allow THIS_ARG to be NULL (for static methods). 4002 40032005-08-15 Tom Tromey <tromey@redhat.com> 4004 4005 PR java/23300. 4006 * expr.c (build_field_ref): Don't generate otable reference when 4007 DECL_FIELD_OFFSET is 0. 4008 * class.c (maybe_layout_super_class): Pass outer class to 4009 do_resolve_class. 4010 40112005-08-15 Tom Tromey <tromey@redhat.com> 4012 4013 * java-tree.h (LABEL_IN_SUBR): Removed. 4014 (LABEL_IN_SUBR): Likewise. 4015 (LABEL_IS_SUBR_START): Likewise. 4016 (LABEL_SUBR_START): Likewise. 4017 (LABEL_SUBR_CONTEXT): Likewise. 4018 (LABEL_CHANGED): Likewise. 4019 (LABEL_RETURN_LABEL): Likewise. 4020 (LABEL_RETURN_TYPE_STATE): Likewise. 4021 (LABEL_RETURN_LABELS): Likewise. 4022 (RETURN_MAP_ADJUSTED): Likewise. 4023 (LABEL_PENDING_CHAIN): Likewise. 4024 40252005-08-15 Tom Tromey <tromey@redhat.com> 4026 4027 * Make-lang.in (JAVA_OBJS): Removed verify.o 4028 (java/verify.o): Removed. 4029 * verify.c: Removed. 4030 * lang.c (flag_new_verifier): Removed. 4031 (java_post_options): Updated. 4032 * java-tree.h (flag_new_verifier): Removed. 4033 (verify_jvm_instructions): Removed. 4034 * expr.c (pop_type_0): Assume flag_new_verifier is true. 4035 (build_java_check_indexed_type): Likewise. 4036 (expand_java_arraystore): Likewise. 4037 (expand_java_arrayload): Likewise. 4038 (pop_arguments): Likewise. 4039 (expand_byte_code): Likewise. 4040 (process_jvm_instruction): Likewise. 4041 40422005-08-10 Andrew Haley <aph@redhat.com> 4043 4044 * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer 4045 type mismatches to make legal GIMPLE. 4046 40472005-08-10 Robin Green <greenrd@greenrd.org> 4048 4049 PR java/23230: 4050 * parse.y (maybe_use_access_method): Generalize check from 4051 java.lang.Object to any superclass of current_class 4052 40532005-08-08 Nathan Sidwell <nathan@codesourcery.com> 4054 4055 * class.c (build_class_ref): Wrap the primary class type in a 4056 NOP_EXPR. 4057 * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the 4058 primary class type from the NOP_EXPR in which it was placed. 4059 40602005-07-28 Diego Novillo <dnovillo@redhat.com> 4061 4062 * expr.c (expand_load_internal): Fix missing parens in 4063 predicate. 4064 40652005-07-28 Andrew Haley <aph@redhat.com> 4066 4067 * expr.c (expand_load_internal): Convert to destination type. 4068 40692005-07-22 Manfred Hollstein <mh@suse.com> 4070 4071 * verify-impl.c (check_class_constant): Fix uninitialised warnings. 4072 (check_constant): Likewise. 4073 (check_wide_constant): Likewise. 4074 40752005-07-20 Giovanni Bajo <giovannibajo@libero.it> 4076 4077 Make CONSTRUCTOR use VEC to store initializers. 4078 * check-init.c (check_init): Update to cope with VEC in 4079 CONSTRUCTOR_ELTS. 4080 * class.c (make_field_value, make_method_value, get_dispatch_table, 4081 make_class_data, emit_symbol_table, emit_catch_table, 4082 emit_assertion_table): Use build_constructor_from_list instead of 4083 build_constructor. 4084 * constants.c (build_constants_constructor): Likewise. 4085 * java-gimplify.c (java_gimplify_new_array_init): Update to cope with 4086 VEC in CONSTRUCTOR_ELTS. 4087 * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE, 4088 PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead 4089 of a TREE_LIST. 4090 * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in 4091 CONSTRUCTOR_ELTS. 4092 * parse.y (build_new_array_init): Use build_constructor_from_list 4093 instead of build_constructor. 4094 (patch_new_array_init): Update to cope with VEC in 4095 CONSTRUCTOR_ELTS. 4096 (array_constructor_check_entry): Likewise. 4097 40982005-07-12 Tom Tromey <tromey@redhat.com> 4099 4100 * jvspec.c (lang_specific_driver): Put filelist_filename first on 4101 command line. 4102 41032005-07-12 Tom Tromey <tromey@redhat.com> 4104 4105 PR java/19674: 4106 * parse-scan.y (interface_member_declaration): Added 4107 empty_statement. 4108 41092005-07-08 Daniel Berlin <dberlin@dberlin.org> 4110 4111 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common. 4112 (LABEL_PENDING_CHAIN): Ditto. 4113 (LABEL_PC): Ditto. 4114 (DECL_BIT_INDEX): Ditto. 4115 41162005-07-07 Bryce McKinlay <mckinlay@redhat.com> 4117 4118 PR java/18119 4119 * parse.y (inner_class_accessible): New function. Logic moved from 4120 check_inner_class_access. 4121 (check_inner_class_access): Use inner_class_accessible. 4122 (resolve_inner_class): Simplify arguments. Create circularity hash 4123 here. Keep looking for classes if we found one that was inaccessible. 4124 Return the inaccessible class only if there is no other match. 4125 (do_resolve_class): Update for new resolve_inner_class arguments. 4126 Don't create circularity_hash here. 4127 41282005-07-07 Bryce McKinlay <mckinlay@redhat.com> 4129 4130 PR java/21045 4131 * parse.y (add_exception_to_throws): New function. 4132 (purge_unchecked_exceptions): Removed. 4133 (get_constructor_super): Renamed from verify_constructor_super. Now 4134 returns the super constructor after verification. 4135 (java_complete_expand_method): Don't use purge_unchecked_exceptions 4136 or save/restore the exception list. 4137 (check_thrown_exceptions): Add uncaught exceptions in anonymous 4138 class initializers and constructors to the throws clause of the method. 4139 41402005-07-05 Bryce McKinlay <mckinlay@redhat.com> 4141 4142 PR java/19674 4143 * parse.y (interface_member_declaration): Allow empty statements in 4144 interface declarations. 4145 41462005-07-05 Paolo Bonzini <bonzini@gnu.org> 4147 4148 * Makefile.in (parse.o): Adjust dependencies. 4149 * parse.y: Include tree-dump.h. 4150 41512005-07-02 Joseph S. Myers <joseph@codesourcery.com> 4152 4153 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q' 4154 flag for quoting. 4155 41562005-07-01 Andrew Pinski <pinskia@physics.uc.edu> 4157 4158 * parse.y (issue_warning_error_from_context): Call 4159 pp_output_formatted_text to be able to get the buffer. 4160 41612005-06-30 Andrew Pinski <pinskia@physics.uc.edu> 4162 4163 * parse.y (issue_warning_error_from_context): Update for the 4164 renaming of pp_format_text to pp_format. 4165 41662005-06-28 Paul Brook <paul@codesourcery.com> 4167 4168 * decl.c (java_init_decl_processing): Call 4169 default_init_unwind_resume_libfunc. 4170 41712005-06-27 Tom Tromey <tromey@redhat.com> 4172 4173 PR java/21540, PR java/13788: 4174 * parse.y (java_complete_lhs) <CASE_EXPR>: Use 4175 fold_constant_for_init. 4176 (patch_binop): Added 'folding' argument. Updated all callers. 4177 (patch_unaryop) <NOP_EXPR>: New case. 4178 (fold_constant_for_init) <NOP_EXPR>: Likewise. 4179 (fold_constant_for_init) <COND_EXPR>: Fix sense of test. 4180 41812005-06-25 Jan Hubicka <jh@suse.cz> 4182 4183 * builtins.c (define_builtin): Accept new flags parameter. 4184 (initialize_builtins): Mark the builtins const and nothrow accordingly. 4185 41862005-06-25 Kelley Cook <kcook@gcc.gnu.org> 4187 4188 * all files: Update FSF address in copyright headers. 4189 41902005-06-24 Tom Tromey <tromey@redhat.com> 4191 4192 * verify-impl.c (verify_instructions_0): Correctly handle 4193 situation where PC falls off end. 4194 41952005-06-23 Bryce McKinlay <mckinlay@redhat.com> 4196 4197 PR java/20697 4198 * parse.y (find_most_specific_methods_list): Remove special case for 4199 inner classes. 4200 42012005-06-15 Tom Tromey <tromey@redhat.com> 4202 4203 PR libgcj/21906: 4204 * class.c (make_method_value): Use soft_abstractmethod_node for 4205 abstract method. 4206 * java-tree.h (soft_abstractmethod_node): New define. 4207 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant. 4208 * decl.c (java_init_decl_processing): Initialize 4209 soft_abstractmethod_node. 4210 42112005-06-13 Geoffrey Keating <geoffk@apple.com> 4212 4213 * Make-lang.in (rule for installing gcj.1): Depends on installdirs. 4214 42152005-06-13 Per Bothner <per@bothner.com> 4216 4217 * expr.c (int highest_label_pc_this_method, 4218 start_label_pc_this_method): New globals. 4219 (lookup_label): Add start_label_pc_this_method to pc for label, and 4220 update highest_label_pc_this_method. This prevents conflicts between 4221 labels from different methods. 4222 * java-tree.h: Declare new globals. 4223 * jcf-parse.c (parse_class_file): If needed bump 4224 start_label_pc_this_method and reset highest_label_pc_this_method. 4225 42262005-06-13 Tom Tromey <tromey@redhat.com> 4227 4228 PR java/21844: 4229 * parse.y (nested_field_access_p): Handle case where outer field 4230 is inherited by enclosing class. 4231 42322005-06-12 Per Bothner <per@bothner.com> 4233 4234 * class.c (inherits_from_p): Do load_class if needed. 4235 42362005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4237 4238 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1. 4239 * java-tree.h (parse_error_context): Move... 4240 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG. 4241 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG. 4242 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1. 4243 42442005-06-08 Roger Sayle <roger@eyesopen.com> 4245 4246 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes. 4247 42482005-06-06 Jakub Jelinek <jakub@redhat.com> 4249 4250 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of 4251 msgid for argument name. 4252 * gjavah.c (error): Likewise. 4253 * java-tree.h (parse_error_context): Likewise. 4254 * parse.y (parse_error_context, parse_warning_context, 4255 issue_warning_error_from_context): Likewise. 4256 42572005-06-01 Tom Tromey <tromey@redhat.com> 4258 4259 PR java/21722: 4260 * class.c (build_static_field_ref): Don't fold constant fields if 4261 current class is from a .class file and we're using indirect 4262 dispatch. 4263 42642005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4265 4266 * java/verify-glue.c: Don't include errors.h and include toplev.h. 4267 * java/Make-lang.in: Updates dependencies. 4268 42692005-05-26 Ranjit Mathew <rmathew@hotmail.com> 4270 4271 PR java/19870. 4272 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to 4273 NESTED_FIELD_ACCESS_IDENTIFIER_P. 4274 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS. 4275 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P. 4276 * jcf-write.c (generate_classfile): Use 4277 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of 4278 OUTER_FIELD_ACCESS_IDENTIFIER_P. 4279 * parse.y (build_outer_field_access): Rename to 4280 build_nested_field_access. Support static fields and outer-to-inner 4281 class accesses. 4282 (outer_field_access_p): Rename to nested_field_access_p. Support 4283 static fields and generalise to outer-to-inner class and sibling 4284 inner class accesses. 4285 (outer_field_expanded_access_p): Rename to 4286 nested_field_expanded_access_p and support static fields. 4287 (outer_field_access_fix): Rename to nested_field_access_fix and 4288 support static fields. 4289 (build_outer_field_access_expr): Rename to 4290 build_nested_field_access_expr and support static fields. 4291 (build_outer_field_access_methods): Rename to 4292 build_nested_field_access_methods and support static fields. For 4293 static fields, generate accessors without class instance parameters. 4294 (build_outer_field_access_method): Rename to 4295 build_nested_field_access_method and support static fields. 4296 (build_outer_method_access_method): Use 4297 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of 4298 OUTER_FIELD_ACCESS_IDENTIFIER_P. 4299 (resolve_expression_name): Consider static field accesses across 4300 nested classes. 4301 (resolve_qualified_expression_name): Likewise. 4302 (java_complete_lhs): Use nested_field_access_fix instead of 4303 outer_field_access_fix. 4304 (patch_unary_op): Rename outer_field_flag to nested_field_flag. 4305 Use nested_field_expanded_access_p instead of 4306 outer_field_expanded_access_p. Use nested_field_access_fix instead 4307 of outer_field_access_fix. 4308 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P 4309 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P. 4310 43112005-05-26 Bryce McKinlay <mckinlay@redhat.com> 4312 4313 * decl.c (GCJ_BINARYCOMPAT_ADDITION, 4314 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed. 4315 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER, 4316 MINOR_BINARYCOMPAT_ABI_VERSION): New. 4317 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID. 4318 (parse_version): Calculate version ID using new method. Use bit-flags 4319 for flag_indirect_dispatch and flag_bootstrap_classes. 4320 43212005-05-25 Richard Henderson <rth@redhat.com> 4322 4323 PR libgcj/21692 4324 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H. 4325 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and 4326 DECL_CONTEXT; avoid pushdecl_top_level. 4327 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT. 4328 (layout_class): Don't SET_DECL_ASSEMBLER_NAME. 4329 (layout_class_method): Likewise. 4330 * decl.c (java_mark_cni_decl_local): New. 4331 (java_mark_class_local): Use it. 4332 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New. 4333 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New. 4334 (struct lang_decl_func): Add local_cni; 4335 (struct lang_decl_var): Add class_field, vtable. 4336 (java_mangle_decl): Declare. 4337 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New. 4338 * mangle.c: Remove dup obstack.h; include langhooks-def.h. 4339 (mangle_obstack_1): New. 4340 (java_mangle_decl): Remove obstack argument. Call mangle_class_field, 4341 mangle_vtable, and mangle_local_cni_method_decl. Fall back to 4342 lhd_set_decl_assembler_name for things that don't need mangling. 4343 (mangle_class_field): Rename from java_mangle_class_field, make 4344 static, don't call init_mangling or finish_mangling. 4345 (mangle_vtable): Similarly. 4346 (mangle_local_cni_method_decl): New. 4347 (init_mangling): Remove obstack argument. Use &mangle_obstack_1, 4348 gcc_assert, and MANGLE_RAW_STRING. 4349 (finish_mangling): Use gcc_assert, remove if 0 debugging code. 4350 43512005-05-25 DJ Delorie <dj@redhat.com> 4352 4353 * class.c (set_constant_value): Move warning control from if() to 4354 warning(OPT_*). 4355 43562005-05-24 Richard Henderson <rth@redhat.com> 4357 4358 * builtins.c (define_builtin): Don't call make_decl_rtl. 4359 * constants.c (build_constant_data_ref): Likewise. 4360 * class.c (build_utf8_ref): Likewise. 4361 (build_fieldref_cache_entry, build_static_field_ref): Likewise. 4362 (get_dispatch_table, layout_class_method): Likewise. 4363 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT 4364 by hand. 4365 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME. 4366 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P 4367 to determine if we need a non-zero address. 4368 * decl.c (builtin_function): Don't call make_decl_rtl. 4369 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME. 4370 * expr.c (build_known_method_ref): Don't call make_decl_rtl. 4371 * resource.c (compile_resource_data): Likewise. 4372 * parse.y (resolve_field_access): Re-word comment to avoid 4373 building DECL_RTL. 4374 43752005-05-24 Richard Henderson <rth@redhat.com> 4376 4377 * class.c (registered_class): Take it out of class_roots; turn into 4378 a vec of trees. 4379 (register_class): Make static. Don't duplicate decl node. Use 4380 VEC_safe_push. 4381 (emit_register_classes): Use VEC_iterate. Use output_constant 4382 instead of assemble_integer. Don't call mark_decl_referenced 4383 directly. 4384 * java-tree.h (register_class): Remove decl. 4385 43862005-05-19 Paolo Bonzini <bonzini@gnu.org> 4387 4388 PR java/17845 4389 4390 * parse.y (register_package, package_list): Remove. 4391 (package_declaration): Do not call register_package. 4392 (do_resolve_class): Do not use package_list. 4393 43942005-05-15 Gerald Pfeifer <gerald@pfeifer.com> 4395 4396 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove 4397 unused variable. 4398 43992005-05-15 Tom Tromey <tromey@redhat.com> 4400 4401 PR java/21519: 4402 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call 4403 NOTE_PUSH. 4404 44052005-05-12 Aaron Luchko <aluchko@redhat.com> 4406 4407 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'. 4408 44092005-05-11 Tom Tromey <tromey@redhat.com> 4410 4411 * gcj.texi (Code Generation): Document -fbootstrap-classes. 4412 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro. 4413 (parse_version): Use it. 4414 * lang.opt (-fbootstrap-classes): New option. 4415 44162005-05-10 Paolo Bonzini <bonzini@gnu.org> 4417 4418 PR java/21436 4419 * class.c (maybe_layout_super_class): Look for imports in this_class. 4420 * parse.h (ctxp_for_generation_last): New. 4421 (do_resolve_class): Add a parameter. 4422 * parse.y (ctxp_for_generation_last): New. 4423 (java_pop_parser_context): Add at end of list. 4424 (find_in_imports, find_in_imports_on_demand): Look in ctxp 4425 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of 4426 the given type are NULL. 4427 (do_resolve_class): Look into the imports of the new second parameter. 4428 Adjust recursive calls. 4429 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust 4430 calls to do_resolve_class. 4431 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST. 4432 (java_complete_class): Do not do that here. 4433 44342005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com> 4435 4436 PR java/20309 4437 * Make-lang.in (java): Add gjnih. 4438 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise. 4439 (GJNIH_OBJS): New variable. 4440 (gjnih$(exeext)): New target. 4441 (JAVA_MANFILES): Add gjnih.1. 4442 (java.uninstall): Add gjnih.1. 4443 (java.mostlyclean): Add gjnih. 4444 (java.maintainer-clean): Add gjnih.1. 4445 (java/gjavah-jni.o): New target. 4446 (.INTERMEDIATE): Add gjnih.pod. 4447 (gjnih.pod): New target. 4448 * config-lang.in (stagestuff): Add gjnih. 4449 * gcj.texi (Top): Add gjnih node. 4450 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and 4451 -bootclasspath options. 4452 (Invoking gjnih): New node. 4453 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined. 4454 (TOOLNAME): New macro. 4455 (error): Replace hard-coded gcjh with TOOLNAME. 4456 (process_file): Likewise. 4457 (usage): Likewise. 4458 (version): Likewise. 4459 (help): Likewise. Add help output for -force, -old, -trace and -J 4460 options. 4461 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros. 4462 (options): Add force, old, trace and J fields. 4463 (main): Handle -force, -old, -trace and -J options. 4464 44652005-05-03 Tom Tromey <tromey@redhat.com> 4466 4467 PR java/21245: 4468 * gjavah.c (main): Unlink output file on error. 4469 44702005-05-03 Kazu Hirata <kazu@cs.umass.edu> 4471 4472 * constants.c, jvgenmain.c, lang.opt, resource.c: Update 4473 copyright. 4474 44752005-04-29 Tom Tromey <tromey@redhat.com> 4476 4477 * expr.c (build_jni_stub): Updated for change to build_block. 4478 44792005-04-29 Andrew Pinski <pinskia@gcc.gnu.org> 4480 4481 * expr.c (force_evaluation_order): Declare 'saved' earlier. 4482 44832005-04-28 Andrew Haley <aph@redhat.com> 4484 4485 PR java/19285 4486 * java-tree.h (soft_resolvepoolentry_node): New. 4487 (alloc_constant_fieldref): Declare. 4488 * expr.c (expand_java_field_op): Don't call class_init for 4489 accesses to static fields with indirect dispatch. 4490 * builtins.c (initialize_builtins): Add "__builtin_expect". 4491 * decl.c (soft_resolvepoolentry_node): New variable. 4492 (java_init_decl_processing): Create a decl for 4493 "_Jv_ResolvePoolEntry". 4494 * class.c (build_fieldref_cache_entry): New function. 4495 (build_static_field_ref): Rewrite for indirect dispatch. 4496 * constants.c (find_name_and_type_constant_tree): New function. 4497 (alloc_constant_fieldref): Likewise. 4498 (build_constants_constructor): Handle CONSTANT_Fieldref and 4499 CONSTANT_NameAndType. 4500 4501 PR java/21115 4502 * expr.c (force_evaluation_order): Convert outgoing args smaller 4503 than integer. 4504 45052005-04-27 Bryce McKinlay <mckinlay@redhat.com> 4506 4507 * gcj.texi (libgcj Runtime Properties): Remove obsolete 4508 gnu.gcj.runtime.NameFinder.* system properties. Update documentation 4509 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname. 4510 45112005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4512 4513 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls 4514 to `unlock_stream' with `unlock_std_streams'. 4515 45162005-04-25 Jakub Jelinek <jakub@redhat.com> 4517 4518 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H) 4519 instead of just expr.h. 4520 45212005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4522 4523 * gjavah.c (main): Unlock the stdio streams. 4524 * jcf-dump.c (main): Likewise. 4525 * jv-scan.c (main): Likewise. 4526 * jvgenmain.c (main): Likewise. 4527 45282005-04-23 DJ Delorie <dj@redhat.com> 4529 4530 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c, 4531 parse.y: Adjust warning() callers. 4532 45332005-04-21 Bryce McKinlay <mckinlay@redhat.com> 4534 4535 * gcj.texi (Object fields): Change "Integer" to "Int" in example 4536 contructor. 4537 45382005-04-20 Bryce McKinlay <mckinlay@redhat.com> 4539 4540 * gcj.texi: Fix typos and bogus example. 4541 45422005-04-19 Kazu Hirata <kazu@cs.umass.edu> 4543 4544 * except.c: Fix a comment typo. 4545 45462005-04-19 Julian Brown <julian@codesourcery.com> 4547 4548 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking 4549 indirect dispatch with PIC. 4550 45512005-04-18 Andrew Haley <aph@redhat.com> 4552 4553 * java-except.h (struct eh_range.handler): Remove unused field. 4554 (handle_nested_ranges): Remove function declaration. 4555 (sanity_check_exception_range): Add function declaration. 4556 * verify.c (verify_jvm_instructions): Remove call to 4557 handle_nested_ranges. 4558 * verify-glue.c (verify_jvm_instructions_new): Call 4559 sanity_check_exception_range. 4560 * except.c (link_handler, eh_range_freelist, link_handler, 4561 handle_nested_ranges): Remove. 4562 (add_handler): Rewrite. 4563 (sanity_check_exception_range): New function. 4564 (print_ranges): New function. 4565 45662005-04-13 Julian Brown <julian@codesourcery.com> 4567 4568 * decl.c (finish_method): Give methods once-only linkage. 4569 45702005-04-11 Richard Sandiford <rsandifo@redhat.com> 4571 4572 * lang.opt: Refer to the GCC internals documentation instead of c.opt. 4573 45742005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4575 4576 * java-tree.h: Don't use PARAMS(). 4577 45782005-04-07 Per Bothner <per@bothner.com> 4579 4580 * class.c (push_class): By default, suppress debug output. 4581 (finish_class): Enable debug output for classes we're emitting. 4582 45832005-04-07 Andrew Haley <aph@redhat.com> 4584 4585 * gcj.texi: Correct gcj-dbtool instructions. 4586 45872005-04-04 Kazu Hirata <kazu@cs.umass.edu> 4588 4589 * gcj.texi: Fix a typo. 4590 * lang.c: Fix a comment typo. 4591 45922005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com> 4593 4594 * gcj.texi (Invoking gij): Add descriptions of new -X options. 4595 Mention recognized-and-ignored compatibility options. 4596 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and 4597 JvFree. 4598 (About CNI): Add Memory allocation section. 4599 46002005-04-01 Tom Tromey <tromey@redhat.com> 4601 4602 * decl.c (java_init_decl_processing): Fix types of 4603 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject, 4604 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray, 4605 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ. 4606 46072005-03-31 Jan Hubicka <jh@suse.cz> 4608 4609 * Make-lang.in (class.o, decl.o): Depend on cgraph.h. 4610 * class.c: Include cgraph.h 4611 (make_local_functoin_alias): Mark aslias as needed. 4612 * resource.c: Include cgraph.h 4613 (compile_resource_data): Go via cgraph interface. 4614 46152005-03-30 Ian Lance Taylor <ian@airs.com> 4616 4617 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL. 4618 46192005-03-30 Tom Tromey <tromey@redhat.com> 4620 4621 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where 4622 inner_class_info_index==0 or outer_class_info_index==0. 4623 46242005-03-29 Tom Tromey <tromey@redhat.com> 4625 4626 * gcj.texi (libgcj Runtime Properties): Document 4627 gnu.gcj.runtime.endorsed.dirs. 4628 46292005-03-24 Anthony Green <green@redhat.com> 4630 4631 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to 4632 'gcj-dbtool -p'. 4633 46342005-03-23 Tom Tromey <tromey@redhat.com> 4635 4636 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define. 4637 (parse_version): Use it. 4638 46392005-03-23 Joseph S. Myers <joseph@codesourcery.com> 4640 4641 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove. 4642 46432005-03-18 Andrew Haley <aph@redhat.com> 4644 4645 PR java/20522 4646 * decl.c (update_aliases): Don't update variables that are about 4647 to die. 4648 (maybe_poplevels): Add comment. 4649 46502005-03-17 Bryce McKinlay <mckinlay@redhat.com> 4651 4652 PR java/20502 4653 * jcf-parse.c (duplicate_class_warning): New function. 4654 (java_parse_file): Call duplicate_class_warning if 4655 CLASS_FROM_CURRENTLY_COMPILED_P is already set. 4656 (parse_zip_file_entries): Likewise. Also set 4657 CLASS_FROM_CURRENTLY_COMPILED_P. 4658 46592005-03-16 Andrew Haley <aph@redhat.com> 4660 4661 * expr.c (expand_java_arrayload): Don't generate a 4662 NullPointerException based on the type of the node. 4663 (build_java_array_length_access): Likewise. 4664 46652005-03-15 Zack Weinberg <zack@codesourcery.com> 4666 4667 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi. 4668 46692005-03-11 Tom Tromey <tromey@redhat.com> 4670 4671 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'. 4672 (libgcj Runtime Properties): Document the default .db. 4673 46742005-03-10 Ranjit Mathew <rmathew@hotmail.com> 4675 4676 PR java/20312 4677 * parse.y (checks_throws_clauses): Check exceptions list even when 4678 the base class does not come from a source file being compiled. 4679 (java_complete_lhs): Remove unused variable 'wfl'. 4680 46812005-03-09 Ranjit Mathew <rmathew@hotmail.com> 4682 4683 PR java/20338 4684 * decl.c (finish_method): Emit _Jv_InitClass for private static 4685 methods inside inner classes as well. 4686 46872005-03-08 Julian Brown <julian@codesourcery.com> 4688 * Revert patch from 2005-03-08 for causing bootstrap failure on 4689 ppc-darwin. 4690 46912005-03-08 Julian Brown <julian@codesourcery.com> 4692 4693 * decl.c (finish_method): Give methods once-only linkage. 4694 46952005-03-07 Ranjit Mathew <rmathew@hotmail.com> 4696 4697 * lang.c (flag_new_verifier): Enable by default, regardless of ABI. 4698 46992005-03-07 Bryce McKinlay <mckinlay@redhat.com> 4700 4701 * verify-glue.c (vfy_is_assignable_from): Perform static check using 4702 can_widen_reference_to if the C++ ABI is in use. 4703 (vfy_get_interface_count, vfy_get_interface): Remove unused functions. 4704 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type, 4705 type_isresolved, init_state, set_pc, state_get_pc, 4706 _Jv_BytecodeVerifier): Clean up unused and disabled functions. 4707 (verify_fail): Report the current PC from the verifier context. 4708 (free_state): Remove #if 0 block to enable this function. 4709 (free_verifier_context): Call free_state on state_list iterator 4710 values before freeing them. 4711 * expr.c (pop_type_0): Pop correct type for error message when stack 4712 contains a multi-word type. 4713 47142005-03-07 Ranjit Mathew <rmathew@hotmail.com> 4715 4716 * expr.c (build_java_array_length_access): Remove !flag_new_verifier 4717 for known NULL array length access. 4718 47192005-03-07 Tom Tromey <tromey@redhat.com> 4720 4721 * gcj.texi (Invoking gcj-dbtool): Document '-f'. 4722 47232005-03-06 Kazu Hirata <kazu@cs.umass.edu> 4724 4725 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h, 4726 typeck.c: Update copyright. 4727 47282005-03-06 Ranjit Mathew <rmathew@hotmail.com> 4729 4730 Remove xref code. 4731 * xref.c, xref.h: Remove file. 4732 * Make-lang.in (java/xref.o): Remove. 4733 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration. 4734 * lang.c (flag_emit_xref): Remove definition. 4735 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove. 4736 * typeck.c (convert): Remove use of do_not_fold. 4737 * parse.y (do_not_fold): Remove definition. 4738 (parser grammar): Remove xref code. 4739 (maybe_create_class_interface_decl, create_class): Likewise. 4740 (register_fields, method_header, finish_method_declaration): Likewise. 4741 (declare_local_variables, source_end_java_method): Likewise. 4742 (java_complete_expand_classes): Do not set do_not_fold. 4743 (java_complete_expand_method): Remove xref code. 4744 (java_expand_classes, resolve_field_access, patch_invoke): Likewise. 4745 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise. 4746 (patch_binop, build_string_concatenation, patch_array_ref): Likewise. 4747 (patch_synchronized_statement, patch_throw_statement): Likewise. 4748 (maybe_build_class_init_for_field): Likewise. 4749 47502005-03-05 Kazu Hirata <kazu@cs.umass.edu> 4751 4752 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P 4753 instead of IS_NON_TYPE_CODE_CLASS. 4754 47552005-03-04 Andrew Haley <aph@redhat.com> 4756 4757 PR java/18362 4758 * class.c (set_method_index): Don't set method_index if it is 4759 NULL_TREE. 4760 (layout_class_method): Don't complain about "non-static method foo 4761 overrides static method" in the case of indirect dispatch. 4762 47632005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4764 4765 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic 4766 warning. 4767 * Make-lang.in: Don't elide warnings in jcf-io.c. 4768 47692005-03-01 Per Bothner <per@bothner.com> 4770 4771 PR java/8608 4772 * check-init.c (wfl): Remove static. 4773 (final_assign_error, check_init): Replace calls to parse_error_context 4774 by plain error. 4775 (check_init): Save, set, and restore input_location for each exp. 4776 47772005-03-01 Per Bothner <per@bothner.com> 4778 4779 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45) 4780 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined. 4781 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents. 4782 47832005-03-01 Per Bothner <per@bothner.com> 4784 4785 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro. 4786 47872005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com> 4788 4789 PR libgcj/16923 4790 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and 4791 JvVMOption. 4792 47932005-02-22 Tom Tromey <tromey@redhat.com> 4794 4795 PR java/20056: 4796 * verify-impl.c (EITHER): New define. 4797 (types_compatible): Handle it. 4798 (check_field_constant): Use it. 4799 48002005-02-18 Tom Tromey <tromey@redhat.com> 4801 4802 PR java/20056: 4803 * verify-impl.c (types_equal): Fixed test. 4804 4805 PR java/20056: 4806 * verify-glue.c (vfy_class_has_field): New function. 4807 * verify.h (vfy_class_has_field): Declare. 4808 * verify-impl.c (check_field_constant): Added 'putfield' 4809 argument. 4810 (verify_instructions_0): Updated. 4811 (types_equal): New function. 4812 48132005-02-14 Tom Tromey <tromey@redhat.com> 4814 4815 PR java/19921: 4816 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the 4817 stack effect of multianewarray. 4818 48192005-02-14 Andrew Haley <aph@redhat.com> 4820 4821 PR java/19907 4822 * expr.c (expand_byte_code): Call promote_arguments(). 4823 (promote_arguments): New function. 4824 * decl.c (check_local_unnamed_variable): Remove special case for 4825 new verifier. 4826 (find_local_variable): Promote all boolean types to int 4827 when searching for local variable decls. 4828 48292005-02-12 Kazu Hirata <kazu@cs.umass.edu> 4830 4831 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c, 4832 parse-scan.y: Update copyright. 4833 48342005-02-11 Per Bothner <per@bothner.com> 4835 4836 PR java/15543 4837 * parse-scan.y (input_location): Remove variable. 4838 (main_input_filename): New - replaces input_filename, which isn't 4839 settable if USE_MAPPED_LOCATION. 4840 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE, 4841 so we don't reference input_location or wfl_operator in that case. 4842 * jv-scan.c (expand_location): Remove - no longer used. 4843 (main): Set main_input_filename rather than input_filename. 4844 48452005-02-09 Richard Henderson <rth@redhat.com> 4846 4847 * builtins.c (initialize_builtins): Call build_common_builtin_nodes. 4848 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node. 4849 48502005-02-08 Marcin Dalecki <martin@dalecki.de> 4851 4852 * expr.c (add_type_assertion): Use the proper enumeration type, 4853 since this is what htab_find_slot() is expecting. 4854 48552005-02-06 Joseph S. Myers <joseph@codesourcery.com> 4856 4857 * gcj.texi: Update copyright dates. 4858 48592005-02-02 Tom Tromey <tromey@redhat.com> 4860 4861 * gcj.texi (libgcj Runtime Properties): Default library_control 4862 to 'cache'. 4863 48642005-02-02 Ranjit Mathew <rmathew@hotmail.com> 4865 4866 PR java/15543 4867 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$ 4868 (modifiers) when square brackets are present in a declaration for 4869 a final paramter. 4870 * jv-scan.c (main): Set input_filename and input_line. 4871 48722005-02-01 Tom Tromey <tromey@redhat.com> 4873 4874 PR java/19742: 4875 * gjavah.c (get_field_name): Don't override name for JNI header. 4876 48772005-02-01 Roger Sayle <roger@eyesopen.com> 4878 4879 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR 4880 of unsigned types using iushr and lushr JVM bytecodes. 4881 48822005-02-01 Ranjit Mathew <rmathew@hotmail.com> 4883 4884 PR java/19738 4885 * gjavah.c (jni_print_float): Do not emit floating-point 4886 initialiser for a static final field. 4887 (jni_print_double): Likewise. 4888 48892005-02-01 Mark Mitchell <mark@codesourcery.com> 4890 4891 Revert: 4892 2005-01-31 Mark Mitchell <mark@codesourcery.com> 4893 * gjavah.c (print_field_info): Mark static data members of 4894 floating-point type with "__extension__". 4895 48962005-01-31 Mark Mitchell <mark@codesourcery.com> 4897 4898 * gjavah.c (print_field_info): Mark static data members of 4899 floating-point type with "__extension__". 4900 49012005-02-01 Ranjit Mathew <rmathew@hotmail.com> 4902 4903 PR java/9157 4904 * parse.y (build_string_concatenation): Remove redundant if. 4905 (patch_conditional_expr): Attempt to patch_string() the condition 4906 of a ?: as well, in addition to its other operands. 4907 49082005-01-25 Tom Tromey <tromey@redhat.com> 4909 4910 * Make-lang.in (java/java-tree-inline.o): Removed. 4911 49122005-01-25 Ranjit Mathew <rmathew@hotmail.com> 4913 4914 PR java/19070 4915 * parse.y (patch_binop): Allow comparisons against NULL only 4916 if the other operand is of a reference type. 4917 49182005-01-24 Tom Tromey <tromey@redhat.com> 4919 4920 * java-tree.h (gcj_abi_version): Declare. 4921 * class.c (make_class_data): Push gcj_abi_version into "next" 4922 field. Renamed field. 4923 * decl.c (gcj_abi_version): New global. 4924 (parse_version): New function. 4925 (java_init_decl_processing): Call it. Renamed 'next' field. 4926 Include version.h. 4927 (GCJ_BINARYCOMPAT_ADDITION): New define. 4928 49292005-01-24 Roger Sayle <roger@eyesopen.com> 4930 4931 PR java/19295 4932 * jcf-write.c (generate_bytecode_insns): Conversions between 4933 integer types of the same precision shouldn't generate widening 4934 or narrowing conversion bytecodes. 4935 49362005-01-22 Kazu Hirata <kazu@cs.umass.edu> 4937 4938 * java-except.h, java-tree.h: Remove unused prototypes. 4939 49402005-01-20 Andrew Pinski <pinskia@gcc.gnu.org> 4941 4942 PR java/18091: 4943 * jcf-write.c (perform_relocations): Don't call memcpy if source 4944 and destination are the same. 4945 49462005-01-17 Tom Tromey <tromey@redhat.com> 4947 4948 * verify-impl.c (get_short): Sign extend. 4949 (get_int): Likewise. 4950 49512005-01-12 Ranjit Mathew <rmathew@hotmail.com> 4952 4953 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT 4954 with TYPE_SIZE. 4955 49562005-01-10 Ranjit Mathew <rmathew@hotmail.com> 4957 4958 * verify.c: Revert to the version before the BC-ABI merge. 4959 49602005-01-10 Ranjit Mathew <rmathew@hotmail.com> 4961 4962 PR java/19277 4963 * check-init.c (check_init): Take care of references that do not 4964 have an explicit final variable declaration (e.g. array length 4965 access) for pre/post in/de-crement operators. 4966 49672005-01-08 Mark Wielaard <mark@klomp.org> 4968 4969 * parse.y (process_imports): Allocate (and free) original_name only 4970 when not already defined. 4971 * jcf-parse.c (read_class): Free results of find_class() and 4972 lrealpath(). 4973 (java_parse_file): Keep pointer to head of file_list and free when 4974 done. Free result of lrealpath(). 4975 49762005-01-05 Tom Tromey <tromey@redhat.com> 4977 4978 * gcj.texi (Standard Properties): java.ext.dirs is now used. 4979 49802004-12-20 Andrew Haley <aph@redhat.com> 4981 4982 * typeck.c: Use fold_convert for ints and booleans. 4983 49842004-12-17 Andrew Haley <aph@redhat.com> 4985 4986 PR java/18931 4987 * typeck.c (convert): Use a CONVERT_EXPR when converting to 4988 BOOLEAN_TYPE or CHAR_TYPE. 4989 (convert_to_boolean, convert_to_char) : Remove. 4990 * convert.h (convert_to_boolean, convert_to_char) : Remove. 4991 * expr.c (expand_load_internal): Do type conversion if type is not 4992 as required. 4993 49942004-12-13 Danny Smith <dannysmith@users.sourceforge.net> 4995 4996 PR target/18459 4997 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION. 4998 Update comment. 4999 50002004-12-07 Andrew Haley <aph@redhat.com> 5001 5002 PR java/18811: 5003 * jcf-parse.c (load_class): Remove sanity test for missing inner 5004 class file. 5005 50062004-12-06 Tom Tromey <tromey@redhat.com> 5007 5008 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool. 5009 (java.uninstall): Likewise. 5010 (java.maintainer-clean): Likewise. 5011 (.INTERMEDIATE): Likewise. 5012 (java.install-man): Likewise. 5013 (gcj-dbtool.pod): New target. 5014 * gcj.texi (Code Generation): Document -findirect-dispatch. 5015 (libgcj Runtime Properties): Document 5016 gnu.gcj.precompiled.db.path. 5017 (Top): Link to "Invoking gcj-dbtool". 5018 50192004-12-06 Tom Tromey <tromey@redhat.com> 5020 5021 PR java/14853: 5022 * java-tree.h (extract_field_decl): Declare. 5023 * parse.y (extract_field_decl): Renamed from 5024 strip_out_static_field_access_decl. No longer static. 5025 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs. 5026 50272004-12-03 Tom Tromey <tromey@redhat.com> 5028 5029 * lang.c (flag_new_verifier): Define. 5030 (java_post_options): Set flag_new_verifier if indirect dispatch 5031 is being used. 5032 * lang.opt (fnew-verifier): Removed. 5033 50342004-12-03 Tom Tromey <tromey@redhat.com> 5035 5036 PR bootstrap/14614: 5037 * Make-lang.in (java.install-common): Only install transformed 5038 gcjh if gcj-cross exists. 5039 50402004-12-03 Andrew Haley <aph@redhat.com> 5041 5042 PR java/18812 5043 * except.c (link_handler): Patch 'outer' field of siblings of the 5044 range we're demoting. 5045 50462004-12-03 Andrew Haley <aph@redhat.com> 5047 5048 PR java/18697 5049 * class.c (layout_class_method): Don't fail to override a method 5050 simply because it has DECL_ARTIFICIAL set. 5051 50522004-12-02 Tom Tromey <tromey@redhat.com> 5053 5054 PR java/16675: 5055 * parse.y (craft_constructor): Special case null_pointer_node. 5056 50572004-12-02 Tom Tromey <tromey@redhat.com> 5058 5059 PR java/18741: 5060 * java-gimplify.c (java_gimplify_expr): Don't call 5061 SET_EXPR_LOCATION unless wrapped tree is an expression. 5062 50632004-11-27 Per Bothner <per@bothner.com> 5064 5065 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix: 5066 Fix fencepost error in 'i', which got executed one too many times. 5067 Also, fold memcpy into explicit loop, as originally intended. 5068 Also, free temporary 'buf' which otherwise leaks. 5069 50702004-11-27 Per Bothner <per@bothner.com> 5071 5072 * expr.c (build_expr_wfl): Only declare last_file and last_filenode 5073 local static variables if not USE_MAPPED_LOCATION. 5074 50752004-11-27 Kazu Hirata <kazu@cs.umass.edu> 5076 5077 * class.c, decl.c, expr.c: Fix comment typos. 5078 50792004-11-26 Andrew Pinski <pinskia@physics.uc.edu> 5080 5081 PR java/18305 5082 * decl.c (end_java_method): Call 5083 attach_init_test_initialization_flags on all the init_decls. 5084 * parse.y (attach_init_test_initialization_flags): Move to ... 5085 * expr.c (attach_init_test_initialization_flags): here and 5086 support BIND_EXPR also. 5087 * java-tree.h (attach_init_test_initialization_flags): Prototype. 5088 * jcf-parse.c (parse_class_file): Don't disable class init 5089 optimization. 5090 50912004-11-25 Joseph S. Myers <joseph@codesourcery.com> 5092 5093 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote 5094 in diagnostics. 5095 50962004-11-24 Richard Henderson <rth@redhat.com> 5097 5098 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type, 5099 vfy_string_type, vfy_throwable_type): Use ANSI declaration form. 5100 51012004-11-24 Tom Tromey <tromey@redhat.com> 5102 5103 * verify.c (defer_merging): Don't use C++-style comment. 5104 * verify.h (java_opcode): Added java_opcode_end. 5105 * class.c (build_class_ref): Remove C++ comment and old FIXME. 5106 5107 * verify-impl.c (vfy_push_type): Removed bogus "return". 5108 (initialize_stack): Use vfy_alloc and vfy_free. 5109 (verify_instructions_0): Likewise. 5110 5111 * Merged gcj-abi-2-dev-branch to trunk. 5112 51132004-11-24 Andrew Haley <aph@redhat.com> 5114 5115 * jcf-parse.c (parse_class_file): Set file_start_location. 5116 51172004-11-10 Tom Tromey <tromey@redhat.com> 5118 5119 * class.c (make_field_value): Don't call build_static_field_ref. 5120 (build_static_field_ref): Don't emit direct references when using 5121 indirect dispatch. 5122 5123 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and 5124 -verbose:class into man page synopsis. 5125 51262004-11-09 Tom Tromey <tromey@redhat.com> 5127 5128 * expr.c (build_java_arraystore_check): Still generate check if 5129 element type is itself an array. 5130 51312004-11-08 Tom Tromey <tromey@redhat.com> 5132 5133 * java-tree.h (soft_check_assignment_node): Removed. 5134 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE. 5135 * decl.c (java_init_decl_processing): Don't initialize 5136 soft_check_assignment_node. 5137 51382004-11-05 Tom Tromey <tromey@redhat.com> 5139 5140 * class.c (layout_class_methods): Don't add Miranda methods when 5141 using indirect dispatch. 5142 51432004-11-05 Bryce McKinlay <mckinlay@redhat.com> 5144 5145 * class.c (make_class_data): Call emit_assertion_table to set the 5146 'assertion_table' field. 5147 (build_signature_for_libgcj): Move here from expr.c. 5148 (add_assertion_table_entry): New function. Callback for assertion 5149 hashtable traversal. 5150 (emit_assertion_table): New. Take class argument, and generate 5151 assertion table DECL based on the TYPE_ASSERTIONS hashtable. 5152 * decl.c (init_decl_processing): Define assertion_entry_type record. 5153 Push 'assertion_table' class field instead of 'verify'. 5154 * expr.c (type_assertion_eq): Compare 'assertion_code' field. 5155 (type_assertion_hash): Include 'assertion_code' in hash. 5156 (add_type_assertion): Rewritten. Take class and assertion_code 5157 arguments. Add assertions to the TYPE_ASSERTIONS hashtable. 5158 (can_widen_reference_to): Use new add_type_assertion() arguments. 5159 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE, 5160 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE. 5161 (verify_identifier_node): Removed. 5162 (assertion_entry_type, assertion_table_type): New. 5163 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type 5164 assertion code definitions. 5165 (struct type_assertion): Add assertion_code. Rename 'source_type' and 5166 'target_type' to 'op1' and 'op2'. 5167 (add_type_assertion): Declare. 5168 (lang_printable_name_wls): Remove unused definition. 5169 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion 5170 to emit runtime assertion. 5171 (vfy_note_stack_type): Clean up non-C90 declarations. 5172 (vfy_note_local_type): Likewise. 5173 * verify.h (vfy_is_assignable_from): Declare. 5174 * verify-impl.c (is_assignable_from_slow): Remove unused function. 5175 (ref_compatible): Rename arguments. Call vfy_is_assignable_from() 5176 instead of is_assignable_from_slow(). 5177 (types_compatible): Reinstate ref_compatible() call. 5178 51792004-11-04 Tom Tromey <tromey@redhat.com> 5180 5181 * class.c (build_static_field_ref): Reverted previous patch. 5182 5183 * class.c (build_static_field_ref): Don't emit direct references 5184 when using indirect dispatch. 5185 51862004-11-03 Tom Tromey <tromey@redhat.com> 5187 5188 * expr.c (expand_java_arrayload): Set lhs_type_node. 5189 (expand_java_arraystore): Set rhs_type_node. 5190 51912004-11-02 Tom Tromey <tromey@redhat.com> 5192 5193 * jcf-parse.c (compute_class_name): Use filename length from zip 5194 directory, not strlen. 5195 5196 * expr.c (expand_invoke): Mark new interface methods as abstract. 5197 51982004-11-01 Tom Tromey <tromey@redhat.com> 5199 5200 * verify-impl.c (push_jump): Removed check for uninitialized 5201 objects. 5202 (push_exception_jump): Likewise. 5203 (handle_ret_insn): Likewise. 5204 (handle_jsr_insn): Likewise. 5205 (state_check_no_uninitialized_objects): Removed. 5206 5207 * decl.c (check_local_unnamed_variable): Recognize 5208 promoted-to-int parameters when using the new verifier. 5209 * expr.c (expand_java_arraystore): Explicitly request array type 5210 when using new verifier. 5211 (expand_java_arrayload): Likewise. 5212 (invoke_build_dtable): Don't pass object_type_node as 5213 expression argument to build_java_indirect_ref. 5214 (build_java_check_indexed_type): Do nothing. 5215 (build_java_arraystore_check): Handle case where array doesn't 5216 have array type. 5217 (build_java_array_length_access): Likewise. 5218 (expand_invoke): Handle case where interface overrides a method 5219 from Object. 5220 (pop_type_0): Always succeed for reference types. 5221 (process_jvm_instruction): Don't pop a value in a dead 5222 exception handler. 5223 (pop_arguments): Convert arguments to correct types. 5224 52252004-10-29 Andrew Haley <aph@redhat.com> 5226 5227 * jcf-parse.c (give_name_to_class): Remove line that was 5228 incorrectly merged. 5229 52302004-10-29 Andrew Haley <aph@redhat.com> 5231 5232 * jcf-parse.c (set_source_filename): Add code to build new sfname. 5233 52342004-10-20 Andrew Haley <aph@redhat.com> 5235 5236 * decl.c (end_java_method): Don't expand if flag_syntax_only. 5237 52382004-10-26 Tom Tromey <tromey@redhat.com> 5239 5240 * verify.h (vfy_notify_verified): Removed. 5241 * verify-glue.c (vfy_notify_verified): Removed. 5242 52432004-10-26 Tom Tromey <tromey@redhat.com> 5244 5245 * verify-impl.c (debug_print_state): Declare `i' before code. 5246 (merge_types): Modify `t' when it is null_type. 5247 52482004-10-26 Tom Tromey <tromey@redhat.com> 5249 5250 * verify-impl.c (type_print): Renamed from print. Now static and 5251 takes an argument. 5252 (debug_print_state): Use type_print. 5253 52542004-10-25 Tom Tromey <tromey@redhat.com> 5255 5256 * expr.c (build_invokeinterface): Compute correct offset for 5257 index into interface methods. 5258 52592004-10-20 Tom Tromey <tromey@redhat.com> 5260 5261 * java-tree.h (verify_jvm_instructions_new): Declare. 5262 5263 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1 5264 command line. 5265 5266 * verify-impl.c (verify_instructions): Correctly handle wide 5267 types on the stack. 5268 * verify-glue.c (vfy_get_class_name): Use DECL_NAME. 5269 (vfy_get_component_type): Strip pointer types. 5270 (vfy_find_class): Use get_type_from_signature. Strip pointer 5271 types. 5272 Include java-except.h. 5273 52742004-10-20 Bryce McKinlay <mckinlay@redhat.com> 5275 5276 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t, 5277 vfy_push_type_t, set_variable, add_new_state, merge_into, 5278 handle_jsr_insn, branch_prepass, check_class_constant, 5279 check_wide_constant, get_one_type, compute_static_types, 5280 verify_instructions_0): Clean up C99 declarations after statements. 5281 52822004-10-20 Tom Tromey <tromey@redhat.com> 5283 5284 * verify-impl.c (merge_refs): Compare reference against iterator, 5285 not ref2. 5286 5287 * verify-glue.c (vfy_tag): Mask off resolved flag. 5288 52892004-10-19 Tom Tromey <tromey@redhat.com> 5290 5291 * verify-impl.c (verify_instructions): Call vfy_note_local_type. 5292 (init_state_with_stack): Initialize `this_type' in state. 5293 (verify_method): Use debug_print. 5294 * verify-glue.c (vfy_is_primitive): Removed debugging print. 5295 (vfy_note_stack_depth): Reverted last patch. 5296 (vfy_note_stack_type): Note pointer to Object, not Object. 5297 (vfy_note_local_type): Likewise. 5298 5299 * verify.h (vfy_note_instruction_seen): Declare. 5300 * verify-glue.c (verify_jvm_instructions_new): Set 5301 BCODE_EXCEPTION_TARGET on target instruction. 5302 (vfy_note_instruction_seen): New function. 5303 * verify-impl.c (FLAG_INSN_SEEN): New define. 5304 (verify_instructions_0): Set flag on instruction. Save state for 5305 PC=0 later. 5306 (verify_instructions): Call vfy_note_instruction_seen. 5307 5308 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error. 5309 (verify_jvm_instructions_new): Call method_init_exceptions, 5310 add_handler, and handle_nested_ranges. 5311 * verify-impl.c (verify_method): Return 1 on success. 5312 (verify_instructions_0): Save the state at PC=0. 5313 5314 * verify-impl.c (init_type_from_class): Set is_resolved and 5315 ref_next on new ref_intersection. 5316 (init_type_from_string): Likewise. 5317 53182004-10-15 Bryce McKinlay <mckinlay@redhat.com> 5319 5320 * expr.c (expand_bytecode): Use verify_jvm_instructions_new 5321 if flag_new_verifier is set. 5322 * java-tree.h (flag_new_verifier): Declare. 5323 * lang.opt (fnew-verifier): New option. 5324 * verify-impl.c: Work around namespace pollution by undef'ing 5325 'current_class'. 5326 (struct verifier_context): Make 'bytecode' const. 5327 (verify_fail_pc): Pass -1 PC argument to vfy_fail. 5328 (types_compatible): For the BC-ABI, always consider reference types 5329 compatible. 5330 (check_class_constant): Use vfr->current_class. 5331 (check_constant): Likewise. 5332 (check_wide_constant): Likewise. 5333 (check_field_constant): Check for 'L' at start of type name. 5334 (get_one_type): Return pointer instead of type. Set type result in 5335 caller via passed type pointer. 5336 (compute_argument_types): Update to use new get_one_type arguments. 5337 (compute_return_type): Likewise. 5338 (make_verifier_context): New. Allocate and initialize 'vfr'. 5339 (free_verifier_context): New. Free 'vfr' and its contents. 5340 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context 5341 and free_verifier_context. 5342 53432004-10-15 Tom Tromey <tromey@redhat.com> 5344 5345 * verify-glue.c (vfy_note_local_type): Mark argument as unused. 5346 * verify.h (vfy_fail): Fixed formatting. 5347 5348 * verify-impl.c (vfr): Fixed comment formatting. 5349 (collapse_type): New function. 5350 (verify_instructions): Notify compiler about type map. 5351 * verify.h (vfy_note_stack_depth): Updated. 5352 (vfy_note_stack_type): Likewise. 5353 (vfy_note_local_type): Likewise. 5354 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type): 5355 Declare. 5356 * verify-glue.c (vfy_note_stack_depth): Correctly size type 5357 state. Added `method' argument. 5358 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method' 5359 argument. 5360 (vfy_note_local_type): New function. 5361 (vfy_unsuitable_type): Likewise. 5362 (vfy_return_address_type): Likewise. 5363 (vfy_null_type): Likewise. 5364 5365 * verify.h (VFY_IN_GCC): Removed. 5366 (VFY_WANT_TYPEMAP): Removed. 5367 * verify-impl.c (verify_instructions_0): Removed useless "\". 5368 (struct state) <next>: Uncomment. 5369 53702004-10-13 Bryce McKinlay <mckinlay@redhat.com> 5371 5372 * verify-impl.c: Formatting fixes. Reformat C++-style comments to 5373 C-style. 5374 53752004-10-06 Bryce McKinlay <mckinlay@redhat.com> 5376 5377 * Make-lang.in (verify.o): Re-enabled this target. 5378 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED. 5379 (vfy_get_interface): Likewise. 5380 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions. 5381 * verify.h (verify_jvm_instructions_new): Declare. 5382 * verify-impl.c (free_state): Temporarily comment out unused 5383 function. 5384 53852004-10-06 Tom Tromey <tromey@redhat.com> 5386 5387 * java-tree.h (JV_STATE_READ): New enum value. 5388 53892004-10-06 Bryce McKinlay <mckinlay@redhat.com> 5390 5391 * verify.h: New file. 5392 53932004-10-05 Bryce McKinlay <mckinlay@redhat.com> 5394 5395 * verify-impl.c, verify-glue.c, verify.h: New files. 5396 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o. 5397 53982004-09-24 Andrew Haley <aph@redhat.com> 5399 5400 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL 5401 for a slot if it's of pointer type. 5402 54032004-09-14 Tom Tromey <tromey@redhat.com> 5404 5405 * class.c (make_class_data): Correctly initialize "state" field. 5406 Initialize "engine" field. 5407 * decl.c (java_init_decl_processing): Add "engine" field. 5408 54092004-09-10 Andrew Haley <aph@redhat.com> 5410 5411 PR java/12760 5412 * expr.c (build_invokeinterface): Use fast method for interface 5413 dispatch. 5414 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE, 5415 JTI_ITABLE_PTR_TYPE. 5416 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl. 5417 (emit_symbol_table): Add new arg, element_size. 5418 * decl.c (java_init_decl_processing): Initialize Class.itable. 5419 * class.c (GEN_TABLE): New macro. 5420 (gen_indirect_dispatch_tables): Use it. Add itable. 5421 (make_class_data): Add new arg for emit_symbol_table(). 5422 Emit itable. 5423 (add_miranda_methods): Make sure search_class has been parsed. 5424 (emit_symbol_table): Add new arg, element_size. 5425 54262004-09-06 Andrew Haley <aph@redhat.com> 5427 5428 * verify.c (merge_types): Return Object for all merges of 5429 interfaces. 5430 * expr.c (add_type_assertion): Don't generate assertions when 5431 source type is array of Object. 5432 54332004-09-03 Andrew Haley <aph@redhat.com> 5434 5435 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD. 5436 5437 * lang.c (java_post_options): Force flag_verify_invocations if 5438 we're not using indirect dispatch. 5439 5440 * expr.c (pop_type_0): Move test for interfaces before call to 5441 can_widen_reference_to(). 5442 (build_signature_for_libgcj): Remove generation of canonical array 5443 type. 5444 (add_type_assertion): Canonicalize both arrays. 5445 Don't assert that type X can be assigned to Object. 5446 Don't assert that type X an be assigned to type X. 5447 Don't assert that Object can be assigned to type X. 5448 (can_widen_reference_to): Warn whenever we generate an assertion. 5449 (process_jvm_instruction): Use throwable_type_node for the type of 5450 an exception class. 5451 54522004-09-01 Andrew Haley <aph@redhat.com> 5453 5454 * decl.c (java_init_decl_processing): Change 5455 verify_identifier_node to "__verify". 5456 * expr.c (add_type_assertion): Use verify_identifier_node for name. 5457 * java-tree.h (verify_identifier_node): Change to "__verify". 5458 5459 * expr.c (build_signature_for_libgcj): New function. 5460 (add_type_assertion): Use it to construct signatures for 5461 source_type and target_type. 5462 54632004-08-27 Andrew Haley <aph@redhat.com> 5464 5465 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE. 5466 (verify_identifier_node): New. 5467 (TYPE_VERIFY_METHOD): New. 5468 (struct type_assertion): New type. 5469 * expr.c (type_assertion_eq): New function. 5470 (type_assertion_hash): New function. 5471 (add_type_assertion): New function. 5472 (can_widen_reference_to): Call add_type_assertion(). 5473 * decl.c (java_init_decl_processing): Add verify_identifier_node. 5474 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type). 5475 (finish_class): Output TYPE_VERIFY_METHOD (type). 5476 5477 * decl.c (end_java_method): Nullify unused fields. 5478 54792004-08-17 Andrew Haley <aph@redhat.com> 5480 5481 * verify.c (defer_merging): Quieten. 5482 * jcf-parse.c (load_class): Only try to open a class file if it's 5483 java.lang.Object or if it's part of the current compilation. 5484 Check that the class we just tried to load is the class we just 5485 loaded. Quieten. 5486 (java_parse_file): Set flag_verify_invocations off if we're 5487 compiling from .class. 5488 (parse_zip_file_entries): Abort if we try to read a dummy class. 5489 * expr.c (can_widen_reference_to): Quieten. 5490 (build_invokevirtual): Abort if we try to invokevirtual an 5491 interface. 5492 (expand_invoke): Don't build a non-interface call to an interface. 5493 (build_instanceof): Don't do premature optimization if 5494 flag_verify_invocations is not set. 5495 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY 5496 from superclass. 5497 (build_static_field_ref): Add correct type conversion for 5498 field_address. 5499 (add_miranda_methods): Disable generation of Miranda methods for 5500 dummy classes. 5501 (layout_class_method): Don't complain about non-static method 5502 overrides static method with dummy classes. 5503 55042004-08-13 Tom Tromey <tromey@redhat.com> 5505 5506 * class.c (build_static_field_ref): Re-enable atable lookups for 5507 static fields. 5508 5509 * parse.y (strip_out_static_field_access_decl): Indentation fix. 5510 55112004-08-11 Tom Tromey <tromey@redhat.com> 5512 5513 * gcj.texi (libgcj Runtime Properties): Document new properties. 5514 55152004-08-06 Andrew Haley <aph@redhat.com> 5516 5517 * jcf-parse.c (load_class): Check that we really have loaded the 5518 class we're looking for. 5519 55202004-07-19 Andrew Haley <aph@redhat.com> 5521 5522 * verify.c (verify_jvm_instructions): Comment change only. 5523 5524 * typeck.c (build_java_array_type): Add size field to array name. 5525 5526 * java-tree.h (LOCAL_SLOT_P): New. 5527 (update_aliases): Add PC argument. 5528 (pushdecl_function_level): New function. 5529 5530 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL, 5531 MODIFY_EXPR, and SAVE_EXPR. 5532 (java_gimplify_modify_expr): New function. 5533 5534 * expr.c (push_type_0): Call find_stack_slot() to create temporary. 5535 (expand_iinc): Pass PC to update_aliases(). 5536 (STORE_INTERNAL): Likewise. 5537 (process_jvm_instruction): Likewise. 5538 5539 * decl.c (base_decl_map): New variable. 5540 (uniq): New variable. 5541 (update_aliases): Rewrite with more thorough checking. 5542 (debug_variable_p): New function. 5543 (push_jvm_slot): Don't initialize local variable. Don't pushdecl. 5544 (check_local_named_variable): Delete whole function. 5545 (initialize_local_variable): New function. 5546 (check_local_unnamed_variable): Add checks and comments. 5547 (find_local_variable): Rewrite. 5548 (java_replace_reference): New function. 5549 (function_binding_level): New variable. 5550 (pushdecl_function_level): New function. 5551 (maybe_pushlevels): Set DECL_LOCAL_END_PC. 5552 (maybe_pushlevels): Call pushdecl() on each of the new decls. 5553 (start_java_method): Reset uniq. Create base_decl_map. Set 5554 function_binding_level. 5555 (end_java_method): Null unused fields to save memory. 5556 55572004-06-29 Andrew Haley <aph@redhat.com> 5558 5559 * except.c (expand_start_java_handler): Push a new binding level. 5560 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call 5561 register_exception_range() to register where we'll do it. 5562 (expand_end_java_handler): Remove old bogus code. Replace with 5563 new logic that simply builds TRY_CATCH_EXPRs and inserts them at 5564 the top of the expression we're curently building. 5565 (maybe_end_try): Delete. 5566 * decl.c (binding_level.exception_range): New field. 5567 (clear_binding_level): Add field exception_range. Reformat. 5568 (poplevel): Call expand_end_java_handler(). 5569 (poplevel): Call java_add_stmt only if functionbody is false. 5570 (maybe_poplevels): Don't call maybe_end_try() from here. 5571 (end_java_method): Clear no longer used trees in function decl. 5572 (register_exception_range): New function. 5573 * java-tree.h (register_exception_range, struct eh_range): Declare. 5574 55752004-06-22 Andrew Haley <aph@redhat.com> 5576 5577 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of 5578 the otable. 5579 * check-init.c (get_variable_decl): Teach check-init about 5580 FIELD_DECLs addressed via the otable. 5581 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not 5582 CLASS_PARSED_P. 5583 55842004-05-28 Andrew Haley <aph@redhat.com> 5585 5586 * jcf-parse.c (load_class): Don't try to read a class that we've 5587 already read. 5588 5589 * expr.c (build_invokeinterface): Use the old-fashioned way of 5590 doing indirect dispatch: look up interfaces by name. 5591 * java-tree.h (enum java_tree_index): Add 5592 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE 5593 * decl.c (java_init_decl_processing): Add 5594 soft_lookupinterfacemethodbyname_node. 5595 5596 * gjavah.c (print_method_info): Final methods have vtable entries, 5597 so gjavah needs to output them. 5598 * class.c (layout_class_method): Generate vtable entries for final 5599 methods. 5600 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect 5601 dispatch, even if a method is final. 5602 56032004-05-25 Andrew Haley <aph@redhat.com> 5604 5605 * class.c (build_symbol_entry): Convert the names of constructors 5606 to init_identifier_node when generating an entry for the indirect 5607 dispatch table. 5608 5609 * expr.c (build_known_method_ref): Generate indirect calls for 5610 all methods marked DECL_EXTERNAL or TREE_PUBLIC. 5611 56122004-05-24 Andrew Haley <aph@redhat.com> 5613 5614 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to 5615 atable element is of the right type. 5616 5617 * class.c (build_static_field_ref): Cast pointer to correct type 5618 for field. 5619 56202004-04-20 Bryce McKinlay <mckinlay@redhat.com> 5621 5622 * Merged with HEAD as of 20040514. Diff against 5623 gcj-abi-2-merge-20040514. 5624 56252004-04-16 Andrew Haley <aph@redhat.com> 5626 5627 * verify.c (check_pending_block): Disable subroutine checks. 5628 (defer_merging): New function. 5629 (merge_types): If types are dummy, use defer_merging to combine them. 5630 (verify_jvm_instructions): If invocation is invokeinterface and 5631 target is dummy, assume target really is an interface. 5632 5633 * parse.y (patch_invoke): Break out call to java_create_object. 5634 5635 * lang.c (flag_verify_invocations): New. 5636 5637 * jcf-parse.c (load_class): If we've already failed to load a 5638 class, don't try again. 5639 (load_class): If we can't find a .class file, don't fail, but emit 5640 a warning. 5641 (parse_class_file): Don't act on dummy methods. 5642 5643 * java-tree.h (flag_verify_invocations): New. 5644 (TYPE_DUMMY): New. 5645 (lang_type.dummy_class): New field. 5646 (java_create_object): New function. 5647 (METHOD_DUMMY): New. 5648 5649 * expr.c (build_field_ref): Widen field offset. 5650 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check 5651 that each of its elements is compatible with the one we're 5652 popping. 5653 (pop_type_0): Issue a warning to say that we need to generate a 5654 runtime check. 5655 (java_create_object): New function. 5656 (build_field_ref): Only generate hard refs if we're not using 5657 indirect dispatch. 5658 (expand_java_field_op): If we're using !verify_invocations and we 5659 see a missing field, generate a decl for it. 5660 5661 (expand_invoke): If a class doesn't have the method we seek and 5662 we're using !flag_verify_invocations, generate a decl for the 5663 method now. 5664 5665 (build_known_method_ref): Always use indirect dispatch via the 5666 atable for static methods. 5667 5668 (expand_java_NEW): Break out object creation into new function, 5669 java_create_object. 5670 5671 (can_widen_reference_to): Issue a warning to say that we need to 5672 generate a runtime check. 5673 5674 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass. 5675 (make_method_value): Also use index for interfaces. 5676 (make_class_data): Skip dummy field for inherited data. 5677 Don't build method array for dummy methods. 5678 Set size_in_byte to -1 when using inirect dispatch 5679 Don't build a hard class ref if we don't have a hard ref to our 5680 superclass, or if we're using inirect dispatch. 5681 Null out dispatch tables. 5682 5683 (layout_class_method): Don't complain about non-static method 5684 overrides static method is method is artificial. 5685 5686 (build_static_field_ref): Disable atable references to static 5687 fields for the time being. 5688 5689 (layout_class_methods): Check for CLASS_INTERFACE as 5690 well as CLASS_ABSTRACT. 5691 56922004-11-24 Steven Bosscher <stevenb@suse.de> 5693 5694 * class.c (make_class_data): Don't check flag_inline_functions. 5695 * lang.c (flag_really_inline): Remove unused flag. 5696 (java_handle_option): Don't set it here. Remove special handling 5697 of flag_inline_functions for Java. 5698 (java_init): Don't set flag_inline_trees here. Already done... 5699 (java_post_options): ...here. Don't clear flag_inline_functions. 5700 57012004-11-24 Steven Bosscher <stevenb@suse.de> 5702 5703 * java-gimplify.c (java_gimplify_labeled_block_expr): New function. 5704 (java_gimplify_exit_block_expr): New function. 5705 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and 5706 LABELED_BLOCK_EXPR. 5707 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def. 5708 (EXIT_BLOCK_EXPR): Likewise. 5709 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h. 5710 (LABELED_BLOCK_BODY): Likewise. 5711 (EXIT_BLOCK_LABELED_BLOCK): Likewise. 5712 * jcf-write.c (generate_bytecode_insns): Don't handle the unused 5713 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of 5714 TREE_OPERAND. 5715 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR. 5716 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and 5717 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the 5718 second operand of EXIT_BLOCK_EXPR. 5719 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of 5720 TREE_OPERAND. 5721 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes. 5722 57232004-11-23 Ben Elliston <bje@au.ibm.com> 5724 5725 * xref.h (xref_flag_value): Remove. 5726 (xref_set_data, xref_get_data): Likewise. 5727 (xref_set_current_fp): Likewise. 5728 (XREF_NONE): Likewise. 5729 (XREF_GET_DATA): Likewise. 5730 * xref.c (xref_flag_value): Remove. 5731 (xref_set_data, xref_get_data): Likewise. 5732 (xref_set_current_fp): Likewise. 5733 57342004-11-23 Ben Elliston <bje@au.ibm.com> 5735 5736 * gjavah.c (output_directory): Make static. 5737 (temp_directory): Likewise. 5738 57392004-11-15 Tom Tromey <tromey@redhat.com> 5740 5741 * decl.c (instn_ptr_type_node): Removed. 5742 (lineNumbers_ptr_type_node): Removed. 5743 (jint_type): Removed. 5744 (jint_ptr_type): Removed. 5745 57462004-11-09 Andrew Pinski <pinskia@physics.uc.edu> 5747 5748 PR java/15576 5749 * check-init.c (check_init): Ignore DECL_EXPR. 5750 * expr.c (always_initialize_class_p): Reenable. 5751 (build_class_init): Use a variable to store the decl. Also use 5752 boolean_false_node instead of integer_zero_node. 5753 * parse.y (attach_init_test_initialization_flags): Add a decl_expr 5754 to the block. 5755 57562004-11-08 Tom Tromey <tromey@redhat.com> 5757 5758 PR java/16843: 5759 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when 5760 generating a JNI header. 5761 (print_field_info): Handle JNI headers. 5762 (jni_print_float): Likewise. 5763 (jni_print_double): Likewise. 5764 57652004-11-08 Andrew Pinski <pinskia@physics.uc.edu> 5766 5767 * decl.c (end_java_method): Remove duplicated code. 5768 57692004-11-06 Zack Weinberg <zack@codesourcery.com> 5770 Gerald Pfeifer <gerald@pfeifer.com> 5771 5772 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H 5773 as well. 5774 57752004-11-02 Bryce McKinlay <mckinlay@redhat.com> 5776 5777 PR java/17265 5778 * class.c: Reinstate 2004-08-18 patch. 5779 (make_local_function_alias): Don't create an alias for extern (native) 5780 functions. 5781 57822004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr> 5783 5784 PR java/17265 5785 * class.c (make_local_function_alias): Revert 2004-08-18 change. 5786 (make_method_value): Likewise. 5787 57882004-10-21 Andrew Haley <aph@redhat.com> 5789 5790 PR java/18091: 5791 * jcf-parse.c (set_source_filename): Add code to build new sfname. 5792 57932004-10-20 Andrew Haley <aph@redhat.com> 5794 5795 * decl.c (end_java_method): Don't expand if flag_syntax_only. 5796 Remove duplicated code block. 5797 57982004-10-18 Steven Bosscher <stevenb@suse.de> 5799 5800 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn): 5801 New rules to work around old Bison warnings. 5802 58032004-10-17 Steven Bosscher <stevenb@suse.de> 5804 5805 * class.c (ident_subst): Always alloca buffer. 5806 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy 5807 opcode after including javaop.def. 5808 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the 5809 conditional expression that exits, to avoid warnings. 5810 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as 5811 a user of an extension. 5812 * win32-host.c: Move check down to have non-empty file when 5813 WIN32 is not defined. 5814 5815 * Make-lang.in (java-warn): Add STRICT_WARN. 5816 (java/jcf-io.o-warn): Don't have Werror for this file. 5817 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use. 5818 58192004-10-16 Hans-Peter Nilsson <hp@bitrange.com> 5820 5821 * expr.c (expr_add_location): Move declaration to before all 5822 statements. 5823 * parse.y (java_expand_classes): Ditto. 5824 * lex.c (java_peek_unicode): Ditto. 5825 58262004-10-16 Ranjit Mathew <rmathew@hotmail.com> 5827 5828 * check-init.c: Use %<, %> and %q for quoting in diagnostics, 5829 if possible, else convert `foo' to 'foo'. 5830 * class.c: Likewise. 5831 * decl.c: Likewise. 5832 * expr.c: Likewise. 5833 * jcf-io.c: Likewise. 5834 * jcf-parse.c: Likewise. 5835 * lang.c: Likewise. 5836 * lex.c: Likewise. 5837 * parse.h: Likewise. 5838 58392004-10-16 Ranjit Mathew <rmathew@hotmail.com> 5840 5841 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and 5842 rename parameter 'msg' to 'msgid' in function declaration. 5843 (issue_warning_error_from_context): Likewise. 5844 (yyerror): Rename parameter 'msg' to 'msgid'. 5845 (all over): Use new quoting style for diagnostics. 5846 58472004-10-15 Kazu Hirata <kazu@cs.umass.edu> 5848 5849 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c, 5850 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c: 5851 Update copyright. 5852 58532004-10-14 Matt Austern <austern@apple.com> 5854 5855 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct 5856 pointer_set_t* now. 5857 58582004-10-13 Tom Tromey <tromey@redhat.com> 5859 5860 PR java/15578: 5861 * lang.opt (--extdirs): Document. 5862 * jvspec.c (lang_specific_driver): Recognize -encoding and 5863 -extdirs. 5864 58652004-10-06 Ulrich Weigand <uweigand@de.ibm.com> 5866 5867 * parse.y (issue_warning_error_from_context): Use va_list * 5868 instead of va_list parameter. 5869 (parse_error_context): Update call. 5870 (parse_warning_context): Likewise. 5871 58722004-10-05 Zack Weinberg <zack@codesourcery.com> 5873 5874 * parse.y, parse-scan.y: Add list of diagnostic messages to 5875 insulate translation template from version of yacc/bison used 5876 to compile the grammar. 5877 58782004-10-05 Ranjit Mathew <rmathew@hotmail.com> 5879 5880 Prepare for %q, %< and %> in diagnostic message strings. 5881 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2. 5882 Name second parameter 'msgid'. 5883 * parse.y: Additionally include pretty-print.h and diagnostic.h. 5884 (issue_warning_error_from_context): Use pretty-printer functions 5885 instead of vsprintf for constructing formatted messages. Rename 5886 parameter 'msg' to 'msgid'. 5887 (parse_error_context): Rename parameter 'msg' to 'msgid'. 5888 (parse_warning_context): Likewise. 5889 58902004-10-05 Andrew Haley <aph@redhat.com> 5891 5892 PR java/17779 5893 * jcf-parse.c (parse_zip_file_entries): If a class has a 5894 superclass and a TYPE_SIZE of zero, lay it out. 5895 58962004-09-30 Andrew Haley <aph@redhat.com> 5897 5898 PR java/17733 5899 * jcf-parse.c (compute_class_name): Rewrite. 5900 59012004-10-01 Jan Hubicka <jh@suse.cz> 5902 5903 * java.c (java_expand_body): Update call of tree_rest_of_compilation. 5904 59052004-10-01 Kazu Hirata <kazu@cs.umass.edu> 5906 5907 * lex.c: Fix a comment typo. 5908 59092004-10-01 Kazu Hirata <kazu@cs.umass.edu> 5910 5911 * java-tree.h: Fix a comment typo. 5912 59132004-09-30 Per Bothner <per@bothner.com> 5914 5915 Simplify lexer. Implement --enable-mapped-location support. 5916 * jcf-parse.c (parse_class_file): Use linemap_line_start. 5917 (parse_source_file_1): Pass filename as extra parameter, so we can call 5918 linemap_add and set input_location here, rather than in both callers. 5919 (read_class): Pass copied filename to parse_source_file_1. 5920 Don't initialize wfl_operator - only needed for source compilation. 5921 (read_class, jcf_parse): Call linemap_add with LC_LEAVE. 5922 * lex.h: Remove a bunch of debugging macros. 5923 * lex.h (struct_java_line, struct java_error): Remove types. 5924 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead. 5925 (struct java_lc_s): Remove prev_col field. 5926 (struct java_lexer): New fields next_unicode, next_columns, and 5927 avail_unicode. New position field, and maybe token_start field. 5928 Don't need hit_eof field - use next_unicode == -1 instead. 5929 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR. 5930 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly. 5931 * parse.h: Various changes for USE_MAPPED_LOCATION. 5932 (EXPR_WFL_EMIT_LINE_NOTE): XXX 5933 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros. 5934 (struct parser_ctxt): New file_start_location field. 5935 Remove p_line, c_line fields since we no longer save lines. 5936 Remove elc, lineno, and current_jcf fields - no longer used. 5937 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer. 5938 Don't use EXPR_WFL_ADD_COL since that isn't trivial with 5939 source_location and is probably not needed anymore anyway. 5940 Use new expr_add_Location function. 5941 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro. 5942 (java_pop_parser_context): Minor cleanup. 5943 (java_parser_context_save_global, java_parser_context_restore_global, 5944 java_pop_parser_context): Save/restore input_location as a unit. 5945 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take 5946 a source_location instead of a wfl context node. 5947 (check_class_interface_creation): input_filename is not addressable. 5948 (create_artificial_method): Calling java_parser_context_save_global 5949 and java_parser_context_restore_global is overkill. Instead, 5950 temporarily set input_location from class decl. 5951 (java_layout_seen_class_methods): Set input_location from method decl. 5952 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION. 5953 (finish_loop_body): Likewise. 5954 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl. 5955 (java_sprint_unicode): Take a character, not index in line. 5956 (java_sneak_uncode): Replaced by java_peek_unicode. 5957 (java_unget_unicode): No longer used. 5958 (java_allocate_new_line. java_store_unicode): Removed, since we 5959 no longer remember "lines". 5960 (java_new_lexer): Update for new data structures. 5961 (java_read_char): Move unget_value checking to java_read_unicode. 5962 (java_get_unicode, java_peek_unicode, java_next_unicode): New more 5963 efficient functions that are used directly when lexing. 5964 (java_read_unicode_collapsing_terminators): No longer needed. 5965 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex): 5966 Re-organize to use java_peek_unicode to avoid java_unget_unicode. 5967 (java_parse_escape_sequence): Rewrite to be simpler / more efficient. 5968 (do_java_lex): Lots of movings around to avoid java_unget_unicode, 5969 combine switch branches, and test for common token kinds earlier. 5970 (java_lex_error): Rewrite. 5971 * jv-scan.c (expand_location): New function, copied from tree.c. 5972 (main): Set ctxp->filename instead of setting input_filename directly. 5973 59742004-09-30 Per Bothner <per@bothner.com> 5975 5976 More cleanup for --enable-mapped-location. 5977 * class.c (push_class): If USE_MAPPED_LOCATION don't set 5978 input_location here. Instead do it in give_name_to_class. 5979 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out. 5980 * expr.c (expand_byte_code): Call linemap_line_start. 5981 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final 5982 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE. 5983 (expr_add_location): New function, if USE_MAPPED_LOCATION. 5984 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call 5985 to USE_MAPPED_LOCATION case. 5986 5987 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros. 5988 * jcf-parse.c (java_parse_file): Don't set input_filename. 5989 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames. 5990 Create a list of TRANSLATION_UNIT_DECL. 5991 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The 5992 reason is so we can set a DECL_SOURCE_LOCATION for each file. 5993 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P.. 5994 Create line-map LC_ENTER/LC_LEAVE entries for archive itself. 5995 (file_start_location): New static. 5996 (set_source_filename): Avoid extra access to input_filename macro. 5997 Concatenate new name with class's package prefix. 5998 (set_source_filename, give_name_to_class): Update. 5999 (give_name_to_class): Set class's "line 0" input_location here. 6000 (parse_class_file): Set input_location as a unit. 6001 6002 * jcf-parse.c (load_class): Sanity test if missing inner class file. 6003 60042004-09-29 Per Bothner <per@bothner.com> 6005 6006 * java-tree.h: Redefine some macros and add some declaration 6007 to handle the USE_MAPPED_LOCATION case. 6008 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2. 6009 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1. 6010 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in 6011 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone. 6012 6013 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case. 6014 * decl.c (finish_method, java_add_stmt): Likewise. 6015 * java-gimplify.c (java-gimplify.c): Likewise. 6016 * jcf-write.c (generate_bytecode_insns): Likewise. 6017 * lang.c (java_post_options): Likewise - call linemap_add. 6018 60192004-09-29 Andrew Haley <aph@redhat.com> 6020 6021 PR java/17007 6022 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the 6023 result of TRUNC_MOD_EXPR. 6024 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw. 6025 * decl.c (java_init_decl_processing): Mark 6026 soft_lookupinterfacemethod_node and soft_instanceof_node pure. 6027 60282004-09-28 Tom Tromey <tromey@redhat.com> 6029 6030 PR java/15710: 6031 * class.c (add_miranda_methods): Load superinterface if not 6032 already loaded. 6033 60342004-09-28 Andrew Haley <aph@redhat.com> 6035 6036 PR java/17586 6037 * jcf-parse.c (load_class): Don't try to read a class that we've 6038 already read. 6039 60402004-09-28 Andrew Haley <aph@redhat.com> 6041 6042 * jcf-parse.c (load_class): Back out previous broken patch. 6043 60442004-09-28 Andrew Haley <aph@redhat.com> 6045 6046 PR java/17586 6047 * jcf-parse.c (load_class): Don't try to read a class that we've 6048 already read. 6049 Check that we really did read the right class. 6050 60512004-09-25 Tom Tromey <tromey@redhat.com> 6052 6053 PR java/17500: 6054 * parse.y (create_artificial_method): Use add_method_1. 6055 60562004-09-25 Kazu Hirata <kazu@cs.umass.edu> 6057 6058 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix 6059 comment typos. 6060 * gcj.texi: Fix typos. 6061 60622004-09-24 Tom Tromey <tromey@redhat.com> 6063 6064 PR java/15656: 6065 * parse.y (class_instance_creation_expression): Set `$$' to NULL 6066 in error parts of rule. 6067 (unary_expression): Don't call error_if_numeric_overflow when $1 6068 is NULL. 6069 60702004-09-24 Tom Tromey <tromey@redhat.com> 6071 6072 PR java/16789: 6073 * parse.y (resolve_qualified_expression_name): Set 6074 CAN_COMPLETE_NORMALLY on first call when chaining static calls. 6075 * expr.c (force_evaluation_order): Check for empty argument list 6076 after stripping COMPOUND_EXPR. 6077 60782004-09-23 Andrew Haley <aph@redhat.com> 6079 6080 PR java/16927: 6081 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of 6082 COND_EXPRs. 6083 60842004-09-23 Tom Tromey <tromey@redhat.com> 6085 6086 PR java/17329: 6087 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case 6088 where operand is null. 6089 60902004-09-23 Tom Tromey <tromey@redhat.com> 6091 6092 PR java/17380: 6093 * parse.y (not_accessible_p): Allow access to protected members 6094 even when class is not static. 6095 60962004-09-22 Kelley Cook <kcook@gcc.gnu.org> 6097 6098 * Make-lang.in: Revert the gcc-none.o change. 6099 61002004-09-22 Nathan Sidwell <nathan@codesourcery.com> 6101 6102 * parse.y (patch_anonymous_class): VEC_space returns true if there 6103 is space. 6104 61052004-09-21 Matt Austern <austern@apple.com> 6106 6107 Fix bootstrap. 6108 * gjavah.c (free_method_name_list): Fix function definition so 6109 it's a proper C prototype. 6110 61112004-09-21 Tom Tromey <tromey@redhat.com> 6112 6113 PR java/17575: 6114 * gjavah.c (free_method_name_list): New method. 6115 (main): Call it. 6116 61172004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com> 6118 Zack Weinberg <zack@codesourcery.com> 6119 6120 * java-tree.def: Use tree_code_class enumeration constants 6121 instead of code letters. 6122 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for 6123 new tree-class enumeration constants. 6124 61252004-09-13 Tom Tromey <tromey@redhat.com> 6126 6127 PR java/17216: 6128 * class.c (layout_class_method): Put synthetic methods into the 6129 vtable. 6130 61312004-09-11 Andrew Pinski <apinski@apple.com> 6132 6133 * Make-lang.in (java/ggc-none.c): Change dependency 6134 for ggc.h into $(GGC_H). 6135 61362004-09-11 Mohan Embar <gnustuff@thisiscool.com> 6137 6138 * Make-lang.in (java/win32-host.o): Add dependency on 6139 coretypes.h. 6140 * win32-host.c: Add includes for coretypes.h, jcf.h 6141 61422004-09-11 Mohan Embar <gnustuff@thisiscool.com> 6143 6144 * Make-lang.in (GCJH_OBJS): Change dependency from 6145 ggc-none.o to java/ggc-none.o 6146 (JCFDUMP_OBJS): Likewise. 6147 (java/ggc-none.o): New target. 6148 61492004-08-25 Nathan Sidwell <nathan@codesourcery.com> 6150 6151 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls. 6152 * class.c (build_utf8_ref, build_static_field_ref, 6153 make_field_value, make_method_value, get_dispatch_table, 6154 make_class_data, emit_symbol_table, emit_catch_table): Likewise. 6155 * constants.c (get_tag_node, build_ref_from_constant_pool, 6156 build_constants_constructor): Likewise. 6157 * decl.c (java_init_decl_processing): Likewise. 6158 * expr.c (build_java_array_length_access, build_newarray, 6159 expand_java_multianewarray, expand_java_pushc, expand_iinc, 6160 build_java_binop, build_field_ref, expand_java_add_case, 6161 expand_java_call, build_known_method_ref, build_invokevirtual, 6162 build_invokeinterface, build_jni_stub): Likewise. 6163 * java-gimplify.c (java_gimplify_new_array_init): Likewise. 6164 * jcf-parse.c (get_constant): Likewise. 6165 * lex.c (do_java_lex): Likewise. 6166 * parse.y (patch_binop, patch_unaryop, patch_cast, 6167 build_newarray_node, patch_newarray): Likewise. 6168 * resource.c (compile_resource_data): Likewise. 6169 * typeck.c (build_prim_array_type): Likewise. 6170 61712004-08-24 Nathan Sidwell <nathan@codesourcery.com> 6172 6173 * decl.c (java_init_decl_processing): Adjust 6174 initialize_sizetypes call. 6175 61762004-08-23 Nathan Sidwell <nathan@codesourcery.com> 6177 6178 * jv-scan.c (fancy_abort): Add. 6179 61802004-08-20 Nathan Sidwell <nathan@codesourcery.com> 6181 6182 * expr.c (build_java_arrayaccess): Use convert to change 6183 len's type. 6184 61852004-08-19 Bryce McKinlay <mckinlay@redhat.com> 6186 6187 * class.c (make_local_function_alias): Allocate extra space for 'L' 6188 in name buffer. Reported by Thomas Neumann. 6189 61902004-08-19 Nathan Sidwell <nathan@codesourcery.com> 6191 6192 * parse.h (JAVA_RADIX10_FLAG): Rename to ... 6193 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning. 6194 * lex.c (do_java_lex): Adjust. 6195 (error_if_numeric_overflow): Likewise. 6196 61972004-08-18 Andrew Pinski <apinski@apple.com> 6198 6199 * class.c (make_local_function_alias): Only make a new decl if we 6200 support alias attribute on all decls. 6201 62022004-08-18 Bryce McKinlay <mckinlay@redhat.com> 6203 6204 * class.c (make_local_function_alias): New function. Create local 6205 alias for public method DECL. 6206 (make_method_value): Use make_local_function_alias. 6207 * parse.y (craft_constructor): Don't special-case anonymous classes. 6208 Always set ctor_name to init_identifier_node. 6209 (lookup_method_invoke): Call layout_class_method when creating 6210 anonymous class constructor. 6211 62122004-08-18 Richard Henderson <rth@redhat.com> 6213 6214 * java-gimplify.c (java_gimplify_expr): Move '2' handling into 6215 default case. Treat '<' similarly. Update for 6216 is_gimple_formal_tmp_var name change. 6217 62182004-08-17 Andrew Haley <aph@redhat.com> 6219 6220 * lang.c (lang_printable_name): Obey verbose flag. 6221 * parse.y (constructor_circularity_msg): Set VERBOSE arg for 6222 lang_printable_name(). 6223 (verify_constructor_circularity, get_printable_method_name, 6224 check_abstract_method_definitions, java_check_regular_methods, 6225 java_check_abstract_methods, check_inner_class_access, 6226 fix_constructors, patch_method_invocation, patch_return): 6227 Likewise. 6228 * expr.c (pop_type_0): Likewise. 6229 6230 * java-tree.h (lang_printable_name_wls): Delete. 6231 62322004-08-16 Tom Tromey <tromey@redhat.com> 6233 6234 PR java/8473: 6235 * parse.y (primary): Changed for initialized and uninitialized 6236 array creations. 6237 (array_access): Handle array_creation_initialized. 6238 (array_creation_expression): Split into 6239 array_creation_initialized and array_creation_uninitialized. 6240 62412004-08-16 Andrew Haley <aph@redhat.com> 6242 6243 * jcf-write.c (find_constant_index): Canonicalize NaNs when 6244 generating bytecode. 6245 62462004-08-16 Elliot Lee <sopwith@redhat.com> 6247 6248 PR java/9677 6249 * jcf-parse.c (java_parse_file): Handle filenames with embedded 6250 spaces, and quoted filelists. 6251 62522004-08-15 Nathan Sidwell <nathan@codesourcery.com> 6253 6254 * boehm.c (get_boehm_type_descriptor): Use build_int_cst. 6255 * class.c (build_utf8_ref, build_static_field_ref, 6256 make_field_value, make_method_value, get_dispatch_table, 6257 make_class_data, emit_symbol_table, emit_catch_table): Likewise. 6258 * constants.c (get_tag_node, build_ref_from_constant_pool, 6259 build_constants_constructor): Likewise. 6260 * decl.c (java_init_decl_processing): Likewise. 6261 * expr.c (build_java_array_length_access, build_newarray, 6262 expand_java_multianewarray, expand_java_pushc, expand_iinc, 6263 build_java_binop, build_field_ref, expand_java_add_case, 6264 expand_java_call, build_known_method_ref, build_invokevirtual, 6265 build_invokeinterface, build_jni_stub): Likewise. 6266 * java-gimplify.c (java_gimplify_new_array_init): Likewise. 6267 * jcf-parse.c (get_constant): Likewise. 6268 * lex.c (do_java_lex): Likewise. 6269 * parse.y (patch_binop, patch_unaryop, patch_cast, 6270 build_null_of_type, patch_newarray): Likewise. 6271 * resource.c (compile_resource_data): Likewise. 6272 * typeck.c (build_prim_array_type): Likewise. 6273 62742004-08-10 Bryce McKinlay <mckinlay@redhat.com> 6275 6276 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var. 6277 Don't create BLOCK here or call java_gimplify_block. 6278 62792004-08-09 H.J. Lu <hongjiu.lu@intel.com> 6280 6281 * java-tree.h (flag_deprecated): Removed. 6282 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated). 6283 * parse.y (check_deprecation): Check warn_deprecated instead of 6284 flag_deprecated. 6285 62862004-08-06 Kelley Cook <kcook@gcc.gnu.org> 6287 6288 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant, 6289 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check, 6290 flag_hash_synchronization, flag_assert, flag_jni, flag_newer, 6291 flag_check_references, flag_extraneous_semicolon, flag_deprecated, 6292 flag_force_classes_archive_check, flag_optimize_sci, 6293 flag_indirect_dispatch): Remove explicit declarations. 6294 * lang.opt: Add implicit declare/define/assign. Remove obsolete 6295 final comment. 6296 62972004-08-05 Michael Chastain <mec.gnu@mindspring.com> 6298 6299 PR bootstrap/14893 6300 * Make-lang.in (java.install-man): Install from either build 6301 tree or source tree, whichever has the file first. 6302 63032004-08-05 Nathan Sidwell <nathan@codesourcery.com> 6304 6305 * jcf-parse.c (get_constant): Adjust force_fit_type call. 6306 * lex.h (SET_LVAL_NODE_TYPE): Remove. 6307 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly. 6308 (do_java_lex): Likewise. Adjust force_fit_type call. 6309 63102004-08-04 Roger Sayle <roger@eyesopen.com> 6311 Andrew Haley <aph@redhat.com> 6312 6313 * typeck.c (convert_ieee_real_to_integer): Call fold on the range 6314 checking trees as they're being built. 6315 (convert): Call convert_ieee_real_to_integer if we're 6316 converting a constant, even if we're writing a class file. 6317 63182004-08-02 Bryce McKinlay <mckinlay@redhat.com> 6319 6320 PR java/16701 6321 * parse.y (fold_constant_for_init): Call resolve_field_access with 6322 correct current_class context. 6323 63242004-08-01 Roger Sayle <roger@eyesopen.com> 6325 6326 * decl.c (update_aliases, initialize_local_variable): Replace calls 6327 to build with calls to buildN. 6328 * java-gimplify.c (java_gimplify_modify_expr): Likewise. 6329 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise. 6330 * parse.h (BUILD_THROW): Likewise. 6331 * parse.y (switch_expression, synchronized_statement, 6332 catch_clause_parameter, array_creation_expression, 6333 conditional_expression, make_qualified_name, 6334 resolve_qualified_expression_name, patch_method_invocation, 6335 patch_invoke, build_method_invocation, build_new_invocation, 6336 build_assignment, patch_assignment, build_binop, patch_binop, 6337 build_string_concatenation, build_incdec, patch_unaryop, 6338 patch_cast, build_array_ref, build_newarray_node, patch_newarray, 6339 patch_return, build_if_else_statement, build_labeled_block, 6340 build_new_loop, build_loop_body, build_bc_statement, 6341 build_assertion, encapsulate_with_try_catch, build_try_statement, 6342 build_try_finally_statement, patch_synchronized_statement, 6343 emit_test_initialization): Likewise, replace build with buildN. 6344 63452004-07-28 Eric Christopher <echristo@redhat.com> 6346 6347 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete. 6348 (java_unsafe_for_reeval): Ditto. 6349 63502004-07-26 <hp@bitrange.com> 6351 6352 * parse.y (build_super_invocation): Adjust declaration order to 6353 avoid declaration after statement. 6354 63552004-07-25 Bernardo Innocenti <bernie@develer.com> 6356 6357 * decl.c: Rename all identifiers named `class' to `cl'. 6358 63592004-07-25 Richard Henderson <rth@redhat.com> 6360 6361 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P. 6362 63632004-07-23 Mike Stump <mrs@apple.com> 6364 6365 * boehm.c (set_bit): Improve type safety wrt unsignedness. 6366 * gjavah.c (throwable_p, decode_signature_piece, 6367 print_full_cxx_name, print_include, add_namelet, add_class_decl, 6368 process_file): Likewise. 6369 * jcf-dump.c (main): Likewise. 6370 * jcf-io.c (read_zip_member): Likewise. 6371 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant, 6372 give_name_to_class, get_class_constant): Likewise. 6373 * jcf-write.c (find_constant_wide, push_long_const, 6374 generate_classfile): Likewise. 6375 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise. 6376 * parse.y (read_import_dir): Likewise. 6377 * typeck.c (parse_signature_type): Likewise. 6378 * verify.c (verify_jvm_instructions): Likewise. 6379 * zextract.c (find_zip_file_start, read_zip_archive): Likewise. 6380 63812004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com> 6382 6383 * Make-lang.in: Replace rmic and rmiregistry references with 6384 grmic and grmiregistry. 6385 * gcj.texi: Likewise. 6386 63872004-07-20 Andrew Haley <aph@redhat.com> 6388 6389 PR java/16431. 6390 * verify.c (verify_jvm_instructions): Comment change only. 6391 6392 * typeck.c (build_java_array_type): Add size field to array name. 6393 6394 * java-tree.h (LOCAL_SLOT_P): New. 6395 (update_aliases): Add PC argument. 6396 (pushdecl_function_level): New function. 6397 6398 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL, 6399 MODIFY_EXPR, and SAVE_EXPR. 6400 (java_gimplify_modify_expr): New function. 6401 6402 * expr.c (push_type_0): Call find_stack_slot() to create temporary. 6403 (expand_iinc): Pass PC to update_aliases(). 6404 (STORE_INTERNAL): Likewise. 6405 (process_jvm_instruction): Likewise. 6406 6407 * decl.c (base_decl_map): New variable. 6408 (uniq): New variable. 6409 (update_aliases): Rewrite with more thorough checking. 6410 (debug_variable_p): New function. 6411 (push_jvm_slot): Don't initialize local variable. Don't pushdecl. 6412 (check_local_named_variable): Delete whole function. 6413 (initialize_local_variable): New function. 6414 (check_local_unnamed_variable): Add checks and comments. 6415 (find_local_variable): Rewrite. 6416 (java_replace_reference): New function. 6417 (function_binding_level): New variable. 6418 (pushdecl_function_level): New function. 6419 (maybe_pushlevels): Set DECL_LOCAL_END_PC. 6420 (maybe_pushlevels): Call pushdecl() on each of the new decls. 6421 (start_java_method): Reset uniq. Create base_decl_map. Set 6422 function_binding_level. 6423 (end_java_method): Null unused fields to save memory. 6424 64252004-07-20 Nathan Sidwell <nathan@codesourcery.com> 6426 6427 * class.c (add_interface_do): Remove. 6428 (set_super_info, interface_of_p, maybe_add_interface, 6429 add_interface, make_class_data, layout_class, 6430 add_miranda_methods): Adjust BINFO accessors and addition. 6431 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO 6432 accessors. 6433 * jcf-write.c (generate_classfile): Likewise. 6434 * parse.y (patch_anonymous_class, check_inner_circular_reference, 6435 check_circular_reference, java_complete_class, 6436 check_abstract_method_definitions, 6437 java_check_abstract_method_definitions, 6438 check_interface_throws_clauses, java_check_abstract_methods, 6439 lookup_java_interface_method2, 6440 find_applicable_accessible_methods_list): Adjust BINFO accessors 6441 and addition. 6442 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors. 6443 64442004-07-18 Roger Sayle <roger@eyesopen.com> 6445 6446 * builtins.c (max_builtin, min_builtin, 6447 java_build_function_call_expr): Replace calls to build with buildN. 6448 * class.c (build_class_ref, build_static_field_ref, 6449 get_dispatch_table, make_class_data, layout_class_method): Likewise. 6450 * constants.c (build_ref_from_constant_pool): Likewise. 6451 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method, 6452 add_stmt_to_compound): Likewise. 6453 * except.c (build_exception_object_ref, expand_end_java_handler): 6454 Likewise. 6455 * java-gimplify.c (java_gimplify_case_expr, 6456 java_gimplify_default_expr, java_gimplify_block, 6457 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise. 6458 * jcf-write.c (generate_bytecode_insns): Likewise. 6459 * typeck.c (convert_ieee_real_to_integer): Likewise. 6460 64612004-07-17 Joseph S. Myers <jsm@polyomino.org.uk> 6462 6463 * java-tree.h (builtin_function): Declare. 6464 64652004-07-16 Steven Bosscher <stevenb@suse.de> 6466 6467 * parse.y (java_complete_expand_methods, java_expand_classes): Don't 6468 abuse restore_line_number_status. 6469 64702004-07-15 Frank Ch. Eigler <fche@redhat.com> 6471 6472 g++/15861 6473 * jcf-parse.c (java_emit_static_constructor): Specify default 6474 priority. 6475 64762004-07-13 Per Bothner <per@bothner.com> 6477 6478 * java-tree.h (all_class_filename): Remove useless macro. 6479 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant. 6480 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro. 6481 * parse.y (java_parser_context_restore_global): Replace 6482 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier. 6483 * jcf-parse.c (read_class, java_parse_file): Likewise. 6484 64852004-07-12 Bryce McKinlay <mckinlay@redhat.com> 6486 6487 PR java/16474 6488 gjavah.c (print_field_info): Emit constant only if field is static. 6489 64902004-07-11 Roger Sayle <roger@eyesopen.com> 6491 6492 * expr.c (java_truthvalue_conversion, flush_quick_stack, 6493 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr, 6494 build_java_ret, build_java_throw_out_of_bounds_exception, 6495 build_java_array_length_access, java_check_reference, 6496 build_java_arrayaccess, build_java_arraystore_check, build_newarray, 6497 build_anewarray, expand_java_multianewarray, expand_java_arraystore, 6498 expand_java_arrayload, build_java_monitor, expand_java_return, 6499 expand_load_internal, expand_java_NEW, build_get_class, 6500 build_instanceof, expand_java_CHECKCAST, expand_iinc, 6501 build_java_soft_divmod, build_java_binop, build_field_ref, 6502 expand_compare, expand_java_goto, expand_java_switch, 6503 expand_java_add_case, build_class_init, build_known_method_ref, 6504 invoke_build_dtable, build_invokevirtual, build_invokeinterface, 6505 expand_invoke, build_jni_stub, expand_java_field_op, 6506 java_expand_expr, expand_byte_code, STORE_INTERNAL, 6507 force_evaluation_order, emit_init_test_initialization): Convert 6508 calls to "build" into calls to the prefered "buildN" functions. 6509 65102004-07-11 Joseph S. Myers <jsm@polyomino.org.uk> 6511 6512 * java-tree.h (set_block): Remove. 6513 * lang.c (java_clear_binding_stack): New. 6514 (LANG_HOOKS_CLEAR_BINDING_STACK): Define. 6515 * decl.c (struct binding_level): Remove this_block. 6516 (clear_binding_level): Likewise. 6517 (poplevel): Don't handle this_block. 6518 (set_block): Remove. 6519 65202004-07-10 Bryce McKinlay <mckinlay@redhat.com> 6521 6522 * class.c (common_enclosing_context_p): Remove statement with no 6523 side-effects. 6524 65252004-07-09 Bryce McKinlay <mckinlay@redhat.com> 6526 6527 PR java/8618 6528 * parse.y (create_anonymous_class): Remove 'location' argument. Use 6529 the WFL from TYPE_NAME to get line number for the decl. Fix comment. 6530 (craft_constructor): Inherit access flags for implicit constructor 6531 from the enclosing class. 6532 (create_class): Fix comment typo. 6533 (resolve_qualified_expression_name): Pass type of qualifier to 6534 not_accessible_p, not the type in which target field was found. 6535 (not_accessible_p): Handle inner classes. Expand protected 6536 qualifier-subtype check to enclosing instances, but don't apply this 6537 check to static members. Allow protected access to inner classes 6538 of a subtype. Allow private access within common enclosing context. 6539 (build_super_invocation): Get WFL line number info from current 6540 class decl. 6541 (build_incomplete_class_ref): Update for new create_anonymous_class 6542 signature. 6543 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use 6544 common_enclosing_instance_p. 6545 * class.c (common_enclosing_context_p): New. Determine if types 6546 share a common enclosing context, even across static contexts. 6547 (common_enclosing_instance_p): Renamed from 6548 common_enclosing_context_p. Determines if types share a common 6549 non-static enclosing instance. 6550 * java-tree.h (common_enclosing_instance_p): Declare. 6551 * jcf-write.c (get_method_access_flags): New. Surpress private flag 6552 for inner class constructors. 6553 (generate_classfile): Use get_method_access_flags. 6554 65552004-07-09 Bryce McKinlay <mckinlay@redhat.com> 6556 6557 * class.c (interface_of_p): Check for null TYPE_BINFO. 6558 65592004-07-09 Nathan Sidwell <nathan@codesourcery.com> 6560 6561 * class.c (make_class): Do not create binfo here. 6562 (set_super_info): Create it here. 6563 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo. 6564 65652004-07-08 Richard Henderson <rth@redhat.com> 6566 6567 * expr.c (case_identity, get_primitive_array_vtable, 6568 java_expand_expr, emit_init_test_initialization): Remove. 6569 * java-tree.h (java_expand_expr): Remove. 6570 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove. 6571 65722004-07-07 Per Bothner <per@bothner.com> 6573 6574 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we 6575 get internal error due to mismatched types. 6576 6577 * gcj.texi (Invoking gij): Document new -verbose:class flag. 6578 6579 * gcj.texi (Linking): New node. Document -lgij usage. 6580 65812004-07-07 Nathan Sidwell <nathan@codesourcery.com> 6582 6583 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros. 6584 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise. 6585 * java/class.c (set_super_info, class_depth, interface_of_p, 6586 maybe_add_interface, add_interface, make_class_data, 6587 layout_class, add_miranda_methods): Adjust BINFO macros. 6588 * expr.c (can_widen_reference_to, lookup_field): Likewise. 6589 * jcf-write.c (generate_classfile): Likewise. 6590 * parse.y (patch_anonymous_class, 6591 check_inner_circular_reference, check_circular_reference, 6592 java_complete_class, check_abstract_method_definitions, 6593 java_check_abstract_method_definitions, 6594 check_interface_throws_clauses, java_check_abstract_methods, 6595 lookup_java_interface_method2, 6596 find_applicable_accessible_methods_list): Likewise. 6597 * typeck.c (find_method_in_interface): Likewise. 6598 * verify.c (merge_types): Likewise. 6599 66002004-07-06 Nathan Sidwell <nathan@codesourcery.com> 6601 6602 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1. 6603 * class.c (add_interface_do): Use BINFO_VIRTUAL_P. 6604 66052004-07-05 Nathan Sidwell <nathan@codesourcery.com> 6606 6607 * class.c (make_class): Use make_tree_binfo. 6608 (set_super_info, add_interface_do): Likewise. 6609 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO. 6610 66112004-07-04 Ranjit Mathew <rmathew@hotmail.com> 6612 6613 * verify.c: Correct array element access formatting thinko. 6614 66152004-07-04 Ranjit Mathew <rmathew@hotmail.com> 6616 6617 * verify.c: Insert a short blurb at the start referring to the JVMS. 6618 (merge_type_state): Remove redundant nested if statement. 6619 (verify_jvm_instructions): Ensure current_subr is initialised to 6620 NULL_TREE. 6621 Minor formatting fixes all over the place. 6622 66232004-07-02 Richard Henderson <rth@redhat.com> 6624 6625 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite. 6626 66272004-07-01 Richard Henderson <rth@redhat.com> 6628 6629 * class.c (registerClass_libfunc): Remove. 6630 (init_class_processing): Don't set it. 6631 (emit_register_classes): Take list_p parameter. Fill it in 6632 with _Jv_RegisterClass calls. 6633 * decl.c (java_init_decl_processing): Don't call 6634 init_resource_processing. 6635 * jcf-parse.c (java_emit_static_constructor): New. 6636 (java_parse_file): Call it. 6637 * resource.c (registerResource_libfunc): Remove. 6638 (init_resource_processing): Remove. 6639 (write_resource_constructor): Take list_p parameter. Fill it in 6640 with _Jv_RegisterResource calls. 6641 * java-tree.h: Update prototypes. 6642 66432004-06-29 Bryce McKinlay <mckinlay@redhat.com> 6644 6645 PR java/1262 6646 * class.c (layout_class_method): Do not override package-private 6647 method if its in a different package. 6648 (split_qualified_name): Move here from parse.y. Rename from 6649 breakdown_qualified. Add comment. 6650 (in_same_package): Move here from parse.y. Add comment. 6651 * java-tree.h (break_down_qualified, in_same_package): Declare. 6652 (in_same_package): Likewise. 6653 * parse.y (breakdown_qualified, in_same_package): Moved to class.c. 6654 Callers updated. 6655 66562004-06-29 Andrew Haley <aph@redhat.com> 6657 6658 * except.c (expand_start_java_handler): Push a new binding level. 6659 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call 6660 register_exception_range() to register where we'll do it. 6661 (expand_end_java_handler): Remove old bogus code. Replace with 6662 new logic that simply builds TRY_CATCH_EXPRs and inserts them at 6663 the top of the expression we're curently building. 6664 (maybe_end_try): Delete. 6665 * decl.c (binding_level.exception_range): New field. 6666 (clear_binding_level): Add field exception_range. Reformat. 6667 (poplevel): Call expand_end_java_handler(). 6668 (poplevel): Call java_add_stmt only if functionbody is false. 6669 (maybe_poplevels): Don't call maybe_end_try() from here. 6670 (end_java_method): Clear no longer used trees in function decl. 6671 (register_exception_range): New function. 6672 * java-tree.h (register_exception_range, struct eh_range): Declare. 6673 66742004-06-28 Bryce McKinlay <mckinlay@redhat.com> 6675 6676 * jcf-write.c (get_classfile_modifiers): Formatting fixes. 6677 66782004-06-27 Ranjit Mathew <rmathew@hotmail.com> 6679 6680 Formatting fixes. 6681 * expr.c (class_has_finalize_method): Fix method name indentation. 6682 (expand_java_call): Remove K&R style parameter declaration. 6683 (expand_invoke): Fix statement indentation. 6684 (expand_java_field_op): Likewise. 6685 * parse-scan.y: Fix typo. 6686 (reset_report): Fix method name indentation. 6687 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank 6688 line. Fix typos. 6689 * verify.c (verify_jvm_instructions): Document parameters, insert 6690 page break. 6691 * lang.c (lang_init_source): Fix method name indentation. 6692 * class.c (common_enclosing_context_p): Likewise. 6693 (emit_symbol_table): Fix parameter list indentation. 6694 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style 6695 parameter declaration. 6696 * constants.c: Fix copyright notice indentation. 6697 * typeck.c (find_method_in_superclasses): Fix parameter list 6698 indentation. 6699 (find_method_in_interfaces): Likewise. 6700 * zextract.c (makelong): Fix method name indentation. 6701 67022004-06-26 Bryce McKinlay <mckinlay@redhat.com> 6703 6704 PR java/15715. 6705 * parse.y (create_interface): Set correct access modifiers for 6706 interfaces. 6707 * jcf-write.c (get_classfile_modifiers): New function. 6708 (generate_classfile): Use get_classfile_modifiers, not 6709 get_access_flags. 6710 67112004-06-26 Bryce McKinlay <mckinlay@redhat.com> 6712 6713 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super" 6714 dependency to current parser context, not NULL_TREE, for top-level 6715 classes. 6716 (jdep_resolve_class): Enable member access check for all inner 6717 class dependencies. 6718 67192004-06-26 Bryce McKinlay <mckinlay@redhat.com> 6720 6721 * parse.y (qualify_and_find): Pass type decl, not identifier, to 6722 load_class. 6723 67242004-06-26 Bryce McKinlay <mckinlay@redhat.com> 6725 6726 PR java/15734 6727 * expr.c (expand_java_field_op): Ensure that target class for static 6728 field access has been loaded. 6729 67302004-06-26 Bryce McKinlay <mckinlay@redhat.com> 6731 Ranjit Mathew <rmathew@hotmail.com> 6732 6733 PR java/1207, java/16178 6734 * jcf-parse.c (load_class): Return immediately if passed a type decl 6735 where CLASS_FROM_SOURCE_P is set. Remove FIXME. 6736 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P 6737 before calling load_class. 6738 (qualify_and_find): Likewise. 6739 (find_in_imports_on_demand): Likewise. 6740 (find_applicable_accessible_methods_list): Likewise. 6741 67422004-06-24 Bryce McKinlay <mckinlay@redhat.com> 6743 6744 * parse.y (java_layout_seen_class_methods): Don't call load_class 6745 on class defined by source parser. 6746 67472004-06-23 Bryce McKinlay <mckinlay@redhat.com> 6748 6749 * parse.y (set_nested_class_simple_name_value): Removed. 6750 (java_complete_expand_class): Remove calls to 6751 set_nested_class_simple_name_value. 6752 67532004-06-22 Andrew Haley <aph@redhat.com> 6754 Ranjit Mathew <rmathew@hotmail.com> 6755 6756 Fixes PR java/16113. 6757 * decl.c (force_poplevels): Remove call to expand_end_bindings. 6758 67592004-06-22 Ranjit Mathew <rmathew@hotmail.com> 6760 6761 * parse.y (create_class): Correct diagnostic message about 6762 java.lang.Object extending anything else. 6763 67642004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6765 6766 * class.c (build_class_ref): Add new operand for COMPONENT_REF. 6767 (build_static_field_ref): Likewise and add new operands for ARRAY_REF. 6768 * constants.c (build_ref_from_constant_pool): Likewise. 6769 * expr.c (build_java_array_length_access): Likewise. 6770 (build_get_class, build_field_ref, build_known_method_ref): Likewise. 6771 (invoke_build_dtable, build_invokevirtual): Likewise. 6772 (build_invokeinterface, java_expand_expr): Likewise. 6773 (emit_init_test_initialization): Likewise. 6774 * java-gimplify.c (java_gimplify_new_array_init): Likewise. 6775 * parse.y (make_qualifed_name, build_array_ref): Likewise. 6776 67772004-06-21 Andrew Haley <aph@redhat.com> 6778 6779 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new 6780 block. 6781 67822004-06-21 Joseph S. Myers <jsm@polyomino.org.uk> 6783 6784 * jcf.h (struct JCF): Change java_source, right_zip and finished 6785 to unsigned int. 6786 * lex.h (struct java_lexer): Change hit_eof, read_anything, 6787 byte_swap and use_fallback to unsigned int. 6788 * parse.h (struct _jdep): Change flag0 to unsigned int. 6789 67902004-06-17 Ranjit Mathew <rmathew@hotmail.com> 6791 6792 Fixes PR java/13948 6793 * parse.y (java_layout_seen_class_methods): Ensure class is loaded 6794 before trying to lay out its methods. 6795 * jcf-parse.c (read_class): Track parsed files using canonical paths 6796 obtained via lrealpath from libiberty. 6797 (java_parse_file): Likewise. 6798 (parse_source_file_1): Rename formal parameter to reflect its 6799 modified purpose. Minor formatting fix. 6800 68012004-06-15 Paolo Bonzini <bonzini@gnu.org> 6802 6803 * class.c (emit_register_classes): Make the function uninlinable, 6804 do not set current_function_cannot_inline. 6805 * resource.c (write_resource_constructor): Do not reset 6806 flag_inline_functions around rest_of_compilation. 6807 68082004-06-08 Andrew Pinski <pinskia@physics.uc.edu> 6809 6810 PR java/15769 6811 * expr.c (java_truthvalue_conversion): Handle 6812 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR, 6813 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators, 6814 i.e. return the expression. 6815 68162004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca> 6817 6818 * gjavah.c: Include version.h 6819 68202004-05-31 Bryce McKinlay <mckinlay@redhat.com> 6821 6822 * jcf-write.c (generate_bytecode_conditional): Correct handling 6823 of unordered conditionals. Add comment. 6824 68252004-05-29 Ranjit Mathew <rmathew@hotmail.com> 6826 Per Bothner <per@bothner.com> 6827 6828 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a 6829 local variable was initialised upon declaration. 6830 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if 6831 variable was final and initialised upon declaration. 6832 * check-init.c (check_final_reassigned): Give error only if a blank 6833 final is not definitely unassigned or if an initialised final is 6834 reassigned. 6835 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean 6836 assignment expressions. Remove case MODIFY_EXPR, label do_default. 6837 (check_init): Perform initialised-variable-removing-optimisation 6838 only on non-final local variables. 6839 68402004-05-28 Bryce McKinlay <mckinlay@redhat.com> 6841 6842 * jcf-write.c (generate_bytecode_conditional): Handle binops 6843 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, 6844 and LTGT_EXPR. 6845 (generate_bytecode_insns): Likewise. 6846 68472004-05-28 Bryce McKinlay <mckinlay@redhat.com> 6848 6849 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR, 6850 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR. 6851 68522004-05-28 Bryce McKinlay <mckinlay@redhat.com> 6853 6854 * gcj.texi (Object allocation): Remove _Jv_AllocBytes. 6855 (Mixing with C++): Document JvAllocBytes and RawDataManaged. 6856 68572004-05-26 Bryce McKinlay <mckinlay@redhat.com> 6858 6859 * decl.c (struct binding_level): Add GTY marker. Compile 6860 binding_depth unconditionally. 6861 (current_binding_level, free_binding_level, global_binding_level): 6862 Likewise. 6863 (clear_binding_level): Unconditionally set binding_depth. 6864 (make_binding_level): Use ggc_alloc_cleared, not xmalloc. 6865 68662004-05-26 Bryce McKinlay <mckinlay@redhat.com> 6867 6868 * lex.c (java_new_lexer): Set 'encoding'. 6869 (java_read_char): Improve error message for unrecognized characters. 6870 * lex.h (struct java_lexer): New field 'encoding'. 6871 68722004-05-23 Paolo Bonzini <bonzini@gnu.org> 6873 6874 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o. 6875 68762004-05-21 Mark Wielaard <mark@klomp.org> 6877 6878 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not 6879 extern. 6880 68812004-05-19 Paolo Bonzini <bonzini@gnu.org> 6882 6883 * typeck.c: Remove non-printable character 160. 6884 68852004-05-17 Ranjit Mathew <rmathew@hotmail.com> 6886 6887 * check-init.c: Correct minor typos. 6888 68892004-05-13 Diego Novillo <dnovillo@redhat.com> 6890 6891 * Make-lang.in, expr.c, java-gimplify.c: Rename 6892 tree-simple.[ch] to tree-gimple.[ch]. 6893 68942004-05-14 Ranjit Mathew <rmathew@hotmail.com> 6895 6896 * java-gimplify.c (java_gimplify_expr): Correct minor typos. 6897 68982004-05-13 Diego Novillo <dnovillo@redhat.com> 6899 6900 Merge from tree-ssa-20020619-branch. See 6901 ChangeLog.tree-ssa for details. 6902 6903 * Make-lang.in, builtins.c, check-init.c, class.c, 6904 constants.c, decl.c, except.c, expr.c, java-except.h, 6905 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c, 6906 lang.c, lang.opt, parse.y, resource.c: Merged. 6907 * java-gimplify.c: New file. 6908 69092004-05-10 Andrew Haley <aph@redhat.com> 6910 6911 * parse.y (create_class): Set TYPE_VFIELD. 6912 * decl.c (java_init_decl_processing): Likewise. 6913 6914 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment. 6915 * class.c (make_method_value): Replace DECL_VINDEX with call to 6916 get_method_index(). 6917 (get_dispatch_vector): Likewise. 6918 (layout_class_method): Likewise. 6919 Replace set of DECL_VINDEX with call to set_method_index(). 6920 (set_method_index): New function. 6921 (get_method_index): New function. 6922 * java-tree.h (set_method_index): New function decl. 6923 (get_method_index): New function decl. 6924 69252004-05-10 Andrew Pinski <pinskia@physics.uc.edu> 6926 6927 * parse.y (check_pkg_class_access): Add new argument 6928 and use it when cl is NULL to call lookup_cl on it. 6929 (parser_check_super_interface): Do not call lookup_cl. 6930 Pass this_decl to check_pkg_class_access and NULL 6931 instead of lookup_cl. 6932 (parser_check_super): Update for change in 6933 check_pkg_class_access. 6934 (do_resolve_class): Likewise. 6935 (process_imports): Likewise. 6936 (find_in_imports_on_demand): Likewise. 6937 (resolve_qualified_expression_name): Likewise. 6938 69392004-05-06 Ranjit Mathew <rmathew@hotmail.com> 6940 6941 Fixes PR java/9685, PR java/15073 6942 * parse.y (accessibility_string): New method. 6943 (not_accessible_field_error): Use accessibility_string() 6944 instead of java_accstring_lookup(). 6945 (resolve_qualified_expression_name): Check with 6946 check_pkg_class_access() before allowing access using 6947 qualified names. 6948 Fix comment typo. 6949 Use check_pkg_class_access() instead of not_accessible_p() 6950 for unqualified types. 6951 (not_accessible_p): Use DECL_CONTEXT (member) instead of 6952 REFERENCE for package-private access checking. 6953 (patch_method_invocation): Use accessibility_string() instead 6954 of java_accstring_lookup(). 6955 69562004-04-30 Ranjit Mathew <rmathew@hotmail.com> 6957 6958 Fixes PR java/15133 6959 * gjavah.c (struct method_name): Add member is_native. 6960 (overloaded_jni_method_exists_p): Match candidate method only if 6961 it is native. 6962 (print_method_info): Initialise is_native flag from the method's 6963 access flags. 6964 69652004-04-30 Roger Sayle <roger@eyesopen.com> 6966 6967 * builtins.c (java_builtins): Add acos, asin, ceil and floor. 6968 (initialize_builtins): Likewise, define acos, asin, ceil and floor. 6969 69702004-04-22 Roger Sayle <roger@eyesopen.com> 6971 6972 * resource.c (write_resource_constructor): Guard call to possibly 6973 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors. 6974 69752004-04-19 Bryce McKinlay <mckinlay@redhat.com> 6976 6977 * class.c (make_class_data): Add new field aux_info. 6978 * decl.c (java_init_decl_processing): Push type and decl for 6979 `aux_info'. 6980 69812004-04-15 Bryce McKinlay <mckinlay@redhat.com> 6982 6983 * expr.c (expand_java_NEW): Don't use size argument for 6984 _Jv_AllocObject calls. 6985 * parse.y (patch_invoke): Likewise. 6986 69872004-04-12 Bryce McKinlay <mckinlay@redhat.com> 6988 6989 * expr.c (build_invokeinterface): Remove unused variables to 6990 fix warnings. 6991 69922004-04-12 Bryce McKinlay <mckinlay@redhat.com> 6993 6994 * class.c (get_interface_method_index): New function. Return dispatch 6995 index for interface method. 6996 (make_method_value): For interface methods, set index field to 6997 iface dispatch index, not DECL_VINDEX. 6998 * expr.c (build_invokeinterface): Use get_interface_method_index. 6999 70002004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7001 7002 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED. 7003 70042004-03-31 Andrew Haley <aph@redhat.com> 7005 7006 PR java/14104 7007 * jcf-io.c (opendir_in_zip): Tidy up error handling. 7008 70092004-03-30 Zack Weinberg <zack@codesourcery.com> 7010 7011 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter 7012 form of GTY markers. 7013 70142004-03-25 Marcus Meissner <meissner@suse.de> 7015 7016 PR java/14689: 7017 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir. 7018 70192004-03-23 Tom Tromey <tromey@redhat.com> 7020 7021 PR java/14315: 7022 * jcf-write.c (make_class_file_name): Don't report if mkdir 7023 failed with EEXIST. 7024 70252004-03-23 Tom Tromey <tromey@redhat.com> 7026 7027 * gcj.texi (Extensions): Document GCJ_PROPERTIES. 7028 70292004-03-20 Kazu Hirata <kazu@cs.umass.edu> 7030 7031 * class.c, gjavah.c, lang.c: Fix comment typos. 7032 * gcj.texi: Fix typos. 7033 70342004-03-19 Per Bothner <per@bothner.com> 7035 7036 * gcj.texi (Code Generation): Document new flags and assert defaults. 7037 7038 * class.c (assume_compiled_node_struct): Rename type to 7039 class_flag_node_struct, as it is now also used for enable_assertions. 7040 Rename assume_compiled_node typedef. Rename excludep field to value. 7041 (find_assume_compiled_node): Rename function to find_class_flag_node. 7042 Minor optimization - avoid needless strlen. 7043 (add_assume_compiled): Some tweaking and optimization. 7044 Rename and generalize to add_class_flag takem an extra parameter. 7045 (add_assume_compled): New just calls add_class_flag. 7046 (add_enable_assert, enable_assertions): New functions. 7047 (enable_assert_tree): New static. 7048 * java-tree.h (add_enable_assert, enable_assertions): New declarations. 7049 * lang.opt (fenable-assertions, fenable-assertions=, 7050 fdisable-assertions, fdisable-assertions=): New options. 7051 * lang.c (java_handle_option): Handle new options. 7052 * parse.y (build_incomplete_class_ref): Handle class$ in an inner 7053 class in an interface - create helper class nested in outer interface. 7054 (build_assertion): Short-circuit if enable_assertions is false. 7055 70562004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7057 7058 * java-tree.h: Changes throughout to add checking to macros 7059 and numerous whitespace changes. 7060 (VAR_OR_FIELD_CHECK): New macro. 7061 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC, 7062 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL. 7063 70642004-03-16 Per Bothner <per@bothner.com> 7065 7066 * jcf-jump.c (options): New --print-constants option. 7067 * gcj.texi (Invoking jcf-dump): Document --print-constants. 7068 7069 * jcf-dump.c (flag_print_constant_pool): Default to off. 7070 (print_constant_terse_with_index): New helper function. 7071 (various places): Check flag_print_constant_pool where missing. 7072 (main): If verbose set flag_print_constant_pool. 7073 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous. 7074 70752004-03-15 Andrew Haley <aph@redhat.com> 7076 7077 PR java/14581 7078 * parse.y (java_complete_lhs): Check that final variable has an 7079 initializer. 7080 70812004-03-12 Andrew Haley <aph@redhat.com> 7082 7083 PR java/14551 7084 * typeck.c (convert): Clear TREE_OVERFLOW after an integer 7085 conversion. 7086 70872004-02-29 Roger Sayle <roger@eyesopen.com> 7088 7089 * jcf-parse.c (java_parse_file): Handle the case that input_filename 7090 is NULL. 7091 70922004-02-27 Per Bothner <per@bothner.com> 7093 7094 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm 7095 suggestion: Use build_incomplete_class_ref. 7096 This fixes PR java/13508, java/11714. 7097 70982004-02-27 Kazu Hirata <kazu@cs.umass.edu> 7099 7100 * java/parse.h: Update copyright. 7101 71022004-02-26 Andrew Haley <aph@redhat.com> 7103 7104 PR java/14231: 7105 * parse.y (check_interface_throws_clauses): Check for 7106 !METHOD_INVISIBLE (iface_method). 7107 * class.c (layout_class_methods): Check for CLASS_INTERFACE as 7108 well as CLASS_ABSTRACT. 7109 71102004-02-25 Per Bothner <per@bothner.com> 7111 7112 * parse.y (build_assertion): If we're in an inner class, create the 7113 class$ helper routine in the outer class. 7114 71152004-02-19 Richard Henderson <rth@redhat.com> 7116 7117 * parse.y (switch_label): Use make_node for DEFAULT_EXPR. 7118 71192004-02-16 Geoffrey Keating <geoffk@apple.com> 7120 7121 * Make-lang.in (java.install-man): Add extra dependencies. 7122 71232004-02-13 Geoffrey Keating <geoffk@apple.com> 7124 7125 * Make-lang.in: Install man pages under the same names 7126 (possibly transformed) as the program they document. 7127 71282004-02-10 Joseph S. Myers <jsm@polyomino.org.uk> 7129 7130 * gjavah.c: Include "intl.h". 7131 (error): New function. 7132 (main): Call gcc_init_libintl. 7133 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name, 7134 print_stub_or_jni, process_file, main): Use error rather than 7135 fprintf. 7136 (print_method_info, usage, help, version, main): Mark strings for 7137 translation with _. Avoid splitting up sentences. Send 7138 information messages to stdout. 7139 * jcf-dump.c: Include "intl.h". 7140 (main): Call gcc_init_libintl. 7141 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE): 7142 Mark error, usage and version messages for translation with _. 7143 Avoid splitting up sentences. 7144 * jv-scan.c: Include "intl.h". 7145 (fatal_error, warning): Change parameter s to msgid. Translate 7146 messages. 7147 (main): Call gcc_init_libintl. 7148 (usage, help, version): Mark error, usage and version messages for 7149 translation with _. Avoid splitting up sentences. 7150 * jvgenmain.c: Include "intl.h". 7151 (main): Call gcc_init_libintl. 7152 (usage, main): Mark error messages for translation with _. 7153 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS, 7154 JVGENMAIN_OBJS): Add intl.o. 7155 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o, 7156 java/jvgenmain.o): Update dependencies. 7157 71582004-02-08 Per Bothner <per@bothner.com> 7159 7160 * parse.y (resolve_qualified_expression_name): In case of inaccessible 7161 class don't use not_accessible_field_error, which can get confused. 7162 71632004-02-05 Kelley Cook <kcook@gcc.gnu.org> 7164 7165 Make-lang.in (po-generated): Delete. 7166 71672004-02-05 Kazu Hirata <kazu@cs.umass.edu> 7168 7169 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o): 7170 Depend on target.h. 7171 * decl.c: Include target.h. 7172 (start_java_method): Replace PROMOTE_PROTOTYPES with 7173 targetm.calls.promote_prototypes. 7174 * expr.c: Include target.h. 7175 (pop_arguments): Replace PROMOTE_PROTOTYPES with 7176 targetm.calls.promote_prototypes. 7177 * parse.y: Include target.h. 7178 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES 7179 with targetm.calls.promote_prototypes. 7180 71812004-02-04 Kazu Hirata <kazu@cs.umass.edu> 7182 7183 * typeck.c: Update copyright. 7184 71852004-02-02 Tom Tromey <tromey@redhat.com> 7186 7187 * decl.c (java_init_decl_processing): Remove duplicate 7188 gnu/gcj/RawData. 7189 71902004-01-30 Kelley Cook <kcook@gcc.gnu.org> 7191 7192 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir). 7193 71942004-01-28 Andrew Pinski <pinskia@physics.uc.edu> 7195 7196 * expr.c (build_field_ref): Move variable 7197 definition up. 7198 71992004-01-28 Andrew Haley <aph@redhat.com> 7200 7201 * expr.c (build_field_ref): Widen field offset. 7202 72032004-01-27 Andrew Haley <aph@redhat.com> 7204 7205 java/13273 7206 * parse.y (check_interface_throws_clauses): Make sure class_decl 7207 has been loaded. 7208 72092004-01-22 Jeff Sturm <jsturm@one-point.com> 7210 7211 PR java/13733 7212 * parse.y (patch_assignment): Don't modify lhs_type for 7213 reference assignments. 7214 72152004-01-20 Kelley Cook <kcook@gcc.gnu.org> 7216 7217 * Make-lang.in: Replace $(docdir) with doc. 7218 (java.info, java.srcinfo, java.man, java.srcman): New rules. 7219 (java.install-man): Revamp rule. 7220 72212004-01-20 Kelley Cook <kcook@gcc.gnu.org> 7222 7223 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME, 7224 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell) 7225 instead of deferred backquote. 7226 72272004-01-16 Andrew Pinski <pinskia@physics.uc.edu> 7228 7229 * typeck.c (find_method_in_interfaces): Move variable 7230 definition up. 7231 72322004-01-16 Andrew Haley <aph@redhat.com> 7233 7234 PR java/13273: 7235 * typeck.c (shallow_find_method): New. 7236 (find_method_in_superclasses): New. 7237 (find_method_in_interfaces): New. 7238 (lookup_do): Rewrite. 7239 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete. 7240 7241 * jcf-parse.c (read_class): Save and restore output_class. 7242 * decl.c (java_expand_body): Set output_class from fndecl. 7243 72442004-01-15 Michael Chastain <mec.gnu@mindspring.com> 7245 7246 * class.c (gen_indirect_dispatch_tables): Fix string length 7247 calculations. 7248 72492004-01-15 Kelley Cook <kcook@gcc.gnu.org> 7250 7251 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory. 7252 (java.srcextra): Copy above back to source directory if requested. 7253 (po-generated): Delete reference to $(parsedir). 7254 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir). 7255 Use implicit rule. 7256 72572004-01-14 Jan Hubicka <jh@suse.cz> 7258 7259 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost 7260 estimation. 7261 72622004-01-09 Mark Mitchell <mark@codesourcery.com> 7263 7264 * java-tree.h (java_expand_expr): Change prototype. 7265 * expr.c (java_expand_expr): Add alt_rtl parameter. 7266 72672004-01-09 Andrew Haley <aph@redhat.com> 7268 7269 PR java/12755: 7270 * parse.y (java_fix_constructors): Set output_class. 7271 (java_reorder_fields): Likewise. 7272 (java_layout_classes): Likewise. 7273 (java_expand_classes): Generate indirect dispatch tables. 7274 (java_expand_classes): Set output_class. 7275 (java_finish_classes): Likewise. 7276 * lang.c (java_init): Turn on always_initialize_class_p if we're 7277 using indirect dis[atch. 7278 (java_decl_ok_for_sibcall): Use output_class, not current_class. 7279 (java_get_callee_fndecl): Use class local atable. 7280 * jcf-parse.c 7281 (always_initialize_class_p): Decl moved to java-tree.h. 7282 (HANDLE_CLASS_INFO): Set output_class. 7283 (read_class): Likewise. 7284 (parse_class_file): Call gen_indirect_dispatch_tables. 7285 (parse_zip_file_entries): Set output_class. 7286 (java_parse_file): Set output_class. Don't emit symbol tables. 7287 * java-tree.h (output_class): New. 7288 Remove global declarations for otable, atable, and ctable. 7289 (always_initialize_class_p): moved here from decl.c. 7290 (DECL_OWNER): New. 7291 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL, 7292 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL, 7293 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New. 7294 (struct lang_type): Add otable_methods, otable_decl, 7295 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl, 7296 ctable_decl, catch_classes, type_to_runtime_map. 7297 * expr.c (build_field_ref): Make otable, atable, and ctable class 7298 local rather than global. 7299 (build_known_method_ref): Likewise. 7300 (build_invokeinterface): Likewise. 7301 (java_expand_expr): Pass runtime type (rather than actual type) to 7302 expand_start_catch. 7303 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for 7304 this class. Look up each class in that map to delete duplicates. 7305 (expand_end_java_handler): Pass runtime type (rather than actual 7306 type) to expand_start_catch. 7307 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h. 7308 (do_nothing): New. 7309 (java_init_decl_processing): Rearrange things. Remove global 7310 declarations of otable, atable, and ctable. 7311 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing. 7312 (java_expand_body): Set output_class. 7313 * constants.c (build_constant_data_ref): Use output_class, not 7314 current_class. 7315 (alloc_name_constant): Likewise. 7316 * class.c (gen_indirect_dispatch_tables): New. 7317 (build_class_ref): Generate hard reference to superclass, even if 7318 using indirect dispatch. 7319 (build_static_field_ref): Use class local atable. 7320 (make_class_data): Generate hard reference to superclass, even if 7321 using indirect dispatch. 7322 Generate symbolic references to interfaces when using indirect 7323 dispatch. 7324 (make_class_data): Emit otable, atable, and ctable. 7325 Make otable, atable, and ctable class local rather than global. 7326 (emit_catch_table): Make otable, atable, and ctable class local 7327 rather than global. 7328 73292003-12-25 Andrew Pinski <pinskia@physics.uc.edu> 7330 7331 * parse.y (catch_clause_parameter): Fix typo. 7332 7333 PR java/13404 7334 * parse.y: (catch_clause_parameter): Return early if $3, aka 7335 formal_parameter, is null. 7336 73372003-12-20 Kazu Hirata <kazu@cs.umass.edu> 7338 7339 * class.c: Remove uses of "register" specifier in 7340 declarations of arguments and local variables. 7341 * decl.c: Likewise. 7342 * expr.c: Likewise. 7343 * gjavah.c: Likewise. 7344 * jcf-dump.c: Likewise. 7345 * jcf-io.c: Likewise. 7346 * jcf-parse.c: Likewise. 7347 * jcf-write.c: Likewise. 7348 * keyword.h: Likewise. 7349 * parse.y: Likewise. 7350 * typeck.c: Likewise. 7351 * verify.c: Likewise. 7352 73532003-12-06 Kelley Cook <kcook@gcc.gnu.org> 7354 7355 * Make-lang.in (GCJ_CROSS_NAME): Delete. 7356 (java.install_common, java.install-man): Adjust for above. 7357 (java.uninstall): Likewise. 7358 73592003-12-03 Michael Koch <konqueror@gmx.de> 7360 7361 * class.c (make_class_data): 7362 Push field value to 'hack_signers' instead of 'signers'. 7363 * decl.c (java_init_decl_processing): 7364 Push field 'hack_signers' instead of 'signers'. 7365 73662003-12-03 Zack Weinberg <zack@codesourcery.com> 7367 7368 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before 7369 including iconv.h. 7370 73712003-12-03 Ralph Loader <rcl@ihug.co.nz> 7372 7373 PR java/12374: 7374 * parse.y (qualify_ambiguous_name): Remove lots of broken 7375 field access processing - there's no need to do that here, 7376 because we have resolve_field_access. Remove 7377 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else. 7378 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't 7379 used. 7380 73812003-12-01 Jeff Sturm <jsturm@one-point.com> 7382 7383 Fix PR java/13237 7384 * parse.y (java_complete_lhs): Save location prior to patching 7385 CALL_EXPR. 7386 73872003-11-25 Mohan Embar <gnustuff@thisiscool.com> 7388 7389 PR java/12548 7390 * resource.c (write_resource_constructor): Append 7391 "_resource" to constructor identifier name. 7392 73932003-11-25 Jeff Sturm <jsturm@one-point.com> 7394 7395 Fix PR java/13183. 7396 * constants.c (cpool_for_class): New function. 7397 (outgoing_cpool): Remove global variable. 7398 (alloc_name_constant): Use cpool_for_class. 7399 (build_constants_constructor): Likewise. 7400 * decl.c (java_expand_body): Set current_class. 7401 * java-tree.h (outgoing_cpool) Remove declaration. 7402 (init_outgoing_cpool): Likewise. 7403 * jcf-parse.c (init_outgoing_cpool): Remove function. 7404 (parse_class_file): Don't call init_outgoing_cpool. 7405 * parse.y (java_complete_expand_methods): Don't call 7406 init_outgoing_cpool. Don't save outgoing_cpool. 7407 (java_expand_classes): Don't restore outgoing_cpool. 7408 (java_finish_classes): Likewise. 7409 74102003-11-24 Mohan Embar <gnustuff@thisiscool.com> 7411 7412 * Make-lang.in: (java.install-common) Add 7413 symlink for $(target_noncanonical)-gcjh for 7414 native builds. 7415 74162003-11-20 Joseph S. Myers <jsm@polyomino.org.uk> 7417 7418 * Make-lang.in (java.extraclean): Delete. 7419 74202003-11-20 Joseph S. Myers <jsm@polyomino.org.uk> 7421 7422 * Make-lang.in (check-java): Add. 7423 74242003-11-19 Jeff Sturm <jsturm@one-point.com> 7425 7426 Fix PR java/13024. 7427 * except.c (prepare_eh_table_type): Allocate variable-sized 7428 buffer `buf' with alloca. 7429 74302003-11-17 Jeff Sturm <jsturm@one-point.com> 7431 7432 Fix PR java/12857. 7433 7434 decl.c (java_init_decl_processing): Don't initialize 7435 class_not_found_type_node, no_class_def_found_type_node. 7436 7437 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE, 7438 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index. 7439 (class_not_found_type_node, no_class_def_found_type_node): 7440 Don't define. 7441 7442 parse.y (build_dot_class_method_invocation): Add this_class 7443 argument. Qualify method invocations to a different class. 7444 (create_new_parser_context): Initialize saved_data_ctx to 0. 7445 (java_parser_context_save_global): Initialize saved_data_ctx to 1. 7446 (build_dot_class_method): Don't load classes. Register 7447 incomplete types. 7448 (build_incomplete_class_ref): Special cases for interfaces 7449 and inner classes. Move build_dot_class_method call to here... 7450 (patch_incomplete_class_ref): ...from here. Pass current_class 7451 to build_dot_class_method_invocation. 7452 (build_assertion): Pass class_type to 7453 build_dot_class_method_invocation. 7454 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node. 7455 74562003-11-17 Jeff Sturm <jsturm@one-point.com> 7457 7458 Fix PR java/12739. 7459 * java-tree.h (BLOCK_EMPTY_P): Define. 7460 * parse.y (java_complete_lhs): Check for empty blocks 7461 in TRY_FINALLY_EXPR case. 7462 74632003-11-17 Andrew Haley <aph@redhat.com> 7464 7465 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New. 7466 (struct lang_decl_var:freed): New variable. 7467 * decl.c (poplevel): Mark local vars that have gone out of scope. 7468 (push_jvm_slot): Don't use the RTL of a var that has gone out of 7469 scope. 7470 74712003-11-16 Jason Merrill <jason@redhat.com> 7472 7473 * Make-lang.in (java.tags): Create TAGS.sub files in each directory 7474 and TAGS files that include them for each front end. 7475 74762003-11-15 Tom Tromey <tromey@redhat.com> 7477 7478 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError. 7479 74802003-11-12 Jason Merrill <jason@redhat.com> 7481 7482 PR optimization/12547 7483 * lang.c (java_tree_inlining_walk_subtrees): Just walk 7484 BLOCK_EXPR_BODY directly. 7485 74862003-11-12 Andrew Haley <aph@redhat.com> 7487 7488 PR java/11045 7489 * parse.y (fold_constant_for_init): Check that we really do have a 7490 constant. 7491 7492 PR java/11533 7493 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for 7494 init_test_decls being inlined. 7495 7496 PR java/12890: 7497 * parse.y (do_resolve_class): Check return value from 7498 breakdown_qualified(). 7499 75002003-11-11 Tom Tromey <tromey@redhat.com> 7501 7502 PR java/12915: 7503 * parse.y (merge_string_cste): Handle case where we have a 7504 pointer that happens to be zero, not null_pointer_node. 7505 75062003-11-10 Tom Tromey <tromey@redhat.com> 7507 7508 * jcf-parse.c (classify_zip_file): Correctly compare 7509 filename_length against length of manifest file's name. 7510 75112003-11-08 Tom Tromey <tromey@redhat.com> 7512 7513 PR java/12894: 7514 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file. 7515 75162003-11-06 Andrew Haley <aph@redhat.com> 7517 7518 * expr.c (java_stack_swap): Make sure destination stack slots are 7519 of the correct type. 7520 75212003-11-03 Kelley Cook <kcook@gcc.gnu.org> 7522 7523 * Make-lang.in (dvi): Move targets to $(docobjdir). 7524 (gcj.dvi): Simplify rule and adjust target. 7525 (gcj.info): Simplify rule. 7526 (gcj.pod): New intermediate rule. 7527 (gcjh.pod): Likewise. 7528 (jv-scan.pod): Likewise. 7529 (jcf-dump.pod): Likewise. 7530 (gij.pod): Likewise. 7531 (jv-convert.pod): Likewise. 7532 (rmic.pod): Likewise. 7533 (rmiregistry.pod): Likewise. 7534 (gcj.1): Delete. 7535 (gcjh.1): Delete. 7536 (jv-scan.1): Delete. 7537 (jcf-dump.1): Delete. 7538 (gij.1): Delete. 7539 (jv-convert.1): Delete. 7540 (rmic.1): Delete. 7541 (rmiregistry.1): Delete. 7542 75432003-11-02 Jeff Sturm <jsturm@one-point.com> 7544 7545 Fixes PR java/12866. 7546 * parse.y (resolve_qualified_expression_name): Move test 7547 for outer field access methods from here... 7548 (check_thrown_exceptions) ...to here. 7549 75502003-11-01 Kelley Cook <kcook@gcc.gnu.org> 7551 7552 * .cvsignore: Delete. 7553 75542003-10-28 Frank Ch. Eigler <fche@redhat.com> 7555 7556 * verify.c (verify_jvm_instructions): Don't warn about legal 7557 eh binding regions generated for example by jdk 1.4.1. 7558 75592003-10-24 David S. Miller <davem@redhat.com> 7560 7561 * jcf-parse.c (jcf_parse): Fix args to fatal_error(). 7562 75632003-10-22 Andrew Haley <aph@redhat.com> 7564 7565 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New. 7566 (java_get_callee_fndecl): New. 7567 7568 * jcf-parse.c (java_parse_file): Call emit_catch_table(). 7569 7570 * java-tree.h (ctable_decl): New. 7571 (catch_classes): New. 7572 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES. 7573 7574 * decl.c (java_init_decl_processing): Add catch_class_type. 7575 Add ctable_decl. 7576 Add catch_classes field. 7577 7578 * class.c (build_indirect_class_ref): Break out from 7579 build_class_ref. 7580 (make_field_value): Check flag_indirect_dispatch. 7581 (make_class_data): Ditto. 7582 Tidy uses of PUSH_FIELD_VALUE. 7583 Add field catch_classes. 7584 (make_catch_class_record): New. 7585 7586 * java-tree.h (PUSH_FIELD_VALUE): Tidy. 7587 75882003-10-22 Kazu Hirata <kazu@cs.umass.edu> 7589 7590 * jcf-write.c: Follow spelling conventions. 7591 * parse.y: Likewise. 7592 75932003-10-22 Kazu Hirata <kazu@cs.umass.edu> 7594 7595 * ChangeLog: Fix typos. 7596 * expr.c: Fix comment typos. 7597 * jcf-write.c: Likewise. 7598 * lang.c: Likewise. 7599 * lex.c: Likewise. 7600 * mangle.c: Likewise. 7601 * parse-scan.y: Likewise. 7602 * parse.y: Likewise. 7603 76042003-10-22 Tom Tromey <tromey@redhat.com> 7605 7606 * expr.c (expand_byte_code): Only warn about dead bytecode when 7607 extra_warnings is set. 7608 76092003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz> 7610 7611 Fix for PR java/12586. 7612 * mangle.c (find_compression_record_match): Don't iterate through 7613 package namespace elements unless they all match compression_table 7614 entries. 7615 76162003-10-20 Kelley Cook <kcook@gcc.gnu.org> 7617 7618 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir). 7619 (generate-manpages): Likewise. 7620 (java.maintainer-clean): Likewise. 7621 (gcj.info): Likewise. 7622 (gcj.1): Likewise. 7623 (gcjh.1): Likewise. 7624 (jv-scan.1): Likewise. 7625 (jcf-dump.1): Likewise. 7626 (gij.1): Likewise. 7627 (jv-convert.1): Likewise. 7628 (rmic.1): Likewise. 7629 (rmiregistry.1): Likewise. 7630 (java.install-man): Likewise. 7631 (parse-scan.o): Move and define complete compile line. 7632 (parse.o): Likewise. 7633 (jcf-tree-inline.o): Move. 7634 76352003-10-20 Mark Mitchell <mark@codesourcery.com> 7636 7637 * Make-lang.in (info): Update dependencies. 7638 (java.install-info): Remove. 7639 ($(srcdir)/java/gcj.info): Replace with ... 7640 ($(docobjdir)/gcj.info): ... this. 7641 76422003-10-14 Nathanael Nerode <neroden@gcc.gnu.org> 7643 7644 * Make-lang.in: Replace uses of $(target_alias) with 7645 $(target_noncanonical). 7646 76472003-10-09 Tom Tromey <tromey@redhat.com> 7648 7649 * decl.c (java_init_decl_processing): Declare signers field. 7650 * class.c (make_class_data): Set signers field. 7651 76522003-10-09 Jason Merrill <jason@redhat.com> 7653 7654 * parse.y (patch_assignment): Use make_node to create a BLOCK. 7655 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a 7656 POINTER_TYPE. 7657 76582003-10-06 Mark Mitchell <mark@codesourcery.com> 7659 7660 * Make-lang.in (java.info): Replace with ... 7661 (info): ... this. 7662 (java.dvi): Replace with ... 7663 (dvi): ... this. 7664 (java.generated-manpages): Replace with ... 7665 76662003-10-03 Kelley Cook <kelleycook@wideopenwest.com> 7667 7668 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros. 7669 76702003-10-01 Andrew Haley <aph@redhat.com> 7671 7672 * jcf-parse.c (java_parse_file): Write otable and atable. 7673 * java-tree.h (atable_methods): New. 7674 (atable_decl): New. 7675 (atable_syms_decl): New. 7676 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL, 7677 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*. 7678 (symbol_*type): Rename method_symbol* to symbol*type. 7679 (emit_offset_symbol_table): Delete. 7680 (emit_symbol_table): New. 7681 (get_symbol_table_index): New. 7682 (atable_type): New. 7683 * expr.c (build_field_ref): Handle flag_indirect_dispatch. 7684 (build_known_method_ref): Likewise. 7685 (get_symbol_table_index): Rename from get_offset_table_index. 7686 Parameterize to allow re-use by differing types of symbol table. 7687 (build_invokevirtual): Pass table to get_offset_table_index. 7688 * decl.c (java_init_decl_processing): Push types and decls for 7689 atable and atable_syyms. 7690 * class.c (build_static_field_ref): Handle flag_indirect_dispatch. 7691 (make_class_data): Add new fields atable and atable_syms. 7692 (emit_symbol_table): Rename from emit_offset_symbol_table. 7693 Parameterize to allow re-use by different types of symbol table. 7694 (build_symbol_entry): Renamed from build_method_symbols_entry. 7695 76962003-09-30 Roger Sayle <roger@eyesopen.com> 7697 7698 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once 7699 semantics for SAVE_EXPR, by caching the result in a temporary. 7700 77012003-09-28 Richard Henderson <rth@redhat.com> 7702 7703 * check-init.c (check_init): Save and restore input_location 7704 instead of file and line separately. 7705 * decl.c (java_expand_body): Likewise. 7706 * jcf-write.c (generate_bytecode_insns): Likewise. 7707 * parse.y (safe_layout_class): Likewise. 7708 * jcf-parse.c (read_class, parse_class_file): Likewise. 7709 (java_parse_file): Use %H for warning locator. 7710 77112003-09-28 Roger Sayle <roger@eyesopen.com> 7712 7713 * expr.c (java_check_reference): Use the semantics of COND_EXPRs 7714 with void-type branches instead of using a COMPOUND_EXPR. 7715 77162003-09-28 Jeff Sturm <jsturm@one-point.com> 7717 7718 * decl.c (java_optimize_inline, dump_function): Remove. 7719 * java-tree.h (java_optimize_inline): Remove declaration. 7720 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set. 7721 * parse.y (source_end_java_method, java_expand_classes): 7722 Likewise. Remove dead code. 7723 77242003-09-27 Roger Sayle <roger@eyesopen.com> 7725 7726 * lang.c (java_init_options): Set flag_evaluation_order. 7727 * expr.c (force_evaluation_order): Don't attempt to force 7728 evaluation order of binary operations using save_expr. 7729 * parse.y (java_complete_lhs): No longer need to call 7730 force_evaluation_order when constructing binary operators. 7731 77322003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com> 7733 Bryce McKinlay <bryce@mckinlay.net.nz> 7734 7735 PR java/1333: 7736 * parse.y (not_accessible_field_error): New function. 7737 (resolve_expression_name): Check field access permissions. 7738 (resolve_qualified_expression_name): Use 7739 not_accessible_field_error. 7740 (resolve_qualified_expression_name): Likewise. 7741 77422003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 7743 7744 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value. 7745 77462003-09-23 Roger Sayle <roger@eyesopen.com> 7747 7748 * jcf-write.c (generate_bytecode_insns): Optimize binary operations 7749 with equal operands without side-effects. 7750 77512003-09-22 Jeff Sturm <jsturm@one-point.com> 7752 7753 * decl.c (java_init_decl_processing): Don't emit otable decls 7754 if flag_indirect_dispatch is not set. 7755 77562003-09-21 Richard Henderson <rth@redhat.com> 7757 7758 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y, 7759 resource.c: Revert. 7760 77612003-09-21 Richard Henderson <rth@redhat.com> 7762 7763 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y, 7764 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const. 7765 77662003-09-20 Richard Henderson <rth@redhat.com> 7767 7768 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics. 7769 77702003-09-18 Roger Sayle <roger@eyesopen.com> 7771 7772 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case. 7773 * check-init.c (check_init): Likewise. 7774 77752003-09-18 Roger Sayle <roger@eyesopen.com> 7776 7777 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2. 7778 77792003-09-16 Andrew Haley <aph@redhat.com> 7780 7781 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR. 7782 77832003-09-17 Ranjit Mathew <rmathew@hotmail.com> 7784 7785 Fixes PR java/9577 7786 * mangle.c (find_compression_record_match): Skip 7787 over a "6JArray" (the array template mangled string) 7788 IDENTIFIER_NODE. 7789 (mangle_array_type): Correct minor typo. 7790 (atms): Move definition to the beginning. 7791 77922003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz> 7793 7794 * class.c (add_miranda_methods): Ensure super-interfaces are laid 7795 out. Fix for PR java/12254. 7796 77972003-09-11 Richard Henderson <rth@redhat.com> 7798 7799 * parse.y (source_end_java_method): Update for new 7800 cgraph_finalize_function argument. 7801 78022003-09-09 Richard Henderson <rth@redhat.com> 7803 7804 * parse.y (source_end_java_method): Update call to 7805 cgraph_finalize_function. 7806 78072003-09-03 Jeff Sturm <jsturm@one-point.com> 7808 7809 * decl.c (java_expand_body): New function. 7810 * expr.c (build_class_init): Set DECL_IGNORED_P. 7811 * java-tree.h (start_complete_expand_method, 7812 java_expand_body): Declare. 7813 * jcf-parse.c (cgraph.h): Include. 7814 (java_parse_file): Handle flag_unit_at_a_time. 7815 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING, 7816 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define. 7817 (java_estimate_num_insns): Use walk_tree_without_duplicates. 7818 (java_start_inlining): New function. 7819 * parse.h (java_finish_classes): Declare. 7820 * parse.y: Include cgraph.h. 7821 (block): Don't special-case empty block production. 7822 (craft_constructor): Set DECL_INLINE. 7823 (source_end_java_method): Handle flag_unit_at_a_time. 7824 Replace inline code with call to java_expand_body. 7825 (start_complete_expand_method): Remove static modifier. 7826 (java_expand_method_bodies): Patch function tree for 7827 class initialization and/or synchronization as needed. 7828 Don't begin RTL expansion yet. 7829 (java_expand_classes): Check flag_unit_at_a_time before 7830 calling finish_class. 7831 (java_finish_classes): New function. 7832 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type. 7833 (patch_assignment): Set DECL_CONTEXT on temporary variable. 7834 (emit_test_initialization): Set DECL_IGNORED_P. 7835 78362003-09-03 Roger Sayle <roger@eyesopen.com> 7837 7838 * builtins.c (enum builtin_type): Delete unused enumeration. 7839 * Make-lang.in (java/builtins.o): Remove built-types.def dependency. 7840 78412003-08-28 Tom Tromey <tromey@redhat.com> 7842 7843 * gcj.texi (Extensions): Document gcjlib URLs. 7844 78452003-08-20 Tom Tromey <tromey@redhat.com> 7846 7847 * gcj.texi (Extensions): Added xref. 7848 (libgcj Runtime Properties): Document 7849 gnu.gcj.runtime.VMClassLoader.library_control. 7850 78512003-08-20 Andrew Haley <aph@redhat.com> 7852 7853 * except.c (prepare_eh_table_type): Use new encoding for exception 7854 handlers when using -fno-assume-compiled. 7855 78562003-08-13 Tom Tromey <tromey@redhat.com> 7857 7858 * gcj.texi (Invoking gij): Document -X and -?. 7859 78602003-08-13 Mohan Embar <gnustuff@thisiscool.com> 7861 7862 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS, 7863 GCJH_OBJS, JCFDUMP_OBJS 7864 * win32-host.c: Removed the unnecessary and broken dependency 7865 on jcf.h 7866 78672003-08-11 Tom Tromey <tromey@redhat.com> 7868 7869 * parse.y (java_check_regular_methods): Typo fixes. Call 7870 check_interface_throws_clauses. Use 7871 check_concrete_throws_clauses. 7872 (check_interface_throws_clauses): New function. 7873 (check_concrete_throws_clauses): New function. 7874 (hack_is_accessible_p): New function. 7875 (find_most_specific_methods_list): Added FIXME. 7876 * typeck.c (lookup_do): Use `flags' argument to decide what to 7877 do. Reimplemented. 7878 (lookup_argument_method_generic): New function. 7879 (lookup_argument_method2): Removed. 7880 * jcf.h (ACC_INVISIBLE): New define. 7881 * jcf-write.c (generate_classfile): Skip invisible methods. 7882 * class.c (add_miranda_methods): New function. 7883 (layout_class_methods): Use it. 7884 (get_access_flags_from_decl): Use ACC_INVISIBLE. 7885 * java-tree.h (METHOD_INVISIBLE): New define. 7886 (lang_decl_func) [invisible]: New field. 7887 (lookup_argument_method_generic): Declare. 7888 (SEARCH_INTERFACE): New define. 7889 (SEARCH_SUPER): Likewise. 7890 (SEARCH_ONLY_INTERFACE): Likewise. 7891 (SEARCH_VISIBLE): Likewise. 7892 (lookup_argument_method2): Removed declaration. 7893 78942003-08-05 Tom Tromey <tromey@redhat.com> 7895 7896 Fix for PR java/11600: 7897 * parse.y (java_complete_lhs): See whether we're calling a method 7898 on an array. 7899 (check_thrown_exceptions): Added `is_array_call' argument; 7900 fixed `clone' checking; updated all callers. 7901 79022003-08-05 Steven Bosscher <steven@gcc.gnu.org> 7903 7904 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h). 7905 79062003-08-03 Tom Tromey <tromey@redhat.com> 7907 7908 * java-tree.h (METHOD_TRANSIENT): Removed. 7909 * decl.c (pushdecl): Removed some dead code. 7910 * class.c (get_access_flags_from_decl): Can't have transient 7911 method. 7912 (add_method_1): Can't have a transient method. 7913 79142003-07-28 Andreas Jaeger <aj@suse.de> 7915 7916 * jvspec.c: Convert to ISO C90 prototypes. 7917 79182003-07-25 Nathan Sidwell <nathan@codesourcery.com> 7919 7920 * decl.c (force_poplevels): Fix warning call. 7921 79222003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net> 7923 7924 * expr.c (expand_java_field_op): Don't use xxx_with_decl 7925 (expand_java_field_op): Likewise. 7926 * class.c (layout_class_method): Likewise 7927 (emit_register_classes): Likewise. 7928 * decl.c (pushdecl): Likewise. 7929 (poplevel): Likewise. 7930 (force_poplevels): Likewise. 7931 (give_name_to_locals): Likewise. 7932 * check-init.c (check_for_initialization): Likewise. 7933 79342003-07-24 Jason Merrill <jason@redhat.com> 7935 7936 * java-tree.h: Move boolean_type_node et al to the back end. 7937 79382003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7939 7940 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary 7941 casts. 7942 79432003-07-19 Neil Booth <neil@daikokuya.co.uk> 7944 7945 * lang.opt: Don't show -MD_ and -MDD_. 7946 79472003-07-18 Neil Booth <neil@daikokuya.co.uk> 7948 7949 * lang-options.h: Remove. 7950 * lang.opt: Add help text. 7951 79522003-07-15 Kazu Hirata <kazu@cs.umass.edu> 7953 7954 * expr.c: Remove the last argument to expand_assignment(). 7955 79562003-07-09 Jan Hubicka <jh@suse.cz> 7957 7958 * java-tree.h (DECL_NUM_STMTS): Rename to... 7959 (DECL_ESTIMATED_INSNS): ... this. 7960 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1): 7961 New static functions. 7962 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define. 7963 * parser.y (add_stmt_to_compound): Do not account statements. 7964 79652003-07-08 Mark Wielaard <mark@klomp.org> 7966 7967 * gcj.texi: CNI now expands to Compiled Native Interface. 7968 79692003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 7970 7971 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND. 7972 79732003-07-07 Nathan Sidwell <nathan@codesourcery.com> 7974 7975 * expr.c (expand_byte_code): Adjist emit_line_note call. 7976 79772003-07-06 Neil Booth <neil@daikokuya.co.uk> 7978 7979 * lang.c (java_handle_option): Don't handle filenames. 7980 79812003-07-02 Zack Weinberg <zack@codesourcery.com> 7982 7983 * jcf-path.c: Don't default-define PATH_SEPARATOR nor 7984 DIR_SEPARATOR. 7985 Use FILENAME_CMP. 7986 * jcf-write.c: Don't default-define DIR_SEPARATOR. 7987 * jcf.h: Delete COMPARE_FILENAMES definition. 7988 79892003-07-02 Neil Booth <neil@daikokuya.co.uk> 7990 7991 * lang.c (java_init_options): Update prototype. 7992 79932003-07-01 Nathan Sidwell <nathan@codesourcery.com> 7994 7995 * decl.c (poplevel): Adjust define_label call. 7996 79972003-06-27 Zack Weinberg <zack@codesourcery.com> 7998 7999 * gjavah.c (flag_jni): Make non-static. 8000 * parse-scan.y (ctxp): Make non-static. 8001 8002 * class.c (build_method_symbols_entry) 8003 * expr.c (get_offset_table_index) 8004 * jcf-parse.c (jcf_parse): 8005 Mark the definition static, matching the forward declaration. 8006 80072003-06-26 Neil Booth <neil@daikokuya.co.uk> 8008 8009 * lang.c (java_handle_option): Don't check for missing arguments. 8010 80112003-06-20 Nathan Sidwell <nathan@codesourcery.com> 8012 8013 * class.c (push_class): Use a location_t to save place. 8014 (emit_register_classes): Set input_location. Adjust 8015 expand_function_end call. 8016 * resource.c (write_resource_constructor): Likewise. 8017 * decl.c (end_java_method): Adjust expand_function_end call. 8018 * parse.y (source_end_java_method): Likewise. 8019 80202003-06-17 Robert Abeles <rabeles@archaelogic.com> 8021 8022 * lang.c (java_handle_option): Likewise. 8023 80242003-06-16 Neil Booth <neil@daikokuya.co.uk> 8025 8026 * lang.c (java_handle_option): Special-casing of optional 8027 joined arguments no longer needed. 8028 * lang.opt: Update switches that take optional argument. 8029 80302003-06-15 Neil Booth <neil@daikokuya.co.uk> 8031 8032 * lang.opt: Declare Java. 8033 * lang.c (java_init_options): Update. 8034 80352003-06-15 Neil Booth <neil@daikokuya.co.uk> 8036 8037 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h. 8038 80392003-06-14 Neil Booth <neil@daikokuya.co.uk> 8040 8041 * lang-specs.h: Rewrite -MD and -MMD to append an underscore. 8042 * lang.c (java_handle_option): -MD and -MMD have an underscore. 8043 * lang.opt: -MD and -MMD have an underscore. 8044 80452003-06-14 Nathan Sidwell <nathan@codesourcery.com> 8046 8047 * class.c (emit_register_classes): Adjust init_function_start 8048 call. 8049 * decl.c (complete_start_java_method): Likewise. 8050 * resource.c (write_resource_constructor): Likewise. 8051 80522003-06-14 Neil Booth <neil@daikokuya.co.uk> 8053 8054 * Make-lang.in: Update to use options.c and options.h. 8055 * lang.c: Include options.h not j-options.h. 8056 (java_handle_option): Abort on unrecognized option. 8057 (java_init_options): Request Java switches. 8058 80592003-06-11 Neil Booth <neil@daikokuya.co.uk> 8060 8061 * Make-lang.in: Handle mostlyclean. 8062 80632003-06-11 Tom Tromey <tromey@redhat.com> 8064 8065 * lang.c (java_handle_option): Update dependency_tracking for 8066 OPT_MF case. 8067 8068 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an 8069 empty argument. 8070 80712003-06-10 Andrew Haley <aph@redhat.com> 8072 8073 * resource.c (write_resource_constructor): Use expand_expr to 8074 generate the address of the label attached to a resource. 8075 * Make-lang.in (java/resource.o): Add expr.h 8076 80772003-06-10 Andrew Haley <aph@redhat.com> 8078 8079 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New. 8080 (java_decl_ok_for_sibcall): New. 8081 80822003-06-09 Neil Booth <neil@daikokuya.co.uk> 8083 8084 * Make-lang.in (JAVA_OBJS, java/lang.o): Update. 8085 (java/j-options.c, java/j-options.h): New. 8086 * java-tree.h (resource_name, compile_resource_file, 8087 compile_resource_data): Constify. 8088 * jcf-write.c (jcf_write_base_directory): Similarly. 8089 * jcf.h (jcf_write_base_directory): Similarly. 8090 * lang.c: Include j-options.h. 8091 (cl_options_count, cl_options, string_option, java_decode_option, 8092 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION, 8093 process_option_with_no): Remove. 8094 (resource_name): Constify. 8095 (LANG_HOOKS_HANDLE_OPTION): Override. 8096 (java_handle_option): New. 8097 (java_init): Don't call jcf_path_init. 8098 (java_init_options): Call jcf_path_init. 8099 * lang.opt: New. 8100 * resource.c (compile_resource_data, compile_resource_file): Constify. 8101 81022003-06-09 Nathan Sidwell <nathan@codesourcery.com> 8103 8104 * java-tree.h (DECL_FUNCTION_LAST_LINE): New. 8105 (struct lang_decl_func): Add last_line field. 8106 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST, 8107 DECL_SOURCE_LINE_LAST): Remove. 8108 * parse.y (missing_return_error, finish_method_declaration, 8109 lookup_cl, start_artificial_method_body, source_end_java_method, 8110 start_complete_expand_method): Adjust. 8111 81122003-06-08 Tom Tromey <tromey@redhat.com> 8113 8114 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and 8115 fno-assume-compiled. 8116 81172003-06-08 Roger Sayle <roger@eyesopen.com> 8118 8119 * builtins.c (define_builtin_type, builtin_types): Delete. 8120 (define_builtin): Rewritten to take just the built-in code, 8121 the function's name, type and fallback library function name. 8122 All built-ins used by Java are implicit and BUILT_IN_NORMAL. 8123 (initialize_builtins): Overhaul to define the GCC builtins 8124 used by gcj manually, providing the Java run-time's 8125 implementations as the fallback library function. 8126 81272003-06-08 Anthony Green <green@redhat.com> 8128 8129 * parse.y (patch_cast): Fix conversions from floating-point to 8130 integral types. 8131 81322003-06-08 Neil Booth <neil@daikokuya.co.uk> 8133 8134 * Make-lang.in: Update. 8135 * lang.c: Include opts.h. Define cl_options_count and cl_options. 8136 81372003-06-07 Neil Booth <neil@daikokuya.co.uk> 8138 8139 * lang.c (java_init_options): Update. 8140 81412003-06-05 Jan Hubicka <jh@suse.cz> 8142 8143 * Make-lang.in: Add support for stageprofile and stagefeedback 8144 81452003-05-31 Roger Sayle <roger@eyesopen.com> 8146 8147 * lang.c (java_init_options): Prescribe wrap-around two's 8148 complement arithmetic overflow by setting flag_wrapv. 8149 81502003-05-29 Roger Sayle <roger@eyesopen.com> 8151 8152 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete. 8153 (builtin_record): Add an additional builtin_code field to 8154 record which GCC built-in corresponds to the Java function. 8155 (java_builtins): Add new entries for atan, atan2, exp, log, 8156 pow and tan. 8157 (max_builtin, min_builtin, abs_builtin): Perform constant 8158 folding on the resulting tree. 8159 (java_build_function_call_expr): Likewise, perform constant 8160 folding on the resulting tree. 8161 (initialize_builtins): The NULL creators are now allowed in 8162 the java_builtins table, which is now terminated by an entry 8163 with builtin_code == END_BUILTINS. 8164 (check_for_builtin): Likewise. If the matching creator is 8165 NULL, construct the call using java_build_function_call_expr 8166 directly with the decl for the corresponding builtin_code. 8167 81682003-05-23 Nathanael Nerode <neroden@gcc.gnu.org> 8169 8170 * win32-host.c: Normalize copyright boilerplate. 8171 81722003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8173 8174 * parse.y (print_int_node): Use string concatentation on 8175 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple 8176 function calls into one. 8177 81782003-05-13 Zack Weinberg <zack@codesourcery.com> 8179 8180 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to 8181 fatal_io_error with calls to fatal_error; add ": %m" to the end of 8182 all the affected error messages. 8183 81842003-05-13 Richard Henderson <rth@redhat.com> 8185 8186 * class.c (layout_class_method): Set DECL_EXTERNAL. 8187 * decl.c (java_mark_decl_local, java_mark_class_local): New. 8188 * java-tree.h (java_mark_class_local): Declare. 8189 * jcf-parse.c (parse_class_file): Use it. 8190 * parse.y (java_expand_classes): Likewise. 8191 81922003-05-04 Nathan Sidwell <nathan@codesourcery.com> 8193 8194 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h. 8195 * lex.h: #include input.h. 8196 * jv-scan.c (input_filename): Remove. 8197 81982003-05-02 Tom Tromey <tromey@redhat.com> 8199 8200 PR java/10491: 8201 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro. 8202 (handle_inner_classes): New function. 8203 82042003-05-01 Tom Tromey <tromey@redhat.com> 8205 8206 PR java/10459: 8207 * parse.y (finish_for_loop): Do nothing if update expression is a 8208 EXPR_WFL_NODE wrapping nothing. 8209 (java_complete_lhs) <COMPOUND_EXPR>: Likewise. 8210 82112003-05-02 Nathan Sidwell <nathan@codesourcery.com> 8212 8213 * lex.h (input_lineno): Remove declaration. 8214 * parse-scan.y: #include input.h. 8215 (input_filename): Remove declaration. 8216 (input_location): Add definition. 8217 (input_line): Remove definition. 8218 82192003-05-01 Nathan Sidwell <nathan@codesourcery.com> 8220 8221 * lex.h (lineno): Rename to ... 8222 (input_line): ... here 8223 * parse-scan.y (lineno): Rename to ... 8224 (input_line): ... here. 8225 (reset_report): Rename lineno to input_line. 8226 * check-init.c (check_init): Likewise. 8227 * class.c (push_class): Likewise. 8228 * decl.c (complete_start_java_method, end_java_method): Likewise. 8229 * expr.c (expand_byte_code): Likewise. 8230 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise. 8231 * jcf-write.c (generate_bytecode_insns): Likewise. 8232 * lex.c (java_init_lex, java_allocate_new_line, 8233 do_java_lex): Likewise. 8234 * parse.h (YYNOT_TWICE): Likewise. 8235 * parse.y (empty_statement, expression_statement, 8236 java_pop_parser_context, java_parser_context_save_global, 8237 yyerror, register_fields, method_header, safe_layout_class, 8238 find_in_imports_on_demand, create_artificial_method, 8239 source_end_java_method, start_complete_expand_method, 8240 build_thisn_assign, java_complete_lhs, 8241 maybe_absorb_scoping_block): Likewise. 8242 82432003-04-20 Mohan Embar <gnustuff@thisiscool.com> 8244 8245 * jcf-io.c (find_class): use DIR_SEPARATOR instead of 8246 '/' when computing java source filename 8247 82482003-04-13 Tom Tromey <tromey@redhat.com> 8249 8250 * gjavah.c (print_c_decl): Indentation fix. 8251 82522003-04-12 Zack Weinberg <zack@codesourcery.com> 8253 8254 * class.c (make_field_value, make_method_value, get_dispatch_table) 8255 (make_class_data, emit_offset_symbol_table) 8256 * constants.c (build_constants_constructor) 8257 * java-tree.h (START_RECORD_CONSTRUCTOR) 8258 * parse.y (maybe_build_array_element_wfl): 8259 Use build_constructor. 8260 82612003-04-10 Eric Blake <ebb9@email.byu.edu> 8262 8263 PR java/10253: 8264 * parse.y (string_convert_int_cst): Always use at least one digit 8265 in string conversion. Remove ASCII dependence. 8266 (merge_string_cste): Fix merging of 3-byte UTF-8 characters. 8267 82682003-03-16 Mohan Embar <gnustuff@thisiscool.com> 8269 8270 * Make-lang.in: added win32-host.c 8271 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which 8272 resolves to open() on non-Win32 platforms and 8273 Win32-specific jcf_open_exact_case() on Win32 8274 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE 8275 when trying .java and .class files 8276 * win32-host.c: added to repository. Defines 8277 Win32-specific jcf_open_exact_case() 8278 82792003-04-10 Andrew Haley <aph@redhat.com> 8280 8281 * jcf-write.c (struct jcf_partial): num_jsrs: new field. 8282 (maybe_free_localvar): Renamed from localvar_free. 8283 Add new arg, really. 8284 (generate_bytecode_insns): Set new variable, jsrs. 8285 Only free local vars if no jsr insns have been emittted. 8286 Call maybe_free_localvar, not localvar_free. 8287 82882003-03-30 Joseph S. Myers <jsm@polyomino.org.uk> 8289 8290 * gcj.texi: Remove @ at start of file. 8291 82922003-03-25 Tom Tromey <tromey@redhat.com> 8293 8294 * parse.y (create_interface): Call CHECK_DEPRECATED. 8295 82962003-03-23 Zack Weinberg <zack@codesourcery.com> 8297 8298 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB). 8299 83002003-03-21 Zack Weinberg <zack@codesourcery.com> 8301 8302 * javaop.h (jfloat, jdouble): Make them structures mirroring 8303 the bit fields of IEEE float and double respectively. 8304 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS, 8305 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New. 8306 (union Word, union DWord): Delete. 8307 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match. 8308 8309 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK, 8310 D_NAN_MASK): Delete. 8311 (jni_print_float, jni_print_double): New. Generate 8312 hexadecimal floating constants. 8313 (print_field_info): Use jni_print_float/double. 8314 8315 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble 8316 finite floating point numbers for output; special case 8317 non-finite floats. 8318 83192003-03-19 Nathanael Nerode <neroden@gcc.gnu.org> 8320 8321 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'. 8322 Replace 0 and 1 with true and false in return statements. 8323 83242003-03-19 Tom Tromey <tromey@redhat.com> 8325 8326 * lex.c (do_java_lex): Renamed from java_lex. 8327 (java_lex): New function. 8328 Include timevar.h. 8329 83302003-03-13 Tom Tromey <tromey@redhat.com> 8331 8332 * parse.y (resolve_inner_class): Error if qualifier is a primitive 8333 type. 8334 83352003-03-04 Andrew Haley <aph@redhat.com> 8336 8337 * gjavah.c (is_first_data_member): New global variable. 8338 (print_c_decl): If it's the first data member, align it as the 8339 superclass. 8340 (process_file): Set is_first_data_member. 8341 83422003-03-11 Tom Tromey <tromey@redhat.com> 8343 8344 * parse.y (resolve_field_access): Initialize class if field is 8345 found in another static field. 8346 * expr.c (build_class_init): Don't optimize out initialization of 8347 implemented interface. 8348 83492003-03-11 Andrew Haley <aph@redhat.com> 8350 8351 * jcf-io.c (caching_stat): Initialize origsep to remove compiler 8352 warning. 8353 83542003-03-10 Ranjit Mathew <rmathew@hotmail.com> 8355 8356 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR 8357 and DIR_SEPARATOR_2 for a target. 8358 Correct minor typos. 8359 8360 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR 8361 and DIR_SEPARATOR_2 for a target into account. 8362 83632003-03-08 Neil Booth <neil@daikokuya.co.uk> 8364 8365 * lang.c (java_init): Update prototype, move code to java_post_options. 8366 (java_post_options): Similarly. 8367 83682003-03-05 Ranjit Mathew <rmathew@hotmail.com> 8369 8370 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to 8371 compare file name components depending on the case-sensitivity 8372 or otherwise of the host file system. 8373 8374 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of 8375 "strcmp" to compare file name components. 8376 Use IS_DIR_SEPARATOR instead of comparing directly against 8377 DIR_SEPARATOR. 8378 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of 8379 comparing directly against DIR_SEPARATOR. 8380 83812003-03-04 Tom Tromey <tromey@redhat.com> 8382 8383 * Make-lang.in (java.tags): New target. 8384 83852003-03-01 Roger Sayle <roger@eyesopen.com> 8386 8387 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3. 8388 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3. 8389 83902003-03-01 Tom Tromey <tromey@redhat.com> 8391 8392 * parse.y (jdep_resolve_class): Only check deprecation if we found 8393 a decl. 8394 83952003-02-28 Tom Tromey <tromey@redhat.com> 8396 8397 PR java/9695: 8398 * class.c (maybe_layout_super_class): Always pass a WFL to 8399 do_resolve_class. 8400 * parse.y (do_resolve_class): Updated comment to explain 8401 parameters. 8402 84032003-02-26 Tom Tromey <tromey@redhat.com> 8404 8405 * jcf-write.c (generate_classfile): Check whether class is 8406 deprecated before writing attribute count. 8407 84082003-02-25 Roger Sayle <roger@eyesopen.com> 8409 8410 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from 8411 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves. 8412 84132003-02-23 Tom Tromey <tromey@redhat.com> 8414 8415 * lang-options.h: Added -Wdeprecated. 8416 * gcj.texi (Warnings): Document -Wdeprecated. 8417 * java-tree.h (flag_deprecated): Declare. 8418 * lang.c (lang_W_options): Added deprecated. 8419 (flag_deprecated): New global. 8420 * chartables.h: Rebuilt. 8421 * gen-table.pl (process_one): Look at whitespace. 8422 (print_tables): Define LETTER_SPACE, LETTER_MASK. 8423 * parse.h (CLEAR_DEPRECATED): New macro. 8424 (CHECK_DEPRECATED_NO_RESET): New macro. 8425 * jcf-parse.c (handle_deprecated): New function. 8426 (HANDLE_DEPRECATED_ATTRIBUTE): New define. 8427 * jcf-reader.c (get_attribute): Handle Deprecated attribute. 8428 * parse.y (resolve_type_during_patch): Check deprecation. 8429 (jdep_resolve_class): Likewise. 8430 (process_imports): Likewise. 8431 (resolve_expression_name): Likewise. 8432 (check_deprecation): Strip arrays from decl. Check 8433 flag_deprecated. 8434 (patch_method_invocation): Also check the particular constructor 8435 for deprecation. 8436 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop. 8437 * jcf-write.c (append_deprecated_attribute): New function. 8438 (generate_classfile): Generate deprecated attribute when 8439 appropriate. 8440 * lex.c (java_parse_doc_section): Return type now void. Rewrote. 8441 (java_lex) [case '*']: Simplify logic. 8442 (java_start_char_p): Use LETTER_MASK. 8443 (java_part_char_p): Likewise. 8444 (java_space_char_p): New function. 8445 84462003-02-20 Nathan Sidwell <nathan@codesourcery.com> 8447 8448 Change base class access representation. 8449 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC. 8450 (add_interface_do): Likewise. 8451 84522003-02-12 Ranjit Mathew <rmathew@hotmail.com> 8453 8454 * decl.c (java_init_decl_processing): Change 8455 soft_lookupjnimethod_node to reflect the change in 8456 signature of _Jv_LookupJNIMethod in libjava/jni.cc 8457 * expr.c (build_jni_stub): Calculate and pass the size 8458 on the stack of the arguments to a JNI function. Use 8459 new target macro MODIFY_JNI_METHOD_CALL to allow a 8460 target to modify the call to a JNI method. 8461 84622003-02-08 Roger Sayle <roger@eyesopen.com> 8463 8464 * jcf-io.c (java_or_class_file): Use libiberty's lbasename 8465 instead of basename to avoid compiler warnings on Tru64. 8466 84672003-02-04 Joseph S. Myers <jsm@polyomino.org.uk> 8468 8469 * gcj.texi: Update to GFDL 1.2. 8470 84712003-01-31 Andrew Haley <aph@redhat.com> 8472 8473 * parse.y (java_expand_classes): Scan the whole class list looking 8474 for access methods that haven't yet been expanded. 8475 84762003-01-31 Adrian Bunk <bunk@fs.tum.de> 8477 8478 Fix for java/4269: 8479 8480 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO 8481 to fix bootstrap on sparc-unknown-netbsdelf1.5. 8482 * jcf-parse.c: Likewise. 8483 84842003-01-31 Mark Wielaard <mark@klomp.org> 8485 8486 * gjavah.c (throwable_p): Allocate 1 more byte for string. 8487 84882003-01-31 Nathan Sidwell <nathan@codesourcery.com> 8489 8490 * class.c (make_class): Use BINFO_ELTS. 8491 (set_super_info): Likewse. 8492 (add_interface_do): Likewise. 8493 84942003-01-30 Tom Tromey <tromey@redhat.com> 8495 8496 * jcf-parse.c (read_class): Update identifier's class value if it 8497 changed during parsing. 8498 84992003-01-30 Loren James Rittle <ljrittle@acm.org> 8500 8501 * Make-lang.in (po-generated): Find the targets in $(parsedir). 8502 Propagate change to all other rules as required. 8503 (java/parse-scan.o): Add explicit dependency on 8504 $(parsedir)/java/parse-scan.c . 8505 85062003-01-29 Tom Tromey <tromey@redhat.com> 8507 8508 * parse.y (patch_assignment): Only transform the rhs of an 8509 assignment when compiling to native. 8510 85112003-01-28 Tom Tromey <tromey@redhat.com> 8512 8513 * jcf-write.c (generate_bytecode_conditional): Typo fixes. 8514 85152003-01-28 Tom Tromey <tromey@redhat.com> 8516 8517 * lex.c (java_lex): Don't include UEOF as part of token. 8518 (java_read_unicode): Error if \u sequence prematurely terminated. 8519 85202003-01-27 Tom Tromey <tromey@redhat.com> 8521 8522 * parse.y (java_check_regular_methods): Check for construct after 8523 checking types in throws clause. 8524 85252003-01-24 Tom Tromey <tromey@redhat.com> 8526 8527 * class.c (build_static_field_ref): Only a String or numeric field 8528 can fold to a constant. 8529 85302003-01-23 Tom Tromey <tromey@redhat.com> 8531 8532 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of 8533 file name in resource buffer. 8534 85352003-01-23 Tom Tromey <tromey@redhat.com> 8536 8537 * expr.c (build_known_method_ref): Use method's context to find 8538 method table index. 8539 85402003-01-23 Tom Tromey <tromey@redhat.com> 8541 8542 * constants.c (set_constant_entry): Allocated cleared memory. 8543 85442003-01-22 Tom Tromey <tromey@redhat.com> 8545 8546 * java-tree.h: Don't use PARAMS. 8547 * resource.c: Add prototypes for all functions. 8548 (write_resource_constructor): Use `const char *' to avoid 8549 warning. 8550 85512003-01-22 Nathanael Nerode <neroden@gcc.gnu.org> 8552 8553 * jcf-parse.c (process_zip_dir): Remove unused variable. 8554 85552003-01-22 Tom Tromey <tromey@redhat.com> 8556 8557 * expr.c (build_invokeinterface): Abort if method's context is not 8558 an interface. 8559 85602003-01-22 Tom Tromey <tromey@redhat.com> 8561 8562 * gcj.texi (Input and output files): Mention non-class entries. 8563 * decl.c (java_init_decl_processing): Call 8564 init_resource_processing. 8565 * java-tree.h (compile_resource_data, write_resource_constructor, 8566 compile_resource_file, init_resource_processing): Declare. 8567 * config-lang.in (gtfiles): Added resource.c. 8568 * Make-lang.in (gt-java-resource.h): New target. 8569 (JAVA_OBJS): Added resource.o. 8570 (java/resource.o): New target. 8571 * resource.c: New file. 8572 * class.c (compile_resource_file): Moved to resource.c. 8573 (registerResource_libfunc): Likewise. 8574 (utf8_decl_list): Mark with GTY; now static. 8575 * jcf-parse.c (classify_zip_file): New function. 8576 (parse_zip_file_entries): Use it; compile .properties files. 8577 (process_zip_dir): Use classify_zip_file and compute_class_name. 8578 Don't write class name into zip directory. 8579 (java_parse_file): Call write_resource_constructor. 8580 (compute_class_name): New function. 8581 * jcf-io.c (read_zip_member): Reindented. 8582 85832003-01-21 Tom Tromey <tromey@redhat.com> 8584 8585 * class.c (supers_all_compiled): New function. 8586 (make_class_data): Use it. 8587 85882003-01-21 Tom Tromey <tromey@redhat.com> 8589 8590 * parse.y (method_header): Native method can't be strictfp. 8591 No method can be transient or volatile. 8592 85932003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8594 8595 Make-lang.in (jvspec.o-warn): Add -Wno-error. 8596 85972003-01-18 Kazu Hirata <kazu@cs.umass.edu> 8598 8599 * check-init.c: Fix comment typos. 8600 * class.c: Likewise. 8601 * constants.c: Likewise. 8602 * decl.c: Likewise. 8603 * except.c: Likewise. 8604 * expr.c: Likewise. 8605 * java-except.h: Likewise. 8606 * java-tree.h: Likewise. 8607 * javaop.h: Likewise. 8608 * jcf-dump.c: Likewise. 8609 * jcf-io.c: Likewise. 8610 * jcf-parse.c: Likewise. 8611 * jcf-write.c: Likewise. 8612 * lang.c: Likewise. 8613 * mangle.c: Likewise. 8614 * typeck.c: Likewise. 8615 * verify.c: Likewise. 8616 86172003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8618 8619 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H). 8620 * jcf-write.c: Include "tm_p.h". 8621 86222003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8623 8624 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*. 8625 86262003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8627 8628 * builtins.c (java_build_function_call_expr): Renamed from 8629 build_function_call_expr. All callers changed. 8630 8631 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H). 8632 * jcf-parse.c: Include tm_p.h. 8633 8634 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned 8635 warning. 8636 86372003-01-14 Tom Tromey <tromey@redhat.com> 8638 8639 * class.c (make_class_data): Check that super is compiled before 8640 building class reference to it. 8641 86422003-01-14 Andrew Haley <aph@redhat.com> 8643 8644 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a 8645 varargs function -- correct. 8646 86472003-01-14 Andrew Haley <aph@redhat.com> 8648 8649 * decl.c (java_init_decl_processing): Temporarily back out previous patch. 8650 86512003-01-14 Andrew Haley <aph@redhat.com> 8652 8653 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a 8654 varargs function -- correct. 8655 8656 * parse.y (patch_assignment): Copy the rhs of an assignment into a 8657 temporary if the RHS is a reference. 8658 86592003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8660 8661 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf. 8662 * keyword.h: Regenerated. 8663 8664 * All Files: Convert to ISO C style function definitions. 8665 86662003-01-09 Nathanael Nerode <neroden@gcc.gnu.org> 8667 8668 * parse.y (check_pkg_class_access): ANSIfy definition. 8669 86702003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8671 8672 * decl.c, parse-scan.y, parse.y: Don't cast return value of 8673 xmalloc et al. 8674 8675 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR. 8676 86772003-01-09 Geoffrey Keating <geoffk@apple.com> 8678 8679 Merge from pch-branch: 8680 8681 2002-12-02 Geoffrey Keating <geoffk@apple.com> 8682 8683 * Make-lang.in (java/gjavah.o): Update dependencies. 8684 * gjavah.c: Include ggc.h. 8685 8686 2002-08-16 Geoffrey Keating <geoffk@redhat.com> 8687 8688 * Make-lang.in (GCJH_OBJS): Add ggc-none.o. 8689 (JCFDUMP_OBJS): Add ggc-none.o. 8690 (java/jcf-dump.o): Depend on GGC_H. 8691 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate 8692 CPool substructures. 8693 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs. 8694 * jcf-dump.c: Include ggc.h. 8695 8696 2002-08-08 Geoffrey Keating <geoffk@redhat.com> 8697 8698 * jcf.h (union cpool_entry): New. 8699 (struct CPool): Use gengtype to mark. Change field 'data' to be 8700 an array of unions. 8701 (struct JCF): Use gengtype to mark. 8702 (CPOOL_UINT): Update for new cpool_entry type. 8703 (CPOOL_USHORT1): Likewise. 8704 (CPOOL_USHORT2): Likewise. 8705 (CPOOL_FINISH): Use GC to free cpool subfields. 8706 * parse.h (struct parser_ctxt): Mark field current_jcf. 8707 * lex.c (java_init_lex): Use GC to allocate struct JCF. 8708 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type. 8709 (main_jcf): Use gengtype to mark. 8710 (ggc_mark_jcf): Delete. 8711 (get_constant): Update for new cpool_entry type. 8712 (give_name_to_class): Likewise. 8713 (get_class_constant): Likewise. 8714 (init_outgoing_cpool): Use GGC to allocate struct CPool. 8715 (java_parse_file): Use GGC to allocate struct JCF. 8716 (init_jcf_parse): Don't call ggc_add_root. 8717 * jcf-reader.c (jcf_parse_constant_pool): Update for new 8718 cpool_entry type. 8719 * java-tree.h (current_jcf): Use gengtype to mark. 8720 (CPOOL_UTF): Update for new cpool_entry type. 8721 (outgoing_cpool): Use gengtype to mark. 8722 (struct lang_type): GC struct JCF and struct CPool. 8723 * config-lang.in (gtfiles): Add jcf.h. 8724 * constants.c (find_tree_constant): New. 8725 (set_constant_entry): Allocate cpool subfields using GGC. Update 8726 for new cpool_entry type. 8727 (find_constant1): Update for new cpool_entry type. 8728 (find_constant2): Likewise. 8729 (find_utf8_constant): Use find_tree_constant. 8730 (find_class_or_string_constant): Remove unnecessary cast to jword. 8731 Update for new cpool_entry type. 8732 (count_constant_pool_bytes): Update for new cpool_entry type. 8733 (write_constant_pool): Likewise. 8734 (alloc_name_constant): Use find_tree_constant. 8735 (build_constants_constructor): Update for new cpool_entry type. 8736 8737 2002-08-08 Geoffrey Keating <geoffk@redhat.com> 8738 8739 * parse.y (mark_parser_ctxt): Delete. 8740 (goal): Don't use ggc_add_root. 8741 (create_new_parser_context): Use GC to allocate struct parser_ctxt. 8742 (java_pop_parser_context): Let GC free parser_ctxt. 8743 (java_parser_context_resume): Likewise. 8744 * parse.h (struct parser_ctxt): Use gengtype to mark. 8745 (ctxp): Likewise. 8746 (ctxp_for_generation): Likewise. 8747 * lex.h (struct java_lc_s): Mark for gengtype. 8748 (java_lexer): Rearrange for gengtype. 8749 * config-lang.in (gtfiles): Add lex.h, parse.h. 8750 87512003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8752 8753 * All Files: Remove PARAMS macro. 8754 8755 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c, 8756 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or 8757 `__STDC__' macros. 8758 8759 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and 8760 VA_CLOSE. 8761 87622003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de> 8763 8764 * Make-lang.in (java.install-common, java.uninstall, 8765 java.install-info, java.install-man): Prepend $(DESTDIR) 8766 to destination paths in all (un)installation commands. 8767 (java.install-common): Rewrite $(LN) command to support 8768 DESTDIR with "ln" as well as with "ln -s". 8769 87702003-01-08 Nathanael Nerode <neroden@gcc.gnu.org> 8771 8772 * java-tree.h: Protect against multiple inclusion. 8773 87742003-01-07 Tom Tromey <tromey@redhat.com> 8775 8776 * class.c (add_assume_compiled): Don't adjust parent if we're 8777 already at the root of tree. 8778 87792003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8780 8781 * lang.c (dump_compound_expr): Prototype. 8782 87832003-01-03 Tom Tromey <tromey@redhat.com> 8784 8785 Fix for PR java/8712: 8786 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR, 8787 when simply checking against `null'. 8788 87892003-01-03 Tom Tromey <tromey@redhat.com> 8790 8791 * gcj.texi (Standard Properties): Document http.proxyHost and 8792 http.proxyPort. 8793 8794 * gcj.texi (GNU Classpath Properties): Document new properties. 8795 87962003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl> 8797 8798 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf, 8799 java/lang-options.h, java/mangle.c, java/mangle_name.c, 8800 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years. 8801 88022003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl> 8803 8804 * Make-lang.in, boehm.c, buffer.c, 8805 buffer.h, builtins.c, class.c, 8806 config-lang.in, constants.c, 8807 convert.h, decl.c, except.c, 8808 expr.c, java-except.h, 8809 java-tree.h, javaop.def, 8810 jcf-parse.c, jcf-write.c, 8811 jv-scan.c, jvgenmain.c, 8812 jvspec.c, keyword.gperf, 8813 keyword.h, lang-options.h, 8814 lang-specs.h, lang.c, lex.c, 8815 lex.h, mangle.c, mangle_name.c, 8816 parse-scan.y, parse.h, parse.y, 8817 typeck.c, verify.c, xref.c, 8818 xref.h: Replace "GNU CC" with 8819 "GCC" in the copyright header. 8820 8821 * check-init.c, gjavah.c, javaop.h, 8822 jcf-depend.c, jcf-dump.c, jcf-io.c, 8823 jcf-path.c, jcf-reader.c, jcf.h, 8824 zextract.c, zipfile.h: These files are 8825 "part of GCC". Also say "GCC" not "GNU CC". 8826 88272002-12-30 DJ Delorie <dj@redhat.com> 8828 8829 * Make-lang.in: Protect against texi2pod/pod2man failing. 8830 88312002-12-28 Joseph S. Myers <jsm@polyomino.org.uk> 8832 8833 * gcj.texi: Use @copying. 8834 88352002-12-27 Mark Mitchell <mark@codesourcery.com> 8836 8837 * gjavah.c (print_name_for_stub_or_jni): Adjust call to 8838 print_cxx_classname. 8839 (print_cxx_classname): Add add_scope parameter. 8840 (print_class_decls): Do not emit a semicolon after the extern 8841 "Java" block. 8842 (process_file): Adjust calls to print_cxx_classname. 8843 88442002-12-23 Joseph S. Myers <jsm@polyomino.org.uk> 8845 8846 * gcj.texi: Include Cover Texts in man page. 8847 88482002-12-23 Jeff Sturm <jsturm@one-point.com> 8849 8850 * class.c (build_static_field_ref): Check FIELD_FINAL. 8851 8852 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF 8853 instead of current_constant_pool_data_ref. 8854 * java-tree.h (current_constant_pool_data_ref): Undefine. 8855 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove. 8856 * jcf-parse.c (init_outgoing_cpool): Don't initialize 8857 current_constant_pool_data_ref. 8858 8859 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type, 8860 not build_internal_class_name. 8861 8862 * parse.y (patch_incomplete_class_ref): Always emit `class$' method. 8863 Use it when class ref isn't certain to be compiled. 8864 88652002-12-23 Joseph S. Myers <jsm@polyomino.org.uk> 8866 8867 * gcj.texi: Include gcc-common.texi. 8868 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on 8869 $(srcdir)/doc/include/gcc-common.texi. 8870 88712002-12-22 Anthony Green <green@redhat.com> 8872 8873 * gcj.texi (Limitations): Add note about org.xml.sax and 8874 org.w3c.dom. 8875 88762002-12-20 Tom Tromey <tromey@redhat.com> 8877 8878 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case 8879 where minimum case value is Integer.MIN_VALUE. 8880 Fixes PR java/8955. 8881 88822002-12-18 Andrew Haley <aph@redhat.com> 8883 8884 * parse.y (patch_invoke): Force evaluation order when `check' is 8885 set. For PR libgcj/8945. 8886 88872002-12-16 Mark Mitchell <mark@codesourcery.com> 8888 8889 * gcj.texi: Change version number to 3.4. 8890 88912002-12-05 Ranjit Mathew <rmathew@hotmail.com> 8892 Andrew Haley <aph@redhat.com> 8893 8894 * parse.y (source_end_java_method): Remove custom encoding of line 8895 numbers for a function decl before passing it to the back end. 8896 88972002-12-03 Andrew Haley <aph@redhat.com> 8898 8899 * class.c (make_class_data): New field, "chain". 8900 * decl.c (java_init_decl_processing): Likewise. 8901 89022002-12-02 Tom Tromey <tromey@redhat.com> 8903 8904 For PR java/8740: 8905 * parse.y (do_resolve_class): Handle qualified name via 8906 recursion. 8907 89082002-11-30 Zack Weinberg <zack@codesourcery.com> 8909 8910 * boehm.c, buffer.c, builtins.c, check-init.c, class.c, 8911 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c, 8912 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c, 8913 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c, 8914 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c: 8915 Include coretypes.h and tm.h. 8916 * Make-lang.in: Update dependencies. 8917 89182002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8919 8920 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant. 8921 89222002-11-25 Diego Novillo <dnovillo@redhat.com> 8923 8924 * jcf-reader.c: Don't expand JCF_readu4 inside the 8925 expansion of JCF_SKIP. 8926 89272002-11-25 Diego Novillo <dnovillo@redhat.com> 8928 8929 * jcf-reader.c: Don't expand JCF_readu4 inside the 8930 expansion of JCF_SKIP. 8931 89322002-11-22 Tom Tromey <tromey@redhat.com> 8933 8934 * parse.y (patch_binop): Cast right hand side of shift expression 8935 to `int'. Fixes PR java/8676. 8936 89372002-11-22 Ranjit Mathew <rmathew@hotmail.com> 8938 Andrew Haley <aph@redhat.com> 8939 8940 * gcc/java/jcf-write.c (write_classfile): Remove target 8941 class file, if it exists, before renaming the temporary 8942 class file to it. 8943 89442002-11-19 Jason Thorpe <thorpej@wasabisystems.com> 8945 8946 * jvspec.c (lang_specific_spec_functions): New. 8947 89482002-11-18 Tom Tromey <tromey@redhat.com> 8949 8950 Fix for PR java/7912: 8951 * expr.c (can_widen_reference_to): Allow cast of array to 8952 Cloneable or Serializable. 8953 * java-tree.h (java_lang_cloneable_identifier_node): Declare. 8954 (java_io_serializable_identifier_node): Likewise. 8955 * parse.y (java_lang_cloneable, java_io_serializable): Removed. 8956 (valid_ref_assignconv_cast_p): Use new identifier nodes. 8957 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and 8958 java_io_serializable. 8959 * decl.c (java_init_decl_processing): Initialize 8960 java_lang_cloneable_identifier_node and 8961 java_io_serializable_identifier_node. 8962 (java_lang_cloneable_identifier_node): New global. 8963 (java_io_serializable_identifier_node): Likewise. 8964 89652002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de> 8966 8967 * buffer.c: Remove unnecessary casts. 8968 * check-init.c: Likewise. 8969 * class.c: Likewise. 8970 * constants.c: Likewise. 8971 * decl.c: Likewise. 8972 * except.c: Likewise. 8973 * gjavah.c: Likewise. 8974 * jcf-io.c: Likewise. 8975 * jcf-parse.c: Likewise. 8976 * jcf-path.c: Likewise. 8977 * jvspec.c: Likewise. 8978 * lang.c: Likewise. 8979 * lex.c: Likewise. 8980 * verify.c: Likewise. 8981 89822002-11-06 Tom Tromey <tromey@redhat.com> 8983 8984 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in 8985 a JNI header. 8986 89872002-11-05 Tom Tromey <tromey@redhat.com> 8988 8989 Fix for PR java/6388. 8990 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while. 8991 * java-tree.h (enum java_tree_index): New values 8992 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE. 8993 (decimal_int_max, decimal_long_max): New defines. 8994 * lex.c (yylex): Rewrote range checking. Sign extend literals. 8995 (error_if_numeric_overflow): Rewrote range checking. 8996 * decl.c (java_init_decl_processing): Initialize decimal_int_max, 8997 decimal_long_max. 8998 89992002-11-02 Tom Tromey <tromey@redhat.com> 9000 9001 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE. 9002 9003 * class.c (make_method_value): Put class name, not signature, into 9004 `throws' field. For PR java/8415. 9005 90062002-10-24 Tom Tromey <tromey@redhat.com> 9007 9008 * gcj.texi (Invoking gij): Document --showversion. 9009 (Standard Properties): java.library.path now set. 9010 90112002-10-23 Tom Tromey <tromey@redhat.com> 9012 9013 * gjavah.c (decode_signature_piece): In JNI mode, print 9014 `jobjectArray' when array depth is nonzero. 9015 Fixes PR java/8296. 9016 90172002-10-15 Andrew Haley <aph@redhat.com> 9018 9019 * parse.y (patch_invoke): Call force_evaluation_order on a static 9020 arg list. 9021 (resolve_qualified_expression_name): Call force_evaluation_order 9022 on a arg list that is part of a Qualified Expression Name. 9023 9024 * lang.c (dump_compound_expr): New. 9025 (java_dump_tree): New. 9026 90272002-10-20 Ranjit Mathew <rmathew@hotmail.com> 9028 9029 * gcj.texi: Added item describing the GCJ runtime property 9030 "gnu.gcj.progname". 9031 90322002-10-15 Richard Henderson <rth@redhat.com> 9033 9034 * jcf-parse.c (get_constant): Fix type warning. 9035 90362002-10-15 Andrew Haley <aph@redhat.com> 9037 9038 * java-tree.h (java_inlining_merge_static_initializers): Declare. 9039 (java_inlining_map_static_initializers): Declare. 9040 90412002-10-14 Andrew Haley <aph@redhat.com> 9042 9043 * tree-inline.c (remap_block): All local class initialization 9044 flags go in the outermost scope. 9045 (expand_call_inline): Call java_inlining_map_static_initializers. 9046 (expand_call_inline): Call java_inlining_merge_static_initializers. 9047 * java/lang.c (merge_init_test_initialization): New. 9048 (java_inlining_merge_static_initializers): New. 9049 (inline_init_test_initialization): New. 9050 (java_inlining_map_static_initializers): New. 9051 90522002-10-11 Mark Wielaard <mark@klomp.org> 9053 9054 * gcj.texi (Compatibility): Add Limitations and Extensions section. 9055 90562002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9057 9058 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer. 9059 90602002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9061 9062 * parse.y (merge_string_cste): Add parentheses around & within |. 9063 90642002-10-08 Tom Tromey <tromey@redhat.com> 9065 9066 * parse.y (variable_declarator_id): Simplify error path for 9067 array declarator error. For PR java/8003. 9068 90692002-10-08 Zack Weinberg <zack@codesourcery.com> 9070 9071 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with 9072 bug_report_url. 9073 90742002-10-08 Andrew Haley <aph@redhat.com> 9075 9076 * parse.y (attach_init_test_initialization_flags): Check for 9077 error_mark_node. 9078 90792002-10-07 Anthony Green <green@redhat.com> 9080 9081 * parse.y (merge_string_cste): Fix bug in string concatenation. 9082 90832002-10-03 Michael Koch <konqueror@gmx.de> 9084 9085 * gcj.texi (Standard properties): 9086 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit. 9087 90882002-10-02 Roger Sayle <roger@eyesopen.com> 9089 9090 PR optimization/6627 9091 * lang.c (java_init): If storing the vbit in function 9092 pointers, ensure that force_align_functions_log is atleast 9093 one to aid compatability with g++ vtables. 9094 90952002-10-01 Nathan Sidwell <nathan@codesourcery.com> 9096 9097 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall 9098 foul of type-based aliasing. 9099 91002002-09-30 Anthony Green <green@redhat.com> 9101 9102 * gcj.texi (Invoking jv-scan): Fix texinfo. 9103 91042002-09-28 Anthony Green <green@redhat.com> 9105 9106 * gcj.texi (Invoking jv-scan): Add --no-assert documentation. 9107 (Code Generation): Add -fno-assert documentation. 9108 * jv-scan.c (flag_assert): New global. 9109 (options): Add assert option. 9110 (help): Add --no-assert documentation. 9111 * parse-scan.y (flag_assert): New global. 9112 * lang.c (lang_f_options): Add -fassert/-fno-assert support. 9113 (flag_assert): New global. 9114 * java-tree.h (flag_assert): New global. 9115 * lex.c (java_lex): Obey flag_assert. 9116 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when 9117 calling cc1. 9118 91192002-09-26 Andrew Haley <aph@redhat.com> 9120 9121 * expr.c (build_java_array_length_access): Check for null pointer. 9122 * expr.c (expand_java_arrayload): Likewise. 9123 91242002-09-21 Richard Henderson <rth@redhat.com> 9125 9126 * jcf-parse.c (get_constant): Decode from IEEE no matter 9127 what the target format. 9128 91292002-09-20 Kazu Hirata <kazu@cs.umass.edu> 9130 9131 * ChangeLog: Follow spelling conventions. 9132 * class.c: Likewise. 9133 * decl.c: Likewise. 9134 * expr.c: Likewise. 9135 * gjavah.c: Likewise. 9136 * java-tree.h: Likewise. 9137 * jcf-dump.c: Likewise. 9138 * jcf-parse.c: Likewise. 9139 * jvspec.c: Likewise. 9140 * lang.c: Likewise. 9141 * mangle.c: Likewise. 9142 * parse.y: Likewise. 9143 91442002-09-17 Tom Tromey <tromey@redhat.com> 9145 9146 * lex.c (java_read_unicode_collapsing_terminators): Handle case 9147 where \r appears at EOF. Fixes PR java/7950. 9148 91492002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 9150 9151 * jvspec.c (lang_specific_driver): Remove unused variable. 9152 91532002-09-16 Geoffrey Keating <geoffk@apple.com> 9154 9155 * java-tree.h (union lang_tree_node): Add chain_next option. 9156 91572002-09-16 Richard Henderson <rth@redhat.com> 9158 9159 * jcf-parse.c (get_constant): Runtime check for IEEE format; 9160 use new real.h interface. 9161 * jcf-write.c (find_constant_index): Use new real.h interface. 9162 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL. 9163 91642002-09-15 Kazu Hirata <kazu@cs.umass.edu> 9165 9166 * lang.c: Follow spelling conventions. 9167 91682002-09-11 Per Bothner <per@bothner.com> 9169 9170 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical 9171 constant to the type of the field. 9172 (java_complete_tree): Remove now-redundant code. 9173 9174 * parse.y (fold_constant_for_init): 'null' is not a constant expr. 9175 91762002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu> 9177 9178 For PR java/5794: 9179 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the 9180 return label if a ret instruction for the jsr has been reached. 9181 91822002-09-09 Ranjit Mathew <rmathew@hotmail.com> 9183 9184 * parse.y (DIR_SEPARATOR): Don't define. 9185 (check_class_interface_creation): Use IS_DIR_SEPARATOR. 9186 91872002-08-28 Andrew Haley <aph@redhat.com> 9188 9189 * verify.c (verify_jvm_instructions): Allow exception handler 9190 inside code that is being protected, but generate a warning. 9191 * except.c (link_handler): Initialize `expanded' in new eh_range. 9192 (binding_depth, is_class_level, current_pc): Declare extern. 9193 91942002-09-01 Mark Wielaard <mark@klomp.org> 9195 9196 * gcj.texi: Add chapter about system properties. 9197 Fixed some typos. 9198 91992002-08-26 Tom Tromey <tromey@redhat.com> 9200 9201 * parse.y (try_builtin_assignconv): Allow narrowing primitive 9202 conversion if RHS_TYPE is byte, short, or char. 9203 92042002-08-22 Tom Tromey <tromey@redhat.com> 9205 9206 * gcj.texi (Invoking gij): Document -cp and -classpath. 9207 92082002-08-21 Tom Tromey <tromey@redhat.com> 9209 9210 * Make-lang.in (java/jcf-path.o): Use $(datadir), not 9211 $(prefix)/share. For PR libgcj/7633. 9212 9213 For PR java/6005 and PR java/7611: 9214 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define. 9215 (java_can_use_bit_fields_p): New function. 9216 92172002-08-16 Tom Tromey <tromey@redhat.com> 9218 9219 * gcj.texi (Class Initialization): Mention class initialization of 9220 arrays. 9221 92222002-07-30 Andrew Haley <aph@cambridge.redhat.com> 9223 9224 * Make-lang.in (java-tree-inline.o): New. 9225 (JAVA_OBJS): Add java-tree-inline.o. 9226 * parse.y (source_end_java_method): Call java_optimize_inline. 9227 (java_expand_method_bodies): Save method's tree in 9228 DECL_SAVED_TREE. 9229 (add_stmt_to_compound): Keep track of the number of statments. 9230 * lang.c (java_init): Enable flag_inline_trees. 9231 (java_post_options): If flag_inline_functions is on, enable 9232 flag_inline_trees instread. 9233 (decl_constant_value): New. 9234 (java_tree_inlining_walk_subtrees): New. 9235 * java-tree.h (DECL_NUM_STMTS): New macro. 9236 (java_optimize_inline): Declare. 9237 * expr.c (java_expand_expr): Allow a BLOCK to return a value. 9238 Handle a LABEL_EXPR. 9239 * decl.c (build_result_decl): If we already have a DECL_RESULT 9240 don't make another. 9241 (dump_function): New. 9242 (java_optimize_inline): New. 9243 (dump_function): New. 9244 92452002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com> 9246 9247 For PR java/7483: 9248 * parse.y (build_assertion): Invert return from 9249 desiredAssertionStatus. 9250 92512002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9252 9253 * jcf-write.c (get_access_flags): Return correct access flags for 9254 private and protected inner classes. 9255 92562002-08-08 Nathan Sidwell <nathan@codesourcery.com> 9257 9258 * java/Make-lang.in (java.mostlyclean): Remove coverage files. 9259 92602002-08-05 Geoffrey Keating <geoffk@redhat.com> 9261 9262 * mangle_name.c: Don't include obstack.h twice. 9263 * xref.c: Don't include obstack.h. 9264 92652002-08-04 Geoffrey Keating <geoffk@redhat.com> 9266 9267 * class.c: (permanent_obstack): Delete declaration. 9268 * constants.c: (permanent_obstack): Delete declaration. 9269 * except.c: (permanent_obstack): Delete declaration. 9270 * expr.c: (permanent_obstack): Delete declaration. 9271 * jcf-parse.c: (permanent_obstack): Delete declaration. 9272 (saveable_obstack): Delete declaration. 9273 * parse.h: (permanent_obstack): Delete declaration. 9274 * typeck.c: (permanent_obstack): Delete declaration. 9275 92762002-08-04 Joseph S. Myers <jsm@polyomino.org.uk> 9277 9278 * gcj.texi (version-gcc): Increase to 3.3. 9279 92802002-07-22 Tom Tromey <tromey@redhat.com> 9281 9282 * lex.c (java_lex): Check for `e' or `E' after 0. 9283 92842002-07-21 Richard Henderson <rth@redhat.com> 9285 9286 * lang.c (java_unsafe_for_reeval): New. 9287 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New. 9288 92892002-07-21 Neil Booth <neil@daikokuya.co.uk> 9290 9291 * jcf-path.c (GET_ENV_PATH_LIST): Remove. 9292 (jcf_path_init): Use GET_ENVIRONMENT. 9293 92942002-07-10 Roger Sayle <roger@eyesopen.com> 9295 Zack Weinberg <zack@codesourcery.com> 9296 9297 * builtins.c (initialize_builtins): Remove defines that 9298 handled C/C++ specific junk hereby removed from builtins.def. 9299 93002002-07-07 Neil Booth <neil@daikokuya.co.uk> 9301 9302 * lang.c (java_post_options): Update prototype. 9303 93042002-07-05 Roger Sayle <roger@eyesopen.com> 9305 9306 * builtins.c (initialize_builtins): Ignore the additional 9307 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in 9308 the builtins.def file. 9309 93102002-07-01 Tom Tromey <tromey@redhat.com> 9311 9312 For PR libgcj/7073: 9313 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE 9314 specially. 9315 93162002-07-01 Roger Sayle <roger@eyesopen.com> 9317 9318 * java/decl.c (builtin_function): Accept additional parameter. 9319 (java_init_decl_processing): Pass an additional NULL_TREE 9320 argument to builtin_function. 9321 93222002-06-29 T.J. Mather <tjmather@maxmind.com> 9323 9324 * gcj.texi: Fixed gcj invocation example so that it compiles. 9325 93262002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9327 9328 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11. 9329 * parse.y (mark_parser_ctxt): Likewise. 9330 (check_modifiers, declare_local_variables): Avoid incorrect 9331 hardcoded constant 10. 9332 9333 * lex.c (java_read_char): Avoid "comparison is always true" 9334 warning. 9335 93362002-06-25 Andreas Schwab <schwab@suse.de> 9337 9338 * expr.c (JSR): Avoid undefined operation on PC. 9339 93402002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9341 9342 * decl.c (clear_binding_level): Const-ify. 9343 93442002-06-13 Akim Demaille <akim@epita.fr> 9345 9346 * parse.y (class_declaration, interface_declaration): Make sure 9347 all their rules have an action, in order to avoid meaningless `$$ 9348 = $1' and their type clashes. 9349 93502002-06-11 Tom Tromey <tromey@redhat.com> 9351 9352 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC. 9353 * parse-scan.y (statement_without_trailing_substatement): Added 9354 assert_statement. 9355 (assert_statement): New rule. 9356 * java-tree.h (struct lang_type) [assertions]: New field. 9357 (TYPE_USES_ASSERTIONS): New macro. 9358 (CLASS_USES_ASSERTIONS): Likewise. 9359 (FIELD_SYNTHETIC): New define. 9360 * lex.c (java_lval;): Added ASSERT_TK. 9361 * parse.y (ASSERT_TK): Added. 9362 (statement_without_trailing_substatement): Added assert_statement. 9363 (assert_statement): New rule. 9364 (build_assertion): New function. 9365 (maybe_generate_pre_expand_clinit): Create and initialize 9366 $assertionsDisabled. 9367 (lookup_package_type): Removed decl. 9368 * keyword.h: Rebuilt. 9369 * keyword.gperf (assert): New token. 9370 93712002-06-10 Akim Demaille <akim@epita.fr> 9372 9373 * parse.y (interface_type_list, class_member_declaration) 9374 (unary_expression_not_plus_minus): Remove duplicate %type. 9375 Whitespace changes. 9376 93772002-06-09 Tom Tromey <tromey@redhat.com> 9378 9379 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H. 9380 9381 * parse.y (method_header): Give error message in all cases. 9382 Fixes PR java/6865. 9383 93842002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9385 9386 Don't use RTL inlining. Fix for PR java/6820. 9387 * lang.c (LANG_HOOKS_POST_OPTIONS): Define. 9388 (flag_really_inline): New. 9389 (java_decode_option): Set flag_really_inline if -finline-functions 9390 is seen. 9391 (java_post_options): New function. Turn off inlining unless 9392 flag_really_inline is set. 9393 93942002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9395 9396 * gjavah.c (throwable_p): Accept argument as either a classname or 9397 signature fragment. Create null-terminated classname string for super 9398 when calling itself recursively. 9399 (decode_signature_piece): Skip first character from class name 9400 signature when calling throwable_p. 9401 94022002-06-08 H.J. Lu (hjl@gnu.org) 9403 9404 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string. 9405 94062002-06-04 Tom Tromey <tromey@redhat.com> 9407 9408 * jcf-write.c (perform_relocations): Optmize a goto to a goto. 9409 94102002-06-04 Michael Koch <konqueror@gmx.de> 9411 9412 * gcj.texi (Input Options): Fixed typo. 9413 94142002-06-04 Zack Weinberg <zack@codesourcery.com> 9415 9416 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y, 9417 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks, 9418 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE, 9419 and all now-pointless local variables. Rename other local 9420 variables to reflect their not being handles. 9421 9422 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all 9423 #if JCF_USE_STDIO blocks. 9424 9425 * parse.y: Add missing semicolon at end of rule. 9426 94272002-06-03 Geoffrey Keating <geoffk@redhat.com> 9428 9429 * check-init.c (attach_initialized_static_class): Delete, unused. 9430 * parse.y: Use htab_t instead of struct hashtable, update 9431 all uses. 9432 * java-tree.h: Include hashtab.h instead of hash.h. 9433 (struct lang_decl_func): Use htab_t, set up for gengtype. 9434 (struct init_test_hash_entry): Delete. 9435 (struct treetreehash_entry): New. 9436 (java_treetreehash_find): New 9437 (java_treetreehash_new): New prototype. 9438 (java_treetreehash_create): New prototype. 9439 (java_mark_tree): Delete prototype. 9440 (java_hash_hash_tree_node): Delete prototype. 9441 (java_hash_compare_tree_node): Delete prototype. 9442 (attach_initialized_static_class): Delete prototype. 9443 * expr.c (build_class_init): Update to use java_treetreehash 9444 functions. 9445 (java_expand_expr): Update to use htab_t. 9446 (emit_init_test_initialization): Likewise. 9447 * decl.c (java_mark_tree): Delete. 9448 * class.c (init_test_hash_newfunc): Delete. 9449 (java_hash_hash_tree_node): Delete. 9450 (java_hash_compare_tree_node): Delete. 9451 (add_method_1): Update to use java_treetreehash functions. 9452 (JAVA_TREEHASHHASH_H): New macro. 9453 (java_treetreehash_hash): New function. 9454 (java_treetreehash_compare): New function. 9455 (java_treetreehash_find): New function. 9456 (java_treetreehash_new): New function. 9457 (java_treetreehash_create): New function. 9458 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H. 9459 9460 * Make-lang.in (java/parse.o): Depend on debug.h. 9461 * java-tree.h (struct lang_identifier): Use gengtype. 9462 (union lang_tree_node): New. 9463 (struct lang_decl_func): Use gengtype. 9464 (struct lang_decl_var): Likewise. 9465 (struct lang_decl): Likewise. 9466 * parse.y: Include debug.h. 9467 * lang.c (LANG_HOOKS_MARK_TREE): Delete. 9468 9469 * lang.c (struct language_function): New dummy structure. 9470 9471 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set 9472 descriminator for DECL_LANG_SPECIFIC. 9473 (struct lang_decl_func): Rename from struct lang_decl. 9474 (enum lang_decl_desc): New. 9475 (struct lang_decl): Make it a union. Update all the accessor macros. 9476 (struct lang_type): Use gengtype. 9477 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC. 9478 * decl.c (java_dup_lang_specific_decl): All lang_decl structures 9479 are now the same size. 9480 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC; 9481 use discriminator to mark DECL_LANG_SPECIFIC. 9482 9483 * Make-lang.in (gt-java-builtins.h): New rule. 9484 (java/builtins.o): Add dependency on gt-<filename>.h. 9485 * builtins.c: Use gengtype for roots. 9486 (union string_or_tree): Use gengtype. 9487 (struct builtin_record): Use gengtype. 9488 * config-lang.in (gtfiles): Add builtins.c. 9489 9490 * Make-lang.in (gt-java-class.h, gt-java-constants.h, 9491 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h, 9492 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h, 9493 gt-java-parse.h, gtype-java.h): Add rules to generate. 9494 (parse.o): Add dependency on gt-java-parse.h, gt-java.h. 9495 (class.o): Add dependency on gt-*.h. 9496 (constants.o): Likewise. 9497 (decl.o): Likewise. 9498 (expr.o): Likewise. 9499 (jcf-parse.o): Likewise. 9500 (jcf-write.o): Likewise. 9501 (lang.o): Likewise. 9502 * config-lang.in (gtfiles): New. 9503 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h. 9504 * constants.c: Replace uses of ggc_add_* with GTY markers. 9505 Include gt-*.h. 9506 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h. 9507 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h. 9508 * java-tree.h: Replace uses of ggc_add_* with GTY markers. 9509 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers. 9510 Include gt-*.h. 9511 * jcf-write.c: Replace uses of ggc_add_* with GTY markers. 9512 Include gt-*.h. 9513 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h. 9514 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include 9515 gt-*.h. 9516 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h. 9517 Include gtype-java.h. 9518 95192002-06-02 Tom Tromey <tromey@redhat.com> 9520 9521 Fix for PR java/5913: 9522 * parse.y (patch_binop): Call patch_string on op1. 9523 95242002-06-02 Tom Tromey <tromey@redhat.com> 9525 9526 Fix for PR java/1343, PR java/6336: 9527 * parse.y (make_nested_class_name): Remove extraneous `else'; fix 9528 formatting. Changed return type. 9529 (anonymous_class_counter): Moved to top of file. 9530 (maybe_make_nested_class_name): Append number to class name for 9531 function-local classes. 9532 95332002-05-28 Zack Weinberg <zack@codesourcery.com> 9534 9535 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h. 9536 * Make-lang.in: Update dependency lists. 9537 95382002-05-18 Mark Mitchell <mark@codesourcery.com> 9539 9540 * gjavah.c (throwable_p): Do not free the name of the class after 9541 passing it to find_class. 9542 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition. 9543 * jcf-io.c (dirent.h): Include it. 9544 (fnmatch.h): Likewise. 9545 (compare_path): New function. 9546 (java_or_class_file): Likewise. 9547 (memoized_dirlist_entry): New type. 9548 (memoized_dirlist_lookup_eq): New function. 9549 (memoized_dirlists): New variable. 9550 (caching_stat): New function. 9551 (memoized_class_lookup_eq): New function. 9552 (memoized_class_lookups): Likewise. 9553 (find_class): Use memoized_class_lookups and caching_stat. 9554 * jcf.h (JCF_USE_SCANDIR): Define. 9555 * parse.y (java_expand_classes): Write the class files in reverse 9556 order. 9557 95582002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 9559 9560 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd. 9561 95622002-05-13 Mark Mitchell <mark@codesourcery.com> 9563 9564 * jcf-write.c (write_classfile): Unlink the temporary file if it 9565 cannot be renamed. Use concat to build up the name of the 9566 temporary file. 9567 95682002-05-08 Mark Mitchell <mark@codesourcery.com> 9569 9570 * jcf-write.c (write_classfile): Write the file to a 9571 temporary file and then rename it. 9572 95732002-05-07 Tom Tromey <tromey@redhat.com> 9574 9575 * gjavah.c (throwable_p): Use xstrdup, not strdup. 9576 9577 Fix for PR java/1200: 9578 * gjavah.c (throwable_p): New function. 9579 (decode_signature_piece): Use it. A `WeakReference' isn't the 9580 same as a `jweak'. 9581 Include hashtab.h. 9582 (gcjh_streq): New function. 9583 95842002-05-07 Andreas Jaeger <aj@suse.de> 9585 9586 * parse.y (finish_for_loop): Fix if statement. 9587 95882002-05-06 Tom Tromey <tromey@redhat.com> 9589 9590 Fix for PR java/5941: 9591 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for 9592 loop update expression. 9593 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR. 9594 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro. 9595 95962002-05-04 Mark Wielaard <mark@klomp.org> 9597 9598 For PR java/6519: 9599 * parse.y (build_string_concatenation): Return just op1 only when op2 9600 is null and op1 is a STRING_CST, otherwise always construct a 9601 StringBuffer. 9602 96032002-04-27 Tom Tromey <tromey@redhat.com> 9604 9605 For PR java/6382: 9606 * parse.y (string_convert_int_cst): New function. 9607 (merge_string_cste): Use it. 9608 96092002-04-25 Neil Booth <neil@daikokuya.demon.co.uk> 9610 9611 * java-tree.h (java_parse_file): Update. 9612 (java_set_yydebug): Remove. 9613 * jcf-parse.c (yydebug): Remove. 9614 (java_set_yydebug): Die. 9615 (java_parse_file): Update. 9616 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. 9617 96182002-04-24 Tom Tromey <tromey@redhat.com> 9619 9620 For PR java/6425: 9621 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose 9622 EXPR_WFL_QUALIFICATION of qual_wfl. 9623 96242002-04-23 Per Bothner <per@bothner.com> 9625 9626 * expr.c (PRE_JSR): Call NOTE_LABEL for return address. 9627 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set. 9628 (BCODE_TARGET): Remove BCODE_RETURN_TARGET. 9629 96302002-04-23 Tom Tromey <tromey@redhat.com> 9631 9632 For PR java/6314: 9633 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also 9634 recognize `-fcompile-resource='. 9635 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text 9636 a bit. 9637 96382002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com> 9639 9640 * jcf-parse.c: (yyparse): Don't prepend "./" to relative 9641 paths. Fixes PR java/2791. 9642 96432002-04-19 Andrew Haley <aph@redhat.com> 9644 9645 * jcf-write.c (push_long_const): lo, hi: New variables. 9646 Use rshift_double to extract the high part of a 64-bit long. 9647 Use WORD_TO_INT to extract the low part. 9648 9649 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned 9650 HOST_WIDE_INT for num. Use JPOOL_UINT to get it. 9651 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double. 9652 96532002-04-18 Neil Booth <neil@daikokuya.demon.co.uk> 9654 9655 * typeck.c (incomplete_type_error): Remove. 9656 96572002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9658 9659 * class.c (make_class_data): Set DECL_ALIGN on static class data, 9660 for hash synchronization. 9661 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects. 9662 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for 9663 class_type_node. 9664 96652002-04-16 Mark Wielaard <mark@klomp.org> 9666 9667 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not 9668 negative zero. 9669 96702002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9671 9672 Fix for PR java/6294: 9673 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner 9674 interfaces. 9675 96762002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9677 9678 Fix for PR java/6085: 9679 * parse.y (patch_method_invocation): Always use build_access_to_thisn 9680 to get enclosing "this" argument for inner-class constructor 9681 invocation. Pass correct arguments to build_access_to_thisn. 9682 96832002-04-10 Andreas Jaeger <aj@suse.de> 9684 9685 * gcj.texi (Input Options): Fix extdirs patch. 9686 96872002-04-10 Anthony Green <green@redhat.com> 9688 9689 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration. 9690 96912002-04-09 Anthony Green <green@redhat.com> 9692 9693 * gcj.texi (Input Options): Add --extdirs documentation. 9694 * jcf-dump.c (OPT_extdirs): New macro. 9695 (options): Add extdirs option. 9696 (help): Describe --extdirs. 9697 (main): Handle OPT_extdirs. 9698 * gjavah.c (OPT_extdirs): New macro. 9699 (options): Add extdirs option. 9700 (help): Describe --extdirs. 9701 (main): Handle OPT_extdirs. 9702 * jcf-path.c (jcf_path_init): Add extdirs support. 9703 (jcf_path_extdirs_arg): New function. 9704 (extensions): New variable to hold extensions path entries. 9705 * jvspec.c: Remove -fextdirs= when compiling main(). 9706 * lang.c (java_decode_option): Handle -fextdirs=. 9707 * jcf.h (jcf_path_extdirs_arg): Declare new function. 9708 * Make-lang.in: Compile jcf-path with version info for use in 9709 identifying the appropriate libgcj.jar. 9710 97112002-04-08 Tom Tromey <tromey@redhat.com> 9712 9713 For PR libgcj/5303: 9714 * .cvsignore: Added rmic.1 and rmiregistry.1. 9715 * gcj.texi (Top): Link to new nodes. 9716 (Invoking rmic): New node. 9717 (Invoking rmiregistry): Likewise. 9718 * Make-lang.in (java.generated-manpages): Added rmic.1 and 9719 rmiregistry.1. 9720 (java.maintainer-clean): Likewise. 9721 ($(srcdir)/java/rmic.1): New target. 9722 ($(srcdir)/java/rmiregistry.1): Likewise. 9723 (java.install-man): Handle rmic.1 and rmiregistry.1. 9724 97252002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9726 9727 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation. 9728 Add note about handling uncaught exceptions. Add an exception handler 9729 to example. 9730 97312002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9732 9733 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag 9734 after using it to patch CALL_EXPR. 9735 97362002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9737 9738 * gcj.texi (Invocation): Document CNI invocation API. 9739 97402002-04-04 Neil Booth <neil@daikokuya.demon.co.uk> 9741 9742 * expr.c (truthvalue_conversion): Rename. Update. 9743 (expand_compare): Update. 9744 * java-tree.h (java_truthvalue_conversion): New. 9745 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. 9746 97472002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 9748 9749 * java-tree.h (java_mark_addressable): New. 9750 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. 9751 * typeck.c (mark_addressable): Rename, update. 9752 97532002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 9754 9755 * expr.c (build_java_binop): Update. 9756 * java-tree.h (java_signed_type, java_unsigned_type, 9757 java_signed_or_unsigned_type): Update. 9758 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, 9759 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. 9760 * parse.y (patch_binop): Update. 9761 * typeck.c (signed_or_unsigned_type, unsigned_type, 9762 signed_type): Update. 9763 97642002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 9765 9766 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine. 9767 (java_dummy_print): Remove. 9768 (lang_print_error): Rename. Exit early if inhibiting output. 9769 (inhibit_error_printing_function): New. 9770 (java_init): Don't set hook. 9771 (lang_init_source): Use new boolean. 9772 97732002-03-29 Martin Kahlert <martin.kahlert@infineon.com> 9774 9775 * parse.y (do_resolve_class): Fix infinite recursion. 9776 97772002-03-29 Tom Tromey <tromey@redhat.com> 9778 9779 * parse.y (check_inner_circular_reference): Ignore incomplete 9780 types. 9781 97822002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 9783 9784 * Make-lang.in (builtins.o): Update. 9785 * boehm.c (get_boehm_type_descriptor): Update. 9786 * builtins.c: Include langhooks.h. 9787 * decl.c (java_init_decl_processing): Update. 9788 * java-tree.h (java_type_for_mode, java_type_for_size): New. 9789 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE): 9790 Redefine. 9791 * typeck.c (type_for_mode, type_for_size): Update. 9792 97932002-03-29 Martin Kahlert <martin.kahlert@infineon.com> 9794 9795 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING. 9796 97972002-03-28 Tom Tromey <tromey@redhat.com> 9798 9799 * except.c (expand_end_java_handler): If the handler type is NULL, 9800 use java.lang.Throwable. Fixes PR java/5986. 9801 98022002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com> 9803 9804 Fix for PR java/4715: 9805 * jcf-parse.c (parse_source_file_3): New function. 9806 (read_class): Call it. 9807 (java_parse_file): Likewise. 9808 98092002-03-28 Jan Hubicka <jh@suse.cz> 9810 9811 * java/lang.c (java_init_options): Set flag_trapping_math to 0. 9812 98132002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9814 9815 * parse.y (resolve_package): Initialize "decl". 9816 (lookup_package_type): Remove unused function. 9817 98182002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9819 9820 Fix for PR java/5993: 9821 * parse.y (resolve_package): Return the decl if resolution was 9822 successful. Don't special case "java.lang" and "java.lang.reflect" 9823 packages. Set type_name to the merged identifier. 9824 (resolved_qualified_expression_name): Print error using "name" if 9825 resolve_package returns NULL_TREE. 9826 98272002-03-27 Tom Tromey <tromey@redhat.com> 9828 9829 * expr.c (expand_invoke): Don't generate null pointer check if 9830 we're calling <init>. 9831 98322002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 9833 9834 * expr.c (java_lang_expand_expr): Rename java_expand_expr, 9835 fix prototype. 9836 * java-tree.h (java_lang_expand_expr): Similarly. 9837 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. 9838 (java_init): Don't set hook. 9839 98402002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9841 9842 Fix for PR java/5850: 9843 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing 9844 context if field was not found in the current scope. 9845 * expr.c (lookup_field): Don't look in enclosing contexts. 9846 98472002-03-26 Tom Tromey <tromey@redhat.com> 9848 9849 Fix for PR java/5942: 9850 * parse.y (init_src_parse): Added sanity check. 9851 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12 9852 elements, not 11. 9853 98542002-03-26 Neil Booth <neil@daikokuya.demon.co.uk> 9855 9856 * decl.c (lang_mark_tree): Rename java_mark_tree. 9857 * java-tree.h (java_mark_tree): New. 9858 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine. 9859 98602002-03-25 Zack Weinberg <zack@codesourcery.com> 9861 9862 * lex.c: Change java_perform_atof to take normal parameters 9863 instead of a pointer to a parameter block. Call it directly 9864 from java_lex. 9865 98662002-03-22 Mark Wielaard <mark@klomp.org> 9867 9868 Fix for PR java/5368: 9869 * parse.y (resolve_qualified_expression_name): Use decl not field_decl 9870 when printing error message. 9871 98722002-03-25 Neil Booth <neil@daikokuya.demon.co.uk> 9873 9874 * decl.c (maybe_build_cleanup): Remove. 9875 98762002-03-22 Tom Tromey <tromey@redhat.com> 9877 9878 Andrew Haley <aph@cambridge.redhat.com> 9879 9880 * expr.c (build_field_ref): Don't build a check if the field is a 9881 member of `this'. 9882 98832002-03-21 Eric Blake <ebb9@email.byu.edu> 9884 9885 Fix for PR java/6026: 9886 * lex.c (java_lex): Fix parsing of consecutive floats. 9887 98882002-03-21 Tom Tromey <tromey@redhat.com> 9889 9890 * parse.y (build_access_to_thisn): Stop when FROM is not an inner 9891 class. 9892 98932002-03-21 Neil Booth <neil@daikokuya.demon.co.uk> 9894 9895 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block, 9896 insert_block, getdecls, kept_level_p, global_bindings_p): New. 9897 98982002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk> 9899 9900 * gcj.texi: @code{gcj} becomes @command{gcj}. 9901 @code{gcc} becomes @command{gcc}. 9902 GcjRaw changed to gnu.gcc.RawData. 9903 99042002-03-20 Neil Booth <neil@daikokuya.demon.co.uk> 9905 9906 * decl.c (start_java_method): Use new hook. 9907 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. 9908 (java_init): Remove old hook. 9909 99102002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com> 9911 9912 * builtins.c (define_builtin): Do nothing if `type' is null. 9913 Fixes PR java/5876. 9914 99152002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9916 9917 * parse.y (parser_check_super_interface): Fix error message 9918 grammar/order. 9919 99202002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9921 9922 * jcf-parse.c (get_constant): Delete unused variables. 9923 99242002-03-17 Neil Booth <neil@daikokuya.demon.co.uk> 9925 9926 * java-tree.h (java_parse_file): New. 9927 * jcf-parse.c (yyparse): Rename java_parse_file. 9928 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine. 9929 99302002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9931 9932 * parse.y (craft_constructor): Return the constructor decl. 9933 (java_expand_classes): Update comments. 9934 (lookup_method_invoke): Call fix_constructors immediately for 9935 anonymous class. Fixes PR java/5935. 9936 99372002-03-15 Anthony Green <green@redhat.com> 9938 9939 * jcf-parse.c (yyparse): Don't emit class registration 9940 constructor when compiling resource files. 9941 99422002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9943 9944 * lang.c (java_tree_code_type, java_tree_code_length, 9945 tree_code_name): Delete. 9946 (tree_code_type, tree_code_length, tree_code_name): Define. 9947 (java_init): Don't try to copy into the various tree_code 9948 arrays. 9949 99502002-03-12 Tom Tromey <tromey@redhat.com> 9951 9952 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are 9953 UTF-8, not UCS-2. Fixes PR java/5923. 9954 9955 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is 9956 a call_expr wrapped in a convert. Fixes PR java/5848. 9957 99582002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9959 9960 * jcf-write.c (write_classfile): Improve error strings. 9961 99622002-03-11 Eric Blake <ebb9@email.byu.edu> 9963 9964 * lex.c: Adjust comments to GNU standards. 9965 99662002-03-11 Eric Blake <ebb9@email.byu.edu> 9967 9968 Fix for PR java/5902: 9969 * lex.c (java_lex): Fix parsing of literals. 9970 99712002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9972 9973 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr 9974 to prevent it getting evaluated twice in the store checking case. 9975 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when 9976 examining OBJECT. 9977 99782002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 9979 9980 * decl.c (java_init_decl_processing): Make sure class_type_node 9981 alignment is not less than 64 bits if hash synchronization is enabled. 9982 99832002-03-08 Per Bothner <per@bothner.com> 9984 9985 * parse.y (java_complete_lhs): Check if patch_assignment 9986 returned an error-mark. 9987 9988 * parse.y (try_builtin_assignconv): Don't special-case zero. 9989 99902002-03-08 Per Bothner <per@bothner.com> 9991 9992 Fix for PR java/5812. 9993 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label 9994 here instead of in JSR macro. Likewise with load_type_state call. 9995 Do the latter on if the return_pc has been verified (the jsr returns). 9996 (JSR): Now just call build_java_jsr. 9997 99982002-03-07 Jeff Sturm <jsturm@one-point.com> 9999 10000 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define. 10001 (java.install-common): Link native driver to 10002 JAVA_TARGET_INSTALL_NAME. 10003 100042002-03-05 David Billinghurst <David.Billinghurst@riotinto.com> 10005 10006 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED 10007 * builtins.c(sin_builtin): Likewise 10008 * builtins.c(sqrt_builtin): Likewise 10009 100102002-03-03 Zack Weinberg <zack@codesourcery.com> 10011 10012 * java/expr.c, java/jcf-parse.c, java/lex.c: 10013 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef 10014 REAL_ARITHMETIC blocks unconditional. Delete some further 10015 #ifdef blocks predicated on REAL_ARITHMETIC. 10016 100172002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10018 10019 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of 10020 explicit sizeof/sizeof. 10021 * decl.c (java_init_decl_processing): Likewise. 10022 * jcf-parse.c (init_jcf_parse): Likewise. 10023 * parse.y (init_src_parse): Likewise. 10024 100252002-03-02 Per Bothner <per@bothner.com> 10026 10027 Make --CLASSPATH by a synonym for --classpath and -classpath. 10028 Implement --bootclasspath. 10029 * jcf-path.c (classpath_u): Rename static variable to classpath_user. 10030 (classpath_l): Remove. 10031 (jcf_path_CLASSPATH_arg): Remove. 10032 (jcf_path_bootclasspath_arg): New function. 10033 (jcf_path_seal): Simplify accordingly. 10034 10035 * jcf.h (jcf_path_bootclasspath_arg): New declarations. 10036 (jcf_path_CLASSPATH): Remove declaration. 10037 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*. 10038 (lang_specific_driver): Translate -bootclasspath. 10039 * lang-options.h: Add --bootclasspath. Update --CLASSPATH. 10040 * lang.c (decode_lang_options): Do jcf_path_init first. 10041 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath. 10042 * gjavah.c: Also handle --bootclasspath. 10043 Handle --CLASSPATH as a synonum for --classpath. 10044 * jcf-dump.c: Likewise. 10045 10046 "." is not part of system path, but is the default for --classpath. 10047 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs. 10048 (jcf_path_seal): Add "." if no CLASSPATH specified. 10049 10050 * gcj.texi: Document changes. 10051 100522002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10053 10054 * expr.c (build_java_arraystore_check): Fix formatting. 10055 100562002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com> 10057 10058 Fix for PR java/5758, java/5632: 10059 * jcf-parse.c (load_class): Renamed local variable, consider `.' an 10060 inner-class separator too. 10061 * parse.y (do_resolve_class): New local `decl_result.' 10062 Progressively build a name for what can have been loaded. 10063 100642002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10065 10066 * expr.c (java_array_data_offset): Removed function. 10067 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro. 10068 (build_java_array_length_access): Obtain "length" value using a 10069 COMPONENT_REF, instead of INDIRECT_REF and arithmetic. 10070 (build_java_arrayaccess): Correct comment. Access "data" using a 10071 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF. 10072 (build_java_arraystore_check): New function. 10073 (expand_java_arraystore): Use build_java_arraystore_check. 10074 * parse.y (patch_assignment): Simplify code to insert a store check 10075 when lvalue is an ARRAY_REF. Use build_java_arraystore_check. 10076 * check-init.c (check_init): Update to reflect that an array length 10077 access is now a COMPONENT_REF. 10078 * gcj.texi (Code Generation): Improve documentation of 10079 -fno-bounds-check. Add documentation for -fno-store-check. 10080 * java-tree.h (flag_store_check): Declare. 10081 (build_java_arraystore_check): Declare. 10082 * lang.c (flag_store_check): Initialize to 1. 10083 (lang_f_options): Add store-check option. 10084 * jvspec.c: Don't pass store-check option to jvgenmain. 10085 * lang-options.h: Add help string for -fno-store-check. 10086 100872002-02-28 Neil Booth <neil@daikokuya.demon.co.uk> 10088 10089 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl. 10090 * java-tree.h (java_dup_lang_specific_decl): New. 10091 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. 10092 100932002-02-27 Zack Weinberg <zack@codesourcery.com> 10094 10095 * builtins.c, decl.c: Delete traditional-mode-related code 10096 copied from the C front end but not used, or used only to 10097 permit the compiler to link. 10098 100992002-02-22 Tom Tromey <tromey@redhat.com> 10100 10101 Fix for PR java/2369: 10102 * jvspec.c (verify_class_name): New function. 10103 (lang_specific_driver): Call it. 10104 (JAVA_START_CHAR_P): New macro. 10105 (JAVA_PART_CHAR_P): Likewise. 10106 101072002-02-22 Per Bothner <per@bothner.com> 10108 10109 * class.c: Change vtable to be more compatible with g++ v3 abi. 10110 (get_dispatch_table): Prepend offset-to-top (always 0) and 10111 type_info pointer (currently unimplemented hence NULL) to vtable. 10112 Specifically, prepend offset-to-top and typeinfo ptr (currently null). 10113 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers. 10114 Adjust vtable pointers by dtable_start_offse - i.e. skip new words. 10115 (build_dtable_decl): Add declarations for new fields. 10116 101172002-02-20 Per Bothner <per@bothner.com> 10118 10119 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call 10120 to finit$ (otherwise generate_bytecode_insns drops it). However, we 10121 don't need to set it on the COMPOUND_EXPR - the caller does that. 10122 101232002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk> 10124 10125 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option 10126 `--CLASSPATH' becomes `--classpath.' 10127 * gjavah.c: Likewise. 10128 * jcf-dump.c: Likewise. 10129 * lang-options.h: Likewise. 10130 * lang.c: Likewise. 10131 * jcf-path.c: Updated comment. 10132 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.' 10133 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.' 10134 * jcf.h (jcf_path_CLASSPATH_arg): Ditto. 10135 (jcf_path_CLASSPATH_arg): Ditto. 10136 (classpath_u): Updated leading comment. 10137 101382002-02-20 Per Bothner <per@bothner.com> 10139 10140 * builtins.c (check_for_builtin): New function. 10141 (build_call_or_builtin): Remove. 10142 * java-tree.h: Update accordingly. 10143 * expr.c (expand_invoke): Use build + check_for_builtin instead 10144 of build_call_or_builtin. 10145 * parse.y (patch_invoke): Likewise. This avoids needlessly creating 10146 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER 10147 flag (which had caused jcf-write to incorrectly emit invokevirtual). 10148 101492002-02-17 Tom Tromey <tromey@redhat.com> 10150 10151 * java-tree.h (TYPE_STRICTFP): New macro. 10152 (struct lang_type) [strictfp]: New field. 10153 (CLASS_STRICTFP): New macro. 10154 (METHOD_STRICTFP): New macro. 10155 (struct lang_decl) [strictfp]: New field. 10156 * parse.y (method_header): Disallow strictfp constructor or 10157 abstract method. 10158 (STRICT_TK): Move before MODIFIER_TK. 10159 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT. 10160 (METHOD_MODIFIERS): Likewise. 10161 (INTERFACE_MODIFIERS): Likewise. 10162 * jcf-write.c (get_access_flags): Likewise. 10163 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT. 10164 (add_method_1): Likewise. 10165 (get_access_flags_from_decl): Likewise. 10166 * jcf-dump.c (print_access_flags): Print in standard order. Also, 10167 recognize strictfp flag. 10168 * jcf.h (ACC_STRICT): New define. 10169 101702002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com> 10171 10172 * class.c(build_utf8_ref): Move declaration of decl_size 10173 101742002-02-07 Tom Tromey <tromey@redhat.com> 10175 10176 * gcj.texi (Input Options): --CLASSPATH does not suppress system 10177 path. 10178 101792002-02-04 Anthony Green <green@redhat.com> 10180 10181 * class.c (build_utf8_ref): Put UTF-8 constants into merged 10182 sections if available. 10183 101842002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10185 10186 * parse.y (java_expand_classes): Fix typo in static field loop. 10187 101882002-02-02 Richard Henderson <rth@redhat.com> 10189 10190 * class.c (add_field): Mark static fields external. 10191 (build_class_ref): Remove redundant set. 10192 * parse.y (java_expand_classes): Mark static fields of classes 10193 to be compiled as local. 10194 * jcf-parse.c (parse_class_file): Likewise. 10195 101962002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk> 10197 10198 * gcj.texi (About CNI): New node. 10199 102002002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org> 10201 10202 PR java/5080 10203 * jcf-parse.c : Check for HAVE_LOCALE_H before using 10204 setlocale() with LC_CTYPE as a parameter. 10205 * jv-scan.c: Same. 10206 102072002-01-31 Joseph S. Myers <jsm28@cam.ac.uk> 10208 10209 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version): 10210 Follow GNU Coding Standards for --version. 10211 102122002-01-28 Tom Tromey <tromey@redhat.com> 10213 10214 * expr.c (build_jni_stub): Ensure storage for `meth' is 10215 generated. 10216 * parse.y (java_complete_expand_methods): Set 10217 current_function_decl before building JNI stub. 10218 102192002-01-26 Andreas Tobler <a.tobler@schweiz.ch> 10220 10221 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not 10222 BUILT_IN_SQRTF. 10223 102242002-01-22 Tom Tromey <tromey@redhat.com> 10225 10226 * decl.c (java_init_decl_processing): Use add_predefined_file. 10227 Predefine RawData.java. 10228 (predef_filenames): Removed. 10229 (java_init_decl_processing): Don't register predef_filenames. 10230 * jcf-parse.c (add_predefined_file): New function. 10231 (predefined_filename_p): Rewrote. 10232 (predefined_filename_p): No longer static. 10233 * decl.c (java_init_decl_processing): Call initialize_builtins. 10234 * Make-lang.in (JAVA_OBJS): Added builtins.o. 10235 (java/builtins.o): New target. 10236 * builtins.c: New file. 10237 * parse.y (patch_invoke): Use build_call_or_builtin. 10238 * java-tree.h (build_call_or_builtin): Declare. 10239 (initialize_builtins): Declare. 10240 (java_set_exception_lang_code): Removed unused declaration. 10241 (PREDEF_FILENAMES_SIZE): Removed. 10242 (java_tree_index): Added JTI_PREDEF_FILENAMES. 10243 (predef_filenames): New define. 10244 (add_predefined_file): Declare. 10245 (predefined_filename_p): Declare. 10246 * expr.c (expand_invoke): Use build_call_or_builtin. 10247 102482002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10249 10250 * parse.y (patch_switch_statement): Fix format specifier. 10251 102522002-01-16 Tom Tromey <tromey@redhat.com> 10253 10254 More for PR java/5365: 10255 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by 10256 default. 10257 (process_file): Generate include for 10258 java.lang.UnsupportedOperationExceptions. 10259 102602002-01-15 Andreas Jaeger <aj@suse.de> 10261 10262 * .cvsignore: Add man pages. 10263 102642002-01-15 Tom Tromey <tromey@redhat.com> 10265 10266 Fix for PR java/5365: 10267 * gjavah.c (process_file): Turn class name into a file name. 10268 102692002-01-14 Matthias Klose <doko@debian.org> 10270 10271 * gcj.texi: Fix whitespace and formatting errors in the 10272 synopsis of the man pages. Update copyright. 10273 102742002-01-14 Tom Tromey <tromey@redhat.com> 10275 10276 For PR libgcj/5303: 10277 * Make-lang.in (java.install-man): Handle jv-convert man page. 10278 (java.generated-manpages): Added jv-convert.1. 10279 (java.uninstall): Remove jv-convert.1. 10280 (java.maintainer-clean): Likewise. 10281 ($(srcdir)/java/jv-convert.1): New target. 10282 * gcj.texi (Top): Link to jv-convert node. 10283 (Individual utilities): Likewise. 10284 (Invoking jv-convert): New node. 10285 102862001-01-10 Jeff Sturm <jsturm@one-point.com> 10287 Martin Kahlert <martin.kahlert@infineon.com> 10288 10289 * jcf-parse.c (get_constant): Don't swap lo/hi for big 10290 endian targets when HOST_BITS_PER_WIDE_INT >= 64. 10291 102922002-01-03 Graham Stott <grahams@redhat.com> 10293 10294 * class.c (compile_resource_file): Update copyright date. 10295 Constify filename parameter. 10296 (java-tree.h): Update copyright date. 10297 (compile_resource_file): Constify filename parameter. 10298 102992002-01-03 Graham Stott <grahams@redhat.com> 10300 10301 * gcc/jcf-parse.c: Update copyright date. 10302 (yyparse): Constify resource_filename. 10303 103042002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10305 10306 * parse.y (src_parse_roots): Don't needlessly zero init. 10307 103082001-12-31 Tom Tromey <tromey@redhat.com> 10309 10310 * parse.y (dump_java_tree): New function. 10311 (source_end_java_method): Call it. 10312 (end_class_declaration): Likewise. 10313 * lang.c (java_decode_option): Call dump_switch_p. 10314 103152001-12-28 Tom Tromey <tromey@redhat.com> 10316 10317 * gen-table.pl: Don't process characters after \uffff. Added 10318 comment pointing to input file. 10319 103202001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10321 10322 * gen-table.pl: Const-ify output. Document the location of a 10323 suitable unicode input file. 10324 10325 * chartables.h: Regenerate. 10326 103272001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10328 10329 * chartables.h: Const-ify. 10330 * gjavah.c (options): Likewise. 10331 * jcf-dump.c (options): Likewise. 10332 * jv-scan.c (options): Likewise. 10333 * lex.c (java_start_char_p, java_part_char_p): Likewise. 10334 * parse.y (binop_lookup): Likewise. 10335 103362001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10337 10338 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify 10339 the static arrays that are output. 10340 * jvspec.c (jvgenmain_spec): Make static. 10341 * keyword.gperf (struct java_keyword, java_keyword): Const-ify. 10342 * keyword.h: Regenerate. 10343 * lang.c (string_option, process_option_with_no, lang_f_options, 10344 lang_W_options): Const-ify. 10345 * lex.c (java_lex): Likewise. 10346 103472001-12-21 Richard Henderson <rth@redhat.com> 10348 10349 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into .. 10350 (get_boehm_type_descriptor): ... here. Arrange for the 10351 TREE_TYPE to get set properly. 10352 103532001-12-21 Richard Henderson <rth@redhat.com> 10354 10355 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor 10356 only if the target requires collect2. 10357 10358 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL. 10359 103602001-12-20 Tom Tromey <tromey@redhat.com> 10361 10362 For PR java/4509: 10363 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute 10364 CAN_COMPLETE_NORMALLY for the node. 10365 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't 10366 generate code for second branch if first branch can't complete 10367 normally. 10368 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to 10369 the loop head if the loop body can't complete normally. 10370 103712001-12-20 Tom Tromey <tromey@redhat.com> 10372 10373 For PR java/4766: 10374 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle 10375 case where `finally' clause can't complete normally. 10376 103772001-12-20 Tom Tromey <tromey@redhat.com> 10378 10379 Fixes PR java/5057: 10380 * parse.y (analyze_clinit_body): Added this_class parameter. 10381 Check for more cases where we must keep <clinit>. 10382 (maybe_yank_clinit): Cleaned up flow control. 10383 103842001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10385 10386 * decl.c (java_init_decl_processing): Don't initialize 10387 finit_leg_identifier_node. 10388 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE. 10389 (finit_leg_identifier_node): Remove. 10390 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE. 10391 103922001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10393 10394 * mangle.c (mangle_member_name): Don't special-case for 10395 NO_DOLLAR_IN_LABEL. 10396 * mangle_name.c (unicode_mangling_length): Likewise. 10397 (append_unicode_mangled_name): Likewise. 10398 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL 10399 code. 10400 104012001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10402 10403 * expr.c (build_java_array_length_access): Don't force null pointer 10404 check unless flag_check_references is set. 10405 104062001-12-20 Tom Tromey <tromey@redhat.com> 10407 10408 Fix for PR java/3417: 10409 * parse.y (patch_assignment): Added special processing for 10410 `return'. 10411 (patch_return): Don't convert booleans to integers, and don't 10412 special-case `null'. 10413 104142001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 10415 10416 * config-lang.in (diff_excludes): Remove. 10417 104182001-12-17 Joseph S. Myers <jsm28@cam.ac.uk> 10419 10420 * gcj.texi: Update link to GCC manual. 10421 104222001-12-17 Tom Tromey <tromey@redhat.com> 10423 10424 * parse.y (link_nested_class_to_enclosing): Removed useless 10425 statement. 10426 104272001-12-16 Tom Tromey <tromey@redhat.com> 10428 10429 * mangle.c (mangle_method_decl): Never emit `C2' constructor. 10430 Fixes PR java/5088. 10431 104322001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 10433 10434 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h, 10435 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix 10436 spelling errors. 10437 104382001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10439 10440 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value. 10441 104422001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10443 10444 * decl.c (java_init_decl_processing): Build otable_type correctly. 10445 otable_decl is an otable_type. 10446 104472001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10448 10449 * java-tree.h (otable_methods, otable_decl, otable_syms_decl, 10450 otable_type, otable_ptr_type, method_symbol_type, 10451 method_symbols_array_type, method_symbols_array_ptr_type): New 10452 field/global tree definitions. 10453 (flag_indirect_dispatch): New flag. 10454 * decl.c (java_init_decl_processing): Initialize new otable and 10455 otable_syms type nodes and decls. Add new field "index" to 10456 method_type_node. 10457 * class.c (build_method_symbols_entry): New function. 10458 (make_method_value): Set "index" to to method's vtable index for 10459 virtual methods when indirect-dispatch is not used. 10460 (make_class_data): For indirect-dispatch, don't emit the dtable_decl, 10461 and set vtable_method_count to -1. Set otable and otable_syms field 10462 if indirect-dispatch is used and there was something to put in them. 10463 (build_method_symbols_entry): New function. 10464 (emit_offset_symbol_table): New function. 10465 * expr.c (get_offset_table_index): New function. 10466 (build_invokevirtual): Build array reference to otable at the index 10467 returned by get_offset_table_index, and use the result as the vtable 10468 offset. 10469 (build_invokeinterface): Similar. 10470 * jcf-parse.c (yyparse): If indirect-dispatch, call 10471 emit_offset_symbol_table at the end of compilation, after all classes 10472 have been generated. 10473 * jvspec.c: Don't pass findirect-dispatch to jvgenmain. 10474 * lang.c (flag_indirect_dispatch): Define. 10475 (lang_f_options): Add indirect-dispatch flag. 10476 104772001-12-14 Matthias Klose <doko@debian.org> 10478 10479 * gcj.texi: Markup for man page generation. Document missing 10480 options printed by <tool> --help. 10481 Terminate description of gij's -ms option with a dot. 10482 * Make-lang.in ($(srcdir)/java/*.1): New targets. 10483 (java.generated-manpages java.install-man, java.uninstall, 10484 java-maintainer-clean) Updated. 10485 104862001-12-14 Hans Boehm <Hans_Boehm@hp.com> 10487 10488 * class.c (get_dispatch_table): Fix java vtable layout 10489 for TARGET_VTABLE_USES_DESCRIPTORS. 10490 * decl.c (java_init_decl_processing): Initialize 10491 alloc_no_finalizer_node, finalize_identifier_node. 10492 * expr.c (class_has_finalize_method): New function. 10493 (expand_java_NEW): Generate calls for finalizer-free allocation. 10494 (build_invokevirtual): Fix java vtable layout for 10495 TARGET_VTABLE_USES_DESCRIPTORS. 10496 * java-tree.h (enum java_tree_index): New entries: 10497 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE. 10498 (alloc_no_finalizer_node, finalize_deintifier_node): New macros. 10499 (class_has_finalize_method): declare. 10500 (HAS_FINALIZER_P): New macro. 10501 * parse.y (patch_invoke): Generate calls for finalizer-free 10502 allocation. 10503 105042001-12-12 Matthias Klose <doko@debian.org> 10505 10506 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove 10507 whitespace at end of line. 10508 105092001-12-11 Tom Tromey <tromey@redhat.com> 10510 10511 * lex.c (java_init_lex): Define wfl_to_string as 10512 gnu.gcj.runtime.StringBuffer unless generating bytecode. 10513 105142001-12-11 Jeff Sturm <jsturm@one-point.com> 10515 10516 * class.c (make_method_value): Use null_pointer_node to 10517 represent empty exception table. 10518 105192001-12-10 Tom Tromey <tromey@redhat.com> 10520 10521 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT. 10522 105232001-12-10 Douglas B. Rupp <rupp@gnat.com> 10524 10525 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION). 10526 105272001-12-09 Per Bothner <per@bothner.com> 10528 10529 * check-init.c (current_switch_has_default): New static field. 10530 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default. 10531 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no 10532 DEFAULT_EXPR seen, simulate a default alternative that copies state. 10533 105342001-12-09 Tom Tromey <tromey@redhat.com> 10535 10536 * check-init.c (check_init): Don't allow pre- or post- increment 10537 or decrement of final variable. 10538 (final_assign_error): Minor error message rewording. 10539 105402001-12-08 Tom Tromey <tromey@redhat.com> 10541 10542 * java-tree.h: Fixed typo. 10543 10544 * gjavah.c (decompile_method): Don't decompile to `return this' 10545 for static methods. 10546 10547 * gjavah.c (cxx_keywords): Re-sorted. 10548 * lex.c (cxx_keywords): Re-sorted. 10549 10550 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything 10551 else. 10552 10553 * gjavah.c (print_namelet): Clear subnamelets. 10554 (HANDLE_METHOD): Set `method_printed' earlier. 10555 105562001-12-07 Tom Tromey <tromey@redhat.com> 10557 10558 * lang.c (lang_f_options): Added 10559 optimize-static-class-initialization. 10560 (java_decode_option): Removed special case. 10561 105622001-12-07 Per Bothner <per@bothner.com> 10563 10564 * check-init.c (check_init): Fix typo freeing memory twice. 10565 105662001-12-05 Per Bothner <per@bothner.com> 10567 10568 Restore support for static class initialization optimization. 10569 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable. 10570 * check-init.c (check_int): At end of BLOCK handle initialization 10571 blocks, which used to be done in java_complete_expand_method but did 10572 not handle the case where check_for_initialization might allocate 10573 more than a word of bits. 10574 * decl.c (lang_make_tree): The smic field is now a tree. 10575 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field. 10576 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro. 10577 10578 * parse.y (emit_test_initialization): Combine hash_lookup calls. 10579 10580 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): 10581 Change from a hash table to a list. 10582 (struct_lang_decl): Change field 'smic' to match. 10583 * class.c (add_method_1): Initialize 10584 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list. 10585 * parse.y (adjust_init_test_initialization): Removed - inlined into - 10586 (java_expand_method_bodies): -here, since 'smic' is now a list. 10587 (patch_invoke): Add to 'smic' list, instead of hash_lookup. 10588 10589 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT. 10590 10591 * class.c (java_hash_compare_tree_node): Fix casts. 10592 105932001-12-04 Per Bothner <per@bothner.com> 10594 10595 * check-init.c: Handle definite unassignment to finals in addition 10596 to definite assignment. 10597 (loop_current_locals): New field. 10598 (num_current_locals, int start_current_locals, num_current_words): 10599 Make static. 10600 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses. 10601 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED, 10602 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros. 10603 (get_variable_decl, check_final_reassigned): New functions. 10604 (check_init, check_bool_init): Modify as needed for checking finals. 10605 (check_for_initialization): Take extra parameter and return void. 10606 Do extra start-up logic to check final fields for assignment. 10607 * parse.y (check_static_final_variable_assignment_flag, 10608 reset_static_final_variable_assignment_flag, check_final_assignment, 10609 check_final_variable_local_assignment_flag, 10610 reset_final_variable_indirect_assignment_flag, 10611 reset_final_variable_global_assignment_flag): Remove functions. 10612 (java_complete_expand_methods, outer_field_access_fix, 10613 patch_assignment): Remove no-longer used logic. 10614 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments. 10615 * parse.y (register_fields, java_complete_tree): Update accordingly. 10616 10617 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca. 10618 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New. 10619 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS. 10620 10621 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off. 10622 10623 * java-tree.h (DECL FINAL): New bit-field. 10624 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL. 10625 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL. 10626 (DECL_INIT_CALLS_THIS): New macro. 10627 (struct lang_decl): New bit-field init_calls_this. 10628 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC, 10629 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE 10630 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now 10631 use it for both local variables and final fields. 10632 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr, 10633 and local_final. 10634 (struct lang_type): Remove hfv bit-field. 10635 (check_for_initialization): Change to return void. 10636 10637 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros. 10638 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS. 10639 * check-init.c (final_assign_error): New helper function. 10640 (check_final_reassigned, check_init): Use it. 10641 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length. 10642 10643 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all 10644 bit-fields to unsigned. 10645 106462001-12-03 Per Bothner <per@bothner.com> 10647 10648 * parse.y (patch_binop): Minor constant folding. 10649 10650 * parse.y (build_current_thisn): Shorter 'buffer'. 10651 106522001-12-03 Per Bothner <per@bothner.com> 10653 10654 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR 10655 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR. 10656 * jcf-write.c (generate_bytecode_insns): Remove support for 10657 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used. 10658 * check-init.c (check_init): Likewise. 10659 106602001-12-03 Per Bothner <per@bothner.com> 10661 10662 * verify.c (subroutine_nesting): New function. 10663 (verify_jvm_instructions): Use it to fix logic for checking that 10664 we're done with the current subroutine. 10665 10666 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and 10667 OPCODE_instanceof use POP_TYPE macro for better diagnostics. 10668 106692001-12-03 Per Bothner <per@bothner.com> 10670 10671 * jcf.h: Fix obvious typo in comment. 10672 * typeck.c (build_null_signature): Add comment. 10673 106742001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 10675 10676 * expr.c: Remove leading capital from diagnostic messages, as 10677 per GNU coding standards. 10678 * jcf-io.c: Similarly. 10679 * jcf-parse.c: Similarly. 10680 * jv-scan.c: Similarly. 10681 * jvspec.c: Similarly. 10682 * mangle.c: Similarly. 10683 106842001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw> 10685 Alexandre Petit-Bianco <apbianco@redhat.com> 10686 10687 * expr.c (build_java_arrayaccess): Call save_expr on array for 10688 correct evaluation order, modified comment, fixed indentation. 10689 * parse.y: (patch_assignment): Correctly extract the array base 10690 from the tree generate by build_java_arrayaccess, added comments. 10691 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF. 10692 Fixes PR java/3096, PR java/3803, PR java/3965. 10693 106942001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 10695 10696 * expr.c (expand_byte_code): Remove trailing periods from messages. 10697 * jcf-parse.c (load_class, jcf_parse): Similarly. 10698 * jcf-write.c (generate_classfile): Similarly. 10699 * lex.c (java_lex): Similarly. 10700 107012001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10702 10703 * class.c (add_interface_do): Set BINFO_VPTR_FIELD. 10704 107052001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 10706 10707 * Make-lang.in (java.generated-manpages): New dummy target. 10708 107092001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 10710 10711 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks 10712 ASM_FINAL_SPEC. 10713 (lang_specific_pre_link): Use set_input to set input_filename. 10714 Append `main' here. 10715 * jvgenmain.c (usage): Append literal `main' to CLASSNAME. 10716 (main): Fix definition. 10717 Strip `main' from classname. 10718 Fixes PR java/227. 10719 107202001-11-18 Roger Sayle <roger@eyesopen.com> 10721 10722 * parse.h (java_expand_switch): Remove old prototype. 10723 107242001-11-18 Tom Tromey <tromey@redhat.com> 10725 10726 Fix for PR java/1401: 10727 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where 10728 arg0 is null. 10729 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case 10730 correctly. 10731 107322001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 10733 10734 * lang.c (finish_parse): Rename to java_finish. 10735 (LANG_HOOKS_FINISH, java_finish): New. 10736 107372001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 10738 10739 * decl.c (init_decl_processing): Rename java_init_decl_processing. 10740 * java-tree.h: New prototype. 10741 * lang.c (java_init): Update prototype. Combine with old init_parse. 10742 107432001-11-13 Tom Tromey <tromey@redhat.com> 10744 10745 * gjavah.c (method_signature): New global. 10746 (HANDLE_METHOD): Set it. 10747 (decompile_return_statement): New function. 10748 (decompile_method): Use it. 10749 (print_method_info): Removed `synth' argument. 10750 107512001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 10752 10753 * java-tree.h (java_set_yydebug): New. 10754 * jcf-parse.c (set_yydebug): Rename java_set_yydebug. 10755 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override. 10756 (print_lang_decl, print_lang_type, print_lang_identifier, 10757 print_lang_statistics, lang_print_xnode): Remove. 10758 107592001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 10760 10761 * jcf-parse.c (init_lex): Remove. 10762 * lang.c (language_string, lang_identify): Remove. 10763 (struct lang_hooks): Constify. 10764 (LANG_HOOKS_NAME): Override. 10765 (init_parse): Update. 10766 107672001-11-08 Andreas Franck <afranck@gmx.de> 10768 10769 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle 10770 program_transform_name the way suggested by autoconf. 10771 (java.install-common): Also transform auxiliary program names with 10772 program_transform_name. 10773 107742001-11-08 Tom Tromey <tromey@cygnus.com> 10775 10776 * parse.y (trap_overflow_corner_case): New rule. 10777 (unary_expression): Use it. 10778 * lex.c (java_init_lex): Don't set minus_seen. 10779 (yylex): Don't use minus_seen. Communicate overflow to parser for 10780 it to handle. 10781 (error_if_numeric_overflow): New function. 10782 * parse.h (minus_seen): Removed field. 10783 (JAVA_RADIX10_FLAG): New define. 10784 107852001-11-07 Tom Tromey <tromey@redhat.com> 10786 10787 Patch for PR java/1414: 10788 * parse.y (case_label_list): New global. 10789 (goal): Register case_label_list with GC. 10790 (java_complete_lhs): Save new case on case_label_list. 10791 (patch_switch_statement): Check for duplicate case labels. 10792 107932001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com> 10794 10795 * parse.y (patch_assignment): Removed unused third argument. 10796 (java_complete_lhs): Removed unused third argument to patch_assignment. 10797 107982001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 10799 10800 * lang.c: Include langhooks-def.h. 10801 * Make-lang.in: Update. 10802 108032001-10-31 Zack Weinberg <zack@codesourcery.com> 10804 10805 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 10806 108072001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10808 10809 * mangle.c (find_compression_record_match): Don't match compression 10810 records for package name elements unless they occur at the start of 10811 the name. Fix for PR java/4717. 10812 108132001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10814 10815 * expr.c (expand_java_field_op): Don't special-case references to 10816 java.lang.PRIMTYPE.TYPE. 10817 (build_primtype_type_ref): Removed. 10818 * java-tree.h (build_primtype_type_ref): Remove prototype. 10819 * parse.y (maybe_build_primttype_type_ref): Removed. 10820 (complete_function_arguments): Don't special-case references to 10821 java.lang.PRIMTYPE.TYPE. 10822 (patch_assignment): Likewise. 10823 (array_constructor_check_entry): Likewise. 10824 108252001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com> 10826 10827 * mangle.c (static tree compression_table): Fixed leading comment. 10828 * parse.h (struct parser_ctxt): Fixed field comment. 10829 * parse.y (check_pkg_class_access): New prototype, fixed leading 10830 comment, new parameter used to emit error only if passed as true. 10831 (parse_check_super): Pass extra argument to check_pkg_class_access. 10832 (do_resolve_class): Likewise. 10833 (process_imports): Likewise. 10834 (read_import_dir): Fixed indentation. 10835 (find_in_imports_on_demand): New local class_type_name. Local 10836 node_to_use deleted. while loop changed into for loop. Report 10837 multiple definition only for accessible classes. Improved error 10838 message. 10839 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS 10840 assigned to parameter list, fixed indentation. while loop changed 10841 into for loop, restore TREE_CHAIN on local `tem' before the next 10842 iteration. 10843 108442001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 10845 10846 * lang.c (lang_get_alias_set): Deleted. 10847 108482001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10849 10850 * gjavah.c (jni_print_char): Fix thinko in last change. 10851 10852 * gjavah.c (jni_print_char, decode_signature_piece): Use 10853 safe-ctype macros and/or fold extra calls into fewer ones. 10854 * lex.c (java_read_unicode, java_lex): Likewise. 10855 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT, 10856 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise. 10857 * mangle_name.c (append_unicode_mangled_name, 10858 unicode_mangling_length): Likewise. 10859 108602001-10-17 Richard Henderson <rth@redhat.com> 10861 10862 * Make-lang.in (java/lang.o): Depend on langhooks.h. 10863 108642001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com> 10865 10866 * lang.c (langhooks.h): Included. 10867 (LANG_HOOKS_INIT): Redefined. 10868 (LANG_HOOKS_INIT_OPTIONS): Likewise. 10869 (LANG_HOOKS_DECODE_OPTION): Likewise. 10870 (struct lang_hooks lang_hooks): New initialization. 10871 108722001-10-11 Per Bothner <per@bothner.com> 10873 10874 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR 10875 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair. 10876 The former is simpler, and jcf-write.c handles it better. 10877 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR 10878 or WITH_CLEANUP_EXPR. 10879 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no 10880 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine. 10881 10882 * parse.y (patch_if_else_statement): If the condition is constant, 10883 optimize away the test. 10884 108852001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com> 10886 10887 * parse.y (patch_cast): Call patch_string on the first operand of 10888 the incoming node, update it if necessary. Fixes PR java/4510. 10889 108902001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 10891 10892 * parse.y (find_as_inner_class): Don't disregard the enclosing scope 10893 when name qualifier matches a package name. 10894 108952001-10-08 Tom Tromey <tromey@redhat.com> 10896 10897 Fix for PR java/4489: 10898 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always 10899 force a new label when computing `body_block'. 10900 109012001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10902 10903 * jcf-io.c (format_uint): Const-ify. 10904 * lang.c (java_tree_code_type, java_tree_code_length): Likewise. 10905 * lex.c (java_get_line_col): Likewise. 10906 * parse.y (build_incdec): Likewise. 10907 109082001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com> 10909 10910 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given 10911 a NULL enclosing context if appropriate. Fixes PR java/4466. 10912 109132001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com> 10914 10915 * parse.y (patch_assignment): Use lvalue's original TYPE when 10916 building the final COMPOUND_EXPR. 10917 (try_reference_assignconv): Fixed leading comment. 10918 109192001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com> 10920 10921 * parse.y (check_final_variable_indirect_assignment): For 10922 COMPOUND_EXPR, return only if finals were found initialized 10923 properly, if not, keep on checking. 10924 (check_final_variable_global_assignment_flag): New local 10925 error_found, set when appropriate and used to decide whether to 10926 report uninitialized finals. Fixed typo in comment. 10927 109282001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com> 10929 10930 * decl.c (init_decl_processing): Fixed typo in predef_filenames 10931 last three initializations. Fixes PR java/4360. 10932 109332001-09-21 Richard Henderson <rth@redhat.com> 10934 10935 * class.c (get_dispatch_table): Handle function descriptors. 10936 (build_dtable_decl): Likewise. 10937 * expr.c (build_invokevirtual): Likewise. 10938 109392001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com> 10940 10941 * parse.y (patch_method_invocation): Build class initialization 10942 when static finals are used to qualify method invocation. 10943 Fixes PR java/4366. 10944 109452001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com> 10946 10947 * parse.h: (WFL_STRIP_BRACKET): Re-written using 10948 build_type_name_from_array_name. 10949 (STRING_STRIP_BRACKETS): New macro. 10950 * parse.y (build_type_name_from_array_name): New function. 10951 (array_creation_expression:): Accumulate []s instead of [s. 10952 (cast_expression:): Accumulate []s instead of [s after cast type 10953 name. 10954 (build_array_from_name): Local string deleted, use 10955 build_type_name_from_array_name. 10956 (build_unresolved_array_type): Accumulate []s instead of [s after 10957 type name. 10958 (register_fields): Fixed comment. 10959 (resolve_class): Local name, base deleted, new locals tname and 10960 array_dims. Use build_type_name_from_array_name. Use array_dims to 10961 build array type. 10962 (purify_type_name): Use STRING_STRIP_BRACKETS. 10963 109642001-09-18 Andreas Jaeger <aj@suse.de> 10965 10966 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout. 10967 * jv-scan.c: Likewise. 10968 109692001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com> 10970 10971 * parse.y (patch_method_invocation): Inner class creation context 10972 check not enforced within constructors. Fixes PR java/1873. 10973 109742001-09-16 Tom Tromey <tromey@redhat.com> 10975 10976 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call 10977 NOTE_PUSH for single-case push. Fixes PR java/4189. 10978 109792001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com> 10980 10981 * java-tree.h (TYPE_IMPORT_LIST): New macro. 10982 (TYPE_IMPORT_DEMAND_LIST): Likewise. 10983 (struct lang_type): New fields import_list and import_demand_list. 10984 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and 10985 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts. 10986 (do_resolve_class): New local saved_enclosing_type, initialized, 10987 passed as parameter to find_in_imports and find_in_imports_on_demand. 10988 (find_in_imports): Added paramater enclosing_type, use its 10989 TYPE_IMPORT_LIST when applicable. 10990 (find_in_imports_on_demand): Added parameter enclosing_type, use 10991 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals 10992 declaration and initialization. 10993 (fold_constant_for_init): Switch/restore current_class to the 10994 appropriate context. 10995 109962001-09-13 Mark Mitchell <mark@codesourcery.com> 10997 10998 * verify.c (verify_jvm_instructions): Fix typo. 10999 110002001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11001 11002 * expr.c (expand_invoke): Const-ification. 11003 * parse.y (patch_method_invocation): Likewise. 11004 110052001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11006 11007 * gjavah.c (cxx_keywords): Const-ification. 11008 * keyword.gperf (java_keyword): Likewise. 11009 * lang.c (java_tree_code_name): Likewise. 11010 * lex.c (cxx_keywords): Likewise. 11011 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise. 11012 110132001-09-11 Richard Henderson <rth@redhat.com> 11014 11015 * parse.h (ctxp_for_generation): Mark extern. 11016 110172001-09-10 Richard Henderson <rth@redhat.com> 11018 11019 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl. 11020 110212001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu> 11022 11023 * typeck.c (java_array_type_length, build_prim_array_type): 11024 Represent empty arrays by NULL index. 11025 110262001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com> 11027 11028 * java-tree.h (compile_resource_file): Grouped with other prototypes. 11029 * jvspec.c (lang_specific_driver): Removed unused local `ptr.' 11030 110312001-09-06 Anthony Green <green@redhat.com> 11032 11033 * class.c (O_BINARY): Define if necessary. 11034 (registerResource_libfunc): Declare. 11035 (init_class_processing): Initilize registerResource_libfunc. 11036 (compile_resource_file): New function. 11037 * java-tree.h (resource_name): Declare. 11038 (compile_resource_file): Declare. 11039 * jcf-parse.c (yyparse): Handle compiling java resource files. 11040 * lang.c (java_decode_option): Handle -fcompile-resource option. 11041 * jvspec.c (lang_specific_driver): Handle -R flag for compiling 11042 resource files. 11043 * gcj.texi (Code Generation): Add documentation for -R flag. 11044 110452001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com> 11046 11047 * jcf-write.c (generate_classfile): Issue an error in case of 11048 field/initial value mismatch. 11049 * parse.y (analyze_clinit_body): Keep <clinit> if an array is 11050 being initialized and we're generating bytecode. 11051 (java_complete_lhs): In MODIFY_EXPR section: added comments, 11052 set DECL_INITIAL properly when appropriate. 11053 Fixes PR java/4230 11054 Fixes PR java/4204 11055 110562001-09-01 Per Bothner <per@bothner.com> 11057 11058 * parse.y (maybe_yank_clinit): A field without an initializer is not 11059 relevant. All initializers except static final and constant require 11060 <clinit>, regardless of flag_emit_class_files. 11061 110622001-08-31 Per Bothner <per@bothner.com> 11063 11064 * class.c (set_constant_value): When not emitting class files, then a 11065 String ConstantValue is a utf8const_ptr_type. 11066 110672001-08-30 Per Bothner <per@bothner.com> 11068 11069 * jcf-write.c (generate_classfile): Check that field is primitive 11070 or string before emitting ConstantValue attribute. 11071 110722001-08-30 Per Bothner <per@bothner.com> 11073 11074 * parse.y (resolve_qualified_expression_name): If creating a 11075 COMPOUND_EXPR, set it's type correctly. 11076 110772001-08-30 Per Bothner <per@bothner.com> 11078 11079 * jcf-io.c (open_class): Set filename field. 11080 11081 * jcf-parse,c (parse_class_file): Set current_function_decl 11082 for better error message when Code attribute is missing. 11083 11084 * lang.c (put_decl_node, lang_print_error): Re-arrange for 11085 better diagnostics, especially for constructors. 11086 110872001-08-30 Per Bothner <per@bothner.com> 11088 11089 * jcf-write.c (generate_classfile): Don't write ConstantValue 11090 attribute if field is not final, for compatibility with jdk. 11091 11092 * jcf-write.c (generate_classfile): Convert ConstantValue values 11093 to correct type. Work-around for front-end bug. 11094 * class.c (set_constant_value): Error if constant has wrong type. 11095 110962001-08-30 Per Bothner <per@bothner.com> 11097 11098 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and 11099 "Double" are printed at verbosity 1. 11100 11101 * jcf-dump.c (main): Disable flag_print_attributes if --javap. 11102 11103 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long. 11104 111052001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com> 11106 11107 * parse.y (patch_assignment): Don't verify final re-assignment here. 11108 (java_complete_lhs): Verify assignments to finals calling 11109 patch_assignment. Verify re-assignments to finals before calling 11110 patch_assignment. 11111 111122001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com> 11113 11114 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs. 11115 Fixes PR java/1413 11116 111172001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com> 11118 11119 * lex.c (java_lex): new local found_hex_digits. Set and then used 11120 in test to reject invalid hexadecimal numbers. 11121 * parse.y (java_complete_tree): Prevent unwanted cast with 11122 initialized floating point finals. 11123 (patch_binop): Emit a warning when detecting a division by zero, 11124 mark result not constant, don't simplify non integer division. 11125 111262001-08-28 Per Bothner <per@bothner.com> 11127 11128 * jcf-write.c (generate_bytecode_insns): For increments and 11129 decrements just recurse to push constant. Improvement on Mark's patch. 11130 111312001-08-28 Mark Mitchell <mark@codesourcery.com> 11132 11133 * jcf-write.c (generate_bytecode_insns): Generate an integer to 11134 real conversion for increments and decrements of reals. 11135 111362001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com> 11137 11138 * parse.y (resolve_qualified_expression_name): Handle unresolved 11139 qualified expressions, prevent numerical qualifiers, fixed typo. 11140 Fixes PR java/4141 11141 111422001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com> 11143 11144 * parse.y (check_deprecation): Handle TYPE_DECL in a special case, 11145 don't report anything but deprecated class when marked so. Handle 11146 VAR_DECL. 11147 (patch_method_invocation): Check deprecation on methods and types. 11148 (patch_binop): code becomes an enum tree_code, added default: to 11149 switch to handle that. Detect division by zero, try to fold and 11150 return before using a subroutine. 11151 111522001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com> 11153 11154 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a 11155 file smaller than 4 bytes. 11156 * parse.y (check_inner_circular_reference): New function. 11157 (check_circular_reference): Likewise. 11158 (array_initializer:): Accept {,}. 11159 (java_check_circular_reference): Rewritten using 11160 check_circular_reference and check_inner_circular_reference. 11161 (java_complete_expand_method): Unconditionally save and restore 11162 the unpurged exception list. 11163 (build_dot_class_method_invocation): Unmangle signature parameter. 11164 111652001-08-21 Tom Tromey <tromey@redhat.com> 11166 11167 * decl.c (init_decl_processing): Add `throws' field to method 11168 descriptor. 11169 * class.c (make_method_value): Compute `throws' field for method. 11170 111712001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com> 11172 11173 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if 11174 circularity is detected. 11175 (ctors_unchecked_throws_clause_p): Fixed leading comment. 11176 111772001-08-17 Richard Henderson <rth@redhat.com> 11178 11179 * class.c (emit_register_classes): Add align parameter to 11180 call to assemble_integer. 11181 111822001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com> 11183 11184 * jcf-parse.c (load_class): New locals saved and class_loaded. If 11185 loading a class_or_name fails, try considering an innerclass name 11186 and load the enclosing context. 11187 * parse.y (resolve_inner_class): New function. 11188 (find_as_inner_class): Added leading comment. 11189 (register_incomplete_type): Keep the current context as enclosing 11190 context for JDEP_FIELD dependencies. 11191 (do_resolve_class): Locals new_class_decl and super initialized to 11192 NULL. Call resolve_inner_class, explore the enclosing context 11193 superclass if necessary. 11194 Fixes PR java/4007 11195 111962001-08-16 Tom Tromey <tromey@redhat.com> 11197 11198 * jcf-dump.c (main): Updated for change to jcf_path_seal. 11199 * gjavah.c (main): Updated for change to jcf_path_seal. 11200 * lang.c (version_flag): New global. 11201 (java_decode_option): Recognize `-version'. 11202 (java_init): Update for change to jcf_path_seal. 11203 * jcf.h (jcf_path_seal): Added `print' argument. 11204 * jcf-path.c (jcf_path_seal): Added `print' argument. 11205 112062001-08-13 Zack Weinberg <zackw@panix.com> 11207 11208 * Make-lang.in (java/decl.o): Update dependencies. 11209 * decl.c: Include libfuncs.h, don't include toplev.h. 11210 112112001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com> 11212 11213 * decl.c (init_decl_processing): exception_type_node, 11214 class_not_found_type_node, and no_class_def_found_type_node 11215 initialized. predef_filenames augmented accordingly. 11216 instinit_identifier_node initialized. 11217 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed. 11218 * java-tree.h (enum java_tree_index): New entries 11219 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE, 11220 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE. 11221 (exception_type_node): New macro. 11222 (class_not_found_type_node): Likewise. 11223 (no_class_def_found_type_node): Likewise. 11224 (instinit_identifier_node): Likewise. 11225 (PREDEF_FILENAMES_SIZE): Adjusted. 11226 (TYPE_HAS_FINAL_VARIABLE): Fixed typo. 11227 (struct lang_type): Fixed typo in bitfield name. 11228 (DECL_INSTINIT_P): New macro. 11229 (ID_INSTINIT_P): Likewise. 11230 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic 11231 attribute. 11232 * parse.y (encapsulate_with_try_catch): New function. 11233 (generate_instinit): Likewise. 11234 (build_instinit_invocation): Likewise. 11235 (ctors_unchecked_throws_clause_p): Likewise. 11236 (add_instance_initializer): Deleted. 11237 (build_instance_initializer): Likewise. 11238 (in_instance_initializer): Likewise. 11239 (check_method_redefinition): instinit$ not to be verified. 11240 (java_complete_expand_methods): Generate instinit$, simplified code. 11241 (build_dot_class_method): Eliminated unnecessary locals. Use 11242 encapsulate_with_try_catch, removed unnecessary code. 11243 (fix_constructors): New local iii. Use build_instinit_invocation. 11244 (patch_method_invocation): Added comment. 11245 (maybe_use_access_method): Don't consider instinit$. 11246 (find_applicable_accessible_methods_list): Shorten the search for 11247 instinit$ too. 11248 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed. 11249 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer. 11250 (patch_throw_statement): Likewise. Fixed typo. 11251 112522001-08-12 David Edelsohn <edelsohn@gnu.org> 11253 11254 Revert: 11255 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 11256 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks 11257 ASM_FINAL_SPEC. 11258 (lang_specific_pre_link): Use set_input to set input_filename. 11259 Append `main' here. 11260 * jvgenmain.c (usage): Append literal `main' to CLASSNAME. 11261 (main): Fix definition. 11262 Strip `main' from classname. 11263 Fixes PR java/227. 11264 112652001-08-11 Zack Weinberg <zackw@panix.com> 11266 11267 * lex.h: Don't include setjmp.h. Don't define 11268 SET_FLOAT_HANDLER or prototype set_float_handler. 11269 112702001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com> 11271 11272 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and 11273 `poplevel' in the right order. 11274 112752001-08-09 Richard Henderson <rth@redhat.com> 11276 11277 * Make-lang.in (class.o): Depend on TARGET_H. 11278 * class.c (emit_register_classes): Use target hooks instead of 11279 assemble_constructor and assemble_destructor. 11280 112812001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com> 11282 11283 * check-init.c (flags.h): Include 11284 (check_init): Don't report uninitialized static class 11285 initialization flags, don't free bit index when doing static class 11286 initialization optimization. 11287 (check_for_initialization): Return type changed to `unsigned int.' 11288 (attach_initialized_static_class): New function. 11289 * class.c (add_method_1): Create the initialized static class 11290 table if necessary. 11291 (finish_class): Always emit deferred inline methods. 11292 * decl.c (emit_init_test_initialization): Moved to expr.c 11293 (complete_start_java_method): Don't traverse 11294 DECL_FUNCTION_INIT_TEST_TABLE. 11295 (lang_mark_tree): Mark hash tables in function decls. 11296 * expr.c (emit_init_test_initialization): Moved from decl.c. 11297 (build_class_init): Create LAG_DECL_SPECIFIC for the static class 11298 initialization flag, set DECL_CONTEXT and 11299 LOCAL_CLASS_INITIALIZATION_FLAG. 11300 (java_lang_expand_expr): Emit initialization code for static class 11301 initialized flags when entering block, if necessary. 11302 * gcj.texi (-fno-optimize-static-class-initialization): Documented. 11303 * java-tree.h (flag_optimize_sci): New global variable declaration. 11304 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro. 11305 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise. 11306 (LOCAL_FINAL_P): Fixed typo in comment. 11307 (FINAL_VARIABLE_P): Likewise. 11308 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro. 11309 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise. 11310 (struct lang_decl): New fields `ict', `smic' and `cif.' 11311 (check_for_initialization): New returned value for global. 11312 (attach_initialized_static_class): New global function. 11313 (STATIC_CLASS_INIT_OPT_P): New macro. 11314 * lang-options.h (-fno-optimize-static-class-initialization): New flag. 11315 * lang.c (java_decode_option): Handle 11316 `-fno-optimize-static-class-initialization' 11317 * parse.y (start_complete_expand_method): New function. 11318 (java_expand_method_bodies): Likewise. 11319 (attach_init_test_initialization_flags): Likewise. 11320 (adjust_init_test_initialization): Likewise. 11321 (emit_test_initialization): Likewise. 11322 (java_complete_expand_methods): Nullify abstract and native method 11323 bodies. 11324 (java_complete_expand_method): New locals `fbody', `block_body' 11325 and `exception_copy.' Reorganized: directly return on empty method 11326 bodies, call `start_complete_expand_method', remember definitely 11327 initialized static class in function, don't expand method bodies. 11328 (java_expand_classes): Call `java_expand_method_bodies' before 11329 `finish_class' when compiling to native. 11330 (resolve_expression_name): Use `orig' after building outer class 11331 field access. 11332 (patch_invoke): Remember static method invocations. 11333 113342001-08-06 Richard Henderson <rth@redhat.com> 11335 11336 * class.c (emit_register_classes): Pass a symbol_ref and priority 11337 to assemble_constructor. 11338 113392001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com> 11340 11341 * java-tree.h (all_class_filename): New macro. 11342 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.' 11343 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link 11344 newly created IDENTIFIER_NODE to `all_class_filename.' 11345 113462001-08-01 Jeff Sturm <jsturm@one-point.com> 11347 11348 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): 11349 Use ggc_add_tree_root to register roots. 11350 113512001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 11352 11353 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its 11354 second operand calling check_init. 11355 * decl.c (complete_start_java_method): Swaped second and third 11356 arguments while creating WITH_CLEANUP_EXPR node. 11357 * jcf-write.c (generate_bytecode_insns): Use second operand 11358 instead of third when handling WITH_CLEANUP_EXPR. 11359 * parse.y (java_complete_lhs): Expand second operand of 11360 WITH_CLEANUP_EXPR nodes. 11361 (patch_synchronized_statement): Swaped second and third arguments 11362 while creating WITH_CLEANUP_EXPR node. 11363 113642001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com> 11365 11366 * parse.y (create_interface): Avoid cyclic inheritance report when 11367 syntax error encountered during class definition. 11368 Fixes PR java/2956 11369 113702001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 11371 11372 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks 11373 ASM_FINAL_SPEC. 11374 (lang_specific_pre_link): Use set_input to set input_filename. 11375 Append `main' here. 11376 * jvgenmain.c (usage): Append literal `main' to CLASSNAME. 11377 (main): Fix definition. 11378 Strip `main' from classname. 11379 Fixes PR java/227. 11380 113812001-07-18 Tom Tromey <tromey@redhat.com> 11382 11383 For PR java/2812: 11384 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H. 11385 * lex.c (java_new_lexer): Use ICONV_CONST. 11386 (java_read_char): Likewise. 11387 * Make-lang.in (jc1$(exeext)): Link against LIBICONV. 11388 (jv-scan$(exeext)): Likewise. 11389 113902001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com> 11391 11392 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.' 11393 * parse.y (check_class_interface_creation): Allow `private' if the 11394 enclosing is not an interface. 11395 (create_interface): Interface tagged public if the enclosing 11396 context is an interface. 11397 (create_class): Class tagged public if the enclosing context 11398 is an interface. 11399 Fixes PR java/2959 11400 114012001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com> 11402 11403 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.' 11404 Fixes PR java/2665 11405 114062001-07-14 Tim Josling <tej@melbpc.org.au> 11407 11408 * check-init.c (check_init): Remove references to EXPON_EXPR. 11409 114102001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com> 11411 11412 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset 11413 TREE_CONSTANT_OVERFLOW of CASE_EXPR value. 11414 Fixes PR java/3602 11415 114162001-07-13 Tom Tromey <tromey@redhat.com> 11417 11418 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1 11419 invocation. 11420 114212001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com> 11422 11423 * parse.y (patch_method_invocation): Don't override primary if one 11424 is already provided, but let this$<n> be built. Fixed comment. 11425 114262001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com> 11427 11428 * parse.y (empty_statement:): Report empty statement error only 11429 when found at class declaration level. 11430 Fixes PR java/3635 11431 114322001-07-12 Tom Tromey <tromey@redhat.com> 11433 11434 * expr.c (expand_load_internal): New function. 11435 (LOAD_INTERNAL): Use it. 11436 114372001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com> 11438 11439 * parse.y (verify_constructor_super): Compare anonymous class ctor 11440 args with `valid_method_invocation_conversion_p.' 11441 Fixes PR java/3285 11442 114432001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com> 11444 11445 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without 11446 `-fsyntax-only.' Fixes PR java/3248 11447 114482001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com> 11449 11450 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603 11451 114522001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com> 11453 11454 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the 11455 current function is static. Fixes PR java/1970 11456 114572001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com> 11458 11459 * parse.y (patch_method_invocation): Add enclosing context to ctor 11460 calls if necessary. Fixes PR java/2953 11461 114622001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com> 11463 11464 * parse.y (resolve_package): Abort if qualified expression member 11465 isn't right. 11466 (qualify_ambiguous_name): Don't qualify as type if `this' in use. 11467 Fixes PR java/1391 11468 114692001-07-07 Zack Weinberg <zackw@stanford.edu> 11470 11471 * verify.c: Don't use // comments. 11472 114732001-07-05 Tom Tromey <tromey@redhat.com> 11474 11475 * lang.c (flag_assume_compiled): Removed. 11476 * java-tree.h (flag_assume_compiled): Removed. 11477 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc, 11478 -fhash-synchronization, -fuse-divide-subroutine, 11479 -fcheck-references, -femit-class-file, -femit-class-files, 11480 -fassume-compiled. Updated --encoding information. Changed 11481 -foutput-class-dir to `-d'. 11482 114832001-07-04 Daniel Berlin <dan@cgsoftware.com> 11484 11485 * jcf-parse.c (parse_class_file): Add lineno parameter to 11486 debug_start_source_file call. 11487 114882001-07-04 Joseph S. Myers <jsm28@cam.ac.uk> 11489 11490 * gcj.texi: Use gpl.texi. 11491 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update 11492 dependencies and use doc/include in search path. 11493 114942001-07-03 Jeff Sturm <jsturm@one-point.com> 11495 11496 * parse.y (fix_constructors): Test if a CALL_EXPR invokes 11497 `this'. If so, don't build instance initializers. 11498 114992001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com> 11500 11501 * parse.y (resolve_expression_name): Improved error message for 11502 inner class cases. Fixes PR java/1958 11503 115042001-06-28 Gabriel Dos Reis <gdr@codesourcery.com> 11505 11506 * lang.c: #include diagnostic.h 11507 (lang_print_error): Add a `diagnostic_context *' parameter. 11508 (java_dummy_print): Likewise. 11509 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h 11510 115112001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com> 11512 11513 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF. 11514 * jcf.h (typedef struct JCF): New bitfield `finished.' 11515 (JCF_FINISH): Set `finished.' 11516 (JCF_ZERO): Reset `finished.' 11517 Fixes PR java/2633 11518 115192001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com> 11520 11521 * parse.y (class_body_declaration:): Don't install empty instance 11522 initializers. 11523 Fixes PR java/1314 11524 115252001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com> 11526 11527 * class.c (set_super_info): Call `set_class_decl_access_flags.' 11528 (set_class_decl_access_flags): New function. 11529 * java-tree.h (set_class_decl_access_flags): New prototype. 11530 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags. 11531 (parse_class_file): New local `decl_max_locals.' Take wide types 11532 into account to compute DECL_MAX_LOCALS. 11533 * parse.y (type_import_on_demand_declaration:): Ignore duplicate 11534 imports on demand. 11535 115362001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl> 11537 11538 * zipfile.h: Use GCC_JCF_H instead of JCF_H. 11539 115402001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com> 11541 11542 * class.c (java_hash_tree_node): Fixed indentation in leading comment. 11543 * parse.y (do_resolve_class): Moved comments out to leading comment 11544 section. Removed local `start', New local `_ht' and 11545 `circularity_hash.' Record `enclosing' in hash table and search 11546 it to detect circularity. Use `enclosing' as an argument to 11547 `lookup_cl.' Free the hash table when done. 11548 115492001-06-19 Tom Tromey <tromey@redhat.com> 11550 11551 * lex.c (java_read_char): Disallow invalid and overlong 11552 sequences. Fixes PR java/2319. 11553 115542001-06-05 Jeff Sturm <jsturm@one-point.com> 11555 11556 * decl.c (create_primitive_vtable): Don't call make_decl_rtl. 11557 115582001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com> 11559 11560 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate 11561 arguments accordingly. 11562 115632001-06-02 Joseph S. Myers <jsm28@cam.ac.uk> 11564 11565 * gcj.texi: Move contents to just after title page. 11566 115672001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com> 11568 11569 * parse.y (type_literals:): Use `build_incomplete_class_ref' with 11570 builtin type. 11571 (patch_incomplete_class_ref): Build the class ref, build the class 11572 init if necessary, complete the tree. 11573 Fixes PR java/2605 11574 115752001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com> 11576 11577 * parse.y (lookup_field_wrapper): Test `name' code. 11578 (resolve_qualified_expression_name): Test `qual_wfl' code. 11579 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation, 11580 handle `qual_wfl' by code. 11581 (maybe_build_primttype_type_ref): Test `wfl' code. 11582 115832001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 11584 11585 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on 11586 fdl.texi. 11587 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create 11588 the dvi file in the java directory. 11589 115902001-05-25 Sam TH <sam@uchicago.edu> 11591 11592 * gen-table.pl javaop.h jcf.h lex.h, 11593 parse.h: Fix header include guards. 11594 115952001-05-23 Joseph S. Myers <jsm28@cam.ac.uk> 11596 11597 * jv-scan.c (version): Update copyright year. 11598 115992001-05-21 Per Bothner <per@bothner.com> 11600 11601 * jcf-parse.c (read_class): If class is from .class or .zip file 11602 and it's already been read, don't push/pop parser context. 11603 116042001-05-18 Per Bothner <per@bothner.com> 11605 11606 * jvspec.c (lang_specific_pre_link): Re-arrange the linker 11607 command line so the jvgenmain-generated main program comes first. 11608 116092001-05-15 Tom Tromey <tromey@redhat.com> 11610 11611 * class.c (build_utf8_ref): Don't generate identifier based on 11612 utf8const contents. 11613 116142001-05-12 Richard Henderson <rth@redhat.com> 11615 11616 * java-tree.def (JAVA_EXC_OBJ_EXPR): New. 11617 * expr.c (java_lang_expand_expr): Expand it. 11618 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of 11619 calling build_exception_object_ref. 11620 * parse.y (catch_clause_parameter): Likewise. 11621 (build_dot_class_method): Likewise. 11622 (try_reference_assignconv): Likewise. 11623 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR. 11624 * jcf-write.c (generate_bytecode_insns): Likewise. 11625 116262001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com> 11627 11628 * parse.y (build_unresolved_array_type): Set 11629 EXPR_WFL_QUALIFICATION on the newly created wfl. 11630 Fixes PR java/2538. Fixes PR java/2535. 11631 116322001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com> 11633 11634 * parse.y (fix_constructors): Removed unnecessary assignment to 11635 local. Moved assignment to `this$<n>', fixed comments and 11636 indentation. 11637 (build_wfl_wrap): Fixed indentation. 11638 Fixes PR java/2598, java/2579 and java/2658. 11639 116402001-05-03 Mo DeJong <mdejong@redhat.com> 11641 11642 * lex.c (java_new_lexer): Call iconv_close on temp handle used to 11643 check for byte swap. 11644 116452000-05-02 Jeff Sturm <jsturm@one-point.com> 11646 11647 * expr.c (build_class_init): Move MODIFY_EXPR 11648 outside of COND_EXPR. Remove variable `call'. 11649 116502001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11651 11652 * decl.c: NULL_PTR -> NULL. 11653 * jcf-write.c: Likewise. 11654 116552001-05-01 Tom Tromey <tromey@redhat.com> 11656 11657 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'. 11658 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS. 11659 * gcj.texi: Updated copyright text. Include fdl.texi. 11660 (Top): Link to new node. 11661 116622001-05-01 Per Bothner <per@bothner.com> 11663 11664 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon. 11665 116662001-05-01 Per Bothner <per@bothner.com> 11667 11668 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the 11669 import_list contains the name, not the TREE_PURPOSE. 11670 116712001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11672 11673 * jcf-io.c (read_zip_member): Cast to long in comparison with 11674 signed value. 11675 11676 * jvspec.c (lang_specific_driver): Initialize variables. 11677 11678 * mangle.c (find_compression_record_match): Likewise. 11679 11680 * typeck.c (build_null_signature): Provide static prototype. Mark 11681 parameter with ATTRIBUTE_UNUSED. 11682 11683 * verify.c (verify_jvm_instructions): Initialize variable. 11684 116852001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 11686 11687 * parse.y (do_resolve_class): Check for cyclic inheritance during 11688 inner class resolution. 11689 116902001-04-27 Per Bothner <per@bothner.com> 11691 11692 * parse.y (java_expand_classes): Don't change ctxp_for_generation 11693 while iterating, since that could cause gc to lose stuff. 11694 116952001-04-26 Per Bothner <per@bothner.com> 11696 11697 Fix method search wrt scope of inner classes to match JLS2. 11698 * typeck.c (build_null_signature): New static function. 11699 (has_method): New function. Uses build_null_signature and lookup_do. 11700 * java-tree.h (has_method): New declaration. 11701 * parse.y (find_applicable_accessible_methods_list): Do not search 11702 context of inner classes here. 11703 (patch_method_invocation): Search scope, ie. current and outer clases, 11704 for method matching simple name, to find class. 11705 117062001-04-26 Per Bothner <per@bothner.com> 11707 11708 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR): 11709 Fix thinko: If a single case, use if_icmpeq, not ifeq. 11710 11711 * constants.c (find_methodref_with_class_index): New function. 11712 (find_methodref_index): Use find_methodref_with_class_index. 11713 * java-tree.h (find_methodref_with_class_index): New declaration. 11714 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change 11715 DECL_CONTEXT, instead use new find_methodref_with_class_index function. 11716 If context changed from interface to class, don't use invokeinterface. 11717 117182001-04-25 Per Bothner <per@bothner.com> 11719 11720 * verify.c (verify_jvm_instructions): For field instructions, 11721 check that field index is valid. For invoke instructions, check that 11722 method index is valid. 11723 117242001-04-25 Alexandre Oliva <aoliva@redhat.com> 11725 11726 * config-lang.in (target_libs): Copy from $libgcj_saved. 11727 117282001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 11729 11730 * decl.c (init_decl_processing): Add new class "protectionDomain" 11731 field. 11732 * class.c (make_class_data): Set initial value for "protectionDomain". 11733 117342001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11735 11736 * jvspec.c (lang_specific_driver): Fix memory allocation 11737 deficit, by using concat in lieu of xmalloc/sprintf. 11738 117392001-04-20 Per Bothner <per@bothner.com> 11740 11741 Fixes to compile multiple .class files at once. 11742 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P. 11743 * java-tree.h (CLASS_PARSED_P): New macro. 11744 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P. 11745 * jcf-parse.c (jcf_parse_source): Inline into read_class. 11746 (read_class): Avoid some code duplication. 11747 Don't call JCF_FINISH for a .class file - might be needed later. 11748 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P 11749 rather than CLASS_LOADED_P, since latter implies class laid out. 11750 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2. 11751 * parse.y: Don't need to set CLASS_LOADED_P for array types. 11752 117532001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11754 11755 * Make-lang.in (java/boehm.o): Depend on toplev.h. 11756 11757 * boehm.c: Include toplev.h. 11758 117592001-04-06 Tom Tromey <tromey@redhat.com> 11760 Alexandre Petit-Bianco <apbianco@redhat.com> 11761 11762 Fix for PR gcj/1404 and PR gcj/2332: 11763 * parse.y (build_array_from_name): If we use the type_wfl then 11764 accumulate dimensions from the original type as well. 11765 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place. 11766 117672001-04-06 Tom Tromey <tromey@redhat.com> 11768 11769 * parse.y (analyze_clinit_body): Return true if the second operand 11770 of a METHOD_EXPR is nonzero. 11771 117722001-04-06 Tom Tromey <tromey@redhat.com> 11773 11774 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build 11775 directory. 11776 ($(srcdir)/java/parse.c): Likewise. 11777 117782001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com> 11779 11780 * gcj.texi: Use `which-gcj' instead of `which-g77.' 11781 (version-gcc): Initialized. 11782 (which-gcj): Likewise. 11783 117842001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com> 11785 11786 * java-tree.h (struct lang_decl): New macro 11787 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.' 11788 * parse.y (build_instance_initializer): New function. 11789 (add_instance_initializer): Use it. 11790 (java_fix_constructors): Set `current_class' before fix pass. 11791 (fix_constructors): Just return if already fixed. Move `super()' 11792 invocation ahead. Use `build_instance_initializer.' 11793 Fixes PR java/1315. 11794 117952001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com> 11796 11797 * parse.y (resolve_qualified_expression_name): Pass field's 11798 DECL_CONTEXT to `not_accessible_p.' 11799 (not_accessible_p): Changed parameters order in `inherits_from_p' 11800 invocation. 11801 118022001-03-27 Andrew Haley <aph@cambridge.redhat.com> 11803 11804 * lang-options.h: Add flag_check_references. 11805 118062001-04-04 Per Bothner <per@bothner.com> 11807 11808 * java-tree.h (CONSTANT_VALUE_P): New macro. 11809 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P. 11810 * parse.y (maybe_build_class_init_for_field): New static function. 11811 (resolve_expression_name, resolve_field_access): Use 11812 maybe_build_class_init_for_field instead of build_class_init 11813 This does not do the init if the field is compile-time-constant. 11814 (resolve_field_access): Simplify. 11815 11816 * parse.y (fold_constant_for_init): Merge test into switch. 11817 118182001-04-03 Zack Weinberg <zackw@stanford.edu> 11819 11820 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend 11821 on gansidecl.h. 11822 * buffer.c, jvgenmain.c: Don't include gansidecl.h. 11823 118242001-04-02 Zack Weinberg <zackw@stanford.edu> 11825 11826 * expr.c (pop_type_0): Save the result of the first 11827 lang_printable_name call in a scratch buffer, so it 11828 won't be clobbered by the second call. 11829 118302001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com> 11831 11832 * parse-scan.y (array_type:): Rewritten. 11833 (type_declaration:): `empty_statement' replaces `SC_TK.' 11834 (class_member_declaration:): `empty statement' added. 11835 (method_body:): Simplified. 11836 (static_initializer:): Likewise. 11837 (primary_no_new_array:): Use `type_literals.' 11838 (type_literals:): New rule. 11839 (dims:): Set and update `bracket_count.' 11840 Fixes PR java/1074. Fixes PR java/2412. 11841 118422001-03-28 Hans Boehm <boehm@acm.org> 11843 11844 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.' 11845 (get_boehm_type_descriptor): Set type on returned value to be a 11846 pointer length integer. 11847 118482001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11849 11850 * expr.c (pop_type_0): Call `concat' rather than building the 11851 string manually. 11852 (pop_type): Add format specifier in call to `error'. 11853 11854 * parse.y (patch_method_invocation): Avoid casting away 11855 const-ness. 11856 118572001-03-28 Jeffrey Oldham <oldham@codesourcery.com> 11858 11859 * jvgenmain.c (do_mangle_classname): End string constant with '\0'. 11860 118612001-03-28 Richard Henderson <rth@redhat.com> 11862 11863 IA-64 ABI Exception Handling: 11864 * Make-lang.in (except.o): Don't depend on eh-common.h. 11865 * check-init.c (check_init): Handle EXC_PTR_EXPR. 11866 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw. 11867 [soft_exceptioninfo_call_node]: Remove. 11868 [eh_personality_libfunc, lang_eh_runtime_type]: New. 11869 (end_java_method): No emit_handlers. 11870 * except.c (java_set_exception_lang_code): Remove. 11871 (method_init_exceptions): Don't call it. 11872 (prepare_eh_table_type): No CATCH_ALL_TYPE. 11873 (build_exception_object_ref): New. 11874 (expand_end_java_handler): Update for except.h name changes. 11875 (emit_handlers, expand_resume_after_catch): Remove. 11876 * expr.c (java_lang_expand_expr): Update for except.h name changes. 11877 (process_jvm_instruction): Use build_exception_object_ref. 11878 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove. 11879 (soft_exceptioninfo_call_node): Remove. 11880 (build_exception_object_ref): Declare. 11881 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No 11882 soft_exceptioninfo_call_node. Move processing ... 11883 [EXC_PTR_EXPR]: ... here. 11884 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code. 11885 * parse.y (catch_clause_parameter): Use build_exception_object_ref. 11886 (source_end_java_method): No java_set_exception_lang_code or 11887 emit_handlers. 11888 (build_dot_class_method): Use build_exception_object_ref. 11889 (try_reference_assignconv): Check EXC_PTR_EXPR not 11890 soft_exceptioninfo_call_node. 11891 118922001-03-28 Richard Henderson <rth@redhat.com> 11893 11894 * java-tree.h (throw_node): Define as a single member of 11895 java_global_trees instead of a separate array. 11896 (JTI_THROW_NODE): New. 11897 * decl.c (throw_node): Don't declare. 11898 (init_decl_processing): Init a scalar throw_node. 11899 Don't register it for gc. 11900 * check-init.c (check_init): Reference scalar throw_node. 11901 * expr.c (build_java_athrow): Likewise. 11902 * jcf-write.c (generate_bytecode_insns): Likewise. 11903 * parse.h (BUILD_THROW): Likewise. 11904 119052001-03-28 Richard Henderson <rth@redhat.com> 11906 11907 * decl.c (end_java_method): Do not save and restore 11908 flag_non_call_exceptions. 11909 * parse.y (source_end_java_method): Likewise. 11910 * lang.c (flag_exceptions): Don't declare. 11911 (java_init_options): Set flag_non_call_exceptions. Set 11912 flag_exceptions here ... 11913 (java_init): ... not here. 11914 119152001-03-27 Richard Henderson <rth@redhat.com> 11916 11917 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of 11918 exceptions_via_longjmp. 11919 11920 * lang.c (flag_new_exceptions): Don't declare it. 11921 (java_init_options): Or set it. 11922 119232001-03-27 Richard Henderson <rth@redhat.com> 11924 11925 * decl.c (end_java_method): Rename asynchronous_exceptions to 11926 flag_non_call_exceptions. 11927 * parse.y (source_end_java_method): Likewise. 11928 119292001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11930 11931 * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 11932 119332001-03-26 Mark Mitchell <mark@codesourcery.com> 11934 11935 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE. 11936 119372001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com> 11938 11939 * parse.y (find_as_inner_class): Follow current package 11940 indications not to mistakingly load an unrelated class. 11941 119422001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11943 11944 * constants.c (PUTN): Use memcpy, not bcopy. 11945 11946 * lex.c (java_read_char): Use memmove, not bcopy. 11947 11948 * parse.y (java_parser_context_resume): Use memcpy, not bcopy. 11949 119502001-03-23 Per Bothner <per@bothner.com> 11951 11952 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE 11953 macro for better error pin-pointing. 11954 * java-tree.h: Fix typo in comment. 11955 11956 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR. 11957 Don't include jsr/goto in exception range. 11958 Check if start and end of exception range are the same (also TRY_EXPR). 11959 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false. 11960 However, do emit the following goto even if try_block is empty. 11961 Defer freeing exception_decl until after the finalizer, to make 11962 sure the local isn't reused in the finalizer. Fixes PR java/1208. 11963 11964 * parse.y (java_complete_lhs): If the try-clause is empty, just 11965 return the finally-clause and vice versa. 11966 119672001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com> 11968 11969 * gcj.texi (Input Options): documented the check for attribute 11970 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag. 11971 * java-tree.h (flag_force_classes_archive_check): Declared extern. 11972 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro. 11973 (jcf_parse): Check for the right classes archive if necessary. 11974 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it. 11975 (jcf_parse_fields): Fixed indentation. 11976 * jcf-write.c (append_gcj_attribute): New function. 11977 (generate_classfile): Compute the attribute count, invoke 11978 `append_gcj_attribute'. 11979 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source' 11980 turned into bit-fields. New bit-field `right_zip.' 11981 (JCF_ZERO): Set `right_zip' to zero. 11982 * lang-options.h (-fforce-classes-archive-check): Added flag. 11983 * lang.c (flag_force_classes_archive_check): New flag. 11984 (lang_f_options): New entry `force-classes-archive-check.' 11985 Fixes PR java/1213. 11986 119872001-02-07 Andrew Haley <aph@redhat.com> 11988 11989 * gcj.texi (Configure-time Options): Add -fcheck-references. 11990 * expr.c (build_java_indirect_ref): New function. 11991 (java_check_reference): New function. 11992 (build_java_array_length_access): Use build_java_indirect_ref to 11993 check for null references. 11994 (build_java_arrayaccess): Likewise. 11995 (build_get_class): Likewise. 11996 (build_field_ref): Likewise. 11997 (invoke_build_dtable): Likewise. 11998 (build_invokeinterface): Likewise. 11999 * lang.c (lang_f_options): Add flag_check_references. 12000 * jvspec.c (jvgenmain_spec): Add flag_check_references. 12001 * java-tree.h (flag_check_references): New variable. 12002 * lang.c (flag_check_references): Likewise. 12003 * parse.y (patch_invoke): Use java_check_reference. 12004 (patch_assignment): Allow for extra nesting in 12005 _Jv_CheckArrayStore. 12006 120072001-03-23 Bryce McKinlay <bryce@albatross.co.nz> 12008 12009 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c. 12010 * lex.c (cxx_keywords): Likewise. 12011 120122001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com> 12013 12014 * parse.y (qualify_ambiguous_name): Broaden `length' 12015 recognition. Help MODIFY_EXPR be resolved as expression names. 12016 Fixes PR java/2066. Fixes PR java/2400. 12017 120182001-03-21 Bryce McKinlay <bryce@albatross.co.nz> 12019 12020 * gjavah.c (process_file): Mark interface definitions with 12021 "__attribute__ ((java_interface))". 12022 120232001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com> 12024 12025 * class.c (layout_class): Fixed push_super_field's second 12026 argument. Fixes PR java/2333. 12027 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's 12028 too early to lay innerclasses out. 12029 120302001-03-20 Tom Tromey <tromey@redhat.com> 12031 Alexandre Petit-Bianco <apbianco@redhat.com> 12032 12033 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR 12034 inside an array reference. Insertion of the array store check 12035 rewritten. Fixes PR java/2299. 12036 120372001-03-20 Tom Tromey <tromey@redhat.com> 12038 12039 * lex.c (java_read_unicode): Only accept leading `u's. 12040 120412001-03-20 Tom Tromey <tromey@redhat.com> 12042 12043 * jcf-parse.c (read_class): Initialize `class'. 12044 120452001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu> 12046 12047 * jcf_parse.c (jcf_parse): Eliminate unused variable. 12048 120492001-03-19 Mark Mitchell <mark@codesourcery.com> 12050 12051 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME. 12052 (layout_class): Likewise. 12053 (layout_class_method): Likewise. 12054 (emit_register_classes): Likewise. 12055 * decl.c (builtin_function): Likewise. 12056 (give_name_to_locals): Likewise. 12057 120582001-03-19 Per Bothner <per@bothner.com> 12059 12060 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P 12061 before trying to load an inner class. 12062 12063 Fixes to process to command-line .class files in two passes. 12064 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags. 12065 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to .. 12066 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now. 12067 * class.c (is_compiled_class): Fix for renamed flag. 12068 * parse.y (maybe_create_class_interface_decl): Likewise. 12069 * jcf-parse.c (yyparse): Also set if compiling .class files. 12070 * jcf-parse.c (read_class); Read current_class. 12071 (jcf_parse): Make static. 12072 (load_inner_classes): New function, with code moved from jcf_parse, 12073 because we need to inner classes after the command-line files are read. 12074 (yyparse): Set finput to NULL when it doesn't need to be closed. 12075 Reduce use of main_jcf (basically only for archive) and 12076 use finput instead of main_jcf->read_state. 12077 Inline jcf_figure_file_type into yyparse. 12078 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name. 12079 Defer load_inner_classes and parse_class_file to a second pass, 12080 after we've correctly mapped command-line .clas fiels to classes. 12081 (jcf_figure_file_type): Removed. 12082 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags. 12083 (JCF_ZERO): Also clear zipd field. 12084 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP. 12085 120862001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu> 12087 12088 * jcf-parse.c (yyparse): Change ch from char * to char. 12089 120902001-03-19 Per Bothner <per@bothner.com> 12091 12092 * jvspec.c (lang_specific_driver): Check for .zip and .jar files. 12093 Add constructed filelist-file at end, following -xjava. Thus any .o 12094 and library files are not affected by the -xjava. Also wrap 12095 explicit @FILE with -xjava and -xnone. 12096 120972001-03-19 Andrew Haley <aph@cambridge.redhat.com> 12098 12099 * class.c (build_static_field_ref): Call make_decl_rtl() after 12100 setting the DECL_EXTERNAL flag. 12101 121022001-03-17 Per Bothner <per@bothner.com> 12103 12104 * decl.c (clear_binding_level): Fix initializer (broke 03-15). 12105 12106 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc 12107 when result is is needed (target is STACK_TARGET). 12108 12109 * parse.h (JDEP_SOLV): Removed. 12110 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead. 12111 12112 * parse.y (incomplete_class_list): Removed. 12113 (obtain_incomplete_type): Don't use or set incomplete_class_list. 12114 It doesn't work if resolve_class changes the name of an array type 12115 that is on the list and then someone else looks for the modified name. 12116 Also, seems liable to break when compiling multiple source files at 12117 once. So the simplest is to just remove incomplete_class_list - 12118 it is only a minor space win and it is not even clear it saves time. 12119 12120 * parse.y (resolve_class): Remove unneeded promote_type. 12121 121222001-03-15 Per Bothner <per@bothner.com> 12123 12124 * java-tree.h (BLOCK_IS_IMPLICIT): New flag. 12125 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro. 12126 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks): 12127 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN. 12128 12129 * jcf-parse.c (yyparse): Set/reset input_filename for source file. 12130 * parse.y (java_expand_classes): Likewise. 12131 12132 * parse.y (expand_start_java_method): Was only called once and had a 12133 misleading name, so inline in caller java_complete_expand_method. 12134 (enter_a_block): Likewise inline in enter_block and remove. 12135 12136 Remove junk from when gcc/java was created (by copying from C/C++). 12137 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove. 12138 (struct binding_level): Remove fields keep, keep_if_subblocks, 12139 more_cleanups_ok, have_cleanups (which have never been used). 12140 (pushlevel, poplevel): Remove related useless code. 12141 12142 * class.c (make_class_data): The class_dtable_decl (i.e. the 12143 vtable for Class) should be external, except when compiling Class. 12144 12145 * jvspec.c (lang_specific_driver): Fix -C handling. 12146 Check -save-temps to see if temp @FILE should be deleted. 12147 Follow-up to/fix for February 16 patch. 12148 12149 * verify.c (verify_jvm_instructions): Better error msgs for dup. 12150 (type_stack_dup): Remove no-longer neded error check. 12151 121522001-03-15 Bryce McKinlay <bryce@albatross.co.nz> 12153 12154 * mangle.c (mangle_record_type): Rename 'from_pointer' argument 12155 to 'for_pointer'. If this type is for a pointer (argument) mangling, 12156 don't surround the element with 'N..E' if the type name is 12157 unqualified. 12158 121592001-03-14 Mark Mitchell <mark@codesourcery.com> 12160 12161 * class.c (build_static_field_ref): Use COPY_DECL_RTL, 12162 DECL_RTL_SET_P, etc. 12163 (make_method_value): Likewise. 12164 (get_dispatch_table): Likewise. 12165 12166 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 12167 121682001-03-07 Tom Tromey <tromey@redhat.com> 12169 12170 * config-lang.in (lang_requires): Define. 12171 121722001-03-07 Brad Lucier <lucier@math.purdue.edu> 12173 12174 * typeck.c (convert): Check flag_unsafe_math_optimizations, 12175 not flag_fast_math. 12176 121772001-03-05 Per Bothner <per@bothner.com> 12178 12179 Fix a problem where rest_of_decl_compilation applied to 12180 class_dtable_decl causes problems because it was done too early, 12181 before output file was opened. 12182 * decl.c (init_decl_processing): Remove init of class_dtable_decl. 12183 * class.c (class_dtable_decl): Add macro - element of class_roots. 12184 (make_class_data): Define class_dtable_decl. 12185 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed. 12186 121872001-03-01 Zack Weinberg <zackw@stanford.edu> 12188 12189 * java/class.c, java/decl.c, java/java-tree.h: Replace all 12190 uses of 'boolean' with 'bool'. 12191 121922001-03-01 Zack Weinberg <zackw@stanford.edu> 12193 12194 * lang-specs.h: Add zero initializer for cpp_spec field to all 12195 array elements. 12196 121972001-02-16 Per Bothner <per@bothner.com> 12198 12199 Handle compiling multiple input files at once, and @FILE syntax. 12200 * gcj.texi: Updated documentation to match. 12201 * java-tree.h (flag_filelist_file, init_src_parse): New declarations. 12202 * jcf-parse.c (parse_source_file): Split into ... 12203 (parse_source_file_1): New function - and: 12204 (parse_source_file_2): New function. 12205 (yyparse): On -ffilelist-file, open and scan named file. 12206 On first pass over files, only do parse_source_file_1. 12207 A new second pass calls parse_source_file_2 for each file to compile. 12208 (init_jcf_parse): Call init_src_parse. 12209 * jvspec.c (INDIRECT_FILE_ARG): New flag. 12210 (lang_specific_driver): Support @FILELIST-FILE syntax, as well 12211 as multiple input file combined in one compilation. 12212 * lang-options.h: Add -ffilelist-file 12213 * lang.c (flag_filelist_file): New flag variable. 12214 (lang_f_options): Handle -ffilelist-file. 12215 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class. 12216 * parse.h (struct parse_ctxt): Remove fields incomplete_class and 12217 gclass_list - use global fields of src_parse_roots instead. 12218 * parse.y (src_parse_roots): New array. 12219 (incomplete_class_list, gclass_list): New macros. 12220 (push_parser_context, java_pop_parser_context, 12221 java_parser_context_resume): Don't fiddle with deleted fields. 12222 (various): Use incomplete_class gclass_list and global macros 12223 instead of parse_ctxt fields - the lists are global. 12224 (init_src_parse): New function. 12225 122262001-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12227 12228 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK. 12229 122302001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com> 12231 12232 * parse.y (check_inner_class_access): Moved declaration of local 12233 `enclosing_decl_type' to the right location. 12234 122352001-02-19 Bryce McKinlay <bryce@albatross.co.nz> 12236 12237 * parse.y (parser_check_super_interface): Don't call 12238 check_pkg_class_access for an inner interface. 12239 (parser_check_super): Don't call check_pkg_class_access for inner 12240 class. 12241 (do_resolve_class): Simplify enclosing type loop. Don't call 12242 check_pkg_class_access if CL and DECL are not set. 12243 (find_in_imports_on_demand): Set DECL if class_type needed to be 12244 loaded. Don't call check_pkg_class_access for an inner class. 12245 (check_inner_class_access): Rewritten to implement member access 12246 rules as per spec 6.6.1. 12247 (check_pkg_class_access): Handle the empty package correctly. 12248 (in_same_package): New function. Determine if two classes are in the 12249 same package. 12250 122512001-02-18 Bryce McKinlay <bryce@albatross.co.nz> 12252 12253 * typeck.c (build_java_array_type): Don't try to poke a public `clone' 12254 method into array types. 12255 * parse.y (patch_method_invocation): Bypass access check on clone call 12256 to array instance. 12257 122582001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com> 12259 12260 * expr.c (build_instanceof): Check for arrays when trying fold to 12261 false. 12262 122632001-02-15 Jim Meyering <meyering@lucent.com> 12264 12265 * Make-lang.in (java.install-common): Depend on `installdirs'. 12266 (java.install-info): Likewise. 12267 122682001-02-15 Bryce McKinlay <bryce@albatross.co.nz> 12269 12270 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o. 12271 122722001-02-14 Tom Tromey <tromey@redhat.com> 12273 Alexandre Petit-Bianco <apbianco@cygnus.com> 12274 12275 Fix for PR java/1261. 12276 * typeck.c (build_java_array_type): Add public `clone' method to 12277 arrays. 12278 * parse.y (resolve_qualified_expression_name): Use current_class 12279 when checking for inaccessibility. 12280 (patch_method_invocation): Fixed error message when accessibility 12281 denied. Added `from_super' argument. 12282 122832001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com> 12284 12285 * parse.y (resolve_class): Don't build a fake decl. Use the one 12286 already built. 12287 * typeck.c (build_java_array_type): Build and assign decl to array 12288 type. 12289 122902001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com> 12291 12292 * parse.y (not_accessible_p): Changed leading comment. Added extra 12293 `where' argument. Use it to enforce protected access rules. 12294 (resolve_qualified_expression_name): Added extra argument to 12295 not_accessible_p. 12296 (patch_method_invocation): Use argument `primary' to provide 12297 not_accessible_p with an extra argument. 12298 (lookup_method_invoke): Added extra argument to not_accessible_p. 12299 (search_applicable_method_list): Likewise. 12300 123012001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com> 12302 12303 * parse.y (resolve_qualified_expression_name): Try to resolve as 12304 an inner class access only if `decl' is a TYPE_DECL. 12305 123062001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 12307 12308 * decl.c (classdollar_identifier_node): Initialize. 12309 * java-tree.h (enum java_tree_index): New entry 12310 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.' 12311 (classdollar_identifier_node): New macro. 12312 (ID_CLASSDOLLAR_P): Likewise. 12313 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.' 12314 (build_dot_class_method_invocation): Likewise. 12315 (find_applicable_accessible_methods_list): `class$' can't be 12316 inherited. 12317 123182001-02-09 Raja R Harinath <harinath@cs.umn.edu> 12319 12320 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs. 12321 123222001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com> 12323 12324 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o' 12325 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now 12326 gone. 12327 123282001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com> 12329 12330 * mangle_name (append_unicode_mangled_name): Emit `_' or `U' 12331 outside of the `__U' sequence too. 12332 (unicode_mangling_length): Count `_' or `U' outside of the `__U' 12333 sequence too. 12334 123352001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com> 12336 12337 * jvgenmain.c (error): Reversed 2001-02-01 deletion. 12338 123392001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com> 12340 12341 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o 12342 (JVGENMAIN_OBJS): Likewise. 12343 * java-tree.h (append_gpp_mangled_name): New prototype. 12344 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.' 12345 Removed cast calling `gcc_add_root.' 12346 * jvgenmain.c (mangle_obstack): New global, initialized. 12347 (main): Use it. 12348 (do_mangle_class): Constify local `ptr.' 12349 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call 12350 append_gpp_mangle_name and update `count' if necessary. 12351 Use `mangle_obstack.' 12352 * mangle.c (append_unicode_mangled_name): Removed. 12353 (append_gpp_mangled_name): Likewise. 12354 (unicode_mangling_length): Likewise. 12355 (mangle_member_name): Return type set to `void.' 12356 (mangle_field_decl): Don't append `U' in escaped names. 12357 (mangle_method_decl): Likewise. 12358 (mangle_member_name): Just use `append_gpp_mangled_name.' 12359 * mangle_name.c: New file. 12360 123612001-02-07 Per Bothner <per@bothner.com> 12362 12363 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic. 12364 12365 * check-init.c (check_init): Don't call done_alternative after 12366 processing loop code, as a LOOP_EXPR never terminates normally. 12367 123682001-02-08 Joseph S. Myers <jsm28@cam.ac.uk> 12369 12370 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org. 12371 123722001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 12373 12374 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field 12375 DECLs. 12376 123772001-02-06 Tom Tromey <tromey@redhat.com> 12378 12379 * lex.c (java_new_lexer): Longer error message. 12380 123812001-02-05 Jeff Sturm <jeff.sturm@commerceone.com> 12382 Alexandre Petit-Bianco <apbianco@cygnus.com> 12383 12384 * typeck.c (build_prim_array_type): Added leading comment. 12385 (build_java_array_type): Moved locals out of 12386 block. Always create the `data' field, fixed alignment to match 12387 C++. 12388 123892001-02-04 Tom Tromey <tromey@redhat.com> 12390 12391 * expr.c (java_lang_expand_expr): Don't bother recomputing 12392 `length'. Use rest_of_decl_compilation, not make_decl_rtl. 12393 Fixes PR java/1866. 12394 123952001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 12396 12397 * parse.y (process_imports): Save the original name of the import 12398 for better error report. 12399 124002001-02-04 Bryce McKinlay <bryce@albatross.co.nz> 12401 12402 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list 12403 of macros used when compiling jvspec.c. 12404 * jvspec.c (lang_specific_driver): Link with the shared 12405 libgcc by default. 12406 124072001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 12408 12409 * check-init.c (check_init): Call internal_error instead of fatal. 12410 * expr.c (java_lang_expand_expr): Likewise. 12411 * jcf-parse.c (get_constant): Likewise. 12412 * mangle.c (java_mangle_decl): Likewise. 12413 * parse.y (make_nested_class_name, java_complete_lhs): Likewise. 12414 (operator_string): Likewise. 12415 * check-init.c (check_init): Call abort instead of fatal. 12416 * class.c (build_class_ref): Likewise. 12417 * constants.c (write_constant_pool): Likewise. 12418 * decl.c (start_java_method): Likewise. 12419 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise. 12420 (java_stack_dup, encode_newarray_type): Likewise. 12421 (build_java_array_length_access): Likewise. 12422 (build_java_check_indexed_type, expand_java_pushc): Likewise. 12423 (build_java_soft_divmod, build_invokeinterface): Likewise. 12424 * java-tree.h (INNER_CLASS_P): Likewise. 12425 * jcf-parse.c (parse_signature, get_name_constant): Likewise. 12426 (give_name_to_class, get_class_constant): Likewise. 12427 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise. 12428 (find_constant_index, generate_bytecode_conditional): Likewise. 12429 (generate_bytecode_insns, perform_relocations): Likewise. 12430 * lex.c (java_unget_unicode, java_lex): Likewise. 12431 * mangle.c (mangle_type, mangle_record_type): Likewise. 12432 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise. 12433 (finish_mangling): Likewise. 12434 * parse.h (MARK_FINAL_PARMS): Likewise. 12435 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise. 12436 (obtain_incomplete_type, java_complete_class): Likewise. 12437 (java_check_regular_methods, java_complete_expand_method): Likewise. 12438 (cut_identifier_in_qualified, check_deprecation): Likewise. 12439 (patch_invoke, find_applicable_accessible_methods_list): Likewise. 12440 (java_complete_lhs, lookup_name_in_blocks): Likewise. 12441 (check_final_variable_indirect_assignment, build_unaryop): Likewise. 12442 * typeck.c (set_local_type, parse_signature_type): Likewise. 12443 (parse_signature_string, build_java_signature): Likewise; 12444 (set_java_signature): Likewise. 12445 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise. 12446 * class.c (add_method): Call fatal_error instead of fatal. 12447 (build_static_field_ref): Likewise. 12448 * expr.c (build_known_method_ref, expand_invoke): Likewise. 12449 * jcf-parse.c (get_constant, jcf_parse): Likewise. 12450 * lex.c (java_new_new_lexer): Likewise. 12451 * jv-scan.c (main): Likewise. 12452 (fatal_error): Renamed from fatal. 12453 * jcf-parse.c (yyparse): Call fatal_io_error instead of 12454 pfatal_with_name. 12455 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal. 12456 (yyparse): Likewise. 12457 * jcf-write.c (make_class_file_name, write_classfile): Likewise. 12458 * lex.c (java_get_line_col): Likewise. 12459 * jcf-parse.c (load_class): Make errors non-fatal. 12460 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV. 12461 124622001-02-01 Bryce McKinlay <bryce@albatross.co.nz> 12463 12464 * jvgenmain.c (class_mangling_suffix): Remove unused string. 12465 (error): Remove unused function. 12466 (main): Don't use "__attribute__ alias" on generated class symbol. 12467 124682001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com> 12469 12470 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last 12471 argument. 12472 * parse.y (finish_method_declaration): Code accounting for WFLed 12473 method DECL_NAMEs deleted. 12474 (check_abstract_method_definitions): Likewise. 12475 (resolve_type_during_patch): Layout resolved type. 12476 * typeck.c (lookup_do): Removed unused local. 12477 124782001-01-30 Bryce McKinlay <bryce@albatross.co.nz> 12479 12480 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE. 12481 * decl.c (init_decl_processing): Use integer_minus_one_node, not 12482 integer_negative_one_node. 12483 * expr.c (build_java_binop): Likewise. 12484 124852001-01-24 Jeff Sturm <jeff.sturm@commerceone.com> 12486 12487 * zextract.c (read_zip_archive): Read file_offset before writing 12488 zipd and consequently clobbering the header contents. 12489 124902001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12491 12492 * Make-lang.in: Remove all dependencies on defaults.h. 12493 * decl.c: Don't include defaults.h. 12494 * expr.c: Likewise. 12495 * parse.y: Likewise. 12496 124972001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 12498 12499 * ChangeLog (2001-01-21): Fixed typo. 12500 * class.c (layout_class_method): Code accounting for WFLed 12501 method DECL_NAMEs deleted. 12502 * constant.c (find_methodref_index): Likewise. 12503 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl. 12504 * java-tree.h (DECL_FUNCTION_WFL): New macro. 12505 (struct lang_decl): New field `wfl'. 12506 (java_get_real_method_name): Prototype deleted. 12507 * mangle.c (mangle_method_decl): Code accounting for WFLed 12508 method DECL_NAMEs deleted. 12509 * parse.h (GET_METHOD_NAME): Macro deleted. 12510 * parse.y (reset_method_name): Deleted. 12511 (method_header): Set DECL_FUNCTION_WFL. 12512 (check_abstract_method_header): Code accounting for WFLed method 12513 DECL_NAMEs deleted. 12514 (java_get_real_method_name): Deleted. 12515 (check_method_redefinition): Code accounting for WFLed method 12516 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL. 12517 (java_check_regular_methods): Likewise. 12518 (java_check_abstract_methods): Likewise. 12519 (java_expand_classes): Don't call `reset_method_name.' 12520 (search_applicable_method_list): Use DECL_NAMEs instead of 12521 GET_METHOD_NAME. 12522 * typeck.c (lookup_do): Code accounting for WFLed method 12523 DECL_NAMEs deleted. 12524 125252001-01-25 Richard Earnshaw <rearnsha@arm.com> 12526 12527 * lex.c (java_read_char): Check for EOF from getc first. 12528 125292001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 12530 12531 * class.c (layout_class): Don't lay the superclass out if it's 12532 already being laid out. 12533 * jcf-parse.c (handle_innerclass_attribute): New function. 12534 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke 12535 handle_innerclasses_attribute. 12536 (jcf_parse): Don't load an innerclasses if it's already being 12537 laid out. 12538 * jcf-write.c (append_innerclass_attribute_entry): Static 12539 `anonymous_name' and its initialization deleted. `ocii' and `ini' 12540 to be zero for anonymous classes. 12541 125422001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 12543 12544 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if 12545 necessary. 12546 * jcf-parse.c (set_source_filename): Use 12547 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary. 12548 125492001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 12550 12551 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it 12552 gets a unique asm name. 12553 125542001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 12555 12556 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method. 12557 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC 12558 if necessary. 12559 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro. 12560 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute. 12561 * parse.y (lookup_package_type_and_set_next): Deleted. 12562 (resolve_package): Removed unnecessary code. 12563 (find_applicable_accessible_methods_list): `finit$' can't be 12564 inherited. 12565 * verify.c (pop_argument_types): Added missing prototype. 12566 125672001-01-23 Bryce McKinlay <bryce@albatross.co.nz> 12568 12569 * config-lang.in: Disable java by default. 12570 125712001-01-23 Tom Tromey <tromey@redhat.com> 12572 12573 * gcj.texi (Copying): New node. 12574 Added copyright information. 12575 125762001-01-21 Per Bothner <per@bothner.com> 12577 12578 Various fixes to allow compiling a compressed .jar/.zip archive. 12579 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile. 12580 (struct ZipFile): Add fields name and next (from ZipFileCache). 12581 (struct ZipDirectory): New field zipf points to owning ZipFile. 12582 * jcf.h (struct ZipDirectory): Add forward declaration. 12583 (struct JCF): Declare zipd field to have type struct ZipDirectory. 12584 Remove seen_in_zip and zip_offset fields. 12585 (JCF_SEEN_IN_ZIP): New macro. 12586 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field. 12587 * jcf-io.c: Change all ZipFileCache to ZipFile. 12588 (read_zip_member): New function. 12589 (open_in_zip): Call read_zip_member. 12590 * jcf-parse.c (find_in_current_zip): Remove function. 12591 (read_class): Merge in find_in_current_zip functionality. 12592 Call read_zip_member if needed. 12593 (parse_zip_file_entries): Use read_zip_member. 12594 (process_zip_dir): Update for removed and added JCF fields. 12595 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct. 12596 125972001-01-21 Per Bothner <per@bothner.com> 12598 12599 Minor optimization of static ggc roots. 12600 * jcf-parse.c (parse_roots): New static field. 12601 (current_field, current_method, current_file_list): Replace by macros 12602 naming fields of parse_roots. 12603 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1. 12604 * class.c (class_roots): New static field. 12605 (registered_class, fields_ident, info_ident, class_list): 12606 New macros naming fields of parse_roots. 12607 (build_static_field_ref): Don't register roots here. 12608 (layout_class): Static field list replaced by macro class_list. 12609 (init_class_processing): Call ggc_add_tree_root for 4 roots. 12610 Initialize fields_ident and info_ident here. 12611 126122001-01-21 Per Bothner <per@bothner.com> 12613 12614 * jcf-parse.c (ggc_mark_jcf): New function. 12615 (init_jcf_parse): Register current_jcf as ggc root. 12616 126172001-01-21 Per Bothner <per@bothner.com> 12618 12619 * lang.c (put_decl_node): Print method's name. 12620 126212001-01-21 Per Bothner <per@bothner.com> 12622 12623 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro. 12624 (verify_jvm_instructions): Use it, for better error messages on loads. 12625 126262001-01-21 Per Bothner <per@bothner.com> 12627 12628 * verify.c (merge_type_state): Still may have to merge even if 12629 LABEL_VERIFIED (label). 12630 126312001-01-21 Per Bothner <per@bothner.com> 12632 12633 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL 12634 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong. 12635 126362001-01-19 Per Bothner <per@bothner.com> 12637 12638 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch 12639 if expeting an interface type. Refines Tom's change of 2000-09-12. 12640 126412001-01-18 Per Bothner <per@bothner.com> 12642 12643 * gcj.texi (Input Options): Mention .java files. 12644 126452001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 12646 12647 * lang-options.h (-Wunsupported-jdk11): Removed. 12648 * lang.c (flag_not_overriding): Deleted. 12649 (flag_static_local_jdk1_1): Likewise. 12650 (lang_W_options): Removed "unsupported-jdk11" entry. 12651 * parse.y (java_check_methods): Removed dead code. 12652 126532001-01-17 Tom Tromey <tromey@redhat.com> 12654 12655 Changes suggested by Per Bothner: 12656 * gcj.texi (Input Options): Don't mention input files. 12657 (Code Generation): Updated --main information. 12658 (Invoking jcf-dump): Mention that --javap is incomplete. 12659 From Alexandre Petit-Bianco: 12660 (Warnings): Don't mention -Wunsupported-jdk11. 12661 My stuff: 12662 (Compatibility): Mention JDK 1.2-ness of libraries. 12663 (Resources): Mention resources used when writing gcj. 12664 126652001-01-17 Tom Tromey <tromey@redhat.com> 12666 12667 * gcj.texi: New file. 12668 * Make-lang.in ($(srcdir)/java/gcj.info): New target. 12669 (java.info): Depend on gcj.info. 12670 (java/gcj.dvi): New target. 12671 (java.dvi): Depend on gcj.dvi. 12672 (java.install-info): Wrote. 12673 126742001-01-16 Jeff Sturm <jeff.sturm@appnet.com> 12675 12676 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after 12677 having called make_decl_rtl. 12678 126792001-01-14 Per Bothner <per@bothner.com> 12680 12681 Various patches to emit better messages on verification errors. 12682 * expr.c (push_type_0): Return error indication on stack overflow, 12683 instead of callinfg fatal. 12684 (push_type): Now just call push_type_0 (nd fatal on overflow). 12685 (pop_type_0): Return detailed error message (in a char** argument). 12686 (pop_type): If pop_type_0 fails, print error message. 12687 (pop_argument_types): Moved to verify.c. 12688 * verify.c (pop_argument_types): Moved from expr.c. 12689 Return a (possible) error message, rather than void. 12690 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros. 12691 (verify_jvm_instruction): Use new macros, improving error messages. 12692 For case OPCODE_astore use object_ptr_type_node. 12693 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros. 12694 (pop_type_0, push_type_0, pop_argument_types): Update accordingly. 12695 12696 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is 12697 constant, return body without wrapper. (Improves constant folding.) 12698 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node. 12699 127002001-01-13 Per Bothner <per@bothner.com> 12701 12702 * expr.c (expand_java_field_op): Assigning to a final field outside 12703 an initializer does not violate JVM spec, so should be warning, not 12704 error. (Sun's verifier does not complain - though MicroSoft's does.) 12705 127062001-01-12 Joseph S. Myers <jsm28@cam.ac.uk> 12707 12708 * gjavah.c (version), jcf-dump.c (version): Update copyright year 12709 to 2001. 12710 127112001-01-11 Bryce McKinlay <bryce@albatross.co.nz> 12712 12713 * parse.y (resolve_expression_name): Permit instance variables from 12714 enclosing context in super constructor call. 12715 (resolve_qualified_expression_name): Permit enclosing class's qualified 12716 "this" in super constructor call. 12717 127182001-01-10 Mark Mitchell <mark@codesourcery.com> 12719 12720 * class.c (build_utf8_ref): Remove last argument in call to 12721 make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 12722 (build_class_ref): Likewise. 12723 (build_static_field_ref): Likewise. 12724 (get_dispatch_table): Likewise. 12725 (layout_class_method): Likewise. 12726 (emit_register_classes): Likewise. 12727 * constants.c (build_constant_data_ref): Likewise. 12728 * decl.c (builtin_function): Likewise. 12729 (create_primitive_vtable): Likewise. 12730 * expr.c (build_known_method_def): Likewise. 12731 (build_jni_stub): Likewise. 12732 (java_lang_expand_expr): Likewise. 12733 127342001-01-10 Tom Tromey <tromey@redhat.com> 12735 12736 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation. 12737 127382001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com> 12739 12740 * java-tree.h (lang_printable_name_wls): New prototype. 12741 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT 12742 rather than `current_class' to print type name. Don't prepend type 12743 names when printing constructor names. 12744 (lang_printable_name_wls): New function. 12745 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to 12746 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE. 12747 * parse.y (patch_method_invocation): Message tuned for constructors. 12748 (not_accessible_p): Grant `private' access from within 12749 enclosing contexts. 12750 127512001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 12752 12753 All files with updated copyright when applicable. 12754 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o. 12755 * class.c (mangle_class_field): Function removed. 12756 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise. 12757 (utf8_cmp, cxx_keyword_p): Moved to lex.c. 12758 (build_class_ref): Call `java_mangle_class_field' instead of 12759 `mangle_class_field.' 12760 (build_dtable_decl): Rewritten to call `java_mangle_vtable.' 12761 (layout_class): Call `java_mangle_decl' instead of 12762 `mangle_static_field.' 12763 (cxx_keywords): Initialized static array moved to `lex.c.' 12764 (layout_class_method): Changed leading comment. Simplified to 12765 call `java_mangle_decl.' Local `ptr' moved in for loop body. 12766 * decl.c (lang_mark_tree): Mark field `package_list.' 12767 * java-tree.h (TYPE_PACKAGE_LIST): New macro. 12768 (struct lang_type): New field `package_list.' 12769 (unicode_mangling_length): Prototype removed. 12770 (append_gpp_mangled_name, append_gpp_mangled_classtype, 12771 emit_unicode_mangled_name): Likewise. 12772 (cxx_keyword_p): New prototype. 12773 (java_mangle_decl, java_mangle_class_field, 12774 java_mangle_class_field_from_string, java_mangle_vtable): Likewise. 12775 * jcf-parse.c (jcf_parse_source): Constify `file' argument to 12776 `build_expr_wfl.' 12777 * jvgenmain.c (main_method_prefix): Global variable removed. 12778 (main_method_suffix): Likewise. 12779 (do_mangle_classname): New function. 12780 (main): Call it. Format changed to accommodate new mangling scheme. 12781 * lex.c: (utf8_cmp): Conditionally prototyped. 12782 (cxx_keywords): Moved from class.c, conditionally defined. 12783 (utf8_cmp, cxx_keyword_p): Likewise. 12784 * mangle.c (obstack.h, ggc.h): Included. 12785 (mangle_field_decl): New function. 12786 (mangle_method_decl, mangle_type, mangle_pointer_type, 12787 mangle_array_type, mangle_record_type, 12788 find_compression_pointer_match, find_compression_array_match, 12789 find_compression_record_match, 12790 find_compression_array_template_match, set_type_package_list, 12791 entry_match_pointer_p, emit_compression_string, init_mangling, 12792 finish_mangling, compression_table_add, mangle_member_name): Likewise. 12793 (mangle_obstack): New global. 12794 (MANGLE_RAW_STRING): New macro. 12795 (unicode_mangling_length): Turned static. 12796 (append_unicode_mangled_name): Renamed from 12797 `emit_unicode_mangled_name.' Turned static. `mangle_obstack' 12798 replaces `obstack', removed from the parameter list. 12799 (append_gpp_mangled_name): Turned static. `mangle_obstack' 12800 replaces parameter `obstack', removed from the parameter list. Call 12801 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name. 12802 (append_gpp_mangled_classtype): Removed. 12803 (compression_table, compression_next): New static variables. 12804 * parse.y (temporary_obstack): Extern declaration removed. 12805 128062001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 12807 12808 * parse.y (patch_binop): Compute missing type in error situations. 12809 128102001-01-05 Bryce McKinlay <bryce@albatross.co.nz> 12811 12812 * class.c (make_class_data): Push initial value for "arrayclass". 12813 * decl.c (init_decl_processing): Add new class field "arrayclass". 12814 128152001-01-05 Bryce McKinlay <bryce@albatross.co.nz> 12816 12817 From patha@softlab.ericsson.se: 12818 * parse.y (switch_label): Use build, not build1, to construct 12819 DEFAULT_EXPR. 12820 128212001-01-04 Neil Booth <neil@daikokuya.demon.co.uk> 12822 12823 * lang.c (lang_decode_option): Change -MA to -MP. 12824 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target): 12825 Update to new prototype; do quote targets. 12826 (jcf_dependency_write): Update. 12827 128282000-12-22 Bryce McKinlay <bryce@albatross.co.nz> 12829 12830 Shorten primitive array allocation path: 12831 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray 12832 to create new primitive arrays. 12833 * expr.c (build_newarray): If generating native code, call 12834 soft_newarray_node with a reference to the primitive TYPE identifier 12835 instead of type_value. 12836 128372000-12-17 Bryce McKinlay <bryce@albatross.co.nz> 12838 12839 Fix for PRs gcj/312 and gcj/253: 12840 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and 12841 dest if they arn't already. 12842 * class.c (layout_class): Call maybe_layout_super_class on 12843 superinterfaces also, but only if compiling from bytecode. 12844 12845 Fix for PR gcj/373: 12846 * parse.y (create_class): Set ACC_STATIC if class is declared in an 12847 interface. 12848 128492000-12-15 Tom Tromey <tromey@redhat.com> 12850 12851 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already 12852 set. 12853 128542000-12-14 Andrew Haley <aph@redhat.com> 12855 12856 * boehm.c (mark_reference_fields): Change test to correctly detect 12857 bitmap overflow. 12858 128592000-12-15 Andreas Jaeger <aj@suse.de> 12860 12861 * config-lang.in (lang_dirs): Added. 12862 128632000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com> 12864 12865 * parse.y (end_artificial_method_body): Fixed undefined behavior. 12866 Credits go to rth for finding it. 12867 128682000-12-13 Mike Stump <mrs@wrs.com> 12869 12870 * parse.y (check_static_final_variable_assignment_flag): Fix spelling. 12871 128722000-11-07 Tom Tromey <tromey@cygnus.com> 12873 12874 * Make-lang.in (JAVA_LEX_C): Added chartables.h. 12875 * lex.c (java_ignorable_control_p): Removed. 12876 (java_letter_or_digit_p): Removed. 12877 (java_start_char_p): New function. 12878 (java_read_char): Return `int', not `unicode_t'. Changed 12879 callers. 12880 (java_read_unicode): Likewise. 12881 (java_read_unicode_collapsing_terminators): Likewise. 12882 (java_get_unicode): Likewise. 12883 (java_new_lexer): Initialize hit_eof. 12884 (java_parse_end_comment): Take `int' argument. 12885 (java_parse_doc_section): Likewise. 12886 (java_parse_escape_sequence): Don't allow backlash-newline. 12887 Return `int'. 12888 * lex.h (JAVA_DIGIT_P): Removed. 12889 (_JAVA_LETTER_OR_DIGIT_P): Removed. 12890 (_JAVA_IDENTIFIER_IGNORABLE): Removed. 12891 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P. 12892 (JAVA_PART_CHAR_P): New macro. 12893 (UEOF): Now -1. 12894 (JAVA_CHAR_ERROR): Now -2. 12895 (java_lexer): New field `hit_eof'. 12896 * chartables.h: New file. 12897 * gen-table.pl: new file. 12898 128992000-11-20 Tom Tromey <tromey@cygnus.com> 12900 Alexandre Petit-Bianco <apbianco@cygnus.com> 12901 12902 * parse.y (java_complete_lhs): Only allow compound assignment of 12903 reference type if type is String. 12904 129052000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 12906 12907 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip. 12908 jcf-path.c: Likewise. 12909 129102000-12-09 Anthony Green <green@redhat.com> 12911 12912 * zipfile.h (ZipDirectory): Declare size, uncompressed_size, 12913 filestart and filename_length as int values. 12914 129152000-12-07 Mo DeJong <mdejong@redhat.com> 12916 12917 * jcf-io.c (find_class): Correct the logic that tests to see if a 12918 .java file is newer than its .class file. The compiler was 12919 incorrectly printing a warning when file mod times were equal. 12920 129212000-12-07 Zack Weinberg <zack@wolery.stanford.edu> 12922 12923 * jvgenmain.c: Use ISPRINT not isascii. 12924 129252000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com> 12926 12927 * parse.y (end_artificial_method_body): Fixed typo. 12928 129292000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com> 12930 12931 * parse.y (patch_method_invocation): Pick the correct enclosing 12932 context when creating inner class instances. 12933 Fixes gcj/332. 12934 129352000-11-26 Joseph S. Myers <jsm28@cam.ac.uk> 12936 12937 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version): 12938 Update copyright year to 2000. 12939 129402000-11-23 Anthony Green <green@redhat.com> 12941 12942 * jcf-parse.c (init_jcf_parse): Register current_file_list root. 12943 Move current_file_list out of yyparse and make it static. 12944 12945 * expr.c: Declare quick_stack and tree_list_free_list as static 12946 (init_expr_processing): Register quick_stack and 12947 tree_list_free_list roots. 12948 129492000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 12950 12951 * parse.y (build_outer_field_access): New local `decl_ctx', use 12952 it. Check for field's context and current class immediate outer 12953 context inheritance. 12954 (outer_field_access_p): Consider fields inherited from the last 12955 enclosing context. 12956 (build_access_to_thisn): Stop at the last enclosing context if 12957 necessary. 12958 Fixes gcj/367. 12959 129602000-11-23 J"orn Rennecke <amylaar@redhat.com> 12961 12962 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H). 12963 129642000-11-22 Bryce McKinlay <bryce@albatross.co.nz> 12965 12966 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the 12967 scratch buffer. 12968 129692000-11-20 Tom Tromey <tromey@cygnus.com> 12970 12971 * jv-scan.c (help): Document --complexity. 12972 (options): Added --complexity. 12973 (flag_complexity): New global. 12974 (main): Call `report'. 12975 * parse-scan.y (complexity): New global. 12976 (if_then_statement, if_then_else_statement, 12977 if_then_else_statement_nsi, switch_block_statement_group, 12978 while_expression, do_statement, for_begin, continue_statement, 12979 throw_statement, catch_clause, finally, method_invocation, 12980 conditional_and_expression, conditional_or_expression, 12981 conditional_expression): Update complexity. 12982 (reset_report): Reset complexity. 12983 (report): New function. 12984 129852000-11-20 Tom Tromey <tromey@cygnus.com> 12986 12987 * lex.c (yylex): Added STRICT_TK case. 12988 * parse.y (STRICT_TK): Added. 12989 * parse-scan.y (STRICT_TK): Added. 12990 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and 12991 `;'. Use 4, not 3, with -k option. Correctly rename resulting 12992 file. 12993 * keyword.h: Rebuilt. 12994 * keyword.gperf (strictfp): Added. 12995 129962000-11-20 Tom Tromey <tromey@cygnus.com> 12997 12998 * lex.c (yylex): Recognize floating point constants with leading 12999 0. 13000 130012000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13002 13003 * java-tree.h (cyclic_inheritance_report): Constify. 13004 * parse.y (cyclic_inheritance_report): Likewise. 13005 130062000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 13007 13008 * parse.y (goal): Remove call to ggc_add_string_root. 13009 130102000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 13011 13012 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste): 13013 Create string in scratch buffer, then pass to build_string. 13014 130152000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 13016 13017 * parse.y (issue_warning_error_from_context): Add 13018 ATTRIBUTE_PRINTF. 13019 130202000-11-11 Anthony Green <green@redhat.com> 13021 13022 * jcf-parse.c (process_zip_dir): Add finput parameter. 13023 (jcf_figure_file_type): Call process_zip_dir with appropriate 13024 argument. 13025 130262000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13027 13028 * decl.c (copy_lang_decl): Use memcpy, not bcopy. 13029 * jcf-parse.c (jcf_figure_file_type): Likewise. 13030 130312000-11-09 Joseph S. Myers <jsm28@cam.ac.uk> 13032 13033 * parse.y (create_new_parser_context): Use memset () instead of 13034 bzero (). 13035 130362000-11-08 Tom Tromey <tromey@cygnus.com> 13037 13038 * gjavah.c (process_file): Only include gcj/cni.h when generating 13039 CNI stubs. 13040 130412000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 13042 13043 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c 13044 (init_outgoing_cpool), lex.c (java_init_lex): Use memset () 13045 instead of bzero (). 13046 130472000-11-05 Tom Tromey <tromey@cygnus.com> 13048 13049 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix. 13050 * lex.c (IS_ZERO): New define. 13051 (java_perform_atof): Error on floating point underflow. 13052 130532000-11-04 Tom Tromey <tromey@cygnus.com> 13054 13055 * lex.c (java_parse_escape_sequence): Only read two octal 13056 characters if the first one is greater than 3. Don't allow 13057 "octal" numbers to include the digits 8 or 9. 13058 130592000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 13060 13061 * Make-lang.in (java.distdir): Remove. 13062 130632000-11-03 Tom Tromey <tromey@cygnus.com> 13064 13065 * Make-lang.in (java.dvi): New target. 13066 Partial fix for PR other/567. 13067 13068 * lang-options.h: Mention -Wout-of-date. 13069 * jcf-dump.c (flag_newer): New global. 13070 * gjavah.c (flag_newer): New global. 13071 * jcf-io.c (find_class): Only warn when flag_newer set. 13072 * lang.c (flag_newer): New global. 13073 (struct string_option): New declaration. 13074 (lang_W_options): New global. 13075 (process_option_with_no): New function. 13076 (lang_decode_option): Use it. 13077 13078 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s. 13079 * gjavah.c (cxx_keyword_subst): Handle any number of trailing 13080 `$'. 13081 13082 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro. 13083 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p. 13084 * lex.c (java_read_unicode): Removed `term_context' argument. 13085 Recognize any number of `u' in `\u'. 13086 (java_read_unicode_collapsing_terminators): New function. 13087 (java_get_unicode): Use it. 13088 (java_lineterminator): Removed. 13089 (yylex): Produce error if character literal is newline or single 13090 quote. Return if eof found in middle of `//' comment. EOF in 13091 `//' comment is only an error if pedantic. 13092 (java_ignorable_control_p): New function. 13093 (java_parse_end_comment): Return if eof found in middle of 13094 comment. 13095 Include flags.h. 13096 * jv-scan.c (pedantic): New global. 13097 130982000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com> 13099 13100 * parse.y (outer_field_access_p): Inherited fields aren't 13101 consider outer fields. 13102 (maybe_build_thisn_access_method): Use 13103 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P. 13104 (resolve_expression_name): Trigger an error if a static field 13105 is being accessed as an outer field. 13106 131072000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 13108 13109 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'. 13110 Fixes gcj/365. 13111 131122000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 13113 13114 * Make-lang.in: Move all build rules here from Makefile.in, 13115 adapt to new context. Wrap all rules that change the current 13116 directory in parentheses. Expunge all references to $(P). 13117 When one command depends on another and they're run all at 13118 once, use && to separate them, not ;. Add OUTPUT_OPTION to 13119 all object-file generation rules. Delete obsolete variables. 13120 13121 * Makefile.in: Delete. 13122 * config-lang.in: Delete outputs= line. 13123 131242000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 13125 13126 * parse.y (patch_method_invocation): NULLify this_arg when already 13127 inserted. 13128 (maybe_use_access_method): Handle call to methods unrelated to the 13129 current class. Fixed comment. 13130 Fixes gcj/361. 13131 131322000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 13133 13134 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in 13135 scope. 13136 131372000-10-24 Tom Tromey <tromey@cygnus.com> 13138 13139 * lex.c (java_new_lexer): Initialize new fields. Work around 13140 broken iconv() implementations. 13141 (java_read_char): Swap bytes if required. Use fallback decoder if 13142 required. 13143 (byteswap_init, need_byteswap): New globals. 13144 (java_destroy_lexer): Only close iconv handle if it is in use. 13145 * lex.h (java_lexer): New fields read_anything, byte_swap, 13146 use_fallback. 13147 Made out_buffer unsigned. 13148 131492000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 13150 13151 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case 13152 where an enclosing context can be set on the jdep. 13153 (do_resolve_class): Fixed identation. 13154 131552000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13156 13157 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define 13158 13159 * jcf-reader.c (peek_attribute, skip_attribute): Only define 13160 when requested. 13161 13162 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN. 13163 13164 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void. 13165 131662000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com> 13167 13168 * jcf-write.c (OP1): Update `last_bc'. 13169 (struct jcf_block): Fixed indentation and typo in comments. New 13170 field `last_bc'. 13171 (generate_bytecode_insns): Insert `nop' if `jsr' immediately 13172 follows `monitorenter'. 13173 * parse.y (patch_synchronized_statement): New local `tmp'. Call 13174 `patch_string'. 13175 Fixes gcj/232. 13176 131772000-10-16 Tom Tromey <tromey@cygnus.com> 13178 13179 * jvspec.c (lang_specific_driver): Recognize -MF and -MT. 13180 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}. 13181 * lang-options.h: Added -MA, -MT, -MF.. 13182 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF. 13183 (DEPEND_TARGET_SET): New macro. 13184 (DEPEND_FILE_ALREADY_SET): Likewise. 13185 (init_parse): Handle new flags. 13186 * jcf.h (jcf_dependency_print_dummies): Declare. 13187 * Make-lang.in (s-java): Added mkdeps.o. 13188 * Makefile.in (BACKEND): Added mkdeps.o. 13189 (../gcjh$(exeext)): Added mkdeps.o. 13190 (../jcf-dump$(exeext)): Added mkdeps.o. 13191 * jcf-depend.c: Include mkdeps.h. 13192 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS, 13193 add_entry): Removed. 13194 (jcf_dependency_reset): Rewrote. 13195 (dependencies): New global. 13196 (jcf_dependency_set_target): Rewrote. 13197 (jcf_dependency_add_target): Likewise. 13198 (jcf_dependency_add_file): Likewise. 13199 (munge): Removed. 13200 (print_ents): Removed. 13201 (jcf_dependency_write): Rewrote. 13202 (print_dummies): New global. 13203 (jcf_dependency_print_dummies): New function 13204 (jcf_dependency_write): Call deps_dummy_targets if required. 13205 132062000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com> 13207 13208 * gjavah.c (add_class_decl): Removed unused variables `tname', 13209 `tlen' and `name_index'. 13210 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro. 13211 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME 13212 in `wfl_operator' with value. 13213 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE. 13214 (jcf_figure_file_type): Fixed identation. 13215 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement. 13216 * parse.y (analyze_clinit_body): New function. 13217 (static_initializer:): Reset `current_static_block'. 13218 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in 13219 `wfl_operator' with new value. 13220 (lookup_cl): Use EXPR_WFL_FILENAME. 13221 (maybe_yank_clinit): Handle bogus <clinit> bodies, call 13222 analyze_clinit_body. 13223 (build_outer_field_access): Access to this$<n> built from 13224 current_class, not its outer context. 13225 (build_access_to_thisn): Fixed leading comment. Tidied things up. 13226 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'. 13227 (patch_method_invocation): Use `is_static_flag' when already 13228 initialized. 13229 (patch_newarray): Removed assignment in ternary operator. 13230 132312000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 13232 13233 * except.c (free_eh_ranges): Don't free `whole_range'. 13234 132352000-10-15 Anthony Green <green@redhat.com> 13236 13237 * decl.c (init_decl_processing): Call init_class_processing before 13238 anything else. 13239 132402000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 13241 13242 * check-init.c (check_init): Fixed leading comment. Use 13243 LOCAL_FINAL_P. 13244 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC. 13245 (give_name_to_locals): Likewise. 13246 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl' 13247 fields in lang_decl_var. 13248 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR, 13249 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros. 13250 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten. 13251 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC, 13252 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros. 13253 (LOCAL_FINAL): Rewritten. 13254 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P 13255 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros. 13256 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and 13257 `init_final' fields. 13258 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl', 13259 `final_uid', `final_liic', `final_ierr' and `local_final' fields. 13260 (TYPE_HAS_FINAL_VARIABLE): New macro. 13261 (struct lang_type): Added `afv' field. 13262 * parse.y (check_static_final_variable_assignment_flag): New function. 13263 (reset_static_final_variable_assignment_flag): Likewise. 13264 (check_final_variable_local_assignment_flag): Likewise. 13265 (reset_final_variable_local_assignment_flag): Likewise. 13266 (check_final_variable_indirect_assignment): Likewise. 13267 (check_final_variable_global_assignment_flag): Likewise. 13268 (add_inner_class_fields): Use LOCAL_FINAL_P. 13269 (register_fields): Handle local finals and final variables. 13270 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR. 13271 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC. 13272 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC 13273 on local finals. 13274 (java_complete_expand_methods): Loop to set 13275 TYPE_HAS_FINAL_VARIABLE. Call 13276 `reset_final_variable_local_assignment_flag' and 13277 `check_final_variable_local_assignment_flag' accordingly before 13278 and after constructor expansion. Call 13279 `reset_static_final_variable_assignment_flag' 13280 before expanding <clinit> and after call 13281 `check_static_final_variable_assignment_flag' if the 13282 current_class isn't an interface. After all methods have been 13283 expanded, call `check_final_variable_global_assignment_flag' and 13284 `check_static_final_variable_assignment_flag' if the current class 13285 is an interface. 13286 (maybe_yank_clinit): Fixed typo in comment. 13287 (build_outer_field_access_methods): Removed old sanity check. Use 13288 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC. 13289 Don't create access methods for finals. 13290 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'. 13291 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if 13292 existing DECL_INIT has been processed. 13293 (java_complete_lhs): Likewise. 13294 (check_final_assignment): Filter input on `lvalue''s TREE_CODE. 13295 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new 13296 logic. 13297 (patch_assignment): Use LOCAL_FINAL_P. 13298 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if 13299 DECL_INITIAL is nullified. 13300 Fixes gcj/163. 13301 133022000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13303 13304 * Make-lang.in (parse.c, parse-scan.c): Create atomically. 13305 13306 * Makefile.in (parse.c, parse-scan.c): Likewise. 13307 133082000-10-12 Mark Mitchell <mark@codesourcery.com> 13309 13310 * class.c (temporary_obstack): Remove. 13311 (make_class): Don't mess with obstascks. 13312 (push_class): Likewise. 13313 (set_super_info): Likewise. 13314 (add_method_1): Likewise. 13315 (add_method): Likewise. 13316 (add_field): Likewise. 13317 (build_utf8_ref): Likewise. 13318 (build_class_ref): Likewise. 13319 (build_static_field_ref): Likewise. 13320 (finish_class): Likewise. 13321 (push_super_field): Likewise. 13322 (layout_class): Likewise. 13323 (layout_class_methods): Likewise. 13324 (init_class_processing): Likewise. 13325 * constants.c (get_tag_node): Likewise. 13326 (build_constant_data_ref): Likewise. 13327 * decl.c (ggc_p): Remove. 13328 (copy_lang_decl): Use ggc_alloc. 13329 (complete_start_java_method): Don't mess with obstacks. 13330 (start_java_method): Likewise. 13331 (end_java_method): Likewise. 13332 * except.c (link_handler): Use xmalloc. 13333 (free_eh_ranges): New function. 13334 (method_init_exceptions): Use it. 13335 (add_handler): Use xmalloc. 13336 (expand_start_java_handler): Don't mess with obstacks. 13337 (prepare_eh_table_type): Likewise. 13338 (expand_end_java_handler): Likewise. 13339 * expr.c (push_value): Likewise. 13340 (create_label_decl): Likewise. 13341 (build_jni_stub): Likewise. 13342 (java_lang_expand_expr): Likewise. 13343 (note_instructions): Use xrealloc. 13344 (java_push_constant_from_pool): Don't mess with obstacks. 13345 (process_jvm_instruction): Likewise. 13346 * java-tree.h (cyclic_inheritance_report): Remove duplicate 13347 declaration. 13348 * jcf-parse.c (get_constant): Don't mess with obstacks. 13349 (read_class): Likewise. 13350 (jcf_parse): Likewise. 13351 * lex.c (expression_obstack): Remove. 13352 (java_lex): Don't use obstack_free. 13353 * parse.h (exit_java_complete_class): Don't mess with obstacks. 13354 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust. 13355 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise. 13356 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise. 13357 * parse.y (gaol): Add more GC roots. 13358 (add_inner_class_fields): Adjust calls to MANGLE_* macros. 13359 (lookup_field_wrapper): Likewise. 13360 (obtain_incomplete_type): Don't mess with obstacks. 13361 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_* 13362 macros. 13363 (craft_constructor): Don't mess with obstacks. 13364 (safe_layout_class): Likewise. 13365 (java_complete_class): Likewise. 13366 (source_end_java_method): Likewise. 13367 (build_outer_field_access_methods): Likewise. 13368 (build_outer_method_access_method): Likewise. 13369 (maybe_build_thisn_access_method): Likewise. 13370 (build_dot_class_method_invocation): Likewise. 13371 (java_complete_tree): Likewise. 13372 (java_complete_lhs): Likewise. 13373 (do_merge_string_cste): Likewise. 13374 (patch_string_cst): Likewise. 13375 (array_constructor_check_entry): Likewise. 13376 * typeck.c (build_java_array_type): Likewise. 13377 (parse_signature_string): Likewise. 13378 (build_java_signature): Likewise. 13379 133802000-10-12 Tom Tromey <tromey@cygnus.com> 13381 13382 Fix for PR gcj/356: 13383 * gjavah.c (add_class_decl): Don't special-case inner classes. 13384 (add_namelet): Likewise. 13385 133862000-10-11 Rodney Brown <RodneyBrown@mynd.com> 13387 13388 * java-tree.h: Constify current_encoding. 13389 * lang.c: Constify current_encoding. 13390 133912000-10-10 Jeff Sturm <jeff.sturm@appnet.com> 13392 13393 * jvgenmain.c (class_mangling_suffix): Omit `.'. 13394 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'. 13395 133962000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 13397 13398 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's 13399 patch. Fixes gcj/340. 13400 134012000-10-10 Tom Tromey <tromey@cygnus.com> 13402 13403 * lex.c (java_new_lexer): Initialize out_first and out_last 13404 fields. 13405 * lex.h (java_lexer): Added out_buffer, out_first, out_last. 13406 134072000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 13408 13409 * parse.y (pop_current_osb): New function. 13410 (array_type:): Use `dims:', changed actions 13411 accordingly. Suggested by Anthony Green. 13412 (array_creation_expression:): Used pop_current_osb. 13413 (cast_expression:): Likewise. 13414 (search_applicable_method_list): Fixed indentation. 13415 134162000-10-08 Anthony Green <green@redhat.com> 13417 13418 * parse.y (array_type_literal): Remove production. 13419 (type_literals): Refer to array_type, not array_type_literal. 13420 134212000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 13422 13423 Patch contributed by Corey Minyard. 13424 * decl.c (check_local_named_variable): New function. 13425 (tree check_local_unnamed_variable): Likewise. 13426 (find_local_variable): Splitted. Call check_local_{un}named_variable. 13427 134282000-10-07 Anthony Green <green@redhat.com> 13429 13430 * class.c (layout_class): Handle case where superclass can't be 13431 layed out yet. 13432 134332000-10-07 Joseph S. Myers <jsm28@cam.ac.uk> 13434 13435 * Makefile.in (keyword.h): Refer to GNU FTP site for updated 13436 gperf. 13437 134382000-10-05 Tom Tromey <tromey@cygnus.com> 13439 13440 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'. 13441 * jvgenmain.c (class_mangling_prefix): Removed. 13442 (class_mangling_suffix): New global. 13443 (main): Use it. 13444 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending 13445 `$'. 13446 (print_method_info): Handle overrides for static and final 13447 methods. 13448 (process_file): Generate declaration for class object field. 13449 * class.c (cxx_keywords): New array. 13450 (utf8_cmp): New function. 13451 (cxx_keyword_p): New function. 13452 (layout_class_method): Mangle C++ keywords by appending `$'. 13453 (mangle_field): New function. 13454 (mangle_class_field): Use mangle_field. Mangle class name as 13455 `class$'. 13456 (mangle_static_field): Use mangle_field. 13457 134582000-10-03 Alexandre Petit-Bianco <apbianco@cygnus.com> 13459 13460 * decl.c (find_local_variable): Removed uncessary type check and 13461 fixed range check typo. From Corey Minyard. 13462 134632000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 13464 13465 * decl.c (give_name_to_locals): New local `code_offset'. Call 13466 `maybe_adjust_start_pc'. 13467 * expr.c (note_instructions): New function. 13468 (expand_byte_code): Don't collect insn starts here. 13469 (peek_opcode_at_pc): New function. 13470 (maybe_adjust_start_pc): Likewise. 13471 * java-tree.h (maybe_adjust_start_pc): Declare. 13472 (note_instructions): Likewise. 13473 * jcf-parse.c (parse_class_file): Call `note_instructions'. 13474 134752000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 13476 13477 * parse.y (field_access:): Fixed indentation. 13478 (qualify_ambiguous_name): Properly qualify `this.a[b].c'. 13479 134802000-09-07 Tom Tromey <tromey@cygnus.com> 13481 13482 Fix for PR gcj/307: 13483 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not 13484 JPRIMITIVE_TYPE_P, for arithmetic operators. 13485 (patch_method_invocation): Indentation fix. 13486 (try_builtin_assignconv): Handle boolean specially. Fixed typo. 13487 (valid_builtin_assignconv_identity_widening_p): Handle boolean. 13488 (do_unary_numeric_promotion): Cleaned up code. 13489 (valid_cast_to_p): Handle boolean correctly. 13490 134912000-09-27 Tom Tromey <tromey@cygnus.com> 13492 13493 * lex.c (java_read_unicode): Reset bs_count when finished with 13494 `\u' sequence. 13495 134962000-10-01 Mark Mitchell <mark@codesourcery.com> 13497 13498 Convert to GC. 13499 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o. 13500 * Makefile.in (BACKEND): Don't include ggc-callbacks.o. 13501 (typeck.o): Depend on ggc.h. 13502 * class.c (add_method_1): Use GC functions for allocation. 13503 (init_class_processing): Register roots. 13504 * decl.c (ggc_p): Set to 1. 13505 (pending_local_decls): Make it static. 13506 (push_jvm_slot): Use GC functions for allocation. 13507 (init_decl_processing): Register roots. 13508 (give_name_to_locals): Use GC functions for allocation. 13509 (lang_mark_tree): New function. 13510 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC 13511 functions for allocation. 13512 * jcf-parse.c (jcf_parse_source): Use ggc_strdup. 13513 * lex.c (java_lex): Use build_string, rather than replicating it 13514 inline. 13515 * parse.y (goal): Add more roots. 13516 (mark_parser_ctxt): New function. 13517 * typeck.c: Include ggc.h. 13518 135192000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 13520 13521 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body 13522 contains something else than MODIFY_EXPR. 13523 135242000-09-23 Mark Mitchell <mark@codesourcery.com> 13525 13526 * Make-lang.in (JAVA_SRCS): Include java-tree.h. 13527 * Makefile.in (parse.o): Depend on ggc.h. 13528 (class.o): Likewise. 13529 (constants.o): Likewise. 13530 (decl.o): Likewise. 13531 (expr.o): Likewise. 13532 (jcf-parse.o): Likewise. 13533 (jcf-write.o): Likewise. 13534 (mangle.o): Likewise. 13535 * class.c: Include ggc.h. 13536 (build_static_field_ref): Register GC roots. 13537 (layout_class): Likewise. 13538 (init_class_processing): Likewise. 13539 * constants.c: Include ggc.h. 13540 (current_constant_pool_data_ref): Remove. 13541 (tag_nodes): Move it to ... 13542 (get_tag_node): ... here. Register GC roots. 13543 * decl.c: Include ggc.h. Remove many global tree definitions. 13544 (throw_node): Define. 13545 (java_global_trees): Likewise. 13546 (predef_filenames): Make the size a constant. 13547 (init_decl_processing): Adjust accordingly. 13548 (init_decl_processing): Call init_jcf_parse. Register GC roots. 13549 * expr.c: Include ggc.h. 13550 (init_expr_processing): Register GC roots. 13551 (build_invokeinterface): Likewise. 13552 * java-tree.h: Replace extern tree declarations with macros. 13553 (java_global_trees): New variable. 13554 (java_tree_index): New enumeration. 13555 (init_jcf_parse): Declare. 13556 * jcf-parse.c: Include ggc.h. 13557 (current_class): Remove declaration. 13558 (main_class): Likewise. 13559 (all_class_list): Likewise. 13560 (predefined_filename_p): Adjust for constant size of 13561 predef_filenames. 13562 (init_jcf_parse): New function. 13563 * jcf-write.c: Include ggc.h. 13564 (generate_classfile): Register GC roots. 13565 (append_synthetic_attribute): Likewise. 13566 (append_innerclass_attribute_entry): Likewise. 13567 * lang.c: Include ggc.h. 13568 (lang_print_error): Register GC roots. 13569 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts 13570 with macros. 13571 * parse.y: Include ggc.h. 13572 (wfl_operator): Remove. 13573 (goal): Register GC roots. 13574 (java_pop_parser_context): Adjust for new field names. 13575 (java_parser_context_save_global): Likewse. 13576 (java_parser_context_restore_global): Likewise. 13577 (java_parser_context_suspend): Likewise. 13578 (java_parser_context_resume): Likewise. 13579 (verify_constructor_circularity): Register GC roots. 13580 (lookup_cl): Likewise. 13581 (java_reorder_fields): Likewise. 13582 (build_current_this): Likewise. 13583 (class_in_current_package): Likewise. 13584 (argument_types_convertible): Likewise. 13585 (patch_cast): Rename wfl_op parameter to avoid macro conflicts. 13586 135872000-09-14 Tom Tromey <tromey@cygnus.com> 13588 13589 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV. 13590 135912000-09-13 Tom Tromey <tromey@cygnus.com> 13592 13593 * jcf-parse.c: Include <locale.h>. 13594 * jv-scan.c: Include <locale.h>. 13595 135962000-09-12 Tom Tromey <tromey@cygnus.com> 13597 13598 * expr.c (pop_type_0): Return `Object' if trying to merge two 13599 interface types. 13600 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for 13601 interface types; `Object' is always a valid supertype. 13602 136032000-09-12 Tom Tromey <tromey@cygnus.com> 13604 13605 Fix for PR gcj/33: 13606 * jv-scan.c (help): Document --encoding. 13607 (options): Added `encoding' entry. 13608 (OPT_ENCODING): New define. 13609 (main): Handle --encoding. 13610 Include <langinfo.h> if nl_langinfo exists. 13611 * lang-options.h: Document --classpath, --CLASSPATH, --main, and 13612 --encoding. 13613 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo. 13614 (parse_source_file): Correctly call java_init_lex. Added `finput' 13615 argument. Use nl_langinfo to determine default encoding. 13616 * java-tree.h (current_encoding): Declare. 13617 * parse.y (java_parser_context_restore_global): Don't restore 13618 `finput'. 13619 (java_parser_context_save_global): Don't set `finput' field. 13620 (java_pop_parser_context): Don't restore `finput'. Free old lexer 13621 if required. 13622 * lang.c (current_encoding): New global. 13623 (lang_decode_option): Recognize `-fencoding='. 13624 (finish_parse): Don't close finput. 13625 * parse.h (struct parser_ctxt): Removed `finput' and 13626 `unget_utf8_value' fields. Added `lexer' field. 13627 (java_init_lex): Fixed declaration. 13628 * lex.c (java_new_lexer): New function. 13629 (java_destroy_lexer): Likewise. 13630 (java_read_char): Added `lex' argument. Handle iconv case. 13631 (java_read_unicode): Added `lex' argument. Count backslashes in 13632 lexer structure. 13633 (java_init_lex): Added `finput' and `encoding' arguments. Set 13634 `lexer' field in ctxp. 13635 (BAD_UTF8_VALUE): Removed. 13636 (java_lex): Handle seeing UEOF in the middle of a string literal. 13637 * lex.h: Include <iconv.h> if HAVE_ICONV defined. 13638 (java_lexer): New structure. 13639 (UNGETC): Removed. 13640 (GETC): Removed. 13641 (DEFAULT_ENCODING): New define. 13642 (java_destroy_lexer): Declare. 13643 136442000-09-12 Tom Tromey <tromey@cygnus.com> 13645 13646 Fix for PR gcj/343: 13647 * lex.c (java_init_lex): Initialize java_io_serializable. 13648 * parse.y (java_io_serializable): New global. 13649 (valid_ref_assignconv_cast_p): An array can be cast to 13650 serializable. 13651 136522000-09-10 Zack Weinberg <zack@wolery.cumb.org> 13653 13654 * decl.c, expr.c: Include defaults.h if not already included. 13655 Don't define the *_TYPE_SIZE macros. 13656 136572000-09-09 Geoffrey Keating <geoffk@cygnus.com> 13658 13659 * typeck.c (build_java_array_type): Correct first parameter 13660 in ADJUST_FIELD_ALIGN invocation. 13661 136622000-09-06 Tom Tromey <tromey@cygnus.com> 13663 13664 * lang-specs.h: Also recognize `-femit-class-files'. 13665 136662000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 13667 13668 * verify.c (merge_types): Load the types to merge if necessary. 13669 136702000-09-02 Anthony Green <green@redhat.com> 13671 13672 * jcf-io.c: Include zlib.h. 13673 (open_in_zip): Read compressed class file archives. 13674 * zipfile.h (ZipDirectory): Add uncompressed_size and 13675 compression_method fields. 13676 * zextract.c (read_zip_archive): Collect file compression info. 13677 136782000-08-15 Bryce McKinlay <bryce@albatross.co.nz> 13679 13680 * parse.y (do_resolve_class): Also explore superclasses of 13681 intermediate enclosing contexts when searching for inner classes. 13682 136832000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 13684 13685 * parse.y (variable_declarator_id:): Better error message. 13686 (expression_statement:): Use YYNOT_TWICE. 13687 (cast_expression:): Likewise. 13688 (assignment:): Likewise. 13689 136902000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 13691 13692 * parse.y (do_merge_string_cste): New locals. Create new 13693 STRING_CSTs each time, use memcpy. Fixes gcj/311. 13694 136952000-08-07 Hans Boehm <boehm@acm.org> 13696 13697 * boehm.c (mark_reference_fields): Set marking bits for all words in 13698 a multiple-word record. 13699 (get_boehm_type_descriptor): Use the procedure marking descriptor for 13700 java.lang.Class. 13701 137022000-08-31 Mike Stump <mrs@wrs.com> 13703 13704 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext), 13705 jcf-dump$(exeext)): Make parallel safe. 13706 137072000-08-29 Zack Weinberg <zack@wolery.cumb.org> 13708 13709 * jcf-parse.c (set_source_filename): Constify a char *. 13710 * jcf-write.c (append_innerclasses_attribute, 13711 make_class_file_name): Constify a char *. Don't recycle a 13712 variable for an unrelated purpose. 13713 * parse.y: (build_alias_initializer_parameter_list): Constify a char *. 13714 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings. 13715 137162000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 13717 13718 * expr.c (can_widen_reference_to): Fixed indentation. 13719 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment. 13720 * parse.y: `finit$' replaces `$finit$' in comments. 13721 (try_builtin_assignconv): Fixed leading comment. 13722 137232000-08-25 Greg McGary <greg@mcgary.org> 13724 13725 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE. 13726 137272000-08-24 Greg McGary <greg@mcgary.org> 13728 13729 * lang.c (lang_decode_option): Use ARRAY_SIZE. 13730 * parse.y (BINOP_LOOKUP): Likewise. 13731 137322000-08-22 Andrew Haley <aph@cygnus.com> 13733 13734 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before 13735 sign extending. Fixes gcj/321. 13736 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before 13737 combining to make a jlong. Fixes gcj/321. 13738 137392000-08-21 Nix <nix@esperi.demon.co.uk> 13740 13741 * lang-specs.h: Do not process -o or run the assembler if 13742 -fsyntax-only. 13743 137442000-08-16 Andrew Haley <aph@cygnus.com> 13745 13746 * typeck.c (build_java_array_type): Rewrite code to do array 13747 alignment. Take into account back-end macros when aligning array 13748 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the 13749 user to set alignment. Fixes gcj/252 and 160. 13750 137512000-08-09 Tom Tromey <tromey@cygnus.com> 13752 13753 * parse.y (check_abstract_method_definitions): Now return `int'. 13754 Check implemented interfaces. Fixes PR gcj/305. 13755 13756 * parse.y (patch_switch_statement): Disallow `long' in switch 13757 expressions. Fixes PR gcj/310. 13758 137592000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com> 13760 13761 * decl.c (finit_leg_identifier_node): New global. 13762 (init_decl_processing): Use `finit$' to initialize 13763 finit_identifier_node. Use `$finit$' to initialize 13764 finit_leg_identifier_node. 13765 * expr.c (expand_java_field_op): Use ID_FINIT_P. 13766 * java-tree.h (finit_identifier_node): Changed attached comment. 13767 (finit_leg_identifier_node): New declaration. 13768 (ID_FINIT_P): Take finit_identifier_node and 13769 finit_leg_identifier_node into account. This is a backward 13770 compatibility hack. 13771 137722000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 13773 13774 * jcf-write.c (generate_bytecode_conditional): Re-installed lost 13775 Jan 6 2000 patch. 13776 (generate_bytecode_insns): Check `nargs' before emitting it. 13777 * verify.c (merge_type_state): Fixed typo. 13778 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning 13779 generate_bytecode_{conditional,insns}. 13780 137812000-08-13 Anthony Green <green@redhat.com> 13782 13783 * check-init.c (check_init): Add case for BIT_FIELD_REF (required 13784 for -pg builds). 13785 137862000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 13787 13788 * class.c (maybe_layout_super_class): Fixed indentation. 13789 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro. 13790 (java_check_methods): New function declaration. 13791 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str' 13792 instead of `str_ptr'. 13793 * jcf-write.c (generate_bytecode_insns): Emit number the of args 13794 of a `invokeinterface' at the right time. 13795 * parse.h (WFL_STRIP_BRACKET): New macro. 13796 (SET_TYPE_FOR_RESOLUTION): Use it. 13797 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'. 13798 (check_class_interface_creation): Don't check for cross package 13799 innerclass name clashes. 13800 (method_header): Behave properly if MDECL is `error_mark_node'. 13801 (method_declarator): Return `error_mark_node' if bogus current 13802 class. 13803 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary. 13804 (resolve_and_layout): New local `decl_type', set and used. Call 13805 java_check_methods. 13806 (java_check_methods): New method. 13807 (java_layout_classes): Use it. 13808 (resolve_qualified_expression_name): No EH check necessary in 13809 access$<n>. 13810 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating 13811 `case' statement. 13812 (patch_assignment): Set DECL_INITIAL on integral final local. 13813 138142000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com> 13815 13816 * java-tree.h (flag_extraneous_semicolon): New extern. 13817 * lang-options.h: (-Wextraneous-semicolon): New option. 13818 * lang.c (flag_redundant): Fixed typo in leading comment. 13819 (flag_extraneous_semicolon): New global. 13820 (lang_decode_option): Set `flag_extraneous_semicolon' when 13821 -Wall. Decode `-Wextraneous-semicolon'. 13822 * parse.y (type_declaration:): Removed `SC_TK' hack, added 13823 `empty_statement' rule. 13824 (class_body_declaration): Likewise. 13825 (method_body:): Accept `;' as a method body. 13826 (static_initializer:): Removed `SC_TK' hack. 13827 (constructor_block_end:): Likewise. 13828 (empty_statement:): Report deprecated empty declaration. Fixes 13829 gcj/295 13830 138312000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 13832 13833 * parse.y (build_dot_class_method_invocation): Changed parameter 13834 name to `type'. Build signature from `type' and convert it to a 13835 STRING_CST if it's an array. 13836 (patch_incomplete_class_ref): `build_dot_class_method_invocation' 13837 to use `ref_type' directly. 13838 138392000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com> 13840 13841 * lang-options.h: Added a comma after the last element to avoid 13842 syntax errors when other languages define additional options. 13843 138442000-08-04 Zack Weinberg <zack@wolery.cumb.org> 13845 13846 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist. 13847 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS. 13848 (jc1): Link with $(BACKEND). 13849 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND). 13850 138512000-08-02 Zack Weinberg <zack@wolery.cumb.org> 13852 13853 * jvspec.c: Adjust type of second argument to 13854 lang_specific_driver, and update code as necessary. 13855 13856 * class.c (build_dtable_decl): Initialize dummy. 13857 138582000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 13859 13860 * parse.y (maybe_yank_clinit): When generating bytecode: non empty 13861 method bodies not to rule out discarding `<clinit>'; don't use 13862 <clinit> to initialize static fields with constant initializers. 13863 138642000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 13865 13866 * gjavah.c (print_method_info): Added `synth' parameter. Skip 13867 synthetic methods. 13868 (method_synthetic): New global. 13869 (HANDLE_METHOD): Recognize synthetic method and tell 13870 `print_method_info' about it. 13871 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're 13872 processing a synthetic method. 13873 * jcf-reader.c (skip_attribute): New function. 13874 ( skip_attribute): Likewise. 13875 138762000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 13877 13878 * parse.y (build_outer_field_access): Fixed comments. 13879 (fix_constructors): Emit the initialization of this$<n> before 13880 calling $finit$. 13881 (resolve_qualified_expression_name): Build an access to `decl' if 13882 necessary. 13883 138842000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com> 13885 13886 * parse-scan.y (curent_class): Non longer const. 13887 (inner_qualifier, inner_qualifier_length): Deleted. 13888 (current_class_length): New global. 13889 (bracket_count): Fixed typo in leading comment. 13890 (anonymous_count): New global. 13891 (class_instance_creation_expression:): Handle anonymous classes. 13892 (anonymous_class_creation:): New rule. 13893 (push_class_context): Rewritten. 13894 (pop_class_context): Likewise. 13895 (INNER_QUALIFIER): Macro deleted. 13896 (report_class_declaration): call `push_class_context' when 13897 entering the function. `fprintf' format modified not to use 13898 INNER_QUALIFIER. 13899 (report_class_declaration): Assign `package_name' and 13900 `current_class' to NULL separately. 13901 139022000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com> 13903 13904 * expr.c (build_invokeinterface): Call layout_class_methods on 13905 target interface. 13906 139072000-07-27 Tom Tromey <tromey@cygnus.com> 13908 Anthony Green <green@cygnus.com> 13909 Alexandre Petit-Bianco <apbianco@cygnus.com> 13910 13911 * class.c (make_class_data): Create vtable for abstract classes. 13912 (get_dispatch_table): Changed to cope with abstract classes. 13913 139142000-07-27 Tom Tromey <tromey@cygnus.com> 13915 13916 * parse.y (patch_method_invocation): Don't reverse the argument 13917 list when dealing with anonymous class constructors. Fixed typo in 13918 comment. 13919 139202000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 13921 13922 * parse.y (build_alias_initializer_parameter_list): Reverse 13923 crafted list when building aliases for anonymous class 13924 constructors. 13925 139262000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 13927 13928 * parse.y (jdep_resolve_class): Don't bother checking potential 13929 innerclass access if `decl' is NULL. 13930 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the 13931 WFL. 13932 139332000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 13934 13935 * parse.c: Remove (again.) 13936 139372000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 13938 13939 * parse.y (find_as_inner_class): Removed 2000-07-19 patches. 13940 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved 13941 outside the `if' statement, alias to innerclass removed, `decl' 13942 used to mark the class complete. 13943 139442000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com> 13945 13946 * parse.y (simple_name:): Fixed typo in error message. 13947 139482000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com> 13949 13950 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node 13951 or its first operand can be error marks. 13952 139532000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 13954 13955 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC. 13956 * parse.y (method_header): Likewise. 13957 139582000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 13959 13960 * parse.y (process_imports): Consider that one might be trying to 13961 import an innerclass. Fixes gcj/254 13962 139632000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 13964 13965 * parse.y (find_as_inner_class): Handle the case where the 13966 enclosing context of an innerclass has been loaded as bytecode. 13967 139682000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 13969 13970 * parse.y (simple_name:): Reject `$' in type names. 13971 (resolve_type_during_patch): Use `type' as a second 13972 argument to resolve_no_layout. Fixes gcj/257. 13973 139742000-07-18 Bryce McKinlay <bryce@albatross.co.nz> 13975 13976 * parse.y (find_most_specific_methods_list): Select the only 13977 non-abstract method even if max has been set. 13978 Fixes gcj/285, gcj/298. 13979 139802000-07-18 Jeff Sturm <jeff.sturm@appnet.com> 13981 13982 * lang-specs.h: Added %(jc1) to java compiler options. 13983 139842000-07-14 Zack Weinberg <zack@wolery.cumb.org> 13985 13986 * .cvsignore: New file. 13987 139882000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 13989 13990 * parse.y (not_accessible_p): Access granted to innerclasses 13991 (indirectly) extending the reference type. Fixes gcj/249. 13992 139932000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 13994 13995 * parse.y (patch_method_invocation): Fixed comment. 13996 (maybe_use_access_method): Build this$<n>s to the context of the 13997 target method, or a type that extends it. Fixes gcj/242. 13998 139992000-07-13 Mark Mitchell <mark@codesourcery.com> 14000 14001 * parse.c: Remove. 14002 140032000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 14004 14005 * parse.y (fold_constant_for_init): Avoid bullish conversion. 14006 140072000-07-13 Tom Tromey <tromey@cygnus.com> 14008 14009 * lang-specs.h: Added %{I*}. 14010 140112000-07-13 Zack Weinberg <zack@wolery.cumb.org> 14012 14013 * lang-specs.h: Use the new named specs. Remove unnecessary braces. 14014 140152000-07-12 Mark Mitchell <mark@codesourcery.com> 14016 14017 * parse-scan.c: Remove. 14018 140192000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 14020 14021 * class.c (set_super_info): Handled protected inner classes. 14022 (common_enclosing_context_p): Bail early if arguments aren't both 14023 inner classes. 14024 (get_access_flags_from_decl): Handle private and protected inner 14025 classes. 14026 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro. 14027 (CLASS_PROTECTED): Likewise. 14028 (struct lang_type): New bitfield `poic'. 14029 * parse.y (jdep_resolve_class): Call check_inner_class_access on 14030 inner classes only. 14031 (check_inner_class_access): Renamed arguments, added 14032 comments. Handles protected inner classes (fixes gcj/225) 14033 (not_accessible_p): Fixed comments. Avoid handling inner classes. 14034 140352000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 14036 14037 * parse.y (resolve_qualified_expression_name): Verify qualified 14038 access to `this'. Fixes gcj/239. 14039 140402000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 14041 14042 * jcf-write.c (generate_classfile): Don't install ConstantValue 14043 for null pointers. 14044 140452000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 14046 14047 * parse.y (resolve_qualified_expression_name): Handle inner class 14048 access. Fixes gcj/256. 14049 140502000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 14051 14052 * jcf-write.c (generate_classfile): Properly install the 14053 ConstantValue attribute and the initial value constant pool index 14054 on string constants. 14055 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting 14056 class files. 14057 140582000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com> 14059 14060 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while 14061 construct. 14062 * parse.y (find_as_inner_class): Fixed typo. 14063 (do_resolve_class): Explore enclosing contexts when searching for 14064 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME. 14065 (check_inner_class_access): Check `decl' which can be null in case 14066 of previous errors. 14067 140682000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 14069 14070 * java-tree.h (java_debug_context): Declared `extern'. 14071 (safe_layout_class): Likewise. 14072 * parse.y (resolve_field_access): Field must be `static' in order 14073 to be replaced by its initial value. Added comments. 14074 (find_applicable_accessible_methods_list): Fixed typo. 14075 (find_most_specific_methods_list): Methods found in innerclasses 14076 take over methods founds in the enclosing contexts. 14077 (java_complete_tree): Loosen restrictions on the type of DECLs 14078 that can be replaced by their initialization values. 14079 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'. 14080 140812000-07-05 Tom Tromey <tromey@cygnus.com> 14082 14083 * Make-lang.in (PARSE_DIR): New macro. 14084 (PARSE_RELDIR): Likewise. 14085 (PARSE_C): Likewise. 14086 (PARSE_SCAN_C): Likewise. 14087 ($(PARSE_C)): New target. 14088 ($(PARSE_SCAN_C)): Likewise. 14089 (SET_BISON): New macro. 14090 (BISONFLAGS): Likewise. 14091 (JAVABISONFLAGS): Likewise. 14092 140932000-07-02 Bryce McKinlay <bryce@albatross.co.nz> 14094 14095 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream 14096 argument on the first pass for CNI as well as JNI. 14097 (print_method_info): Set up method name on the first pass only. 14098 140992000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 14100 14101 * parse.y (parser_qualified_classname): Removed parameter 14102 `is_static'. 14103 (create_interface): Removed first passed parameter to 14104 parser_qualified_classname. 14105 (create_class): Likewise. Don't install alias on static 14106 innerclasses. Fixes gcj/275. 14107 141082000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 14109 14110 * parse.y (maybe_generate_pre_expand_clinit): Don't build a 14111 debugable statement with empty_stmt_node. Fixes gcj/272 14112 141132000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 14114 14115 * expr.c (build_instanceof): Layout type after it's loaded. Fixes 14116 gcj/271. 14117 141182000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 14119 14120 * jcf-write.c (push_long_const): Appropriately cast short negative 14121 constant to jword. 14122 141232000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 14124 14125 * parse.y (verify_constructor_super): Use loop variable 14126 `m_arg_type' initialized with `mdecl_arg_type'. 14127 141282000-06-29 Tom Tromey <tromey@cygnus.com> 14129 14130 * parse.y (resolve_field_access): Handle case where `type_found' 14131 is NULL. 14132 141332000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 14134 14135 * expr.c (lookup_field): The same field can be found through two 14136 different interface. Don't declare it ambiguous in that case. 14137 141382000-06-27 Tom Tromey <tromey@cygnus.com> 14139 14140 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r 14141 follows \r, then unget it at a lower level. 14142 141432000-06-26 Tom Tromey <tromey@cygnus.com> 14144 14145 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to 14146 java_complete_tree. 14147 141482000-06-25 Tom Tromey <tromey@cygnus.com> 14149 14150 * parse.y (for_statement): Wrap expression in a WFL if it is a 14151 constant. For PR gcj/268. 14152 141532000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 14154 14155 * parse.y (do_resolve_class): Minor optimiztion in the package 14156 list search. Removed unnecessary test and return statement. 14157 (valid_ref_assignconv_cast_p): Order of arguments to 14158 enclosing_context_p fixed. 14159 141602000-06-24 Tom Tromey <tromey@cygnus.com> 14161 14162 * expr.c (lookup_field): Print error and return error_mark_node if 14163 field reference is ambiguous. 14164 14165 * parse.y (check_abstract_method_definitions): Also check if 14166 `other_method' is abstract. 14167 141682000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 14169 14170 * class.c (set_super_info): Handle ACC_PRIVATE for (inner) 14171 classes. 14172 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro. 14173 (struct lang_type): New field `pic'. 14174 (CLASS_PRIVATE): New macro. 14175 * parse.y (check_inner_class_access): New function. 14176 (jdep_resolve_class): Call it. 14177 141782000-06-23 Tom Tromey <tromey@cygnus.com> 14179 14180 * parse.y (patch_incomplete_class_ref): Initialize the returned 14181 class. For PR gcj/260. 14182 141832000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com> 14184 14185 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'. 14186 141872000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 14188 14189 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for 14190 Java specific checks. 14191 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage 14192 screened by DECL_P. 14193 * java-tree.def (CASE_EXPR): Marked 'e'. 14194 (DEFAULT_EXPR): Likewise. 14195 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage 14196 screened by DECL_P. 14197 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for 14198 Java specific checks. 14199 (generate_bytecode_insns): Test try_block for BLOCK before using 14200 BLOCK_EXPR_BODY. 14201 * parse.y (build_wfl_wrap): Added `location' argument. Set 14202 EXPR_WFL_LINECOL accordingly. 14203 (dim_expr:): Wrap constants with WFLs. 14204 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC. 14205 (resolve_package): Check for `stmt' not being a BLOCK before 14206 building a debuggable statement with it. 14207 (make_qualified_primary): Added extra parameter to build_wfl_wrap 14208 invocation. 14209 (resolve_field_access): Make sure `decl' is a DECL before treating 14210 it as such. 14211 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an 14212 IDENTIFIER_NODE before treating it as such. 14213 (patch_new_array_init): Make sure `elt' is a TREE_LIST before 14214 treating it as such. 14215 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro 14216 to be applied only on non array types. 14217 142182000-06-16 Per Bothner <per@bothner.com> 14219 14220 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't 14221 define in terms of DECL_RESULT, as that fails when --enable-checking. 14222 142232000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14224 14225 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer 14226 types the same in comparison. 14227 (CHECK_OP): Add static prototype. 14228 142292000-06-13 Jakub Jelinek <jakub@redhat.com> 14230 14231 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN. 14232 * parse.y (java_complete_class): Set DECL_USER_ALIGN. 14233 * parse.c: Rebuilt. 14234 142352000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14236 14237 * decl.c (create_primitive_vtable): Prototype. 14238 14239 * jcf-write.c (generate_bytecode_insns): Initialize variable 14240 `saved_context'. 14241 14242 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED. 14243 142442000-06-09 Bryce McKinlay <bryce@albatross.co.nz> 14245 14246 * parse.y (find_applicable_accessible_methods_list): Use a hashtable 14247 to track searched classes, and do not search the same class more than 14248 once. Call find_applicable_accessible_methods_list on immediate 14249 superclass, instead of search_applicable_method_list on all ancestors. 14250 Fix for PR gcj/238. 14251 142522000-06-09 Bryce McKinlay <bryce@albatross.co.nz> 14253 14254 * parse.y (register_fields): Permit static fields in inner classes 14255 if they are final. Fix for PR gcj/255. 14256 142572000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com> 14258 14259 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries. 14260 * parse.y (find_in_imports): Returned type changed to void, 14261 leading comment fixed. 14262 (register_package): New function. 14263 (qualify_and_find): Likewise. 14264 (package_declaration:): Use `register_package'. 14265 (single_type_import_declaration:): Removed local variable 14266 `node'. Added missing `;' for consistency. 14267 (type_import_on_demand_declaration:): Use `chainon' to link new 14268 entries. 14269 (lookup_field_wrapper): Lookup local variables defined in outer 14270 contexts first. 14271 (java_complete_class): Don't reverse the list of imported on demand. 14272 (do_resolve_class): Reorganized. Removed local variable 14273 `original_name'. Call `qualify_and_find' with the current package 14274 name, invoke `find_in_imports_on_demand' right after. Call 14275 `qualify_and_find' with the packages we've seen so far. Fixed 14276 operations numbering in comments. 14277 (java_expand_class): Don't reverse `package_list'. 14278 (find_most_specific_methods_list): New local variables `abstract' 14279 and `candidates'. Use them to pick the right method. 14280 142812000-06-06 Tom Tromey <tromey@ferrule.cygnus.com> 14282 14283 * parse.y (check_modifiers_consistency): Don't subtract out 14284 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY. 14285 142862000-06-04 Philipp Thomas <pthomas@suse.de> 14287 14288 * Makefile.in (INTLLIBS): New. 14289 (LIBS): Add above. 14290 (DEPLIBS): Ditto. 14291 142922000-06-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 14293 14294 * class.c (get_dispatch_table): Build the vtable dummy entry list 14295 element with a null purpose. Fixed leading comment. 14296 (build_dtable_decl): Build an accurate dtable type when appropriate 14297 and use it. 14298 142992000-06-02 Richard Henderson <rth@cygnus.com> 14300 14301 * lang.c (lang_get_alias_set): New. 14302 143032000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com> 14304 14305 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree 14306 before using it as the accessed field. 14307 143082000-05-31 Tom Tromey <tromey@cygnus.com> 14309 14310 * java-tree.h (boolean_array_vtable, byte_array_vtable, 14311 char_array_vtable, short_array_vtable, int_array_vtable, 14312 long_array_vtable, float_array_vtable, double_array_vtable): 14313 Declare. 14314 * expr.c (get_primitive_array_vtable): New function. 14315 (create_primitive_vtable): New function. 14316 (java_lang_expand_expr): Enable code to statically generate 14317 arrays. 14318 * decl.c (init_decl_processing): Create primitive vtables. 14319 (boolean_array_vtable, byte_array_vtable, char_array_vtable, 14320 short_array_vtable, int_array_vtable, long_array_vtable, 14321 float_array_vtable, double_array_vtable): Define. 14322 143232000-05-26 Zack Weinberg <zack@wolery.cumb.org> 14324 14325 * java/parse.y (find_applicable_accessible_methods_list): 14326 Don't add an uninitialized value to the list. 14327 143282000-05-25 Tom Tromey <tromey@cygnus.com> 14329 14330 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC 14331 when trying to see if field's class should be initialized. Always 14332 initialize field's declaring class, not qualified class. 14333 For PR gcj/162. 14334 14335 * parse.y (array_constructor_check_entry): Pass `wfl_value', not 14336 `wfl_operator', to maybe_build_primttype_type_ref. 14337 Fixes PR gcj/235. 14338 143392000-05-23 Bryce McKinlay <bryce@albatross.co.nz> 14340 14341 * parse.y (patch_method_invocation): Don't try to lookup methods 14342 in primitive types. 14343 143442000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 14345 14346 * parse.y (resolve_field_access): Call the appropriate <clinit> 14347 before accessing the length of a static array. Craft a decl for 14348 the field while its time. Fixes PR gcj/129. 14349 143502000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 14351 14352 * parse.y (resolve_package): Correctly set `*next' (was off by 14353 one.) 14354 (resolve_qualified_expression_name): Fixed comment. 14355 143562000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 14357 14358 * jcf-parse.c (jcf_parse_source): Reset current_class and 14359 current_function_decl to NULL before parsing a new file. 14360 143612000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 14362 14363 * parse.y (block_end:): If the collected block doesn't feature a 14364 statement, insert an empty statement. 14365 143662000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 14367 14368 * parse.y (maybe_yank_clinit): New function. 14369 (maybe_generate_pre_expand_clinit): Always link <clinit> at the 14370 end of the list of methods belonging to a class. 14371 (java_complete_expand_method): Check whether <clinit> is really 14372 necessary and expand it accordingly. 14373 143742000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 14375 14376 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be 14377 processed by the method's switch statement. 14378 143792000-05-19 Tom Tromey <tromey@cygnus.com> 14380 14381 * java-tree.h: Added init state enum. 14382 * decl.c (emit_init_test_initialization): Initialize class 14383 initialization check variable by looking at class' state. 14384 143852000-05-19 Tom Tromey <tromey@cygnus.com> 14386 14387 * java-tree.h (build_instanceof): Declare. 14388 (build_get_class): Declare. 14389 * parse.y (patch_binop): Use build_instanceof. 14390 * expr.c (build_instanceof): New function. If class is final, 14391 don't make a function call. 14392 (expand_java_INSTANCEOF): Use it. 14393 (build_get_class): New function. 14394 143952000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 14396 14397 * jcf-write.c (generate_classfile): Scan the source_file for 14398 slashes with the right pointer variable. 14399 144002000-05-17 Andrew Cagney <cagney@b1.cygnus.com> 14401 14402 * lang.c (lang_decode_option): Update -Wunused flags by calling 14403 set_Wunused. 14404 * decl.c (poplevel): Replace warn_unused with warn_unused_label. 14405 144062000-05-09 Zack Weinberg <zack@wolery.cumb.org> 14407 14408 * check_init.c (check_init): Constify local char *. 14409 * class.c (push_class): Constify local char *. 14410 * java_tree.h: Update prototypes. 14411 * jcf-io.c (open_class): Constify filename parameter and 14412 return value. 14413 (find_class): Remove redundant string copy. Cast return from 14414 open_class. 14415 * jcf-parse.c (read_class, parse_class_file, yyparse): 14416 Constify local char *. 14417 * jcf-write.c (generate_bytecode_insns, generate_classfile): 14418 Constify local char *. 14419 * jcf.h (JCF): Constify filename and classname. 14420 (JCF_FINISH): Cast args to FREE to char * when appropriate. 14421 * lang.c (init_parse): Constify parameter and return value. 14422 * lex.c (java_get_line_col): Constify filename parameter. 14423 * parse.h: Constify parser_ctxt.filename. Update prototypes. 14424 * parse.y (java_parser_context_suspend, 14425 issue_warning_error_from_context, safe_layout_class): Constify 14426 local char *. 14427 * parse.c: Regenerate. 14428 144292000-05-08 Tom Tromey <tromey@cygnus.com> 14430 14431 * expr.c (build_jni_stub): Cache the result of 14432 _Jv_LookupJNIMethod. 14433 144342000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 14435 14436 * decl.c (predef_filenames_size): Now 7. 14437 (predef_filenames): New seventh entry. 14438 144392000-05-04 Tom Tromey <tromey@cygnus.com> 14440 14441 * boehm.c (mark_reference_fields): Don't mark RawData fields. 14442 Keep track of when we've seen a reference field after a 14443 non-reference field. 14444 (get_boehm_type_descriptor): Handle case where we see 14445 non-reference fields but no trailing reference field. 14446 * decl.c (rawdata_ptr_type_node): Define. 14447 (init_decl_processing): Initialize rawdata_ptr_type_node. 14448 * java-tree.h (rawdata_ptr_type_node): Declare. 14449 144502000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14451 14452 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format 14453 specifiers in calls to fprintf. 14454 144552000-05-03 Andrew Haley <aph@cygnus.com> 14456 14457 * expr.c (build_java_jsr): Use emit_jump, not expand_goto. 14458 14459 * javaop.h (WORD_TO_INT): New function. 14460 (IMMEDIATE_s4): Use WORD_TO_INT. 14461 * jcf.h (JPOOL_INT): Ditto. 14462 14463 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace 14464 separator. 14465 144662000-04-19 Tom Tromey <tromey@cygnus.com> 14467 14468 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE 14469 on native function. 14470 * jcf-parse.c (parse_class_file): Call build_jni_stub for native 14471 JNI methods. 14472 * expr.c (build_jni_stub): New function. 14473 * lang-specs.h: -fjni and -femit-class-file are incompatible. 14474 * parse.c: Rebuilt. 14475 * parse.y (java_complete_expand_methods): Expand a native method 14476 and call build_jni_stub if -fjni given. 14477 * lang-options.h: Document -fjni. 14478 * lang.c (flag_jni): New global. 14479 (lang_f_options): Added `jni' entry. 14480 * java-tree.h (soft_lookupjnimethod_node, 14481 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node): 14482 Declare. 14483 (flag_jni): Declare. 14484 (build_jni_stub): Declare. 14485 (struct lang_decl): Added `native' flag. 14486 (METHOD_NATIVE): Redefined to use `native' field of lang specific 14487 structure. 14488 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node, 14489 soft_jnipopsystemframe_node): New globals. 14490 (init_decl_processing): Set them. _Jv_InitClass only takes one 14491 argument. 14492 14493 * java-tree.def: Put into `C' mode. 14494 144952000-04-27 Tom Tromey <tromey@cygnus.com> 14496 14497 Fix for PR gcj/2: 14498 * expr.c (expand_invoke): Generate check to see if object pointer 14499 is null in nonvirtual invocation case. 14500 * java-tree.h (soft_nullpointer_node): Declare. 14501 * decl.c (soft_nullpointer_node): New global. 14502 (init_decl_processing): Initialize soft_nullpointer_node. 14503 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final' 14504 or `private' methods. 14505 (patch_invoke): Handle INVOKE_NONVIRTUAL case. 14506 145072000-04-26 Alexandre Petit-Bianco <apbianco@cygnus.com> 14508 14509 * decl.c (complete_start_java_method): Don't call _Jv_InitClass 14510 from <clinit> 14511 145122000-04-26 Tom Tromey <tromey@cygnus.com> 14513 14514 * zextract.c (find_zip_file_start): New function. 14515 (read_zip_archive): Use it. 14516 145172000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 14518 14519 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS. 14520 145212000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 14522 14523 * class.c (common_enclosing_context_p): New function. 14524 * java-tree.h (common_enclosing_context_p): Added prototype. 14525 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow 14526 classes sharing an outer context with the current instance. 14527 * parse.y (build_access_to_thisn): Fixed leading comment. 14528 (verify_constructor_super): New local `supper_inner'. Skip 14529 enclosing context argument in the case of inner class constructors. 14530 (patch_method_invocation): Insert proper context as second 14531 parameter to pure inner class constructor super invocations. 14532 145332000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 14534 14535 * parse.y (end_class_declaration): Reset the interface number 14536 counter. 14537 145382000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 14539 14540 * parse.y (source_start_java_method): Deleted unnecessary code. 14541 (patch_method_invocation): Fixed comment. 14542 145432000-04-24 Robert Lipe <robertlipe@usa.net> 14544 14545 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD. 14546 145472000-04-23 Tom Tromey <tromey@cygnus.com> 14548 14549 * boehm.c (mark_reference_fields): Use int_byte_position. 14550 145512000-04-22 Tom Tromey <tromey@cygnus.com> 14552 14553 * boehm.c (mark_reference_fields): Only call byte_position on 14554 non-static fields. 14555 145562000-04-22 Tom Tromey <tromey@cygnus.com> 14557 14558 * boehm.c (mark_reference_fields): Added `last_view_index' 14559 argument. Use DECL_FIELD_OFFSET to determine field's offset. 14560 145612000-04-20 Mo DeJong <mdejong@cygnus.com> 14562 14563 * parse.h (INTERFACE_INNER_MODIFIERS): New macro. 14564 * parse.y (check_class_interface_creation): Fixed comments. Select 14565 permitted modifiers for (inner) interfaces. Changed error message 14566 to report rejected modifiers used with local classes. 14567 145682000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 14569 14570 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes 14571 of directly inherited type considered in scope. 14572 * parse.y (do_resolve_class): Search inherited classes for inner 14573 classes. 14574 145752000-04-20 Tom Tromey <tromey@cygnus.com> 14576 14577 * parse.y (not_accessible_p): Use member's class, not current 14578 class, when doing inheritance check for protected reference. 14579 Fixes PR gcj/124. 14580 145812000-04-20 Jason Schroeder <shrode@subnature.com> 14582 14583 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction. 14584 145852000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 14586 14587 * parse.y (lookup_field_wrapper): Search for final local aliases. 14588 (resolve_expression_name): Let lookup_field_wrapper search for 14589 final local aliases. Force the value of `name' if one is found. 14590 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have 14591 an expression name. Fixed comments. 14592 145932000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 14594 14595 * parse.y (yyerror): `msg' can be null, don't use it in that case. 14596 145972000-04-19 Tom Tromey <tromey@cygnus.com> 14598 14599 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop. 14600 146012000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com> 14602 14603 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'. 14604 146052000-04-18 Tom Tromey <tromey@cygnus.com> 14606 14607 PR gcj/211: 14608 * gjavah.c (utf8_cmp): Changed return value. 14609 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return 14610 result. 14611 (cxx_keywords): New global. 14612 (get_field_name): Handle new result of cxx_keyword_subst. 14613 (print_method_info): Likewise. 14614 146152000-04-17 Bryce McKinlay <bryce@albatross.co.nz> 14616 14617 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names 14618 with a newline, for CNI. 14619 (print_stub_or_jni): Print a space or newline before method name for 14620 CNI as well as JNI. 14621 (print_cxx_classname): Don't write leading "::" in CNI stub method. 14622 (process_file): Include gcj/cni.h if generating CNI stubs. 14623 146242000-04-16 Tom Tromey <tromey@cygnus.com> 14625 14626 * gjavah.c (decompile_method): Use print_field_name. 14627 Fixes PR gcj/205. 14628 146292000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 14630 14631 * parse.y (java_expand_classes): Reverse the package list once. 14632 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string 14633 reduction. 14634 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of 14635 the `==' and `!=' operators. 14636 146372000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 14638 14639 * jcf-write.c (generate_bytecode_insns): At invocation time, 14640 always relate an interface method to the type of its selector. 14641 146422000-04-05 Tom Tromey <tromey@cygnus.com> 14643 14644 Fix for PR gcj/2: 14645 * expr.c (expand_invoke): Generate check to see if object pointer 14646 is null in nonvirtual invocation case. 14647 * java-tree.h (soft_nullpointer_node): Declare. 14648 * decl.c (soft_nullpointer_node): New global. 14649 (init_decl_processing): Initialize soft_nullpointer_node. 14650 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final' 14651 or `private' methods. 14652 (patch_invoke): Handle INVOKE_NONVIRTUAL case. 14653 146542000-04-05 Tom Tromey <tromey@cygnus.com> 14655 14656 Fix for PR gcj/140: 14657 * parse.y (check_final_assignment): Recognize assignments to the 14658 `length' field of an array when generating class files. 14659 146602000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 14661 14662 * class.c (decl_hash): Prototype removed. 14663 (decl_compare): Likewise. 14664 146652000-04-05 Tom Tromey <tromey@cygnus.com> 14666 14667 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter. 14668 * parse.y (check_modifiers_consistency): Check for final/volatile 14669 clash. Fixes PR gcj/164. 14670 146712000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 14672 14673 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash', 14674 made global. 14675 (java_hash_compare_tree_node): Renamed from `decl_compare, made 14676 global. 14677 (add_method_1): Use `java_hash_hash_tree_node' and 14678 `java_hash_compare_tree_node'. 14679 * java-tree.h: (java_hash_hash_tree_node): Prototyped. 14680 (java_hash_compare_tree_node): Likewise. 14681 * parse.y (find_applicable_accessible_methods_list): Create, 14682 delete and use a hash table to remember already searched interfaces. 14683 146842000-04-03 Matt Welsh <mdw@cs.berkeley.edu> 14685 14686 * jcf-depend.c (add_entry): Fixed bug where list was always replaced 14687 with latest entry. 14688 146892000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 14690 14691 * boehm.c (mark_reference_fields, set_bit): Prototype. 14692 (set_bit): Un-ANSI-fy definition. 14693 14694 * class.c (init_test_hash_newfunc, decl_hash, decl_compare): 14695 Prototype. 14696 14697 * decl.c (emit_init_test_initialization): Likewise. 14698 14699 * gjavah.c (jni_print_char): Likewise. 14700 14701 * parse.y (create_new_parser_context): Likewise. 14702 147032000-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com> 14704 14705 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000 14706 patch missing hunk. Fixed indentation. 14707 147082000-03-30 Tom Tromey <tromey@cygnus.com> 14709 14710 * gjavah.c (D_NAN_MASK): Only define as word-reversed when 14711 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree. 14712 147132000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com> 14714 14715 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length' 14716 when negative *before* using it as an array index. 14717 * ChangeLog: Fixed typo. 14718 147192000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com> 14720 14721 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length' 14722 to 0 when it reaches -1. 14723 147242000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 14725 14726 * jcf-parse.c (get_constant): Properly cast `num' during the 14727 invocation of `add_double'. 14728 * jcf-write.c (push_long_const): Properly cast `lo' before 14729 comparing it to short bounds. 14730 * parse-scan.y (interface_declaration:): Rule re-arrange so that 14731 `interface_body:' is reduced after the current interface is 14732 pushed. 14733 147342000-03-26 Tom Tromey <tromey@cygnus.com> 14735 14736 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each 14737 Java-specific `-f' option. 14738 147392000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14740 14741 * decl.c (init_decl_processing): Only call initialize_sizetypes once. 14742 Adjust order of making types. 14743 Make bitsize_*_node values. 14744 147452000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14746 14747 * class.c (make_field_value): Use byte_position. 14748 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position. 14749 (java_array_data_offset): Likewise. 14750 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to 14751 bzero call. 14752 147532000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 14754 14755 * parse.y (check_abstract_method_definitions): New local 14756 `end_type_reached'. Make sure we also consider `end_type'. 14757 (java_check_abstract_method_definitions): Make sure we eventually 14758 consider `java.lang.Object'. 14759 (maybe_use_access_method): Don't use access method if not in the 14760 context of a pure inner class or if the method's context is right. 14761 (find_applicable_accessible_methods_list): New static flag 14762 `object_done'. Don't search abstract classes as interfaces. Fixed 14763 indentation. Fixed the `java.lang.Object' only search. Search 14764 class interface(s) first, then fully search enclosing contexts. 14765 (find_most_specific_methods_list): Pick the closest candidate when 14766 they're all abstract. 14767 147682000-03-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 14769 14770 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR: 14771 properly initialize `finished_label'. Don't emit gotos for empty 14772 try statements. 14773 147742000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de> 14775 14776 * except.c (emit_handlers): Clear catch_clauses_last. 14777 147782000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 14779 14780 * parse.y (check_method_types_complete): New function. 14781 (create_class): Reset anonymous class counter only when seeing an 14782 non inner classe. 14783 (java_complete_class): JDEP_METHOD: Don't recompute signature 14784 if incomplete. 14785 147862000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 14787 14788 * class.c (build_static_ref): Fixed indentation in comment. 14789 * java-tree.def (TRY_EXPR): Fixed typo in name. 14790 (CLASS_LITERAL): Likewise. 14791 * java-tree.h: (TYPE_DOT_CLASS): New macro. 14792 (struct lang_type): New field `dot_class'. 14793 * jcf-write.c (generate_bytecode_insns): Fixed error message. 14794 (generate_classfile): Method `class$' is synthetic. 14795 * parse.y (build_do_class_method): New function. 14796 (build_dot_class_method_invocation): Likewise. 14797 (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary. 14798 (resolve_qualified_expression_name): Handle CLASS_LITERAL. 14799 (qualify_ambiguous_name): Likewise. 14800 (patch_incomplete_class_ref): Invoke synthetic method if necessary. 14801 (build_try_statement): Fixed leading comment. 14802 148032000-03-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14804 14805 * class.c (make_field_value): Properly handle sizes. 14806 (get_dispatch_vector): Use tree_low_cst and host_integerp. 14807 (layout_class_method): Count using trees. 14808 * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node. 14809 * expr.c (java_array_data_offset): Use int_bit_position. 14810 (build_newarray, build_anewarray): Use host_integerp and tree_low_cst. 14811 (build_invokevirtual): Use tree_low_cst and do computations with trees. 14812 148132000-03-16 Tom Tromey <tromey@cygnus.com> 14814 14815 * lang.c (flag_hash_synchronization): New global. 14816 (lang_f_options): Added `hash-synchronization'. 14817 * lang-options.h: Mention -fhash-synchronization. 14818 * java-tree.h (flag_hash_synchronization): Declare. 14819 * expr.c (java_lang_expand_expr): Only push `sync_info' value when 14820 hash table synchronization is disabled. 14821 * decl.c (init_decl_processing): Only push `sync_info' value when 14822 hash table synchronization is disabled. 14823 * class.c (make_class_data): Only push `sync_info' field when hash 14824 table synchronization is disabled. Removed dead code. 14825 148262000-03-16 Tom Tromey <tromey@cygnus.com> 14827 14828 * lang.c (lang_decode_option): Enable -Wunused when -Wall given. 14829 148302000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> 14831 14832 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous 14833 classes. 14834 * parse.y (patch_method_invocation): Handle anonymous classes 14835 creation in static context. 14836 148372000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> 14838 14839 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro. 14840 * parse.y (resolve_qualified_expression_name): Use it. 14841 (patch_method_invocation): Likewise. 14842 148432000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com> 14844 14845 * parse.y (register_incomplete_type): JDEP_ENCLOSING set 14846 depending on the type of dependency which dictates what the 14847 current class is. 14848 (unresolved_type_p): Resolved types limited to the current class. 14849 148502000-03-15 Tom Tromey <tromey@cygnus.com> 14851 14852 * decl.c (init_decl_processing): Set type of `sync_info' to be 14853 pointer to Object. 14854 14855 * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'. 14856 Correctly compute bit number for current slot. Zero `high' and 14857 `low' in DS_LENGTH case. Don't skip inherited fields. Use 14858 mark_reference_fields. 14859 (mark_reference_fields): New function. 14860 148612000-03-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 14862 14863 * parse.y (register_incomplete_type): Fixed initialization of 14864 JDEP_ENCLOSING. 14865 148662000-02-28 Alexandre Petit-Bianco <apbianco@cygnus.com> 14867 14868 * parse-scan.y (inner_qualifier, inner_qualifier_length): New 14869 static globals. 14870 (push_class_context, pop_class_context): New function. 14871 (class_body:): Call pop_class_context. 14872 (interface_body:): Likewise. 14873 (INNER_QUALIFIER): New macro. 14874 (report_class_declaration): Changed output format and use 14875 INNER_QUALIFIER. Call push_class_context. 14876 148772000-02-14 Andrew Haley <aph@cygnus.com> 14878 14879 * check-init.c (check_init): Add new cases for unary and binary 14880 tree nodes. 14881 148822000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 14883 14884 * parse.y (resolve_package): Set `next' once a type name has been 14885 progressively discovered. 14886 (resolve_qualified_expression_name): Propagate resolution only if 14887 there are remaining qualifiers. Take into account `q' might have 14888 been cleared after re-qualification. 14889 * parse.y (patch_method_invocation): New local `resolved'. 14890 Section dealing with qualified expression rewritten to use 14891 resolve_field_access. 14892 148932000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 14894 14895 * parse.h (PUSH_CPC): Fixed indentation. 14896 (DEBUG_CPC): New macro. 14897 (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT, 14898 SET_CPC_INSTANCE_INITIALIZER_STMT): New macros. 14899 * parse.y (class_body_declaration:): Use 14900 SET_CPC_INSTANCE_INITIALIZER_STMT. 14901 (method_declaration:): Check for null current_function_decl. 14902 (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT. 14903 (java_parser_context_pop_initialized_field): Better handling of 14904 empty lists. 14905 (maybe_make_nested_class_name): Mark nested class name as 14906 qualified when necessary. 14907 (end_class_declaration): Don't call java_parse_context_resume when 14908 one or more error occurred. 14909 (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT. 14910 (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and 14911 SET_CPC_INITIALIZER_STMT. 14912 (method_header): Check for inner classes declaring static methods. 14913 (resolve_qualified_expression_name): Handle situation where `this' 14914 is implied. 14915 149162000-03-13 Hans Boehm <boehm@acm.org> 14917 14918 * typeck.c (build_prim_array_type): Correctly set the high word too. 14919 149202000-03-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 14921 14922 * parse.y (java_complete_expand_methods): Leave <clinit> out of 14923 ordinary methods. 14924 (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the 14925 list of methods for interfaces. 14926 149272000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 14928 14929 * parse.y (qualify_ambiguous_name): Properly handle expressions 14930 using `null'. 14931 149322000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 14933 14934 * parse.y (check_final_assignment): Extended to process 14935 COMPOUND_EXPR. 14936 (patch_assignment): Have check_final_assignment called only once. 14937 149382000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 14939 14940 * java-tree.h (IS_INIT_CHECKED): New flag. 14941 * check-init.c (check_init): Test and set IS_INIT_CHECKED. 14942 * parse.y (patch_string): Call force_evaluation_order on the 14943 completed string concatenation tree. 14944 * expr.c (force_evaluation_order): Call force_evaluation_order on 14945 function's arguments too. 14946 149472000-03-06 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 14948 14949 * decl.c (emit_init_test_initialization): Mark KEY as unused. 14950 * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 14951 (build_anewarray): Likewise. 14952 * parse.y (patch_newarray): Likewise. 14953 * parse.c: Regenerated. 14954 149552000-03-06 Bryce McKinlay <bryce@albatross.co.nz> 14956 14957 * decl.c (init_decl_processing): Added new class fields `depth', 14958 `ancestors', and `idt' to class_type_node. Use 14959 _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node. 14960 * class.c (make_class_data): Push initial values for new fields. 14961 * java-tree.h: Updated prototype for `build_invokeinterface'. 14962 * expr.c (build_invokeinterface): Changed parameters to accept 14963 `method' tree. Calculate index of `method' in its declaring 14964 interface. Build call to _Jv_LookupInterfaceMethodIdx. 14965 (expand_invoke): Call `build_invokeinterface' with new parameters. 14966 * parse.y (patch_invoke): Call `build_invokeinterface' with new 14967 parameters. 14968 149692000-03-06 Bryce McKinlay <bryce@albatross.co.nz> 14970 14971 * typeck.c (lookup_do): Search superinterfaces first 14972 when looking up an interface method. From Godmar Back 14973 <gback@cs.utah.edu> 14974 149752000-03-06 Tom Tromey <tromey@cygnus.com> 14976 14977 * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c. 14978 149792000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 14980 14981 * java-tree.h (lookup_argument_method2): Declared. 14982 (safe_layout_class): Prototype moved from parse.h. 14983 * parse.h (safe_layout_class): Prototype moved to java-tree.h. 14984 * parse.y (java_check_regular_methods): Local `super_class' gone. 14985 Call lookup_argument_method2 instead of lookup_argument_method. 14986 Perform modifier match for methods found declared in implemented 14987 interfaces. Fixed indentation problem. Overriding/hiding error 14988 report to take place only for methods found in classes. 14989 * typeck.c (lookup_argument_method): Changed leading 14990 comment. Re-written by calling lookup_do. 14991 (lookup_argument_method2): New function. 14992 (lookup_java_method): Re-written by calling lookup_do. 14993 (lookup_do): New function. 14994 149952000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 14996 14997 * check-init.c (check_init): Removed dead code. Handle (blank) 14998 final variables. 14999 * parse.y (declare_local_variables): New local `final_p', set it 15000 and use it to initialize LOCAL_FINAL. 15001 (check_final_assignment): Only check FIELD_DECLs. 15002 150032000-02-17 Tom Tromey <tromey@cygnus.com> 15004 15005 * Makefile.in (JAVA_OBJS): Added boehm.o. 15006 (boehm.o): New target. 15007 * Make-lang.in (JAVA_SRCS): Added boehm.c. 15008 * java-tree.h (flag_use_boehm_gc): Declare. 15009 (get_boehm_type_descriptor): Declare. 15010 * lang.c (lang_f_options): Added `use-boehm-gc'. 15011 (flag_use_boehm_gc): New global. 15012 * lang-options.h: Added -fuse-boehm-gc. 15013 * boehm.c: New file. 15014 * class.c (get_dispatch_table): If class uses a Boehm type 15015 descriptor, put it in the vtable. 15016 (make_class_data): Removed dead code. 15017 150182000-03-03 Per Bothner <per@bothner.com> 15019 15020 * decl.c (init_decl_processing): Initialize sizetype properly. 15021 150222000-03-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 15023 15024 * java-tree.h (LOCAL_CLASS_P): New flag usage and macro. 15025 (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros. 15026 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro. 15027 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise. 15028 (jcf_parse): New local `current'. Load innerclasses seen in outer 15029 context being processed. 15030 * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro. 15031 * jcf-write.c (append_innerclasses_attribute): New function. 15032 (append_innerclasses_attribute_entry): Likewise. 15033 (get_access_flags): Handle static classes. Set anonymous and local 15034 classes to be private. 15035 (generate_classfile): Attribute count adjusted. Call 15036 append_innerclasses_attribute. 15037 * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use 15038 PURE_INNER_CLASS_TYPE_P. 15039 * parse.y (parser_qualified_classname): New parameter `is_static', 15040 produce non qualified name accordingly. 15041 (block_statement:): Set LOCAL_CLASS_P when declaring local class. 15042 (create_interface): Added argument to parser_qualified_classname. 15043 (create_class): Added argument to parser_qualified_classname. Setup 15044 alias for top level classes. Use PURE_INNER_CLASS_DECP_P. 15045 (add_inner_class_fields): Fixed indentation. 15046 (method_declarator): Use PURE_INNER_CLASS_DECP_P. 15047 (method_declarator): Fixed typo in comment. 15048 (craft_constructor): Use PURE_INNER_CLASS_DECP_P. 15049 (build_current_thisn): Likewise. 15050 (patch_method_invocation): Likewise. 15051 150522000-03-01 Martin von Löwis <loewis@informatik.hu-berlin.de> 15053 15054 * decl.c (current_function_decl): Move to toplev.c. 15055 150562000-02-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15057 15058 * java-tree.h (LABEL_PC): Relect name changes in ../tree.h. 15059 (DECL_BIT_INDEX): Use underlying representation. 15060 * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise. 15061 150622000-02-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15063 15064 * expr.c (build_java_ret): Pass proper type to size_binop. 15065 150662000-02-25 Anthony Green <green@cygnus.com> 15067 15068 * expr.c (build_class_init): Mark the decl to be ignored by 15069 check_init. 15070 * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c 15071 * check-init.c: Move DECL_BIT_INDEX to java-tree.h 15072 * class.c (init_test_hash_newfunc): New function. 15073 (decl_hash): New function. 15074 (decl_compare): New function. 15075 * decl.c (emit_init_test_initialization): New function. 15076 (complete_start_java_method): Traverse the init test hashtable, 15077 calling emit_init_test_initialization. 15078 (always_initialize_class_p): Define. 15079 * expr.c (build_class_init): Use initialization tests when 15080 emitting class initialization code. 15081 (always_initialize_class_p): Declare. 15082 * jcf-parse.c (parse_class_file): Set always_initialize_class_p to 15083 1. 15084 * java-tree.h: Include hash.h. 15085 (DECL_FUNCTION_INIT_TEST_TABLE): Define. 15086 (struct lang_decl): Add init_test_table field. 15087 (init_test_hash_entry): Define. 15088 150892000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 15090 15091 * gjavah.c (main): Avoid using `argi' to report unimplemented 15092 options. 15093 150942000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 15095 15096 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR: 15097 initialize locals to avoid warnings. Local `exception_type' moved 15098 into if statement. 15099 151002000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 15101 15102 * parse.y (resolve_expression_name): Use `orig' as a second 15103 argument to resolve_field_access. 15104 (resolve_field_access): Removed unnecessary code when dealing with 15105 static fields. 15106 151072000-02-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 15108 15109 * class.c (push_super_field): Don't push the field twice. 15110 * jcf-parse.c (parse_source_file): Call java_reorder_fields. 15111 * parse.h (java_reorder_fields): Prototyped. 15112 * parse.y (java_reorder_fields): New function. 15113 (java_layout_class): Simplified not to worry about re-ordering. 15114 151152000-02-23 Tom Tromey <tromey@cygnus.com> 15116 15117 * gjavah.c (print_name): In JNI case, correctly quote string. 15118 (print_method_info): Don't handle overrides in JNI mode. 15119 151202000-02-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 15121 15122 * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned 15123 value type set to `boolean_type_node'. 15124 151252000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de> 15126 15127 * jcf-dump.c (main): Test for correct condition after 15128 output file creation. 15129 151302000-02-19 Anthony Green <green@cygnus.com> 15131 15132 * jcf-depend.c (add_entry): Fix test for first list entry. 15133 151342000-02-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15135 15136 * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT. 15137 * constants.c (build_constants_constructor): Likewise. 15138 151392000-02-19 Anthony Green <green@cygnus.com> 15140 15141 * jcf-depend.c (add_entry): Add entries to the end of the list. 15142 151431999-11-03 Pekka Nikander <pekka.nikander@hut.fi> 15144 15145 * decl.c (INT_TYPE_SIZE): Define if necessary. 15146 (expand_java_return): Handle the case of a native integer smaller 15147 than a JVM integer. 15148 151492000-02-18 Martin von Löwis <loewis@informatik.hu-berlin.de> 15150 15151 * gjavah.c (help): Use GCCBUGURL. 15152 * jv-scan.c (help): Likewise. 15153 * jcf-dump.c (help): Likewise. 15154 151552000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 15156 15157 * jcf-write.c (generate_bytecode_insns): Don't generate empty 15158 `finally' clauses. 15159 151602000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 15161 15162 * jcf-parse.c (load_class): Call `fatal' if no file containing 15163 the target class are found. 15164 151652000-02-16 Zack Weinberg <zack@wolery.cumb.org> 15166 15167 * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on 15168 lex.c, lex.h, and PARSE_H to... 15169 (parse.o, parse-scan.o): ...here, respectively. 15170 15171 * lex.c: Split out code that may trigger SIGFPE from yylex() 15172 to its own function. 15173 * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value. 15174 151752000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15176 15177 * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h. 15178 151792000-02-15 Alexandre Petit-Bianco <apbianco@cygnus.com> 15180 15181 * parse.y (outer_field_access_p): Stop in time when outer contexts 15182 are exhausted. 15183 (resolve_qualified_expression_name): Properly qualify *everything* 15184 after a package.type to be resoled as expression names. 15185 (find_applicable_accessible_methods_list): Save/restore `class' to 15186 isolate it from a possible outer context search. 15187 151882000-02-15 Tom Tromey <tromey@cygnus.com> 15189 15190 * gjavah.c (jni_print_char): New function. 15191 (print_full_cxx_name): Use it. 15192 (decode_signature_piece): Likewise. 15193 (print_cxx_classname): Likewise. 15194 151952000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15196 15197 * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with 15198 version.o. 15199 (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h. 15200 15201 * gjavah.c: Include version.h. 15202 15203 * jcf-dump.c: Likewise. 15204 15205 * jv-scan.c: Likewise. 15206 152072000-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 15208 15209 * parse.y (outer_field_access_fix): First parameter now a tree 15210 node. Check for assignment to final. First argument to 15211 build_outer_field_access_fix modified to accommodate prototype. 15212 (build_outer_field_access): Don't check for assignment to final 15213 here. 15214 (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node' 15215 possibly returned by outer_field_access_fix. Changed 15216 outer_field_access_fix's first argument. 15217 (check_final_assignment): $finit$'s context is OK. 15218 (patch_unaryop): Use node instead of its line/column value when 15219 calling outer_field_access_fix. 15220 152212000-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 15222 15223 * parse.y (interface_declaration:): No longer tagged 15224 <node>. Re-installed default action. 15225 (class_member_declaration:): Handle inner interfaces. 15226 (interface_member_declaration): Handle inner interfaces and 15227 classes. 15228 (create_interface): Push error if one seen. Suspend parsing 15229 context when processing an inner interface. 15230 (register_fields): Inner class static field limitations not to 15231 apply to inner interfaces. 15232 152332000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 15234 15235 * jcf-parse.c (load_class): Update `java_error_count' when a 15236 class' file can't be found. 15237 (parse.y): Avoid (byte)code generation when errors seen. 15238 152392000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 15240 15241 * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal' 15242 decodes a valid node. 15243 (patch_binop): Handle TRUNC_DIV_EXPR. 15244 152452000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 15246 15247 * parse.y (resolve_package): New local `acc'. Try to progressively 15248 build and guess a package and type name. 15249 152502000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 15251 15252 * parse.y (find_applicable_accessible_methods_list): Load and 15253 layout the search class if necessary. 15254 (java_complete_tree): Keep to original type of the folded initial 15255 value. 15256 152572000-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 15258 15259 * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT. 15260 Generate error message if circularity is detected. New static 15261 local `list'. 15262 * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro. * 15263 * jcf-write.c (generate_bytecode_insns): Very simply handle 15264 SAVE_EXPR. 15265 * parse.y (java_check_circular_reference): Use 15266 `cyclic_inheritance_report' during report, if necessary. 15267 (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid 15268 walking NEW_ARRAY_INIT twice. 15269 152702000-02-09 Tom Tromey <tromey@cygnus.com> 15271 15272 * parse.y (check_class_interface_creation): Allow inner classes to 15273 be `private' or `protected', check modifiers' consistency. Prevent 15274 block local classes from bearing any modifiers. 15275 152762000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15277 15278 * except.c (check_start_handlers): Re-add prototype lost in last 15279 patch. 15280 (maybe_start_try): Remove excess argument to `check_start_handlers'. 15281 152822000-02-09 Andrew Haley <aph@cygnus.com> 15283 15284 * decl.c (clear_binding_level): Remove excess initializer. 15285 (maybe_poplevels): Remove unused variable. 15286 (force_poplevels): Ditto. 15287 (struct binding_level): Add comment. 15288 152892000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 15290 15291 * jcf-write.c (generate_classfile): Don't consider 15292 pre-initialization with reference value (use <clinit> instead.) 15293 * parse.y (java_fix_constructors): No generated constructor for 15294 interfaces. 15295 (build_outer_field_access): Removed debug message. 15296 (outer_field_expanded_access_p): Adapted to bytecode generation. 15297 (build_outer_field_access_method): Use fix_method_argument_names. 15298 (build_outer_method_access_method): Fixed indentation. Added 15299 comment. Handle access method generation for static and also void 15300 methods. 15301 (build_access_to_thisn): Inserted debug message. 15302 (maybe_build_thisn_access_method): Use fix_method_argument_names. 15303 (resolve_qualified_expression_name): Fixed comment. 15304 (not_accessible_p): Adapted to bytecode generation. Added comment. 15305 (patch_method_invocation): Added comment. 15306 (maybe_use_access_method): Fixed leading comment. Handle static 15307 methods. 15308 (java_complete_lhs): Don't shortcut handling of initialized upon 15309 declaration String type static fields when generating bytecode. 15310 (patch_unaryop): Handle outer field access when generating 15311 bytecode. 15312 153132000-02-03 Alexandre Petit-Bianco <apbianco@cygnus.com> 15314 15315 * java-tree.h (FIELD_THISN): New macro. 15316 * jcf-write.c (append_synthetic_attribute): New function. 15317 (generate_classfile): Set "Synthetic" attribute on this$<n>, 15318 val$<name> fields, access$<n> and $finit$ methods. Fixed indentation. 15319 * parse.y (add_inner_class_fields): Set FIELD_THISN for created 15320 this$<n> fields. 15321 (build_outer_field_access): Turned on access functions usage and 15322 generation when compiling to bytecode. 15323 (maybe_use_access_method): Likewise. 15324 153252000-01-25 Andrew Haley <aph@cygnus.com> 15326 15327 * java-except.h (struct eh_range): Add `expanded' field. 15328 (maybe_start_try): Add end_pc arg. 15329 (maybe_end_try): Ditto. 15330 * java-tree.h (force_poplevels): new function. 15331 * expr.c (expand_byte_code): Don't call maybe_start_try or 15332 maybe_end_try. 15333 * except.c (add_handler): Reset expanded. 15334 (expand_start_java_handler): Set expanded. 15335 (check_start_handlers): Don't expand a start handler that's 15336 already been expanded. 15337 (maybe_start_try): Add end_pc arg. Only expand a handler which 15338 ends after end_pc. 15339 (expand_end_java_handler): call force_poplevels. 15340 (force_poplevels): new function. 15341 * decl.c (binding_level): Add start_pc of binding level. 15342 (maybe_pushlevels): Call maybe_start_try when pushing binding 15343 levels. 15344 (maybe_poplevels): Call maybe_end_try when popping binding levels. 15345 (LARGEST_PC): Define. 15346 (clear_binding_level): Use LARGEST_PC. 15347 15348 * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define. 15349 * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define. 15350 (binding_depth, is_class_level, current_pc): new variables. 15351 (struct binding_level): ditto. 15352 (indent): new function. 15353 (push_jvm_slot): add debugging info. 15354 (maybe_pushlevels): ditto. 15355 (maybe_poplevels): ditto. 15356 (pushlevel): ditto. 15357 (poplevel): ditto. 15358 (start_java_method): ditto. 15359 (give_name_to_locals): comment only. 15360 * except.c (binding_depth, is_class_level, current_pc): 15361 new variables. 15362 (expand_start_java_handler): add debugging info. 15363 (expand_end_java_handler): ditto. 15364 153652000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15366 15367 * gjavah.c (overloaded_jni_method_exists_p): Add prototype. 15368 (print_name_for_stub_or_jni, process_file): Constify a char*. 15369 153702000-02-03 Tom Tromey <tromey@cygnus.com> 15371 15372 * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input. 15373 153742000-01-31 Scott Bambrough <scottb@netwinder.org> 15375 15376 * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to 15377 assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is 15378 defined to be 1. 15379 153802000-02-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 15381 15382 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code. 15383 * java-tree.h (TYPE_II_STMT_LIST): New macro. 15384 (struct lang_type): New field `ii_block'. 15385 * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST, 15386 CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST. 15387 * parse.h (struct parser_ctxt): New field `instance_initializers'. 15388 (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST, 15389 CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT, 15390 CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New 15391 macros. 15392 * parse.y (add_instance_initializer): New function. 15393 (in_instance_initializer): New static global. 15394 (class_body_declaration:): Link instance initializer block. 15395 (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT. 15396 (array_creation_expression:): Remove unused local. 15397 (java_parser_context_push_initialized_field): Fixed leading 15398 comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and 15399 CPC_INSTANCE_INITIALIZER_LIST. 15400 (java_parser_context_pop_initialized_field): Likewise. 15401 (add_inner_class_fields): Use CPC_INITIALIZER_STMT. 15402 (register_fields): Use CPC_STATIC_INITIALIZER_STMT and 15403 CPC_INITIALIZER_STMT. 15404 (fix_constructors): New local `class_type'. Use it. Call 15405 add_instance_initializer. 15406 (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR. 15407 (patch_return): Forbid return in instance initializers. 15408 (patch_throw_statement): Enforce exception handling in the context 15409 of instance initializers. 15410 154112000-02-03 Tom Tromey <tromey@cygnus.com> 15412 15413 * Make-lang.in (java.mostlyclean): Remove executables in 15414 `mostlyclean'. 15415 154162000-01-31 Scott Bambrough <scottb@netwinder.org> 15417 15418 * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when 15419 HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1. 15420 (java_float_finite): Convert to use union Word from javaop.h. 15421 (java_double_finite): Convert to use union DWord from javaop.h. 15422 154232000-02-02 Tom Tromey <tromey@cygnus.com> 15424 15425 * gjavah.c (options): Added `jni' entry. 15426 (help): Document -jni. 15427 (flag_jni): New global. 15428 (process_file): Handle JNI output. Don't print text from 15429 -prepend, -add, etc, when generating stubs. Only remove `.class' 15430 suffix if it actually exists. 15431 (main): Create a `.c' file when run with `--jni --stubs'. Create 15432 correct output file name with `--jni'. 15433 (print_include): Mangle header name differently in JNI case. 15434 (HANDLE_METHOD): In JNI mode, call print_method_info to generate 15435 method list. 15436 (print_method_info): Handle JNI case. Put signature info into 15437 method name. Handle case when STREAM is NULL. 15438 (print_name_for_stub_or_jni): New function. 15439 (print_stub_or_jni): Renamed from `print_stub'. Handle JNI. 15440 (print_cxx_classname): Handle JNI. 15441 (print_full_cxx_name): Likewise. 15442 (decode_signature_piece): Likewise. 15443 (overloaded_jni_method_exists_p): New function. 15444 (struct method_name): Added `signature' and `sig_length' fields. 15445 (HANDLE_END_FIELD): Do nothing in JNI mode. 15446 154472000-02-02 Tom Tromey <tromey@cygnus.com> 15448 15449 * jv-scan.c: Include version.c, <getopt.h>. 15450 (LONG_OPT, OPT_HELP, OPT_VERSION): New macros. 15451 (options): New array. 15452 (usage): New function. 15453 (version): New function. 15454 (main): Use getopt_long to parse command line. 15455 * jcf-dump.c: Include version.c, <getopt.h>. 15456 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION, 15457 OPT_JAVAP): New macros. 15458 (options): New array. 15459 (usage): Return `void'. Changed message. 15460 (help): New function. 15461 (version): New function. 15462 (main): Use getopt_long_only to parse command line. 15463 * gjavah.c: Include <getopt.h>. 15464 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP, 15465 OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M, 15466 OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros. 15467 (options): New array. 15468 (java_no_argument): Removed. 15469 (help): Updated with missing options. 15470 (main): Use getopt_long_only to parse command line. 15471 (usage): Changed message. 15472 154732000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 15474 15475 * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code. 15476 * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG, 15477 ANONYMOUS_ARRAY_INITIALIZER): New access macros. 15478 * parse.y (array_creation_expression:): Handle anonymous arrays. 15479 (build_array_from_name): Don't set `ret_name' if null. 15480 (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR. 15481 (qualify_ambiguous_name): Likewise. 15482 (java_complete_expand_class): Likewise. 15483 154842000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 15485 15486 * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo. 15487 * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro. 15488 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise. 15489 (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P. 15490 (AIPL_FUNCTION_FINIT_INVOCATION): Replaces 15491 AIPL_FUNCTION_COMPLETED_INVOCATION. 15492 (AIPL_FUNCTION_CTOR_INVOCATION): Replaces 15493 AIPL_FUNCTION_INVOCATION_READY. 15494 (AIPL_FUNCTION_DECLARATION): New enum entry. 15495 * parse.y (reorder_static_initialized): New function. 15496 (java_parser_context_pop_initialized_field): Use it. 15497 (add_inner_class_fields): Use 15498 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment 15499 augmented. Install marker after last alias initializer, if any. 15500 (generate_finit): Fixed typo. Don't try to retain only the used 15501 fields. 15502 (method_header): Compute and set DECL_FUNCTION_NAP. 15503 (method_declarator): Fixed comment. Insert alias initializer in 15504 parameter list. 15505 (build_alias_initializer_parameter_list): Fixed leading 15506 comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value 15507 replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. 15508 (java_complete_expand_class): Code to retain only used aliases 15509 removed. 15510 (java_complete_expand_methods): New local `first_decl'. Generate 15511 $finit$ first, then expand the constructors, regular methods and 15512 <clinit>. 15513 (java_complete_expand_method): Don't report error on missing 15514 return statement if previously detected bogus. 15515 (fix_constructors): Don't patch constructor parameters list. 15516 (patch_method_invocation): Use new AIPL enum values. Reverse 15517 alias initializer list for anonymous classes. 15518 155192000-01-30 Anthony Green <green@redhat.com> 15520 15521 * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to 15522 determine how many stack slots to pop. 15523 155242000-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 15525 15526 * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better 15527 error handling/recovery. 15528 * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment. 15529 155302000-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com> 15531 15532 * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS, 15533 FIELD_LOCAL_ALIAS_USED): New macros. 15534 (DECL_FUNCTION_NAP): New macro. 15535 (struct lang_decl): New field `nap'. 15536 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros. 15537 (struct lang_type): New fields `finit_stmt_list' and 15538 `clinit_stmt_list'. 15539 (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST. 15540 * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro. 15541 (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS, 15542 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros. 15543 (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION, 15544 AIPL_FUNCTION_INVOCATION_READY): New enum fields. 15545 (BUILD_THROW): Macro line separator re-indented. 15546 * parse.y (end_class_declaration): New function. 15547 (maybe_generate_pre_expand_clinit): New name for 15548 java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST, 15549 pre-expand static fields. 15550 (maybe_generate_clinit): Function deleted. 15551 (check_for_static_method_reference): Prototype's parameter list 15552 indented. 15553 (generate_finit): New name for maybe_generate_finit. Changed 15554 leading comment. Function rewritten to use 15555 TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list. 15556 (build_alias_initializer_parameter_list): New function. 15557 (java_parser_context_pop_initialized_field): Likewise. 15558 (add_inner_class_fields): Likewise. 15559 (type_declaration:): Call end_class_declaration. 15560 (class_member_declaration:): Likewise. 15561 (formal_parameter_list:): Fixed typos. 15562 (formal_parameter:): Use ARG_FINAL_P to mark created tree list 15563 element. Improved error handling. 15564 (block_statement:): Call end_class_declaration. 15565 (anonymous_class_creation:): Likewise. 15566 (create_anonymous_class): Fixed comments. 15567 (create_class): Call add_inner_class_fields. 15568 (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P. 15569 (method_header): Use MARK_FINAL_PARMS. 15570 (finish_method_declaration): Use UNMARK_FINAL_PARMS. 15571 (method_declarator): Propagate final argument flag. 15572 (craft_constructor): New local `artificial'. Call 15573 build_alias_initializer_parameter_list. Use 15574 CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP. 15575 (source_start_java_method): Mark parm decls with LOCAL_FINAL if 15576 necessary. 15577 (complete_expand_class): Get rid of unused outer context local 15578 alias fields. 15579 (java_complete_expand_methods): Fixed leading 15580 comment. Generate/pre-expand <clinit> first. Changed method 15581 expansion order to regular, $finit$, constructors, <clinit>. 15582 (java_complete_expand_method): Set current_function_decl. 15583 (fix_constructors): Fix constructor parameter list to account for 15584 outer context local alias initializers. 15585 (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS. 15586 (resolve_expression_name): Lookup outer context local aliases. New 15587 local `access', use it. 15588 (patch_method_invocation): Patch inner class ctor invocation with 15589 outer context local aliases initialization values. $finit$ 15590 invocation patching now includes things generated with 15591 build_alias_initializer_parameter_list. 15592 (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS. 15593 (build_super_invocation): Likewise. 15594 (patch_assignment): Changed comment. 15595 155962000-01-27 Andrew Haley <aph@cygnus.com> 15597 15598 * jcf-write.c (emit_goto): RESERVE 3 bytes for insn. 15599 (emit_if): Ditto. 15600 (emit_jsr): Ditto. 15601 156022000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15603 15604 * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string 15605 concatenation. 15606 (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args. 15607 15608 * parse.y (register_fields): Don't pass a format specifier to 15609 OBSOLETE_MODIFIER_WARNING. 15610 (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2 15611 instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format 15612 specifier. 15613 (check_modifiers): Change function into a macro. 15614 (check_class_interface_creation): Pass a literal format string. 15615 156162000-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15617 15618 * buffer.h: PROTO -> PARAMS. 15619 * check-init.c: Likewise. 15620 * class.c: Likewise. 15621 * constants.c: Likewise. 15622 * convert.h: Likewise. 15623 * decl.c: Likewise. 15624 * except.c: Likewise. 15625 * expr.c: Likewise. 15626 * gjavah.c: Likewise. 15627 * java-except.h: Likewise. 15628 * java-tree.h: Likewise. 15629 * jcf-depend.c: Likewise. 15630 * jcf-dump.c: Likewise. 15631 * jcf-parse.c: Likewise. 15632 * jcf-path.c: Likewise. 15633 * jcf-reader.c: Likewise. 15634 * jcf-write.c: Likewise. 15635 * jcf.h: Likewise. 15636 * jv-scan.c: Likewise. 15637 * jvgenmain.c: Likewise. 15638 * jvspec.c: Likewise. 15639 * lang.c: Likewise. 15640 * lex.c: Likewise. 15641 * lex.h: Likewise. 15642 * parse-scan.y: Likewise. 15643 * parse.h: Likewise. 15644 * parse.y: Likewise. 15645 * typeck.c: Likewise. 15646 * verify.c: Likewise. 15647 * xref.c: Likewise. 15648 * xref.h: Likewise. 15649 * zextract.c: Likewise. 15650 * zipfile.h: Likewise. 15651 156522000-01-18 Alexandre Petit-Bianco <apbianco@cygnus.com> 15653 15654 * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC. 15655 (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF. 15656 * constants.c (build_constant_data_ref): Check for cached 15657 current_constant_pool_data_ref. Cache current_constant_pool_data_ref 15658 in TYPE_CPOOL_DATE_REF. 15659 * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF, 15660 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros. 15661 (struct lang_type): New fields `cpool' and `cpool_data_ref'. 15662 (LOCAL_FINAL): New macro. 15663 * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing 15664 constant pool -- don't try to reuse. 15665 (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate 15666 TYPE_LANG_SPECIFIC. 15667 (find_in_current_zip): Use TYPE_JCF. 15668 * parse.h (java_check_final): Prototype removed. 15669 * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch. 15670 (maybe_create_class_interface_decl, 15671 check_class_interface_creation): Likewise. 15672 (java_expand_finals): Function removed. 15673 (class_declaration:): Reversed Jan 12, 2000 extra argument patch. 15674 (block_statement:): Fixed comment. 15675 (anonymous_class_creation:): Likewise. 15676 (check_class_interface_creation): Reversed Jan 12, 2000 extra 15677 argument patch. 15678 (check_class_interface_creation): Loosened error report on (inner) 15679 public class declarations. CPC_INNER_P replaces GET_CPC_LIST. 15680 (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch. 15681 (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra 15682 argument patch. 15683 (create_interface): Likewise. 15684 (anonymous_class_counter): New static global. 15685 (create_anonymous_class): Reversed Jan 12, 2000 extra argument 15686 patch. Fixed comments. 15687 (create_class): Reversed Jan 12, 2000 extra argument patch. Reset 15688 anonymous_class_counter when declaring a toplevel class. 15689 (craft_constructor): Fixed constructor name when handling 15690 anonymous classes. Anonymous class constructors to feature hidden 15691 this$<n> parameter. 15692 (java_fix_constructors): Added comment. 15693 (java_check_final): Function removed. 15694 (java_complete_expand_methods): Fixed comment. Don't generate 15695 class data, save its outgoing constant pool instead. 15696 (verify_constructor_super): Skip anonymous class constructor 15697 hidden this$<n> parameter. 15698 (java_expand_classes): New local `saved_ctxp'. Removed call to 15699 java_expand_finals and java_check_final. Expand anonymous class 15700 constructors. Generate class data. 15701 (build_super_invocation): Skip anonymous class hidden this$<n> 15702 parameter. 15703 * typeck.c (build_java_signature): Use TYPE_SIGNATURE and 15704 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC. 15705 (set_java_signature): Likewise. 15706 157072000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de> 15708 15709 * gjavah.c: Delete ACC_VISIBILITY define. 15710 * jcf.h: Add ACC_VISIBILITY define. 15711 * parse.y: final: rule tagged <value>. 15712 (java_check_regular_methods): Use ACC_VISIBILITY define for 15713 default package access check. 15714 (local_variable_declaration_statement): Use final: rule. 15715 157162000-01-17 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de> 15717 15718 * parse.y (format_parameter:): Use final: rule instead of modifiers:. 15719 (final:): New rule. 15720 157212000-01-17 Tom Tromey <tromey@cygnus.com> 15722 15723 * gjavah.c (print_field_info): Allow non-static final fields. 15724 157252000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 15726 15727 * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'. 15728 * parse.y (patch_anonymous_class): New function. 15729 (create_anonymous_class): Register incomplete type when the 15730 class/interface to extends/implement isn't known yet. 15731 (parser_check_super_interface): Simplify argument to CLASS_INTERFACE. 15732 (verify_constructor_super): Tuned error message. 15733 157342000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 15735 15736 * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P. 15737 (ANONYMOUS_CLASS_P): New macro. 15738 (TYPE_SIGNATURE, TYPE_JCF): New macros. 15739 (INNER_CLASS_TYPE_P): Fixed typo in leading comment. 15740 * parse.y (create_class): Added leading argument. 15741 (maybe_create_class_interface_decl, 15742 check_class_interface_creation): Likewise. 15743 (craft_constructor): New function. 15744 (verify_constructor_super): Added argument in prototype. 15745 (class_declaration:): Inserted leading argument. 15746 (for_begin:): Use FOR_LOOP_P. 15747 (anonymous_class_creation): Create WFL of the anonymous class to 15748 instantiate. Call build_new_invocation. Added comments. 15749 (check_class_interface_creation): Handle parameter `anonymous' in 15750 verbose mode class creation announce. 15751 (link_nested_class_to_enclosing): Exclude anonymous classes. 15752 (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on 15753 anonymous class, even though they appear to have an enclosing 15754 context. 15755 (create_interface): Pass extra argument to 15756 check_class_interface_creation. 15757 (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1. 15758 (create_class): Call check_class_interface_creation and 15759 maybe_create_class_interface_decl with extra new argument. Don't 15760 add private this$<n> to anonymous classes. 15761 (method_declarator): Insert hidden this$<n> to anonymous class 15762 constructors. 15763 (java_fix_constructors): Deleted code creating default 15764 constructor. Call craft_constructor instead. 15765 (java_check_regular_methods): Set `saw_constructor' to 1 for 15766 anonymous classes. 15767 (fix_constructors): Pass extra argument to verify_constructor_super. 15768 (verify_constructor_super): New local `sdecl', use it. Search for 15769 matching constructor (possibly featuring arguments) in super 15770 class. 15771 (lookup_method_invoke): Craft constructor according to arguments 15772 list when dealing with anonymous class constructors. 15773 (build_super_invocation): Pass arguments to anonymous class super 15774 constructors. 15775 (search_loop): Use FOR_LOOP_P. 15776 (labeled_block_contains_loop_p): Likewise. 15777 157782000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 15779 15780 * class.c (set_super_info): Set CLASS_STATIC when appropriate. 15781 (enclosing_context_p): New function. 15782 (get_access_flags_from_decl): Handle CLASS_STATIC. 15783 (maybe_layout_super_class): Extra first argument passed to 15784 do_resolve_class. 15785 (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and 15786 ID_INIT_P. 15787 * decl.c (access0_identifier_node): New global. 15788 (init_decl_processing): access0_identifier_node initialized. 15789 (pushdecl): Set DECL_CONTEXT only on non type decls. 15790 * expr.c (lookup_field): Lookup inner class fields in enclosing 15791 contexts. 15792 (expand_invoke): Use ID_INIT_P. 15793 (expand_java_field_op): Use DECL_CLINIT_P. 15794 * java-tree.def (CLASS_LITERAL): New tree code. 15795 * java-tree.h (DECL_FUNCTION_ACCESS_DECL, 15796 DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros. 15797 (struct lang_decl): New field `inner_access'. 15798 (enclosing_context_p): Prototyped. 15799 (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P, 15800 ID_CLINIT_P): New macros. 15801 (CLASS_STATIC): New macro. 15802 (CLASS_ACCESS0_GENERATED_P): New macro. 15803 (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P, 15804 TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P, 15805 INNER_CLASS_P): New macros. 15806 (DECL_INNER_CLASS_LIST): New macro. 15807 * jcf-parse.c (yyparse): Avoid the use of ANSI string 15808 concatenation. 15809 * jcf-write.c (generate_bytecode_insns): binop: Change the type of 15810 the shift value to int. Fixed typo in comment. 15811 * lex.c (inst_id, wpv_id): Initialize. 15812 * mangle.c (unicode_mangling_length): Take `$' into account. 15813 * parse.h (DRECOVER, RECOVER): Terminate properly. 15814 (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro. 15815 (typedef struct _jdep): New field `enclosing'. 15816 (JDEP_ENCLOSING): New macro. 15817 (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.) 15818 (struct parser_ctxt): New fields `marker_beginning', `marked_end'. 15819 (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, 15820 GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC, 15821 GET_ENCLOSING_CPC_CONTEXT): New macros. 15822 (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros. 15823 (do_resolve_class): Added extra argument in prototype. 15824 * parse.y (resolve_class): Added extra argument in prototype. 15825 (maybe_create_class_interface_decl): Likewise. 15826 (maybe_use_access_method, build_wfl_wrap): New functions. 15827 (java_complete_expand_classes, java_complete_expand_class): 15828 Likewise. 15829 (java_parser_context_push_initialized_field, 15830 java_parser_context_suspend, java_parser_context_resume): 15831 Likewise. 15832 (maybe_make_nested_class_name, make_nested_class_name, 15833 set_nested_class_simple_name_value, 15834 link_nested_class_to_enclosing, find_as_inner_class, 15835 find_as_inner_class_do, check_inner_class_redefinition, 15836 build_thisn_assign, build_current_thisn, build_access_to_thisn, 15837 maybe_build_thisn_access_method, build_outer_field_access, 15838 build_outer_field_access_methods, build_outer_field_access_expr, 15839 build_outer_method_access_method, build_new_access_id, 15840 build_outer_field_access_method, outer_field_access_p, 15841 outer_field_expanded_access_p, outer_field_access_fix, 15842 build_incomplete_class_ref, patch_incomplete_class_ref, 15843 create_anonymous_class): Likewise. 15844 (inst_id, wpv_id): New static global variables. 15845 (synchronized:): New rule, tagged <node>. 15846 (type_declaration:): No longer tagged <node>. Call POP_CPC in sub 15847 rules. 15848 (anonymous_class_creation:): New rule, tagged <node>. 15849 (NEW_TK): Tagged <node>. 15850 (type_literals, array_type_literal): New rules, tagged <node>. 15851 (class_declaration:): Removed action when reducing by class_body: 15852 (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value 15853 using GET_CPC in sub-rules. 15854 (class_member_declaration): Handle inner classes. 15855 (method_declaration): When reducing method_header:, reset 15856 current_function_decl when appropriate. 15857 (method_declarator:): Set the number of formal parameter to 0 for 15858 method declared without arguments. 15859 (constructor_declarator:): Likewise. 15860 (static_initializer:): List of elements kept in a list. 15861 (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct 15862 use of the keyword `static' for type declarations. 15863 (block_statement:): Handle inner class declarations. 15864 (primary_no_new_array:): Use type_literals:. Fixed comment. Handle 15865 type qualified `this'. 15866 (class_instance_creation_expression): Use anonymous_class_creation: 15867 to handle inner class instances creation. Handle qualified `new'. 15868 (something_dot_new): Added appropriate actions. 15869 (create_new_parser_context): New function. 15870 (java_push_parser_context, java_parser_context_save_global, 15871 java_parser_context_suspend): Use create_new_parser_context. 15872 (check_modifiers): Changed leading comment. 15873 (check_class_interface_creation): Handle interclasses. 15874 (add_superinterfaces): Fixed comment. 15875 (create_interface): Build qualified name from the raw_name instead 15876 of its matching WFL. Push the initialized fields list. raw_name added 15877 as an extra argument to maybe_create_class_interface_decl. 15878 (create_class): Build qualified name from the raw_name instead of 15879 its matching WFL. Removed assignment to current_parsed_class_un. 15880 Call PUSH_ERROR before returning an error. Suspend the current 15881 parser context when processing an inner class. Push the 15882 initialized fields list. raw_name added as an extra argument to 15883 maybe_create_class_interface_decl. Add the private this$<n> 15884 field. 15885 (duplicate_declaration_error_p): Use GET_CPC when calling find_field. 15886 (register_fields): Get the class type from GET_CPC and handle 15887 previous errors. Added code to handle the creation of static 15888 fields in inner classes. Initialized fields initialization 15889 statements kept in a list of lists. 15890 (maybe_generate_finit): Initialized fields initialization 15891 statements kept in a list of lists. Use GET_CPC. 15892 (maybe_generate_clinit): Likewise. 15893 (method_header): Use GET_CPC and GET_CPC_UN. 15894 (parser_qualified_classname): Handle inner classes. 15895 (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC. 15896 (java_fix_constructors): Hide pointer to enclosing context 15897 instance in constructor list when dealing with inner classes. 15898 (jdep_resolve_class): Call resolve_class with extra first argument 15899 JDEP_ENCLOSING. 15900 (resolve_class): Add enclosing context as a first extra argument 15901 to do_resolve_class. 15902 (do_resolve_class): Call find_as_inner_class. Handle WFLs 15903 properly. 15904 (resolve_no_layout): Extra argument added to resolve_class 15905 invocation. 15906 (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P. 15907 (java_get_real_method_name): Use GET_CPC_UN. 15908 (check_abstract_method_definitions): Use DECL_CLINIT_P. 15909 (java_check_abstract_methods): Handle static method declared in 15910 inner classes by an error. 15911 (java_check_regular_methods): Use DECL_CLINIT_P. 15912 (source_start_java_method): Also set DECL_MAX_LOCALS. 15913 (create_artificial_method): Call java_parser_context_save_global 15914 and java_parser_context_restore_global instead of saving/restoring 15915 the context by hand. 15916 (expand_start_java_method): Improved verbose mode message. 15917 (java_complete_expand_methods): Fixed leading comment. Use 15918 DECL_CLINIT_P. 15919 (fix_constructors): Added assignment to this$<n> if necessary. 15920 (java_expand_classes): Call java_complete_expand_classes instead 15921 of java_complete_expand_methods. 15922 (make_qualified_primary): Simplified. 15923 (merge_qualified_name): Optimized for missing left or right parts. 15924 (resolve_expression_name): Handle access to outer class fields from 15925 interclasses. 15926 (resolve_qualified_expression_name): New macro 15927 RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner 15928 classes. Report error on non appropriate qualification of 15929 `new'. Handle qualified `this'. 15930 (not_accessible_p): Allow access to outer class private fields from 15931 inner classes. 15932 (patch_method_invocation): Handle method invocations through 15933 access methods and inner class constructor invocations. 15934 (find_applicable_accessible_methods_list): Search enclosing 15935 contexts of an inner class. 15936 (search_applicable_methods_list): Fixed typo. 15937 (argument_types_convertible): Handle inner class constructors' 15938 hidden outer context reference argument. 15939 (qualify_ambiguous_name): Handle qualified `this'. 15940 (java_complete_lhs): Handle use of field accessed through 15941 artificial access methods in various cases of assignments. Handle 15942 CLASS_LITERAL node. 15943 (check_final_assignment): Use DECL_CLINIT_P. 15944 (valid_ref_assignconv_cast_p): Handle the destination being an 15945 enclosing context of the source. 15946 (patch_unaryop): Handle use of field accessed through artificial 15947 access methods. 15948 (patch_return): Use DECL_CLINIT_P. 15949 (patch_throw_statement): Use DECL_CLINIT_P. 15950 (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P. 15951 * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and 15952 ID_INIT_P. 15953 159542000-01-16 Anthony Green <green@cygnus.com> 15955 15956 * parse.y (build_string_concatenation): Only use 15957 StringBuffer(String) shortcut if String arg is constant. 15958 159592000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 15960 15961 * jcf-write.c (generate_bytecode_insns): binop: Change the type of 15962 the shift value to int. Fixed typo in comment. 15963 159642000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 15965 15966 * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros. 15967 * jcf-write.c: Likewise. 15968 * parse.y: Likewise. 15969 * parse.c: Regenerate. 15970 159712000-01-09 Anthony Green <green@cygnus.com> 15972 15973 * jcf-write.c (generate_bytecode_insns): Emit invokeinterface 15974 bytecodes in the correct order. 15975 159762000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15977 15978 * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS). 15979 159802000-01-06 Anthony Green <green@cygnus.com> 15981 15982 * expr.c (java_lang_expand_expr): Switch to permanent obstack 15983 before building constant array decl. 15984 159852000-01-06 Alexandre Petit-Bianco <apbianco@cygnus.com> 15986 15987 * jcf-write.c (generate_bytecode_conditional): Fixed indentation in 15988 method invocation and typo in conditional expression. 15989 (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue 15990 the appropriate NOTE_POP. 15991 * parse.y (patch_binop): Shift value mask to feature the right 15992 type. 15993 159941999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15995 15996 * class.c (assume_compiled, assume_compiled_node): Add static 15997 prototype. 15998 (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup. 15999 16000 * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch. 16001 16002 * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN. 16003 16004 * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier' 16005 to `__modifier' to avoid stringifying it. 16006 16007 * parse.y (verify_constructor_circularity): Don't call a variadic 16008 function with a non-literal format string. 16009 (java_check_abstract_methods): Move unreachable code inside 16010 `continue' statement. 16011 (lookup_method_invoke): Call xstrdup, not strdup. 16012 16013 * expr.c (expand_java_field_op): Avoid the use of ANSI string 16014 concatenation. 16015 16016 * jcf-parse.c (yyparse): Likewise. 16017 16018 * jv-scan.c (main): Likewise. 16019 160201999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16021 16022 * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, 16023 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC, 16024 ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string 16025 concatenation. 16026 16027 * parse.y (synchronized, variable_redefinition_error, 16028 check_class_interface_creation, create_interface, create_class, 16029 method_header, finish_method_declaration, 16030 check_modifiers_consistency, method_declarator, 16031 complete_class_report_errors, check_abstract_method_definitions, 16032 java_check_regular_methods, check_throws_clauses, 16033 java_check_abstract_methods, read_import_dir, 16034 check_pkg_class_access, declare_local_variables, fix_constructors, 16035 cut_identifier_in_qualified, resolve_expression_name, 16036 resolve_qualified_expression_name, patch_method_invocation, 16037 java_complete_lhs, patch_assignment, try_builtin_assignconv, 16038 patch_binop, patch_array_ref, patch_newarray, build_labeled_block, 16039 patch_exit_expr, patch_exit_expr, patch_switch_statement, 16040 patch_try_statement, patch_synchronized_statement, 16041 patch_throw_statement, check_thrown_exceptions, 16042 patch_conditional_expr): Likewise. 16043 160441999-12-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 16045 16046 * Makefile.in (LIBDEPS): Added gcc's errors.o 16047 (../jcf-dump$(exeext):): Link with gcc's errors.o 16048 (../gcjh$(exeext):): Likewise. 16049 * expr.c (expand_java_NEW): Layout the entire target type instead of 16050 laying out its methods only. 16051 (lookup_field): Layout the class after having loaded it. 16052 * java-tree.h (java_debug_context): Declared. 16053 * jcf-io.c (toplev.h): Included. 16054 (find_class): Removed assignment to jcf's outofsynch 16055 field. Force source file to be read if newer than its matching 16056 class file. Tweaked debug messages. 16057 * jcf-parse.c (jcf_out_of_synch): Deleted. 16058 (read_class): Call to jcf_out_of_synch removed. 16059 * jcf.h (typedef struct JCF): Field `outofsynch' deleted. 16060 (jcf_out_of_synch): Prototype deleted. 16061 * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag', 16062 `deprecated' and `class_err': integer turned into bit-fields. 16063 New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments. 16064 * parse.y (package_list): New global. 16065 (package_declaration:): Record newly parsed package name. 16066 (extra_ctxp_pushed_p): Static global deleted. 16067 (java_parser_context_save_global): Create buffer context for the 16068 purpose of saving globals, if necessary. 16069 (java_parser_context_restore_global): Pop context pushed for the 16070 purpose of saving globals, if necessary. 16071 (java_debug_context_do): New prototype and function. 16072 (java_debug_context): Likewise. 16073 (do_resolve_class): Use already parsed package names to qualify 16074 and lookup class candidate. 16075 (java_pre_expand_clinit): Removed unnecessary local variable. 16076 160771999-12-17 Tom Tromey <tromey@cygnus.com> 16078 16079 * gjavah.c (decode_signature_piece): Print "::" in JArray<>. This 16080 fixes PR gcj/119. 16081 (process_file): Use `\n\' at end of each line in string. 16082 160831999-12-16 Alexandre Petit-Bianco <apbianco@cygnus.com> 16084 16085 * expr.c (expand_invoke): Layout the loaded class before 16086 attempting to use it. 16087 (expand_java_field_op): Allow final field assignments to take 16088 place in $finit$. 16089 * typeck.c (convert): Return error_mark_node if expr is null. 16090 160911999-12-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 16092 16093 * class.c (class_depth): Return -1 if the class doesn't load 16094 properly. 16095 * expr.c (can_widen_reference_to): Check for errors during depth 16096 computation and return 0 accordingly. 16097 * jcf-parse.c (parse_source_file): Call java_fix_constructors to 16098 create default constructors and add an other error check. 16099 * parse.h (java_fix_constructors): Prototyped. 16100 * parse.y (java_pre_expand_clinit): Likewise. 16101 (build_super_invocation): Re-prototyped to feature one argument. 16102 (java_check_circular_reference): Directly use `current'. 16103 (java_fix_constructors): New function. 16104 (java_check_regular_methods): Don't create default constructors 16105 here, but abort if none were found. 16106 (java_complete_expand_methods): Pre-process <clinit> calling 16107 java_pre_expand_clinit. 16108 (java_pre_expand_clinit): New function. 16109 (fix_constructors): build_super_invocation invoked with the 16110 current method declaration as an argument. 16111 (build_super_invocation): Use the context of the processed method 16112 decl argument instead of current_class. 16113 * typeck.c (lookup_java_method): Take WFLs in method names into 16114 account. 16115 161161999-12-14 Per Bothner <per@bothner.com> 16117 16118 * class.c (make_class_data): flag_keep_inline_functions to keep 16119 private methods in the method array. 16120 161211999-12-15 Anthony Green <green@cygnus.com> 16122 16123 * check-init.c (check_init): Take into account both types of 16124 `throw's when checking for uninitialized variables. 16125 161261999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 16127 16128 * parse.y (java_complete_lhs): Force conversion of array 16129 dimensions to int_type_node, that's what runtime's ABI expects. 16130 161311999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 16132 16133 * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third 16134 operand of a WFL, until the Java front-end gets fixed with regard 16135 to Mark Mitchell's gcc/tree.h patch (1999-12-04.) 16136 161371999-12-10 Andrew Haley <aph@cygnus.com> 16138 16139 * parse.h (BUILD_THROW): Add support for sjlj-exceptions. 16140 decl.c (init_decl_processing): Add _Jv_Sjlj_Throw. 16141 expr.c (build_java_athrow): Add support for sjlj-exceptions. 16142 java-tree.h: Ditto. 16143 jcf-write.c: Ditto. 16144 161451999-12-08 Alexandre Petit-Bianco <apbianco@cygnus.com> 16146 16147 * expr.c (java_lang_expand_expr): Switch to permanent obstack 16148 before calling expand_eh_region_start and expand_start_all_catch. 16149 * except.c (expand_start_java_handler): Switch to permanent 16150 obstack before calling expand_eh_region_start. 16151 (expand_end_java_handler): Switch to permanent obstack before 16152 calling expand_start_all_catch. 16153 161541999-12-5 Anthony Green <green@cygnus.com> 16155 16156 * decl.c (init_decl_processing): Mark throw_node as a noreturn 16157 function with side effects. 16158 (init_decl_processing): Mark all memory allocating DECLs with 16159 DECL_IS_MALLOC. 16160 161611999-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 16162 16163 * except.c (expand_end_java_handler): Call 16164 expand_resume_after_catch and end_catch_handler. 16165 161661999-11-30 Anthony Green <green@cygnus.com> 16167 16168 * verify.c (verify_jvm_instructions): Create new return label 16169 chain if non existent (don't rely on the verified state of the jsr 16170 target.) 16171 161721999-11-30 Alexandre Petit-Bianco <apbianco@cygnus.com> 16173 16174 * jcf-write.c (generate_bytecode_insns): Fixed indentation for 16175 COMPOUND_EXPR and FIX_TRUNC_EXPR cases. 16176 16177 * parse.y (patch_assignment): Removed bogus final class test on 16178 lhs when checking on whether to emit an ArrayStoreException runtime 16179 check. 16180 * expr.c (expand_java_arraystore): Likewise. 16181 161821999-11-28 Anthony Green <green@cygnus.com> 16183 16184 * decl.c (find_local_variable): Reuse single slot decls when 16185 appropriate. 16186 161871999-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 16188 16189 * jcf-parse.c (saw_java_source): Global variable removed. 16190 (read_class): Don't use `saw_java_source'. Added extra braces. 16191 (yyparse): Code setting `saw_java_source' removed. 16192 161931999-11-24 Mark Mitchell <mark@codesourcery.com> 16194 16195 * except.c (emit_handlers): Zero catch_clauses after emitting them. 16196 161971999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 16198 16199 * verify.c (merge_type_state): Non verified subroutines being 16200 considered more than once to trigger passive type merge. 16201 162021999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 16203 16204 * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE 16205 in case of error. Error message tuned. 16206 162071999-11-21 Anthony Green <green@cygnus.com> 16208 16209 * constants.c (find_methodref_index): Unwrap method names before 16210 inserting them in the constant pool. 16211 16212 * jcf-parse.c (jcf_parse): Display `interface' when appropriate. 16213 16214 * class.c (assume_compiled_node): New typedef. 16215 (assume_compiled_tree): New static data. 16216 (find_assume_compiled_node): New function. 16217 (add_assume_compiled): New function. 16218 (assume_compiled): New function. 16219 * class.c (make_class_data): Use assume_compiled. 16220 (is_compiled_class): Use assume_compiled. 16221 16222 * java-tree.h (add_assume_compiled): Declare. 16223 16224 * lang.c (lang_decode_option): Parse new options. 16225 162261999-11-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 16227 16228 * class.c (layout_class): Always convert TYPE_SIZE_UNIT to 16229 int_type_node: that's what `_Jv_AllocObject' expects. 16230 162311999-11-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 16232 16233 * parse.y (lookup_method_invoke): Use lang_printable_name to 16234 reliably build the type name during error report. Fixes PR gcj/97. 16235 162361999-11-09 Tom Tromey <tromey@cygnus.com> 16237 16238 * jcf-path.c: Include <sys/stat.h>. 16239 (jcf_path_init): Search for libjava.zip. Fixes PR gcj/84. 16240 (DIR_UP): New macro. 16241 162421999-11-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 16243 16244 * parse.y (source_end_java_method): Resume permanent allocation, 16245 reversing Apr 27 1998 patch. 16246 (patch_string_cst): Pop obstacks after having pushed the permanent 16247 ones. 16248 162491999-11-05 Tom Tromey <tromey@cygnus.com> 16250 16251 * class.c (finish_class): Emit inlined methods if any native 16252 methods exist in the class. Fixes PR gcj/85. 16253 162541999-11-04 Alexandre Petit-Bianco <apbianco@cygnus.com> 16255 16256 * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR. 16257 (qualify_ambiguous_name): Likewise. 16258 162591999-11-03 Godmar Back <gback@cs.utah.edu> 16260 16261 * typeck.c: (lookup_java_method): search all inherited 16262 interfaces when looking up interface method. 16263 162641999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 16265 16266 * parse.y (method_header:): Issue error message for rule `type 16267 error'. 16268 (synchronized:): Error report when not using synchronized. 16269 162701999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 16271 16272 * parse.y (resolve_qualified_expression_name): Prevent `this' from 16273 being used before the superclass constructor has been called. 16274 (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P 16275 instead of `CALL_THIS_CONSTRUCTOR_P'. 16276 162771999-10-30 Todd T. Fries <todd@lighthouse.fries.net> 16278 16279 * check-init.c: Fix typo in comment. 16280 162811999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 16282 16283 * class.c (add_method_1): Set DECL_INLINE to 1 for private, static 16284 and final method. 16285 162861999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 16287 16288 * parse.y (expression_statement:): Call function to report 16289 improper invocation of a constructor. 16290 (parse_ctor_invocation_error): New function. 16291 162921999-10-26 Mark Mitchell <mark@codesourcery.com> 16293 16294 * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call 16295 remember_end_note. 16296 162971999-10-21 Tom Tromey <tromey@cygnus.com> 16298 16299 * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set 16300 in generated `main'. 16301 163021999-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com> 16303 16304 * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR. 16305 (qualify_ambiguous_name): Likewise. 16306 163071999-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 16308 16309 * parse.y (java_complete_tree): fold_constant_for_init to work on 16310 permanent_obstack. 16311 (java_complete_lhs): Likewise. 16312 (array_constructor_check_entry): Complete an initializer element 16313 on permanent_obstack. 16314 163151999-10-19 Tom Tromey <tromey@cygnus.com> 16316 16317 * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file. 16318 From Mike Moreton <mike@pillim.demon.co.uk>. 16319 163201999-10-15 Greg McGary <gkm@gnu.org> 16321 16322 * java-tree.h (flag_bounds_check): Remove extern decl. 16323 * lang.c (flag_bounds_check): Remove global variable. 16324 (lang_f_options): Remove "bounds-check" entry. 16325 (lang_init_options): Default flag_bounds_check to "on". 16326 163271999-10-14 Tom Tromey <tromey@cygnus.com> 16328 16329 * jvgenmain.c (usage): New function. 16330 (main): Use it. Also, handle `-D' options. 16331 * jvspec.c (lang_specific_driver): Recognize -D. 16332 (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation. 16333 16334 * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'. 16335 163361999-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16337 16338 * jcf-dump.c (print_constant, disassemble_method): Don't call a 16339 variadic function with a non-literal format string. 16340 16341 * parse-scan.y (report_main_declaration): Likewise. 16342 16343 * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise. 16344 16345 * parse.y (read_import_dir, patch_assignment, patch_binop, 16346 patch_array_ref): Likewise. 16347 16348 * typeck.c (build_java_array_type): Likewise. 16349 16350 * verify.c (verify_jvm_instructions): Likewise. 16351 163521999-10-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 16353 16354 * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1. 16355 163561999-10-07 Anthony Green <green@cygnus.com> 16357 16358 * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases 16359 where CHECK_PUT may fail for valid reasons. 16360 16361 * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3, 16362 UNSAFE_PUTN): New macros. 16363 163641999-10-04 Tom Tromey <tromey@cygnus.com> 16365 16366 * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as 16367 well. Fixes Java PR gcj/59. 16368 * parse-scan.y (yyerror): Report errors. 16369 163701999-09-24 Glenn Chambers <GChambers@provsol.com> 16371 16372 * decl.c (insert_block): Remove unconditional `abort'. 16373 163741999-09-24 Bernd Schmidt <bernds@cygnus.co.uk> 16375 16376 * decl.c (builtin_function): No longer static. New arg CLASS. Arg 16377 FUNCTION_CODE now of type int. All callers changed. 16378 Set the builtin's DECL_BUILT_IN_CLASS. 16379 163801999-09-23 Tom Tromey <tromey@cygnus.com> 16381 16382 * jvspec.c (lang_specific_driver): Don't read spec file if 16383 -fsyntax-only given. 16384 163851999-09-22 Tom Tromey <tromey@cygnus.com> 16386 16387 * lang-specs.h: Added `%(jc1)' to the jc1 spec. 16388 16389 * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally. 16390 (WORDS_TO_LONG): Likewise. 16391 (WORDS_TO_DOUBLE): Likewise. 16392 163931999-09-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 16394 16395 * jcf-write.c (RELOCATION_VALUE_0): New macro. 16396 (RELOCATION_VALUE_1): Likewise. 16397 (emit_iinc, emit_reloc, push_constant1, push_constant2, 16398 push_in_const, push_long_const): Prototyped. 16399 (push_constant1): Argument `index' is of type HOST_WIDE_INT. 16400 (push_constant2): Likewise. 16401 (push_int_const): Cast find_constant1's integer arguments to `jword'. 16402 (find_constant_wide): Cast find_constant2's integer arguments to 16403 `jword'. 16404 (find_constant_index): Cast find_constant2's and find_constant2's 16405 integer arguments to `jword'. 16406 (emit_pop): Argument `value' is of type HOST_WIDE_INT. 16407 (emit_switch_reloc): Use RELOCATION_VALUE_0. 16408 (emit_if): Use RELOCATION_VALUE_1. 16409 (emit_goto): Likewise. 16410 (emit_jsr): Likewise. 16411 (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second 16412 argument to push_long_const to HOST_WIDE_INT. 16413 164141999-09-15 Andreas Schwab <schwab@suse.de> 16415 16416 * Makefile.in (parse.o): Depend on $(JAVA_TREE_H). 16417 164181999-09-20 Nick Clifton <nickc@cygnus.com> 16419 16420 * lang.c (lang_decode_option): Extend comment. 16421 164221999-09-16 Alexandre Petit-Bianco <apbianco@cygnus.com> 16423 16424 * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK 16425 instead of fndecl. 16426 164271999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16428 16429 * gjavah.c (get_field_name, print_method_info, print_include, 16430 add_namelet): Use xmalloc, not malloc. 16431 16432 * jcf-depend.c (add_entry): Likewise. Use xstrdup, not strdup. 16433 (munge): Use xrealloc, not realloc, trust xrealloc to handle a 16434 NULL pointer. 16435 16436 * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup. 16437 16438 * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise. 16439 16440 * jcf-path.c (add_entry): Likewise. 16441 16442 * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc. 16443 16444 * jv-scan.c (xmalloc): Remove definition. 16445 16446 * jvgenmain.c (xmalloc): Likewise. 16447 16448 * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero. 16449 16450 * lex.c (java_store_unicode): Use xrealloc, not realloc. 16451 16452 * parse-scan.y: Use concat, not of xmalloc/assign/strcpy. Use 16453 concat, not xmalloc/sprintf. 16454 (java_push_parser_context): Use xcalloc, not xmalloc/bzero. 16455 (xstrdup): Remove definition. 16456 16457 * parse.y (duplicate_declaration_error_p, 16458 constructor_circularity_msg, verify_constructor_circularity, 16459 check_abstract_method_definitions, java_check_regular_methods, 16460 java_check_abstract_methods, patch_method_invocation, 16461 check_for_static_method_reference, patch_assignment, patch_binop, 16462 patch_cast, array_constructor_check_entry, patch_return, 16463 patch_conditional_expr): Use xstrdup, not strdup. 16464 16465 * zextract.c (ALLOC): Use xmalloc, not malloc. 16466 164671999-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16468 16469 * Make-lang.in (jvspec.o): Depend on system.h and gcc.h. 16470 16471 * jvspec.c: Include gcc.h. Don't include gansidecl.h. 16472 (do_spec, lang_specific_pre_link, lang_specific_driver, 16473 input_filename, input_filename_length): Don't declare. 16474 (main_class_name, jvgenmain_spec, lang_specific_driver): 16475 Constify a char*. 16476 (lang_specific_driver): All calls to the function pointer 16477 parameter now explicitly call `fatal'. 16478 164791999-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 16480 16481 * parse.y (find_applicable_accessible_methods_list): Search 16482 abstract classes as interfaces. 16483 164841999-09-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 16485 16486 * class.c (finish_class): We're now outside a valid method 16487 declaration. Tell the rest of gcc so. 16488 164891999-09-08 Bruce Korb autogen@linuxbox.com 16490 16491 * Makefile.in: Give the gperf user a hint about why "gperf -F" fails. 16492 164931999-09-07 Tom Tromey <tromey@cygnus.com> 16494 16495 * gjavah.c (add_class_decl): Generate include for gcj/array.h, not 16496 java-array.h. 16497 (decode_signature_piece): Don't emit "::" in JArray<>. 16498 (print_namelet): Only print trailing `;' when printing a class. 16499 165001999-09-10 Bernd Schmidt <bernds@cygnus.co.uk> 16501 16502 * java-tree.h: Delete declarations for all tree nodes now moved to 16503 global_trees. 16504 * decl.c: Delete their definitions. 16505 165061999-09-04 Mark Mitchell <mark@codesourcery.com> 16507 16508 * Make-lang.in (jc1): Depend on ggc-callbacks.o. 16509 * Makefile.in (OBJS): Add ggc-callbacks.o. 16510 (OBJDEPS): Likewise. 16511 165121999-09-03 Tom Tromey <tromey@cygnus.com> 16513 16514 * parse.y (strip_out_static_field_access_decl): Return operand if 16515 it satisfies JDECL_P. 16516 165171999-09-02 Tom Tromey <tromey@cygnus.com> 16518 16519 * gjavah.c (decode_signature_piece): Emit "::" in JArray<>. 16520 Handle nested arrays, like `[[I'. 16521 165221999-09-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16523 16524 * class.c (finish_class): Remove unused parameter, all callers 16525 changed. 16526 16527 * expr.c (build_java_athrow): Change return type to void. 16528 (java_lang_expand_expr): Make sure each case in switch returns a 16529 value. 16530 16531 * java-tree.h (finish_class): Fix prototype to take void args. 16532 16533 * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN. 16534 (main): Issue return from main, not exit. 16535 16536 * jcf-parse.c (parse_class_file): Fix call to `finish_class'. 16537 16538 * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN. 16539 16540 * jv-scan.c (main): Issue return from main, not exit. 16541 16542 * parse.y (check_abstract_method_definitions, 16543 java_check_abstract_method_definitions): Add static prototypes. 16544 (java_complete_expand_methods): Fix call to `finish_class'. 16545 16546 * verify.c (verify_jvm_instructions): Initialize variables `oldpc' 16547 and `prevpc'. 16548 165491999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16550 16551 * lang.c (language_string): Constify. 16552 165531999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16554 16555 * Makefile.in (LIBS): Fix definition so we link with $(CLIB). 16556 Remove hacks for stuff which comes from libiberty. 16557 16558 * Make-lang.in: Likewise. 16559 165601999-08-30 Hans-Peter Nilsson <hp@axis.se> 16561 16562 * Makefile.in (xref.o): Depend on xref.c explicitly. 16563 165641999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16565 16566 * java-tree.h (lang_printable_name): Constify a char*. 16567 16568 * lang.c (lang_printable_name): Likewise. 16569 165701999-08-27 Jeffrey A Law (law@cygnus.com) 16571 16572 * gjavah.c, jcf-write.c, verify.c: Do not use C++ style 16573 comments in C code. 16574 165751999-08-26 Tom Tromey <tromey@cygnus.com> 16576 16577 * gjavah.c (print_cxx_classname): Print "::" before qualified 16578 name. 16579 165801999-08-26 Alexandre Petit-Bianco <apbianco@cygnus.com> 16581 16582 * parse.y (lookup_cl): Changed leading comment. Now does its best 16583 to set the column number. 16584 (qualify_ambiguous_name): Take WFL wrappers into account. 16585 165861999-08-25 Gregg Townsend <gmt@cs.arizona.edu> 16587 16588 * verify.c (verify_jvm_instructions): Don't check instruction 16589 validity beyond end of method. 16590 165911999-08-25 Tom Tromey <tromey@cygnus.com> 16592 16593 * jvspec.c (lang_specific_driver): Correctly handle --help again. 16594 165951999-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16596 16597 * gjavah.c (print_name, print_base_classname, utf8_cmp, 16598 cxx_keyword_subst, generate_access, name_is_method_p, 16599 get_field_name, print_field_name, super_class_name, print_include, 16600 decode_signature_piece, print_class_decls, usage, help, 16601 java_no_argument, version, add_namelet, print_namelet): Add static 16602 prototype. 16603 (print_base_classname, utf8_cmp, cxx_keyword_subst, 16604 name_is_method_p): Constify a char*. 16605 (get_field_name): Likewise. Prefer xstrdup over malloc/strcpy. 16606 Provide a final else clause in an if-else-if. 16607 (print_field_info): Add missing final arg in function call to 16608 `print_field_name'. 16609 (print_method_info, decompile_method, decode_signature_piece, 16610 print_c_decl, print_full_cxx_name, print_stub, 16611 print_mangled_classname, super_class_name, print_include, 16612 add_namelet, add_class_decl, print_class_decls, process_file, 16613 help): Constify a char*. 16614 16615 * jcf-write.c (jcf_handler, push_constant1, push_constant2, 16616 push_int_const, find_constant_wide, find_constant_index, 16617 push_long_const, field_op, maybe_wide, emit_dup, emit_pop, 16618 emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop, 16619 emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc, 16620 emit_if, emit_goto, emit_jsr, call_cleanups, 16621 make_class_file_name): Add static prototypes. 16622 (generate_bytecode_return, generate_bytecode_insns): Pass a 16623 NULL_PTR, not a NULL_TREE. 16624 16625 * jv-scan.c: Include "jcf.h". 16626 (main): Declare using DEFUN macro. 16627 16628 * jvspec.c (find_spec_file, lang_specific_pre_link, 16629 lang_specific_driver): Add prototypes. 16630 (find_spec_file): Constify a char*. 16631 16632 * keyword.gperf (hash, java_keyword): Add prototypes. 16633 16634 * lang.c (lang_print_error): Add static prototype. 16635 (lang_init): Prefer memcpy over bcopy to avoid casts. 16636 16637 * lex.c (yylex): Add static prototype. 16638 16639 * parse-scan.y: Include "lex.c" earlier. 16640 16641 * parse.h: Remove redundant declaration for `yylex'. 16642 16643 * parse.y (java_decl_equiv, binop_compound_p, search_loop, 16644 labeled_block_contains_loop_p): Add static prototypes. 16645 (not_accessible_p): Make static to match prototype. 16646 16647 * verify.c (start_pc_cmp): Don't needlessly cast away const. 16648 166491999-08-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 16650 16651 * parse.y (check_method_redefinition): Changed leading comment. 16652 (check_abstract_method_definitions): New function. 16653 (java_check_abstract_method_definitions): New function. 16654 (java_check_regular_methods): Call it. 16655 (verify_constructor_super): Fixed indentation. 16656 (lookup_method_invoke): Likewise. 16657 166581999-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 16659 16660 * parse.y (method_header): Return a null pointer if the current 16661 class node is null. 16662 (finish_method_declaration): Return if the current function decl 16663 is null. 16664 (source_start_java_method): Likewise. 16665 (java_method_add_stmt): Likewise. 16666 166671999-08-18 Alexandre Petit-Bianco <apbianco@cygnus.com> 16668 16669 * class.c (emit_register_class): Removed unnecessary call to 16670 start_sequence. 16671 * parse.y (labeled_block_contains_loop_p): Removed unused local 16672 variable. 16673 166741999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 16675 16676 * parse.y (java_refold): Added prototype. 16677 166781999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 16679 16680 * parse.y (BINOP_COMPOUND_CANDIDATES): New macro. 16681 (java_stabilize_reference): Removed unnecessary `else'. 16682 (java_complete_lhs): Set flag to remember boolean. Call 16683 java_refold. Added comments. 16684 (java_decl_equiv): New function. 16685 (binop_compound_p): Likewise. 16686 (java_refold): Likewise. 16687 (patch_unaryop): Striped static field access assigned to decl and 16688 op. Changed promotion scheme for ++/-- operators. 16689 (search_loop): New function. 16690 (labeled_block_contains_loop_p): Likewise. 16691 (patch_loop_statement): Call labeled_block_contains_loop_p. Added 16692 comment. 16693 (patch_bc_statement): Call search_loop. Fixed comment. 16694 166951999-08-14 Anthony Green <green@cygnus.com> 16696 16697 * expr.c (java_lang_expand_expr): Mark static array data as 16698 referenced. 16699 167001999-08-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 16701 16702 * jvgenmain.c (main): NUL-terminate name_obstack. 16703 167041999-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16705 16706 * check-init.c (check_bool2_init, done_alternative): Add static 16707 prototypes. 16708 16709 * class.c (add_interface_do, maybe_layout_super_class): Likewise. 16710 (add_method, build_utf8_ref, build_class_ref, 16711 append_gpp_mangled_type, layout_class_method): Constify a char*. 16712 16713 * decl.c (push_promoted_type, make_binding_level): Add static 16714 prototypes. 16715 (push_promoted_type, pushdecl): Constify a char*. 16716 16717 * except.c (find_handler_in_range, link_handler, 16718 check_start_handlers): Add static prototypes. 16719 16720 * expr.c (process_jvm_instruction): Constify a char*. 16721 16722 * gjavah.c (main): Constify a char*. 16723 16724 * java-tree.h (verify_jvm_instructions, process_jvm_instruction): 16725 Constify a char*. 16726 16727 * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add 16728 static prototypes. 16729 (add_entry, jcf_dependency_set_target, jcf_dependency_add_target, 16730 munge, print_ents): Constify a char*. 16731 16732 * jcf-dump.c (disassemble_method): Constify a char*. 16733 (print_constant_pool, print_exception_table): Add static prototypes. 16734 (print_constant, print_exception_table, main, disassemble_method): 16735 Constify a char*. 16736 16737 * jcf-io.c (find_classfile, find_class): Likewise. 16738 16739 * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise. 16740 (set_source_filename, predefined_filename_p): Add static prototypes. 16741 (set_source_filename, get_constant, get_class_constant, 16742 find_in_current_zip): Constify a char*. 16743 16744 * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add 16745 static prototypes. 16746 (add_entry, add_path, jcf_path_classpath_arg, 16747 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*. 16748 16749 * jcf-reader.c (get_attribute, jcf_parse_preamble, 16750 jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields, 16751 jcf_parse_one_method, jcf_parse_methods, 16752 jcf_parse_final_attributes): Add static prototypes. 16753 (get_attribute): Constify a char*. 16754 16755 * jcf.h (find_class, find_classfile, jcf_dependency_set_target, 16756 jcf_dependency_add_target, jcf_path_classpath_arg, 16757 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*. 16758 16759 * jv-scan.c (main): Constify a char*. 16760 (gcc_obstack_init): Add prototype arguments. 16761 16762 * jvgenmain.c (gcc_obstack_init): Likewise. 16763 (main): Constify a char*. 16764 16765 * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add 16766 static prototypes. 16767 (put_decl_string, lang_print_error): Constify a char*. 16768 (lang_init): Remove redundant extern prototype. 16769 16770 * mangle.c (emit_unicode_mangled_name): Constify a char*. 16771 16772 * typeck.c (convert_ieee_real_to_integer, parse_signature_type): 16773 Add static prototypes. 16774 (get_type_from_signature): Constify a char*. 16775 16776 * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ): 16777 Add static prototypes. 16778 (start_pc_cmp): Prefer PTR over GENERIC_PTR. 16779 (verify_jvm_instructions): Constify a char*. 16780 16781 * xref.c (xref_flag_value): Likewise. 16782 16783 * xref.h (xref_flag_value): Likewise. 16784 16785 * zextract.c (makeword, makelong): Add static prototypes. 16786 (makeword, makelong): Constify a uch*. 16787 167881999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16789 16790 * lang.c (java_dummy_print): Constify a char*. 16791 (lang_print_error): Likewise. 16792 (lang_init): Remove redundant prototype for `print_error_function'. 16793 (lang_init_source): Likewise. 16794 (lang_identify): Constify a char*. 16795 167961999-08-09 Tom Tromey <tromey@cygnus.com> 16797 16798 * javaop.h (WORD_TO_FLOAT): only inline if building with gcc. 16799 (WORDS_TO_LONG): Likewise. 16800 (WORDS_TO_DOUBLE): Likewise. 16801 168021999-08-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16803 16804 * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H). 16805 16806 * expr.c (java_stack_pop, java_array_data_offset, 16807 build_java_throw_out_of_bounds_exception, case_identity, 16808 build_java_check_indexed_type): Add static prototypes. 16809 (linenumber_table, expand_invoke, expand_java_field_op, 16810 build_primtype_type_ref, expand_byte_code): Constify a char*. 16811 16812 * java-tree.h (build_primtype_type_ref, linenumber_table): 16813 Constify a char*. 16814 (java_lang_expand_expr): Add prototype. 16815 16816 * lang.c: Include rtl.h and expr.h. Remove extern prototype for 16817 `java_lang_expand_expr'. 16818 16819 * lex.c (java_lex_error): Constify a char*. 16820 (java_get_unicode, java_read_char, java_allocate_new_line, 16821 java_unget_unicode, java_sneak_unicode): Prototype. 16822 16823 * parse-scan.y (current_class, package_name, method_declarator, 16824 report_class_declaration, yyerror): Constify a char*. 16825 16826 * parse.h (java_report_errors): Prototype. 16827 (yyerror): Constify a char*. 16828 16829 * parse.y (classitf_redefinition_error, check_modifiers, 16830 parse_jdk1_1_error, lookup_package_type, 16831 lookup_package_type_and_set_next, get_printable_method_name, 16832 purify_type_name): Constify a char*. 16833 (build_super_invocation, maybe_generate_finit, 16834 verify_constructor_super, parser_add_interface, 16835 add_superinterfaces, jdep_resolve_class, note_possible_classname, 16836 java_complete_expand_methods, java_expand_finals, 16837 cut_identifier_in_qualified, java_stabilize_reference, 16838 do_unary_numeric_promotion, operator_string, do_merge_string_cste, 16839 merge_string_cste): Prototype. 16840 (single_type_import_declaration, yyerror, 16841 variable_redefinition_error, build_array_from_name, 16842 build_unresolved_array_type, check_class_interface_creation, 16843 resolve_class, complete_class_report_errors, 16844 note_possible_classname, read_import_dir, 16845 find_in_imports_on_demand, resolve_package, fix_constructors, 16846 check_deprecation, lookup_method_invoke, 16847 maybe_build_primttype_type_ref, array_constructor_check_entry): 16848 Constify a char*. 16849 (java_complete_expand_methods, java_expand_finals): Make static. 16850 (convert_narrow): Remove static prototype. 16851 168521999-08-03 J"orn Rennecke <amylaar@cygnus.co.uk> 16853 16854 * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h. 16855 168561999-08-02 Richard Henderson <rth@cygnus.com> 16857 16858 * decl.c: Include defaults.h instead of expr.h. 16859 * parse.y: Likewise. 16860 168611999-08-02 Jakub Jelinek <jj@ultra.linux.cz> 16862 16863 * java/decl.c (start_java_method): Change all uses of 16864 PROMOTE_PROTOTYPES, so that it tests it as a C expression. 16865 Ensure expr.h is included. 16866 * java/expr.c (pop_arguments): Ditto. 16867 * java/parse.y (expand_start_java_method): Ditto. 16868 168691999-08-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16870 16871 * Makefile.in (ALL_CFLAGS): Add '-W -Wall'. 16872 168731999-07-31 Bernd Schmidt <bernds@cygnus.co.uk> 16874 16875 * decl.c: Include "function.h". 16876 * except.c: Likewise. 16877 * parse.y: Likewise. 16878 * Makefile.in: Update dependencies. 16879 168801999-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16881 16882 * expr.c (build_java_soft_divmod): Provide a default case in switch. 16883 (java_lang_expand_expr): Mark parameters `target', `tmode' and 16884 `modifier' with ATTRIBUTE_UNUSED. 16885 16886 * gjavah.c (process_file): Add braces around ambiguous `else'. 16887 16888 * jcf-dump.c (print_access_flags, localvar_free): Change return 16889 type to void. 16890 16891 * parse.y (java_complete_expand_method): Initialize variable 16892 `exception_copy'. 16893 (resolve_qualified_expression_name): Likewise for `field_decl'. 16894 (patch_method_invocation): Likewise for `class_to_search'. 16895 (qualify_ambiguous_name): Likewise for `name' and `ptr_type'. 16896 (patch_assignment): Likewise for `lhs_type'. 16897 16898 * verify.c (verify_jvm_instructions): Remove unused variable 16899 `caller'. 16900 169011999-07-25 Richard Henderson <rth@cygnus.com> 16902 16903 * decl.c (va_list_type_node): New. 16904 169051999-07-25 Anthony Green <green@cygnus.com> 16906 16907 * gjavah.c (print_stub): New function. 16908 (METHOD_IS_NATIVE): New macro. 16909 (print_mangled_classname): Make static. 16910 (HANDLE_END_FIELD): Don't emit fields during stub generation. 16911 (process_file): Perform stub generation. 16912 (HANDLE_METHOD): Don't emit class decls during stub 16913 generation. 16914 (HANDLE_END_METHOD): Take into account stub generation. 16915 (print_method_info): Handle stub generation. 16916 (print_stub): New function. 16917 (print_cxx_classname): Make signature consistant with others. 16918 (help): Describe -stubs option. 16919 (main): Create stub file. 16920 (version): Use version.c. 16921 (print_full_cxx_name): New function. 16922 (print_c_decl): Use print_full_cxx_name. 16923 169241999-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 16925 16926 * check-init.c (check_init): Handle MAX_EXPR. 16927 169281999-07-15 Andrew Haley <aph@cygnus.com> 16929 16930 * lang.c (flag_use_divide_subroutine): New variable. 16931 * typeck.c: (convert_ieee_real_to_integer): Bounds check 16932 fp-to-integer conversion. 16933 (convert): Call convert_ieee_real_to_integer when flag_fast_math 16934 is not set. 16935 16936 * expr.c (build_java_soft_divmod): New function. 16937 (build_java_binop): Call build_java_soft_divmod if 16938 flag_use_divide_subroutine is set. 16939 * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree 16940 soft_lrem_node: new builtin functions. 16941 (init_decl_processing) Initialize the new builtins. 16942 * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree 16943 soft_lrem_node: new builtin functions. 16944 (build_java_soft_divmod): New function. 16945 * parse.y: Call build_java_soft_divmod if 16946 flag_use_divide_subroutine is set. 16947 * parse.c: Rebuilt. 16948 16949 * jvspec.c (lang_specific_driver): Always allow an extra arg (for 16950 a --specs= arg) even if not linking. 16951 * lang-options.h (DEFINE_LANG_NAME ("Java")): Add 16952 -fuse-divide-subroutine 16953 169541999-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 16955 16956 * parse.y (resolve_and_layout): Check methods only once. 16957 (resolve_qualified_expression_name): Verify thrown exceptions 16958 compatibility. 16959 (check_thrown_exceptions): Reject exceptions thrown in 16960 initializer. Error message tuned. 16961 169621999-07-14 Andrew Haley <aph@cygnus.com> 16963 16964 * expr.c (expand_expr): Do not return the last statement in a 16965 block as the block's value. 16966 169671999-07-03 Alexandre Petit-Bianco <apbianco@cygnus.com> 16968 16969 * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed 16970 CALL_EXPR, to avoid order of evaluation changes. 16971 169721999-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 16973 16974 * parse.y (qualify_ambiguous_name): Do not use 16975 IDENTIFIER_LOCAL_VALUE when name is a STRING_CST. 16976 169771999-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 16978 16979 * check-init.c (check_init): Handle MAX_EXPR. 16980 * expr.c (force_evaluation_order): Force method call arguments to 16981 be evaluated in left-to-right order. 16982 * parse.y (qualify_ambiguous_name): Loop again to qualify 16983 NEW_ARRAY_EXPR properly. 16984 169851999-06-30 Alexandre Petit-Bianco <apbianco@cygnus.com> 16986 16987 * parse.y (patch_invoke): Resolve unresolved invoked method 16988 returned type. 16989 (qualify_ambiguous_name): STRING_CST to qualify expression for 16990 type name resolution. 16991 169921999-06-24 Andrew Haley <aph@cygnus.com> 16993 16994 * class.c (finish_class): Whenever a deferred method is 16995 output, rescan the list of methods to see if a new candidate for 16996 output can be found. 16997 169981999-06-28 Tom Tromey <tromey@cygnus.com> 16999 17000 * jvspec.c (lang_specific_driver): Recognize --help. 17001 170021999-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 17003 17004 * parse.y (resolve_package): Fixed bogus return statement. 17005 (patch_method_invocation): Resolve method invocation beginning with 17006 a package name qualifier. 17007 170081999-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17009 17010 * Make-lang.in (java.stage1): Depend on stage1-start. 17011 (java.stage2): Likewise for stage2-start. 17012 (java.stage3): Likewise for stage3-start. 17013 (java.stage4): Likewise for stage4-start. 17014 170151999-06-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 17016 17017 * parse.y (java_complete_lhs): When doing cross referencing, don't 17018 try to keep file location on a WFL expanded as a CALL_EXPR. 17019 170201999-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 17021 17022 * parse.y (finish_method_declaration): Insert a RETURN_EXPR when 17023 compiling to class file a void method with an empty method body. 17024 As a side effect, the bytecode backend will generate the 17025 appropriate `return' instruction. 17026 170271999-06-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 17028 17029 * parse.y (lookup_package_type_and_set_next): New function prototype. 17030 (resolve_package): Search current and imported packages. 17031 (lookup_package_type_and_set_next): New function. 17032 170331999-06-22 Andrew Haley <aph@cygnus.com> 17034 17035 * verify.c (verify_jvm_instructions): Check for pending blocks 17036 before invalid PC test and opcode switch, not after. 17037 170381999-06-21 Andrew Haley <aph@cygnus.com> 17039 17040 * except.c (find_handler_in_range): The upper limit for exception 17041 ranges is exclusive, not inclusive: (start <= pc < end). 17042 (link_handler): find child pointer which points to outer by 17043 searching sibling list: previous code incorrectly assumed that 17044 outer->outer->first_child must point to outer. 17045 * verify.c (verify_jvm_instructions): FIXME added to code for 17046 `athrow'. 17047 (verify_jvm_instructions): Do not assume that the last block 17048 processed in a subroutine is a block which ends with a `ret' 17049 instruction. With some control flows it is possible that the last 17050 block ends with an `athrow'. 17051 170521999-06-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 17053 17054 * parse.y (qualify_ambiguous_name): Reorganized the post 17055 evaluation of non WFL leading expression nodes. 17056 170571999-06-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 17058 17059 * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after 17060 CONVERT_EXPR. 17061 170621999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 17063 17064 * parse.y (qualify_ambiguous_name): Handle qualified expression 17065 beginning with a STRING_CST. 17066 170671999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 17068 17069 * parse.y (register_fields): Set DECL_INITIAL on both 17070 pre-initialized static and public fields. 17071 (resolve_field_access): Static field access expressions to always 17072 use pointer types. 17073 (qualify_ambiguous_name): Work out buried CALL_EXPR for proper 17074 qualification. CONVERT_EXPR to be resolved as an expression name. 17075 (java_complete_lhs): Identify and access qualified final 17076 initialized field in switch statement case expression. 17077 (fold_constant_for_init): Pre-initialized field decl constant to 17078 be folded. 17079 170801999-06-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 17081 17082 * parse.y (note_possible_classname): Mark returned node with 17083 QUALIFIED_P only if the original class name contained a '/'. 17084 170851999-06-05 Anthony Green <green@cygnus.com> 17086 17087 * Make-lang.in (gcjh): More parallel build fixes. 17088 170891999-06-03 Mike Stump <mrs@wrs.com> 17090 17091 * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds. 17092 170931999-06-02 Anthony Green <green@cygnus.com> 17094 17095 * except.c (link_handler): Chain exception handlers in order. 17096 170971999-06-02 Anthony Green <green@cygnus.com> 17098 17099 * expr.c (expand_byte_code): Fill unreachable bytecode regions 17100 with nops and process as usual in order to always set correct EH 17101 ranges. Emit detailed warnings about unreachable bytecodes. 17102 171031999-06-02 Anthony Green <green@cygnus.com> 17104 17105 * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as 17106 constant. 17107 171081999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com> 17109 17110 * parse.y (lookup_field_wrapper): Unified returned value to NULL 17111 or the searched field decl. 17112 171131999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com> 17114 17115 * parse.y (fold_constant_for_init): Convert numerical constant 17116 values to the type of the assigned field. 17117 171181999-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 17119 17120 * expr.c (lookup_field): Relaxed the test on class loading error 17121 detection. 17122 * parse.y (fold_constant_for_init): Enabeled old code. 17123 171241999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com> 17125 17126 * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast' 17127 decide the validity of the cast of a java.lang.Cloneable reference 17128 to an array. 17129 (patch_conditional_expr): Fixed first argument passed to 17130 binary_numeric_promotion. 17131 171321999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com> 17133 17134 * parse.y (qualify_ambiguous_name): Take into account that a 17135 CONVERT_EXPR might specify a type as a WFL. 17136 171371999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 17138 17139 * parse.y (patch_assignment): Save the rhs before using it as an 17140 argument to _Jv_CheckArrayStore. 17141 171421999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 17143 17144 * lex.c (java_parse_doc_section): Fixed `tag' buffer size. 17145 171461999-05-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 17147 17148 * lex.c (java_lex): Accepts `+' or `-' after the beginning of a 17149 floating point literal only when the exponent indicator has been 17150 parsed. 17151 171521999-05-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 17153 17154 * parse.y (formal_parameter:): Construct argument tree list 17155 element even if a yet unsupported final parameter was encountered. 17156 171571999-05-18 Alexandre Petit-Bianco <apbianco@cygnus.com> 17158 17159 * parse.y (finish_method_declaration): Issue errors for native or 17160 abstract methods declared with a method body, as well as for non 17161 native or non abstract methods with no method body. 17162 171631999-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17164 17165 * class.c (build_utf8_ref): Initialize variable `field'. 17166 17167 * decl.c (init_decl_processing): Initialize variable `field'. 17168 17169 * expr.c (build_known_method_ref): Mark parameters `method_type', 17170 `method_signature' and `arg_list' with ATTRIBUTE_UNUSED. 17171 (process_jvm_instruction): Likewise for parameter `length'. 17172 17173 * jvspec.c (lang_specific_driver): Mark variables `saw_math', 17174 `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with 17175 ATTRIBUTE_UNUSED. 17176 17177 * parse.y (maybe_generate_clinit): Remove unused variable 17178 `has_non_primitive_fields'. 17179 (find_in_imports_on_demand): Initialize variables `node_to_use' 17180 and `cl'. 17181 (patch_binop): Likewise for variable `prom_type'. 17182 (patch_unaryop): Likewise for variable `prom_type'. 17183 17184 * verify.c (verify_jvm_instructions): Likewise for variable `last'. 17185 17186 * xref.c (xref_table): Add missing initializer. 17187 171881999-05-14 Tom Tromey <tromey@cygnus.com> 17189 17190 * java-except.h (struct eh_range): Removed unused `next' member. 17191 * verify.c (verify_jvm_instructions): Call check_nested_ranges 17192 after adding all exception handlers. Sort exception ranges in 17193 order of start PC. 17194 (struct pc_index): New structure. 17195 (start_pc_cmp): New function. 17196 * except.c (add_handler): Return `void'. Don't call link_handler; 17197 instead construct an ordinary linked list and do range 17198 coalescing. 17199 (check_nested_ranges): New function. 17200 (link_handler): Changed interface to allow merging of eh_ranges. 17201 Split overlapping ranges. Return `void'. 17202 172031999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 17204 17205 * parse.y (constructor_block_end:): New rule, tagged <node>. 17206 (constructor_body:): Use `constructor_block_end' instead of 17207 `block_end'. 17208 172091999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 17210 17211 * parse.y (statement_nsi:): Pop `for' statement block. 17212 (java_complete_lhs): Labeled blocks containing no statement are 17213 marked as completing normally. 17214 172151999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 17216 17217 * xref.c (xref_set_current_fp): New function, defined. 17218 * xref.h (xref_set_current_fp): New function, prototyped. 17219 172201999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 17221 17222 * check-init.c (check_init): Take into account that 17223 LABELED_BLOCK_STMT can be empty. 17224 172251999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 17226 17227 * parse.y (java_check_regular_methods): Warning check on not 17228 overriding methods with default access in other packages does not 17229 apply to `<clinit>'. 17230 (java_complete_lhs): If block body is an empty_stmt_node, replace 17231 it by NULL_TREE. This prevents gcc from generating an irrelevant 17232 warning. 17233 172341999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 17235 17236 * check-init.c (check_init): Removed code accepting to see things 17237 falling through default:, when doing xrefs. 17238 * java-tree.h (do_not_fold): New global variable, declared. 17239 * parse.y (do_not_fold): New global variable, defined. 17240 (java_complete_expand_method): Set `do_not_fold' to the value of 17241 `flag_emit_xref'. When doing xrefs: copy the thrown exceptions, 17242 and reinstall them after them have been purged; do not check for 17243 initializations; do not issue missing return errors. 17244 (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes 17245 when doing xrefs. 17246 (patch_binop): Skip the fold part when doing xrefs. 17247 (build_string_concatenation): Skip the concatenation part when 17248 doing xrefs. 17249 (patch_synchronized_statement): Do not generate a try-finally when 17250 doing xrefs. 17251 (patch_throw_statement): When doing xrefs, do not call BUILD_THROW 17252 and keep the location where the throw was seen. 17253 * typeck.c (convert): When `do_not_fold' is set, do not attempt 17254 any treatment on the converted node an simply return a NOP_EXPR of 17255 the targeted type. 17256 * xref.c (xref_get_data): New function, defined. 17257 * xref.h (xref_get_data): New function, declared. 17258 (XREF_GET_DATA): Use xref_get_data. 17259 172601999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17261 17262 * gjavah.c (print_include): Cast the result of `strlen' to int 17263 when comparing against a signed value. 17264 (add_namelet): Likewise. 17265 172661999-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17267 17268 * expr.c (expand_invoke): Mark parameter `nargs' with 17269 ATTRIBUTE_UNUSED. 17270 (PRE_LOOKUP_SWITCH): Likewise for variable `match'. 17271 17272 * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with 17273 ATTRIBUTE_UNUSED. 17274 17275 * jcf-reader.c (get_attribute): Cast a value to long 17276 when comparing against a signed expression. Likewise. 17277 17278 * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or 17279 HOST_BITS_PER_CHAR. 17280 172811999-05-11 Andrew Haley <aph@cygnus.com> 17282 17283 * parse.y (source_end_java_method): If the current method contains 17284 any exception handlers, force asynchronous_exceptions: this is 17285 necessary because signal handlers in libjava may throw exceptions. 17286 * decl.c (end_java_method): Ditto. 17287 172881999-05-11 Tom Tromey <tromey@cygnus.com> 17289 17290 * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x 17291 flags. 17292 * jvspec.c (THREAD_NAME): Removed. 17293 (GC_NAME): Likewise. 17294 (MATHLIB): Likewise. 17295 (WITHLIBC): Likewise. 17296 (GCLIB): Likewise. 17297 (THREADLIB): Likewise. 17298 (MATH_LIBRARY): Likewise. 17299 (lang_specific_driver): Don't add `-l' options to command line. 17300 Instead, add a single --specs option. Recognize `-L' options and 17301 use them to search for spec file. 17302 (find_spec_file): New function. 17303 (SPEC_FILE): New define. 17304 173051999-05-11 Dave Brolley <brolley@cygnus.com> 17306 17307 * lang-options.h: -MD, -MMD, -M and -MM not needed here for 17308 cpplib-enabled build. 17309 173101999-05-05 Per Bothner <bothner@cygnus.com> 17311 17312 * class.c (make_field_value): DECL_INITIAL may be a string literal; 17313 temporarily zero it while calling rest_of_decl_compilation. 17314 17315 * java-tree.h (string_ptr_type_node): Add declaration. 17316 * decl.c: Define and initialize string_ptr_type_node. 17317 * parse.y (patch_string_cst): Use string_ptr_type_node. 17318 17319 * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P): Removed. 17320 * parse.y (for_statement): Now unconditionally exit_block. 17321 (finish_labeled_statement): No longer exit_block if for-loop. 17322 (patch_loop_statement): Check harder if the loop is already labeled. 17323 17324 * parse.y (patch_initialized_static_field): Removed function. 17325 (maybe_generate_clinit): Removed special handling for interfaces. 17326 (java_complete_expand_methods): Do a preliminary java_complete_tree 17327 on <clinit> to determine if it can be removed. 17328 (java_complete_expand_method): Remove special handling for <clinit>. 17329 (java_complete_lhs): For BLOCK and EXPR_WITH_FILE_LOCATION 17330 optimize if we get back empty_stmt_node. 17331 For MODIFY_EXPR, re-do checking of static initializers. 17332 (fold_constant_for_init): Don't return immediate if VAR_DECL. 17333 For VAR_DECL, pass correct context. 17334 17335 * verify.c (verify_jvm_instructions): Better error messages. 17336 173371999-05-03 Tom Tromey <tromey@cygnus.com> 17338 17339 * parse-scan.y (interface_declaration): Call 17340 report_class_declaration for interfaces. 17341 173421999-04-30 20:54 -0400 Zack Weinberg <zack@rabi.columbia.edu> 17343 17344 * Makefile.in: Remove -v from bison command lines. 17345 173461999-04-30 Alexandre Petit-Bianco <apbianco@cygnus.com> 17347 17348 * check-init.c (check_init): Exclude a case of error when doing 17349 xrefs. 17350 * class.c (layout_class_method): Don't generate the error message 17351 twice when compiling from source. 17352 * lang-options.h: Added `-Wredundant-modifers' and 17353 `-Wunusupported-jdk11' flags and help text. 17354 * lang.c (lang_decode_option): Added support for 17355 `-Wunsupported-jdk11' and `-Wredundant-modifiers'. 17356 flag_static_local_jdk11 and flag_redundant set accordingly. 17357 * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK. 17358 * parse.h (EXPR_WFL_ADD_COL): New macro. 17359 (DECL_END_SOURCE_LINE): Likewise. 17360 (DECL_INHERITED_SOURCE_LINE): Likewise. 17361 * parse.y (static_ref_err): New function, prototyped. 17362 (CCB_TK): Now tagged <operator>. 17363 (class_body:): Remember the location of the closing '}' of a class 17364 definition when doing xrefs. 17365 (block:): Likewise. 17366 (block_end:): Likewise. 17367 (create_class): Remember the location of the inherited class 17368 identifier when doing xrefs. 17369 (register_fields): Added test on first operand of `init' before 17370 testing it TREE_CODE. 17371 (method_header): Store the location of the class identifier in the 17372 class decl when doing xrefs. 17373 (finish_method_declaration): Don't combine first/last method line 17374 when doing xref. 17375 (java_check_regular_methods): Warning check on not overriding 17376 methods with default access on other packages move before check on 17377 static methods. Initialization of `aflags' also moved up. 17378 (resolve_expression_name): Call static_ref_err to report the error. 17379 (static_ref_err): New function, implemented. 17380 (resolve_field_access): Returned simplified static field access 17381 when doing xrefs. 17382 (resolve_qualified_expression_name): Check for illegal use of 17383 static fields in a non static context. Call static_ref_err to 17384 report error in various places. 17385 (java_complete_tree): Do not fold initialized static fields when 17386 doing xrefs. 17387 (java_complete_lhs): Likewise. 17388 173891999-04-29 Anthony Green <green@cygnus.com> 17390 17391 * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to 17392 create internal labels. 17393 (lookup_label): Ditto. 17394 173951999-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 17396 17397 * class.c (layout_class_method): Generate <clinit>'s rtl for 17398 interfaces. 17399 * decl.c (complete_start_java_method): Don't call _Jv_InitClass 17400 for interfaces' <clinit>. 17401 * expr.c (lookup_field): Search for fields in interfaces. 17402 (expand_invoke): Fixed indentation. 17403 (expand_java_field_op): Likewise. Use IS_CLINIT. 17404 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed. 17405 (IS_CLINIT): New macro. 17406 * parse.y (type_declaration:): Call maybe_generate_clinit after an 17407 interface was parsed. 17408 (maybe_generate_clinit): Don't generate if the current class is an 17409 interface with only fields of primitive types. 17410 (reset_method_name): Use IS_CLINIT. 17411 (java_complete_expand_method): Expand <clinit> when it exists for 17412 interfaces. Use IS_CLINIT. 17413 (resolve_expression_name): Use DECL_CONTEXT instead of 17414 current_class to build static field references. 17415 (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on 17416 ARRAY_REF when doing xreferencing. 17417 (check_final_assignment): Fixed typo in leading comment. Use 17418 IS_CLINIT. 17419 (patch_array_ref): Don't fully expand array references when 17420 xreferencing. 17421 (patch_return): Use IS_CLINIT. 17422 (patch_throw_statement): Likewise. 17423 174241999-04-22 Tom Tromey <tromey@cygnus.com> 17425 17426 * Make-lang.in (JAVA_SRCS): Added check-init.c. 17427 174281999-04-21 Alexandre Petit-Bianco <apbianco@cygnus.com> 17429 17430 * decl.c (predef_filenames, predef_filenames_size): New globals 17431 (init_decl_processing): predef_filenames and predef_filenames_size 17432 initialized. 17433 * java-tree.h (predef_filenames, predef_filenames_size): Declared 17434 extern. 17435 * jcf-parse.c (predefined_filename_p): New function. 17436 (yyparse): Check that files on the command line are specified only 17437 once and issue a warning otherwise. 17438 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro. 17439 * parse.y (source_end_java_method): Nullify NOP method bodies, to 17440 avoid a gcc warning with -W -Wall turned on. 17441 (java_expand_classes): Abort if errors were encountered. 17442 (java_complete_lhs): If the cross reference flag is set, wrap 17443 field DECL node around a WFL when resolving expression name. 17444 174451999-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 17446 17447 * lang.c (lang_decode_option): Fixed returned value when parsing 17448 `-fxref=...' and `-Wall'. 17449 * parse.y (source_end_java_method): Do not generate code when 17450 flag_emit_xref is set. 17451 (resolve_expression_name): Do not build static field access when 17452 flag_emit_xref is set. 17453 (resolve_field_access): No special treatment on `length' when 17454 flag_emit_xref is set. Do not build qualified static field access 17455 when flag_emit_xref is set. 17456 (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR 17457 when flag_emit_xref is set. 17458 (patch_assignment): Do not generate array store runtime check when 17459 flag_emit_xref is set. 17460 * xref.c (xref_flag_value): Fixed function declaration 17461 indentation. 17462 (xset_set_data): New function. 17463 * xref.h (xref_set_data): Added prototype for new function. 17464 (typedef struct xref_flag_table): New field data. 17465 (XREF_GET_DATA): New macro. 17466 174671999-04-19 Tom Tromey <tromey@cygnus.com> 17468 17469 * xref.h (enum): Removed trailing comma. 17470 17471 * parse.y (resolve_qualified_expression_name): Added missing 17472 `break'. 17473 174741999-04-15 Anthony Green <green@cygnus.com> 17475 17476 * gjavah.c: New prototypes for java_float_finite and 17477 java_double_finite. 17478 174791999-04-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 17480 17481 * parse.y (patch_unaryop): Fixed ++/-- operator check on array 17482 references. 17483 174841999-04-06 Jeffrey A Law (law@cygnus.com) 17485 17486 * Makefile.in (TREE_H): Add tree-check.h. 17487 (RTL_H): Add genrtl.h. 17488 174891999-04-06 Alexandre Petit-Bianco <apbianco@cygnus.com> 17490 17491 * parse.y (patch_assignment): Added ArrayStoreException runtime 17492 check. 17493 174941999-04-06 Per Bothner <bothner@cygnus.com> 17495 17496 * expr.c (pop_type_0): New function. 17497 (pop_type): Use pop_type_0. 17498 * java-tree.h (pop_type_0): New declaration. 17499 * verify.c (verify_jvm_instructions): Check return instructions. 17500 17501 * parse.y (patch_binop): Don't fold if non-constant and emiting 17502 class files. 17503 175041999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17505 17506 * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H). 17507 17508 * gjavah.c: Include math.h earlier. Include tree.h/java-tree.h. 17509 (main_jcf): Don't define. 17510 (process_file): Don't set `main_jcf'. 17511 17512 * java-tree.h (main_jcf): Don't declare. 17513 17514 * jcf-parse.c (main_jcf): Add static definition. 17515 17516 * lang.c (main_jcf): Don't define. 17517 175181999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17519 17520 * class.c (add_method_1): Cast the argument of `bzero' to PTR. 17521 17522 * decl.c (copy_lang_decl): Likewise for `bcopy'. 17523 17524 * jcf-depend.c: Include "config.h", not <config.h>. 17525 17526 * jcf-parse.c (jcf_figure_file_type): Cast the arguments of 17527 `bcopy' to PTR. 17528 17529 * jcf-path.c: Include "config.h", not <config.h>. 17530 17531 * lex.c: Don't include various system header files. 17532 (java_init_lex): Cast the argument of `bzero' to PTR 17533 17534 * parse-scan.y (java_push_parser_context): Likewise. 17535 17536 * parse.y (java_push_parser_context): Likewise. 17537 (patch_bc_statement): Match format specifier to variable argument. 17538 17539 * xref.c: Don't include <stdio.h>. 17540 175411999-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 17542 17543 * parse.y (struct parser_ctxt *ctxp): Now global. 17544 (declare_local_variables): Use WFL compound value for the 17545 declaration source line value, when doing cross-referencing. 17546 175471999-03-31 Tom Tromey <tromey@cygnus.com> 17548 17549 * gjavah.c (print_field_info): Allow constants of other types. 17550 (print_include): Generate include when new name is proper prefix 17551 of already printed name. 17552 (add_namelet): Likewise. 17553 (cxx_keyword_subst): New function. 17554 (print_method_info): Use it. 17555 (print_field_name): New function. 17556 (get_field_name): New function. 17557 (print_field_info): Use get_field_name and print_field_name. 17558 175591999-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17560 17561 * Makefile.in (keyword.h): Generate using gperf language 'C', not 17562 'KR-C', so gperf uses the `const' keyword on strings. 17563 17564 * keyword.gperf (java_keyword): Const-ify a char*. 17565 175661999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com> 17567 17568 * parse.y (patch_bc_statement): Fixed identation and a bogus 17569 `printf' format. 17570 175711999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com> 17572 17573 * parse.y (patch_assignment): Allow static variables in other 17574 classes to be assigned. 17575 175761999-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17577 17578 * class.c (maybe_add_interface): Remove unused variable 17579 `interface_binfo'. 17580 (make_class_data): Use = for assignment, not ==. Likewise. 17581 (emit_register_classes): Remove unused variable `decl'. 17582 17583 * lex.c: Fix comment so as not to contain an embedded `/*'. 17584 17585 * verify.c (verify_jvm_instructions): Remove unused variable 17586 `self_type'. 17587 175881999-03-27 Per Bothner <bothner@cygnus.com> 17589 17590 * parse.y (complete_loop_body): Rename to finish_loop_body. 17591 (complete_labeled_statement): Rename to finish_labeled_statement. 17592 (complete_for_loop): Rename to finish_for_loop. 17593 (complete_method_declaration): Rename to finish_method_declaration. 17594 17595 * java-tree.h (continue_identifier_node): New global node. 17596 * decl.c: Define and initialize continue_identifier_node. 17597 * parse.y (generate_labeled_block): Remove - no longer needed. 17598 (build_loop_body): Use continue_identifier_node for continue block. 17599 (finish_labeled_statement): Also do pop_labeled_block actions. 17600 (java_complete_lhs): POP_LOOP even if error. 17601 (build_labeled_block): Special handling for continue_identifier_node. 17602 (patch_loop_statement): Re-organize. 17603 (patch_bc_statement): Re-write. 17604 176051999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 17606 17607 * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count 17608 using a WFL compound value. 17609 * parse.y (xref.h): Include. 17610 (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the 17611 WFL compound value. 17612 (register_fields): Set WFL compound value to lineno if doing 17613 xrefs. 17614 (java_complete_expand_method): Call expand_xref if flag_emit_xref 17615 is set. 17616 * xref.c (system.h, jcf.h, parse.h, obstack.h): Include. 17617 * xref.h (expand_xref): Prototype renamed from xref_generate. 17618 176191999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 17620 17621 * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK. 17622 (GET_CURRENT_BLOCK): New macro. 17623 * parse.y (current_static_block): New global variable. 17624 (method_body:): Define action. 17625 (complete_method_declaration): Set current_function_decl to NULL 17626 when work on the current method is done. 17627 (declare_local_variables): Use GET_CURRENT_BLOCK. 17628 (java_method_add_stmt): Likewise. 17629 (java_complete_expand_method): Disable the use of `this' when 17630 expanding <clinit>. 17631 (enter_a_block): If no current method exist, use 17632 current_static_block to link static initializer blocks. 17633 (exit_block): Rewritten to use current_static_block when no current 17634 method decl exists. 17635 (lookup_name_in_blocks): Use GET_CURRENT_BLOCK. 17636 (patch_return): Forbid the use of `return' in static initializers. 17637 (patch_throw_statement): Fixed indentation. Issue specific error 17638 for uncaught thrown checked exception in static initializer 17639 blocks. Removed FIXME. 17640 176411999-03-25 Zack Weinberg <zack@rabi.columbia.edu> 17642 17643 * java/Make-lang.in: Remove all references to gcj.o/gcj.c. 17644 Link gcj from gcc.o. 17645 176461999-03-23 Alexandre Petit-Bianco <apbianco@cygnus.com> 17647 17648 * parse.y (find_applicable_accessible_methods_list): When dealing 17649 with interface: ensure that a given interface or java.lang.Object 17650 are searched only once. 17651 176521999-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17653 17654 * gjavah.c (print_c_decl): Remove unused argument `flags'. 17655 17656 * jcf-dump.c (print_access_flags): Add braces around if-else. 17657 17658 * jvspec.c (lang_specific_driver): Wrap variable `len' in macro 17659 COMBINE_INPUTS. 17660 17661 * lex.c (build_wfl_node): Add static prototype. 17662 17663 * lex.h (build_wfl_node): Remove static prototype. 17664 17665 * parse.y: Include lex.c early enough to declare everything needed. 17666 Ensure calls to `build_wfl_node' pass the proper arguments. 17667 (create_class): Remove unused variable `super_decl'. 17668 (get_printable_method_name): Initialize variable `name'. 17669 176701999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 17671 17672 * Changelog: Fixed 1999-03-22 typos. 17673 * lang.c (lang_decode_option): Fixed typo in error string in the 17674 XARG section. 17675 176761999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 17677 17678 * Makefile.in (JAVA_OBJS): Added entry xref.o. 17679 (xref.o): New rule. 17680 * java-tree.h (flag_emit_xref): Declared extern. 17681 * lang.c (xref.h): Included. 17682 (flag_emit_xref): New global variable. 17683 (lang_decode_option): Added support for -fxref. 17684 * xref.c: Created. 17685 * xref.h: Likewise. 17686 176871999-03-21 Manfred Hollstein <manfred@s-direktnet.de> 17688 17689 * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be 17690 linked with. 17691 176921999-03-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17693 17694 * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H) 17695 $(srcdir)/../system.h and $(JAVA_TREE_H). 17696 (jcf-io.o): Depend on $(JAVA_TREE_H). 17697 (mangle.o): Likewise. 17698 17699 * check-init.c (check_cond_init): Add static prototype. 17700 17701 * class.c (build_java_method_type, hashUtf8String, 17702 make_field_value, get_dispatch_vector, get_dispatch_table, 17703 append_gpp_mangled_type, mangle_static_field): Likewise. 17704 (strLengthUtf8): Hide unused definition. 17705 (hashUtf8String): Const-ify. 17706 (make_field_value): Un-ANSI-fy. 17707 17708 * constants.c: Move inclusion of jcf.h above java-tree.h. 17709 (set_constant_entry, find_class_or_string_constant, 17710 find_name_and_type_constant, get_tag_node, 17711 build_constant_data_ref): Add static prototype. 17712 17713 * decl.c (push_jvm_slot, builtin_function, 17714 lookup_name_current_level): Likewise. 17715 (builtin_function): Const-ify. 17716 17717 * except.c (expand_start_java_handler, expand_end_java_handler): 17718 Add static prototype. 17719 17720 * expr.c (flush_quick_stack, push_value, pop_value, 17721 java_stack_swap, java_stack_dup, build_java_athrow, 17722 build_java_jsr, build_java_ret, expand_java_multianewarray, 17723 expand_java_arraystore, expand_java_arrayload, 17724 expand_java_array_length, build_java_monitor, expand_java_pushc, 17725 expand_java_return, expand_java_NEW, expand_java_INSTANCEOF, 17726 expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label, 17727 expand_compare, expand_test, expand_cond, expand_java_goto, 17728 expand_java_call, expand_java_ret, pop_arguments, expand_invoke, 17729 expand_java_field_op, java_push_constant_from_pool): Likewise. 17730 17731 (decode_newarray_type, expand_iinc): Un-ANSI-fy. 17732 (build_java_arraynull_check): Mark parameters `node' and `type' 17733 with ATTRIBUTE_UNUSED. 17734 (note_label): Likewise for parameter `current_pc'. 17735 (expand_java_call, expand_java_ret): Hide unused definition. 17736 17737 * java-tree.h (make_class, build_constants_constructor, 17738 java_set_exception_lang_code, pop_labeled_block, emit_handlers, 17739 init_outgoing_cpool, register_class, emit_register_classes, 17740 java_layout_seen_class_methods): Prototype. 17741 (unicode_mangling_length): Const-ify. 17742 (append_gpp_mangled_name, append_gpp_mangled_classtype, 17743 emit_unicode_mangled_name, format_int, format_uint, 17744 jcf_trim_old_input, jcf_print_utf8, jcf_print_char, 17745 jcf_print_utf8_replace, open_class): Prototype. 17746 17747 * jcf-dump.c: Include "config.h", not <config.h>. Don't include 17748 <stdio.h>. Include tree.h/java-tree.h. 17749 (utf8_equal_string usage, process_class): Add static prototype. 17750 (open_class): Don't prototype this here. 17751 (utf8_equal_string): Match arguments to format specifiers. 17752 (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH, 17753 TABLE_SWITCH, disassemble_method): Likewise. 17754 17755 * jcf-io.c: Include tree.h/java-tree.h. 17756 (open_class, find_classfile, jcf_print_utf8, 17757 jcf_print_utf8_replace): Const-ify. 17758 17759 * jcf-parse.c (parse_zip_file_entries, process_zip_dir, 17760 parse_class_file): Add static prototype. 17761 (find_in_current_zip): Match definition to existing static 17762 prototype. 17763 17764 * jcf-write.c: Include jcf.h before tree.h/java-tree.h. 17765 (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label, 17766 finish_jcf_block, define_jcf_label, get_jcf_label_here, 17767 put_linenumber, localvar_alloc, localvar_free, get_access_flags, 17768 write_chunks, adjust_typed_op, generate_bytecode_conditional, 17769 generate_bytecode_return, perform_relocations, init_jcf_state, 17770 init_jcf_method, release_jcf_state, generate_classfile): 17771 Add static prototype. 17772 (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED. 17773 (make_class_file_name): Const-ify. 17774 17775 * jcf.h (find_classfile): Const-ify. 17776 17777 * jv-scan.c (reset_report): Remove prototype. 17778 17779 * jvgenmain.c: Include jcf.h/tree.h/java-tree.h. 17780 (error): Rewrite to allow varargs. 17781 17782 * lang.c (lang_f_options): Const-ify. 17783 17784 * lex.c (java_parse_escape_sequence): Add static prototype. 17785 (java_allocate_new_line): Match definition to existing static 17786 prototype. 17787 17788 * mangle.c Include tree.h/java-tree.h. 17789 (unicode_mangling_length, emit_unicode_mangled_name, 17790 append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify. 17791 17792 * parse.h (jdep_code): Remove trailing comma in enumeration. 17793 (java_get_line_col): Move prototype outside of !JC1_LITE test. 17794 (reset_report): Add prototype. 17795 17796 * verify.c (push_pending_label, merge_types): Add static 17797 prototypes. 17798 17799 * zipfile.h (opendir_in_zip, open_in_zip): Prototype. 17800 178011999-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 17802 17803 * parse.y (find_applicable_accessible_methods_list): Extend the 17804 search to superinterfaces when relevant. 17805 (search_applicable_methods_list): New function. 17806 178071999-03-18 Alexandre Petit-Bianco <apbianco@cygnus.com> 17808 17809 * class.c (unmangle_classname): Implemented stricter testing 17810 before setting the QUALIFIED_P flag on an identifier. 17811 178121999-03-16 Per Bothner <bothner@cygnus.com> 17813 17814 * parse.y (java_complete_lhs): Call force_evaluation_order 17815 after patch_newarray. 17816 (patch_binop): Don't call fold if there are side effects. 17817 178181999-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com> 17819 17820 * parse.y (java_stabilize_reference): Use save_expr instead of 17821 building a SAVE_EXPR node. 17822 (java_complete_lhs): Patch the resulting string of the `+=' 17823 operator (if necessary) and complete the RHS after having built 17824 the cast. 17825 178261999-03-15 Per Bothner <bothner@cygnus.com> 17827 17828 * class.c (make_class): Don't set CLASS_P here (because 17829 this function is also called by build_java_array_type). 17830 (push_class): Set CLASS_P here instead. 17831 * parse.h (TYPE_CLASS_P): Check for TYPE_ARRAY_P is redundant. 17832 17833 * jcf-dump.c (print_access_flags): Take extra parameter to indicate 17834 context. If the context is class, perfer "super" over "synchronized". 17835 * jcf-write.c (generate_classfile): Don't add ACC_SUPER if interface. 17836 17837 * parse.y (create_class): Don't call parser_check_super here; 17838 it is not robust. Always wait until later. 17839 17840 * parse.y (method_header): For interfaces, set ACC_ABSTRACT (to 17841 match what JDK 1.2 does), but don't set ACC_PUBLIC. 17842 178431999-03-13 Per Bothner <bothner@cygnus.com> 17844 17845 * lex.c (java_read_char): UNGET invalid non-initial utf8 character. 17846 * lex.h (UNGETC): Change misleading macro. 17847 178481999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 17849 17850 * parse.y (java_stabilize_reference): Return NODE when patching a 17851 COMPOUND_EXPR. 17852 (java_complete_lhs): Put parenthesis around truth values. 17853 178541999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 17855 17856 * class.c (layout_class_method): Don't make rtl for interface 17857 methods. 17858 * parse.h (GET_TYPE_NAME): New macro. 17859 * parse.y (if_then_statement:): Fixed indentation. 17860 (if_then_else_statement:): Likewise. 17861 (for_statement:): Fixed spacing. 17862 (try_statement:): Fixed indentation. 17863 (create_interface): Don't force interfaces to be abstract. 17864 (method_header): Abstract methods are OK in interfaces. 17865 (declare_local_variables): Fixed typo in comment. 17866 (java_complete_expand_method): Fixed indentation. 17867 (resolve_qualified_expression_name): Use GET_TYPE_NAME to report 17868 non accessible fields. 17869 (java_stabilize_reference): New function. 17870 (java_complete_lhs): Fixed indentation. Use 17871 java_stabilize_reference in compound assignment. Insert the 17872 cast. If not processing `+' fix string constants before processing 17873 binop. 17874 178751999-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17876 17877 * constants.c (find_class_or_string_constant): Cast variable `j' 17878 to a `jword' when comparing against one. 17879 17880 * expr.c (java_lang_expand_expr): Remove unused variables 17881 `has_finally_p' and `op0'. 17882 17883 * gjavah.c (print_field_info): Cast a value to jint when comparing 17884 against one. Likewise for a jlong. 17885 (add_namelet): Likewise cast a `sizeof' to an int when comparing 17886 against a signed quantity. 17887 17888 * jcf-dump.c (print_signature_type): Remove unused variable `digit'. 17889 (print_signature): Don't needlessly dereference variable `str' 17890 17891 * jcf-reader.c (get_attribute): Mark variables `max_stack' and 17892 `max_locals' with ATTRIBUTE_UNUSED. 17893 (jcf_parse_class): Likewise for variable `index'. 17894 17895 * parse.h (reverse_jdep_list): Remove static prototype. 17896 17897 * parse.y (build_jump_to_finally): Remove prototype and definition. 17898 (reverse_jdep_list): Add static prototype. 17899 17900 * typeck.c (convert_ieee_real_to_integer): Remove unused variables 17901 `assignment' and `expr_decl'. 17902 17903 * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'. 17904 179051999-03-12 Andrew Haley <aph@cygnus.com> 17906 17907 * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes; 17908 we'll need a directory separator and a null character. 17909 179101999-03-10 Per Bothner <bothner@cygnus.com> 17911 17912 * jcf-write.c (generate_bytecode_insns): Handle __builtin_fmod, for %. 17913 17914Tue Mar 9 11:52:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> 17915 17916 * parse.y (method_header): Don't set ACC_ABSTRACT flags on 17917 interfaces. 17918 179191999-03-05 Per Bothner <bothner@cygnus.com> 17920 17921 * lex.c (java_parse_end_comment): Take extra parameter (next char). 17922 17923 * class.c (build_utf8_ref): Fix possible name class/ambiguity. 17924 17925 * class.c (layout_class_method): A static method in a base class 17926 is never overridden, so treat it like it doesn't exist. 17927 However, do complain about private non-static method overriding 17928 public static method. 17929 17930 * parse.y: Don't set unused INITIALIZED_P flag. 17931 * java-tree.h (INITIALIZED_P): Removed no-longer needed flag. 17932 17933 * parse.y (find_expr_with_wfl): Optimize tail-calls. 17934 (build_array_from_name): Re-order &index[string] to &string[index]. 17935 17936 * parse.y (java_complete_lhs): Don't call patch_assignment if rhs is 17937 error_mark (it might catch more errors, but it is more likely to lose). 17938 179391999-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 17940 17941 * Makefile.in (jcf-parse.o): Depend on $(PARSE_H). 17942 (parse-scan.o): Depend on toplev.h. 17943 17944 * class.c (make_method_value): Add prototype. Make it static. 17945 Remove unused second argument, caller changed. 17946 17947 * expr.c (java_lang_expand_expr): Remove unused variable 17948 `return_label'. 17949 17950 * java-tree.h: Don't prototype find_in_current_zip. 17951 Add prototypes for verify_constant_pool, start_java_method, 17952 end_java_method, give_name_to_locals, expand_byte_code, 17953 open_in_zip, set_constant_value, find_constant1, find_constant2, 17954 find_utf8_constant, find_string_constant, find_class_constant, 17955 find_fieldref_index, find_methodref_index, write_constant_pool, 17956 count_constant_pool_bytes and encode_newarray_type. 17957 17958 * jcf-dump.c: Remove unused variable `LONG_temp'. 17959 17960 * jcf-parse.c: Include parse.h. 17961 (jcf_parse_source): Remove unused parameter, all callers changed. 17962 (jcf_figure_file_type): Add static prototype. 17963 (find_in_current_zip): Likewise. Also remove unused parameter, 17964 all callers changed. 17965 (read_class): Initialize variable `saved_pos'. 17966 17967 * jcf-reader.c (jcf_parse_preamble): Mark variables 17968 `minor_version' and `major_version' with ATTRIBUTE_UNUSED. 17969 17970 * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE. 17971 (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE. 17972 (java_parse_doc_section): Initialize variable `seen_star'. 17973 (java_lex): Wrap variable `number_beginning' in !JC1_LITE. 17974 (java_lex_error): Mark parameters `msg' and `forward' with 17975 ATTRIBUTE_UNUSED. 17976 (java_get_line_col): Mark parameters `filename' and `line' with 17977 ATTRIBUTE_UNUSED. 17978 17979 * parse-scan.y: Include toplev.h. 17980 (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED. 17981 17982 * parse.h: use `struct JCF', not plain `JCF'. 17983 (java_parser_context_save_global, java_expand_classes 17984 java_parser_context_restore_global, java_parse): Add prototypes. 17985 17986 * typeck.c (convert_ieee_real_to_integer): Remove unused variable 17987 `node'. 17988 179891999-02-24 Per Bothner <bothner@deneb.cygnus.com> 17990 17991 * check-init.c (check_init): COPYN takes word count, not bit count. 17992 179931999-02-26 Per Bothner <bothner@cygnus.com> 17994 17995 * typeck.c (convert_ieee_real_to_integer): Use save_expr instead of 17996 explicit build_decl. (Avoids crash in reload when optimizing.) 17997 179981999-02-25 Per Bothner <bothner@cygnus.com> 17999 18000 * decl.c (complete_start_java_method): Handle synchronized method 18001 even when compiling from bytecode. 18002 180031999-02-26 Tom Tromey <tromey@cygnus.com> 18004 18005 * gjavah.c (add_class_decl): Only generate `#include' if outer 18006 class is not the name of the class we are processing. Correctly 18007 append `.h' in #include. 18008 (process_file): Clean up newlines around generated `#include's. 18009 (decode_signature_piece): Correctly handle inner classes. 18010 (struct include): New structure. 18011 (all_includes): New global. 18012 (print_include): New function. 18013 (add_class_decl): Use it. 18014 (process_file): Likewise. 18015 (add_class_decl): Generate include for java-array.h if array 18016 seen. 18017 (process_file): Don't generate java-array.h include. 18018 18019 * gjavah.c (add_namelet): Check for standard package names here. 18020 (add_class_decl): Don't check for standard package names here. 18021 180221999-02-25 Tom Tromey <tromey@cygnus.com> 18023 18024 * parse.y (read_import_dir): Use `|=', not `+=', to set `found'. 18025 When reading a zip file, only use strncmp if both strings are 18026 bigger than the buffer length. Initialize `k' when looping 18027 through zip file. 18028 180291999-02-24 Tom Tromey <tromey@cygnus.com> 18030 18031 * gjavah.c (struct namelet): New structure. 18032 (add_namelet): New function. 18033 (print_namelet): New function. 18034 (print_class_decls): Use add_namelet and print_namelet to generate 18035 namespaces and not classes. 18036 (method_printed): New global. 18037 (HANDLE_END_METHOD): Examine method_printed. 18038 (print_method_info): Set method_printed when required. Print 18039 error if function to be ignored is marked virtual. Handle $finit$ 18040 method. 18041 (METHOD_IS_FINAL): New macro. 18042 (print_field_info): Use it. 18043 (HANDLE_METHOD): Clear method_printed. 18044 (method_pass): New global. 18045 (HANDLE_END_FIELD): Call add_class_decl on the first pass. 18046 (process_file): Do two passes over both fields and methods. 18047 (HANDLE_METHOD): Examine method_pass. 18048 (root): New global. 18049 (add_class_decl): New function. 18050 (print_class_decls): Don't scan over entire constant pool. 18051 180521999-02-23 Tom Tromey <tromey@cygnus.com> 18053 18054 * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and 18055 disable linking in that case. 18056 180571999-02-20 Tom Tromey <tromey@cygnus.com> 18058 18059 * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f, 18060 not 0x1f. 18061 180621999-02-21 Per Bothner <bothner@cygnus.com> 18063 18064 * decl.c (build_result_decl), java-tree.h: New method. 18065 (complete_start_java_method): Handle synchronized methods. 18066 Don't build DECL_RESULT here. (Ordering dependency problem.) 18067 (start_java_method): Call build_result_decl here instead ... 18068 * parse.y (java_complete_expand_method): ... and here. 18069 (expand_start_java_method): Don't call complete_start_java_method here. 18070 (java_complete_expand_method): Call it here instead. 18071 * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Moved to .. 18072 * java-tree.h: ... here. 18073 18074 * expr.c (force_evaluation_order): Fix typo, don't handle ARRAY_REF. 18075 * parse.y (java_complete_lhs): Don't call force_evaluation_order 18076 for ARRAY_REF - it doesn't work when array bounds are checked. 18077 (patch_array_ref): Handle it here instead. 18078 18079 * jcf-write.c (generate_classfile): Emit "Exceptions" attribute. 18080 180811999-02-19 Per Bothner <bothner@cygnus.com> 18082 18083 Force left-to-right evaluation of binary operations etc. 18084 * expr.c (force_evaluation_order), java-tree.h: New function. 18085 * parse.y (java_complete_lhs): Pass binary operations, procedure 18086 calls, and ARRAY_REFs to force_evaluation_order. 18087 (various): Set TREE_SIDE_EFFECTS more carefully. 18088 18089 Tolerate random (non-UTF8) encoding in comments without complaining. 18090 * lex.c (java_read_char): Return 0xFFFE if bad UTF8 encoding. 18091 (java_is_eol): Handle '\r' followed by '\n' instead of vice versa. 18092 18093 * parse.y (resolve_qualified_expression_name): Handle error_mark. 18094 (java_complete_node case EXPR_WITH_FILE_LOCATION): Likewise. 18095 18096 * parse.y (java_complete_lhs): Ignore an empty statement in a 18097 COMPOUND_EXPR. Don't complain about empty statement after return. 18098 180991999-02-19 Per Bothner <bothner@cygnus.com> 18100 18101 * parse.y (obtain_incomplete_type): Don't wrap unknown types 18102 in TREE_LIST - just chain the POINTER_TYPEs together. 18103 (resolve_class): If type already resolved, return decl. 18104 After resolving, update TREE_TYPE(class_type), and name (if array). 18105 * parse.h (do_resolve_class), parse.y: Make non-static. 18106 * class.c (maybe_layout_super_class): Take this_class argument. 18107 Do do_resolve_class if necessary. 18108 (layout_class, layout_class_methods): Adjust calls appropriately. 18109 * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED, 18110 JDEP_RESOLVED_P): Redefined for new TREE_LIST-less convention. 18111 * typeck.c (build_java_array_type): Don't call layout_class. 18112 181131999-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 18114 18115 * parse.y (check_pkg_class_access): Allow private class access 18116 within the same package. 18117 (strip_out_static_field_access_decl): New function. 18118 (patch_unaryop): Call strip_out_static_field_access_decl on ++/-- 18119 operator argument before testing its nature. 18120 181211999-02-03 Per Bothner <bothner@cygnus.com> 18122 18123 * java-tree.def (FINALLY_EXPR): Removed. (Now uses TRY_FINALLY_EXPR.) 18124 (TRY_EXPR): Simplify - it no longer has a finally clause. 18125 * check-init.c (check_init): Handle TRY_FINALLY_EXPR. 18126 Simpler handling of TRY_EXPR, which no longer has a finally clause. 18127 * expr.c (java_lang_expand_expr): Likewise. 18128 * java-tree.h (CATCH_EXPR_GET_EXPR): Removed - no longer needed. 18129 * parse.h (java_get_catch_block), parse.y: Removed - no longer needed. 18130 * parse.y (java_complete_lhs): Add support for TRY_FIANLLY_EXPR. 18131 (build_try_statement): Remove finally parameter and handling. 18132 (build_try_finally_statement): New function. 18133 (patch_try_statement): No longer need to support finally clause. 18134 (try_statement): Update grammar action rules. 18135 * jcf-write.c (generate_bytecode_insns): Handle TRY_FINALLY_EXPR. 18136 Simpler handling of TRY_EXPR, which no longer has a finally clause. 18137 181381998-11-26 Andrew Haley <aph@viagra.cygnus.co.uk> 18139 18140 * jcf-parse.c (get_constant): Add braces around computation of 'd' 18141 when REAL_ARITHMETIC is not defined. [Oct 26 fix got overwritten -PB] 18142 181431999-02-17 Andrew Haley <aph@cygnus.com> 18144 18145 * class.c (build_utf8_ref): Back out broken patch which was 18146 intended to to output signatures using '.' as a separator. 18147 18148 * class.c (make_class_data): Output signatures using '.' as a 18149 separator, rather than '/'. 18150 (mangled_classname): Likewise. 18151 (make_field_value): Likewise. 18152 (make_method_value): Likewise. 18153 * constants.c (alloc_class_constant): Likewise. 18154 * expr.c (build_invokeinterface): Likewise. 18155 181561999-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 18157 18158 * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid 18159 of an ancient workaround. 18160 181611999-02-10 Jeffrey A Law (law@cygnus.com) 18162 18163 * jvspec.c (xmalloc): Kill the prototype. It does not belong 18164 here anymore. 18165 181661999-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 18167 18168 * lex.c (yylex): Encode \0 as UTF8. 18169 181701999-02-10 Tom Tromey <tromey@cygnus.com> 18171 18172 * jvspec.c (lang_specific_driver): Use libgcj, not libjava. 18173 * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE. 18174 (libgcj_zip): Renamed. 18175 * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not 18176 LIBJAVA_ZIP_FILE. 18177 (jcf_path_init): Use LIBGCJ_ZIP_FILE. 18178 18179 * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop. 18180 (GC_NAME): Renamed -lgc to -lgcjgc. 18181 181821999-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 18183 18184 * lex.c (java_lang_cloneable): Initialize. 18185 * parse.y (java_lang_cloneable): New static variable. 18186 (qualify_ambiguous_name): Take CONVERT_EXPR into account when 18187 doing one more qualification round. 18188 (valid_ref_assignconv_cast_p): Reject null source or 18189 destination. Allow an array to be cast into java.lang.Cloneable. 18190 (patch_cast): Swapped two first arguments to first call to 18191 valid_ref_assignconv_cast_p. 18192 181931999-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com> 18194 18195 * parse.h: DECL_P renamed JDECL_P. 18196 * parse.y: DECL_P replaced by JDECL_P. 18197 (build_array_from_name): Always use pointer's type. 18198 (patch_bc_statement): Extra code to search continue target in a 18199 for loop. Fixed comments. Continue target is current loop when 18200 unlabeled. 18201 182021999-02-05 Andrew Haley <aph@cygnus.com> 18203 18204 * class.c (make_class_data): The superclass of an interface should 18205 be null, not class Object. 18206 18207 * lex.c (java_lex): Sign extend hex literals. 18208 182091999-02-04 Andrew Haley <aph@cygnus.com> 18210 18211 * class.c (build_utf8_ref): Output signatures using '.' as a 18212 separator, rather than '/'. 18213 (make_class_data): Likewise. 18214 182151999-02-03 Marc Espie <Marc.Espie@liafa.jussieu.fr> 18216 18217 * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and 18218 mkstemp.o. Get them from libiberty now. 18219 182201999-02-02 Jeffrey A Law (law@cygnus.com) 18221 18222 * jcf-io.c: Do not include sys/stat.h or sys/wait.h 18223 182241999-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 18225 18226 * jvspec.c (xmalloc): Fix the prototype to match the one obtained 18227 from libiberty.h 18228 182291999-02-02 Per Bothner <bothner@cygnus.com> 18230 18231 Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'. 18232 * jcf-write.c (generate_bytecode_return): New function. 18233 (generate_bytecode_insns): Use it, for RETURN_EXPR. 18234 18235 * jcf-write.c (generate_bytecode_insns): For REAL_CST that is 0 or 1, 18236 generate special [fd]const_[01] instructions. 18237 18238 * jcf-parse.c (yyparse): Don't emit_register_classes if -fsyntax-only. 18239 18240 * verify.c (verify_jvm_instructions): Do INVALIDATE_PC after 18241 handling OPCODE_lookupswitch or OPCODE_tableswitch. 18242 182431999-02-01 Per Bothner <bothner@cygnus.com> 18244 18245 * parse.y (patch_method_invocation): Handle calling static methods, 18246 even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS). 18247 18248 * parse.y (java_complete_lhs): Don't complain about unreachable 18249 exit condition in a do-while statement. 18250 182511999-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 18252 18253 * lex.c (java_read_char): Fixed utf8 decoding. 18254 (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff 18255 range. 18256 * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed 18257 comments. Local variable `all_primitive' is gone. Broadened 18258 acceptance of `0' to floating point targets. `long' can now be 18259 widened to `double' or `float'. 18260 (valid_method_invocation_conversion_p): Added leading 18261 comment. Fixed tabulation. 18262 (build_string_concatenation): Optimize out left or right empty 18263 string constants. 18264 182651999-01-28 Per Bothner <bothner@cygnus.com> 18266 18267 * jcf-write.c (localvar_alloc): Only emit entry for 18268 LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE. 18269 (generate_bytecode_insns): Only call put_linenumber if 18270 debug_info_level > DINFO_LEVEL_NONE. 18271 * jvspec.c (lang_specific_driver): If no -O* or -g* option 18272 is specified, add -g1 (for compatibility wih javac). 18273 182741999-01-28 Hans-Peter Nilsson <hp@axis.se> 18275 18276 * java/Makefile.in: Add missing dependencies for jcf-dump.o, 18277 gjavah.o, check-init.o, jv-scan.o 18278 182791999-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 18280 18281 * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h. 18282 18283 * gjavah.c: Include config.h and system.h. 18284 18285 * javaop.h (inline): Don't define, its handled by system.h. 18286 (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these 18287 from `inline' to `static inline'. 18288 18289 * jcf.h (inline): Don't define, its handled by system.h. 18290 18291 * lex.c (inline): Likewise. 18292 182931999-01-31 Zack Weinberg <zack@rabi.columbia.edu> 18294 18295 * lang-specs.h: Map -Qn to -fno-ident. 18296 182971999-01-29 Richard Henderson <rth@cygnus.com> 18298 18299 * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo. 18300 183011999-01-29 Tom Tromey <tromey@cygnus.com> 18302 18303 * parse.h (BUILD_APPEND): If ARG is a non-String object reference, 18304 then cast it to Object before calling `append' method. 18305 183061999-01-28 Per Bothner <bothner@cygnus.com> 18307 18308 * check-init.c (check_bool2_init, check_bool_init, check_init): 18309 Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR. 18310 * jcf-write.c (generate_bytecode_insns): Likewise. 18311 183121999-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com> 18313 18314 * jcf-parse.c (jcf_parse): Don't parse the same class file twice. 18315 * parse.y (patch_cast): Allow a boolean to be cast into a 18316 boolean. 18317 183181999-01-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 18319 18320 * parse.y: (class_declaration:): Fixed indentation. 18321 (class_member_declaration:): Extra `;' after field declaration now 18322 accepted. 18323 (interface_declaration:): Removed debug messages in error reports. 18324 (patch_binop): Nodes created and returned inherit the orignal 18325 node's COMPOUND_ASSIGN_P flag value. 18326 (patch_cast): Fix cast from char to floating point. 18327 183281999-01-25 Andrew Haley <aph@cygnus.com> 18329 18330 * except.c, java-except.h (expand_resume_after_catch): new 18331 function. 18332 * expr.c (java_lang_expand_expr): call expand_resume_after_catch 18333 to branch back to main flow of control after a catch block. 18334 183351999-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 18336 18337 * Makefile.in (parse.o): Depend on $(CONFIG_H) and 18338 $(srcdir)/../system.h. 18339 (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h. 18340 (jcf-parse.o): Depend on $(srcdir)/../toplev.h. 18341 (jcf-write.o): Likewise. 18342 (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h. 18343 (mangle.o): Depend on $(srcdir)/../toplev.h. 18344 (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h. 18345 (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h. 18346 18347 * class.c: Include output.h and parse.h. 18348 (mangled_classname): Add the `const' keyword to a char*. 18349 (find_named_method): Hide unused function definition. 18350 (build_utf8_ref): Change type of variable `c' to unsigned char. 18351 Use ISALPHA/ISDIGIT instead of isalpha/isdigit. 18352 (build_class_ref): Add the `const' keyword to a char*. 18353 (layout_class_method): Remove unused variable `buf'. 18354 18355 * decl.c (find_local_variable): Remove unused variable `rtl'. 18356 (pushdecl): Likewise for variables `different_binding_level' and 18357 `oldglobal'. 18358 (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED. 18359 (maybe_build_cleanup): Likewise for parameter `decl'. 18360 18361 * except.c (expand_start_java_handler): Mark parameter `range' 18362 with ATTRIBUTE_UNUSED. 18363 18364 * expr.c: Include except.h. 18365 (pop_type): Remove unused variable `i'. 18366 (pop_value): Likewise for variables `n_words' and `i'. 18367 (expand_java_arrayload): Likewise for variable `convert'. 18368 (java_lang_expand_expr): Likewise for variables `op0', `type', 18369 `mode', `unsignedp', `node' and `elements'. 18370 (expand_byte_code): Likewise for variables `prev_eh_ranges' and 18371 `eh_ranges'. 18372 (process_jvm_instruction): Add a `const' qualifier to a char*. 18373 18374 * gjavah.c (output_directory): Add the `const' keyword to a char*. 18375 (temp_directory): Likewise. 18376 (print_c_decl): Likewise. 18377 (print_method_info): Likewise. 18378 (decode_signature_piece): Likewise. 18379 (print_mangled_classname): Likewise. 18380 18381 * java-except.h: Provide prototypes for maybe_start_try, 18382 maybe_end_try and add_handler. 18383 18384 * java-tree.h (mangled_classname): Add the `const' keyword to a char*. 18385 (parse_error_context): Likewise. Also add ATTRIBUTE_PRINTF_2. 18386 (pushdecl_top_level, alloc_class_constant, unicode_mangling_length, 18387 init_expr_processing, push_super_field, init_class_processing, 18388 can_widen_reference_to, class_depth, verify_jvm_instructions, 18389 maybe_pushlevels, maybe_poplevels, process_jvm_instruction, 18390 set_local_type, merge_type_state, push_type, load_type_state, 18391 add_interface, find_in_current_zip, append_gpp_mangled_classtype, 18392 emit_unicode_mangled_name): Add prototypes. 18393 18394 * jcf-dump.c (print_constant): Add the `const' keyword to a char*. 18395 (print_signature_type): Use ISDIGIT, not isdigit. 18396 (print_signature): Remove unused variable `j'. 18397 18398 * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to 18399 int when comparing against one. 18400 18401 * jcf-parse.c: Include toplev.h. 18402 18403 * jcf-write.c: Likewise. Don't include <string.h> or <sys/stat.h>. 18404 (localvar_free): Remove unused variable `i'. 18405 (generate_bytecode_conditional): Likewise for variable `kind'. 18406 18407 * jv-scan.c: Include config.h and system.h. Remove redundant 18408 OS header and gansidecl.h includes. 18409 (warning): Add the `const' keyword to a char*. Also add 18410 ATTRIBUTE_PRINTF_1 to the prototype. Check ANSI_PROTOTYPES, not 18411 __STDC__, when determining whether to use ANSI-isms. 18412 (fatal): Likewise. Also add ATTRIBUTE_UNUSED. 18413 (xmalloc): Don't redundantly prototype here. 18414 (main): Remove unused parameter `envp'. Also fix the arguments 18415 passed to function `fatal' to match the format specifier. 18416 18417 * lang.c (java_tree_code_name): Add the `const' keyword to a char*. 18418 18419 * mangle.c: Include toplev.h. 18420 (emit_unicode_mangled_name): Declare parameter `len'. 18421 18422 * parse.y (parse_warning_context): Add the `const' keyword to a 18423 char*. Also add ATTRIBUTE_PRINTF_2 to the prototype. Check 18424 `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms. 18425 (issue_warning_error_from_context): Add the `const' keyword to 18426 a char*. 18427 (parse_error_context): Likewise. Also check `ANSI_PROTOTYPES' 18428 not `__STDC__' for whether to use ANSI-isms. 18429 18430 * typeck.c (incomplete_type_error): Mark parameters `value' and 18431 `type' with ATTRIBUTE_UNUSED. 18432 (parse_signature_type): Use ISDIGIT, not isdigit. 18433 18434 * verify.c (check_pending_block): Add the `const' keyword to a char*. 18435 (verify_jvm_instructions): Likewise. Remove unused variables 18436 `field_name' and `default_val'. 18437 18438 * zextract.c: Include config.h and system.h. Remove redundant 18439 OS header includes. 18440 18441 * zipfile.h: Prototype `read_zip_archive'. 18442 184431999-01-21 Andrew Haley <aph@cygnus.com> 18444 18445 * typeck.c (convert): Allow conversions to void type: some 18446 optimizations in gcc do this. 18447 184481999-01-21 Andrew Haley <aph@cygnus.com> 18449 18450 * typeck.c (convert_ieee_real_to_integer): New function. 18451 (convert): When not using fast-math and using hardware fp, convert 18452 an IEEE NaN to zero. 18453 184541999-01-18 Andrew Haley <aph@cygnus.com> 18455 18456 * parse.y (patch_binop): Do a type conversion from signed to 18457 unsigned and then back to signed when a ">>>" is found. 18458 184591999-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 18460 18461 * java-tree.h: (check_for_initialization): Added prototype. 18462 * lex.c (java_parse_doc_section): `\n' breaks the `*/' string. 18463 * parse.y (do_resolve_class): Removed unused locals. 18464 (read_import_dir): Likewise. 18465 (resolve_qualified_expression_name): Array creation 18466 expressions are valid primary expressions. 18467 (qualify_ambiguous_name): Likewise. 18468 (patch_synchronized_statement): Removed unused local. 18469 184701999-01-17 Jeffrey A Law (law@cygnus.com) 18471 18472 * Makefile.in (zextract.o): Add dependencies. 18473 18474 * Makefile.in: Do not put ^Ls at the start of a line. 18475 184761999-01-15 Per Bothner <bothner@cygnus.com> 18477 18478 * expr.c (process_jvm_instruction): Coerce to correct Throwable 18479 sub-type the result of the call that gets the exception value. 18480 18481 * parse.y (java_complete_expand_methods): If flags_syntax_only, 18482 don't call finish_class. 18483 18484 * parse.y (java_check_regular_methods): If METHOD_PRIVATE, 18485 clear found before continuing. 18486 18487 * verify.c (verify_jvm_instructions): On an array load, allow 18488 and handle top of stack to be TYPE_NULL. 18489 18490 * gjavah.c (generate_access): Translate Java package private or 18491 protected access to C++ public, but with a comment. 18492 184931999-01-13 Andrew Haley <aph@cygnus.com> 18494 18495 * expr.c (generate_name): Name prefix changed to avoid clashes 18496 with assembler temp labels. 18497 18498 * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on 18499 MODIFY_EXPR. Without this, code for the assignment may not be 18500 generated at all and the synchronized statement will read an 18501 uninitialized variable. 18502 185031999-01-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 18504 18505 * class.c (maybe_layout_super_class): Fixed returned value. 18506 * lex.c: Added 1999 to the copyright. 18507 (java_init_lex): Initialize java_lang_imported. 18508 * lex.h: Added 1999 to the copyright. 18509 * parse.h: Added 1999 to the copyright. 18510 (REGISTER_IMPORT): Fixed typo in trailing macro. 18511 (CURRENT_OSB): New macro. 18512 (struct parser_ctxt): New fields osb_depth, osb_limit. 18513 * parse.y (java_lang_id): New global variable. 18514 (type_import_on_demand_declaration): Don't import java.lang.* twice. 18515 (array_creation_expression:): Use CURRENT_OSB. 18516 (dims:): Uses a stack to keep track of array dimensions. 18517 (cast_expression:): Use CURRENT_OSB. 18518 (find_expr_with_wfl): Return NULL if node found doesn't meet the 18519 conditions. 18520 (register_fields): Fixed typos in comment. 18521 (check_method_redefinition): Fixed comment indentation. 18522 (java_check_regular_methods): Set saved found wfl to NULL after 18523 having reinstalled it in the previously found DECL_NAME. 18524 185251999-01-10 Richard Henderson <rth@cygnus.com> 18526 18527 * gjavah.c (java_float_finite): Use a union to do type punning. 18528 (java_double_finite): Likewise. 18529 185301999-01-09 Per Bothner <bothner@cygnus.com> 18531 18532 * parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL 18533 on CONSTRUCTOR (since that trashes TREE_CST_RTL). 18534 (patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF. 18535 (register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on 18536 CONSTRUCTOR (which causes expand_expr to call output_constant_def). 18537 * expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT. 18538 185391999-01-08 Per Bothner <bothner@cygnus.com> 18540 18541 * check-init.c (check_init): If compiling to native, we don't 18542 see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw). 18543 185441999-01-08 Tom Tromey <tromey@cygnus.com> 18545 18546 * parse-scan.y (variable_declarator_id): Set or increment 18547 bracket_count. 18548 (bracket_count): New global. 18549 (formal_parameter): Handle case where bracket pairs trail variable 18550 declarator id. 18551 185521999-01-07 Andrew Haley <aph@viagra.cygnus.co.uk> 18553 18554 * jcf-parse.c (yyparse): variable len changed from a char to an 18555 int to prevent overflow. 18556 185571999-01-06 Per Bothner <bothner@cygnus.com> 18558 18559 * java-tree.h: Declare read_class. 18560 * jcf-parse.c (read_class): New function. 18561 (load_class): Now just call read_class. 18562 18563 * java-tree.h (java_parse_abort_on_error): Only return if new errors. 18564 * jcf-parse.c (parse_source_file): Declare save_error_count, 18565 which is needed by java_parse_abort_on_error macro, 18566 * parse.y (java_layout_classes, java_expand_classes): Likewise. 18567 18568 * parse.y (register_fields): Set TREE_STATIC flag of NEW_ARRAY_INIT 18569 constructor, if initializing a static field. 18570 (patch_new_array_init): Set TREE_CONSTANT if it is. 18571 * expr.c (java_lang_expand_expr): For a static array constructor 18572 of primitive elements, allocate the array itself statically. 18573 Disabled until we can set the vtable field statically. 18574 18575 * check-init.c: New file. Checks for definite assignment. 18576 * Makefile.in (JAVA_OBJS): Add check-init.o. 18577 * parse.y (java_complete_expand_method): Call check_for_initialization. 18578 * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY): Moved to java-tree.h. 18579 185801999-01-06 Graham <grahams@rcp.co.uk> 18581 18582 * parse.y : include system.h instead of including 18583 standard headers directly with the exception of <dirent.h>. 18584 185851999-01-06 Per Bothner <bothner@cygnus.com> 18586 18587 * lex.h: Moved static function declarations to lex.c, 18588 to shut up some -Wall warnings. 18589 * lex.c: Static function declarations moved here. 18590 * jcf-dump.c: Small fixes to shut up -Wall warnings. 18591 185921999-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 18593 18594 * Make-lang.in ($(GCJ).o): Depend on prefix.h. 18595 185961998-12-22 Per Bothner <bothner@cygnus.com> 18597 18598 * expr.c (process_jvm_instruction): Do load_type_state after JSR. 18599 * verify.c (verify_jvm_instructions): Fix off-by-one error. 18600 18601 * jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings. 18602 (localvar_alloc): Change return type to void, 18603 (emit_unop): Remove unused variable size. 18604 18605 * jcf-write.c (struct jcf_block): Add new union. 18606 (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros. 18607 (call_cleanups): New functions. 18608 (struct jcf_partial): New fields num_finalizers and return_value_decl. 18609 (generate_bytecode_insns): Support CLEANUP_POINT_EXPR and 18610 WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR. 18611 * lang.c (lang_init): Call using_eh_for_cleanups. 18612 * parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer 18613 completing operands to patch_synchronized_statement. 18614 Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR. 18615 (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and 18616 WITH_CLEANUP_EXPR instead of TRY_EXPR. 18617 186181998-12-20 John F. Carr <jfc@mit.edu> 18619 18620 * Make-lang.in: Comment out control-Ls; they upset some makes. 18621 186221998-12-18 Tom Tromey <tromey@cygnus.com> 18623 18624 * parse.y (check_class_interface_creation): Use DIR_SEPARATOR 18625 consistently. 18626 186271998-12-17 Tom Tromey <tromey@cygnus.com> 18628 18629 * parse.y (DIR_SEPARATOR): New define. 18630 (check_class_interface_creation): Use it. 18631 18632 * parse-scan.y (report_main_declaration): Recognize 18633 `java.lang.String' in argument to main. 18634 186351998-12-16 Per Bothner <bothner@cygnus.com> 18636 18637 * parse.y (create_interface): Remove bogus test. 18638 186391998-12-16 Per Bothner <bothner@cygnus.com> 18640 18641 * jcf-parse.c (get_constant): Set TREE_TYPE for string constants. 18642 (HANDLE_CONSTANTVALUE): If flag_emit_class_files, call get_constant. 18643 186441998-12-16 Tom Tromey <tromey@cygnus.com> 18645 18646 * parse-scan.y (qualified_name): Use correct sprintf format. 18647 186481998-12-15 Tom Tromey <tromey@cygnus.com> 18649 18650 * gjavah.c (print_field_info): Changed how most negative number is 18651 printed. 18652 186531998-12-14 Per Bothner <bothner@cygnus.com> 18654 18655 * parse.y (fold_constant_for_init): New function. 18656 (resolve_expression_name): Don't replace static final 18657 constant-initialized fields by its value. 18658 (java_complete_lhs): New. Same as java_complete_tree, except does 18659 not replace static final constant-initialized fields by their values. 18660 (register_fields): If there is an initializer, set DECL_INITIAL and 18661 MODIFY_EXPR_FROM_INITIALIZATION_P. 18662 (java_complete_tree): For MODIFY_EXPR, use java_complete_lhs for lhs. 18663 Only call patch_initialized_static_field if 18664 MODIFY_EXPR_FROM_INITIALIZATION_P. 18665 (patch_initialized_static_field): If not valid constant, clear 18666 DECL_INITIAL. 18667 18668 * parse.y (lookup_field_wrapper): Fix thinko. 18669 18670 * parse.y (java_complete_tree): In EXPR_WITH_FILE_LOCATION, 18671 set and restore global lineno. 18672 186731998-12-14 Tom Tromey <tromey@cygnus.com> 18674 18675 * gjavah.c (print_field_info): If value to print is the smallest 18676 value of its size, then print as hex to avoid later warnings from 18677 C++ compiler. 18678 186791998-12-14 Tom Tromey <tromey@cygnus.com> 18680 18681 * gjavah.c (decompile_method): Decompile `return null'. 18682 (process_file): Generate `#pragma interface'. 18683 (method_declared): New global. 18684 (print_method_info): Set it. 18685 (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set. 18686 (print_method_info): Handle abstract methods. 18687 186881998-12-13 Per Bothner <bothner@cygnus.com> 18689 18690 * parse.y (patch_method_invocation): If class_decl is null 18691 (e.g. an array type), use original type. 18692 18693 * parse.y (check_thrown_exceptions): Temporary hack to suppress 18694 errors about uncaught exception from clone (of array, specifically). 18695 186961998-12-13 Tom Tromey <tromey@cygnus.com> 18697 18698 * gjavah.c (decompile_method): Handle all types of `return' 18699 opcode. Decompile `return this' and `return'. 18700 (method_access): New global. 18701 (print_method_info): Set it. 18702 (decompile_method): Don't decompile a synchronized method. 18703 187041998-12-13 Tom Tromey <tromey@cygnus.com> 18705 18706 * jcf-reader.c (jcf_parse_one_method): Recognize 18707 HANDLE_END_METHOD. 18708 * gjavah.c (HANDLE_END_METHOD): New macro. 18709 (HANDLE_CODE_ATTRIBUTE): New macro. 18710 (decompile_method): New function. 18711 (print_method_info): Don't print `;\n' at end of function decl. 18712 Include java-opcodes.h. 18713 (decompiled): New global. 18714 187151998-12-12 Per Bothner <bothner@cygnus.com> 18716 18717 * class.c (build_class_ref): Handle PRIMTYPE.class if 18718 flag_emit_class_files. 18719 * expr.c (expand_java_field_op): Don't optimize java.lang.XXX.TYPE 18720 if flag_emit_class_files. 18721 * parse.y (java_complete_tree): Pre-liminary support for 18722 COMPONENT_REF - only to handle PRIMCLASS.TYPE. 18723 18724 * parse.y (patch_synchronized_statement): Don't call monitorexit 18725 unless block CAN_COMPLETE_NORMALLY. Propagate that flag properly. 18726 18727 * java-tree.h (DECL_LOCAL_STATIC_VALUE): Removed - no longer used. 18728 18729 * zipfile.h (opendir_in_zip): New declaration. 18730 * jcf-io.c (saw_java_source): Moved to jcf-parse.c. 18731 (opendir_in_zip): New function, using code from open_in_zip. 18732 (open_in_zip): Call opendir_in_zip. 18733 (find_class): Remove no-longer-used do_class_file parameter, 18734 but add source_ok parameter. Change logic so if we find a .java file, 18735 we don't look for .class in later classpath emtries. 18736 * jcf-parse.c (load_class): Pass saw_java_source to find_class. 18737 (jcf_figure_file_type): Only call open_in_zip if correct magic number. 18738 * gjavah.c: Update call to find_class. 18739 * jcf-dump.c: Likewise. 18740 18741 * jcf-write.c (put_linenumber): Handle duplicate line numbers. 18742 (generate_bytecode_insns): For EXPR_WITH_FILE_LOCATION, do 18743 nothing if body is empty_stmt_node. 18744 Various little fixes so SP gets correctly adjusted. 18745 For NEW_ARRAY_INIT, handle IGNORE_TARGET. 18746 For CALL_EXPR, test if static first. 18747 (generate_classfile): Ignore fields that are DECL_ARTIFICIAL, 18748 such as the ones we create for Object and Class. 18749 Set and restore current_function_decl. 18750 * parse.y: Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir. 18751 (note_possible_classname): New function. 18752 (read_import_entry): Removed. Merged with read_import_dir. 18753 (read_import_dir): Don't call find_class - that only gives us 18754 the first classpath entry having the needed package. 18755 Use the struct buffer data structure from buffer.h. 18756 (read_import_dir, find_in_imports_on_demand): The remembered 18757 class names now use '.' (not '/') as package separator. 18758 18759 * parse.y (java_complete_expand_methods): Call write_classfile 18760 here, and not in java_expand_classes (which only gets first class). 18761 187621998-12-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 18763 18764 * parse.y (<type_declaration>): Do maybe_generate_clinit last. 18765 (register_fields): If a static fields has an initializer, just 18766 chain it on ctxp->static_initialized, and handle later. 18767 (java_complete_expand_methods): Force <clinit> first. 18768 (resolve_expression_name, resolve_field_access): Just get DECL_INITIAL 18769 - it's already been completed. 18770 (patch_initialized_static_field): New function. 18771 (java_complete_field): Call it. 18772 187731998-12-12 Per Bothner <bothner@cygnus.com> 18774 18775 * expr.c (encode_newarray_type, build_new_array): New functions. 18776 * java-tree.h: Declare build_new_array. 18777 * jcf-write.c (patch_newarray): Use build_new_array. 18778 18779 * expr.c (java_lang_expand_exp): Support NEW_ARRAY_INIT. 18780 * jcf-write.c (generate_bytecode_insns): Support NEW_ARRAY_INIT. 18781 18782 * parse.y (patch_new_array_init): Re-organize. 18783 Now is passed the actual array (pointer) type of the value. 18784 Set the type of the CONSTRUCTOR to be an ARRAY_TYPE. 18785 (patch_array_constructor): Removed - merged into patch_new_array_init. 18786 (java_complete_tree): Update patch_new_array_init. 18787 18788 * jcf-write.c (find_constant_index): New function. 18789 (generate_bytecode_insns): Use find_constant_index. 18790 (generate_classfile): Use find_constant_index for ConstantValue. 18791 187921998-12-11 Tom Tromey <tromey@cygnus.com> 18793 18794 * expr.c (invoke_build_dtable): Renamed dtable -> vtable. 18795 * decl.c (init_decl_processing): Renamed dtable -> vtable. 18796 * class.c (make_class_data): Renamed dtable -> vtable, and 18797 dtable_method_count -> vtable_method_count. 18798 187991998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 18800 18801 * decl.c (long_zero_node, float_zero_node, double_zero_node): New 18802 global variables, initialized. 18803 * java-tree.h (long_zero_node, float_zero_node, double_zero_node): 18804 Declared new global variables. 18805 * lex.c (java_lex): Return long_zero_node, float_zero_node, 18806 double_zero_node, integer_zero_node upon direct matching. 18807 * parse.y (purify_type_name): Added function prototype. 18808 (duplicate_declaration_error_p): Consider new_type as potentially 18809 being a incomplete type. Use purify_type_name on type string. 18810 (method_header): saved_type: unused variable removed. Don't figure 18811 return type if method name is invalid. 18812 (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was 18813 processed by patch_unaryop. 18814 (patch_unaryop): Fixed typo in comment. Re-convert pre/post 18815 increment/decrement node into its original type after binary 18816 numeric promotion on its operands. 18817 188181998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 18819 18820 * parse.y (array_initializer:): Array init operand is NULL_TREE 18821 instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is 18822 now an error. Fixed indentation problems. 18823 (patch_string): Handle error_mark_node as an argument. 18824 (patch_new_array_init): Fixed indentation problems. 18825 (array_constructor_check_entry): Removed check on null wfl_value. 18826 Return an error if wfl_value's walk returns an error. 18827 188281998-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 18829 18830 * java-tree.def (NEW_ARRAY_INIT): New Java tree code. 18831 * lex.c (java_lex): Remember column position before advancing one 18832 token. Retain location information on OCB_TK. 18833 * lex.h (typedef struct java_lc): Added new field. 18834 * parse.h (GET_SKIP_TYPE): New macro. 18835 (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE. 18836 * parse.y (build_new_array_init, patch_new_array_init, 18837 patch_array_constructor, maybe_build_array_element_wfl, 18838 array_constructor_check_entry): New function prototypes. 18839 (switch_block:): Tagged <node>. 18840 (OCB_TK): Tagged <operator>. 18841 (array_initializer:): Installed actions. 18842 (variable_initializer): Build location information on element if 18843 necessary. 18844 (switch_statement:): Fixed indentation typo. 18845 (switch_block:): Redefined default action. 18846 (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:. 18847 (patch_assignment): Removed duplicate code. 18848 (maybe_build_array_element_wfl, build_new_array_init, 18849 patch_new_array_init, patch_array_constructor, 18850 array_constructor_check_entry): New functions. 18851 188521998-12-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 18853 18854 * parse.y (array_initializer): Tagged <node>. 18855 (variable_initializer:): Use default rule. 18856 (array_initializer:): Defined actions. 18857 (variable_initializers:): Likewise. 18858 (resolve_qualified_expression_name): Use DECL_CONTEXT to build 18859 non-static field accesses. 18860 (patch_invoke): Fixed indentation typo. 18861 (java_complete_tree): Likewise. 18862 (build_labeled_block): Changed leading comment. Generate an error 18863 in case of duplicate loop labels. 18864 (patch_conditional_expr): Patch results of string concatenation 18865 operations. 18866 188671998-12-06 Per Bothner <bothner@cygnus.com> 18868 18869 * constants.c (find_methodref_index): When the class is an interface, 18870 generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef. 18871 18872 * decl.c (finit_identifier_node): Use "$finit$", rather than 18873 "<finit>" (which Sun's verifier rejects). 18874 * parse.y (maybe_generate_finit): Leave out meaningless final flag. 18875 (generate_field_initialization_code): Removed. 18876 (fix_constructors) Don't add call to $finit$ here (wrong order). 18877 (patch_method_invocation): Add $finit$ call here. 18878 18879 * java-tree.h (CALL_USING_SUPER): New macro. 18880 * parse.y (patch_invoke): Remove im local variable. 18881 (patch_method_invocation, patch_invoke): Don't pass super parameter. 18882 (patch_invoke): Use CALL_USING_SUPER instead of from_super parameter. 18883 (resolve_qualified_expression_name): Maybe set CALL_USING_SUPER. 18884 18885 * jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL. 18886 18887 * parse.y (java_complete_tree): Don't complain about unreachable 18888 statement if it is empty_stmt_node. 18889 18890 * jcf-write.c (find_constant_wide): New function. 18891 (push_long_const): Use find_constant_wide. 18892 18893 * jcf-write.c (generate_bytecode_insn): Fix bug in switch handling. 18894 (generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR. 18895 Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set. 18896 Emit invokeinterface when calling an interface method. 18897 Emit invokespecial also when calling super or private methods. 18898 18899 * jcf-write.c (generate_classfile): Emit ConstantValue attributes. 18900 189011998-12-06 Per Bothner <bothner@cygnus.com> 18902 18903 * jcf-dump.c (INVOKE): If invokeinterface, print number of args. 18904 189051998-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com> 18906 18907 * java-tree.h (java_layout_seen_class_methods): New function 18908 prototype. 18909 (LAYOUT_SEEN_CLASS_METHODS): Macro removed. 18910 * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods. 18911 * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro. 18912 * parse.y (method_declarator:): Defined action. 18913 (issue_warning_error_from_context): input_filename saved, set to 18914 the appropriate value and restored after java_error is called. 18915 (build_unresolved_array_type): Fixed comment. 18916 (register_fields): Use PROMOTE_RECORD_IF_COMPLETE. 18917 (method_header): Deal with return type the same way type are 18918 handled for fields and method's parameters and local variables 18919 types are handled. 18920 (check_method_redefinition): Removed extra CR. 18921 (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE. 18922 (java_layout_seen_class_methods): New function. 18923 (java_layout_classes): Call java_layout_seen_class_methods. 18924 189251998-12-03 Per Bothner <bothner@cygnus.com> 18926 18927 * parse,y (patch_synchronized_statement): Set CAN_COMPLETE_NORMALLY. 18928 189291998-12-03 Per Bothner <bothner@cygnus.com> 18930 18931 * jcf-dump.c (main): Fix error message. 18932 * jcf-path.c (add_entry): Style fix. 18933 189341998-12-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 18935 18936 * class.c (layout_class_method): Call build_java_argument_signature 18937 on constructors too. 18938 * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE. 18939 (patch_method_invocation): Define a primary when resolving an 18940 expression name. Augmented comment on code checking illegal `this' 18941 usage. Loosened it test by accepting NEW_CLASS_EXPR. 18942 189431998-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 18944 18945 * class.c (layout_class_method): Don't report error on non-static 18946 overriding static if the method is private. 18947 * java-tree.h (finish_class): Prototype added. 18948 * lex.c (java_get_line_col): Handle col argument -2 value. 18949 * parse.h: All static method declarations moved to parse.y. 18950 * parse.y: Now contains all static method declarations previously 18951 found in parse.h. 18952 (find_expr_with_wfl, missing_return_error, 18953 unreachable_stmt_error): New functions. 18954 (java_get_real_method_name): Identify constructors bearing class 18955 names in source code compiled classes only. 18956 (java_complete_expand_methods): Call missing_return_error. 18957 (invocation_mode): Private methods invoked as static methods. 18958 (java_complete_tree): Call unreachable_stmt_error. 18959 189601998-12-01 Tom Tromey <tromey@cygnus.com> 18961 18962 * Makefile.in (+target): Removed. 18963 (+xmake_file): Likewise. 18964 (+tmake_file): Likewise. 18965 (.NOEXPORT): Removed duplicate. 18966 189671998-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 18968 18969 * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK). 18970 18971 * jv-scan.c: Fix xmalloc prototype. Provide an xmalloc definition. 18972 18973 * jvgenmain.c: Remove the xmalloc prototype, we get it from 18974 libiberty.h. Provide an xmalloc definition. 18975 18976 * jvspec.c: Remove the xmalloc prototype. 18977 18978 * parse-scan.y: Include config.h and system.h. Don't include 18979 OS headers or gansidecl.h. Don't prototype xmalloc/xstrdup. 18980 Provide an xstrdup definition. 18981 189821998-11-26 Alexandre Oliva <oliva@dcc.unicamp.br> 18983 18984 * jcf-path.c (add_entry): Recognize ".jar" too. 18985 * lang-specs.h: Likewise. 18986 189871998-11-26 Per Bothner <bothner@cygnus.com> 18988 18989 * jcf-write.c (generate_bytecode_insns): In Call_EXPR, handle 18990 soft_monitorenter_node, soft_monitorexit_node, throw_node. 18991 18992 * jcf-write.c (generate_bytecode_insns): 18993 Handle pre/post-increment/decrement of long. 18994 18995 * jcf-write.c (generate_bytecode_insns): 18996 Handle missing exception handler (finally for synchronized). 18997 189981998-11-25 Per Bothner <bothner@cygnus.com> 18999 19000 * java-tree.h (end_params_node): Declare global. 19001 * decl.c (end_params_node): New global. 19002 (init_decl_processing, start_java_method): Use end_params_node for 19003 end of list of parameter types. Follows correct gcc conventions. 19004 * expr.c (pop_argument_types, pop_arguments): Likewise. 19005 * lang.c (put_decl_node): Likewise. 19006 * typeck.c (various places): Likewise. 19007 * class.y (various places): Likewise. 19008 * parse.y (various places): Likewise. 19009 19010 * parse.y (java_complete_tree): Move CAN_COMPLETE_NORMALLY. 19011 (build_jump_to_finally): Add missing CAN_COMPLETE_NORMALLY. 19012 19013 * class.c: Add #include flags.h, remove no-longer needed declaration. 19014 19015 * class.c (layout_class_method): Remove commented-out code, re-format. 19016 Don't add vtable entry (or index) for private methods. 19017 * expr.c (expand_invoke): A private method is implicitly final. 19018 * class.c (make_class_data): If inlining or optimizing, 19019 skip private methods. 19020 19021 * class.c (finish_class): New function. Calls existing methods, 19022 but alls emits deferred inline functions. 19023 * jcf-parse.c (parse_class_file): Call finish_class. 19024 * parse.y (java_complete_expand_methods): Likewise. 19025 19026 * expr.c (build_java_binop): Explicit default, to silence -Wall. 19027 19028 * expr.c (CHECK_PC_IN_RANGE): Add void cast to kill warnings. 19029 190301998-11-25 Marc Espie <espie@quatramaran.ens.fr> 19031 19032 * jcf-write.c (generate_bytecode_conditional): Fix typo. 19033 190341998-11-24 Per Bothner <bothner@cygnus.com> 19035 19036 * (generate_classfile): Always write class access flag with 19037 ACC_SUPER set. 19038 190391998-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 19040 19041 * class.c (maybe_layout_super_class): New function. 19042 (layout_class): Reorganized. Loop on class methods dispatched into 19043 a new function. Call maybe_layout_super_class. 19044 (layout_class_methods, layout_class_method): New functions. 19045 * expr.c (expand_java_NEW): Call layout_class_methods on loaded 19046 class. 19047 (expand_invoke): Likewise. 19048 * java-tree.h (all_class_list): New global variable declared. 19049 (layout_class_methods, layout_class_method): New function 19050 prototypes. 19051 (LAYOUT_SEEN_CLASS_METHODS): New macro. 19052 * jcf-parse.c (all_class_list): New global variable. 19053 (load_class): Extended what class_or_name can be. Use parser 19054 context mechanism to save globals before calling jcf_parse. 19055 (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P 19056 is set on the file name. 19057 (jcf_parse): Layout class methods when Object is loaded, otherwise 19058 record class in all_class_list for delayed method layout. 19059 (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS. 19060 * lang.c (put_decl_node): Decode <init> into the decl context 19061 class name. 19062 * lex.c (java_allocate_new_line): Use xmalloc. 19063 * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete 19064 pointers, not TREE_LIST elements. 19065 (struct parser_ctxt): Fixed comment indentations, added comments 19066 and reordered some fields. 19067 (java_check_methods): Function prototype removed. 19068 * parse.y (java_push_parser_context): Use xmalloc. 19069 (java_parser_context_restore_global): Pop extra pushed ctxp only 19070 when there's nothing next. 19071 (maybe_create_class_interface_decl): Fixed comment, add new 19072 created class decl to all_class_list. 19073 (method_header): Use GET_REAL_TYPE on argument's types. 19074 (method_declarator): Use GET_REAL_TYPE, change type to the real 19075 type in TREE_LIST dependency node. Build argument list with the 19076 real type. 19077 (create_jdep_list): Use xmalloc. Removed allocation error message. 19078 (obtain_incomplete_type): Fixed leading comment. Broadened 19079 incoming argument meaning. 19080 (register_incomplete_type): Use xmalloc. Removed allocation error 19081 message. 19082 (safe_layout_class): Fixed leading comment. 19083 (jdep_resolve_class): Reversed if statement condition and switch 19084 if and else bodies. 19085 (resolve_and_layout): Fixed leading comment. Broadened incoming 19086 argument meaning. 19087 (complete_class_report_errors): New local variable name, for 19088 clarity. purify_type_name used for all error cases. 19089 (java_get_real_method_name): Stricter check on constructors. 19090 (java_check_regular_methods): Reverse methods list only if not 19091 already laid out. Layout artificial constructor. 19092 (java_check_methods): Deleted. 19093 (source_start_java_method): Obtain incomplete type for patchable 19094 method arguments. 19095 (java_layout_classes): Fixed leading comment. Use 19096 LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else 19097 statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS 19098 before returning. Fixed comments. 19099 (java_expand_classes): Check for errors up front. 19100 (patch_method_invocation): Class to search is resolved and laid 19101 out. 19102 191031998-11-24 Per Bothner <bothner@cygnus.com> 19104 19105 * expr.c (java_lang_expand_expr): Add missing emit_queue. 19106 19107 * javaop.h (int8): Removed - not used. 19108 (jbyte): Redefine portably with correct signedness. 19109 19110 * jcf-write.c (generate_bytecode_insns): Don't free sw_state.cases. 19111 19112 * jcf-write.c (generate_bytecode_insns): Fix typo 19113 OPCODE_getstatic to OPCODE_getfield. 19114 19115 * java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'. 19116 * parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR, 19117 set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them). 19118 191191998-11-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 19120 19121 * jcf-parse.c (jcf_parse_source): Function returned type is 19122 void. Added prototype. 19123 (jcf_parse): Function returned type is void. 19124 (yyparse): Remove call to fclose on the last parsed file. 19125 19126 * java-tree.h (jcf_parse): Changed jcf_parse prototype. 19127 191281998-11-18 Alexandre Petit-Bianco <apbianco@cygnus.com> 19129 19130 * class.c (unmangle_classname): Set QUALIFIED_P when appropriate. 19131 (layout_class): Cope with methods featuring WFL in decl names. 19132 * decl.c (unqualified_object_id_node): New global variable, 19133 initialized. 19134 (build_decl_no_layout): Removed. 19135 * expr.c (build_primtype_type_ref): Handle Double. 19136 (java_lang_expand_expr): Fixed indentations. 19137 * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted. 19138 (flag_wall, flag_redundant, flag_not_overriding, 19139 flag_static_local_jdk1_1, unqualified_object_id_node): Global 19140 variable declarations. 19141 (build_decl_no_layout): Removed prototype. 19142 (java_get_real_method_name): Added prototype. 19143 (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P. 19144 (java_parse_abort_on_error): Macro now just returns. 19145 * jcf-parse.c (jcf_parse_source): Check fclose returned 19146 value. Call emit_register_classes if java_report_errors returns 19147 zero. 19148 * lanc.c (flag_wall, flag_redundant, flag_not_overriding, 19149 flag_static_local_jdk1_1): New integer flags. 19150 (lang_decode_option): New flags set here. 19151 * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros. 19152 (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to 19153 the flag_redundant variable. 19154 (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object 19155 when parsing java.lang.Object class. 19156 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal 19157 NULL_TREE to build. 19158 (resolve_qualified_expression_name): Fixed indentation. 19159 (patch_array_ref): Changed prototype. 19160 (not_initialized_as_it_should_p): Prototype removed. 19161 (java_report_errors): Added function prototype. 19162 * parse.y (formal_parameter:): Changed error message for not yet 19163 supported final parameters. 19164 (class_type_list:): Set both PURPOSE and VALUE of created 19165 TREE_LIST to be class_type. 19166 (primary_no_new_array:): Handle class literals on primitive types. 19167 (parse_warning_context): Reinstalled correct force_error and 19168 do_warning flags setups. 19169 (java_report_errors): Changed prototype. Return java_error_count 19170 value. 19171 (variable_redefinition_error): Consider treating variable type as 19172 a fake pointer. 19173 (create_interface): Warn about redundant abstract modifier if 19174 flag_redundant is set. Changed error message. 19175 (lookup_field_wrapper): Save/restore globals before/after looking 19176 up field. 19177 (duplicate_declaration_error_p): Consider treating declaration 19178 type as a fake pointer. 19179 (register_fields): Extract real type from dependency node. Check 19180 for duplicate field declaration after type adjustment. Use 19181 DECL_INITIAL to store static final initialized values. 19182 (method_header): Extract real function type from dependency node. 19183 (check_abstract_method_header): Use GET_METHOD_NAME. 19184 (obtain_incomplete_type): Layout fake pointer type. 19185 (safe_layout_class): Don't try to check for methods before layout. 19186 (java_complete_class): Don't check for correct throws clause 19187 elements inheritance here. 19188 (resolve_and_layout): Broadened name parameter meaning. 19189 (reset_method_name): Use GET_METHOD_NAME. 19190 (java_get_real_method_name): New function. 19191 (java_check_regular_methods): Don't check methods in 19192 java.lang.Object. Verify lineage of throws clause elements. Use 19193 flag_no_overriding in warning report. 19194 (check_throws_clauses): Don't check if class was from 19195 bytecode. Use IS_UNCHECKED_EXCEPTION_P macro. 19196 (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag. 19197 (declare_local_variables): Use flag_static_local_jdk1_1 to report 19198 warning on unsupported final local variables. Use build_decl 19199 instead of build_decl_no_layout. Get real local variable type from 19200 dependency node. 19201 (source_start_java_method): Get real parameter type from 19202 dependency node. Call build_decl instead of build_decl_no_layout. 19203 (java_layout_classes): Reverse tree and layout type and class as 19204 required. Mark class as loaded when done. 19205 (resolve_field_access): Fixed indentation. Restricted condition 19206 leading to static field access code generation. Set field_type 19207 decl's TREE_TYPE if QUAL_DECL_TYPE not available. 19208 (resolve_qualified_expression_name): Initialize type_found to 19209 null. Handle static field resolved during qualification. Fixed 19210 layout on non primitive field decl types. 19211 (not_accessible_p): Fixed typo in comment. 19212 (patch_method_invocation): Resolve and layout class to search from 19213 type. 19214 (lookup_method_invoke): Keep integer constant 0 as is. Resolve and 19215 layout non primitive type, if necessary. Make method node only to 19216 report errors. 19217 (find_applicable_accessible_methods_list): Consider WFL'ed method 19218 decl names. Fixed indentation. 19219 (argument_types_convertible): Resolve and layout target type if 19220 necessary. 19221 (java_complete_tree): Fixed indentation problems. Rewrote 19222 CALL_EXPR thrown exceptions check. Re-installed further processing 19223 of the assignment in certain cases. 19224 (patch_assignment): Call maybe_build_primttype_type_ref to perform 19225 inlining on class literals. 19226 (valid_builtin_assignconv_identity_widening_p): Cope with constant 19227 0 literal. 19228 (valid_method_invocation_conversion_p): Likewise. 19229 (patch_string): Temporary disable forbidden use of `this' in 19230 explicit constructor invocations when doing string concatenation 19231 within their scope. 19232 (patch_unaryop): Added comment. Reinstalled code to disable 19233 further check on assignment operation with cast expression RHS. 19234 (patch_switch_statement): Fixed indentation. 19235 (build_try_statement): Call build_decl instead of 19236 build_decl_no_layout. 19237 (patch_synchronized_statement): Likewise. 19238 (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of 19239 IS_UNCHECKED_EXPRESSION_P. 19240 (check_thrown_exceptions_do): Changed leading comment. Resolve and 19241 layout argument exception type. 19242 (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead 19243 of IS_UNCHECKED_EXPRESSION_P. 19244 192451998-11-18 Anthony Green <green@cygnus.com> 19246 19247 * jcf-parse.c (yyparse): Open class file in binary mode. 19248 192491998-11-15 Per Bothner <bothner@cygnus.com> 19250 19251 * jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO). 19252 19253 * jcf-write.c (perform_relocations): Move check out one loop. 19254 192551998-11-15 Anthony Green <green@hoser.cygnus.com> 19256 19257 * Make-lang.in: Fix reference to srcdir. 19258 * jv-scan.c: Add missing xmalloc prototype. 19259 * jvgenmain.c: Ditto. 19260 192611998-11-15 Per Bothner <bothner@cygnus.com> 19262 19263 * decl.c (error_mark_node), java-tree.h: New global. 19264 * parse.y: Use empty_stmt_node instead of size_zero_node. 19265 (build_if_else_statement): If missing else, use empty_stmt_node. 19266 19267 * parse.y (not_initialized_as_it_should_p): Removed, with its callers. 19268 (java_complete_expand_method): Complain if return is missing. 19269 (java_check_regular_methods): Comment out incorrect error check. 19270 (not_accessible_p): Fix incorrect handling of protected methods. 19271 (patch_method_invocation): Pass correct context to not_accessible_p. 19272 (find_applicable_accessible_methods_list): Likewise. 19273 (qualify_ambiguous_name): If ARRAY_REF, it's an expression name. 19274 (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR, set 19275 TREE_TYPE (to void_type_node); otherwise expand_expr crashes. 19276 (patch_if_else_statement): Fix setting of CAN_COMPLETE_NORMALLY. 19277 19278 * jcf-write.c (CHECK_OP, CHECK_PUT): Add some error checking. 19279 (push_int_const): Remove reundant NOTE_PUSH. 19280 (generate_bytecode_insns - case STRING_CST): Do NOTE_PUSH. 19281 (- case SWITCH_EXPR): Fix code generation bug. 19282 (- case PREDECREMENT_EXPR etc): Remove redundant NOTE_PUSH. 19283 (generate_classfile): More robust for abstract methods. 19284 192851998-11-15 Anthony Green <green@cygnus.com> 19286 19287 * Makefile.in: jv-scan and jvgenmain all require libiberty. 19288 * Make-lang.in: Ditto. 19289 19290 * jv-scan.c: Remove xmalloc and xstrdup definitions. 19291 * jvgenmain: Ditto. 19292 192931998-11-15 Per Bothner <bothner@cygnus.com> 19294 19295 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro. 19296 19297 * jcf-io.c (find_class): Simpler/cleaner structure fixes a bug. 19298 192991998-11-14 Per Bothner <bothner@cygnus.com> 19300 19301 Allow uses of interface types to verify. This is not really 19302 type-safe, but it matches what Sun does, and is OK as long as 19303 there are appropriate run-time checks. 19304 * verify.c (merge_types): If merging two interface types, 19305 just set the result to java.lang.Object. 19306 * expr.c (pop_type): Any interface is matches by java.lang.Object. 19307 193081998-11-13 Tom Tromey <tromey@cygnus.com> 19309 19310 * gjavah.c (main): Handle --output-class-directory argument. 19311 * jvspec.c (lang_specific_driver): Translate `-d' into 19312 -foutput-class-dir. 19313 * jcf.h (jcf_write_base_directory): Declare. 19314 * lang.c (lang_decode_option): Recognize -foutput-class-dir. 19315 * lang-options.h: Mention -foutput-class-dir. 19316 * jcf-write.c (jcf_write_base_directory): New global. 19317 (make_class_file_name): Put generated .class file into `-d' 19318 directory, or into source directory if -d not given. Function now 19319 static. 19320 (write_classfile): Free class file name. Handle case where class 19321 file name is NULL. 19322 (DIR_SEPARATOR): New macro. 19323 Include <sys/stat.h> 19324 19325 * Makefile.in (prefix): New macro. 19326 193271998-11-12 Per Bothner <bothner@cygnus.com> 19328 19329 * parse.y (patch_invoke): Do less if flag_emit_class_files. 19330 * expr.c (build_known_method_ref): Don't check flag_emit_class_files 19331 here (done in patch_invoke instead). 19332 (case_identity): Moved here from parse.y. 19333 19334 * java-tree.h (CAN_COMPLETE_NORMALLY): New macro. 19335 * parse.y (java_complete_tree etc): Maybe set CAN_COMPLETE_NORMALLY. 19336 * parse.y (java_complete_tree): Re-order COMPOUND_EXPR in BLOCK 19337 so they can be efficiently scanned without recursion. 19338 Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR. 19339 * expr.c (java_lang_expand_expr): Expand statements of COMPOUND_EXPR 19340 in BLOCK iteratively, rather than recursively. 19341 19342 * parse.y (do_unary_numeric_promotion): New function. 19343 (patch_unaryop, patch_binop, patch_array_ref): Use it. 19344 19345 * parse.y (patch_newarray): Various fixes. 19346 19347 Re-do handling of switch statements (for proper block scoping). 19348 * parse.y: Add just a single block for the enture switch block, 19349 but don't create any "case blocks". 19350 (group_of_labels): Rmeoved unneeded non-terminal. 19351 CASE_EXPR and DEFAULT_EXPR are added to current block. 19352 * expr.c (java_lang_expand_expr): Inline SWITCH_EXPR here. 19353 Now also need to handle CASE_EXPR and DEFAULT_EXPR. 19354 * java-tree.h (SWITCH_HAS_DEFAULT): New macro. 19355 * parse.y (wfl_operator, print_int_node): Make non-static. 19356 (java_complete_tree): CASE_EXPR and DEFAULT_EXPR are now processed 19357 as part of recursive scan of block. 19358 (java_expand_switch ): Removed - inlined into java_lang_expand_expr. 19359 (patch_switch_statement): Most tests move dinto java_complete_tree. 19360 19361 * parse.y: Make various production be non-typed (void). 19362 * parse.y (parse_error): Merged into issue_warning_error_from_context. 19363 * parse.y (add_stmt_to_compound): Don't create/change extra node. 19364 (patch_method_invocation_stmt): Renamed to patch_method_invocation. 19365 19366 * jcf-write.c (struct jcf_handler): New type. 19367 (struct jcf_switch_state): New type. 19368 (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC): New relocation kinds. 19369 (alloc_handler, emit_unop, emit_reloc): New functions. 19370 (adjust_typed_op): Add extra parameter ("max type" offset). 19371 (emit_switch_reloc, emit_case-reloc): New function. 19372 (generate_bytecode_conditional): Handle REAL_TYPE comparisons. 19373 (generate_bytecode_insns): Support REAL_CST, switch statements, 19374 exception handling, method calls, object/array creation, and more. 19375 19376 * class.c: Remove some unused variables. 19377 * constants.c (find_string_constant): New function. 19378 (count_constant_pool_bytes): Fix to correctly handle wide constants. 19379 * decl.c (complete_start_java_method): Don't _Jv_InitClass 19380 if flag_emit_class_files. 19381 193821998-11-12 Tom Tromey <tromey@cygnus.com> 19383 19384 * jcf-io.c (find_class): Added explanatory comment. 19385 19386 * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add 19387 trailing slash to `.zip' entries. 19388 19389 * jvspec.c (lang_specific_driver): Correctly handle case where 19390 GC_NAME not defined. 19391 193921998-11-11 Tom Tromey <tromey@cygnus.com> 19393 19394 * jvspec.c (GC_NAME): New define. 19395 (lang_specific_driver): Use GC_NAME. Add GC_NAME to command line 19396 if required. 19397 * Make-lang.in (jvspec.o): Define WITH_GC_<name>. 19398 193991998-11-11 Per Bothner <bothner@cygnus.com> 19400 19401 * jcf-dump.c (TABLE_SWITCH): Fix typos. 19402 194031998-11-11 Tom Tromey <tromey@cygnus.com> 19404 19405 * jcf-dump.c (main): Correctly recognize `--'-style long options. 19406 194071998-11-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 19408 19409 * class.c (is_compiled_class): Call safe_layout_class for class 19410 compiled from source. 19411 * conver.h (convert_to_integer, convert_to_real, 19412 convert_to_pointer): Added prototypes. 19413 * decl.c (init_decl_processing): Non longer push the decls of 19414 `methodtable', `constants', `Class', `Field', `dispatchTable' 19415 `jexception' and `Method'. 19416 * expr.c (build_invokeinterface): New function. 19417 (expand_invoke): static variable CLASS_IDENT now in 19418 build_invokeinterface. Use build_invokeinterface. 19419 (expand_java_field_op): Moved code to inline 19420 java.lang.PRIMTYPE.TYPE into a function. 19421 (build_primtype_type_ref): New function. 19422 * java-tree.def (INSTANCEOF_EXPR): New tree code. 19423 * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED, 19424 FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros. 19425 (DECL_CONSTRUCTOR_P): Fixed typo in comment. 19426 (DECL_LOCAL_STATIC_VALUE): New macro. 19427 (build_invokeinterface, build_primtype_type_ref): New function 19428 prototypes. 19429 (java_parse_abort_on_error): Macro rewritten. 19430 * jcf-parse.c (current_method): Add comment to declaration. 19431 (parse_zip_file_entries, process_zip_dir, void parse_source_file): 19432 Function prototypes fixed. 19433 (jcf_parse_source): push/pop parser context. save/restore global. 19434 (parse_source_file): Fixed leading comment. Now take a 19435 IDENTIFIER_NODE as an argument. Doesn't check methods, layout 19436 classes and pop the parser context anymore. 19437 (yyparse): Push parser context, save globals, parse the source 19438 file, restore globals and pop the parser context when processing a 19439 source file. 19440 * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define. 19441 * lex.c (java_parse_doc_section): New function. 19442 (java_lex): Call java_parse_doc_section when appropriate. Build an 19443 operator around INSTANCEOF_TK. 19444 * lex.h (java_lineterminator, java_sprint_unicode, 19445 java_unicode_2_utf8, java_lex_error, java_store_unicode): 19446 Prototypes rewritten. 19447 (java_parse_escape_sequence, java_letter_or_digit_p, 19448 java_parse_doc_section, java_parse_end_comment, java_get_unicode, 19449 java_read_unicode, java_store_unicode, java_read_char, 19450 java_allocate_new_line, java_unget_unicode, java_sneak_unicode): 19451 Added function prototypes. 19452 * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG 19453 define. 19454 (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT): 19455 New macros 19456 (struct parser_ctxt): New fields: deprecated, 19457 current_parsed_class_un, gclass_list. 19458 (fix_method_argument_names, issue_warning_error_from_context, 19459 resolve_package, lookup_package_type): New function prototypes. 19460 (resolve_expression_name): Fixed function prototype. 19461 (find_applicable_accessible_methods_list): Fixed indentation, added 19462 extra argument in prototype. 19463 (check_final_assignment, build_null_of_type, check_deprecation, 19464 check_method_redefinition, reset_method_name, 19465 java_check_regular_methods, java_check_abstract_methods, 19466 maybe_build_primttype_type_ref): New function prototype. 19467 * parse.y (conver.h): Include. 19468 (INSTANCEOF_TK): Tagged <operator>. 19469 (single_type_import_declaration): Use REGISTER_IMPORT macro. 19470 (relational_expression:): Build binop for instanceof. 19471 (java_push_parser_context): Remember ctxp->gclass_list across 19472 contexts. 19473 (java_pop_parser_context): Simply return if no context 19474 exists. Remember gclass_list across contexts. 19475 (issue_warning_error_from_context): New function. 19476 (parse_error_context): Don't setup ctxp->elc here. Call 19477 issue_warning_error_from_context instead. 19478 (parse_warning_context): Likewise. 19479 (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL 19480 setup. Link new class/interface to ctxp->gclass_list. 19481 (add_superinterfaces): Register interface as incomplete if not 19482 loaded. 19483 (create_class): Remember class unqualified name in 19484 ctxp->current_parsed_class_un. Check class deprecation. 19485 (register_fields): Check field deprecation. Remember static final 19486 field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part 19487 processing INIT. 19488 (method_header): New local variable ORIG_ARG. Use unqualified 19489 current class name for check on constructor errors. Promote return 19490 type if of record type. Argument list fix moved in 19491 fix_method_argument_names, called here. Check method deprecation. 19492 (fix_method_argument_names): New function. 19493 (method_declarator): Promote record typed arguments. 19494 (safe_layout_class): Check class methods before layout. 19495 (java_complete_class): Compute field layout when patched. 19496 (do_resolve_class): Try to load class after having it renamed 19497 after the package name. 19498 (get_printable_method_name): Use DECL_CONTEXT. 19499 (reset_method_name): New function. 19500 (check_method_redefinition): Use reset_method_name. 19501 (java_check_regular_methods): New local variable 19502 SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method 19503 names for error report. Check for compile-time error when method 19504 found has default (package) access. 19505 (java_check_abstract_methods): Now takes an interface DECL node as 19506 an argument. Also reinstall real name on unchecked 19507 overriding/hiding methods for error report. 19508 (java_check_methods): Fixed leading comment. Get classes to verify 19509 from ctxp->gclass_list. Use CHECK_METHODS macro and set 19510 CLASS_METHOD_CHECKED_P on class verification. 19511 (lookup_java_method2): Get real method name if necessary. 19512 (find_in_imports): Don't check package class access here. 19513 (resolve_package, lookup_package_type): New functions. 19514 (java_layout_classes): Fixed leading comment. Take classes to be 19515 laid out from ctxp->gclass_list. 19516 (java_complete_expand_methods): Don't expand native and abstract 19517 methods. 19518 (java_expand_classes): New function. 19519 (resolve_expression_name): Use additional argument ORIG. Retrieve 19520 values of static final field of primitive types. 19521 (resolve_field_access): Handles static final field of promotive 19522 type. 19523 (resolve_qualified_expression_name): Handle STRING_CST as 19524 primaries and package name resolution. Check deprecation on found 19525 decls. Set where_found and type_found on non static field resolved 19526 during qualification. Layout non primitive field decl types. 19527 (check_deprecation): New function. 19528 (maybe_access_field): Simplified. 19529 (patch_method_invocation_stmt): Local variable CLASS_TYPE 19530 removed. Reverse method's argument when primary is a type. Don't 19531 use CLASS_TYPE to report problems, use IDENTIFIER_WFL 19532 instead. Include abstract class in the list of class searchable 19533 for constructors. Use DECL_CONTEXT of found method for access 19534 checks. Check method deprecation. 19535 (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when 19536 converting arguments. Handle INVOKE_INTERFACE. 19537 (lookup_method_invoke): Search constructor using existing 19538 infrastructure (don't rely on lookup_java_constructor anymore). 19539 (find_applicable_accessible_methods_list): Extra argument flag 19540 LC. Now include constructor in the search. 19541 (qualify_ambiguous_name): Conditional expression are primaries. 19542 (not_initialized_as_it_should_p): static final are always 19543 initialized. 19544 (java_complete_tree): Pass extra NULL argument to 19545 resolve_expression_name. Stricter test to carry on patching 19546 assignments. New case for INSTANCEOF_EXPR. 19547 (complete_function_arguments): Inline PRIMTYPE.TYPE read access. 19548 (check_final_assignment, maybe_build_primttype_type_ref): New 19549 functions. 19550 (patch_assignment): Detect resolved static finals and carry normal 19551 assignment error check on them. Inline PRIMTYPE.TYPE read access. 19552 (try_builtin_assignconv): Access constant 0 on all primitive 19553 types. 19554 (valid_builtin_assignconv_identity_widening_p): Accept identical 19555 types. Accept all promoted type on int type. 19556 (valid_ref_assignconv_cast_p): Accept a null pointer to be 19557 assigned to a reference. 19558 (valid_method_invocation_conversion_p): Accept to check null 19559 pointers. 19560 (build_binop): Merge declaration and initialization of local 19561 variable BINOP. 19562 (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all 19563 numeric types. Improved validity test for qualify operators on 19564 references. 19565 (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR 19566 and PREINCREMENT_EXPR. Also detect resolved static finals of a 19567 primitive type and issue the appropriate error message. 19568 (resolve_type_during_patch): Mark class loaded when resolved. 19569 (patch_cast): Allow null to be cased to reference types. 19570 (build_null_of_type): New function. 19571 (patch_array_ref): Handle array on references correctly. 19572 (patch_return): Removed unused local variable MODIFY. Force 19573 boolean to be returned as integers. Allows null to be returned by 19574 a function returning a reference. 19575 * typeck.c (convert_to_integer, convert_to_real, 19576 convert_to_pointer): Prototypes moved to convert.h 19577 (lookup_argument_method): Use method real name, if necessary. 19578 195791998-10-30 Tom Tromey <tromey@cygnus.com> 19580 19581 * class.c (build_class_ref): Changed name of primitive classes to 19582 start with `_Jv_'. 19583 19584 * class.c (make_class_data): Renamed fields: nmethods to 19585 method_count, method_count to dtable_method_count. Always set 19586 `state' field to 0. 19587 * decl.c (init_decl_processing): Likewise. 19588 195891998-10-28 Alexandre Petit-Bianco <apbianco@cygnus.com> 19590 19591 * class.c (layout_class): Don't mangle <finit>, produce 19592 __finit<class> instead. Don't verify artificial methods. 19593 * decl.c (finit_identifier_node): New declared global. 19594 (init_decl_processing): finit_identifier_node initialized. 19595 * java-tree.def (CONDITIONAL_EXPR): New Java tree code. 19596 * java-tree.h (finit_identifier_node): Declared as extern. 19597 (struct lang_decl): New field called_constructor. 19598 (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor. 19599 (CLASS_HAS_FINIT_P): New macro. 19600 (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks 19601 explicit constructor invocation. 19602 (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P, 19603 CALL_SUPER_CONSTRUCTOR_P): New macros. 19604 (write_classfile): Added prototype. 19605 * jcf-parse.c (jcf_parse_source): Parse and remember for 19606 generation if the file was seen on the command line. 19607 (parse_source_file): Don't write the class file here. 19608 (yyparse): Loop on files rewritten. Set current_jcf. 19609 (parse_zip_file_entries): Parse class file only if it was found. 19610 * lang.c (init_parse): Don't open command line provided filename 19611 here. 19612 (lang_parse): Don't set main_jcf anymore. 19613 * parse.h (ABSTRAC_CHECK): Capitalized arguments. 19614 (JCONSTRUCTOR_CHECK): New macro. 19615 (JBSC_TYPE_P): New macro. 19616 (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment. 19617 (COMPLETE_CHECK_OP_2): New macro. 19618 (struct parse_ctxt): New field explicit_constructor_p. 19619 (check_class_interface_creation): Fixed prototype indentation. 19620 (patch_method_invocation_stmt): Prototype reflects added argument. 19621 (patch_invoke): Likewise. 19622 (complete_method_declaration, build_super_invocation, 19623 verify_constructor_circularity, 19624 build_this_super_qualified_invocation, get_printable_method_name, 19625 patch_conditional_expr, maybe_generate_finit, fix_constructors, 19626 verify_constructor_super, create_artificial_method, 19627 start_artificial_method_body, end_artificial_method_body, 19628 generate_field_initialization_code): New function prototypes. 19629 * parse.y: Fixed leading comment 19630 (constructor_header:, constructor_body:, block_end:): Rules tagged 19631 <node>. 19632 (type_declaration:): Call maybe_generate_finit. 19633 (method_declaration:): Action for method_body: placed in new 19634 function complete_method_declaration, called here. 19635 (constructor_declaration:): Defined actions. Removed leading 19636 FIXME. 19637 (constructor_header:): New rule with action. 19638 (constructor_body:): Rule rewritten using block_begin: and 19639 block_end:. Defined actions. 19640 (constructor_declarator:, explicit_constructor_invocation:): 19641 Defined actions. 19642 (block:): Use new rules block_begin: block_end:. 19643 (block_begin:, block_end:): New rules and actions. 19644 (block_statements:): Fixed error message for explicit 19645 constructors. 19646 (method_invocation:): Call build_this_super_qualified_invocation 19647 if primary is `this' or `super' was seen. 19648 (conditional_expression:): Action defined. 19649 (extra_ctxp_pushed_p): New static global flag. 19650 (java_parser_context_save_global): Create parser context if 19651 necessary. Use extra_ctxp_pushed_p to remember it. 19652 (java_parser_context_restore_global): Pop extra parser context if 19653 one exists. 19654 (build_array_from_name): Array on primitive types are marked 19655 loaded. 19656 (register_fields): Restore new name in field initializer 19657 expression if type was altered. Non static fields initialized upon 19658 declaration marked initialized. 19659 (maybe_generate_finit): New function. 19660 (maybe_generate_clinit): Use create_artificial_method, 19661 start_artificial_method_body, end_artificial_method_body. Generate 19662 debug info for enclosed initialization statements. 19663 (method_header): Fixed leading comment. Check constructor 19664 flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P 19665 accordingly. 19666 (complete_method_declaration, constructor_circularity_msg, 19667 verify_constructor_circularity): New functions. 19668 (get_printable_method_name): New function. 19669 (check_method_redefinition): Don't rename <finit> methods. Fix 19670 declared constructor names. Error message for 19671 constructors modified. 19672 (java_check_regular_methods): Local variable seen_constructor 19673 renamed saw_constructor. Skip verification on constructors. Create 19674 default constructor with create_artificial_method. 19675 (java_check_methods): Removed unnecessary empty line. 19676 (create_artificial_method, start_artificial_method_body, 19677 end_artificial_method_body): New functions. 19678 (java_layout_classes): Changed leading comment. Reverse fields 19679 list if necessary. Always layout java.lang.Object if being 19680 defined. 19681 (java_complete_expand_methods): Verify constructor circularity. 19682 (java_complete_expand_method): Call fix_constructor on 19683 constructors. Local variable no_ac_found removed. Restore 19684 bindings if method body expansion failed. 19685 (fix_constructors, verify_constructor_super, 19686 generate_field_initialization_code): New function. 19687 (java_expand_classes): Fixed leading comment. Write class file 19688 here. 19689 (resolve_expression_name): Check for illegal instance variable 19690 usage within the argument scope of an explicit constructor 19691 invocation. 19692 (resolve_qualified_expression_name): Pass extra from_super flag 19693 when invoking patch_method_invocation_stmt. New case for 19694 conditional expression when used as a primary. Check for error 19695 when acquiring super. 19696 (patch_method_invocation_stmt): Added extra argument super. New 19697 local variable is_static_flag. Set class_to_search according to 19698 the nature of the constructor invocation. Don't add `this' 19699 argument when expanding NEW_CLASS_EXPR. Check for illegal method 19700 invocation within the argument scope of explicit constructor 19701 invocation. Set is_static according to is_static_flag. Provide 19702 extra `super' argument to patch_invoke invocation. 19703 (patch_invoke): New argument from_super. Loop on arguments 19704 indentation fixed. Pass from_super to invocation_mode. New switch 19705 case INVOKE_SUPER. Fixed error message in switch default case. 19706 Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node 19707 value. 19708 (invocation_mode): Return INVOKE_SUPER mode when appropriate. 19709 (lookup_method_invoke): Fixed prototypes in candidates list. Error 19710 message takes constructors into account. 19711 (find_applicable_accessible_methods_list): Fixed indentation. 19712 (qualify_ambiguous_name): Take explicit constructor invocation 19713 into account. Deal with a conditional expression as a primary to 19714 a method call. 19715 (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR 19716 case. Added extra argument to patch_method_invocation_stmt. 19717 Register calls made to explicit constructor `this'. Don't call 19718 save_expr in ARRAY_REF case when emitting class files. Check for 19719 illegal use of this when expanding explicit constructor invocation 19720 arguments. 19721 (complete_function_arguments): Set and reset parser context 19722 explicit_constructor_p field value when appropriate. 19723 (build_super_invocation, build_this_super_qualified_invocation): 19724 New functions. 19725 (patch_assignment): Fixed typo. 19726 (patch_unaryop): Check on final fields occurs only when a decl 19727 exits. 19728 (patch_return): Take constructors into account. 19729 (patch_conditional_expr): New function. 19730 * typeck.c (build_java_signature): Removed unnecessary empty line. 19731 197321998-10-28 Jeffrey A Law (law@cygnus.com) 19733 19734 * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too. 19735 197361998-10-28 Tom Tromey <tromey@cygnus.com> 19737 19738 * decl.c (init_decl_processing): Renamed fields. 19739 * class.c (make_class_data): Renamed bfsize, nfields, nsfields, 19740 interface_len, msize fields. 19741 19742 * class.c (make_class_data): Removed subclass_head and 19743 subclass_next fields. 19744 * decl.c (init_decl_processing): Removed subclass_head and 19745 subclass_next fields. 19746 197471998-10-28 Jeffrey A Law (law@cygnus.com) 19748 19749 * jcf-write.c (emit_load_or_store): Avoid implicit int arguments. 19750 * mangle.c (emit_unicode_mangled_name): Similarly. 19751 197521998-10-26 Nick Clifton <nickc@cygnus.com> 19753 19754 * jcf-parse.c (get_constant): Place braces around code to compute 19755 'd' when REAL_ARITHMETIC is not defined. 19756 197571998-10-25 H.J. Lu (hjl@gnu.org) 19758 19759 * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to 19760 dependency. 19761 197621998-10-23 Tom Tromey <tromey@cygnus.com> 19763 19764 * lang-specs.h: `.zip' files are input to jc1. 19765 197661998-10-22 Per Bothner <bothner@cygnus.com> 19767 19768 * jvspecs.c: Add (but don't enable) support for combining multiple 19769 .class and .java input filenames to a single jc1 invocation. 19770 Add support for -C flag (copile to .class files). 19771 Translate -classpath and -CLASSPATH arguments. 19772 * lang-specs.h: Don't set %2 spec. 19773 197741998-10-22 Tom Tromey <tromey@cygnus.com> 19775 19776 * jcf-path.c (add_entry): Don't add trailing separator if entry is 19777 a .zip file. 19778 (add_path): Don't add trailing separator to non-empty path 19779 elements. 19780 19781 * lang.c (lang_decode_option): Check for -fclasspath and 19782 -fCLASSPATH before examining other `-f' options. 19783 19784 * java-tree.h (finalize_identifier_node): Don't declare. 19785 * class.c (make_class_data): Don't push "final" field. 19786 * decl.c (init_decl_processing): Don't push "final" field. 19787 (finalize_identifier_node): Removed. 19788 (init_decl_processing): Don't set finalize_identifier_node. 19789 19790 * config-lang.in (stagestuff): Added jcf-dump and jv-scan. 19791 197921998-10-11 Anthony Green <green@cygnus.com> 19793 19794 * Make-lang.in (java): Depend on jcf-dump and jv-scan. 19795 (JV_SCAN_SOURCES): New macro. 19796 (JCF_DUMP_SOURCES): Likewise. 19797 (jcf-dump$(exeext)): New target. 19798 (jv-scan$(exeext)): New target. 19799 198001998-10-22 Tom Tromey <tromey@cygnus.com> 19801 19802 * Makefile.in (LEX): Removed. 19803 (LEXFLAGS): Likewise. 19804 (SET_BISON): New macro. 19805 (BISON): Removed. 19806 ($(PARSE_C)): Use SET_BISON. Run bison from srcdir to avoid 19807 spurious diffs in parse.c. 19808 ($(PARSE_SCAN_C)): Likewise. 19809 (PARSE_DIR): New macro. 19810 (PARSE_C): Use it. 19811 (PARSE_SCAN_C): Likewise. 19812 (PARSE_RELDIR): New macro. 19813 19814 * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c. 19815 19816 * jcf-io.c (find_class): Use saw_java_source to determine when to 19817 look for `.java' file. 19818 * jcf-parse.c (saw_java_source): New global. 19819 (yyparse): Set it if `.java' file seen. 19820 19821 * Make-lang.in (JAVA_SRCS): Added jcf-path.c. 19822 (GCJH_SOURCES): Likewise. 19823 * Makefile.in (datadir): New macro. 19824 (libjava_zip): Likewise. 19825 (JAVA_OBJS): Added jcf-path.o. 19826 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o. 19827 (../gcjh$(exeext)): Likewise. 19828 (jcf-path.o): New target. 19829 * java-tree.h (fix_classpath): Removed decl. 19830 * jcf-parse.c (fix_classpath): Removed. 19831 (load_class): Don't call fix_classpath. 19832 * parse.y (read_import_dir): Don't call fix_classpath. 19833 * lex.h: Don't mention classpath. 19834 * lex.c (java_init_lex): Don't initialize classpath. 19835 * jcf-io.c (classpath): Removed global. 19836 (find_class): Use jcf_path iteration functions. Correctly search 19837 class path for .java file. 19838 (open_in_zip): New argument `is_system'. 19839 * jcf-dump.c (main): Call jcf_path_init. Recognize all new 19840 classpath-related options. 19841 * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH, 19842 and -I. 19843 (lang_init): Call jcf_path_init. 19844 * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH. 19845 * lang-specs.h: Handle -I. Minor cleanup to -M options. 19846 Correctly put braces around second string in each entry. 19847 * gjavah.c (main): Call jcf_path_init. Recognize all the new 19848 classpath-related options. 19849 (help): Updated for new options. 19850 * jcf.h: Declare functions from jcf-path.c. Don't mention 19851 `classpath' global. 19852 * jcf-path.c: New file. 19853 19854 * jcf-depend.c: Include jcf.h. 19855 19856 * jcf-write.c (localvar_alloc): Returns `void'. 19857 (localvar_free): Removed unused variable. 19858 19859 * lang.c (OBJECT_SUFFIX): Define if not already defined. 19860 (init_parse): Use OBJECT_SUFFIX, not ".o". 19861 198621998-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com> 19863 19864 * class.c (emit_register_classes): Renamed from 19865 emit_register_class. 19866 * java-tree.h (emit_register_classes): Prototype renamed from 19867 emit_register_class. 19868 * jcf-parse.c (yyparse): Call emit_register_classes once before 19869 returning. 19870 * parse.y (java_expand_classes): No longer register classes. 19871 198721998-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 19873 19874 * class.c (is_compiled_class): New local variable 19875 seen_in_zip. Identify classes found in currently compiled source 19876 file(s). 19877 * decl.c (complete_start_java_method): Fixed typo. 19878 * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P, 19879 HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros. 19880 (CLASS_P): Moved around. 19881 (java_parse_abort_on_error): Macro moved from jcf-parse.c 19882 * jcf-parse.c (java_parse_abort_on_error): Macro moved to 19883 java-tree.h 19884 (jcf_parse_source): Changed leading comment. Removed unnecessary 19885 fclose and CLASS_FROM_SOURCE_P marking. 19886 (parse_source_file): New local variables remember_for_generation 19887 and filename. Mark parsed file name identifier node. Removed block 19888 executed when parse_only was null. Set remember_for_generation. 19889 Use it as an argument to java_pop_parser_context. 19890 (yyparse): New local variables several_files, list, next node and 19891 current_file_list. Split ampersand separated file names into 19892 current_file_list. Iterate through the list and parse accordingly. 19893 * parse.h (java_pop_parser_context): New function prototype. 19894 * parse.y (ctxp_for_generation): New static global variable. 19895 (java_pop_parser_context): New argument generate. Link popped ctxp 19896 to ctxp_for_generation list accordingly. 19897 (java_complete_expand_methods): Fixed indentation. 19898 (java_expand_classes): New function. 19899 199001998-10-17 Per Bothner <bothner@cygnus.com> 19901 19902 * Makefile.in: Link with libiberty.a instead of memmove.o. 19903 199041998-10-16 Alexandre Petit-Bianco <apbianco@cygnus.com> 19905 19906 * lex.c (setjmp.h): No longer included. 19907 * lex.h (setjmp.h): Included. 19908 * parse.h (SET_TYPE_FOR_RESOLUTION): New macro. 19909 (duplicate_declaration_error_p): Renamed from 19910 duplicate_declaration_error. 19911 (build_array_from_name): New function prototype. 19912 * parse.y (setjmp.h): No longer included. 19913 (variable_declarator_id): Define action. 19914 (build_array_from_name): New function. 19915 (duplicate_declaration_error_p): Renamed from 19916 duplicate_declaration_error. Fixed leading comment. 19917 (register_fields): Main `for' loop reorganized. Uses 19918 SET_TYPE_FOR_RESOLUTION and build_array_from_name. 19919 (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call 19920 build_array_from_name. 19921 (resolve_class): Set CLASS_LOADED_P on newly build array dimension 19922 types. 19923 (read_import_dir): Don't try to skip `.' and `..'. 19924 (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and 19925 build_array_from_name. Main `for' loop reorganized. 19926 (resolve_qualified_expression_name): When building access to a 19927 field, use the type where the field was found, not its own type. 19928 (maybe_access_field): Use field DECL_CONTEXT if the type where the 19929 field was found is null. 19930 (qualify_ambiguous_name): Sweep through all successive array 19931 dimensions. 19932 199331998-10-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 19934 19935 * java-tree.h (pop_labeled_block, lang_printable_name, 19936 maybe_add_interface, set_super_info, get_access_flags_from_decl, 19937 interface_of_p, inherits_from_p, fix_classpath, 19938 complete_start_java_method, emit_handlers, init_outgoing_cpool, 19939 make_class_data, register_class, alloc_name_constant): New 19940 function prototypes. 19941 * lang.c (lang_decode_option): Set argc argument unused. Fixed 19942 indentation. Added cast to remove warning. 19943 (lang_printable_name): Set v argument unused. 19944 (lang_print_error): Added argument to lang_printable_name call. 19945 (java_dummy_print, print_lang_decl, print_lang_type, 19946 print_lang_identifier, lang_print_xnode): All argument marked 19947 unused. 19948 * lex.c (java_unget_unicode): Removed unnecessary argument. 19949 (java_allocate_new_line): Unused local variable is gone. 19950 (java_read_char): Added parenthesis in expressions to remove 19951 warnings. Added final return statement. 19952 (java_read_unicode): Added parenthesis in expression to remove 19953 warning. 19954 (java_parse_end_comment): Fixed java_unget_unicode invocation. 19955 (java_parse_escape_sequence): Likewise. 19956 (java_lex): Unused local variables are gone. Fixed 19957 java_unget_unicode invocation. 19958 * lex.h (set_float_handler): Prototype added when JC1_LITE not 19959 defined. 19960 * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed 19961 lang_printable_name invocation in macro. 19962 (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL): 19963 Likewise. 19964 (duplicate_declaration_error): Suppressed unused argument in 19965 prototype. 19966 (identical_subpath_p): Function declaration is gone. 19967 (patch_invoke): Suppressed unused argument in prototype. 19968 (patch_cast, build_labeled_block, check_thrown_exceptions): 19969 Likewise. 19970 * parse.y (setjmp.h): Included 19971 (toplev.h): Likewise. 19972 (field_declaration:): Suppressed unused local 19973 (label_decl:): Fixed build_labeled_block invocation. 19974 (java_pop_parser_context): Put extra parenthesis around assignment 19975 in if. 19976 (yyerror): Suppressed unused local variables. 19977 (variable_redefinition_error): Fixed lang_printable_name 19978 invocation. 19979 (create_interface): Suppressed unused local variables. 19980 (create_class): Likewise. 19981 (duplicate_declaration_error): Suppressed unused argument. Fixed 19982 lang_printable_name invocation. 19983 (register_fields): Suppressed unused local variable. Fixed 19984 duplicate_declaration_error invocation. 19985 (method_header): Suppressed unused local variable. 19986 (method_declarator, parser_check_super): Likewise. 19987 (java_complete_class): Suppressed unused local variable. Fixed 19988 fatal error message. 19989 (complete_class_report_errors): Added default: in switch. 19990 (java_check_regular_methods): Fixed lang_printable_name 19991 invocations. 19992 (check_throws_clauses): Likewise. 19993 (java_check_abstract_methods): Suppressed unused local 19994 variable. Fixed lang_printable_name invocation. 19995 (read_import_entry): Added supplemental return statement. 19996 (read_import_dir): Suppressed unused local variables. 19997 (check_pkg_class_access, declare_local_variables): Likewise. 19998 (source_start_java_method): Suppressed unused extern variable 19999 declarations 20000 (expand_start_java_method): Suppressed unused extern and local 20001 variable declarations. 20002 (java_complete_expand_methods): Likewise. 20003 (java_complete_expand_method): Suppressed unused local variables. 20004 (make_qualified_name): Likewise. 20005 (resolve_qualified_expression_name): Added default: in 20006 switch. Fixed lang_printable_name invocation. 20007 (class_instance_creation_expression): Added parenthesis around 20008 expressions. 20009 (patch_method_invocation_stmt): Fixed lang_printable_name and 20010 patch_invoke invocations. 20011 (check_for_static_method_reference): Fixed lang_printable_name 20012 invocation. 20013 (patch_invoke): Suppressed unused arguments and local variables. 20014 (lookup_method_invoke): Suppressed unused local variables. 20015 (qualify_ambiguous_name): Added default: in switch. 20016 (identical_subpath_p): Function removed. 20017 (patch_assignment): Suppressed unused local variables. Suppressed 20018 unnecessary if statement. Fixed lang_printable_name invocations. 20019 (try_builtin_assignconv): Fixed lang_printable_name invocations. 20020 (valid_ref_assignconv_cast_p): Parenthesis around 20021 expression. Suppressed unused local variables. 20022 (build_binop): Suppressed unused local variables. fixed 20023 lang_printable_name invocations. 20024 (string_constant_concatenation): Suppressed unused local 20025 variables. 20026 (patch_unaryop): Fixed lang_printable_name invocation. 20027 (patch_cast): Suppressed unnecessary argument. Fixed 20028 lang_printable_name invocation. 20029 (patch_array_ref): Fixed lang_printable_name invocation. 20030 (patch_newarray, patch_return, patch_if_else_statement): Likewise. 20031 (build_labeled_block): Suppressed unused argument. 20032 (generate_labeled_block): Fixed build_labeled_block invocation. 20033 (build_loop_body): Suppressed unused local variables. 20034 (patch_loop_statement): Likewise. 20035 (patch_exit): Fixed lang_printable_name invocation. 20036 (patch_switch_statement): Likewise. 20037 (case_identity): First argument marked unused. 20038 (patch_try_statement): Fixed lang_printable_name invocations. 20039 (patch_synchronized_statement, patch_throw_statement): Likewise. 20040 (check_thrown_exceptions): Fixed check_thrown_exceptions and 20041 lang_printable_name invocations. 20042 (check_thrown_exceptions_do): Suppressed unused argument. 20043 200441998-10-14 Tom Tromey <tromey@cygnus.com> 20045 20046 * jcf-write.c (write_classfile): Add output class file as target. 20047 * lang-options.h: Added -MD, -MMD, -M, and -MM. 20048 * jcf.h: Added declarations for dependency-tracking functions. 20049 * lang-specs.h: Handle -M, -MM, MD, and -MMD. 20050 * lang.c (lang_decode_option): Recognize -MD and -MMD. 20051 (finish_parse): Call jcf_dependency_write. 20052 (dependency_tracking): New global. 20053 (DEPEND_SET_FILE): New define. 20054 (DEPEND_ENABLE): New define. 20055 (init_parse): Enable dependency tracking if required. 20056 Include "flags.h". 20057 * Makefile.in (JAVA_OBJS): Added jcf-depend.o. 20058 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o. 20059 (../gcjh$(exeext)): Likewise. 20060 (jcf-depend.o): New target. 20061 * Make-lang.in (JAVA_SRCS): Added jcf-depend.c. 20062 (GCJH_SOURCES): Likewise. 20063 * jcf-io.c (open_class): Call jcf_dependency_add_file. Added 20064 dep_name argument. 20065 (find_classfile): Added dep_name argument. 20066 (find_class): Compute name of dependency. 20067 (open_in_zip): Call jcf_dependency_add_file. 20068 * gjavah.c (output_file): No longer global. 20069 (usage): Don't mention "gjavah". 20070 (help): Likewise. 20071 (java_no_argument): Likewise. 20072 (version): Likewise. 20073 (main): Recognize and handle -M family of options. 20074 (print_mangled_classname): Return is void. 20075 (process_file): Handle case where output is suppressed. 20076 (HANDLE_END_FIELD): Likewise. 20077 (HANDLE_METHOD): Likewise. 20078 * jcf-depend.c: New file. 20079 200801998-10-13 Jeffrey A Law (law@cygnus.com) 20081 20082 * java-tree.def: Add missing newline at EOF. 20083 200841998-10-13 Tom Tromey <tromey@cygnus.com> 20085 20086 * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1. 20087 (main): Likewise. Exit with SUCCESS_EXIT_CODE at end of 20088 function. 20089 Include <config.h> and "system.h". 20090 (disassemble_method): Undefine RET to avoid clash with 20091 config/i386/i386.h. 20092 200931998-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 20094 20095 * decl.c (runtime_exception_type_node, error_exception_type_node): 20096 New global variables. 20097 (init_decl_processing): Initialized. 20098 * expr.c (java_lang_expand_expr): Set caught exception type to 20099 null if catch handler argument doesn't exit. 20100 * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific 20101 tree codes. 20102 * java-tree.h (runtime_exception_type_node, 20103 error_exception_type_node): Global variables declared. 20104 (DECL_FUNCTION_THROWS): New macro. 20105 (DECL_FUNCTION_BODY): Modified comment. 20106 (DECL_SPECIFIC_COUNT): Likewise. 20107 (struct lang_decl): New field throws_list. 20108 (IS_UNCHECKED_EXPRESSION_P): New macro. 20109 * lex.c (java_lex): Generate location information for THROW_TK. 20110 * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P, 20111 EXCEPTIONS_P): New macros. 20112 (enum jdep_code): New value JDEP_EXCEPTION. 20113 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT, 20114 BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR, 20115 PATCH_METHOD_RETURN_ERROR): New macros. 20116 (patch_method_invocation_stmt): Added new argument to prototype. 20117 (patch_synchronized_statement, patch_throw_statement, 20118 check_thrown_exceptions, check_thrown_exceptions_do, 20119 purge_unchecked_exceptions, check_throws_clauses): New function 20120 prototypes. 20121 * parse.y Fixed typo in keyword section. 20122 (throw:): Rule tagged <node>. 20123 (THROW_TK): Keyword tagged <operator>. 20124 (method_header:): Last argument to call to method_header passed 20125 from throws: rule. 20126 (throws:, class_type_list:, throw_statement:, 20127 synchronized_statement:, synchronized:): Defined actions. 20128 (method_header): New local variable current. Register exceptions 20129 from throws clause. 20130 (java_complete_tree): Complete and verify exceptions from throws 20131 clause. 20132 (complete_class_report_errors): Error message on exceptions not 20133 found 20134 (java_check_regular_methods): Fixed typo. Shortcut on private 20135 overriding methods. Changed error message on method 20136 redefinition. Check for throws clause compatibility. 20137 (check_throws_clauses): New function. 20138 (java_check_abstract_methods): Use DECL_NAME for wfl or current 20139 method. Changed error message on method redefinition. 20140 (currently_caught_type_list): New static variable. 20141 (java_complete_expand_methods): Purge unchecked exceptions from 20142 throws clause list. Call PUSH_EXCEPTIONS before walk and 20143 POP_EXCEPTIONS after. 20144 (resolve_qualified_expression_name): Pass new argument as NULL to 20145 patch_method_invocation_stmt. 20146 (patch_method_invocation_stmt): New argument ref_decl. Invoke 20147 PATCH_METHOD_RETURN_ERROR when returning with error. Reverse 20148 argument list when appropriate. Use new argument if non null to 20149 store selected method decl. 20150 (patch_invoke): Convert if necessary args of builtin types before 20151 forming CALL_EXPR. Argument list no longer reversed here. 20152 (invocation_mode): Treat final methods as static methods. 20153 (java_complete_tree): New cases for THROW_EXPR: and 20154 SYNCHRONIZED_EXPR:. Check thrown exceptions when completing 20155 function call. 20156 (complete_function_arguments): No more RECORD_TYPE 20157 conversion. Function parameter nodes no longer saved. 20158 (valid_ref_assignconv_cast_p): Avoid handling null type. 20159 (patch_binop): Fixed null constant reference handling. 20160 (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and 20161 BUILD_THROW macros. 20162 (patch_try_statement): Fixed comments. Record caught types in 20163 list, push the list, expand try block and pop the list. 20164 (patch_synchronized_statement, patch_throw_statement, 20165 check_thrown_exceptions, check_thrown_exceptions_do, 20166 purge_unchecked_exceptions): New functions. 20167 * typeck.c (lookup_argument_method): Allow WFL in place of method 20168 DECL_NAME during method definition check 20169 201701998-10-09 Tom Tromey <tromey@cygnus.com> 20171 20172 * gjavah.c (decode_signature_piece): New function. 20173 (print_c_decl): Use it. Added `name_override' argument. 20174 (print_method_info): Use name_override argument to print_c_decl. 20175 (seen_fields): Removed. 20176 (print_field_info): Don't update seen_fields. 20177 (struct method_name): New structure. 20178 (method_name_list): New global. 20179 (print_method_info): Add new method to list of methods. 20180 (name_is_method_p): New function. 20181 (print_field_info): If field name has same name as method, then 20182 change field name. 20183 (process_file): Parse methods before fields. 20184 (field_pass): New global. 20185 (HANDLE_END_FIELD): Take field_pass into account. 20186 201871998-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 20188 20189 * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf. 20190 (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs). 20191 201921998-10-03 Anthony Green <green@cygnus.com> 20193 20194 * jvspec.c: Fix bug in jvgenmain_spec patch. 20195 201961998-10-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 20197 20198 * Makefile.in (lang.o:): Install dependency on java-tree.def. 20199 * decl.c (soft_exceptioninfo_call_node): New global variable. 20200 (init_decl_processing): Fixed indentation. soft_badarrayindex_node 20201 takes extra integer argument. soft_exceptioninfo_call_node 20202 initialized. 20203 * except.c (java_set_exception_lang_code): New function 20204 (method_init_exceptions): Called here. 20205 (prepare_eh_table_type): New function. 20206 (expand_end_java_handler): Called here. 20207 * expr.c (build_java_throw_out_of_bounds_exception): Now features 20208 one argument. Modified generation of call to 20209 soft_badarrayindex_node to use new argument. 20210 (build_java_arrayaccess): Pass faulty index value to 20211 build_java_throw_out_of_bounds_exception. 20212 (generate_name): New function. 20213 (java_lang_expand_expr): New local variables node, current, 20214 has_finally_p. Expand TRY_EXPR node. 20215 (process_jvm_instruction): Replace top of the stack with thrown 20216 object reference when entering exception handler. 20217 * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java 20218 specific tree codes. 20219 * java-tree.h (soft_exceptioninfo_call_node): Declaration of new 20220 global. 20221 (DECL_SPECIFIC_COUNT): New macro. 20222 (prepare_eh_table_type, java_set_exception_lang_code, 20223 generate_name): New function declarations. 20224 (match_java_method): Declaration deleted. 20225 (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New 20226 macros. 20227 * lex.c (TRY_TK, CATCH_TK): Generate location information. 20228 * parse.h (redefinition_error, refine_accessible_methods_list, 20229 can_cast_to_p): Function declaration removed. 20230 (classitf_redefinition_error, variable_redefinition_error, 20231 parse_jdk1_1_error, find_applicable_accessible_methods_list, 20232 find_most_specific_methods_list, argument_types_convertible, 20233 enter_a_block, valid_builtin_assignconv_identity_widening_p, 20234 valid_cast_to_p, valid_method_invocation_conversion_p, 20235 try_reference_assignconv, add_stmt_to_compound, 20236 build_jump_to_finally, build_tree_list, patch_try_statement, 20237 java_get_catch_block): New function declarations. 20238 * parse.y (string_buffer_type): Global variable deleted. 20239 (group_of_labels, catches, catch_clause, catch_clause_parameter, 20240 finally): Rules tagged <node>. 20241 (TRY_TK, CATCH_TK): Token tagged <operator>. 20242 (class_body_declaration:, class_member_declaration:, 20243 formal_parameter:, explicit_constructor_invocation:, 20244 interface_member_declaration:, constant_declaration:, 20245 primary_no_new_array:, class_instance_creation_expression:, 20246 array_creation_expression:): Issue error on unsuported JDK1.1 20247 features. 20248 (try_statement:, catches:, finally:): Define actions. 20249 (catch_clause_parameter): New rule. 20250 (catch_clause:): Use new rule catch_clause_parameter. 20251 (parse_jdk1_1_error): New function. 20252 (redefinition_error): Renamed classitf_redefinition_error. 20253 (variable_redefinition_error): New function. 20254 (check_class_interface_creation): Call 20255 classitf_redefinition_error. 20256 (java_complete_tree): Added error message on JDEP_TYPE: case. 20257 (complete_class_report_errors): Fixed indentation. 20258 (declare_local_variables): Call variable_redefinition_error. 20259 (source_end_java_method): Call java_set_exception_lang_code and 20260 emit_handlers where appropriate. 20261 (java_method_add_stmt): Call add_stmt_to_block. 20262 (add_stmt_to_block): New function. 20263 (lookup_method_invoke): Fixed outside comment. new local variable 20264 candicates. Call find_applicable_accessible_methods_list and 20265 find_most_specific_methods_list when searching for a 20266 method. Modified error report to list possible candidates when 20267 applicable. 20268 (find_applicable_accessible_methods_list, 20269 find_most_specific_methods_list, argument_types_convertible): New 20270 function. 20271 (refine_accessible_methods_list): Function deleted. 20272 (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save 20273 expr (if applicable) before calling patch_array_ref. 20274 (build_expr_block): Fixed BLOCK_EXPR_BODY assignment. 20275 (enter_block): Fixed comment. 20276 (enter_a_block): New function. 20277 (patch_assignment): Reorganized. Call try_reference_assignconv for 20278 references. Call valid_cast_to_p instead of can_cast_to_p. 20279 (try_reference_assignconv, 20280 valid_builtin_assignconv_identity_widening_p): New functions. 20281 (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL. 20282 (valid_cast_to_p, valid_method_invocation_conversion_p): New 20283 functions. 20284 (build_string_concatenation): Don't resolve StringBuffer. 20285 (patch_cast): Fixed inverted arguments. 20286 (patch_array_ref): Code to save array expr deleted. Call 20287 valid_cast_to_p instead of can_cast_to_p. 20288 (generate_labeled_block): Call generate_name. 20289 (build_jump_to_finally, build_try_statement, java_get_catch_block, 20290 patch_try_statement): New functions. 20291 * typeck.c (match_java_method): Function deleted. 20292 202931998-10-02 Anthony Green <green@cygnus.com> 20294 20295 * jvspec.c: jvgenmain_spec uses different temporary file names. 20296 202971998-10-02 Anthony Green <green@cygnus.com> 20298 20299 * jvspec.c (lang_specific_driver): Fail if user specifies 20300 --main= when not linking. 20301 203021998-09-28 Tom Tromey <tromey@cygnus.com> 20303 20304 * class.c (make_class_data): Push value for `thread' field. 20305 * decl.c (init_decl_processing): Added `thread' field to class. 20306 20307 * class.c (add_field): Always make static fields externally 20308 visible. 20309 203101998-09-26 Anthony Green <green@cygnus.com> 20311 20312 * expr.c (build_java_athrow, 20313 build_java_throw_out_of_bounds_exception, expand_invoke, 20314 build_newarray, expand_java_multianewarray, build_java_monitor): 20315 Update comments to reflect _Jv_* function names. 20316 203171998-09-25 Per Bothner <bothner@cygnus.com> 20318 20319 * decl.c (complete_start_java_method): DECL_RESULT is always promoted. 20320 * decl.c (start_java_method): Handle PROMOTE_PROTOTYPES target macro. 20321 * parse.y (expand_start_java_method): Likewise. 20322 203231998-09-24 Per Bothner <bothner@cygnus.com> 20324 20325 * expr.c (pop_arguments): Handle PROMOTE_PROTOTYPES target macro. 20326 20327 * class.c (push_class): IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE. 20328 (add_field): No longer need to convert from RECORD_TYPE to pointer, 20329 * expr.c: Remove no-longer-needed calls to promote_type. 20330 * decl.c (give_name_to_locals): Liekwise. 20331 * jcf-parse.c (get_class_constant): Compensate for new signatures. 20332 * parse.y: Add/remove promote_type calls as appropriate. 20333 * typeck.c (parse_signature_type): Returns POINTER_TYPE for objects. 20334 (parse_signature_string): Likewise. 20335 (build_java_array_type): Fix for now signature convenions. 20336 20337 * lex.c (java_lex): Fix (from Alex) for JC1_LITE problem. 20338 203391998-09-23 Tom Tromey <tromey@cygnus.com> 20340 20341 * class.c (init_class_processing): libjava function renamed to 20342 _Jv_RegisterClass. 20343 203441998-09-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 20345 20346 * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR. 20347 * java-tree.def: Fixed DEFTREECODE third argument. 20348 (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR, 20349 CASE_EXPR, DEFAULT_EXPR): New tree codes for Java. 20350 * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro. 20351 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, 20352 JAVA_THIS_EXPR): Now replaced by tree code definitions. 20353 (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR. 20354 * lang.c (java_tree_code_type, java_tree_code_length, 20355 java_tree_code_name): New arrays. 20356 (lang_init): Append Java tree node definitions to Gcc ones. 20357 * lex.c (expression_obstack): Declared as extern when JC1_LITE 20358 defined. 20359 (java_init_lex): Initialize wfl_append, wfl_string_buffer, 20360 wfl_to_string. 20361 (java_lex): Allow declaration of empty string constants. Retain 20362 location information on CASE_TK and DEFAULT_TK. 20363 * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P, 20364 JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P): 20365 Modified to be more robust. 20366 (BUILD_APPEND, BUILD_STRING_BUFFER): New macros. 20367 (build_new_invocation, try_builtin_assignconv, 20368 patch_switch_statement, string_constant_concatenation, 20369 build_string_concatenation, patch_string_cst, patch_string, 20370 java_expand_switch): New function declarations. 20371 * parse.y: Rules related to switch and EH tagged <node>. 20372 (label_id): Set to NULL_TREE 20373 (wfl_string_buffer, wfl_append, wfl_to_string): New static global 20374 tree nodes. 20375 (this_or_super:): Fixed indentation. 20376 (statement:, statement_nsi:, statement_without_trailing_substatement:, 20377 statement_expression:): Removed call to RULE on all sub-rules. 20378 (switch_expression:, switch_labels:): New rules. 20379 (switch_statement:, switch_block:, switch_block_statement_groups:, 20380 switch_block_statement_group:, switch_labels:, switch_label:): 20381 Defined actions. 20382 (throw_statement:, synchronized_statement:, try_statement:): 20383 Defined temporary actions. 20384 (class_instance_creation_expression:): Call 20385 build_new_invocation. Fixed indentation. 20386 (field_access): Fixed indentation. 20387 (method_invocation): Likewise. 20388 (make_qualified_primary): Use THIS_EXPR. 20389 (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When 20390 resolving from SUPER, set *type_found. 20391 (qualify_ambiguous_name): Use NEW_CLASS_EXPR. 20392 (java_complete_tree): Removed unused local variable `location'. Case 20393 for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR, 20394 NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling 20395 on MODIFY_EXPR: and all binary operator tree code cases. Removed 20396 STRING_CST: case. default: checks for patchable strings. 20397 (complete_function_arguments): Transform string constant or 20398 crafted StringBuffer if necessary. 20399 (build_method_invocation): Fixed comments. 20400 (build_new_invocation): New function. 20401 (patch_assignment): Call try_builtin_assignconv to figure a valid 20402 assignment conversion between builtin types. 20403 (try_builtin_assignconv): New function. 20404 (build_binop): Use URSHIFT_EXPR directly to call build. 20405 (operator_string): Use UNARY_PLUS_EXPR. 20406 (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation 20407 operator. 20408 (do_merge_string_cste, merge_string_cste, 20409 string_constant_concatenation, build_string_concatenation, 20410 patch_string, patch_string_cst): New function. 20411 (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR. 20412 (patch_unaryop): Likewise. New test of valid ++/-- operands. 20413 (build_newarray_node): Use NEW_ARRAY_EXPR. 20414 (build_this): Use THIS_EXPR. 20415 (build_return): Enable debug information on return statement. 20416 (build_if_else_statement): Likewise. 20417 (complete_labeled_statement): Fixed related comment. 20418 (build_loop_body): Fixed comment. 20419 (build_bc_statement): Enable debug information on break/continue 20420 statements. 20421 (patch_bc_statement): Fixed typos. Handle SWITCH statement 20422 context. 20423 (patch_switch_statement, case_identity, java_expand_switch): New 20424 functions. 20425 204261998-09-21 Per Bothner <bothner@cygnus.com> 20427 20428 * buffer.h (BUFFER_INIT): New macro. 20429 * jcf-write.c (struct jcf_partial): New type. Put global stuff here. 20430 Pass (struct jcf_partial *state) to most functions. 20431 (jcf_block, jcf_relocation): New types. 20432 Support labels, branches, conditionals, loops. 20433 204341998-09-21 Tom Tromey <tromey@cygnus.com> 20435 20436 * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined. 20437 204381998-09-21 Per Bothner <bothner@cygnus.com> 20439 20440 * decl.c (integer_type_node): Make it have INT_TYPE_SIZE. 20441 * verify.c (verify_jvm_instructions): Use int_type_not (32 bits), 20442 not integer_type_node (INT_TYPE_SIZ bits). 20443 20444 * parse.y (patch_if_else_statement): Accept promoted_boolean_type_node. 20445 20446 * jcf-reader.c (get_attribute): New HANDLE_EXCEPTION_TABLE hook. 20447 * jcf-dump.c (print_exception_table): New function. 20448 (disassemble_method): Better handling of wide instructions. 20449 Make more robust for bad input. 20450 204511998-09-30 Jeffrey A Law (law@cygnus.com) 20452 20453 * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on 20454 FreeBSD. 20455 204561998-09-17 Jeffrey A Law (law@cygnus.com) 20457 20458 * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too. 20459 204601998-09-17 Tom Tromey <tromey@cygnus.com> 20461 20462 * Makefile.in ($(PARSE_H)): Removed target. 20463 204641998-09-17 Jeffrey A Law (law@cygnus.com) 20465 20466 * Makefile.in (JAVA_OBJS): Add memmove.o 20467 (memmove.o): New target & rules. 20468 204691998-09-15 Tom Tromey <tromey@cygnus.com> 20470 20471 * expr.c (expand_invoke): Don't generate a call to the class init 20472 code. 20473 204741998-09-14 Jeffrey A Law (law@cygnus.com) 20475 20476 * Makefile.in: Add many missing dependencies. 20477 * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h 20478 as appropriate. 20479 * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise. 20480 * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise. 20481 204821998-09-11 Per Bothner <bothner@cygnus.com> 20483 20484 * decl.c (complete_start_java_method): If method is static (and 20485 not private) call _Jv_InitClass. 20486 * expr.c (expand_invoke): Don't call build_class_init. 20487 20488 * jvspec.c (jvgenmain_spec): Fix spec for generated .o file. 20489 204901998-09-10 Jeffrey A Law (law@cygnus.com) 20491 20492 * Make-lang.in (GCJ): Define before using. 20493 204941998-09-09 Jeffrey A Law (law@cygnus.com) 20495 20496 * gjavah.c (java_no_argument): Renamed from no_argument to avoid 20497 losing due to namespace pollution in GNU getopt.h 20498 204991998-09-09 Tom Tromey <tromey@cygnus.com> 20500 20501 * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh. 20502 (java.all.cross): Likewise. 20503 (java.rest.encap): Likewise. 20504 205051998-09-08 Jeffrey A Law (law@cygnus.com) 20506 20507 * gjavah.c (print_class_decls): Fix thinko in arglist 20508 * jcv-io.c (find_classfile): Similarly. 20509 205101998-09-07 Jeffrey A Law (law@cygnus.com) 20511 20512 * Makefile.in (INCLUDES): Update for recent toplevel gcc changes. 20513 205141998-09-05 Tom Tromey <tromey@cygnus.com> 20515 20516 * Make-lang.in (java.maintainer-clean): Don't remove parse.h. 20517 (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h. 20518 * Makefile.in (PARSE_C): New macro. 20519 (PARSE_H): Likewise. 20520 (PARSE_SCAN_C): Likewise. 20521 ($(PARSE_C)): Target renamed from parse.c. 20522 ($(PARSE_SCAN_C)): Target renamed from parse-scan.c. 20523 (clean): Remove parse-scan.c as well. 20524 (parse.o): Depend on $(PARSE_C). 20525 205261998-09-05 Anthony Green <green@cygnus.com> 20527 20528 * README, license.terms: Removed. 20529 20530 * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c, 20531 decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h, 20532 javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c, 20533 jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c, 20534 keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c, 20535 lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c, 20536 verify.c, zextract.c, zipfile.h: Fixed copyright assignment, 20537 and Java trademark attribution. 20538 205391998-09-04 Tom Tromey <tromey@cygnus.com> 20540 20541 * Makefile.in: Use gcjh, not gjavah. 20542 * config-lang.in (stagestuff): Use gcjh, not gjavah. 20543 * Make-lang.in: Changed gjavah to gcjh everywhere. 20544 205451998-09-03 Per Bothner <bothner@cygnus.com> 20546 20547 * gjavah.c: Support new -prepend -add -append flags. 20548 (print_method_info): Method is not virtual if class is final. 20549 205501998-09-03 Alexandre Petit-Bianco <apbianco@cygnus.com> 20551 20552 * jv-scan.c: Fixed copyright assignment. 20553 * keyword.gperf: Likewise. 20554 * keyword.h: Likewise. 20555 * lex.c: Fixed copyright assignment. 20556 (java_lex): Push unicode back when parsing '<'. 20557 * lex.h: Fixed copyright assignment. 20558 * parse-scan.y: Likewise. 20559 * parse.h: Fixed copyright assignment. 20560 (build_debugable_stmt, complete_for_loop): New function prototypes. 20561 * parse.y: Fixed copyright assignment. 20562 (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be 20563 size_zero_node when completing a loop with no exit condition. 20564 (for_statement_nsi:): Define action. 20565 (for_init:, for_update:): Return size_zero_node when empty. 20566 (declare_local_variables): Call build_debugable_stmt. 20567 (build_debugable_stmt): New function. 20568 (build_loop_body): Build debugable statement around loop 20569 condition part. 20570 (complete_loop_body): Take into account the debugable statement 20571 around the EXIT_EXPR. 20572 (complete_loop_body): New function. 20573 (patch_exit_expr): Fixed condition inversion. 20574 205751998-09-02 Tom Tromey <tromey@cygnus.com> 20576 20577 * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct 20578 name of thread define. 20579 * jvspec.c (THREAD_NAME): New macro. 20580 (GCLIB): Likewise. 20581 (THREADLIB): Likewise. 20582 (lang_specific_driver): Recognize attempt to link with thread 20583 library or gc library. Recognize -ljava on command line so it 20584 isn't linked against more than once. 20585 205861998-09-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 20587 20588 * parse-scan.y (report_main_declaration): Name of the class 20589 containing `main' can be a qualified name. 20590 205911998-08-31 Tom Tromey <tromey@cygnus.com> 20592 20593 * config-lang.in: Changed gjavac to gjc everywhere. 20594 * Make-lang.in: Changed gjavac to gjc everywhere. 20595 205961998-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 20597 20598 * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable. 20599 (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS 20600 and install the files. 20601 * Makefile.in (JAVA_OBJS_LITE): New variable. 20602 (compiler:): Now include jv-scan as a dependency. 20603 (../jv-scan$(exeext), parse-scan.c): New targets. 20604 (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before. 20605 * config-lang.in (compilers): Removed gcj, gjavah from the list. 20606 * jcf-parse.c (parse_source_file): Call java_layout_classes and 20607 check for errors even if parse_only. 20608 * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is 20609 defined. 20610 (yylex): New function. Uses java_lex body. 20611 (java_lex): Removed commented out statement. Remove local variable 20612 literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where 20613 appropriate. Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE, 20614 DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF, 20615 SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST 20616 if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use 20617 SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER 20618 where appropriate. 20619 (java_lex_error): Empty if JC1_LITE is defined. 20620 (java_get_line_col): Return 0 if JC1_LITE is defined. 20621 * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, 20622 SET_MODIFIER_CTX): Moved into the section containing the macros 20623 conditionally defined by JC1_LITE. 20624 (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN 20625 argument if JC1_LITE is defined. 20626 (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF, 20627 REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE 20628 is defined. 20629 (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF, 20630 FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION, 20631 SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set 20632 to different values according to JC1_LITE. 20633 * parse.h (int_fits_type_p, stabilize_reference): Prototype not 20634 declared if JC1_LITE set. 20635 (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not 20636 defined if JC1_LITE not set. 20637 (struct parser_ctx): Reorganized and skip the jc1 front end part 20638 if JC1_LITE set. 20639 (java_layout_classes): New function definition. 20640 (java_push_parser_context, java_init_lex, yyparse, yylex, 20641 yyerror): Prototype always declared. All other static function 20642 prototypes declared only if JC1_LITE is not set. 20643 * parse.y (yyparse, yylex, yyerror): No longer declared here. Now 20644 declared in parse.h. 20645 (java_layout_classes): New function. 20646 (java_complete_expand_methods): No longer layout the class here. 20647 * parse-scan.y: New file. 20648 * jv-scan.c: New file. 20649 206501998-08-25 Tom Tromey <tromey@cygnus.com> 20651 20652 * gjavah.c (main): Handle -friend option. 20653 (friend_specs): New global. 20654 (generate_access): Handle friend_specs. 20655 (process_file): Likewise. 20656 (MAX_FRIENDS): New macro. 20657 (friend_count): New global. 20658 (print_cxx_classname): Added `prefix' argument. Ignore arrays. 20659 Changed all callers. 20660 206611998-08-24 Per Bothner <bothner@cygnus.com> 20662 20663 * jcf-dump.c (process_class): Move JCF_FINISH use to main, 20664 (main): Handle processing all the entries of a named .zip archive. 20665 * jcf-io.c (jcf_trim_old_input): New function. 20666 * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le): New macros. 20667 206681998-08-24 Per Bothner <bothner@cygnus.com> 20669 20670 * lang.c (flag_assume_compiled): Make default be on. 20671 206721998-08-21 Per Bothner <bothner@cygnus.com> 20673 20674 * jcf-dump.c: Add bunches of flags to control output more. 20675 (process_class): New function; support printing more than one class. 20676 (main): Support new --print-main and --javap flags. 20677 * jcf-reader.c (IGNORE_ATTRIBUTE): New hook. 20678 * jcf.h (CPOOL_INDEX_IN_RANGE): New macro. 20679 206801998-08-20 Per Bothner <bothner@cygnus.com> 20681 20682 Change mangling of dispatch table to match C++ vtable (w/thunks). 20683 * class.c (build_dtable_decl), java-tree.h: New function. 20684 (make_class_data): Call it. 20685 * decl.c (init_decl_processing): Likewise. 20686 206871998-08-19 Warren Levy <warrenl@cygnus.com> 20688 20689 * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not 20690 soft_anewarray; adjust args passed. 20691 * expr.c (build_anewarray): Adjust args for soft_anewarray_node to 20692 match _Jv_NewObjectArray. 20693 206941998-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 20695 20696 * decl.c (push_labeled_block, pop_labeled_block): New functions. 20697 * expr.c (loopup_label): Call create_label_decl. 20698 (create_label_decl): New function. 20699 (java_lang_expand_expr): Call expand_start_bindings with argument 20700 set to zero. 20701 * java-tree.h Added space after PROTO in function declarations 20702 when necessary. 20703 (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros. 20704 (create_label_decl, push_labeled_block): New function 20705 declarations. 20706 * lex.c (label_id): Initialize. 20707 (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final 20708 switch. 20709 * parse.h Added space after PROTO in function declarations when 20710 necessary. 20711 (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK, 20712 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY, 20713 LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P, 20714 PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New 20715 macros. 20716 (struct parser_ctxt): New fields current_loop, 20717 current_labeled_block. 20718 (build_if_else_statement, patch_if_else_statement, 20719 add_stmt_to_compound, patch_exit_expr, build_labeled_block, 20720 generate_labeled_block, complete_labeled_statement, 20721 build_bc_statement, patch_bc_statement, patch_loop_statement, 20722 build_new_loop, build_loop_body, complete_loop_body): New function 20723 declarations. 20724 * parse.y (java_warning_count): New global variable. 20725 (label_id): New static variable. 20726 (BREAK_TK, CONTINUE_TK): Token tagged <operator>. 20727 (block:): Return size_zero_node when block is empty. 20728 (empty_statement:): Return size_zero_node. 20729 (statement:): Implement supplemental action when for_statement: is 20730 reduced. 20731 (label_decl:): New rule. 20732 (labeled_statement:): Rewritten using label_decl. Actions 20733 implemented. 20734 (labeled_statement_nsi:): Likewise. 20735 (if_then_statement): Actions implemented. 20736 (while_expression): New rule. 20737 (while_statement:): Rewritten using while_expression. Actions 20738 implemented. 20739 (while_statement_nsi:): Likewise. 20740 (do_statement_begin:): New rule. 20741 (do_statement:): Rewritten using do_statement_begin. Actions 20742 implemented. 20743 (for_statement:): Rewritten using for_begin. Actions implemented. 20744 (for_statement_nsi:): Likewise. 20745 (for_header:, for_begin:): New rules. 20746 (for_init:): Actions implemented. 20747 (statement_expression_list:, break_statement:, 20748 continue_statement:): Likewise. 20749 (yyerror): Count number of issued warning(s). 20750 (java_report_errors): Report error(s) and/or warning(s). 20751 (java_complete_class): Use build_java_argument_signature to 20752 recompute completed method signature. 20753 (java_check_regular_methods): New locals method_wfl and aflags. 20754 Use method_wfl instead of lookup_cl during error reports. Fixed 20755 indentation and modified some error messages. Use 20756 lang_printable_name in method instead of the DECL_NAME. New code 20757 to issue warnings on methods not overriding corresponding methods 20758 private to a different package. 20759 (java_method_add_stmt): Call add_stmt_to_compound. 20760 (add_stmt_to_compound): New function. 20761 (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, 20762 LOOP_EXPR, EXIT_EXPR and COND_EXPR. 20763 (build_if_else_statement, patch_if_else_statement, 20764 build_labeled_block, generate_labeled_block, 20765 complete_labeled_statement, build_new_loop, build_loop_body, 20766 complete_loop_body, patch_loop_statement, build_bc_statement, 20767 patch_bc_statement, patch_exit_expr): New functions. 20768 * typeck.c (build_java_signature): Build argument signature before 20769 enclosing it in between parenthesis. 20770 207711998-08-17 Warren Levy <warrenl@cygnus.com> 20772 20773 * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in 20774 (JAVA_OBJS): Added reminder comment 20775 207761998-08-13 Nick Clifton <nickc@cygnus.com> 20777 20778 * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to 20779 be interpreted as a long long. 20780 207811998-08-13 Warren Levy <warrenl@cygnus.com> 20782 20783 * decl.c (init_decl_processing): Use _Jv_InitClass, not 20784 soft_initialise_class. Use _Jv_NewMultiArray, not 20785 soft_multianewarray. Use _Jv_ThrowBadArrayIndex, not 20786 soft_badarrayindex. Use _Jv_CheckCast, not soft_checkcast. Use 20787 _Jv_CheckArrayStore, not soft_checkarraystore. Use 20788 _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod. 20789 207901998-08-12 Per Bothner <bothner@cygnus.com> 20791 20792 * decl.c, java-tree.h (this_identifier_node, super_identifier_node, 20793 length_identifier_node): New global tree node constants. 20794 * parse.y (kw_super, kw_this, kw_length): Removed globals. 20795 Replace uses by super_identifier_node etc. 20796 * lex.c (kw_super, kw_this, kw_length): Don't initialize. 20797 20798 * parse.y (resolve_field_access): Don't special-case ".length" if 20799 flag_emit_class_files. 20800 (patch_array_ref): Leave as ARRAY_REF if flag_emit_class_files. 20801 * jcf-write.c (generate_bytecode_insns): Handle ARRAY_REF opcode 20802 and ARRAY.length. 20803 208041998-08-11 Per Bothner <bothner@cygnus.com> 20805 20806 * decl.c (init_decl_processing): Remove unused method_type_node fields. 20807 * class.c (make_method_value): Remove init for removed fields. 20808 20809 * class.c (layout_class): Use build_java_argument_signature. 20810 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): New macro. 20811 20812 * typeck.c (push_java_argument_signature): Removed. Merged into ... 20813 (build_java_argument_signature): Use TYPE_ARGUMENT_SIGNATURE cache. 20814 (build_java_signature): Don't use push_java_argument_signature. 20815 20816 * typeck.c (lookup_argument_method): New function. 20817 * parse.y (java_check_regular_methods): Use lookup_argument_method 20818 instead of lookup_java_method2 followed by lookup_java_method. 20819 20820 * parse.y (check_method_redefinition): Minor optimization. 20821 20822 * jcf-write.c (generate_bytecode_insns): Handle RETURN_EXPR, 20823 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR. 20824 208251998-08-10 Tom Tromey <tromey@cygnus.com> 20826 20827 * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or 20828 c-pragma.o. 20829 20830 * gjavah.c (java_float_finite): Use K&R-style definition. 20831 (java_double_finite): Likewise. 20832 (generate_access): Now returns void. Changed all callers. 20833 (last_access_generated): Removed. 20834 (process_file): Only make a single pass over the .class file. 20835 208361998-07-29 Per Bothner <bothner@cygnus.com> 20837 20838 * class.c (get_dispatch_table): Add extra dummy vtable entry, 20839 for compatibility for G++ (with -fvtable-thunks). 20840 * expr.c (build_invokevirtual): Add one for extra dummy vtable entry. 20841 20842 * gjavah.c (process_file): Use public inheritance for super-class. 20843 208441998-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com> 20845 20846 * lex.c (java_init_lex): Initialize ctxp->package. 20847 * parse.h (struct parser_ctxt): package and package_len replaced 20848 by tree package, an identifier node. Field method_decl_list is 20849 gone. Fixed comments. 20850 (lookup_field_wrapper, merge_qualified_name, not_accessible, 20851 class_in_current_package): New function prototypes. 20852 * parse.y (array_type:): Set class loaded flag on primitive type 20853 arrays. 20854 (package_declaration:): Assign ctxp->package to the 20855 identifier node. 20856 (method_invocation:): Handle invocation of method qualified by 20857 `super'. 20858 (single_type_import_declaration:): Removed ambiguity check. 20859 (java_pop_parser_context): New local variable `next'. Reset and 20860 set IMPORT_CLASSFILE_NAME flags on current and previous import 20861 list. 20862 (java_accstring_lookup): Use new local macro COPY_RETURN. 20863 (lookup_field_wrapper): New function. 20864 (parser_qualified_classname): Use merge_qualified_name. 20865 (parser_check_super_interface): Broaden error message. 20866 (do_resolve_class): Check for qualified class name in the current 20867 compilation unit if appropriate. 20868 (process_imports): Check for already defined classes. 20869 (check_pkg_class_access): Got rid of call to 20870 get_access_flags_from_decl. 20871 (java_complete_expand_methods): Call safe_layout_class based on 20872 the current class size. 20873 (make_qualified_primary): Build a WFL qualification on primary if 20874 none exists. 20875 (merge_qualified_name): New function. 20876 (make_qualified_name): Use merge_qualified_name. 20877 (resolve_expression_name): Use safe_lookup_field. 20878 (resolve_field_access): Got rid of call to get_access_flags_from_decl. 20879 (resolve_qualified_expression_name): Likewise. Check on resolved 20880 element accessibility. 20881 (not_accessible_p, class_in_current_package): New functions. 20882 (maybe_access_field): Got rid of call to get_access_flags_from_decl. 20883 (patch_method_invocation_stmt): Merged common pieces. Check 20884 accessibility of invoked method. 20885 (check_for_static_method_reference): Add returned type in error 20886 message. 20887 (invocation_mode): Get rid of bogus check on PRIVATE methods. 20888 (refine_accessible_methods_list): Merged two conditions in test. 20889 (java_complete_class): Sanity check on stabilize_ref gone. 20890 * zextract.c (read_zip_archive): Cast lseek second argument to long. 20891 208921998-07-28 Per Bothner <bothner@cygnus.com> 20893 20894 * class.c (hashUtf8String): Fix - use new JavaSoft specification. 20895 208961998-07-24 Tom Tromey <tromey@cygnus.com> 20897 20898 * gjavah.c (F_NAN): Removed. 20899 (F_NAN_MASK): New macro. 20900 (F_POSITIVE_INFINITY): Removed. 20901 (F_NEGATIVE_INFINITY): Likewise. 20902 (java_float_finite): Rewrote. 20903 (D_NAN_MASK): Renamed. 20904 (java_double_finite): Rewrote. 20905 (D_POSITIVE_INFINITY): Removed. 20906 (D_NEGATIVE_INFINITY): Likewise. 20907 20908 * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float] 20909 If verbose, print underlying representation of value in hex. 20910 209111998-07-24 Per Bothner <bothner@cygnus.com> 20912 20913 * buffer.h, buffer.c: New files. 20914 * Makefile.in (JAVA_OBJS): Add buffer.o. 20915 20916 Support locals variables and writing their debug entries to .class. 20917 * jcf-write.c: Simplify some by user new buffer type. 20918 (vode_buffer_grow): Removed. 20919 (struct localvar_info): New type. 20920 (localsvars, localvartable): New buffers. 20921 (localvar_alloc, localvar_free): New functions. 20922 (generate_bytecode_insns): Handle local variables. 20923 (generate_classfile): Write LocalVariableTable attribute. 20924 209251998-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com> 20926 20927 * jcf-io.c (open_in_zip): Check the zipfile magic number. 20928 * zipfile.h (ZIPMAGIC): New macro. 20929 209301998-07-24 Tom Tromey <tromey@cygnus.com> 20931 20932 * Makefile.in (gjavah.o): Updated dependencies. 20933 (jcf-dump.o): Likewise. 20934 (all.indirect): Use ../gjavah. 20935 (../gjavah$(exeext)): Likewise. 20936 (clean): Don't remove gjavah. 20937 (clean): Remove parse.c, not java/parse.c. 20938 * Make-lang.in (java): Added gjavah. 20939 (gjavah$(exeext)): New target. 20940 (GJAVAH_SOURCES): New macro. 20941 (java.all.build): Added gjavah. 20942 (java.all.cross): Likewise. 20943 (java.rest.encap): Likewise. 20944 * config-lang.in (compilers, stagestuff): Added gjavah. 20945 209461998-07-23 Tom Tromey <tromey@cygnus.com> 20947 20948 * gjavah.c (java_float_finite): New function. 20949 (java_double_finite): Likewise. 20950 (F_POSITIVE_INFINITY): New macro. 20951 (F_NEGATIVE_INFINITY): Likewise. 20952 (F_NAN): Likewise. 20953 (D_POSITIVE_INFINITY): Likewise. 20954 (D_NEGATIVE_INFINITY): Likewise. 20955 (D_NAN): Likewise. 20956 (print_field_info): Use java_float_finite and java_double_finite. 20957 209581998-07-23 Per Bothner <bothner@cygnus.com> 20959 20960 * parse.y (method_header): Name "this" implicit argument. 20961 209621998-07-22 Per Bothner <bothner@cygnus.com> 20963 20964 * jcf-write.c: Write out LineNumberTable attribute in .class file. 20965 (linenumber_buffer, linenumber_ptr, linenumber_limit): New statics. 20966 (put_linenumber): New function. 20967 (generate_bytecode_insns, generate_classfile): Write line numbers. 20968 209691998-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com> 20970 20971 * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P. 20972 (lookup_name, build_known_method_ref, build_class_init, 20973 build_invokevirtual, invoke_build_dtable, match_java_method, 20974 build_field_ref, pushdecl_force_head, build_java_binop, 20975 binary_numeric_promotion, build_decl_no_layout, 20976 build_java_arrayaccess, build_newarray, build_anewarray, 20977 build_java_array_length_access, build_java_arraynull_check): New 20978 extern function prototypes. 20979 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, 20980 JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in 20981 java-tree.h. 20982 * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref 20983 to NULL 20984 * jcf.h (jcf_out_of_synch): New extern function prototype. 20985 * parse.h: Static/global function implemented in parse.y 20986 prototyped and declarations moved at the end of the file. 20987 (DECL_P): Check that the argument isn't null. 20988 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, 20989 JAVA_THIS_EXPR): No longer defined here. See java-tree.h 20990 (QUAL_DECL_TYPE): New macro. 20991 (PARAMS): Macro definition removed. 20992 * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS. 20993 (return_statement:): Call build_return. 20994 (field_access:): Call make_qualified_primary in sub rule. 20995 (method_invocation:): Build method invocation and call 20996 make_qualified_primary when processing primaries. 20997 (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling 20998 get_type_from_signature. 20999 (java_check_regular_method): Extra integer 0 argument when calling 21000 lookup_java_method2. 21001 (lookup_java_interface_method2): Extra method DECL argument when 21002 calling lookup_java_interface_method2. 21003 (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created 21004 COMPOUND_EXPR node. 21005 (java_complete_expand_method): Layout current class iff not 21006 already done. Don't process interface's methods. 21007 (java_complete_expand_method): Use super class only if it 21008 exists. Use current class otherwise. 21009 (make_qualified_primary): New function. 21010 (resolve_expression_name): Process qualified expression or 21011 expression from primary the same way. 21012 (resolve_expression_name): Two last arguments to 21013 resolve_field_access are now NULL_TREEs. 21014 (resolve_field_access): New variable is_static. Local field must 21015 be DECLs. is_static computed on field DECLs only. Append code in 21016 where_found to the field access if necessary. Use QUAL_DECL_TYPE 21017 to initialize field_type. 21018 (resolve_qualified_expression_name): New local variable, 21019 previous_call_static and is_static. Handle primaries with function 21020 calls, casts, array references and `this'. `super' now handled as 21021 `(super_class)this'. Use is_static to clarify boolean expressions. 21022 Added code to handle case where a proper handle is required to 21023 access a field. Use QUAL_DECL_TYPE where applicable. 21024 (maybe_access_field): New function. 21025 (patch_method_invocation_stmt): New arguments primary, where, 21026 is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P 21027 deleted. Use `where' as a type to search from if specified. Check 21028 for static method reference where forbidden. Append primary or 21029 current_this to the argument list if not calling constructor nor 21030 static methods. 21031 (check_for_static_method_reference): New function. 21032 (patch_invoke): Layout the class on which new is done if 21033 necessary. 21034 (lookup_method_invoke): Changed format to report errors on 21035 methods. 21036 (qualify_ambiguous_name): New local variable this_found. Now 21037 handle things from primaries. Method call are considered 21038 expression names. 21039 (identical_subpath_p): NULL_TREE arguments to breakdown_qualified 21040 changed into NULLs. 21041 (not_initialized_as_it_should_p): Comply with the new DECL_P. 21042 (java_complete_tree): New case fo RETURN_EXPR. Process function 21043 call arguments in separate function. 21044 (complete_function_arguments): New function. 21045 (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P 21046 anymore. 21047 (patch_assignment): Take the return function slot into account as 21048 a RHS. Distinguish assignment from a return. 21049 (valid_ref_assignconv_cast_p): Use build_java_argument_signature 21050 when checking methods in interfaces. 21051 (resolve_type_during_patch): NULL argument to unresolve_type_p 21052 instead of NULL_TREE. 21053 (patch_newarray): Fixed typo in comment. 21054 (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL. 21055 (build_return, patch_return): New functions. 21056 * typeck.c (lookup_java_constructor): Fixed typo in comment. 21057 210581998-07-21 Per Bothner <bothner@cygnus.com> 21059 21060 * constants.c (find_name_and_type_constant, find_fieldref_index, 21061 find_methodref_index): New methods. 21062 * expr.c (build_invoke_non_interface): If flag_emit_class_files, 21063 just return given method. Also, rename to build_known_method_ref. 21064 (expand_invoke): Rename call to build_invoke_non_interface. 21065 * java-tree.h, parse.h: Update prototype. 21066 * parse.y, decl.c, jcf-parse.c: Suppress calls to back-end functions 21067 (such as expand_expr_stmt) if flag_emit_class_files. 21068 * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP, 21069 STACK_TARGET, IGNORE_TARGET): New macros. 21070 (code_buffer, code_ptr, code_limit, code_S, code_SP_max): New globals. 21071 (generate_bytecode_insn): New function to generate method's bytecode. 21072 (generate_classfile): Node generate Code attribute for a method. 21073 (code_buffer_grow, push_constant1, push_constant2, push_int_const, 21074 push_long_const, field_op, adjust_typed_op, maybe_wide): 21075 New functions used by generate_bytecode_insn. 21076 21077 * typeck.c (signature_include_return): Remove variable. 21078 (push_java_argument_signature, build_java_argument_signature): New. 21079 (build_java_signature): Use push_java_argument_signature. 21080 * parse.y: Use build_java_argument_signature instead of fiddling 21081 with signature_include_return. 21082 210831998-07-17 Tom Tromey <tromey@cygnus.com> 21084 21085 * gjavah.c (print_c_decl): Always generate JArray<>* for array 21086 types. 21087 21088 * Makefile.in (all.indirect): Added gjavah$(exeext). 21089 (gjavah$(exeext)): Added $(exeext). 21090 (clean): Likewise. 21091 210921998-07-16 Alexandre Petit-Bianco <apbianco@cygnus.com> 21093 21094 * class.c (layout_class): Call to java_layout_parsed_class replace 21095 by safe_layout_class. 21096 * expr.c (build_java_array_length_access): Removed static storage 21097 class in the function definition. 21098 (build_java_arraynull_check): Likewise. 21099 Also fixed typos in two comments. 21100 * lex.c (java_init_lex): Initialize static global kw_length. 21101 (java_lex): Use BUILD_OPERATOR on RETURN_TK. 21102 * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to 21103 java_lex_error. 21104 (JAVA_INTEGRAL_RANGE_ERROR): Likewise. 21105 * parse.h (resolve_no_layout): New static function declaration. 21106 (get_identifier_in_static): Declaration removed. 21107 (java_layout_parsed_class): Function name declaration changed to 21108 safe_layout_class. 21109 (build_newarray_node, patch_newarray, resolve_type_during_patch, 21110 not_initialized_as_it_should_p, build_this): New static function 21111 declarations. 21112 (pushdecl_force_head, build_java_binop, int_fits_type_p, 21113 binary_numeric_promotion, stabilize_reference, 21114 build_decl_no_layout, build_java_arrayaccess): Extern function 21115 declarations moved into their own section. 21116 (build_newarray, build_anewarray, build_java_array_length_access, 21117 build_java_arraynull_check): New extern function declarations. 21118 (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR. 21119 (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New 21120 fake tree codes. 21121 (CALL_CONSTRUCTOR_P): New macro. 21122 * parse.y (kw_length): New static global tree node. 21123 (return_statement): Tagged <node>. 21124 (RETURN_TK): Tagged <operator>. 21125 (variable_declarator_id:): Build variable declaration with an 21126 empty initialization value if a syntax error was found in the 21127 initialization part of the variable declaration. 21128 (statement_without_trailing_substatement:): return_statement: now 21129 uses the default rule. 21130 (return_statement:): Temporarily fixed to return NULL_TREE. 21131 (primary_no_new_array:): Call build_this when THIS_TK was parsed. 21132 (class_instance_creation_expression:): Class creation rules now 21133 call build_method_invocation upon reduction. 21134 (array_creation_expression:): Rules call build_newarray_node upon 21135 reduction. 21136 (dim_exprs:): Build a list of dimension expressions. 21137 (dim_expr:): Store location of the OSB_TK in the dimension 21138 expression node. 21139 (method_invocation:): Added a new error rule. 21140 (build_unresolved_array_type): WFL argument may also be an array 21141 on a primitive type. Name of the argument changed to reflect this. 21142 (method_declarator): Insert argument type at the beginning of the 21143 argument type list and later reverse the list. 21144 (unresolved_type_p): Argument 'returned' may be optionally 21145 NULL_TREE. 21146 (java_layout_class_from_source): Function renamed 21147 safe_layout_class. 21148 (resolve_and_layout): Now call resolve_no_layout and 21149 safe_layout_class. 21150 (resolve_no_layout): New function. 21151 (purify_type_name): New function. 21152 (complete_class_report_errors): Call purify_type_name during error 21153 report on a type not found. 21154 (process_imports): error_found local variable doesn't need to be 21155 initialized to zero. 21156 (declare_local_variables): New local type_wfl. Fixed typo in error 21157 message. type_wfl assigned to unresolved type and used to register 21158 incomplete type. Build a WFL around the variable initialization 21159 statement so that debug info can be generated on it. 21160 (source_start_java_method): Reverse argument list after they've 21161 been processed. 21162 (current_this): New static global variable. 21163 (java_complete_expand_methods): Set current_this when appropriate. 21164 (resolve_expression_name): Build correct static and non static 21165 field access bearing a simple name. 21166 (resolve_field_access): Resolve the length field of arrays. Handle 21167 f.m() cases. 21168 (patch_method_invocation_stmt): Set the type of the method 21169 invocation to error_mark_node. This value is later overridden by a 21170 valid type, if any. Don't handle qualified constructor invocation 21171 as qualified method invocation. Call lookup_method_invoke with its 21172 new flag. It's no longer necessary to access the selected method 21173 as the value of a tree list. Handle constructor invocation. 21174 (patch_invoke): Reverse argument list when invoking non interface 21175 methods. Insert call to new as the first argument of the 21176 constructor. 21177 (invocation_mode): Return a INVOKE_STATIC is the invoked method is 21178 defined within a final class. Return INVOKE_STATIC if the invoked 21179 method is a constructor. 21180 (lookup_method_invoke): New lc argument is a flag to indicate a 21181 constructor lookup. Now handle constructor lookup. Choose the most 21182 specific method in case several were matching the invocation 21183 requirements. Return a method decl instead of a tree list featuring 21184 one single method decl element. 21185 (refine_accessible_methods_list): New lc flag argument to 21186 indicate that a constructor is being looked up. 21187 (not_initialized_as_it_should_p): New function. 21188 (java_complete_tree): Now process fake tree codes 21189 JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call 21190 save_expr on resolved function call arguments. Case on 21191 UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR. 21192 (patch_assignment): LHS can be a field access expression. When 21193 dealing with reference, lhs_type is the promoted type of the 21194 rhs_type, not the RHS. Use not_initialized_as_it_should_p where 21195 applicable. 21196 (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR. 21197 (patch_binop): Use not_initialized_as_it_should_p where 21198 applicable. 21199 (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR. 21200 (patch_unaryop): Likewise. And use not_initialized_as_it_should_p 21201 where applicable. 21202 (resolve_type_during_patch): New function. 21203 (patch_cast): Call resolve_type_during_patch to resolve type and 21204 report error accordingly. 21205 (patch_array_ref): Use not_initialized_as_it_should_p where 21206 applicable. Array base expression is saved before being 21207 used. Promote the type of an array elements if it contains non 21208 builtin types. 21209 (build_newarray_node, patch_newarray, build_this): New functions. 21210 212111998-07-16 Tom Tromey <tromey@cygnus.com> 21212 21213 * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't 21214 increment it in `for' statement. 21215 (print_field_info): If number is inf or nan, don't print it. 21216 (print_method_info): If method name is `delete', just ignore it. 21217 (print_c_decl): Special-case jstringArray. 21218 21219 * gjavah.c (help): New function. 21220 (no_argument): New function. 21221 (usage): Changed text. 21222 (main): Rewrote argument handling. Now handles -v, --help, 21223 --version. 21224 (version): New function. 21225 (found_error): New global. 21226 (main): Return found_error. 21227 (generate_access): Set found_error. 21228 (print_c_decl): Likewise. 21229 212301998-07-15 Tom Tromey <tromey@cygnus.com> 21231 21232 * gjavah.c (print_c_decl): Don't print "," when examining field. 21233 Skip type name when looking at "[L" types. 21234 (process_file): Now static. 21235 (generate_access): Now returns int. 21236 (last_access_generated): New global. 21237 (process_file): Clear last_access_generated; make multiple passes 21238 over the class. 21239 (print_field_info): Just return if generate_access returns true. 21240 (print_method_info): Likewise. Also, allow <init> functions to 21241 pass through. 21242 (print_c_decl): Added is_init argument. Print constructors 21243 properly. 21244 (print_cxx_classname): Use UTF8_GET to extract characters from 21245 string. 21246 (print_base_classname): New function. 21247 (print_class_decls): New function. 21248 (process_file): Use it. 21249 (utf8_cmp): New function. 21250 212511998-07-13 Nick Clifton <nickc@cygnus.com> 21252 21253 * lang-options.h: Format changed to match changes in gcc/toplev.c 21254 to implement a --help option. 21255 212561998-07-10 Brendan Kehoe <brendan@cygnus.com> 21257 21258 * decl.c (init_decl_processing): Revert change to dtable_type. 21259 212601998-07-09 Per Bothner <bothner@cygnus.com> 21261 21262 * java-tree.h (CLASS_P): Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4. 21263 212641998-07-08 Brendan Kehoe <brendan@cygnus.com> 21265 21266 * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type. 21267 21268 * lang.c (lang_init): Default flag_exceptions to 1, without 21269 checking to see if it's 2 first. 21270 212711998-07-08 Jeffrey A Law (law@cygnus.com) 21272 21273 * constants.c: Include "system.h". 21274 * decl.c: Likewise. 21275 * lang.c (flag_new_exceptions): Get via extern now. 21276 (lang_init_options): New functions. Turn on flag_new_exceptions. 21277 212781998-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 21279 21280 * lex.c (java_lex): Return 0 when we see an invalid character in 21281 the input. 21282 21283 * lex.c (java_read_char): Specify extra argument when calling 21284 java_lex_error. 21285 (java_read_unicode, java_parse_end_comment, 21286 java_parse_escape_sequence): Likewise, 21287 (java_lex): Specify extra argument when calling 21288 java_lex_error. Test that IDs are beginning with a legal character 21289 for IDs. Handle invalid characters with an error message and a 21290 call to java_lex_error. 21291 (java_lex_error): Adjust column position by new argument 21292 `forward'. Issue an error even if in the middle of reporting an 21293 other error. 21294 212951998-07-07 Brendan Kehoe <brendan@cygnus.com> 21296 21297 * jcf-io.c (find_class): Zero out BUFFER before we use it, since 21298 we don't explicitly put a null pointer when we're copying it. 21299 213001998-07-07 Tom Tromey <tromey@cygnus.com> 21301 21302 * gjavah.c (print_cxx_classname): New function. 21303 (super_class_name): Likewise. 21304 (print_super_fields): Removed. 21305 (in_super): Removed. 21306 (print_field_info): Never generate #defines. 21307 (print_c_decl): Changed generated types to match JNI. No longer 21308 print class name before method name. 21309 (print_method_info): Print "static" before static methods. 21310 Print "virtual" before non-final methods. 21311 (usage): Use exit(1), not exit(-1). 21312 (main): Likewise. 21313 (print_field_info): Use %.17g to print a double. 21314 (last_access): New globals. 21315 (process_file): Initialize last_access. 21316 (usage): Now static. 21317 (ACC_VISIBILITY): New define. 21318 (generate_access): New function. 21319 (print_field_info): Call it. 21320 (print_method_info): Likewise. Also, generate information for all 21321 methods, not just native methods. Return void. 21322 (print_c_decl): Return void. 21323 (print_field_info): Return void. 21324 213251998-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 21326 21327 * Makefile.in (JAVABISONFLAGS): Specific flag for bison when 21328 processing the jc1 grammar file. Prefix bison functions and 21329 variables with java_. 21330 (parse.c): Dependencies on parse.h and lex.h 21331 * expr.c (build_java_arrayaccess): Function now global. 21332 * java-tree.h: Comment reorganized to carry on previous 21333 classification effort. 21334 (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P, 21335 RESOLVE_TYPE_NAME_P): New flags on WFLs. 21336 * jcf-parse.c (parse_source_file): java_parse_source_file renamed 21337 java_parse (new prefix java_ generated by bison). 21338 (java_layout_parsed_class, java_register_parsed_class): Function 21339 call removed. 21340 (yyparse): Removed unnecessary call to init_outgoing_cpool. 21341 * lex.c (static tree wfl_op): Variable deleted. 21342 (java_init_lex): Initialize kw_super and kw_this. Initialize more 21343 ctxp fields to NULL_TREE. 21344 (java_lex): No longer create WFL for operators. Filename caching 21345 mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings 21346 created as STRING_CST and later expanded. Removed extra argument 21347 to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS 21348 and SUPER. 21349 (build_wfl_node): Removed code in comments. 21350 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but 21351 store token and location data in the current bison token. 21352 * parse.h: Removed pre-processor based symbol prefixes hack. Moved 21353 static/extern function declaration at the beginning of the file. 21354 (struct qualification): Data structure definition deleted. 21355 (RESOLVE_CHAIN_REMAINDER): Macro definition deleted. 21356 (qualify_ambiguous_name): Function declaration modified. Function 21357 now returns nothing. 21358 (build_array_ref, patch_array_ref, make_qualified_name, 21359 resolve_qualified_expression_name, maybe_generate_clinit, 21360 resolve_field_access): New static function declarations. 21361 (build_java_arrayaccess): New extern function declaration. 21362 (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted. 21363 (CALL_EXPR_PRIMARY): Macro deleted. 21364 (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros. 21365 (struct parser_ctxt): Field initialized_final 21366 removed. non_static_initialized, static_initialized: New fields. 21367 * parse.y (static tree kw_super, static tree kw_this): New global 21368 static. 21369 (%union): tree wfl field of operator member replaced by int 21370 location. WFLs are non longer created for operators. 21371 (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>. 21372 (qualified_name:): Now calls make_qualified_name to build the 21373 identifier. 21374 (type_declaration:): Consider generating <clinit> when class 21375 parsing completed. 21376 (variable_declarator:): Directly build an assignment node when the 21377 variable is initialized when declared. 21378 (this_or_super:): Build a WFL and set current location when THIS 21379 or SUPER are parsed. 21380 (expression_statement:): Wrap statement around a WFL. 21381 (primary_no_new_array:): Fixed typo. Changed value returned by 21382 THIS_TK because of its new type (temporary). 21383 (dim_exprs:): Temporary fix because of OSB_TK's new type. 21384 (field_access:): Build qualified name with SUPER. 21385 (method_invocation:): Fixed returned value because of SUPER's new 21386 type. 21387 (array_access:): Use OSB_TK location information. 21388 (post_increment_expression:, post_decrement_expression:, 21389 unary_expression:, pre_increment_expression:, 21390 pre_decrement_expression:, unary_expression_not_plus_minus:, 21391 cast_expression:, multiplicative_expression:, 21392 additive_expression:, shift_expression:, relational_expression:, 21393 equality_expression:, and_expression:, exclusive_or_expression:, 21394 inclusive_or_expression:, conditional_and_expression:, 21395 conditional_or_expression:, assignment:): Use new location/token 21396 information available on operators. 21397 (create_class): Set super_decl_type to NULL_TREE when processing 21398 java.lang.Object. 21399 (register_fields): Field initialization is now a MODIFY_EXPR 21400 node. Chain initialization code to the matching lists (according 21401 to the field declaration modifiers). 21402 (maybe_generate_clinit): New function. 21403 (method_header): Don't set method's DECL_NAME to a WFL when adding 21404 methods to java.lang.Object. 21405 (resolve_and_layout): Now can return NULL_TREE if the type 21406 resolution fails. Otherwise, return the class DECL instead of its 21407 TYPE. 21408 (check_method_redefinition): Don't patch method DECL_NAME if it 21409 belongs to java.lang.Object. 21410 (process_imports): Simply assign error_found to the value returned 21411 by check_pkg_class_access. 21412 (declare_local_variables): Don't use their init statements (if 21413 any) when parsing error were previously found. Reuse MODIFY_EXPR 21414 build during parsing as an init statement. 21415 (java_method_add_stmt): Now return the current method body. 21416 (java_layout_parsed_class, java_register_parsed_class): Functions 21417 removed. 21418 (java_complete_expand_methods): Initialize the constant pool on a 21419 per class basis. Layout the classes before expanding their method 21420 bodies. Don't try expand artificial constructor code if error were 21421 found. Make the classes data and register them if no error were 21422 found. 21423 (java_complete_expand_method): Retrieve an artificial constructor 21424 argument list before entering its body. Assign the top block to 21425 the artificial constructor function body and set types of declared 21426 blocks and compound statements to void. Walk method body if not an 21427 artificial constructor. 21428 (make_qualified_name, cut_identifier_in_qualified): New functions. 21429 (resolve_expression_name): Fixed comments. Save/restore the 21430 current class CLASS_LOADED_P flag value. Build non qualified 21431 static field access and handle qualified expression names. 21432 (resolve_field_access, resolve_qualified_expression_name): New 21433 functions. 21434 (patch_method_invocation_stmt): Use the new expression resolution 21435 scheme, calling resolve_field_access when the function call is 21436 resolved as an expression. 21437 (qualify_ambiguous_name): Function rewritten to work on qualified 21438 expression produced by make_qualified_name. 21439 (java_complete_tree): Promote type when function's argument are 21440 RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch 21441 the assignment to discover further errors if RHS is a expression 21442 name that fails to evaluate. Declare LHS initialized even though 21443 the assignment failed. Don't use the location variable and removed 21444 extra argument in patch function calls. Now handle the ARRAY_REF 21445 case and build internal string representation when STRING_CSTs are 21446 walked. 21447 (build_method_invocation): Don't wrap function call around a WFL. 21448 (build_assignment): Likewise. Use the operator location 21449 information. 21450 (patch_assignment): Handle array access LHSs. Handle error 21451 provenance, resulting in a better error report. 21452 (build_binop): Use op_location from operator as binop location 21453 information. 21454 (build_unaryop, build_incdec, build_cast): Likewise. 21455 (patch_binop): Extract location information from the node. Fixed 21456 typo in error message. 21457 (patch_unary_op): Extract location information from the node. 21458 (build_array_ref, patch_array_ref): New functions. 21459 214601998-07-01 Tom Tromey <tromey@cygnus.com> 21461 21462 * expr.c (expand_java_INSTANCEOF): Changed calling convention to 21463 match _Jv_IsInstanceOf. 21464 * decl.c (init_decl_processing): Use _Jv_NewArray, not 21465 soft_newarray. Use _Jv_IsInstanceOf, not soft_instanceof. 21466 214671998-06-30 Tom Tromey <tromey@cygnus.com> 21468 21469 * decl.c (init_decl_processing): Functions are now named 21470 _Jv_MonitorEnter and _Jv_MonitorExit, and return jint. 21471 214721998-06-29 Per Bothner <bothner@cygnus.com> 21473 21474 * java-tree.h (load_class): Add prototype. 21475 * class.c (is_compiled_class): Add missing arg to load_class. 21476 * expr.c (expand_java_NEW): Call load_class. 21477 * parse.y (process_import): Removed bogus use of void return value. 21478 214791998-06-25 Per Bothner <bothner@cygnus.com> 21480 21481 * decl.c, java-tree.h (soft_athrow_node): Renamed to soft_node. 21482 Function name is "_Jv_Throw" instead of "soft_athrow". 21483 * decl.c, java-tree.h (soft_new_node): Renamed to alloc_object_node. 21484 Function name is "_Jv_AllocObject" instead of "soft_new". 21485 Takes an extra parameter (object size). 21486 * expr.c: Update calls. 21487 214881998-06-24 Per Bothner <bothner@cygnus.com> 21489 21490 * lex.c (java_get_line_col): Handle end-of-file. 21491 * except.c (expand_end_java_handler): Handle null type (i.e. finally). 21492 214931998-06-24 Andrew MacLeod <amacleod@cygnus.com> 21494 21495 * lang.c (lang_init): Make -fexceptions the default. 21496 * except.c (maybe_start_try, maybe_end_try): Don't do anything if 21497 exception handling is not turned on. 21498 214991998-06-23 Andrew MacLeod <amacleod@cygnus.com> 21500 21501 * lang.c (flag_new_exceptions): Make this this default. 21502 * decl.c (end_java_method): Call emit_handlers. 21503 * except.c (method_init_exceptions): Set language code and version. 21504 (expand_start_java_handler): Enable exception, and call 21505 expand_eh_region_start. 21506 (expand_end_java_handler): Enable exception, and set up catch blocks. 21507 (emit_handlers): New routine to generate the saved handlers. 21508 * java-except.h (emit_handlers): Add prototype. 21509 215101998-06-12 Per Bothner <bothner@cygnus.com> 21511 21512 We used to have three different representations of the constant pool: 21513 the CPool structure, the tree_constant_pool, and the constructures 21514 used to build the Class object (which may need class and string 21515 constants) in compiled code. None were appropriate for compiling 21516 to .class files, so I did a major overhaul. 21517 21518 First, the tree_constant_pool array was removed. Things were 21519 modified to the CPool structure in the JCF could be used. 21520 Second, a "capacity" field was added to the CPool, and functions 21521 written to search for a matching constant, adding one if not found. 21522 The code that generated the Class object was changed to use a CPool. 21523 The actual TREE_LISTs used to build the CONSTRUCTORs used for 21524 the static Class object are now only in build_constants_constructor. 21525 Finally, I wrote code which can generate a .class file (including its 21526 constant pool) from the RECORD_TYPE of a class. This is a big step 21527 on the way to compiling Java source into .class files. 21528 21529 * jcf-write.c: New file. Writes out a RECORD_TYPE as a .class file. 21530 * Makefile.in (JAVA_OBJS): Added jcf-write.o. 21531 21532 * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag, 21533 CONSTANT_ResolvedString, CONSTANT_ResolvedClass): New macros. 21534 (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME, 21535 COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined. 21536 (COMPONENT_REF_CLASS): Replaced by COMPONENT_REF_CLASS_INDEX. 21537 (lang_type): Removed constant_pool field. 21538 * jcf.h (CPool): Renamed size to count. Added field capacity. 21539 (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2, 21540 CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT): New macros. 21541 Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros. 21542 21543 * constants.c (current_constant_pool_tags, current_constant_pool_data, 21544 current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool. 21545 * constants.c (build_constants_constructor): Use new outgoing_cpool. 21546 (set_constant_entry, find_constant1, find_constant2, 21547 find_class_constant, count_constant_pool_bytes, write_constant_pool, 21548 find_utf8_constant, find_class_or_string_constant): New functions. 21549 21550 * jcf-parse.c (load_class): Don't save/restore tree-constant_pool. 21551 (get_constant): Use current_jcf.cpool instead of tree_constant_pool. 21552 (give_name_to_class, get_class_constant): Likewise. 21553 * jcf-parse.c, java-tree.h (tree_constant_pool): Removed. 21554 (get_name_and_type_constant, get_ref_constant): Removed. 21555 * parse.h (parser_ctxt): Remove field tree_constant_pool. 21556 * parse.y: Don't save/restore tree_constant_pool. 21557 * verify.c (verify_jvm_instructions): Update for new approach. 21558 * expr.c (expand_invoke, expand_java_field_op): Likewise. 21559 21560 * lang-options.h: Added -femit-class-file, -femit-class-files. 21561 * lang.c (flag_emit_class_files), java-tree.h: New flag. 21562 (lang_f_options): Added "emit-class-file(s)". 21563 21564 * expr.c (build_java_arrayaccess): Generate more efficient array 21565 bounds checking, by using unsigned compare. 21566 21567 * expr.c (expand_invoke): Re-arrange error checks to make more robust. 21568 215691998-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com> 21570 21571 * parse.h: New comment on the handling of unresolved type 21572 identifiers. JDEPs are now part of the jdep_code enum. 21573 (typedef struct jdep): Now use enum jdep_code or int, depending on 21574 availability. Both are narrowed down to an 8 bits bitfield. 21575 (CALL_EXPR_PRIMARY): Fixed comment. 21576 215771998-06-10 Tom Tromey <tromey@cygnus.com> 21578 21579 * Make-lang.in (java): Added gjavac and jvgenmain. 21580 (java.start.encap): Depend on gjavac. 21581 (java.rest.encap): Depend on jvgenmain. 21582 21583 * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++. 21584 (JAVA_CROSS_NAME): Likewise. 21585 (java.all.build): Depend on jvgenmain and gjavac. 21586 (java.all.cross): Depend on jvgenmain and gjavac-cross. 21587 (jvgenmain$(exeext)): New target. 21588 (java.install-common): Wrote. 21589 * config-lang.in (compilers, stagestuff): Added gjavac and 21590 jvgenmain. 21591 215921998-06-10 Dave Brolley <brolley@cygnus.com> 21593 21594 * lang.c (lang_decode_option): New argc/argv interface. 21595 215961998-06-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 21597 21598 * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard. 21599 * decl.c (build_decl_no_layout): New function. 21600 * expr.c (java_lang_expand_expr): Layout declarations found in 21601 blocks before they're pushed. 21602 * jcf-parse.c (load_class): Save current line when parsing class 21603 file. 21604 (parse_source_file): Register class before expanding their 21605 methods. 21606 * lang.c (put_decl_node): Produce `null' when `void *' is 21607 processed. 21608 * lex.c (static tree wfl_op): New static global, for error report 21609 on casts. 21610 (java_init_lex): wfl_operator and wfl_op initialized 21611 here. Filename caching added for wfl_op. Return wfl_op when `(' is 21612 parsed. 21613 * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast, 21614 patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p, 21615 build_unresolved_array_type): New static function definitions. 21616 (build_decl_no_layout): New extern function declared. 21617 (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the 21618 faulty modifier exists. 21619 (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros. 21620 (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned. 21621 (UNARY_PLUS_EXPR): New fake operator. 21622 (struct parser_ctxt): New field osb_number. 21623 * parse.y (static tree wfl_operator): New static WFL for operator 21624 bound error messages. 21625 (DECR_TK, INCR_TK): Moved. 21626 (OP_TK): Tagged <operator>. 21627 (array_type:): Now call build_unresolved_array_type. 21628 (dim_expr:): Count the number of '[' seen. 21629 (post_increment_expression, post_decrement_expression, 21630 pre_increment_expression, pre_decrement_expression, 21631 unary_expression_not_plus_minus, unary_expression:): Actions are 21632 now building the corresponding unary expressions. 21633 (cast_expression:): Actions are now building cast expressions. 21634 (build_unresolved_array_type): New function. 21635 (create_interface): Reset the number of declared interfaces. 21636 (create_class): Likewise. 21637 (method_header): Methods declared within the scope of an interface 21638 are now implicitly set public and abstract. 21639 (java_complete_class): Variable's and parameter's type are patched 21640 with a promoted type. 21641 (declare_local_variables): Resolved non builtin types are promoted 21642 before being used to build a variable decl. Removed type patch 21643 posted on variable initialization statement. 21644 (source_start_java_method): Use build_decl_no_layout to build the 21645 decl of a parameter of incomplete type. 21646 (java_register_parsed_class): Process interfaces too. Call 21647 rest_of_decl_compilation on each processed class declarations. 21648 (java_complete_expand_methods): Don't attempt to expand things in 21649 interfaces. 21650 (java_complete_tree): Process CONVERT_EXPR, even though it always 21651 has a type. Propagate error_mark_node to node's type too. Promote 21652 method's call argument type and return error_mark_node if 21653 argument's completion didn't work. MODIFY_EXPR can have a WFL as a 21654 RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now 21655 handle unary operator nodes. 21656 (build_assignment): Added comment. 21657 (print_int_node): New function. 21658 (patch_assignment): New second argument. New error handling. Use 21659 print_int_node. Handle references. Use can_cast_to_p to issue 21660 different error message according to the context and check upon 21661 the initialization of the RHS. 21662 (can_cast_to_p, valid_ref_assignconv_cast_p): New functions. 21663 (operator_string): Handle more operators. 21664 (patch_binop): No longer use a function static 21665 wfl_operator. Improved error message on shift distance. 21666 (build_unaryop, build_incdec, build_cast, patch_unaryop, 21667 patch_cast): New functions. 21668 216691998-06-05 Per Bothner <bothner@cygnus.com> 21670 21671 * jvspec.c: New file. 21672 * Make-lang.in: New rules to build gjavac from jvspec.c and ../gcc.c. 21673 21674 * java-tree.h (identifier_subst): Add declaration. 21675 216761998-06-04 Tom Tromey <tromey@cygnus.com> 21677 21678 * jvgenmain.c (main): Generate call to JvRunMain. 21679 21680 * class.c (make_class_data): Push value for "sync_info" field. 21681 * decl.c (init_decl_processing): Push "sync_info" field. 21682 216831998-06-03 Per Bothner <bothner@cygnus.com> 21684 21685 * typeck.c (build_java_array_type): Set TYPE_NAME to actual 21686 Java (source) name, not signature. 21687 Set TYPE_ALIGN to (at least) that of element_type. 21688 216891998-06-02 Per Bothner <bothner@cygnus.com> 21690 21691 * class.c: Moved classname-mangling-rekated code to ... 21692 * mangle.c: ... this new file. 21693 * jvgenmain.c: New program (needs mangle.c) to generate main program. 21694 * Makefile.in: Update for above changes. 21695 216961998-06-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 21697 21698 * expr.c (truthvalue_conversion): Convert integer and floating 21699 point value to their truth value. 21700 * lex.c (java_lex): Handle the `null' literal. 21701 * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros. 21702 (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC, 21703 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED): 21704 New macros. 21705 21706 * parse.y: Reorganization/documentation on token declaration. 21707 (binop_lookup[]): New added new tree codes. 21708 (relational_expression): Build corresponding binary operators. 21709 (equality_expression, conditional_and_expression, 21710 conditional_or_expression): Likewise. 21711 (java_complete_class): Fix crash in debug message. 21712 (java_complete_tree): Check initialization of method call 21713 arguments. Further bogus node evaluation to detect more error 21714 during assignments. Handles more binary operators. 21715 (patch_assignment): Use DECL_P. 21716 (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree 21717 code. 21718 (operator_string): Handle more case. Compacted source. 21719 (patch_binop): Changed function comment. Checking for 21720 uninitialized first operand takes the compound assignment into 21721 account and uses DECL_P. Checking for uninitialized second operand 21722 delayed to routine's end. Use macros to issue type bound error 21723 messages and issue messages on both operands if their types are 21724 different. Force fixed type into node. Handle all binary 21725 operators. 21726 217271998-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 21728 21729 * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros. 21730 * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to 21731 build operator node and return tokens. 21732 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros. 21733 * parse.h (java_complete_tree): Changed returned type in prototype. 21734 (build_method_invocation, build_assignment, patch_assignment, 21735 patch_binop): New static function declarations. 21736 (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P, 21737 BUILD_EXPR_WFL): New macros. 21738 * parse.y (enum tree_code binop_lookup[]): New static for token to 21739 TREE_CODE lookup. 21740 (%union): Parser union has new sub-structure `operator'. 21741 (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK, 21742 PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK, 21743 ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK, 21744 ASSIGN_ANY_TK): Tokens tagged `operator'. 21745 (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK, 21746 AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK, 21747 MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK, 21748 REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'. 21749 (assignment_operator:): Rule tagged `operator'. 21750 (expression_statement:): Re-installed default rule. 21751 (method_invocation:): Sub rules call build_method_invocation. 21752 (postfix_expression:): Don't attempt to resolve name here. Just 21753 return an ID. 21754 (multiplicative_expression:): Sub-rules build corresponding binop 21755 expression node. 21756 (additive_expression:, shift_expression:, and_expression:, 21757 exclusive_or_expression:, inclusive_or_expression:): Likewise. 21758 (assignment:): Sub rule invoke build_assignment. 21759 (assignment_operator:): Default rules on sub rules. 21760 (force_error): Added documentation on this variable. 21761 (declare_local_variables): Build initialization calling 21762 build_assignment. 21763 (expand_start_java_method): Removed unused rtx declaration. Mark 21764 arguments as already initialized. 21765 (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL. 21766 (java_complete_expand_methods): Don't process next method if 21767 completion of the previous one triggered errors. 21768 (java_complete_expand_method): Call source_end_java_method if no 21769 error were found during completion. 21770 (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve 21771 locals declaratilon. Handle names found within a class. Return 21772 error_mark_node when things aren't found. 21773 (patch_method_invocation_stmt): Return error_mark_node on failures. 21774 (patch_invoke): Removed unused local. Return the correct node. 21775 (java_complete_tree): Now returns a value. The BLOCK section binds 21776 local identifiers and the type of a BLOCK is now void. Assign the 21777 result of operand completion on COMPOUND_EXPR. Assign the 21778 encapsulated node of a WFL to the result of its completion, except 21779 when the node is an identifier. Now handle MODIFY_EXPR and several 21780 binary operators. Return error_mark_node on errors. 21781 (build_method_invocation, build_assignment, patch_assignment, 21782 build_binop, operator_string, patch_binop): New functions. 21783 * typeck.c (binary_numeric_promotion): New function. 21784 217851998-05-21 Per Bothner <bothner@cygnus.com> 21786 21787 * class.c (identifier_subst): New convenience wrapper for ident_subst. 21788 Replace most uses of ident_subst by identifier_subst. 21789 21790 * class.c (push_class_static_dummy_field): Removed function. 21791 (build_class_ref): Find Class object decl by looking up "CNAME.class", 21792 instead of looking got "class" static field. Create that decl here. 21793 (class_identifier_node): Removed; no longer needed. 21794 (init_class_processing): Don't init class_identifier_node. 21795 * jcf-parse.c (jcf_parse): Don't call push_class_static_dummy_field. 21796 Do nreverse 0 times (instead of twice) for Object and Class. 21797 * parse.y (java_layout_parsed_class): No push_class_static_dummy_field. 21798 217991998-05-20 Per Bothner <bothner@cygnus.com> 21800 21801 * jcf-parse.c (parse_class-file): Set lino to smallest line number, 21802 while initializing linenumber_count and linenumber_table. 21803 Do it before init_function_start (which calls emit_line_note). 21804 * expr.c (expand_byte_code): Don't need to clear lineno here. 21805 218061998-05-18 Tom Tromey <tromey@cygnus.com> 21807 21808 * class.c (append_gpp_mangled_type): If `qualifications' is >=9, 21809 then mangle number as _N_. 21810 21811 * class.c (mangle_class_field): New function. 21812 (build_class_ref): Set assembler name of class reference using 21813 mangle_class_field. 21814 (push_class_static_dummy_field): Likewise. 21815 218161998-05-17 Michael Tiemann <tiemann@cygnus.com> 21817 21818 * parse.y (source_start_java_method): Use TREE_SET_CODE instead 21819 of assigning to TREE_CODE. The latter method exploits a feature 21820 of GCC that is not ANSI compliant. 21821 218221998-05-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 21823 21824 * decl.c (pushdecl_force_head): New function. 21825 (pushlevel): Removed conditional printf. 21826 (complete_start_java_method): Don't enter local variable scope if 21827 function is compiled from source code. 21828 * expr.c: parse.h now included 21829 (java_lang_expand_expr): New function. 21830 * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of 21831 printf. Terminate buffer when doing directories. 21832 * jcf-parse.c (parse_source_file): Call lang_init_source before 21833 parsing and before code generation. 21834 * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally 21835 use printf if the macro is defined. 21836 * lang.c (lang_init): Install lang_expand_expr hook on 21837 java_lang_expand_expr. 21838 (java_dummy_print): New function. 21839 (lang_init_source): New function. 21840 * lex.c (java_lex): Remember location of an opening brace at the 21841 second nesting level. 21842 (java_is_eol): Unget character seen after a CR if it is EOF. 21843 * parse.h: Now includes lex.h 21844 (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use 21845 printf if the macro is defined. 21846 (expand_start_java_method, build_expr_block, enter_block, 21847 exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks): 21848 New static function declarations. 21849 (pushdecl_force_head): New extern function declaration. 21850 (INCOMPLETE_TYPE_P): New macro. 21851 (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum. 21852 (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY, 21853 BLOCK_EXPR_ORIGIN): New macros. 21854 (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST, 21855 DECL_SOURCE_LINE_LAST): New macros. 21856 (struct parser_ctxt): Removed field current_method_decl, redundant 21857 with the field current_function_decl. Added fields 21858 first_ccb_indent1 and pending_block. 21859 * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK, 21860 BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules 21861 tagged <node> 21862 (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs. 21863 (compilation_unit:): Cosmetic on sub rule. 21864 (type_declaration:): Cosmetic on sub rules. Added an error rule. 21865 (variable_initializer:): Installed default rule on expression:. 21866 (method_declaration:): method_header: starts a new 21867 method. method_body: installs the function body, absorbs blocks 21868 emitted for temporary variable scopings, pops function's body block 21869 and merges function's last statement lineno in DECL_SOURCE_LINE. 21870 (method_body:): Installed default rules. 21871 (block:): Call enter_block when an opening brace is seen. Absorb 21872 scoping blocks and call exit_block when a closing brace is seen. 21873 (block_statement:): Cosmetic changes. 21874 (method_invocation:): Create WFL around CALL_EXPR node. 21875 (patch_stage): Added comment around definition. 21876 (method_header): Try to use first_ccb_indent1 as the first line of 21877 the method, so BP debug info are emitted at the first opening 21878 brace of the function. If the function has no body, use the 21879 location of the function's name. Override currently defined method 21880 name with the matching WFL so we can point redefinition errors 21881 using the location where the function's name was declared. 21882 (check_abstract_method_header): Interprets DECL_NAME as an 21883 identifier or as a WFL, accordingly. 21884 (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM. 21885 (check_method_redefinition): Use DECL_NAME as a WFL. Extract 21886 location and name information out of it and reinstall DECL_NAME to 21887 its original identifier node value. 21888 (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the 21889 function's source code). 21890 (read_import_dir): Test the value returned by find_class and issue 21891 a fatal accordingly. 21892 (declare_local_variables): Push a new block for the scope of the 21893 new variable(s) if code has been already generated at that nesting 21894 level. Pinpoint redefinition errors using the variable id 21895 WFLs. Generate initialization code if necessary. If the variable 21896 type is incomplete, register a patch on its decl. 21897 (source_start_java_method): Rewritten. Define a new block for the 21898 function's parameters. Build parameter decl out of function's 21899 arguments and register them for a patch if their types are 21900 incomplete. 21901 (expand_start_java_method): Includes the part of 21902 source_start_java_method that was pushing the parameter decls and 21903 completing the method start code. 21904 (source_end_java_method): Removed call the expand_end_bindings and 21905 poplevel (already taken care of). Reinstall function's arguments 21906 and get function's last line of code before calling 21907 expand_function_end. 21908 (java_method_add_stmt): New comment before the function's 21909 code. Complement the second operand of the current COMPOUND_EXPR 21910 if necessary. 21911 (java_complete_expand_methods): Don't generate debug info on line 21912 zero when expanding a generated constructor. 21913 (java_complete_expand_method): Set start and end line numbers for 21914 a artificially generated constructor to one and manually call 21915 enter_block and exit_block when defining it. For all methods: 21916 expand function's start calling the new expand_start_java_method 21917 and invoke java_complete_tree on the effective method's body, if 21918 any. 21919 (resolve_expression_name): Now use lookup_name_in_blocks to search 21920 local variable decls and print out an error when variables are 21921 undefined. 21922 (patch_method_invocation_stmt): Inserted comment before the 21923 function's code. 21924 (lookup_method_invoke): Chain method's arguments using chainon 21925 with the current arg list as a second argument. Inserted missing 21926 IDENTIFIER_POINTER when reporting an error on methods not found. 21927 (refine_accessible_methods_list): Don't retain constructors. 21928 (patch_arguments): Function removed. 21929 (java_complete_tree): Inserted comment before the function's 21930 code. New case for BLOCKs. Moved the WFL case a bit 21931 further. Complete function's arguments. 21932 (build_expr_block, enter_block, exit_block, lookup_name_in_blocks, 21933 maybe_absorb_scoping_blocks): New functions. 21934 219351998-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 21936 21937 * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if 21938 previously set. 21939 * jcf-parse.c (parse_source_file, java_error_count): New forward 21940 and extern declarations. 21941 (java_parse_abort_on_error): Macro moved. 21942 (jcf_parse_source): fatal called if fopen fails. Now calls 21943 parse_source_file. 21944 (parse_source_file): New parse_only parameter. Reflects the 21945 elimination of the second pass. 21946 (yyparse): parse_source_file called with argument set to 0. 21947 * jcf.h (JCF_ZERO): Sets java_source to zero. 21948 * lex.c (java_init_lex): pass argument is gone. Function modified 21949 to be called once during the analysis of a file. 21950 (java_unget_unicode): Fixed typo in fatal message. 21951 (java_get_line_col): Likewise. 21952 (java_lval): Likewise. String literals no longer built during 21953 second pass. 21954 * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into 21955 account. 21956 * parse.h (MODIFIER_WFL): New macro. 21957 (parse_check_super, parser_check_super_interface): Now return int. 21958 (parser_chain_incomplete_item, not_builtin_p, 21959 complete_method_decl): Declarations removed. 21960 (build_method_invocation_stmt, build_invoke): Renamed using the 21961 `patch' instead of `build' 21962 (register-incomplete_type, obtain_incomplete_type, 21963 java_complete_tree, java_complete_expand_method, 21964 unresolved_type_p, create_jdep_list): New function declarations. 21965 (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS, 21966 END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted. 21967 (jdep): New typedef on new struct _jdep. 21968 (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL, 21969 JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, 21970 JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED, 21971 JDEP_RESOLVED_P): New macros. 21972 (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD, 21973 JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE, 21974 JDEP_VARIABLE): New enum values and jdep kinds. 21975 (jdeplist): New typedef on struct _jdeplist. 21976 (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New 21977 macros. 21978 (CALL_EXPR_PRIMARY): New macro. 21979 (struct parser_ctxt): Fields java_pass, current_method_decl, 21980 method_decl_list deleted. New field jdeplist. 21981 (INCOMPLETE_P): Macro deleted. 21982 * parse.y (single_type_import_declaration:): Removed pass switch. 21983 (type_import_on_demand_declaration): Likewise. 21984 (field_declaration:): Removed pass switch on all sub rules. 21985 (class_declaration:): Call the complete_class_decl removed on 21986 class_body rules. 21987 (method_declaration:): Removed second pass switch. No longer chain 21988 methods decl when method_header reduced. 21989 (method_header:): Sub rules no longer depend on pass switch. 21990 (method_declarator:): Likewise. 21991 (method_body:): Likewise. 21992 (abstract_method_declaration:): Likewise. 21993 (block_statement:): Likewise. 21994 (local_variable_declaration:): Likewise. 21995 (argument_list:): Likewise. 21996 (method_invocation:): Likewise. Call to build_method_invocation_stmt 21997 removed. Partial CLASS_EXPR tree node built instead. 21998 (postfix_expression:): Removed pass switch on all sub rules. 21999 (java_pop_parser_context): Free classd_list content. 22000 (yyerror): Call obstrack_grow0 to finalize error message. 22001 (check_class_interface_creation): Comment modified to reflect new 22002 returned value meaning. Removed second pass switch. Return 1 if an 22003 error was found, 0 otherwise. Adjust pointer on filename if a 22004 leading path separator was found. 22005 (maybe_create_class_interface_decl): Removed first pass switch 22006 when linking the class decl to the class_list. Install a new 22007 jdep_list for the class. 22008 (add_superinterfaces): List of unresolved interfaces is 22009 gone. Unresolved interfaces are directly added to the current 22010 dependencies list. 22011 (create_interface): Second pass shortcut removed. 22012 ctpx->modifier_ctx access through MODIFIER_WFL. 22013 (create_class): Second pass shortcut removed. Call to 22014 register_incomplete_type replaces the call to 22015 parser_chain_incomplete_item. 22016 (complete_class_decl): Function removed. 22017 (duplicate_declaration_error): New way of retrieving redeclared 22018 item type. 22019 (register_fields): Call to lookup_modifier_cl replaced by 22020 MODIFIER_WFL. New way of handling unresolved type, using 22021 unresolved_type_p and obtain_incomplete_type. 22022 register_incomplete_type replaces call to parser_chain_incomplete_item. 22023 (patch_stage): New static global variable. 22024 (method_header): New way of handling unresolved type, using 22025 unresolved_type_p and obtain_incomplete_type. patch_stage used to 22026 indicates that the method decl needs to be patched. 22027 (check_abstract_method_header): Call to lookup_modifier_cl 22028 replaced by MODIFIER_WFL. 22029 (method_declarator): Incomplete argument type are registered 22030 calling register_incomplete_type. Patch on the declared method is 22031 issued in that case. 22032 (unresolved_type_p): New function. 22033 (parser_check_super_interface): New comment to reflect function's 22034 modified returned type (int). Function and has a new argument 22035 this_wfl. Call to parse_error_context uses this_wfl instead of 22036 relying on lookup_cl. 22037 (parser_check_super): Comment reflects function's new returned 22038 type (int). Function returns nonzero value on error. 22039 (create_jdep_list, reverse_jdep_list, obtain_incomplete_type, 22040 register_incomplete_type, jdep_resolve_class): New functions to 22041 handle incomplete types in declarations. 22042 (java_complete_class): Rewritten to work with the new incomplete 22043 type handling scheme. 22044 (complete_class_report_errors): Likewise. 22045 (complete_method_decl): Removed: it jobs is now handled by 22046 java_complete_class. 22047 (do_resolve_class): Class loaded in not already loaded and not 22048 found in Java source code. 22049 (java_check_regular_methods, java_check_abstract_methods): Don't 22050 call complete_method_decl anymore. 22051 (lookup_modifier_cl, not_builtin_p): Functions deleted. 22052 (read_import_dir): Got rid of the pass number dependency. 22053 (declare_local_variables): New handling of unresolved types (patch 22054 issued). 22055 (source_start_java_method): New parameter level. Function called 22056 with level set to 1 when argument types are potentially 22057 unresolved. Called to complete the job with level set to 2 once 22058 types are complete. 22059 (source_end_java_method): Call to permanent_allocation 22060 removed. Waiting to be replaced by a more suitable obstack 22061 management. 22062 (java_complete_expand_methods, java_complete_expand_method, 22063 java_expand_finals): New functions. 22064 (build_method_invocation_stmt): Renamed 22065 patch_method_invocation_stmt. Extracts function call expression 22066 (wfl) and arguments (args) from CALL_EXPR tree operands. 22067 (build_invoke): Renamed patch_invoke. Fixed typo in fatal 22068 call. Patch the function and argument operand of the CALL_EXPR 22069 tree argument. 22070 (patch_argument, java_complete_tree): New functions. 22071 220721998-04-20 Per Bothner <bothner@cygnus.com> 22073 22074 Recover from missing fields and methods (i.e. error instead of fatal). 22075 * decl.c, java-tree.h (TYPE_identifier_node): New global constant. 22076 * expr.c (expand_invoke): Recover from missing method. 22077 (expand_java_field_op): Recover from missing field. 22078 Inline references to java.lang.{Integer,Char,...}.TYPE. 22079 * typeck.c (get_type_from_signature), java-tree.h: New function. 22080 * class.c (add_method): Use get_type_from_signature. 22081 (build_class_ref): Handle a class that was not found. 22082 * typeck.c (convert): Handle conversion to pointers (for convenience). 22083 * verify.c (verify_jvm_instructions): Use get_type_from_signature 22084 instead of lookup_field to handle missing fields. 22085 22086 * jcf-parse.c (process_zip_dir): Set java_source. 22087 220881998-04-20 Brendan Kehoe <brendan@cygnus.com> 22089 22090 * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME. 22091 220921998-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com> 22093 22094 * jcf-parse.c (load_class): Don't change input_filename before 22095 calling jcf_parse_source (but still do it before calling 22096 jcf_parse). 22097 (jcf_parse_source): Assign input_filename after having saved the 22098 parser context. 22099 * lex.c (java_init_lex): Chain a WFL node to the import on demand 22100 list. ctxp->modifier_ctx zeroed according to its new 22101 definition. ctxp->filename initialized. Removed 22102 JAVA_MODIFIER_CTX_UNMARK. 22103 (java_unget_unicode): Update the character based column position. 22104 (java_allocate_new_line): ref_count not used anymore. Always free 22105 ctxp->p_line. Initialize c_line->char_col to 0. 22106 (java_get_unicode): Update the character based column position. 22107 (java_lex): Use ctxp->elc to store current position in source 22108 file, at the beginning of the parsed token. Set modifier_ctx entry 22109 corresponding to the parse modifier to a WFL node. Return a WFL 22110 node when an identifier is parsed. 22111 (java_lex_error): Now uses ctxp->elc to store current position in 22112 source. 22113 (build_wfl_node, java_is_eol, java_get_line_col): New functions. 22114 * lex.h (build_wfl_node): New function definitions. 22115 (struct java_line): ref_count and next fields are gone. New field 22116 char_col. 22117 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN, 22118 JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted. 22119 (JAVA_COLUMN_DELTA): New macro. 22120 (java_lc): New typedef on new struct _java_lc. 22121 * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types. 22122 (parse_error_context, parse_warning_context): Changed prototypes. 22123 (java_get_line_col): Added as an available global function. 22124 (JAVA_MODIFIER_CTX_UNMARK): Macro removed. 22125 (IC_DECL): Replaced by macro IC_TYPE 22126 (DEPEND_WFL): New macro. 22127 (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first 22128 wrong modifier. 22129 (exit_java_complete_class): Removed a commented out statement. 22130 (struct parser_ctxt): Added comments on fields. modifier_ctx is 22131 now an array of tree nodes. Deleted fields line_list and 22132 e_line. New field elc, to replace e_line. 22133 * parse.y (array_type:): Build WFL node. 22134 (qualified_name:): Build a single WFL node out of two. Retain 22135 the location information of the first node in the resulting node. 22136 (package_declaration:): Use package name as a WFL node 22137 (single_type_import_declaration:): Use imported name as a WFL node. 22138 (type_import_on_demand_declaration:): Use root of the imported 22139 packages as a WFL node. 22140 (field_declaration:): Removed unused local variable cl. 22141 (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK. 22142 (yyerror): New static elc. Removed static error_line, error_pos. 22143 New local code_from_source. Save ctxp->elc into elc at the first 22144 pass. Call java_get_line_col to get a string of the line where 22145 the error occurred. 22146 (debug_line): Removed static function. 22147 (parse_error_context, parse_warning_context): Parameter cl is now 22148 a WFL node. Use its value to initialize ctxp->elc. 22149 (redefinition_error): Parameter cl is now a WFL node. 22150 (parse_add_interface): New parameter wfl. No longer call 22151 lookup_cl, use wfl instead. 22152 (check_class_interface_creation): Parameter cl is now a WFL node. 22153 (maybe_create_class_interface_decl): Likewise. 22154 (add_superinterfaces): New function. 22155 (create_interface): Removed local cl, node, super_decl, 22156 super_decl_type. Function now uses id as a WFL node. Better 22157 warning/error report on obsolete or forbidden mix of 22158 modifiers. Now calls add_superinterfaces to register interfaces. 22159 (create_class): Removed local cl, node. Local variable id is used 22160 as a WFL node. Better error report on forbidden modifier 22161 mix. Uses add_superinterfaces to register interfaces. 22162 (find_field): Argument cl is now a WFL node. Now store the WFL 22163 node of a fields that needs to be checked for their 22164 initialization. 22165 (method_header): Local variable node non longer used. Local 22166 variable id replaces cl. 22167 (check_modifiers_consistency): Local variable cl is now a WFL 22168 node. 22169 (method_declarator): Local variable cl replaced by parameter id. 22170 (parser_qualified_name): Now uses parameter name as a WFL node. 22171 (parser_check_super_interface): New parameter wfl, for achieve 22172 greater accuracy during error reports. 22173 (parser_chain_incomplete_item): New parameter named location. Used, 22174 along the decl, to construct the incomplete item node. 22175 (java_complete_class): resolve_class now uses WFL node extracted 22176 from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE 22177 where appropriate. 22178 (complete_method_decl): Unresolved function's argument types are WFL. 22179 (resolve_class): Parameter cl is now a WFL node. 22180 (resolve_and_layout): Likewise. 22181 (do_resolve_class): Likewise. Try first to use cl and then do the 22182 lookup on the decl when calling check_pkg_class_access. 22183 (complete_class_report_errors): Use IC_TYPE in place of 22184 TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency 22185 instead of doing a lookup over the decl. 22186 (java_check_final): Use WFL info from field tree list. 22187 (lookup_cl): Rewritten and returns a statically defined WFL node. 22188 (lookup_modifier_cl): Now uses information from WFL nodes. 22189 (process_imports): Likewise. 22190 (read_import_dir): name and cl arguments replaced by a single WFL 22191 node. Function modified accordingly. 22192 (find_in_imports_on_demand): Now uses WFL node. 22193 (check_pkg_class_access): cl argument is now a WFL node. 22194 (declare_local_variables): Fixed to use WFL nodes. 22195 (resolve_expression_name): Likewise. 22196 (build_method_invocation_stmt): name_combo argument renamed 22197 wfl. Function modified to use WFL nodes. 22198 (build_invoke): cl used as a WFL node when calling build_expr_wfl. 22199 (lookup_method_invoke): cl is now a WFL node. Added missing 22200 IDENTIFIER_POINTER to class type decl name. 22201 222021998-04-14 Dave Brolley <brolley@cygnus.com> 22203 22204 * lang.c (init_parse): Now returns char* containing the filename. 22205 222061998-04-10 Per Bothner <bothner@cygnus.com> 22207 22208 * class.c (layout_class): Mangle repeated arg types to match cc1plus. 22209 22210 * decl.c, java-tree.h (integer_four_node): New INTEGER_CST node. 22211 * class.c (make_class_data): If flag_assume_compiled, initial class 22212 state is CSTATE_PREPARED; make superclass and interfaces direct 22213 references, rather than constant pool indexes. 22214 222151998-04-09 Alexandre Petit-Bianco <apbianco@cygnus.com> 22216 22217 * parser.y: Include flags.h. Removed debug variable pl. 22218 (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl. 22219 (block:): Likewise. 22220 (labeled_statement_nsi:): Generate debug info when reducing 22221 expression_statement:. 22222 (check_pkg_class_access): get_access_flags_from_decl invocation 22223 fixed for new CLASS_* flags location. 22224 (source_end_java_method): Save/restore parser context when 22225 entering/leaving this routine. Restore lineno to its right value 22226 before calling expand_end_bindings. 22227 (build_method_invocation_stmt): build_invoke called with the 22228 current line information. 22229 (build_invoke): New argument cl. Wrap the function call around a 22230 wfl node. 22231 (refine_accessible_methods_list): Changed comment, removed 22232 unnecessary code. 22233 * parse.h: Fixed typo in comments. 22234 (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location. 22235 (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro. 22236 (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1, 22237 parser_ccb_indent. 22238 * lex.c (java_lex): Record the last closing curly bracket of a 22239 function. 22240 * jcf-parse.c (jcf_parse_source): Now calls 22241 java_check_methods. Clarified comment, fixed typo. 22242 222431998-04-09 Dave Brolley <brolley@cygnus.com> 22244 22245 * lang.c (init_parse): Expose for non USE_CPPLIB builds. 22246 (finish_parse): Expose for non USE_CPPLIB builds. 22247 222481998-04-08 Jeffrey A Law (law@cygnus.com) 22249 22250 * lang.c (lang_print_xnode): New function. 22251 222521998-04-03 Per Bothner <bothner@cygnus.com> 22253 22254 * decl.c (class_dtable_decl), java-tree.h: New tree node. 22255 * class.c (get_dispatch_vector, get_dispatch_table): New functions 22256 used to build a class's dispatch table. 22257 (make_class_data): Generate dispatch table if flag_assume_compiled. 22258 Set dtable of class object to address of class_dtable_decl. 22259 22260 * decl.c (int_decl_processing): Make soft_badarrayindex_node 22261 be volatile and have side effects - generates better code. 22262 22263 * class.c, expr.c, parse.y: CLASS_INTERFACE, CLASS_FINAL, etc: 22264 These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs. 22265 22266 * expr.c (expand_invoke): If class is final, method is 22267 effectively final, so can call it directly. 22268 22269 * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE): New macros. 22270 22271 * Makefile.in, Make-lang.in: Add missing $(exeext)s. 22272 222731998-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com> 22274 22275 * parse.y (build_method_invocation_stmt): Removed extra argument 22276 to build_invoke. 22277 222781998-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com> 22279 22280 * expr.c (dtable_indent): Now static global. 22281 (expand_invoke): Now call invoke_build_dtable and 22282 build_invokevirtual. 22283 (invoke_build_dtable, build_invokevirtual): New functions. 22284 * jcf-io.c (find_class): Defer issuing a warning by setting 22285 jcf->outofsynch to 1. 22286 * jcf-parse.c (jcf_out_of_synch): New function. 22287 (load_class): Test this_jcf.outofsynch flag and call 22288 jcf_out_of_synch accordingly. 22289 * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in 22290 comment indentation. 22291 * lex.c (java_get_unicode): Fixed code indentation. 22292 (java_lex): Create string literal. Fixed typo. Removed several 22293 premature obstack_free. 22294 * parse.h: New enums for name resolution and invocation mode. 22295 (struct qualification): New data structure. 22296 (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros. 22297 (do_resolve_class, build_method_invocation_stmt, 22298 breakdown_qualified, qualify_ambiguous_name, resolve_and_layout, 22299 debug_line, identical_subpath_p, invocation_mode, 22300 refine_accessible_methods_list, build_invoke, 22301 lookup_method_invoke): New functions declared. 22302 (build_invokevirtual, invoke_build_dtable, match_java_method, 22303 build_field_ref, jcf_out_of_synch): New references to external 22304 functions. 22305 (struct parse_ctxt): Removed artificial_constructor field. 22306 * parse.y: (array_type:): Type defined for this rule. 22307 (class_type:): Installed default rule for interface_type:. 22308 (array_type:): Now build Java array type. 22309 (qualified_name:): Now use obstack_grow0. 22310 (method_declaration:): Skip the artificial constructor added to 22311 the list, if any. 22312 (abstract_method_declaration:): Execute the code only during pass 1. 22313 (block:): Installed default rule in block_statements:. 22314 (block_statement:): Add the statement to the method during pass 2. 22315 (statement_expression): Installed default rule for 22316 method_invocation:. 22317 (argument_list:): Added code to build the argument list. 22318 (method_invocation:): Added call to create the method invocation 22319 node. 22320 (yyerror): Now use obstack_grow0. Removed bogus obstack_free. 22321 (debug_line): New function for debug. 22322 (complete_class_decl): No longer do something during pass 1. 22323 (method_header): Use BUILD_PTR_FROM_NAME. 22324 (parser_qualified_classname): Use obstack_grow0. Removed bogus 22325 obstack_free. 22326 (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified 22327 function's main comment. 22328 (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete 22329 classes. 22330 (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types. 22331 (resolve_class): Now works with arrays. 22332 (do_resolve_class, resolve_and_layout): New functions. 22333 (java_check_regular_methods): Reverse method list before and after 22334 having processed it. No longer set ctxp->artificial_constructor. 22335 (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch 22336 accordingly. Fixed typo in issued error message. Now use 22337 obstack_grow0. 22338 (find_in_imports_on_demand): Now use obstack_grow0. 22339 (declare_local_variables): Use BUILD_PTR_FROM_NAME. 22340 (source_end_java_method): Call expand_expr_stmt instead of 22341 expand_expr. Calls it before calling expand_function_end. 22342 (java_method_add_stmt): Do nothing if errors were found during 22343 parsing. 22344 (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo. 22345 (build_method_invocation_stmt, build_invoke, invocation_mode, 22346 lookup_method_invoke, refine_accessible_methods_list, 22347 qualify_ambiguous_name, breakdown_qualified, identical_subpath_p): 22348 New functions. 22349 * typeck.c (build_java_signature): Properly end method signature 22350 if return type skipped. 22351 (match_java_method): New function. 22352 223531998-03-16 Per Bothner <bothner@cygnus.com> 22354 22355 * jcf-io.c (find_classfile): If USE_JCF_STDIO, fopen in binary mode. 22356 223571998-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com> 22358 22359 * expr.c (build_invoke_non_interface): New function. 22360 (methods_ident, ncode_ident): Now static globals. 22361 (expand_invoke): Use build_invoke_non_interface. 22362 * java-tree.h (struct lang_decl): New field function_decl_body. 22363 (DECL_FUNCTION_BODY): New macro. 22364 * jcf-parse.c (jcf_parse_source): Deeper check before setting 22365 CLASS_FROM_SOURCE_P. 22366 (parse_source_file): Fixed typos. Call java_layout_parsed_class 22367 before starting pass 2. Call to java_generate_parsed_class replaced 22368 by java_register_parsed_class. 22369 * lex.c: Fixed typo in header. Some line width related formating. 22370 * lex.h: Some line width related formating. 22371 * parse.h (source_end_java_method, resolve_expression_name, 22372 complete_class_decl, maybe_create_class_interface_decl, 22373 check_class_interface_creation): New static function declarations. 22374 (java_layout_parsed_class, java_method_add_stmt): New function 22375 declarations. 22376 (struct parser_ctxt): Field mark_class_generate removed. New 22377 fields class_list and artificial_constructor. 22378 * parse.y: Fixed typo in header. 22379 (class_declaration:): Call complete_class_decl when class body 22380 parsed. 22381 (method_declaration:): Call source_end_java_method in pass 2 when 22382 the method body is defined. 22383 (postfix_expression:): Do expression name resolution on sub-rule 22384 name during pass 2. 22385 (create_class, create_interface): Merged common pieces. 22386 (check_class_interface_creation, maybe_create_class_interface_decl): 22387 New functions. 22388 (complete_class_decl): New function. 22389 (register_fields): Fixed line width related typo. 22390 (method_header): Correctly skip first argument when fixing 22391 argument line. Changed the loop. 22392 (java_check_circular_reference): Now use ctxp->class_list. 22393 (java_complete_class): Removed start/stop marking. 22394 (java_check_regular_methods): Now takes a class decl as an 22395 argument. Add default constructor if none were encountered. 22396 (java_check_methods): Now use ctxp->class_list. Changed call to 22397 java_check_regular_methods. 22398 (source_start_java_method): Set DECL_ARG_TYPE for each function 22399 arguments. 22400 (source_end_java_method, java_method_add_stmt): New functions. 22401 (java_generate_parsed_class): No longer exists. 22402 (java_layout_parsed_class, java_register_parsed_class): New functions. 22403 (resolve_expression_name): New function. 22404 224051998-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com> 22406 22407 * jcf-parse.c: (parse_source_file): Check on errors after init lex. 22408 * lex.c: (java_init_lex): Defer ctxp->java_pass initialization 22409 until pass initializations are done. Call read_import_dir with 22410 pass set to 0. 22411 * parse.h: (lookup_modifier_cl): New function declared. 22412 (INTERFACE_FIELD_MODIFIERS): New macro. 22413 (OBSOLETE_MODIFIER_WARNING): New macro. 22414 * parse.y: (register_fields): Class type and current field name in 22415 local variables. Check modifier(s) if adding field(s) to an interface. 22416 (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING 22417 and report errors using the faulty modifier line context. 22418 (lookup_modifier_cl): New function. 22419 (read_import_dir): Detect and report default import processing 22420 failure. 22421 224221998-02-11 Brendan Kehoe <brendan@cygnus.com> 22423 22424 Add a pair of -fassume-compiled/-fno-assume-compiled options. 22425 * class.c (is_compiled_class): Return 1 after making sure it 22426 qualifies as loaded, if FLAG_ASSUME_COMPILED is set. 22427 * lang-options.h: Add -fassume-compiled/-fno-assume-compiled. 22428 * java-tree.h (flag_assume_compiled): Add decl. 22429 * lang.c (lang_f_options): Add the flag. 22430 (flag_assume_compiled): Add decl, default to 0. 22431 224321998-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 22433 22434 * class.c (class_depth): Call to load_class uses extra VERBOSE arg. 22435 (is_compiled_class): Likewise. 22436 (layout_class): Likewise. 22437 (layout_class): Detect and lay out classes defined in source code. 22438 (interface_of_p, add_interface_do, may_add_interface): New 22439 function. 22440 (add_interface): Now use add_interface_do. 22441 (add_method_1): New function. 22442 (add_method): Now use add_method_1. 22443 (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG. 22444 (complete_start_java_method): New function. 22445 (start_java_mehod): Now call complete_start_java_method. 22446 * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg. 22447 (expand_invoke): Likewise and fixed typo. 22448 *gjava.c: (print_super_field): Use new argument to find_class 22449 DO_CLASS_FILE. 22450 (main): Likewise. 22451 *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE. 22452 (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME, 22453 QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on 22454 IDENTIFIER_NODE. 22455 (CLASS_COMPLETE_P): New flag on TYPE_DECL. 22456 (add_method_1, push_class): New prototypes. 22457 *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument. 22458 *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip 22459 directory where the class was found. 22460 (find_class): New argument DO_CLASS_FILE. Function find_class 22461 modified accordingly. 22462 *jcf-parse.c: (fix_class_path): New function. 22463 (load_class): Use new VERBOSE argument. load_class now finds and 22464 loads/parses .class/.java files. Save read_state of current_jcf 22465 if necessary. 22466 (java_parser_abort_on_error): New macro. 22467 (jcf_parse_source, parse_source_file): New function. 22468 (jcf_parse): Fixed typo. 22469 (yyparse): Call parse_source_file () only. 22470 (process_zip_dir): Fixed typo, fix zdir->filename_length when 22471 writing the real class name back in the zip directory entry. 22472 (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null. 22473 (jcf_figure_file_type): Fixed bogus alloc and bcopy. 22474 *jcf.h: (typedef struct JCF): New fields java_source and zipd. 22475 (find_class): Prototype fixed. 22476 *lex.c: Added 1998 time stamp. 22477 Removed all static global variables, moved into the parser 22478 context data structure.. Now include unistd.h if SEEK_SET not 22479 defined. 22480 (java_init_lex): Rewritten. 22481 (java_sneak_unicode): Modified current unicode access in current line. 22482 (java_unget_unicode): Likewise. 22483 (java_allocate_new_line): New allocation management. 22484 (java_read_char): Modified access and storage of unget_utf8_value. 22485 New way of processing current unicode. 22486 (java_store_unicode, java_read_unicode): Fixed typo in declaration. 22487 (java_get_unicode): Now use the parser context. 22488 (java_lineterminator): Likewise. 22489 (java_lex): Now used java_lval argument (pointer to YYSTYPE), part 22490 of the reentrant parser implementation. Function now use the 22491 parser context data structure and java_lval. Fixed production of 22492 the float and double constant "out of range" error message. Fixed 22493 obstack use. Return integer value when hitting a modifier. Now 22494 return type for TRUE, FALSE and other predefined types. Return 22495 identifier as a TREE_LIST list containing the current line context 22496 as the TREE_VALUE sub-node. 22497 (java_unicode_2_utf8): Fixed typo in declaration. 22498 (java_lex_error): Now use the parser context data structure. 22499 *lex.h: Added 1998 time stamp. 22500 (struct java_line): New fields ref_count and next. 22501 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN, 22502 JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros. 22503 (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed. 22504 *parse.h: Added 1998 time stamp. 22505 (java_parse_source_file): Renamed from parse_source_file. 22506 (YYERROR_NOW, YYNOT_TWICE): Fixed. 22507 (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS, 22508 INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS, 22509 JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL, 22510 THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS, 22511 END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class, 22512 CLASS_OR_INTERFACE, INCOMPLETE_P): New macros. 22513 (struct parser_ctxt): New data structure to keep the parser context. 22514 *parse.y: Added 1998 time stamp, got rid of static global variables. 22515 (java_error_count, ctxp): New global variables. 22516 (%union): New value field. 22517 (numeric_type, integral_type): Rules removed. 22518 (primitive_type): Rule defined to handle integral, float, double and 22519 boolean types. 22520 (qualified_name, package_declaration, 22521 single_type_import_declaration, type_import_on_demand_declaration, 22522 modifiers, class_declaration, super, interfaces, 22523 interface_type_list, class_body, field_declaration, 22524 field_declaration, variable_declarators, variable_declarator, 22525 variable_declarator_id, method_declaration, method_header, 22526 formal_parameter_list, formal_parameter, method_body, block, 22527 static, interface_declaration, extends_interfaces, 22528 abstract_method_declaration, local_variable_declarators): Rules now 22529 define actions. 22530 (force_error, do_warning): New global statics. 22531 (push_parser_context, parser_context_save_global, 22532 parser_context_restore_global, pop_parser_context): New functions. 22533 (yyerror): Now uses the global parser context. Fixed use of obstack. 22534 (parse_error, parse_error_context, parse_warning_context, 22535 java_accstring_lookup, redefinition_error, check_modifiers, 22536 parser_add_interface, create_interface, create_class, find_field, 22537 duplicate_declaration_error, register_fields, method_header, 22538 check_modifiers_consistency, check_abstract_method_header, 22539 method_declarator, parser_qualified_classname, 22540 parser_check_super_interface, parser_check_super, 22541 parser_chain_incomplete_item, java_check_circular_reference, 22542 layout_class_from_source, java_complete_class, 22543 complete_method_decl, resolve_class, complete_class_report_errors, 22544 java_check_final, check_method_redefinition, 22545 java_check_regular_methods, java_check_abstract_methods, 22546 java_check_methods, lookup_java_interface_method2, 22547 lookup_java_method2, lookup_cl, find_name_in_single_imports, 22548 process_imports, find_in_imports, read_import_entry, 22549 read_import_dir, find_in_imports_on_demand, 22550 check_pkg_class_access, not_builtin_p, declare_local_variables, 22551 source_start_java_method, java_generate_parsed_class): New 22552 functions. 22553 *typeck.c: (signature_include_return): New global variable. 22554 (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether 22555 to add the function returned type in the signature. 22556 225571998-02-09 Brendan Kehoe <brendan@cygnus.com> 22558 22559 * jcf-io.c (open_in_zip): Use strncmp and LEN. 22560 225611998-01-29 Dave Brolley <brolley@cygnus.com> 22562 22563 * Make-lang.in (java.info): Added. 22564 (java.install-info): Added 22565 225661998-01-27 Brendan Kehoe <brendan@cygnus.com> 22567 22568 * Makefile.in (clean): Also remove java/parse.c. 22569 225701998-01-26 Brendan Kehoe <brendan@cygnus.com> 22571 22572 Add a pair of -fbounds-check/-fno-bounds-check options. 22573 * lang.c (lang_decode_option): Add code to grok arguments. 22574 (flag_bounds_check): Add decl. 22575 (lang_f_options): New array w/ the option in it. 22576 * java-tree.h (flag_bounds_check): Add decl. 22577 * lang-options.h: New file. 22578 * expr.c (build_java_arrayaccess): Use flag_bounds_check instead 22579 of a static macro value. 22580 (JAVA_ARRAY_EXCEPTION): Delete macro. 22581 225821998-01-23 Per Bothner <bothner@cygnus.com> 22583 22584 * typeck.c (build_java_array_type): Fix two bugs in previous change. 22585 * expr.c (build_anewarray): Add missing promote_type. 22586 225871998-01-22 Per Bothner <bothner@cygnus.com> 22588 22589 Add array types with known length to optimize bounds checking. 22590 * typeck.c (build_java_array_type): Take length parameter. 22591 (java_array_type_length, build_prim_array_type): New functions. 22592 * java-tree.h: Update for new functions. 22593 * expr.c, typeck.c, verify.c: Update build_java_array_type calls. 22594 * class.c: Use build_prim_array_type. 22595 * expr.c (can_widen_reference_to): Handle known-length array types. 22596 (verify_jvm_instructions): Keep track of integer push instructions 22597 followed by newarray/anewarray, so we can build known-length arrays. 22598 (JAVA_ARRAY_DATA_OFFSET): Replace by ... 22599 (java_array_data_offset): New function. 22600 (build_java_array_length_access): New function. Optimize if constant. 22601 (build_java_arrayaccess): Constant fold bounds check. 22602 (expand_java_newarray, expand_java_anewarray): Replaced by ... 22603 (build_newarray, build_anewarray): New functions. 22604 (ARRAY_NEW_NUM, ARRAY_NEW_PTR): Use build_{a,}newarray. 22605 * verify.c (merge_types): Handle known-lengh array types. 22606 226071998-01-19 Per Bothner <bothner@cygnus.com> 22608 22609 * expr.c (expand_byte_code): Fix performace bug, which caused 22610 searching linenumber_table to be linear rather than constant. 22611 226121997-12-12 Per Bothner <bothner@cygnus.com> 22613 22614 * Makefile.in (BISON, BISONFLAGS): Add missing macros. 22615 22616 * decl.c, java-tree.h (soft_fmod_node): New global. 22617 * decl.c (init_decl_processing): Define __builtin_fmod. 22618 * expr.c (build_java_binop): Implement TRUNC_MOD_EXPR for REAL_TYPE 22619 using __builtin_fmod. 22620 226211997-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com> 22622 22623 * keyword.h: New file, output of keyword.gperf as processed by 22624 gperf. 22625 * lex.c (java_lex_init): Initialize java_error_flag. 22626 * parse.c (YYERROR_NOW): Uses java_error_flag. 22627 * parse.y: New static java_error_flag. Useless definition of 22628 buffer_error gone. 22629 * parse.y (java_error): Portable error recovery using 22630 java_error_flag (not yet completely tuned). 22631 226321997-12-04 Brendan Kehoe <brendan@lisa.cygnus.com> 22633 22634 * Makefile.in (parse.c): Use $(srcdir) for parse.y. 22635 226361997-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com> 22637 22638 * Makefile.in: (JAVA_OBJS): New object jcf-parse.o. 22639 (parse.c, lex.c, keyword.h): New rules for Java source code 22640 front-end. 22641 * parse.c: Renamed into jcf-parse.c. 22642 * jcf-parse.c (yyparse): Invoke the parser to process Java source code. 22643 * keyword.gperf: New file, Java keywords. 22644 * parse.y: New file, Java language grammar. 22645 * parse.h: New file, Java language grammar definitions. 22646 * lex.c: New file, Java language lexer. 22647 * lex.h: New file, Java language lexer definitions. 22648 226491997-12-03 Per Bothner <bothner@cygnus.com> 22650 22651 * decl.c (clinit_identifier_node), java-tree.h: New global. 22652 * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P): Removed. 22653 * verify.c (verify_jvm_instructions): Inline use of removed macros. 22654 * expr.c (expand_java_field_op): Check for invalid assignment 22655 to final field. 22656 22657 * jcf-reader.c (get_attribute): Test for wrong attribute length. 22658 226591997-10-27 Per Bothner <bothner@cygnus.com> 22660 22661 * verify.c (verify_jvm_instructions): When processing a handler, 22662 attempt to set the current_subr to the right value. 22663 (More complicated code combines Sep 17 and Oct 22 versions.) 22664 226651997-10-24 Per Bothner <bothner@cygnus.com> 22666 22667 * class.c (push_class): Figure out (guess) name of source file. 22668 * parse.c (set_source_filename): Set DECL_SOURCE_FILE of class decl. 22669 (give_name_to_class): Don't guess source name; use DECL_SOURCE_FILE. 22670 (parse_class_file): Change return type from int to void. 22671 Call debug_start_source_file/debug_end_source_file. 22672 22673 * expr.c (build_java_binop): Fix masking 2nd operand. 22674 * decl.c (init_decl_processing): Set sizetype first. 22675 226761997-10-22 Per Bothner <bothner@cygnus.com> 22677 22678 * verify.c (verify_jvm_instructions): Don't set current_subr to NULL. 22679 (Revert Sep 17 change.) 22680 226811997-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com> 22682 22683 * parse.c (process_zip_dir): Skip ZIP entries not bearing the 22684 .class extension in their name and fix thing so we don't process 22685 them parse_zip_file_entries(). 22686 (parse_zip_file_entries): Cleaned unused local variables. 22687 226881997-10-20 Per Bothner <bothner@cygnus.com> 22689 22690 * expr.c (can_widen_reference_to): Allows equal array element types. 22691 (expand_byte_code): PRE_RET must expand OPERAND_VALUE (to get index). 22692 * jcf-dump.c (RET): Get (and print) index. 22693 22694 * verify.c (verify_jvm_instructions case OPCODE_anewarray): 22695 Promote element type to POINTER_TYPE. 22696 226971997-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 22698 22699 * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir, 22700 find_in_current_zip, jcf_figure_file_type): Moved from 22701 jcf-reader.c to parse.c. 22702 * zextract.c: (read_zip_archive): takes file_comment_length possible 22703 field into account. 22704 227051997-10-20 Per Bothner <bothner@cygnus.com> 22706 22707 * verify.c (verify_jvm_instructions): Var can also be promoted to int. 22708 22709 * verify.c (merge_types): Handle array types even better ... 22710 227111997-10-17 Per Bothner <bothner@cygnus.com> 22712 22713 * expr.c (java_stack_pop): Fix use of NULL_TREE for TYPE_SECOND. 22714 22715 * java-tree.h (PUSH_FIELD): Set DECL_ARTIFICIAL. 22716 * class.c (make_class_data): Don't build fields_decl if no fields. 22717 When building fields_decl, skip if DECL_ARTIFICIAL. 22718 22719 * expr.c (java_stack_swap): Update stack_type_map. 22720 * verify.c (merge_types): Handle array types better. 22721 227221997-10-15 Per Bothner <bothner@cygnus.com> 22723 22724 * class.c (add_field): Don't promote short integral fields to 22725 int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't. 22726 * expr.c (push_value): Promote and convert short integral values. 22727 22728 * decl.c, java-tree.h (integer_two_node): New constant node. 22729 * verify.c (merge_types): Check for TYPE_RETURN_ADDR. 22730 227311997-10-15 Alexandre Petit-Bianco <apbianco@cygnus.com> 22732 22733 * class.c (append_gpp_mangled_type): Use function argument 22734 unpromoted type to generate mangled name. 22735 227361997-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com> 22737 22738 * constants.c (build_constant_data_ref): Now uses current_class 22739 instead of main_class. 22740 (build_constants_constructor): Now uses current_class instead of 22741 main_class. 22742 * zipfile.h: (struct ZipFileCache): Now defined here. Declaration 22743 of the global variable SeepZipFiles done here. 22744 * zextract.c (read_zip_archive): extra_field optional field taken 22745 into account while computing the position of the class file in the 22746 archive. 22747 * verify.c (verify_jvm_instructions): Use current_jcf to search 22748 the constant pool. 22749 * parse.c (load_class): First search for the class to load in the 22750 current zip file. Saves current_jcf (restored before returning 22751 from that function). Don't call JCF_FINISH in the class was found 22752 in the current ZIP file. 22753 (jcf_parse): If the class was found in the current ZIP file, save 22754 its tree_constant_pool (for later reuse). 22755 (parse_class_file): New function. Process each method defined in 22756 the current class and record the class as to be later registered. 22757 (yyparse): Rewritten. Figure the type of the current file and switch 22758 accordingly. 22759 * lang.c: New global variable current_jcf. 22760 (lang_init): Removed compiling_from_source test (done later, in 22761 yyparse). Removed call the jcf_parse (). 22762 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values. 22763 (typedef struct JCF): New fields seen_in_zip (to mark a class found 22764 in the current ZIP file) and zip_offset (offset to the class data in 22765 the current zip file). 22766 * jcf-reader.c: zipfile.h included. 22767 localToFile: New ZipFileCache static global variable 22768 (parse_zip_file_entries): New function. Browse the current ZIP 22769 file directory and process each class found. 22770 (process_zip_dir): New function. Register each class found in the 22771 ZIP file directory. The class aren't parsed but a valid JCF is 22772 link to each of them. 22773 (find_in_current_zip): New function. Search for a class in the 22774 current ZIP file directory. If found, prepare the class so that it 22775 can be loaded. 22776 (jcf_figure_file_type): New function. Examine the file structure 22777 to figure a class file, a ZIP file. If none of these categories are 22778 matched, a source file is assumed. 22779 * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h). 22780 SeenZipFile: New global variable. 22781 (open_in_zip): Use zipmember's length to accelerate the search for 22782 a member. If zipmember was NULL and zip file successfully read, 22783 return 0. 22784 * java-tree.h: New global variable current_jcf declared. Added 22785 declaration for current_constant_pool_tags, current_constant_pool_data, 22786 current_constant_pool_length, current_constant_pool_data_ref. 22787 (struct lang_type): Augmented with two fields. struct JCF *jcf (to 22788 store the JCF of classes seen in a zip file) and tree *constant_pool 22789 (to save a loaded class constant pool). current_class declared here. 22790 * expr.c (expand_invoke): Use current_jcf instead of main_jcf to 22791 retrieve method_ref_constant. 22792 (PUSHC): java_push_constant_from_pool now uses current_jcf. 22793 (OBJECT): get_class_constant now uses current_jcf. 22794 (ARRAY_NEW_PTR): get_class_constant now uses current_jcf. 22795 (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf. 22796 (expand_invoke): Now uses current_class instead of main_class 22797 (build_class_init): Now uses current_class instead of main_class 22798 * class.c: New static global variable registered_class. 22799 (register_class): New function. 22800 (emit_register_class): Modified to use registered_class instead of 22801 main_class 22802 (is_compiled_class): Now take into account class seen in the archive. 22803 228041997-10-06 Per Bothner <bothner@cygnus.com> 22805 22806 * except.h: Renamed to: java-except.h. 22807 * parse.c, except.c, expr.c, verify.c: Update #include accordingly. 22808 * except.c: Add semi-working (commented out) implementation. 22809 22810 * expr.c (expand_iinc): Add needed flush_quick_stack. 22811 * parse.c (set_source_filename): New function. 22812 (give_name_to_class): Set input_filename from package.classname.java. 22813 22814 * jcf-io.c (find_class): Don't look first in ".". 22815 228161997-10-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 22817 22818 * zextract.c (read_zip_archive): Now takes into account the 22819 extra_field field. 22820 * expr.c (can_widen_reference_to): Modified to handle sub-interfaces. 22821 228221997-09-20 Per Bothner <bothner@cygnus.com> 22823 22824 * constants.c, java-tree.h (build_internal_class_name): New function. 22825 (alloc_class_constant): Re-implement using build_internal_class_name. 22826 * class.c (make_class_data): Likewise. 22827 * class.c (hashUtf8String): Make hash algorithm match String.hashCode. 22828 228291997-09-17 Per Bothner <bothner@cygnus.com> 22830 22831 * verify.c (verify_jvm_instructions): Temporarily set current_subr 22832 to NULL before pushing an exception handler target. 22833 22834 * expr.c (flush_quick_stack): Save from low stack indexes to high. 22835 (java_stack_swap, java_stack_dup): Re-write to be safe from 22836 clobbering registers. 22837 (build_class_init): New function. 22838 228391997-09-17 Alexandre Petit-Bianco <apbianco@cygnus.com> 22840 22841 * typeck.c (build_java_array_type): Temporary use 22842 permanent_obstack to create the array 'length' field. 22843 * expr.c (lookup_label): Temporay use permanent_obstack to create 22844 label if not found. 22845 * class.c (push_super_field): Tempory use permanent_obstack. 22846 228471997-09-15 Alexandre Petit-Bianco <apbianco@cygnus.com> 22848 22849 * typeck.c (type_for_mode): Now handles double_type_node and 22850 float_type_node. 22851 * verify.c (verify_jvm_instructions): The instruction following 22852 the wide bytecode is checked. OPCODE_ret added to the list of 22853 wide. 22854 228551997-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com> 22856 22857 * class.c (make_class): Temporary use permanent_obstack. Set the 22858 class CLASS_P field to 1. 22859 (push_class): Temporary use permanent_obstack. 22860 (set_super_info): Temporary use permanent_obstack. 22861 (add_method): Temporary use permanent_obstack, set 22862 METHOD_TRANSIENT(). 22863 (add_field): Temporary use permanent_obstack. Sets 22864 FIELD_VOLATILE() and FIELD_TRANSIENT(). 22865 (build_class_ref): Temporary use permanent_obstack if the class 22866 isn't compiled. 22867 (build_static_field_ref): Temporary use permanent_obstack when 22868 creating field's rtl. 22869 (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT, 22870 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods 22871 and fields. Function finalized, as far as flag handling. 22872 (push_class_static_dummy_field): Temporary use permanent_obstack. 22873 (emit_register_class): Force generation of class registration at 22874 -O3 or deeper. 22875 * decl.c (end_java_method): Call permanent_allocation() before 22876 returning. 22877 * expr.c (can_widen_reference_to): Added comment to interface 22878 handling, fixed typo. 22879 (lookup_field): Now uses CLASS_P() to correct FIXME 22880 (expand_invoke): Verification on public && !static && 22881 !abstract moved into soft_lookupinterfacemethod (kaffe). 22882 Use Object class dtable if objectref is an array when expanding 22883 invokeinterface. 22884 (java_push_constant_from_pool): Temporary use permanent_obstack 22885 for CONSTANT_string 22886 * parse.c (get_ref_constant): Temporary use permanent_obstack to 22887 create constant references. 22888 (get_constant): Temporary use permanent_obstack to create constant. 22889 (load_class): Temporary use permanent_obstack to load class. 22890 (jcf_parse): Temporary use permanent_obstack to perform class 22891 layout. 22892 * typeck.c: (parse_signature_string): Temporary use permanent_obstack. 22893 (build_java_signature): Temporary use permanent_obstack. 22894 * verify.c: (verify_jvm_instruction): removed unnecessary verification 22895 on ACC_SUPER flag. 22896 * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined. 22897 (FIELD_VOLATILE, FIELD_TRANSIENT): Defined. 22898 (CLASS_P): Defined 22899 229001997-09-11 Per Bothner <bothner@cygnus.com> 22901 22902 * class.c (append_gpp_mangled_type): Fix typo. 22903 (emit_register_class): Use main_class to get class object, rather 22904 than looking for no-longer-existing static decl starting with _CL. 22905 * typeck.c (parse_signature_type): Promote array element type 22906 if it is a RECORD_TYPE. 22907 229081997-09-10 Per Bothner <bothner@cygnus.com> 22909 22910 * class.c (push_class_static_dummy_field): New function. 22911 (mangle_static_field): New. Do G++-style mangling of static fields. 22912 (layout_class): Mandle static fields here, not in add_field. 22913 (build_class_ref): The class object is now a dummy static field. 22914 * decl.c (find_local_variable): Look for best, instead of first match. 22915 * expr.c (push_type): Always promote_type, not just for RECORD_TYPE. 22916 (build_java_athrow): Don't check here if exception is Throwable. 22917 * java-tree.h (TYPE_UNSET): Renamed to TYPE_UNKNOWN. 22918 (TYPE_USED): Removed. No longer used ... 22919 * parse.c (jcf_parse): Call push_class_static_dummy_field. 22920 * verify.c (push_pending_label): New function. 22921 (push_pending_block): Renamed to check_pending_block. 22922 (merge_types): Remove unneeded suuport for TYPE_UNUSED. 22923 (verify_jvm_instructions): Only reset prev_eh_ranges (to force 22924 re-checking possible handlers) after a store (less wasted work). 22925 Check for null handler (finally) before calling add_handler. 22926 Various changes to (finally?) correctly handle try/finally. 22927 229281997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com> 22929 22930 * class.c: Include stdio.h. 22931 229321997-09-04 Per Bothner <bothner@cygnus.com> 22933 22934 * expr.c (expand_invoke): Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS) 22935 to make sure class is initialized before static/special invoke. 22936 22937 * verify.c (verify_jvm_instructions): On a store instruction, 22938 call find_local_variable to force pre-allocation of decl and rtx. 22939 * decl.c (push_jvm_slot): Set DECL_REGISTER on stack slots. 22940 229411997-09-03 Per Bothner <bothner@cygnus.com> 22942 22943 * class.c (build_class_ref): Strip off "promoted_" if need be. 22944 (make_field_value): Call build_java_signature when needed. 22945 (layout_class): Don't make_function_rtl if METHOD_ABSTRACT. 22946 * expr.c (build_java_athrow): Don't push_value of exception. 22947 (build_java_binop): Implement COMPARE_L_EXPR and COMPARE_G_EXPR to 22948 match specification of [fd]cmp[lg] for NaNs. 22949 (expand_byte_code): Add support for exception handler ranges. 22950 * except.c: Add skeleton for EH code-generation. 22951 * verify.c (merge_types): Treat all promoted integral types as equal. 22952 * constants.c (build_constants_constructor): To force creation of 22953 current_constant_pool_data_ref, call build_constant_data_ref. 22954 22955 * javaop.def (lload): Fix typo. 22956 * jcf-dump.c (main): Clear filename to prevent possibly-bad free. 22957 229581997-09-02 Brendan Kehoe <brendan@lisa.cygnus.com> 22959 22960 * parse.c: Don't include function.h. 22961 229621997-08-27 Per Bothner <bothner@cygnus.com> 22963 22964 * except.[ch]: New files. 22965 * Makefile.in (JAVA_OBJS): Add except.o 22966 * expr.c: Temporary warning about unimplemented exceptions. 22967 * verify.c: Verify exception handlers. 22968 22969 * jcf-dump.c (disassemble_method): Print exception table. 22970 229711997-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com> 22972 22973 * expr.c (verify_jvm_instructions): Started a thorough 22974 verification of invoke* bytecodes. 22975 (expand_byte_code): flush quick stack if PC is the target of a 22976 branch. and undef RET (conflicting with config/i386/i386.h). 22977 (expand_java_arrayload): Fixed bogus cast, when Boolean type is 22978 used. 22979 (expand_invoke): Now handles invokeinterface and do more 22980 verification according to the bytecode. 22981 (lookup_field): Don't try to load the class if processing 22982 dtable_type. 22983 (can_widen_reference_to): Now handles interfaces. 22984 * decl.c (init_decl_processing): New global variable 22985 soft_lookupinterfacemethod_node, declared in java-tree.h. 22986 Call set_super_info on string_type_node. 22987 * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now 22988 defined. 22989 * class.c (set_super_info): Fills the CLASS_* flags according to 22990 access_flags. 22991 (get_access_flags_from_decl): Handles all class flags. 22992 229931997-08-26 Per Bothner <bothner@cygnus.com> 22994 22995 * class.c (add_method): Zero out newly-allocated DECL_LANG_SPECIFIC. 22996 * parse.c (yyparse): Check for abstract method, and missing code. 22997 * expr.c (expand_byte_code): Change interface. 22998 * lang.c (put_decl_node): Print promoted types prettier. 22999 * verify.c (verify_jvm_instruction): Change interface. 23000 Partial support for scanning exception table. 23001 For load instructions, handle promoted integral types. 23002 230031997-08-21 Per Bothner <bothner@cygnus.com> 23004 23005 * verify.c: New file, with contents moved from expr.c. 23006 * expr.c: Bunch of stuff (mostly verification) moved to verify.c. 23007 * typeck.c (is_array_type_p): Moved here from expr.c. 23008 * java-tree.h: Add some now-needed function declarations. 23009 * Makefile.in (JAVA_OBJS): Added verify.o. 23010 230111997-08-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 23012 23013 * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the 23014 METHOD_ABSTRACT flag. 23015 23016 * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4. 23017 (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros. 23018 (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5 23019 23020 * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global 23021 variables. 23022 (start_java_method): Hook for SYNCHRONIZED methods. 23023 23024 * expr.c (build_java_jsr, build_java_ret): New functions 23025 (JSR,PRE): New macros 23026 (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured. 23027 (verify_jvm_instructions): tableswitch, lookupswitch, 23028 monitorenter, monitorexit, goto_w: verified. 23029 (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label 23030 (build_java_monitor): New function. 23031 (MONITOR_OPERATION): Modified to call build_java_monitor() 23032 (verify_jvm_instructions): Started a thorough verification of 23033 invoke* bytecodes. 23034 230351997-08-19 Per Bothner <bothner@cygnus.com> 23036 23037 Support verification of jsr/ret subroutines (used for try/finally). 23038 * decl.c (return_address_type_node): New type node. 23039 * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE, 23040 RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR, 23041 LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED): New macros. 23042 (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED, 23043 TYPE_USED): New macros for special types in type_map. 23044 23045 * java-tree.h (BCODE_JUMP_TARGET): Renamed to BCODE_TARGET. 23046 (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET): Replaced by 23047 BCODE_JUMP_TARGET. 23048 * expr.c (expand_byte_code): Fix logic to warn of unused instructions. 23049 23050 * expr.c (can_widen_reference_to): New function. 23051 (pop_type): Use it. 23052 (merge_type_state): Support handling start of subroutine. 23053 (push_pending_block): Return char* error message, instead of calling 23054 fatal on an error. Also handle subroutines. 23055 (verify_jvm_instructions): Handle errors from push_poending_block. 23056 Support jsr and ret instructions. 23057 230581997-08-19 Per Bothner <bothner@cygnus.com> 23059 23060 * jcf-io.c (find_classfile): Fix thinko. 23061 * jcf-dump.c: Add CONVERT2 (to match changed javaop.def). 23062 230631997-08-12 Jason Merrill <jason@yorick.cygnus.com> 23064 23065 * Makefile.in (BISON): Remove. 23066 230671997-08-07 Per Bothner <bothner@cygnus.com> 23068 23069 * Makefile.in: Convert to autoconf. 23070 * config-lang.in (outputs): Added java/Makefile. 23071 23072 * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in: 23073 Rename cc1java to jc1. 23074 23075 * lang.c (init_parse, finihs_parse): New functions #ifdef USE_CPPLIB. 23076 * Makefile.in (INTERNAL_CFLAGS): Add @extra_c_flags. 23077 23078 * class.c (class_depth): Do load_class if needed. 23079 23080 Mostly better verification. 23081 * decl.c (pushdecl): Set TYPE_STUB_DECL for a type. 23082 (init_decl_processing): Change return type of soft_checkcast. 23083 * expr.c (expand_java_CHECKCAST): Do push_value of the "casted" value. 23084 * lang.c (put_decl_string, put_decl_node, lang_printable_name, 23085 lang_print_error): New functions. 23086 (lang_init): Set global hook print_error_function to lang_print_error. 23087 * expr.c: In the type_map ptr_type_node is only used for null now. 23088 (pop_type, merge_types): Hence ptr_type_node matches any reference. 23089 (merge_types): Dererence pointer to record types before comparing. 23090 (decode_newarray_type, merge_types): On error just return NULL. 23091 (build_java_binop): Add preliminary implementation (with warning) 23092 for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]). 23093 (lookup_label): Set DECL_IGNORED_P (for dwarf2out). 23094 (expand_compare, expand_java_goto, expand_java_call): Don't 23095 push_pending_block, since that only makes sense when verifying. 23096 (merge_type_state): Different return codes. 23097 (push_pending_block): A block may need to be verified more than once. 23098 (expand_byte_code): Warn about unused code at code generation time. 23099 (verify_jvm_instruction): Changed logic, since code may need to be 23100 re-verified if type-state has changed. Also, better error handling. 23101 Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof. 23102 Improve newarray, anewarray, ?aload, athrow, 23103 * java-tree.h (LABEL_CHANGED): New macro. 23104 231051997-08-05 Alexandre Petit-Bianco <apbianco@cygnus.com> 23106 23107 * decl.c (soft_athrow_node): New global variable initialized. 23108 * javaop.def (i2b, i2c, i2s): Invoke CONVERT2 23109 * typeck.c (convert): Added support for REAL_TYPE. 23110 (convert_to_char): New function. 23111 (convert): Handle CHAR_TYPE. 23112 * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/ 23113 SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT. 23114 (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to 23115 promoted type. 23116 (verify_jvm_instructions): Added break a the end of bogus unop: label. 23117 (OPCODE_<b|c|s>astore): Pop an int operand from the type stack 23118 (OPCODE_<b|c|s>astore): Push the promoted type onto the stack 23119 (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b. 23120 (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified 23121 to Use The Right Things. 23122 (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as 23123 compatible with INT. BOOLEAN is made equivalent to BYTE. 23124 (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull, 23125 OPCODE_ifnonnull): Now supported. 23126 (build_java_athrow): New function. 23127 231281997-08-04 Per Bothner <bothner@cygnus.com> 23129 23130 Rename method name <init> to match G++ (and fix mangling). 23131 * class.c (layout_class): Replace method name of <init> by class name. 23132 (make_method_value): Do inverse renaming of constructor from <init>. 23133 * java-tree.h (DECL_CONSTRUCTOR_P): New macro. 23134 * typeck.c (lookup_java_constructor): New function. 23135 * expr.c (expand_invoke): If method_name is <init>, call 23136 lookup_java_constructor to find constructor. 23137 23138 * parse.c (get_constant): Handle CONSTANT_Float and CONSTANT_Double. 23139 231401997-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com> 23141 23142 * parse.c (get_class_constant): Modified to handle array "classes" 23143 * typeck.c (set_local_type): Bug fixed when filling type_map[] with 23144 wide type. 23145 (convert): Modified to handle real type. 23146 * java-tree.h (soft_badarrayindex_node, soft_anewarray_node, 23147 soft_multianewarray, soft_newarray_node, soft_throw_node): New global 23148 variables declared. 23149 * decl.c (soft_badarrayindex_node, soft_anewarray_node, 23150 soft_multianewarray, soft_newarray_node, soft_throw_node): New 23151 global variables initialized. 23152 (find_local_variable): Handles the case of a pointer 23153 (end_java_method): Restore the use of one more scope 23154 * expr.c (build_java_arraynull_check, build_java_arrayaccess, 23155 build_java_array_length_access, expand_java_arrayload, 23156 expand_java_arraystore, expand_java_array_length, 23157 expand_java_multianewarray, expand_java_anewarray, 23158 build_java_check_indexed_type, is_array_type_p, 23159 build_java_throw_out_of_bound_exception): New functions. 23160 (STORE_INTERNAL): Now forces type of the decl to be type of the value. 23161 (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore, 23162 OPCODE_<t>aload): Implemented code for verification. 23163 (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM 23164 ARRAY_NEW_MULTI): Macro defined. 23165 (CONVERT): Modified to invoke convert(). 23166 (case OPCODE_aload2): Fixed index typo from 2 to 1. 23167 231681997-07-31 Per Bothner <bothner@cygnus.com> 23169 23170 * class.c (push_class): Set DECL_ARTIFICIAL (for dbxout.c). 23171 (build_class_ref, is_compiled_class): Handle pointer-to-record types. 23172 (make_class_data): Field name needs '/' as package prefix. 23173 * expr.c (type_stack_dup, java_stack_dup): Fix fencepost errors. 23174 231751997-07-25 Per Bothner <bothner@cygnus.com> 23176 23177 Implement debug information for local variables. 23178 * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT, 23179 DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC, 23180 DECL_LOCAL_SLOT_CHAIN): New macros. 23181 (struct lang_decl_var): New type. 23182 * parse.c (give_name_to_locals): Move to decl.c. 23183 * decl.c (give_name_to_locals): Re-written to Do The Right Thing. 23184 (start_java_method): Re-write parameter handling. 23185 (pending_local_decls): New global variable. 23186 (push_jvm_slot, maybe_pushlevels, maybe_poplevels): New functions. 23187 (find_local_variable): Accept pc so we can skips decls not in range. 23188 (struct binding_level): Add end_pc field. 23189 * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels. 23190 (various): Change so current pc gets passed to find_local_variable. 23191 23192 * decl.c (init_decl_processing): Re-arrange fields in 23193 class_type_node and and method_type_node to match kaffe 0.9.1. 23194 * class.c (make_method_value, make_class_data): Update 23195 initializations to match. 23196 231971997-07-16 Per Bothner <bothner@cygnus.com> 23198 23199 * class.c (unicode_mangling_length, emit_unicode_mangled_name, 23200 append_gpp_mangled_name, append_gpp_mangled_type): New functions. 23201 (push_super_field): New function. 23202 (make_class_data): Handle inheritance of class static initializer. 23203 (layout_class): New name mangling. 23204 * constants.c (build_constant_data_ref): Init type of data array 23205 to a one-element array. 23206 (build_constants_constructor): Set DECL_SIZE from complete array type. 23207 * decl.c: Rename class_type, object_type etc to class_type_node, 23208 object_type_node etc. Make former inherit from latter. 23209 * expr.c (expand_invoke): Add cast of function address. 23210 * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE): New. 23211 * parse.c (yyparse): Don't call layout_class here. 23212 * typeck.c (build_java_array_type): Set TYPE_ARRAY_ELEMENT. 23213 232141997-06-14 Per Bothner <bothner@cygnus.com> 23215 23216 * decl.c, class.c: Update method type to match latest Kaffe snapshot. 23217 * constants.c (lookup_name_constant): Renamed to alloc_name_constant. 23218 (alloc_class_constant): New. 23219 * expr.c (expand_invoke): Make sure method's class is initialized. 23220 * class.c (interits_from_p, emit_register_class): New functions. 23221 * parse.c (yyparse): Call emit_register_class. 23222 232231997-06-09 Per Bothner <bothner@cygnus.com> 23224 23225 * constants.c: New file, to handle constant pool. 23226 * Makefile.in (JAVA_OBJS): Add constants.o. 23227 * decl.c (init_decl_processing): Update, fix, finish various structs. 23228 (pushdecl_top_level): New. 23229 * parse.c (layout_class): Moved to class.c. 23230 * expr.c (java_push_constant_from_pool): New function. 23231 * class.c (build_class_ref): Make work fully 23232 (make_class_data): Emit super-class, constant pool, interface vector. 23233 232341997-06-03 Per Bothner <bothner@cygnus.com> 23235 23236 java-tree.h (DECL_SIGNATURE, BCODE_EMITTED): Remove. 23237 (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P): New. 23238 * class.c (class_depth): New function. 23239 (lookup_named_class): Replaced by new function lookup_class. 23240 * decl.c (object_type_node, string_type_node): New. 23241 Remove various types that we no longer need. 23242 * expr.c (verify_jvm_instructions): New separate verifier pass. 23243 (push_type, pop_type): New functions for verifier. 23244 (type_stack_dup, pop_argument_types, merge_types): Likewise. 23245 (expand_byte_code): Simplify, since we assume already verified. 23246 (expand_invoke): Now mostly works. 23247 * javaop.def: Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w. 23248 * lang.c (main_class): Move to parse.c. Don't make_class yet. 23249 * parse.c: Wait to allocate class object until we know its name. 23250 (layout_class): Calculate DECL_VINDEX for each virtual method. 23251 * typeck.c (get_array_type): Rename to ... 23252 (build_java_array_type): ... and provide working implementation. 23253 (build_java_signature): New function - build Java signature of type. 23254 (set_java_signature): New function - cache signature with type. 23255 (lookup_java_method): New function. 23256 232571997-05-06 Per Bothner <bothner@deneb.cygnus.com> 23258 23259 * class.c (ident_subst): Take extra SUFFIX parameter. 23260 (add_field): Set DECL_ASSEMBLER_NAME of static fields; more. 23261 (set_constant_value, build_static_field_ref, is_compiled_class): New. 23262 (build_class_ref): Actually implement. 23263 * decl.c, java-tree.h: Renamed some xx_type to xx_type_node. 23264 * decl.c (builtin_function): New. 23265 (init_decl_processing): Update for current Kaffe. Declare some 23266 builtin Kaffe functions. 23267 * expr.c (build_address_of): New. 23268 (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST): 23269 Renamed (from expand_java_new etc), and added working implementations. 23270 (build_field_ref): Now also handle static fields. 23271 (expand_invoke): Implement invokestatic, and start implement rest. 23272 * java-opcodes.h: Use javaop.def to avoid duplicated list. 23273 * javaop.def: Rename invokevirt -> invokevirtual. 23274 * lang.c (use_handles): Removed. 23275 * parse.c: Add support for ConstantValue attribute. 23276 Handle nested loading of a class. (JPOOL_UTF): New. 23277 232781997-03-11 Per Bothner <bothner@deneb.cygnus.com> 23279 23280 * expr.c (expand_java_pushc): Support #ifndef REAL_ARITHMETIC case. 23281 232821997-02-27 Per Bothner <bothner@deneb.cygnus.com> 23283 23284 * Make-lang.in (java.install-man): New empty rule. 23285 * typeck.c (set_local_type): New function. 23286 * expr.c (STORE_INTERNAL): Call find_local_variable, 23287 not find_stack_slot. Call set_local_type. 23288 232891997-02-12 Per Bothner <bothner@kalessin.cygnus.com> 23290 23291 * java-tree.h: Various new macros for constructing RECORD_TYPEs, 23292 and building RECORD_TYPE CONSTRUCTORs. 23293 Also support for creating Utf8Const objects from an INDETIFIER_NODE. 23294 23295 * lang.c (use_handles): Change the default to 0. 23296 * decl.c: Define and build class_type, field_type, utf8const_type. 23297 * class.c (make_class_data, make_field_value, 23298 get_access_flags_from_decl, build_class_ref, build_utf8_ref, 23299 hashUtf8String, strLengthUtf8, mangled_classname: 23300 Functions to build reflective data structures. 23301 * parse.c (yyparse): Call make_class_data. 23302 23303 * jcf-io.c (open_class, find_classfile): New functions. 23304 * jcf-dump.c: Support reading classfile from explicitly-named 23305 class file (without CLASSPATH searching). 23306 233071996-10-24 Per Bothner <bothner@deneb.cygnus.com> 23308 23309 * jcf-reader.c: Add parameter list to HANDLE_CONSTANT_Utf8. 23310 * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8): 23311 Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here. 23312 (get_constant): Now trivial for CONSTANT_Utf8. 23313 23314 * jcf.h: Make NEW_CPOOL the default. 23315 * jcf.h, jcf-reader.c, parse.c: Remove support for !NEW_CPOOL. 23316 233171996-10-24 Per Bothner <bothner@deneb.cygnus.com> 23318 23319 New directory. 23320 23321 23322Copyright (C) 1996-2016 Free Software Foundation, Inc. 23323 23324Copying and distribution of this file, with or without modification, 23325are permitted in any medium without royalty provided the copyright 23326notice and this notice are preserved. 23327