1Mon Jun 29 09:47:33 1998 Craig Burley <burley@gnu.org> 2 3 Fix 980628-*.f: 4 * bld.h: New `pad' field and accessor macros for 5 ACCTER, ARRTER, and CONTER ops. 6 * bld.c (ffebld_new_accter, ffebld_new_arrter, 7 ffebld_new_conter_with_orig): Initialize `pad' field 8 to zero. 9 * com.c (ffecom_transform_common_): Include initial 10 padding (aka modulo aka offset) in size calculation. 11 Copy initial padding value into FFE initialization expression 12 so the GBE transformation of that expression includes it. 13 Make array low bound 0 instead of 1, for consistency. 14 (ffecom_transform_equiv_): Include initial 15 padding (aka modulo aka offset) in size calculation. 16 Copy initial padding value into FFE initialization expression 17 so the GBE transformation of that expression includes it. 18 Make array low bound 0 instead of 1, for consistency. 19 (ffecom_expr_, case FFEBLD_opACCTER): Delete unused `size' 20 variable. 21 Track destination offset separately, allowing for 22 initial padding. 23 Don't bother setting initial PURPOSE offset if zero. 24 Include initial padding in size calculation. 25 (ffecom_expr_, case FFEBLD_opARRTER): Allow for 26 initial padding. 27 Include initial padding in size calculation. 28 Make array low bound 0 instead of 1, for consistency. 29 (ffecom_finish_global_): Make array low bound 0 instead 30 of 1, for consistency. 31 (ffecom_notify_init_storage): Copy `pad' field from old 32 ACCTER to new ARRTER. 33 (ffecom_notify_init_symbol): Ditto. 34 * data.c (ffedata_gather_): Initialize `pad' field in new 35 ARRTER to 0. 36 (ffedata_value_): Ditto. 37 * equiv.c (ffeequiv_layout_local_): When lowering start 38 of equiv area, extend lowering to maintain needed alignment. 39 * target.c (ffetarget_align): Handle negative offset correctly. 40 41 * global.c (ffeglobal_pad_common): Warn about nonzero 42 padding only the first time its seen. 43 If new padding larger than old, update old. 44 (ffeglobal_save_common): Use correct type for size throughout. 45 * global.h: Use correct type for size throughout. 46 (ffeglobal_common_pad): New macro. 47 (ffeglobal_pad): Delete this unused and broken macro. 48 49Sat Jun 27 12:18:33 1998 Jeffrey A Law (law@cygnus.com) 50 51 * Make-lang.in (g77): Depend on mkstemp.o. Link in mkstemp.o. 52 53Fri Jun 26 11:54:19 1998 Craig Burley <burley@gnu.org> 54 55 * g77spec.c (lang_specific_driver): Put `-lg2c' in 56 front of any `-lm' that is seen. 57 58Wed Jun 24 01:01:23 1998 Jeffrey A Law (law@cygnus.com) 59 60 * g77spec.c (lang_specific_driver): Revert last change. 61 62Mon Jun 22 23:12:05 1998 H.J. Lu (hjl@gnu.org) 63 64 * Make-lang.in (G77STAGESTUFF): Add g77.c. 65 66Fri Jun 19 07:54:40 1998 H.J. Lu (hjl@gnu.org) 67 68 * g77spec.c (lang_specific_driver): Check n_infiles before 69 appending args. 70 71Mon Jun 15 23:39:24 1998 Craig Burley <burley@gnu.org> 72 73 * Make-lang.in (f/g77.info): Use -f when removing 74 pre-existing Info files, if any. (This rm command 75 can go away once makeinfo has been changed to delete 76 .info-N files beyond the last one it creates.) 77 78 * Make-lang.in ($(srcdir)/f/intdoc.texi): Compile 79 using $(INCLUDES) macro to get the new hconfig.h 80 and system.h headers. 81 82Mon Jun 15 22:21:57 1998 Craig Burley <burley@gnu.org> 83 84 Cutover to system.h: 85 * Make-lang.in: 86 * Makefile.in: 87 * ansify.c: 88 * bad.c: 89 * bld.c: 90 * com.c: 91 * com.h: 92 * expr.c: 93 * fini.c: 94 * g77spec.c: 95 * implic.c: 96 * intdoc.c: 97 * intrin.c: 98 * lex.c: 99 * lex.h: 100 * parse.c: 101 * proj.c: 102 * proj.h: 103 * src.c: 104 * src.h: 105 * stb.c: 106 * ste.c: 107 * target.c: 108 * top.c: 109 * system.j: New file. 110 111 Use toplev.h where appropriate: 112 * Make-lang.in: 113 * Makefile.in: 114 * bad.c: 115 * bld.c: 116 * com.c: 117 * lex.c: 118 * ste.c: 119 * top.c: 120 * toplev.j: New file. 121 122 Conditionalize all dumping/reporting routines so they don't 123 get built for gcc/egcs: 124 * bld.c: 125 * bld.h: 126 * com.c: 127 * equiv.c: 128 * equiv.h: 129 * sta.c: 130 * stt.c: 131 * stt.h: 132 * symbol.c: 133 * symbol.h: 134 135 Use hconfig.h instead of config.h where appropriate: 136 * Makefile.in (proj-h.o): Compile with -DUSE_HCONFIG. 137 * fini.c: Define USE_HCONFIG before including proj.h. 138 139 * Makefile.in (deps-kinda): Redirect stderr to stdout, 140 to eliminate diagnostics vis-a-vis g77spec.c. 141 142 * Makefile.in: Regenerate dependencies via deps-kinda. 143 144 * lex.c (ffelex_file_fixed, ffelex_file_free): Eliminate 145 apparently spurious warnings about uninitialized variables 146 `c', `column', and so on. 147 148Sat Jun 13 03:13:18 1998 Craig Burley <burley@gnu.org> 149 150 * g77spec.c (lang_specific_driver): Print out egcs 151 version info first, to be compatible with what some 152 test facilities expect. 153 154Wed Jun 10 13:17:32 1998 Dave Brolley <brolley@cygnus.com> 155 156 * top.h (ffe_decode_option): New argc/argv interface. 157 * top.c (ffe_decode_option): New argc/argv interface. 158 * parse.c (yyparse): New argc/argv interface for ffe_decode_option. 159 * com.c (lang_decode_option): New argc/argv interface. 160 161Sun Jun 7 14:04:34 1998 Richard Henderson <rth@cygnus.com> 162 163 * com.c (lang_init_options): New function. 164 * top.c (ffe_decode_option): Remove all trace of -fset-g77-defaults. 165 Set ffe_is_do_internal_checks_ with -version. 166 * lang-options.h: Likewise. 167 * lang-specs.h: Likewise. 168 169Fri Jun 5 15:53:17 1998 Per Bothner <bothner@cygnus.com> 170 171 * g77spec.c (lang_specific_pre_link, lang_specific_extra_ofiles): 172 Define - update needed by gcc.c change. 173 174Mon Jun 1 19:37:42 1998 Craig Burley <burley@gnu.org> 175 176 * com.c (ffecom_init_0): Fix setup of INTEGER(KIND=7) 177 pointer type. 178 * info.c (ffeinfo_type): Don't crash on null type. 179 * expr.c (ffeexpr_fulfill_call_): Don't special-case 180 %LOC(expr) or LOC(expr). 181 Delete FFEGLOBAL_argsummaryPTR. 182 * global.c, global.h: Delete FFEGLOBAL_argsummaryPTR. 183 184Thu May 28 21:32:18 1998 Craig Burley <burley@gnu.org> 185 186 Restore circa-0.5.22 capabilities of `g77' driver: 187 * Make-lang.in (g77spec.o): Depend on f/version.h. 188 (g77version.o): New rule to compile g77 version info. 189 (g77$(exeext)): Depend on and link in g77version.o. 190 * g77spec.c: Rewrite to be more like 0.5.22 version 191 of g77.c, making filtering of command line smarter 192 so mixed Fortran and C (etc.) can be compiled, verbose 193 version info can be obtained, etc. 194 * lang-specs.h (f77-version): New "language" to support 195 "g77 -v" command under new gcc 2.8 regime. 196 * lex.c (ffelex_file_fixed): If -fnull-version, just 197 substitute a "source file" that prints out version info. 198 * top.c, top.h: Support -fnull-version. 199 200 * lang-specs.h: Use "%O" instead of OO macro to specify 201 object extension. Remove old stringizing cruft. 202 203 * Make-lang.in (g77.c, g77spec.o, g77.o, g77$(exeext), 204 g77-cross$(exeext), f771, 205 $(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi, 206 $(srcdir)/f/intdoc.texi, 207 f77.install-common, f77.install-info, f77.install-man, 208 f77.uninstall, $(G77STAGESTUFF), f77.stage1, f77.stage2, 209 f77.stage3, f77.stage4, f77.distdir): Don't do anything 210 unless user specified "f77" or "F77" in $LANGUAGES either 211 during configuration or explicitly. For convenience of 212 various tests and to work around lack of the assignment 213 "LANGUAGES=$(BOOT_LANGUAGES)" in the "make stage1" command 214 of "make bootstrap" in gcc, use a touch file named "lang-f77" 215 to communicate whether this is the case. 216 217 * Make-lang.in (F77_FLAGS_TO_PASS): Delete this macro, 218 replace with minimal expansion of its former self in 219 each of the two instances where it was used. 220 221 * Makefile.in (HOST_CC): Delete this definition. 222 223 * com.c (index, rindex): Delete these declarations. 224 225 * proj.h: (isascii): Delete this. 226 227 * Make-lang.in (f77.install-common): Warn if `f77-install-ok' 228 flag-file exists, since it no longer triggers any activity. 229 230 Rename libf2c.a and f2c.h to libg2c.a and g2c.h, 231 normalize and simplify g77/libg2c build process: 232 * Make-lang.in: Remove all support for overwriting 233 /usr/bin/f77 etc., or whatever the actual names are 234 via $(prefix) and $(local_prefix). (g++ overwrites 235 /usr/bin/c++, but then it's often the only C++ compiler 236 on the system; f77 often exists on systems that are 237 installing g77.) 238 (f77.realclean): Remove obsolete target. 239 (g77.c, g77$(exeext)): Minor changes to look more like g++'s 240 stuff. 241 (f771): Now built with srcdir=gcc/f, not srcdir=gcc, to be 242 more like g++ and such. 243 (f/Makefile): Removed, as g++ doesn't need this rule. 244 (f77.install-common): No longer install f77, etc. 245 (f77.install-man): No longer install f77.1. 246 (f77.uninstall): No longer uninstall f77, f77.1, etc. 247 (f77.stage1, f77.stage2, f77.stage3, f77.stage4): Do work 248 only if "f77" appears in $(LANGUAGES). 249 (Note: gcc's Makefile.in's bootstrap target should set 250 LANGUAGES=$(BOOT_LANGUAGES) when making the stage1 target.) 251 * Makefile.in: Update vis-a-vis gcc/cp/Makefile.in. 252 (none): Remove. 253 (g77-only): Relocate. 254 (all.indirect, f771, *.o): Now assumes current directory 255 is this dir (gcc/f), not the parent directory. 256 (TAGS): Remove "echo 'parse.y,0' >> TAGS ;" line. 257 * config-lang.in: Delete commented-out code. 258 Fix stagestuff definition. Add more stuff to 259 diff_excludes definition. Don't create any directories. 260 Set outputs to f/Makefile, to get variable substition 261 to happen (what does that really do, anyway?!). 262 * g77spec.c: Rename libf2c to libg2c. 263 264 * com.h: Remove all of the gcc back-end decls, 265 since egcs should have all of them correct. 266 267 * com.c: Include "proj.h" before anything else, 268 as that's how things are supposed to work. 269 * ste.c: Ditto. 270 271 * bad.c: Include "flags.j" here, since some diagnostics 272 check flag_pedantic_errors. 273 274 * Makefile.in (f/*.o): Rebuild dependencies via 275 deps-kinda. 276 277 * output.j: New source file. 278 * Make-lang.in (F77_SRCS): Update accordingly. 279 * Makefile.in (OUTPUT_H): Ditto. 280 (deps-kinda): Ditto. 281 * com.c: Include "output.j" here. 282 * lex.c: Ditto. 283 284Mon May 25 03:34:42 1998 Craig Burley <burley@gnu.org> 285 286 * com.c (ffecom_expr_): Fix D**I and Z**I cases to 287 not convert (DOUBLE PRECISION) D and (DOUBLE COMPLEX) Z 288 to INTEGER. (This is dead code here anyway.) 289 290Sat May 23 06:32:52 1998 Craig Burley <burley@gnu.org> 291 292 * com.c (ffecom_finish_symbol_transform_): Don't transform 293 statement (nested) functions, to avoid gcc compiling them 294 and thus producing linker errors if they refer to undefined 295 external functions. But warn if they're unused and -Wunused. 296 * bad.def (FFEBAD_SFUNC_UNUSED): New diagnostic. 297 298Wed May 20 12:12:55 1998 Craig Burley <burley@gnu.org> 299 300 * Version 0.5.23 released. 301 302Tue May 19 14:52:41 1998 Craig Burley <burley@gnu.org> 303 304 * bad.def (FFEBAD_OPEN_UNSUPPORTED, FFEBAD_INQUIRE_UNSUPPORTED, 305 FFEBAD_READ_UNSUPPORTED, FFEBAD_WRITE_UNSUPPORTED, 306 FFEBAD_QUAD_UNSUPPORTED, FFEBAD_BLOCKDATA_STMT, 307 FFEBAD_TRUNCATING_CHARACTER, FFEBAD_TRUNCATING_HOLLERITH, 308 FFEBAD_TRUNCATING_NUMERIC, FFEBAD_TRUNCATING_TYPELESS, 309 FFEBAD_TYPELESS_OVERFLOW): Change these from warnings 310 to errors. 311 312Tue May 19 14:51:59 1998 Craig Burley <burley@gnu.org> 313 314 * Make-lang.in (f77.install-info, f77.uninstall): 315 Use install-info as appropriate. 316 317Tue May 19 12:56:54 1998 Craig Burley <burley@gnu.org> 318 319 * com.c (ffecom_init_0): Rename xargc to f__xargc, 320 in accord with same-dated change to f/runtime. 321 322Fri May 15 10:52:49 1998 Craig Burley <burley@gnu.org> 323 324 * com.c (ffecom_convert_narrow_, ffecom_convert_widen_): 325 Be even more persnickety in checking for internal bugs. 326 Also, if precision isn't changing, just return the expr. 327 328 * expr.c (ffeexpr_token_number_): Call 329 ffeexpr_make_float_const_ to make an integer. 330 (ffeexpr_make_float_const_): Handle making an integer. 331 332 * intrin.c (ffeintrin_init_0): Distinguish between 333 crashes on bad arg base and kind types. 334 335Fri May 15 01:44:22 1998 Mumit Khan <khan@xraylith.wisc.edu> 336 337 * Make-lang.in (f77.mostlyclean): Add missing exeext. 338 339Thu May 14 13:30:59 1998 Craig Burley <burley@gnu.org> 340 341 * Make-lang.in (f/expr.c): Now depends on f/stamp-str. 342 * expr.c: Use ffestrOther in place of ffeexprDotdot_. 343 * str-ot.fin: Add more keywords for expr.c. 344 345 * intdoc.c (dumpimp): Trivial fix. 346 347 * com.c (ffecom_expr_): Add ltkt variable for clarity. 348 349Wed May 13 13:05:34 1998 Craig Burley <burley@gnu.org> 350 351 * Make-lang.in (G77STAGESTUFF): Add g77.o, g77spec.o, 352 and g77version.o. 353 (f77.clean): Add removal of g77.c, g77.o, g77spec.o, 354 and g77version.o. 355 (f77.distclean): Delete removal of g77.c. 356 357Thu Apr 30 18:59:43 1998 Jim Wilson <wilson@cygnus.com> 358 359 * Make-lang.in (g77.info, g77.dvi, BUGS, INSTALL, NEWS): Put -o 360 option before input file. 361 362Tue Apr 28 09:23:10 1998 Craig Burley <burley@gnu.org> 363 364 Fix 980427-0.f: 365 * global.c (ffeglobal_ref_progunit_): When transitioning 366 from EXT to FUNC, discard hook, since the decl, if any, is 367 probably wrong. 368 369Sun Apr 26 09:05:50 1998 Craig Burley <burley@gnu.org> 370 371 * com.c (ffecom_char_enhance_arg_): Wrap the upper bound 372 (the PARM_DECL specifying the length of the CHARACTER*(*) 373 dummy arg) in a variable_size invocation, to prevent 374 dwarf2out.c crashing when compiling code with -g. 375 376Sat Apr 18 15:26:57 1998 Jim Wilson <wilson@cygnus.com> 377 378 * g77spec.c (lang_specific_driver): New argument in_added_libraries. 379 New local added_libraries. Increment count when add library to 380 arglist. 381 382Sat Apr 18 05:03:21 1998 Craig Burley <burley@gnu.org> 383 384 * com.c (ffecom_check_size_overflow_): Ignore overflow 385 as well if dummy argument. 386 387Fri Apr 17 17:18:04 1998 Craig Burley <burley@gnu.org> 388 389 * version.h: Get rid of the overly large headers 390 here too, as done in version.c. 391 392Tue Apr 14 15:51:37 1998 Dave Brolley <brolley@cygnus.com> 393 394 * com.c (init_parse): Now returns char* containing filename; 395 396Tue Apr 14 14:40:40 1998 Craig Burley <burley@gnu.org> 397 398 * com.c (ffecom_start_progunit_): Mark function decl 399 as used, to avoid spurious warning (-Wunused) for ENTRY. 400 401Tue Apr 14 14:19:34 1998 Craig Burley <burley@gnu.org> 402 403 * sta.c (ffesta_second_): Check for CASE DEFAULT 404 as well as CASE, or it won't be recognized. 405 406Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) 407 408 * com.c (finput): New variable. 409 (init_parse): Handle !USE_CPPLIB. 410 (finish_parse): New function. 411 (lang_init): No longer declare finput. 412 413Sat Apr 4 17:45:01 1998 Richard Henderson <rth@cygnus.com> 414 415 * com.c (ffecom_expr_): Revert Oct 22 change. Instead take a WIDENP 416 argument so that we can respect the signedness of the original type. 417 (ffecom_init_0): Do sizetype initialization first. 418 4191998-03-28 Dave Love <d.love@dl.ac.uk> 420 421 * Make-lang.in (f771$(exeext)): Fix typo. 422 4231998-03-24 Martin von Loewis <loewis@informatik.hu-berlin.de> 424 425 * com.c (lang_print_xnode): New function. 426 427Mon Mar 23 21:20:35 1998 Craig Burley <burley@gnu.org> 428 429 * version.c: Reduce to a one-line file, like 430 gcc's version.c, since there's really no content 431 there. 432 433Mon Mar 23 11:58:43 1998 Craig Burley <burley@gnu.org> 434 435 * bugs.texi: Various updates. 436 437 * com.c (ffecom_tree_canonize_ptr_): Fix up spacing a bit. 438 439Sun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com> 440 Geoff Noer <noer@cygnus.com> 441 442 * Makefile.in: Various fixes for building cygwin32 native toolchains. 443 * Make-lang.in: Likewise. 444 445Mon Mar 16 21:20:35 1998 Craig Burley <burley@gnu.org> 446 447 * expr.c (ffeexpr_sym_impdoitem_): Don't blindly 448 reset symbol info after calling ffesymbol_error, 449 to avoid crash. 450 451Mon Mar 16 15:38:50 1998 Craig Burley <burley@gnu.org> 452 453 * Version 0.5.22 released. 454 455Mon Mar 16 14:36:02 1998 Craig Burley <burley@gnu.org> 456 457 Make -g work better for ENTRY: 458 * com.c (ffecom_start_progunit_): Master function 459 for ENTRY-laden procedure is not really invented, 460 so it can be debugged. 461 (ffecom_do_entry_): Push/set/pop lineno for each 462 entry point. 463 464Sun Mar 15 05:48:49 1998 Craig Burley <burley@gnu.org> 465 466 * intrin.def: Fix spelling of mixed-case form 467 of `CPU_Time' (was `Cpu_Time'). 468 469Thu Mar 12 13:50:21 1998 Craig Burley <burley@gnu.org> 470 471 * lang-options.h: Sort all -f*-intrinsics-* options, 472 for consistency with other g77 versions. 473 474Thu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de> 475 476 * lang-specs.h: Properly put brackets around array elements in initializer. 477 4781998-03-09 Dave Love <d.love@dl.ac.uk> 479 480 * Make-lang.in: Set CONFIG_SITE to a non-existent file since 481 /dev/null loses with bash 2.0/autoconf 2.12. Put 482 F77_FLAGS_TO_PASS before CC. 483 484Sun Mar 8 16:35:34 1998 Craig Burley <burley@gnu.org> 485 486 * intrin.def: Use tabs instead of blanks more 487 consistently (excepting DEFGEN section for now). 488 489Wed Mar 4 17:38:21 1998 Jeffrey A Law (law@cygnus.com) 490 491 * Make-lang.in: Remove more references to libf77. 492 493Tue Mar 3 10:52:35 1998 Manfred Hollstein <manfred@s-direktnet.de> 494 495 * g77.texi: Use @url for citing URLs. 496 497Sat Feb 28 15:24:38 1998 Craig Burley <burley@gnu.org> 498 499 * intrin.def: Make CPU_TIME's arg generic real to be just 500 like SECOND_subr. 501 502Fri Feb 20 12:45:53 1998 Craig Burley <burley@gnu.org> 503 504 * expr.c (ffeexpr_token_arguments_): Make sure 505 outer exprstack isn't null. 506 5071998-02-16 Dave Love <d.love@dl.ac.uk> 508 509 * Makefile.in (f/fini): Don't use -W -Wall with HOST_CC. 510 511Fri Feb 13 00:14:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 512 513 * com.c (type_for_mode): Add explicit braces to avoid ambiguous `else'. 514 515 * expr.c (ffeexpr_type_combine): Likewise. 516 (ffeexpr_reduce_): Likewise. 517 (ffeexpr_declare_parenthesized_): Likewise. 518 519 * src.c (ffesrc_strcmp_1ns2i): Likewise. 520 (ffesrc_strcmp_2c): Likewise. 521 (ffesrc_strncmp_2c): Likewise. 522 523 * stb.c (ffestb_halt1_): Likewise. 524 (ffestb_R90910_): Likewise. 525 (ffestb_R9109_): Likewise. 526 527 * stc.c (ffestc_R544_equiv_): Likewise. 528 529 * std.c (ffestd_subr_copy_easy_): Likewise. 530 (ffestd_R1001dump_): Likewise. 531 (ffestd_R1001dump_1005_1_): Likewise. 532 (ffestd_R1001dump_1005_2_): Likewise. 533 (ffestd_R1001dump_1005_3_): Likewise. 534 (ffestd_R1001dump_1005_4_): Likewise. 535 (ffestd_R1001dump_1005_5_): Likewise. 536 (ffestd_R1001dump_1010_2_): Likewise. 537 538 * ste.c (ffeste_R840): Likewise. 539 540 * sts.c (ffests_puttext): Likewise. 541 542 * symbol.c (ffesymbol_check_token_): Likewise. 543 544 * target.c (ffetarget_real1): Likewise. 545 (ffetarget_real2): Likewise. 546 547Wed Feb 11 01:44:48 1998 Richard Henderson (rth@cygnus.com) 548 549 * com.c (ffecom_ptr_to_expr) [FFEBLD_opARRAYREF]: Do upper - lower 550 in the native type, so as to properly handle negative indices. 551 552Tue Feb 3 20:13:05 1998 Richard Henderson <rth@cygnus.com> 553 554 * config-lang.in: Remove references to runtime/. 555 556Sun Feb 1 12:43:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk> 557 558 * com.c (ffecom_tree_canonize_ptr_): Place bitsizetype typed expr 559 as first agument in MULT_EXPR. 560 Use bitsize_int (0L, 0L) as zero for bitsizes. 561 (ffecom_tree_canonize_ref_): 562 Use bitsize_int (0L, 0L) as zero for bitsizes. 563 (ffecom_init_0): Use set_sizetype. 564 565Sun Feb 1 02:26:58 1998 Richard Henderson <rth@cygnus.com> 566 567 * runtime directory -- moved into "libf2c" in the toplevel 568 directory. 569 * Make-lang.in: Remove all runtime related stuff. 570 571Sun Jan 25 12:32:15 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 572 573 * Make-lang.in (f77.stage1): Depend on stage1-start so parallel 574 make works better. 575 * (f77.stage2): Likewise for stage2-start. 576 * (f77.stage3): Likewise for stage3-start. 577 * (f77.stage4): Likewise for stage4-start. 578 579Sat Jan 17 21:28:08 1998 Pieter Nagel <pnagel@epiuse.co.za> 580 581 * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and 582 local_prefix to sub-make invocations. 583 584Tue Jan 13 22:07:54 1998 Jeffrey A Law (law@cygnus.com) 585 586 * lang-options.h: Add missing options. 587 588Sun Jan 11 02:14:47 1998 Craig Burley <burley@gnu.org> 589 590 Support FORMAT(I<1+2>) (constant variable-FORMAT 591 expressions): 592 * bad.def (FFEBAD_FORMAT_VARIABLE): New diagnostic. 593 * std.c (ffestd_R1001rtexpr_): New function. 594 (ffestd_R1001dump_, ffestd_R1001dump_1005_1_, 595 ffestd_R1001dump_1005_2_, ffestd_R1001dump_1005_3_, 596 ffestd_R1001dump_1005_4_, ffestd_R1001dump_1005_5_, 597 ffestd_R1001dump_1010_2_, ffestd_R1001dump_1010_3_, 598 ffestd_R1001dump_1010_4_, ffestd_R1001dump_1010_5_): 599 Use new function instead of ffestd_R1001error_. 600 601 * stb.c (ffestb_R10014_, ffestb_R10016_, ffestb_R10018_, 602 ffestb_R100110_): Restructure `for' loop for style. 603 604 Fix 970626-2.f by not doing most back-end processing 605 when current_function_decl is an ERROR_MARK, and by 606 making that the case when its type would be an ERROR_MARK: 607 * com.c (ffecom_start_progunit_, finish_function, 608 lang_printable_name, start_function, 609 ffecom_finish_symbol_transform_): Test for ERROR_MARK. 610 * std.c (ffestd_stmt_pass_): Don't do any downstream 611 processing if ERROR_MARK. 612 613 * Make-lang.in (f77.install-common): Don't install, and 614 don't uninstall existing, Info files if f/g77.info 615 doesn't exit. (This is a somewhat modified version 616 of an egcs patch on 1998-01-07 12:05:51 by Bruno Haible 617 <bruno@linuix.mathematik.uni-karlsruhe.de>.) 618 619Fri Jan 9 19:09:07 1998 Craig Burley <burley@gnu.org> 620 621 Fix -fpedantic combined with `F()' invocation, 622 also -fugly-comma combined with `IARGC()' invocation: 623 * bad.def (FFEBAD_NULL_ARGUMENT_W): New diagnostic. 624 * expr.c (ffeexpr_finished_): Don't reject null expressions 625 in the argument-expression context -- let outer context 626 handle that. 627 (ffeexpr_token_arguments_): Warn about null expressions 628 here if -fpedantic (as appropriate). 629 Obey -fugly-comma for only external-procedure invocations. 630 * intrin.c (ffeintrin_check_): No longer ignore explicit 631 omitted trailing args. 632 633Tue Dec 23 14:58:04 1997 Craig Burley <burley@gnu.org> 634 635 * intrin.c (ffeintrin_fulfill_generic): Don't generate 636 FFEBAD_INTRINSIC_TYPE for CHARACTER*(*) intrinsic. 637 638 * com.c (ffecom_gfrt_basictype): 639 (ffecom_gfrt_kindtype): 640 (ffecom_make_gfrt_): 641 (FFECOM_rttypeVOIDSTAR_): New return type `void *', for 642 the SIGNAL intrinsic. 643 * com-rt.def (FFECOM_rttypeSIGNAL): Now returns `void *'. 644 * intdoc.c: Replace `p' kind specifier with `7'. 645 * intrin.c (ffeintrin_check_, ffeintrin_init_0): Replace 646 `p' kind specifier with `7'. 647 * intrin.def (FFEINTRIN_impLOC, FFEINTRIN_impSIGNAL_func, 648 FFEINTRIN_impSIGNAL_subr): Replace `p' specifier with `7'. 649 Also, SIGNAL now returns a `void *' status, not `int'. 650 651 Improve run-time diagnostic for "PRINT '(I1', 42": 652 * com.c (ffecom_char_args_x_): Renamed from ffecom_char_args_, 653 which is now a macro (to avoid lots of changes to other code) 654 with new arg, ffecom_char_args_with_null_ being another new 655 macro to call same function with different value for new arg. 656 This function now appends a null byte to opCONTER expression 657 if the new arg is TRUE. 658 (ffecom_arg_ptr_to_expr): Support NULL length pointer. 659 * ste.c (ffeste_io_cilist_): 660 (ffeste_io_icilist_): Pass NULL length ptr for 661 FORMAT expression, so null byte gets appended where 662 feasible. 663 * target.c (ffetarget_character1): 664 (ffetarget_concatenate_character1): 665 (ffetarget_substr_character1): 666 (ffetarget_convert_character1_character1): 667 (ffetarget_convert_character1_hollerith): 668 (ffetarget_convert_character1_integer4): 669 (ffetarget_convert_character1_logical4): 670 (ffetarget_convert_character1_typeless): 671 (ffetarget_hollerith): Append extra phantom null byte as 672 part of FFETARGET-NULL-BYTE kludge. 673 674 * intrin.def (FFEINTRIN_impCPU_TIME): Point to 675 FFECOM_gfrtSECOND as primary run-time routine. 676 677Mon Dec 22 12:41:07 1997 Craig Burley <burley@gnu.org> 678 679 * intrin.c (ffeintrin_init_0): Remove duplicate 680 check for `!'. 681 682Fri Dec 19 00:12:01 1997 Richard Henderson <rth@cygnus.com> 683 684 * com.c (ffecom_sym_transform_): Assumed arrays have no upper bound. 685 686Mon Dec 15 17:35:35 1997 Richard Henderson <rth@cygnus.com> 687 688 * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'. 689 690Sun Dec 14 02:49:58 1997 Craig Burley <burley@gnu.org> 691 692 * intrin.c (ffeintrin_init_0): Fix up indentation a bit. 693 Fix bug that prevented checking of arguments other 694 than the first. 695 696 * intdoc.c: Fix up indentation a bit. 697 698Tue Dec 9 16:20:57 1997 Richard Henderson <rth@cygnus.com> 699 700 * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'. 701 702Tue Dec 2 09:57:16 1997 Jeffrey A Law (law@cygnus.com) 703 704 * Make-lang.in (f77.clean): Remove g77.c. 705 706Mon Dec 1 19:12:36 1997 Craig Burley <burley@gnu.org> 707 708 * intrin.c (ffeintrin_check_): Fix up indentation a bit more. 709 710Mon Dec 1 16:21:08 1997 Craig Burley <burley@gnu.org> 711 712 * com.c (ffecom_arglist_expr_): Crash if non-supplied 713 optional arg isn't passed as an address. 714 Pass null pointer explicitly, instead of via ffecom routine. 715 If incoming argstring is NULL, substitute pointer to "0". 716 Recognize '0' as ending the usual arg stuff, just like '\0'. 717 718Sun Nov 30 22:22:22 1997 Craig Burley <burley@gnu.org> 719 720 * intdoc.c: Minor fix-ups. 721 722 * intrin.c (ffeintrin_check_): Fix up indentation a bit. 723 724 * intrin.def: Fix up spacing a bit. 725 726Tue Nov 25 15:33:28 1997 Jeffrey A Law (law@cygnus.com) 727 728 * Make-lang.in (f77.all.build): Add $(exeext) to binary files. 729 (f77.all.cross, f77.start.encap): Simliarly. 730 731Fri Nov 21 09:35:20 1997 Fred Fish <fnf@cygnus.com> 732 733 * Make-lang.in (stmp-f2c.h): Move inclusion of F77_FLAGS_TO_PASS 734 to before override of CC so that the override works. 735 736Thu Nov 20 00:58:14 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 737 738 * Make-lang.in (f77.install-info): Depend on f77.info. 739 7401997-11-17 Dave Love <d.love@dl.ac.uk> 741 742 * com.c (ffecom_arglist_expr_): Pass null pointers for optional 743 args which aren't supplied. 744 745Sun Nov 16 21:45:43 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 746 747 * Make-lang.in (f77.install-info): Depend on f77.info. 748 7491997-11-14 Dave Love <d.love@dl.ac.uk> 750 751 * intrin.def: Supply gfrt for CPU_TIME. Generalize arg types of 752 INT2, INT8, per doc. 753 7541997-11-06 Dave Love <d.love@dl.ac.uk> 755 756 * intrin.def: Allow non-integer args for INT2 and INT8 (per 757 documentation). 758 759Sun Nov 2 19:49:51 1997 Richard Henderson <rth@cygnus.com> 760 761 * com.c (ffecom_expr_): Only use TREE_TYPE argument for simple 762 arithmetic; convert types as necessary; recurse with target tree type. 763 764Tue Oct 28 02:21:25 1997 Craig Burley <burley@gnu.ai.mit.edu> 765 766 * lang-options.h: Add -fgnu-intrinsics-* and 767 -fbadu77-intrinsics-* options. 768 769Sun Oct 26 02:36:21 1997 Craig Burley <burley@gnu.ai.mit.edu> 770 771 * com.c (lang_print_error_function): Fix to more 772 reliably notice when the diagnosed region changes. 773 774Sat Oct 25 23:43:36 1997 Craig Burley <burley@gnu.ai.mit.edu> 775 776 Fix 950327-0.f: 777 * sta.c, sta.h (ffesta_outpooldisp): New function. 778 * std.c (ffestd_stmt_pass_): Don't kill NULL pool. 779 (ffestd_R842): If pool already preserved, save NULL 780 for pool, because it should be killed only once. 781 782 * malloc.c [MALLOC_DEBUG]: Put initializer for `name' 783 component in braces, to avoid compiler warning. 784 785Wed Oct 22 11:37:41 1997 Richard Henderson <rth@cygnus.com> 786 787 * com.c (ffecom_expr_): Take an new arg TREE_TYPE that if non-null 788 specifies the type in which to do the calculation. Change all callers. 789 [FFEBLD_opARRAYREF]: Force the index expr to use sizetype. 790 791Thu Oct 16 02:04:08 1997 Paul Koning <pkoning@xedia.com> 792 793 * Make-lang.in (stmp-f2c.h): Don't configure the runtime 794 directory if LANGUAGES does not include f77. 795 796Mon Oct 13 12:12:41 1997 Richard Henderson <rth@cygnus.com> 797 798 * Make-lang.in (g77*): Copied from cp/Make-lang.in g++*. 799 * g77spec.c: New file, mostly copied from g++spec.c 800 * g77.c: Removed. 801 802Fri Oct 10 13:00:48 1997 Craig Burley <burley@gnu.ai.mit.edu> 803 804 * ste.c (ffeste_begin_iterdo_): Fix loop setup so iteration 805 variable is modified only after the #iterations is calculated; 806 otherwise if the iteration variable is aliased to any of the 807 operands in the start, end, or increment expressions, the 808 wrong #iterations might be calculated. 809 810 * com.c (ffecom_save_tree): Fix indentation. 811 812Mon Oct 6 14:15:03 1997 Jeffrey A Law (law@cygnus.com) 813 814 * Make-lang.in (f77.mostlyclean): Clean up stuff in the 815 object tree too. 816 (f77.clean, f77.distclean, f77.maintainer-clean): Likewise. 817 8181997-10-05 Dave Love <d.love@dl.ac.uk> 819 820 * intrin.def: Make SECOND_subr's arg generic real for people 821 porting from Cray and making everything double precision. 822 823Wed Oct 1 01:45:36 1997 Philippe De Muyter <phdm@info.ucl.ac.be> 824 825 * g77.c (pexecute, main): Use unlink, not remove. 826 827Mon Sep 29 16:18:21 1997 Craig Burley <burley@gnu.ai.mit.edu> 828 829 * stu.c (ffestu_list_exec_transition_, 830 ffestu_dummies_transition_): Specify `bool' type for 831 `in_progress' variables. 832 833 * com.h (assemble_string): Declare this routine (instead 834 of #include'ing "output.h" from gcc) to eliminate warnings 835 from lex.c. 836 837Mon Sep 29 10:37:07 1997 Jeffrey A Law (law@cygnus.com) 838 839 * intdoc.c (main): Remove unused attribute for main's arguments. 840 841Sun Sep 28 01:47:17 1997 Jeffrey A Law (law@cygnus.com) 842 843 * Make-lang.in (G77_FLAGS_TO_PASS): Pass down RANLIB, RANLIB_TEST 844 and AR instead of the _FOR_TARGET versions. 845 846Tue Sep 23 00:39:57 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 847 848 * Make-lang.in: install.texi was renamed to g77install.texi 849 * install0.texi: Likewise. 850 851Fri Sep 19 01:12:27 1997 Craig Burley <burley@gnu.ai.mit.edu> 852 853 * expr.c (ffeexpr_reduced_eqop2_): 854 (ffeexpr_reduced_relop2_): Minor fixes to diagnostic code. 855 856 * fini.c (main): Change return type to `int'. 857 858Thu Sep 18 17:31:38 1997 Jeffrey A Law (law@cygnus.com) 859 860 * proj.h (FFEPROJ_BSEARCH): Delete all references. 861 (FFEPROJ_STRTOUL): Likewise. 862 * proj.c (bsearch): Compile this if no bsearch is provided by the 863 host system. 864 (strtoul): Similarly. 865 866 * g77install.texi: Renamed from install.texi 867 * g77.texi: Corresponding changes. 868 869 * fini.c (main): Return type is int. 870 871 * com.c (lang_printable_name): Use verbosity argument. 872 873Thu Sep 18 16:08:40 1997 Jeffrey A Law (law@cygnus.com) 874 875 * Make-lang.in: Fix merge problems. 876 877Wed Sep 17 10:47:08 1997 Craig Burley <burley@gnu.ai.mit.edu> 878 879 * com-rt.def (FFECOM_gfrtDSIGN, FFECOM_gfrtISIGN, 880 FFECOM_gfrtSIGN): Add second argument. 881 882 * expr.c (ffeexpr_cb_comma_c_): Trivial fixes. 883 884Sun Sep 14 21:01:23 1997 Jeffrey A Law (law@cygnus.com) 885 886 * Make-lang.in: Various changes to build info files 887 in the object tree rather than the source tree. 888 889 * proj.h: Include ctype.h. 890 891Sun Sep 14 12:35:20 1997 Fred Fish (fnf@ninemoons.com) 892 893 * proj.h (isascii): Provide a default definition if none is available. 894 895Thu Sep 11 19:26:10 1997 Dave Love <d.love@dl.ac.uk> 896 897 * config-lang.in: Remove the messages about possible build problems. 898 899Wed Sep 10 16:39:47 1997 Jim Wilson <wilson@cygnus.com> 900 901 * Make-lang.in (LN, LN_S): New macros, use where appropriate. 902 903Tue Sep 9 13:20:40 1997 Jim Wilson <wilson@cygnus.com> 904 905 * g77.c (pexecute, doit): Add checks for __CYGWIN32__. 906 907Tue Sep 9 01:59:35 1997 Craig Burley <burley@gnu.ai.mit.edu> 908 909 * Version 0.5.21 released. 910 911Tue Sep 9 00:31:01 1997 Craig Burley <burley@gnu.ai.mit.edu> 912 913 * intdoc.c (dumpem): Put appropriate commentary in 914 output file, so readers know it isn't source. 915 916Wed Aug 27 20:32:03 1997 Jeffrey A Law (law@cygnus.com) 917 918 * top.c (ffe_decode_option): Turn on flag_move_all_moveables 919 and flag_reduce_all_givs. 920 921Wed Aug 27 08:08:25 1997 Craig Burley <burley@gnu.ai.mit.edu> 922 923 * proj.h: Always #include "config.j" first, to pick up 924 gcc's configuration. 925 * com.c: Change bcopy() and bzero() calls to memcpy() 926 and memset() calls, to make more of g77 ANSI C. 927 9281997-08-26 Dave Love <d.love@dl.ac.uk> 929 930 * Make-lang.in ($(srcdir)/f/runtime/configure, 931 $(srcdir)/f/runtime/libU77/configure): Fix for when srcdir isn't 932 relative. 933 934Tue Aug 26 05:59:21 1997 Craig Burley <burley@gnu.ai.mit.edu> 935 936 * ansify.c (main): Make sure readers of stdout know 937 it's derived from stdin; omit comment text; get source 938 line numbers in future stderr output to be correct. 939 940Tue Aug 26 01:36:01 1997 Craig Burley <burley@gnu.ai.mit.edu> 941 942 Fix 970825-0.f: 943 * stb.c (ffestb_R5284_): Allow OPEN_PAREN after closing 944 SLASH as well as NAME. 945 946Mon Aug 25 23:48:17 1997 Craig Burley <burley@gnu.ai.mit.edu> 947 948 Changes to allow g77 docs to be built entirely from scratch 949 using any ANSI C compiler, not requiring GNU C: 950 * Make-lang.in ($(srcdir)/f/intdoc.texi): "Pipe" new 951 location of intrinsic documentation data base, f/intdoc.in, 952 through new `ansify' program to append `\n\' to quoted 953 newlines, into f/intdoc.h0. Do appropriate cleanups. Explain. 954 (f77.mostlyclean): Add f/ansify and f/intdoc.h0 to cleanups. 955 * f/ansify.c: New program. 956 * f/intdoc.c: Fix so it conforms to ANSI C. 957 #include f/intdoc.h0 instead of f/intdoc.h. 958 Avoid some warnings. 959 * f/intdoc.h, f/intdoc.in: Rename the former to the latter; no 960 changes made to the content in this patch! 961 * f/intrin.h (ffeintrinFamily): Fix to conform to ANSI C. 962 963Mon Aug 25 23:24:32 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 964 965 * Make-lang.in ($(srcdir)/f/runtime/configure, 966 $(srcdir)/f/runtime/libU77/configure, f77.mostlyclean, 967 f77.clean, f77.distclean, f77.maintainer-clean, f77.realclean): 968 Handle absolute pathname of $(srcdir). 969 (stmp-f2c.h): New. 970 (include/f2c.h, f/runtime/Makefile, f/runtime/libF77/Makefile, 971 f/runtime/libI77/Makefile, f/runtime/libU77/Makefile): Only 972 depend on stmp-f2c.h. 973 (f77.maintainer-clean): Don't make itself. 974 975Sun Aug 24 17:00:27 1997 Jim Wilson <wilson@cygnus.com> 976 977 * Make-lang.in (f77.install-info): Don't cd into srcdir. Add srcdir 978 to filenames. Use sed to extract base filename for install. 979 980Sun Aug 24 06:52:48 1997 Craig Burley <burley@gnu.ai.mit.edu> 981 982 Fix up g77 compiler data base for libf2c routines: 983 * com-rt.def (FFECOM_gfrtSIGNAL): Change return type to 984 FTNINT to match actual code. 985 986 * com.c (ffecomRttype_): Replace FFECOM_rttypeINT_ with 987 FFECOM_rttypeFTNINT_. 988 Add and fix up comments. 989 (ffecom_make_gfrt_, ffecom_gfrt_basictype, 990 ffecom_gfrt_kindtype): Replace FFECOM_rttypeINT_ with 991 FFECOM_rttypeFTNINT_; add FFECOM_rttypeDOUBLEREAL_. 992 993Thu Aug 21 13:15:29 1997 Jim Wilson <wilson@cygnus.com> 994 995 * Make-lang.in (f77): Delete f77-runtime. 996 (f77.all.build, f77.all.cross, f77.rest.encap): Add f77-runtime. 997 998Wed Aug 20 17:18:40 1997 Craig Burley <burley@gnu.ai.mit.edu> 999 1000 * global.c (ffeglobal_ref_progunit_): It's okay to have 1001 a different CHARACTER*n length for a reference if the 1002 existing length is for another reference, not a definition. 1003 1004Wed Aug 20 16:36:59 1997 Jim Wilson <wilson@cygnus.com> 1005 1006 * intdoc.texi: Readd generated file. 1007 1008Mon Aug 18 14:27:18 1997 Craig Burley <burley@gnu.ai.mit.edu> 1009 1010 Fix 970814-0.f: 1011 * global.c (ffeglobal_new_progunit_): Distinguish 1012 between previously defined, versus inferred, filewide 1013 when it comes to diagnostics. 1014 1015 Fix 970816-1.f: 1016 * global.c (ffeglobal_ref_progunit_): Change BDATA into EXT 1017 right at the beginning, so EXTERNAL FOO followed later 1018 by SUBROUTINE FOO is not diagnosed. 1019 1020 Fix 970813-0.f: 1021 * com-rt.def (FFECOM_gfrtALARM): Returns `integer', not 1022 `void'. 1023 1024Mon Aug 18 09:01:54 1997 Jeffrey A Law (law@cygnus.com) 1025 1026 * Makefile.in (F77_OBJS): Re-alphabetize. 1027 * Make-lang.in (F77_SRCS): Likewise. 1028 1029Sun Aug 17 08:35:11 1997 Jeffrey A Law (law@cygnus.com) 1030 1031 * INSTALL: Rebuilt. 1032 * install.texi: Remove "Object File Differences" section. Remove 1033 all references to zzz.o failing comparison tests. 1034 * version.c, version.h: Renamed from zzz.c and zzz.h. Remove 1035 date and time stamps so a 3 stage build reports no differences. 1036 * Make-lang.in: Corresponding changes. 1037 * Makefile.in: Likewise. 1038 * g77.c, parse.c: Likewise. 1039 1040 * intdoc.texi: Remove generated file from distribution. 1041 1042Sun Aug 17 03:32:44 1997 Craig Burley <burley@gnu.ai.mit.edu> 1043 1044 Fix up problems when virtual memory exhausted: 1045 * malloc.c (malloc_new_): Use gcc's xmalloc(), so we 1046 print a nicer message when malloc returns no memory. 1047 (malloc_resize_): Ditto for xrealloc(). 1048 1049 * Make-lang.in, Makefile.in: Comment out lines containing 1050 just formfeeds. 1051 1052Sat Aug 16 19:41:33 1997 Craig Burley <burley@gnu.ai.mit.edu> 1053 1054 * com.c (ffecom_make_gfrt_): For rttypeREAL_F2C_, return 1055 double_type_node; for rttypeREAL_GNU_, return 1056 _real_type_node. 1057 10581997-08-13 Dave Love <d.love@dl.ac.uk> 1059 1060 * config-lang.in (diff_excludes): Add some hints about known 1061 problematic platforms. 1062 10631997-08-13 Dave Love <d.love@dl.ac.uk> 1064 1065 * intdoc.h: Document `alarm'. 1066 1067Tue Aug 12 10:23:02 1997 Jeffrey A Law (law@cygnus.com) 1068 1069 * config-lang.in: Don't demand the backend patch. 1070 * com.c (lang_printable_name): Second argument is now an int. Don't 1071 store into the value of the second argument. 1072 * top.c (ffe_decode_option): Temporarily disable setting 1073 of "Toon" loop options until we figure out how to address 1074 them. 1075 1076Mon Aug 11 23:18:35 1997 Jeffrey A Law (law@cygnus.com) 1077 1078 * g77-0.5.21-19970811 Imported. 1079 This file describes changes to the front end necessary to make 1080 it work with egcs. 1081 1082Mon Aug 11 21:19:22 1997 Craig Burley <burley@gnu.ai.mit.edu> 1083 1084 * Make-lang.in ($(RUNTIMESTAGESTUFF)): Add 1085 f/runtime/stamp-lib. 1086 1087Mon Aug 11 01:52:03 1997 Craig Burley <burley@gnu.ai.mit.edu> 1088 1089 * com.c (ffecom_build_complex_constant_): Go with the 1090 new build_complex() approach used in gcc-2.8. 1091 1092 * com.c (ffecom_sym_transform_): Don't set 1093 DECL_IN_SYSTEM_HEADER for a tree node that isn't 1094 a VAR_DECL, which happens when var is in common! 1095 1096 * com.c (ffecom_expr_intrinsic_) (case FFEINTRIN_impALARM): 1097 No need to test codegen_imp -- there's only one valid here. 1098 1099 * intrin.def (FFEINTRIN_impALARM): Specify `Status' argument 1100 as write-only. 1101 1102Fri Aug 8 05:40:23 1997 Craig Burley <burley@gnu.ai.mit.edu> 1103 1104 Substantial changes to accommodate distinctions among 1105 run-time routines that support intrinsics, and between 1106 routines that compute and return the same type vs. those 1107 that compute one type and return another (or `void'): 1108 * com-rt.def: Specify new return type REAL_F2C_ instead 1109 of many DOUBLE_, COMPLEX_F2C_ instead of COMPLEX_, and 1110 so on. 1111 Clear up the *BES* routines "once and for all". 1112 * com.c: New return types. 1113 (ffecom_convert_narrow_, ffecom_convert_widen_): 1114 New functions that are "safe" variants of convert(), 1115 to catch errors that ffecom_expr_intrinsic_() now 1116 no longer catches. 1117 (ffecom_arglist_expr_): Ensure arguments are not 1118 converted to narrower types. 1119 (ffecom_call_): Ensure return value is not converted 1120 to a wider type. 1121 (ffecom_char_args_): Use new ffeintrin_gfrt_direct() 1122 routine. 1123 (ffecom_expr_intrinsic_): Simplify how run-time 1124 routine is selected (via `gfrt' only now; lose the 1125 redundant `ix' variable). 1126 Eliminate the `library' label; any code that doesn't 1127 return directly just `break's out now with `gfrt' 1128 set appropriately. 1129 Set `gfrt' to default choice initially, either a 1130 fast direct form or, if not available, a slower 1131 indirect-callable form. 1132 (ffecom_make_gfrt_): No longer need to do special 1133 check for complex; it's built into the new return-type 1134 regime. 1135 (ffecom_ptr_to_expr): Use new ffeintrin_gfrt_indirect() 1136 routine. 1137 * intrin.c, intrin.h: `gfrt' field replaced with three fields, 1138 so it is easier to provide faster direct-callable and 1139 GNU-convention indirect-callable routines in the future. 1140 DEFIMP macro adjusted accordingly, along with all its uses. 1141 (ffeintrin_gfrt_direct): New function. 1142 (ffeintrin_gfrt_indirect): Ditto. 1143 (ffeintrin_is_actualarg): If `-fno-f2c' is in effect, 1144 require a GNU-callable version of intrinsic instead of 1145 an f2c-callable version, so indirect calling is still checked. 1146 * intrin.def: Replace one GFRT field with the three new fields, 1147 as appropriate for each DEFIMP intrinsic. 1148 1149 * com.c (ffecom_stabilize_aggregate_, 1150 ffecom_convert_to_complex_): Make these `static'. 1151 1152Thu Aug 7 11:24:34 1997 Craig Burley <burley@gnu.ai.mit.edu> 1153 1154 Provide means for front end to determine actual 1155 "standard" return type for an intrinsic if it is 1156 passed as an actual argument: 1157 * com.h, com.c (ffecom_gfrt_basictype, 1158 ffecom_gfrt_kindtype): New functions. 1159 (ffecom_gfrt_kind_type_): Replaced with new function. 1160 All callers updated. 1161 (ffecom_make_gfrt_): No longer need do anything 1162 with kind type. 1163 1164 * intrin.c (ffeintrin_basictype, ffeintrin_kindtype): 1165 Now returns correct type info for specific intrinsic 1166 (based on type of run-time-library implementation). 1167 1168Wed Aug 6 23:08:46 1997 Craig Burley <burley@gnu.ai.mit.edu> 1169 1170 * global.c (ffeglobal_ref_progunit_): Don't reset 1171 number of arguments just due to new type info, 1172 so useful warnings can be issued. 1173 11741997-08-06 Dave Love <d.love@dl.ac.uk> 1175 1176 * intrin.def: Fix IDATE_vxt argument order. 1177 * intdoc.h: Likewise. 1178 1179Thu Jul 31 22:22:03 1997 Craig Burley <burley@gnu.ai.mit.edu> 1180 1181 * global.c (ffeglobal_proc_ref_arg): If REF/DESCR 1182 disagreement, DESCR is CHARACTER, and types disagree, 1183 pretend the argsummary agrees so the message ends up 1184 being about type disagreement. 1185 (ffeglobal_proc_def_arg): Ditto. 1186 1187 * expr.c (ffeexpr_token_first_rhs_3_): Set info for LABTOK 1188 to NONE of everything, to avoid misdiagnosing filewide 1189 usage of alternate returns. 1190 1191Sun Jul 20 23:07:47 1997 Craig Burley <burley@gnu.ai.mit.edu> 1192 1193 * com.c (ffecom_sym_transform_): If type gets set 1194 to error_mark_node, just return that for transformed symbol. 1195 (ffecom_member_phase2_): If type gets set to error_mark_node, 1196 just return. 1197 (ffecom_check_size_overflow_): Add `dummy' argument to 1198 flag that type is for a dummy, update all callers. 1199 1200Sun Jul 13 17:40:53 1997 Craig Burley <burley@gnu.ai.mit.edu> 1201 1202 Fix 970712-1.f: 1203 * where.c (ffewhere_set_from_track): If start point 1204 is too large, just use initial start point. 0.6 should 1205 fix all this properly. 1206 1207 Fix 970712-2.f: 1208 * com.c (ffecom_sym_transform_): Preserve error_mark_node for type. 1209 (ffecom_type_localvar_): Ditto. 1210 (ffecom_sym_transform_): If type is error_mark_node, 1211 don't error-check decl size, because back end responds by 1212 setting that to an integer 0 instead of error_mark_node. 1213 (ffecom_transform_common_): Same as earlier fix to _transform_ 1214 in that size is checked by dividing BITS_PER_UNIT instead of 1215 multiplying. 1216 (ffecom_transform_equiv_): Ditto. 1217 1218 Fix 970712-3.f: 1219 * stb.c (ffestb_R10014_): Fix flaky fall-through in error 1220 test for FFELEX_typeCONCAT by just replicating the code, 1221 and do FFELEX_typeCOLONCOLON while at it. 1222 12231997-07-07 Dave Love <d.love@dl.ac.uk> 1224 1225 * intdoc.h: Add various missing pieces; correct GMTIME, LTIME 1226 result ordering. 1227 1228 * intrin.def, com-rt.def: Add alarm. 1229 1230 * com.c (ffecom_expr_intrinsic_): Add case for alarm. 1231 1232Thu Jun 26 04:19:40 1997 Craig Burley <burley@gnu.ai.mit.edu> 1233 1234 Fix 970302-3.f: 1235 * com.c (ffecom_sym_transform_): For sanity-check compare 1236 of gbe size of local variable to g77 expectation, 1237 use varasm.c/assemble_variable technique of dividing 1238 BITS_PER_UNIT out of gbe info instead of multiplying 1239 g77 info up, to avoid crash when size in bytes is very 1240 large, and overflows an `int' or similar when multiplied. 1241 1242 Fix 970626-2.f: 1243 * com.c (ffecom_finish_symbol_transform_): Don't bother 1244 transforming a dummy argument, to avoid a crash. 1245 * ste.c (ffeste_R1227): Don't return a value if the 1246 result decl, or its type, is error_mark_node. 1247 1248 Fix 970626-4.f: 1249 * lex.c (ffelex_splice_tokens): `-fdollar-ok' is 1250 irrelevant to whether a DOLLAR token should be made 1251 from an initial character of `$'. 1252 1253 Fix 970626-6.f: 1254 * stb.c (ffestb_do3_): DO iteration variable is an 1255 lhs, not rhs, expression. 1256 1257 Fix 970626-7.f and 970626-8.f: 1258 * expr.c (ffeexpr_cb_comma_i_1_): Set IMPDO expression 1259 to have clean info, because undefined rank, for example, 1260 caused crash on mangled source on UltraSPARC but not 1261 on Alpha for a series of weird reasons. 1262 (ffeexpr_cb_close_paren_): If not CLOSE_PAREN, push 1263 opANY expression onto stack instead of attempting 1264 to mimic what program might have wanted. 1265 (ffeexpr_cb_close_paren_): Don't wrap opPAREN around 1266 opIMPDO, just warn that it's gratuitous. 1267 * bad.def (FFEBAD_IMPDO_PAREN): New warning. 1268 1269 Fix 970626-9.f: 1270 * expr.c (ffeexpr_declare_parenthesized_): Must shut down 1271 parsing in kindANY case, otherwise the parsing engine might 1272 decide there's an ambiguity. 1273 (ffeexpr_token_name_rhs_): Eliminate parentypeSUBROUTINE_ 1274 case, so we crash right away if it comes through. 1275 * st.c, st.h, sta.c, sta.h (ffest_shutdown, ffesta_shutdown): 1276 New functions. 1277 1278Tue Jun 24 19:47:29 1997 Craig Burley <burley@gnu.ai.mit.edu> 1279 1280 * com.c (ffecom_check_size_overflow_): New function 1281 catches some cases of the size of a type getting 1282 too large. varasm.c must catch the rest. 1283 (ffecom_sym_transform_): Use new function. 1284 (ffecom_type_localvar_): Ditto. 1285 1286Mon Jun 23 01:09:28 1997 Craig Burley <burley@gnu.ai.mit.edu> 1287 1288 * global.c (ffeglobal_proc_def_arg): Fix comparison 1289 of argno to #args. 1290 (ffeglobal_proc_ref_arg): Ditto. 1291 1292 * lang-options.h, top.c: Rename `-fdebug' to `-fxyzzy', 1293 since it's an unsupported internals option and some 1294 poor user might guess that it does something. 1295 1296 * bad.def: Make a warning for each filewide diagnostic. 1297 Put all filewides together. 1298 * com.c (ffecom_sym_transform_): Don't substitute 1299 known global tree for global entities when `-fno-globals'. 1300 * global.c (ffeglobal_new_progunit_): Don't produce 1301 fatal diagnostics about globals when `-fno-globals'. 1302 Instead, produce equivalent warning when `-Wglobals'. 1303 (ffeglobal_proc_ref_arg): Ditto. 1304 (ffeglobal_proc_ref_nargs): Ditto. 1305 (ffeglobal_ref_progunit_): Ditto. 1306 * lang-options.h, top.c, top.h: New `-fno-globals' option. 1307 1308Sat Jun 21 12:32:54 1997 Craig Burley <burley@gnu.ai.mit.edu> 1309 1310 * expr.c (ffeexpr_fulfill_call_): Set array variable 1311 to avoid warning about uninitialized variable. 1312 1313 * Make-lang.in: Get rid of any setting of HOST_* macros, 1314 since these will break gcc's build! 1315 * makefile: New file to make building derived files 1316 easier. 1317 1318Thu Jun 19 18:19:28 1997 Craig Burley <burley@gnu.ai.mit.edu> 1319 1320 * g77.c (main): Install Emilio Lopes' patch to support 1321 Ratfor, and to fix the printing of the version string 1322 to go to stderr, not stdout. 1323 * lang-specs.h: Install Emilio Lopes' patch to support 1324 Ratfor, and patch the result to support picking up 1325 `*f771' from the `specs' file. 1326 1327Thu Jun 12 14:36:25 1997 Craig Burley <burley@gnu.ai.mit.edu> 1328 1329 * storag.c (ffestorag_update_init, ffestorag_update_save): 1330 Also update parent, in case equivalence processing 1331 has already eliminated pointers to it via the 1332 local equivalence info. 1333 1334Tue Jun 10 14:08:26 1997 Craig Burley <burley@gnu.ai.mit.edu> 1335 1336 * intdoc.c: Add cross-reference to end of description 1337 of any generic intrinsic pointing to other intrinsics 1338 with the same name. 1339 1340 Warn about explicit type declaration for intrinsic 1341 that disagrees with invocation: 1342 * expr.c (ffeexpr_paren_rhs_let_): Preserve type info 1343 for intrinsic functions. 1344 (ffeexpr_token_funsubstr_): Ditto. 1345 * intrin.c (ffeintrin_fulfill_generic): Warn if type 1346 info of fulfilled intrinsic invocation disagrees with 1347 explicit type info given symbol. 1348 (ffeintrin_fulfill_specific): Ditto. 1349 * stc.c (ffestc_R1208_item): Preserve type info 1350 for intrinsics. 1351 (ffestc_R501_item): Ditto. 1352 1353Mon Jun 9 17:45:44 1997 Craig Burley <burley@gnu.ai.mit.edu> 1354 1355 * com.c (ffecom_expr_intrinsic_): Fix several of the 1356 libU77/libF77-unix handlers to properly convert their 1357 arguments. 1358 1359 * com-rt.def (FFECOM_gfrtFSTAT): Append missing "i" to 1360 arg string. 1361 1362Fri Jun 6 14:37:30 1997 Craig Burley <burley@gnu.ai.mit.edu> 1363 1364 * com.c (ffecom_expr_intrinsic_): Have a case statement 1365 for every intrinsic implementation, so missing ones 1366 are caught via gcc warnings. 1367 Don't call ffeintrin_codegen_imp anymore. 1368 * intrin.c (ffeintrin_fulfill_generic): Remove cg_imp 1369 stuff from here. 1370 (ffeintrin_codegen_imp): Delete this function. 1371 * intrin.def, intrin.h: Remove DEFIMQ stuff from here 1372 as well. 1373 1374Thu Jun 5 13:03:07 1997 Craig Burley <burley@gnu.ai.mit.edu> 1375 1376 * top.c (ffe_decode_option): New -fbadu77-intrinsics-* 1377 options. 1378 * top.h: Ditto. 1379 * intrin.h: New BADU77 family. 1380 * intrin.c (ffeintrin_state_family): Ditto. 1381 1382 Implement new scheme to track intrinsic names vs. forms: 1383 * intrin.c (ffeintrin_fulfill_generic), 1384 (ffeintrin_fulfill_specific), (ffeintrin_is_intrinsic), 1385 intrin.def: The documented name is now either in the 1386 generic info or, if no generic, in the specific info. 1387 For a generic, the specific info contains merely the 1388 distinguishing form (usually "function" or "subroutine"), 1389 used for diagnostics about ambiguous references and 1390 in the documentation. 1391 1392 * intrin.def: Clean up formatting of DEFNAME block. 1393 Convert many libU77 intrinsics into generics that 1394 support both subroutine and function forms. 1395 Put the function forms of side-effect routines into 1396 the new BADU77 family. 1397 Make MCLOCK and TIME return INTEGER*4 again, and add 1398 INTEGER*8 equivalents called MCLOCK8 and TIME8. 1399 Fix up more status return values to be written and 1400 insist on them being I1 as well. 1401 * com.c (ffecom_expr_intrinsic_): Lots of changes to 1402 support new libU77 intrinsic interfaces. 1403 1404Mon Jun 2 00:37:53 1997 Craig Burley <burley@gnu.ai.mit.edu> 1405 1406 * com.c (ffecom_init_0): Pointer type is now INTEGER(KIND=7), 1407 not INTEGER(KIND=0), since we want to reserve KIND=0 for 1408 future use. 1409 1410Thu May 29 14:30:33 1997 Craig Burley <burley@gnu.ai.mit.edu> 1411 1412 Fix bugs preventing CTIME(I*4) from working correctly: 1413 * com.c (ffecom_char_args_): For FUNCREF case, process 1414 args to intrinsic just as they would be in 1415 ffecom_expr_intrinsic_. 1416 * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtTTYNAM): Fix 1417 argument decls to specify `&'. 1418 1419Wed May 28 22:19:49 1997 Craig Burley <burley@gnu.ai.mit.edu> 1420 1421 Fix gratuitous warnings exposed by dophot aka 970528-1: 1422 * global.c (ffeglobal_proc_def_arg, ffeglobal_proc_ref_arg): 1423 Support distinct function/subroutine arguments instead of 1424 just procedures. 1425 * global.h: Ditto. 1426 * expr.c (ffeexpr_fulfill_call_): A SYMTER with kindNONE 1427 also is a procedure (either function or subroutine). 1428 1429Mon May 26 20:25:31 1997 Craig Burley <burley@gnu.ai.mit.edu> 1430 1431 * bad.def: Have several lexer diagnostics refer to 1432 documentation for people who need more info on what Fortran 1433 source code is supposed to look like. 1434 1435 * expr.c (ffeexpr_reduced_bool1_), bad.def: New diagnostics 1436 specific to .NOT. now mention only one operand instead 1437 of two. 1438 1439 * g77.c: Recognize -fsyntax-only, similar to -c etc. 1440 (lookup_option): Fix bug that prevented non-`--' options 1441 from being recognized. 1442 1443Sun May 25 04:29:04 1997 Craig Burley <burley@gnu.ai.mit.edu> 1444 1445 * intrin.def (FFEINTRIN_impCTIME): Accept `I*' expression 1446 for STime instead of requiring `I2'. 1447 1448Tue May 20 16:14:40 1997 Craig Burley <burley@gnu.ai.mit.edu> 1449 1450 * symbol.c (ffesymbol_reference): All references to 1451 standard intrinsics are considered explicit, so as 1452 to avoid generating basically useless warnings. 1453 * intrin.c, intrin.h (ffeintrin_is_standard): Returns TRUE 1454 if intrinsic is standard. 1455 1456Sun May 18 21:14:59 1997 Craig Burley <burley@gnu.ai.mit.edu> 1457 1458 * com-rt.def: Changed all external names of the 1459 form `"\([a-z0-9]*\)_' to `"G77_\1_0"' so as to 1460 allow any name valid as an intrinsic to be used 1461 as such and as a user-defined external procedure 1462 name or common block as well. 1463 1464Thu May 8 13:07:10 1997 Craig Burley <burley@gnu.ai.mit.edu> 1465 1466 * expr.c (ffeexpr_cb_end_notloc_): For %VAL, %REF, and 1467 %DESCR, copy arg info into new node. 1468 1469Mon May 5 14:42:17 1997 Craig Burley <burley@gnu.ai.mit.edu> 1470 1471 From Uwe F. Mayer <mayer@math.Vanderbilt.Edu>: 1472 * Make-lang.in (g77-cross): Fix typo in g77.c path. 1473 1474 From Brian McIlwrath <bkm@star.rl.ac.uk>: 1475 * lang-specs.h: Have g77 pick up options from a section 1476 labeled `*f771' of the `specs' file. 1477 1478Sat May 3 02:46:08 1997 Craig Burley <burley@gnu.ai.mit.edu> 1479 1480 * intrin.def (FFEINTRIN_defSIGNAL): Add optional `Status' 1481 argument that com.c already expects (per Dave Love). 1482 1483 More changes to support better tracking of (filewide) 1484 globals, in particular, the arguments to procedures: 1485 * bad.def (FFEBAD_FILEWIDE_NARGS, FFEBAD_FILEWIDE_NARGS_W, 1486 FFEBAD_FILEWIDE_ARG, FFEBAD_FILEWIDE_ARG_W): New diagnostics. 1487 * expr.c (ffebad_fulfill_call_): Provide info on each 1488 argument to ffeglobal. 1489 * global.c, global.h (ffeglobal_proc_def_arg, 1490 ffeglobal_proc_def_nargs, ffeglobal_proc_ref_arg, 1491 ffeglobal_proc_ref_args): New functions. 1492 (ffeglobalArgSummary, ffeglobalArgInfo_): New types. 1493 1494Tue Apr 29 18:35:41 1997 Craig Burley <burley@gnu.ai.mit.edu> 1495 1496 More changes to support better tracking of (filewide) 1497 globals: 1498 * expr.c (ffeexpr_fulfill_call_): New function. 1499 (ffeexpr_token_name_lhs_): Call after building procedure 1500 reference expression. Also leave info field for ANY-ized 1501 expression alone. 1502 (ffeexpr_token_arguments_): Ditto. 1503 1504Mon Apr 28 20:04:18 1997 Craig Burley <burley@gnu.ai.mit.edu> 1505 1506 Changes to support better tracking of (filewide) 1507 globals, mainly to avoid crashes due to inlining: 1508 * bad.def: Go back to quoting intrinsic names, 1509 (FFEBAD_FILEWIDE_DISAGREEMENT, FFEBAD_FILEWIDE_TIFF, 1510 FFEBAD_FILEWIDE_TYPE_MISMATCH): New diagnostics. 1511 (FFEBAD_INTRINSIC_EXPIMP, FFEBAD_INTRINSIC_GLOBAL): Reword 1512 for clarity. 1513 * com.c (ffecom_do_entry_, ffecom_start_progunit_, 1514 ffecom_sym_transform_): Accommodate new FFEGLOBAL_typeEXT 1515 possibility. 1516 * expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_extfunc_, 1517 ffeexpr_sym_rhs_actualarg_, ffeexpr_declare_parenthesized_, 1518 ffeexpr_paren_rhs_let_, ffeexpr_token_funsubstr_): 1519 Fill in real kind info instead of leaving NONE where 1520 appropriate. 1521 Register references to intrinsics and globals with ffesymbol 1522 using new ffesymbol_reference function instead of 1523 ffesymbol_globalize. 1524 * global.c (ffeglobal_type_string_): New array for 1525 new diagnostics. 1526 * global.h, global.c: 1527 Replace ->init mechanism with ->tick mechanism. 1528 Move other common-related members into a substructure of 1529 a union, so the proc substructure can be introduced 1530 to include members related to externals other than commons. 1531 Don't complain about ANY-ized globals; ANY-ize globals 1532 once they're complained about, in any case where code 1533 generation could become a problem. 1534 Handle global entries that have NONE type (seen as 1535 intrinsics), EXT type (seen as EXTERNAL), and so on. 1536 Keep track of kind and type of externals, both via 1537 definition and via reference. 1538 Diagnose disagreements about kind or type of externals 1539 (such as functions). 1540 (ffeglobal_ref_intrinsic, ffeglobal_ref_progunit_): New 1541 functions. 1542 * stc.c (ffestc_R1207_item, ffestc_R1208_item, 1543 ffestc_R1219, ffestc_R1226): 1544 Call ffesymbol_reference, not ffesymbol_globalize. 1545 * stu.c (ffestu_sym_end_transition, 1546 ffestu_sym_exec_transition): 1547 Call ffesymbol_reference, not ffesymbol_globalize. 1548 * symbol.c (ffesymbol_globalize): Removed... 1549 (ffesymbol_reference): ...to this new function, 1550 which more generally registers references to symbols, 1551 globalizes globals, and calls on the ffeglobal module 1552 to check globals filewide. 1553 1554 * global.h, global.c: Rename some macros and functions 1555 to more clearly distinguish common from other globals. 1556 All callers changed. 1557 1558 * com.c (ffecom_sym_transform_): Trees describing 1559 filewide globals must be allocated on permanent obstack. 1560 1561 * expr.c (ffeexpr_token_name_lhs_): Don't generate 1562 gratuitous diagnostics for FFEINFO_whereANY case. 1563 1564Thu Apr 17 03:27:18 1997 Craig Burley <burley@gnu.ai.mit.edu> 1565 1566 * global.c: Add support for flagging intrinsic/global 1567 confusion via warnings. 1568 * bad.def (FFEBAD_INTRINSIC_EXPIMP, 1569 FFEBAD_INTRINSIC_GLOBAL): New diagnostics. 1570 * expr.c (ffeexpr_token_funsubstr_): Ditto. 1571 (ffeexpr_sym_lhs_call_): Ditto. 1572 (ffeexpr_paren_rhs_let_): Ditto. 1573 * stc.c (ffestc_R1208_item): Ditto. 1574 1575Wed Apr 16 22:40:56 1997 Craig Burley <burley@gnu.ai.mit.edu> 1576 1577 * expr.c (ffeexpr_declare_parenthesized_): INCLUDE 1578 context can't be an intrinsic invocation either. 1579 1580Fri Mar 28 10:43:28 1997 Craig Burley <burley@gnu.ai.mit.edu> 1581 1582 * expr.c (ffeexpr_token_arguments_): Make sure top of 1583 exprstack is operand before dereferencing operand field. 1584 1585 * lex.c (ffelex_prepare_eos_): Fill up truncated 1586 hollerith token, so crash on null ->text field doesn't 1587 happen later. 1588 1589 * stb.c (ffestb_R10014_): If NAMES isn't recognized (or 1590 the recognized part is followed in the token by a 1591 non-digit), don't try and collect digits, as there 1592 might be more than FFEWHERE_indexMAX letters to skip 1593 past to do so -- and the code is diagnosed anyway. 1594 1595Thu Mar 27 00:02:48 1997 Craig Burley <burley@gnu.ai.mit.edu> 1596 1597 * com.c (ffecom_sym_transform_): Force local 1598 adjustable array onto stack. 1599 1600 * stc.c (ffestc_R547_item_object): Don't actually put 1601 the symbol in COMMON if the symbol has already been 1602 EQUIVALENCE'd to a different COMMON area. 1603 1604 * equiv.c (ffeequiv_add): Don't actually do anything 1605 if there's a disagreement over which COMMON area is 1606 involved. 1607 1608Tue Mar 25 03:35:19 1997 Craig Burley <burley@gnu.ai.mit.edu> 1609 1610 * com.c (ffecom_transform_common_): If no explicit init 1611 of COMMON area, don't actually init it even though 1612 storage area suggests it. 1613 1614Mon Mar 24 12:10:08 1997 Craig Burley <burley@gnu.ai.mit.edu> 1615 1616 * lex.c (ffelex_image_char_): Avoid overflowing the 1617 column counter itself, as well as the card image. 1618 1619 * where.c (ffewhere_line_new): Cast ffelex_line_length() 1620 to (size_t) so 255 doesn't overflow to 0! 1621 1622 * stc.c (ffestc_labeldef_notloop_begin_): Don't gratuitously 1623 terminate loop before processing statement, so block 1624 doesn't disappear out from under EXIT/CYCLE processing. 1625 (ffestc_labeldef_notloop_): Has old code from above 1626 function, instead of just calling it. 1627 1628 * expr.c (ffeexpr_cb_comma_i_4_): Don't skip over 1629 arbitrary token (such as EOS). 1630 1631 * com.c (ffecom_init_zero_): Handle RECORD_TYPE and 1632 UNION_TYPE so -fno-zeros works with -femulated-complex. 1633 16341997-03-12 Dave Love <d.love@dl.ac.uk> 1635 1636 * intrin.def: New intrinsics INT2, INT8, CPU_TIME. Fix AND, OR, 1637 XOR. [Integrated by burley, AND/OR/XOR already fixed, INT8 1638 implementation changed/fixed.] 1639 1640Wed Mar 12 10:40:08 1997 Craig Burley <burley@gnu.ai.mit.edu> 1641 1642 * Make-lang.in ($(srcdir)/f/intdoc.texi): Simplify rules 1643 so building f/intdoc is not always necessary; remove 1644 f/intdoc after running it if it is built. 1645 1646Tue Mar 11 23:42:00 1997 Craig Burley <burley@gnu.ai.mit.edu> 1647 1648 * intrin.def (FFEINTRIN_impAND, FFEINTRIN_impOR, 1649 FFEINTRIN_impXOR): Use the IAND, IOR, and IEOR implementations 1650 of these, instead of crashing in ffecom_expr_intrinsic_ 1651 or adding case labels there. 1652 1653Mon Mar 10 22:51:23 1997 Craig Burley <burley@gnu.ai.mit.edu> 1654 1655 * intdoc.c: Fix so any C compiler can compile this. 1656 1657Fri Feb 28 13:16:50 1997 Craig Burley <burley@gnu.ai.mit.edu> 1658 1659 * Version 0.5.20 released. 1660 1661Fri Feb 28 01:45:25 1997 Craig Burley <burley@gnu.ai.mit.edu> 1662 1663 * Make-lang.in (RUNTIMESTAGESTUFF, LIBU77STAGESTUFF): 1664 Move some files incorrectly in the former to the latter, 1665 and add another file or two to the latter. 1666 1667 New meanings for (KIND=n), and new denotations in the 1668 little language describing intrinsics: 1669 * com.c (ffecom_init_0): Assign new meanings. 1670 * intdoc.c: Document new meanings. 1671 Support the new denotations. 1672 * intrin.c: Employ new meanings, mapping them to internal 1673 values (which are the same as they ever were for now). 1674 Support the new denotations. 1675 * intrin.def: Switch DEFIMP table to the new denotations. 1676 1677 * intrin.c (ffeintrin_check_): Fix bug that was leaving 1678 LOC() and %LOC() returning INTEGER*4 on systems where 1679 it should return INTEGER*8. 1680 1681 * type.c: Canonicalize function definitions, for etags 1682 and such. 1683 1684Wed Feb 26 20:43:03 1997 Craig Burley <burley@gnu.ai.mit.edu> 1685 1686 * com.c (ffecom_init_0): Choose INTEGER(KIND=n) types, 1687 where n is 2, 3, and 4, according to the new docs 1688 instead of according to the old C correspondences 1689 (which seem less useful at this point). 1690 1691 * equiv.c (ffeequiv_destroy_): New function. 1692 (ffeequiv_layout_local_): Use this new function 1693 whenever the laying out of a local equivalence chain 1694 is aborted for any reason. 1695 Otherwise ensure that symbols no longer reference 1696 the stale ffeequiv entries that result when they 1697 are killed off in this procedure. 1698 Also, the rooted symbol is one that has storage, 1699 it really is irrelevant whether it has an equiv entry 1700 at this point (though the code to remove the equiv 1701 entry was put in at the end, just in case). 1702 (ffeequiv_kill): When doing internal checks, make 1703 sure the victim isn't named by any symbols it points 1704 to. Not as complete a check as looking through the 1705 entire symbol table (which does matter, since some 1706 code in equiv.c used to remove symbols from the lists 1707 for an ffeequiv victim but not remove that victim as the 1708 symbol's equiv info), but this check did find some 1709 real bugs in the code (that were fixed). 1710 1711Mon Feb 24 16:42:13 1997 Craig Burley <burley@gnu.ai.mit.edu> 1712 1713 * com.c (ffecom_expr_intrinsic_): Fix a couple of 1714 warnings about uninitialized variables. 1715 * intrin.c (ffeintrin_check_): Ditto, but there were 1716 a couple of _real_ uninitialized-variable _bugs_ here! 1717 (ffeintrin_fulfill_specific): Ditto, no real bug here. 1718 1719Sun Feb 23 15:01:20 1997 Craig Burley <burley@gnu.ai.mit.edu> 1720 1721 Clean up diagnostics (especially about intrinsics): 1722 * bad.def (FFEBAD_UNIMPL_STMT): Remove. 1723 (FFEBAD_INTRINSIC_*, FFEBAD_NEED_INTRINSIC): Clean these 1724 up so they're friendlier. 1725 (FFEBAD_INTRINSIC_CMPAMBIG): New. 1726 * intrin.c (ffeintrin_fulfill_generic, 1727 ffeintrin_fulfill_specific, ffeintrin_is_intrinsic): 1728 Always choose 1729 generic or specific name text (which is for doc purposes 1730 anyway) over implementation name text (which is for 1731 internal use). 1732 * intrin.def: Use more descriptive name texts for generics 1733 and specifics in cases where the names themselves are not 1734 enough (e.g. IDATE, which has two forms). 1735 1736 Fix some intrinsic mappings: 1737 * intrin.def (FFEINTRIN_specIDINT, FFEINTRIN_specAND, 1738 FFEINTRIN_specDFLOAT, FFEINTRIN_specDREAL, FFEINTRIN_specOR, 1739 FFEINTRIN_specXOR): Now have their own implementations, 1740 instead of borrowing from others. 1741 (FFEINTRIN_specAJMAX0, FFEINTRIN_specAJMIN0, FFEINTRIN_specBJTEST, 1742 FFEINTRIN_specDFLOTJ, FFEINTRIN_specFLOATJ, FFEINTRIN_specJIABS, 1743 FFEINTRIN_specJIAND, FFEINTRIN_specJIBCLR, FFEINTRIN_specJIBITS, 1744 FFEINTRIN_specJIBSET, FFEINTRIN_specJIDIM, FFEINTRIN_specJIDINT, 1745 FFEINTRIN_specJIDNNT, FFEINTRIN_specJIEOR, FFEINTRIN_specJIFIX, 1746 FFEINTRIN_specJINT, FFEINTRIN_specJIOR, FFEINTRIN_specJISHFT, 1747 FFEINTRIN_specJISHFTC, FFEINTRIN_specJISIN, FFEINTRIN_specJMAX0, 1748 FFEINTRIN_specJMAX1, FFEINTRIN_specJMIN0, FFEINTRIN_specJMIN1, 1749 FFEINTRIN_specJMOD, FFEINTRIN_specJNINT, FFEINTRIN_specJNOT,): 1750 Turn these implementations off, since it's not clear 1751 just what types they expect in the context of portable Fortran. 1752 (DFLOAT): Now in FVZ family, since f2c supports them 1753 1754 Support intrinsic inquiry functions (BIT_SIZE, LEN): 1755 * intrin.c: Allow `i' in <arg_extra>. 1756 * intrin.def (FFEINTRIN_impBIT_SIZE, FFEINTRIN_impLEN): 1757 Mark args with `i'. 1758 1759Sat Feb 22 13:34:09 1997 Craig Burley <burley@gnu.ai.mit.edu> 1760 1761 Only warn, don't error, for reference to unimplemented 1762 intrinsic: 1763 * bad.def (FFEBAD_INTRINSIC_UNIMPLW): Warning version 1764 of _UNIMPL. 1765 * intrin.c (ffeintrin_is_intrinsic): Use new warning 1766 version of _UNIMPL (FFEBAD_INTRINSIC_UNIMPLW). 1767 1768 Complain about REAL(Z) and AIMAG(Z) (Z is DOUBLE COMPLEX): 1769 * bad.def (FFEBAD_INTRINSIC_CMPAMBIG): New diagnostic. 1770 * expr.c: Needed #include "intrin.h" anyway. 1771 (ffeexpr_token_intrincheck_): New function handles delayed 1772 diagnostic for "REAL(REAL(expr)" if next token isn't ")". 1773 (ffeexpr_token_arguments_): Do most of the actual checking here. 1774 * intrin.h, intrin.c (ffeintrin_fulfill_specific): New 1775 argument, check_intrin, to tell caller that intrin is REAL(Z) 1776 or AIMAG(Z). All callers updated, mostly to pass NULL in 1777 for this. 1778 (ffeintrin_check_): Also has new arg check_intrin for same 1779 purpose. All callers updated the same way. 1780 * intrin.def (FFEINTRIN_impAIMAG): Change return type 1781 from "R0" to "RC", to accommodate f2c (and perhaps other 1782 non-F90 F77 compilers). 1783 * top.h, top.c: New option -fugly-complex. 1784 1785 New GNU intrinsics REALPART, IMAGPART, and COMPLEX: 1786 * com.c (ffecom_expr_intrinsic_): Implement impCOMPLEX 1787 and impREALPART here. (specIMAGPART => specAIMAG.) 1788 * intrin.def: Add the intrinsics here. 1789 1790 Rename implementations of VXTIDATE and VXTTIME to IDATEVXT 1791 and TIMEVXT, so they sort more consistently: 1792 * com.c (ffecom_expr_intrinsic_): 1793 * intrin.def: 1794 1795 Delete intrinsic group `dcp', add `gnu', etc.: 1796 * intrin.c (ffeintrin_state_family): FFEINTRIN_familyGNU 1797 replaces FFEINTRIN_familyDCP, and gets state from `gnu' 1798 group. 1799 Get rid of FFEINTRIN_familyF2Z, nobody needs it. 1800 Move FFEINTRIN_specDCMPLX from DCP family to FVZ family, 1801 as f2c has it. 1802 Move FFEINTRIN_specDFLOAT from F2C family to FVZ family. 1803 (FFEINTRIN_specZABS, FFEINTRIN_specZCOS, FFEINTRIN_specZEXP, 1804 FFEINTRIN_specZLOG, FFEINTRIN_specZSIN, FFEINTRIN_specZSQRT): 1805 Move these from F2Z family to F2C family. 1806 * intrin.h (FFEINTRIN_familyF2Z, FFEINTRIN_familyDCP): Remove. 1807 (FFEINTRIN_familyGNU): Add. 1808 * top.h, top.c: Replace `dcp' with `gnu'. 1809 1810 * com.c (ffecom_expr_intrinsic_): Clean up by collecting 1811 simple conversions into one nice, conceptual place. 1812 Fix up some intrinsic subroutines (MVBITS, KILL, UMASK) to 1813 properly push and pop call temps, to avoid wasting temp 1814 registers. 1815 1816 * g77.c (doit): Toon says variables should be defined 1817 before being referenced. Spoilsport. 1818 1819 * intrin.c (ffeintrin_check_): Now Dave's worried about 1820 warnings about uninitialized variables. Okay, so for 1821 basic return values 'g' and 's', they _were_ 1822 uninitialized -- is determinism really _that_ useful? 1823 1824 * intrin.def (FFEINTRIN_impFGETC): Fix STATUS argument 1825 so that it is INTENT(OUT) instead of INTENT(IN). 1826 18271997-02-21 Dave Love <d.love@dl.ac.uk> 1828 1829 * intrin.def, com.c: Support Sun-type `short' and `long' 1830 intrinsics. Perhaps should also do Microcruft-style `int2'. 1831 1832Thu Feb 20 15:16:53 1997 Craig Burley <burley@gnu.ai.mit.edu> 1833 1834 * com.c (ffecom_expr_intrinsic_): Clean up indentation. 1835 Support SECONDSUBR intrinsic implementation. 1836 Rename SECOND to SECONDFUNC for direct support via library. 1837 1838 * g77.c: Fix to return proper status value to shell, 1839 by obtaining it from processes it spawns. 1840 1841 * intdoc.c: Fix minor typo. 1842 1843 * intrin.def: Turn SECOND into generic that maps into 1844 function and subroutine forms. 1845 1846 * intrin.def: Make FLOAT and SNGL into specific intrinsics. 1847 1848 * intrin.def, intrin.h: Change the way DEFGEN and DEFSPEC 1849 macros work, to save on verbage. 1850 1851Mon Feb 17 02:08:04 1997 Craig Burley <burley@gnu.ai.mit.edu> 1852 1853 New subsystem to automatically generate documentation 1854 on intrinsics: 1855 * Make-lang.in ($(srcdir)/f/g77.info, 1856 $(srcdir)/f/g77.dvi): Move g77 doc rules around. 1857 Add to g77 doc rules the new subsystem. 1858 (f77.mostlyclean, f77.maintainer-clean): Also clean up 1859 after new doc subsystem. 1860 * intdoc.c, intdoc.h: New doc subsystem code. 1861 * intrin.h [FFEINTRIN_DOC]: When 1, don't pull in 1862 stuff not needed by doc subsystem. 1863 1864 Improve on intrinsics mechanism to both be more 1865 self-documenting and to catch more user errors: 1866 * intrin.c (ffeintrin_check_): Recognize new arg-len 1867 and arg-rank information, and check it. 1868 Move goto and signal indicators to the basic type. 1869 Permit reference to arbitrary argument number, not 1870 just first argument (for BESJN and BESYN). 1871 (ffeintrin_init_0): Check and accept new notations. 1872 * intrin.c, intrin.def: Value in COL now identifies 1873 arguments starting with number 0 being the first. 1874 1875 Some minor intrinsics cleanups (resulting from doc work): 1876 * com.c (ffecom_expr_intrinsic_): Implement FLUSH 1877 directly once again, handle its optional argument, 1878 so it need not be a generic (awkward to handle in docs). 1879 * intrin.def (BESJ0, BESJ1, BESJN, BESY0, BESY1, BESYN, 1880 CHDIR, CHMOD, CTIME, DBESJ0, DBESJ1, DBESJN, DBESY0, 1881 DBESY1, DBESYN, DDIM, ETIME, FGETC, FNUM, FPUTC, FSTAT, 1882 GERROR, GETCWD, GETGID, GETLOG, GETPID, GETUID, GMTIME, 1883 HOSTNM, IDATE, IERRNO, IIDINT, IRAND, ISATTY, ITIME, JIDINT, 1884 LNBLNK, LSTAT, LTIME, MCLOCK, PERROR, SRAND, SYMLNK, TTYNAM, 1885 UMASK): Change capitalization of initcaps (official) name 1886 to be consistent with Burley's somewhat arbitrary rules. 1887 (BESJN, BESYN): These have return arguments of same type 1888 as their _second_ argument. 1889 (FLUSH): Now a specific, not generic, intrinsic, with one 1890 optional argument. 1891 (FLUSH1): Eliminated. 1892 Add arg-len and arg-rank info to several intrinsics. 1893 (ITIME): Change argument type from REAL to INTEGER. 1894 1895Tue Feb 11 14:04:42 1997 Craig Burley <burley@gnu.ai.mit.edu> 1896 1897 * Make-lang.in (f771): Invocation of Makefile now done 1898 with $(srcdir)=gcc to go along with $(VPATH)=gcc. 1899 ($(srcdir)/f/runtime/configure, 1900 $(srcdir)/f/runtime/libU77/configure): Break these out 1901 so spurious triggers of this rule don't happen (as when 1902 configure.in is more recent than libU77/configure). 1903 (f77.rebuilt): Distinguish source versus build files, 1904 so this target can be invoked from build directory and 1905 still work. 1906 * Makefile.in: This now expects $(srcdir) to be the gcc 1907 source directory, not gcc/f, to agree with $(VPATH). 1908 Accordingly, $(INCLUDES) has been fixed, various cruft 1909 removed, the removal of f771 has been fixed to remove 1910 the _real_ f771 (not the one in gcc's parent directory), 1911 and so on. 1912 1913 * lex.c: Part of ffelex_finish_statement_() now done 1914 by new function ffelex_prepare_eos_(), so that, in one 1915 popular case, the EOS can be prepared while the pointer 1916 is at the end of the non-continued line instead of the 1917 end of the line that marks no continuation. This improves 1918 the appearance of diagnostics substantially. 1919 1920Mon Feb 10 12:44:06 1997 Craig Burley <burley@gnu.ai.mit.edu> 1921 1922 * Make-lang.in: runtime Makefile's, and include/f2c.h, 1923 also depend on f/runtime/configure and f/runtime/libU77/configure. 1924 1925 Fix various libU77 routines: 1926 * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtMCLOCK, 1927 FFECOM_gfrtTIME): These now use INTEGER*8 for time values, 1928 for compatibility with systems like Alpha. 1929 (FFECOM_gfrtSYSTEM_CLOCK, FFECOM_gfrtTTYNAM): Delete incorrect 1930 trailing underscore in routine names. 1931 * intrin.c, intrin.def: Support INTEGER*8 return values and 1932 arguments ('4'). Change FFEINTRIN_impCTIME, FFEINTRIN_impMCLOCK, 1933 and FFEINTRIN_impTIME accordingly. 1934 (ffeintrin_is_intrinsic): Don't give caller a clue about 1935 form of intrinsic -- shouldn't be needed at this point. 1936 1937 Cope with generic intrinsics that are subroutines and functions: 1938 * com.c (ffecom_finish_symbol_transform_, ffecom_expr_transform_): 1939 Don't transform an intrinsic that is not known to be a subroutine 1940 or a function. (Maybe someday have to avoid transforming 1941 any intrinsic with an undecided or unknown implementation.) 1942 * expr.c (ffeexpr_declare_unadorned_, 1943 ffeexpr_declare_parenthesized_): Ok to invoke generic 1944 intrinsic that has at least one subroutine form as a 1945 subroutine. 1946 Ok to pass intrinsic as actual arg if it has a known specific 1947 intrinsic form that is valid as actual arg. 1948 (ffeexpr_declare_parenthesized_): An unknown kind of 1949 intrinsic has a paren_type chosen based on context. 1950 (ffeexpr_token_arguments_): Build funcref/subrref based 1951 on context, not on kind of procedure being called. 1952 * intrin.h, intrin.c (ffeintrin_is_intrinsic): Undo changes of 1953 Tue Feb 4 23:12:04 1997 by me, change all callers to leave 1954 intrinsics as FFEINFO_kindNONE at this point. (Some callers 1955 also had unused variables deleted as a result.) 1956 1957 Enable all intrinsic groups (especially f90 and vxt): 1958 * target.h (FFETARGET_defaultSTATE_DCP, FFETARGET_defaultSTATE_F2C, 1959 FFETARGET_defaultSTATE_F90, FFETARGET_defaultSTATE_MIL, 1960 FFETARGET_defaultSTATE_UNIX, FFETARGET_defaultSTATE_VXT): 1961 Delete these macros, let top.c set them directly. 1962 * top.c (ffeintrinsic_state_dcp_, ffe_intrinsic_state_f2c_, 1963 ffe_intrinsic_state_f90_, ffe_intrinsic_state_mil_, 1964 ffe_intrinsic_state_unix_, ffe_intrinsic_state_vxt_): 1965 Enable all these directly. 1966 1967Sat Feb 8 03:21:50 1997 Craig Burley <burley@gnu.ai.mit.edu> 1968 1969 * g77.c: Incorporate recent changes to ../gcc.c. 1970 For version magic (e.g. `g77 -v'), instead of compiling 1971 /dev/null, write, compile, run, and then delete a small 1972 program that prints the version numbers of the three 1973 components of libf2c (libF77, libI77, and libU77), 1974 so we get this info with bug reports. 1975 Also, this change reduces the chances of accidentally 1976 linking to an old (complex-alias-problem) libf2c. 1977 Fix `-L' so the argument is expected in `-Larg'. 1978 1979 * com.h (FFECOM_f2cLONGINT): For INTEGER*8 support in f2c.h, 1980 dynamically determine proper type here, instead of 1981 assuming `long long int' is correct. 1982 1983Tue Feb 4 23:12:04 1997 Craig Burley <burley@gnu.ai.mit.edu> 1984 1985 Add libU77 library from Dave Love <d.love@dl.ac.uk>: 1986 * Make-lang.in (f77-runtime): Depend on new Makefile. 1987 (f/runtime/libU77/Makefile): New rule. 1988 Also configure libU77. 1989 ($(srcdir)/f/runtime/configure: Use Makefile.in, 1990 so configuration doesn't have to have happened. 1991 (f77.mostlyclean, f77.clean, f77.distclean, 1992 f77.maintainer-clean): Some fixups here, but more work 1993 needed. 1994 (RUNTIMESTAGESTUFF): Add libU77's config.status. 1995 (LIBU77STAGESTUFF, f77.stage1, f77.stage2, f77.stage3, 1996 f77.stage4): New macro, appropriate uses added. 1997 * com-rt.def: Add libU77 procedures. 1998 * com.c (ffecom_f2c_ptr_to_integer_type_node, 1999 ffecom_f2c_ptr_to_real_type_node): New type nodes. 2000 (FFECOM_rttypeCHARACTER_): New type of run-time function. 2001 (ffecom_char_args_): Handle CHARACTER*n intrinsics 2002 where n != 1 here, instead of in ffecom_expr_intrinsic_. 2003 (ffecom_expr_intrinsic_): New code to handle new 2004 intrinsics. 2005 In particular, change how FFEINTRIN_impFLUSH is handled. 2006 (ffecom_make_gfrt_): Handle new type of run-time function. 2007 (ffecom_init_0): Initialize new type nodes. 2008 * config-lang.in: New libU77 directory. 2009 * intrin.h, intrin.c (ffeintrin_is_intrinsic): Handle 2010 potential generic for subroutine _and_ function 2011 specifics via two new arguments. All callers changed. 2012 Properly ignore deleted/disabled intrinsics in resolving 2013 generics. 2014 (ffeintrin_check_, ffeintrin_init_0): Handle CHARACTER intrinsics of (*) 2015 length. 2016 * intrin.def: Permission granted by FSF to place this in 2017 public domain, which will allow it to serve as source 2018 for both g77 program and its documentation. 2019 Add libU77 intrinsics. 2020 (FLUSH): Now a generic, not specific, intrinsic. 2021 (DEFIMP): Now support return modifier for CHARACTER intrinsics. 2022 2023 * com-rt.def (FFECOM_gfrtDIM, FFECOM_gfrtERF, 2024 FFECOM_gfrtERFC, FFECOM_gfrtEXP, FFECOM_gfrtSIGN, 2025 FFECOM_gfrtSIN, FFECOM_gfrtSINH, FFECOM_gfrtTAN, 2026 FFECOM_gfrtTANH, FFECOM_gfrtPOW_RI): Change "&r" to "&f". 2027 2028Sat Feb 1 12:15:09 1997 Craig Burley <burley@gnu.ai.mit.edu> 2029 2030 * Version 0.5.19.1 released. 2031 2032 * com.c (ffecom_expr_, ffecom_expr_intrinsic_, 2033 ffecom_tree_divide_): FFECOM_gfrtPOW_ZI, 2034 FFECOM_gfrtCONJG, FFECOM_gfrtDCONJG, 2035 FFECOM_gfrtCCOS, FFECOM_gfrtCDCOS, 2036 FFECOM_gfrtCLOG, FFECOM_gfrtCDLOG, 2037 FFECOM_gfrtCSIN, FFECOM_gfrtCDSIN, 2038 FFECOM_gfrtCSQRT, FFECOM_gfrtCDSQRT, 2039 FFECOM_gfrtDIV_CC, FFECOM_gfrtDIV_ZZ: These all require 2040 result to _not_ overlap one or more inputs. 2041 2042Sat Feb 1 00:25:55 1997 Craig Burley <burley@gnu.ai.mit.edu> 2043 2044 * com.c (ffecom_init_0): Do internal checks only if 2045 -fset-g77-defaults not specified. 2046 2047 Fix %LOC(), LOC() to return sufficiently wide type: 2048 * com.h, com.c (ffecom_pointer_kind_, ffecom_label_kind_, 2049 ffecom_pointer_kind(), ffecom_label_kind()): New globals 2050 and accessor macros hold kind for integer pointers on target 2051 machine. 2052 (ffecom_init_0): Determine narrowest INTEGER type that 2053 can hold a pointer (usually INTEGER*4 or INTEGER*8), 2054 store it in ffecom_pointer_kind_, etc. 2055 * expr.c (ffeexpr_cb_end_loc_): Use right type for %LOC(). 2056 * intrin.c (ffeintrin_check_, ffeintrin_init_0): Support 2057 new 'p' kind for type of intrinsic. 2058 * intrin.def (FFEINTRIN_impLOC): Returns "Ip" instead of "I1", 2059 so LOC() type is correct for target machine. 2060 2061 Support -fugly-assign: 2062 * lang-options.h, top.h, top.c (ffe_decode_option): 2063 Accept -fugly-assign and -fno-ugly-assign. 2064 * com.c (ffecom_expr_): Handle -fugly-assign. 2065 * expr.c (ffeexpr_finished_): Check right type for ASSIGN 2066 contexts. 2067 2068Fri Jan 31 14:30:00 1997 Craig Burley <burley@gnu.ai.mit.edu> 2069 2070 Remove last vestiges of -fvxt-not-f90: 2071 * stb.c (ffestb_R10012_, ffestb_R10014_, ffestb_V0201_): 2072 top.c, top.h: 2073 2074Fri Jan 31 02:13:54 1997 Craig Burley <burley@gnu.ai.mit.edu> 2075 2076 * top.c (ffe_decode_option): Warn if -fugly is specified, 2077 it'll go away soon. 2078 2079 * symbol.h: No need to #include "bad.h". 2080 2081 Reorganize features from -fvxt-not-f90 to -fvxt: 2082 * lang-options.h, top.h, top.c: 2083 Accept -fvxt and -fno-vxt, but not -fvxt-not-f90 or -ff90-not-vxt. 2084 Warn if the latter two are used. 2085 * expr.c (ffeexpr_nil_rhs_): Double-quote means octal constant. 2086 (ffeexpr_token_rhs_): Double-quote means octal constant. 2087 * target.h (FFETARGET_defaultIS_VXT_NOT_90): Delete macro 2088 definition, no longer needed. 2089 2090 Make some -ff90 features the default: 2091 * data.c (ffedata_value): DATA implies SAVE. 2092 * src.h (ffesrc_is_name_noninit): Underscores always okay. 2093 2094 Fix up some more #error directives by quoting their text: 2095 * bld.c (ffebld_constant_is_zero): 2096 * target.h: 2097 2098Sat Jan 18 18:22:09 1997 Craig Burley <burley@gnu.ai.mit.edu> 2099 2100 * g77.c (lookup_option, main): Recognize `-Xlinker', 2101 `-Wl,', `-l', `-L', `--library-directory', `-o', 2102 `--output'. 2103 (lookup_option): Don't depend on SWITCH_TAKES_ARG 2104 being correct, it might or might not have `-x' in 2105 it depending on host. 2106 Return NULL argument if it would be an empty string. 2107 (main): If no input files (by gcc.c's definition) 2108 but `-o' or `--output' specified, produce diagnostic 2109 to avoid overwriting output via gcc. 2110 Recognize C++ `+e' options. 2111 Treat -L as another non-magical option (like -B). 2112 Don't append_arg `-x' twice. 2113 2114Fri Jan 10 23:36:00 1997 Craig Burley <burley@gnu.ai.mit.edu> 2115 2116 * top.c [BUILT_FOR_270] (ffe_decode_option): Make 2117 -fargument-noalias-global the default. 2118 2119Fri Jan 10 07:42:27 1997 Craig Burley <burley@gnu.ai.mit.edu> 2120 2121 Enable inlining of previously-compiled program units: 2122 * com.c (ffecom_do_entry_, ffecom_start_progunit_): 2123 Register new public function in ffeglobal database. 2124 (ffecom_sym_transform_): Any GLOBAL or potentially GLOBAL 2125 symbol should be looked up in ffeglobal database and 2126 that tree node used, if found. That way, gcc knows 2127 the references are to those earlier definitions, so it 2128 can emit shorter branches/calls, inline, etc. 2129 (ffecom_transform_common_): Minor change for clarity. 2130 * expr.c (ffeexpr_sym-lhs_call_, ffeexpr_sym_lhs_extfunc_, 2131 ffeexpr_sym_rhs_actualarg_, ffeexpr_paren_rhs_let_, 2132 ffeexpr_token_funsubstr_): Globalize symbol as needed. 2133 * global.c (ffeglobal_promoted): New function to look up 2134 existing local symbol in ffeglobal database. 2135 * global.h: Declare new function. 2136 * name.h (ffename_token): New macro, plus alphabetize. 2137 * stc.c (ffestc_R1207_item): Globalize EXTERNAL symbol. 2138 * stu.c (ffestu_sym_end_transition, ffestu_sym_exec_transition): 2139 Globalize symbol as needed. 2140 * symbol.h, symbol.c (ffesymbol_globalize): New function. 2141 2142Thu Jan 9 14:20:00 1997 Craig Burley <burley@gnu.ai.mit.edu> 2143 2144 * ste.c (ffeste_R809): Produce a diagnostic for SELECT CASE 2145 on CHARACTER type, instead of crashing. 2146 2147Thu Jan 9 00:52:45 1997 Craig Burley <burley@gnu.ai.mit.edu> 2148 2149 * stc.c (ffestc_order_entry_, ffestc_order_format_, 2150 ffestc_R1226): Allow ENTRY and FORMAT before IMPLICIT 2151 NONE, by having them transition only to state 1 instead 2152 of state 2 (which is disallowed by IMPLICIT NONE). 2153 2154Mon Jan 6 22:44:53 1997 Craig Burley <burley@gnu.ai.mit.edu> 2155 2156 Fix AXP bug found by Rick Niles (961201-1.f): 2157 * com.c (ffecom_init_0): Undo my 1996-05-14 change, as 2158 it is incorrect and prevented easily finding this bug. 2159 * target.h [__alpha__] (ffetargetReal1, ffetargetReal2): 2160 Use int instead of long. 2161 (ffetarget_cvt_r1_to_rv_, ffetarget_cvt_rv_to_r1_, 2162 ffetarget_cvt_r2_to_rv_, ffetarget_cvt_rv_to_r2_): 2163 New functions that intercede for callers of 2164 REAL_VALUE_(TO|UNTO)_TARGET_(SINGLE|DOUBLE). 2165 All callers changed, and damaging casts to (long *) removed. 2166 2167Sun Jan 5 03:26:11 1997 Craig Burley <burley@gnu.ai.mit.edu> 2168 2169 * Make-lang.in (g77, g77-cross): Depend on both g77.c and 2170 zzz.c, in $(srcdir)/f/. 2171 2172 Better design for -fugly-assumed: 2173 * stc.c (ffestc_R501_item, ffestc_R524_item, 2174 ffestc_R547_item_object): Pass new is_ugly_assumed flag. 2175 * stt.c, stt.h (ffestt_dimlist_as_expr, 2176 ffestt_dimlist_type): New is_ugly_assumed flag now 2177 controls whether "1" is treated as "*". 2178 Don't treat "2-1" or other collapsed constants as "*". 2179 2180Sat Jan 4 15:26:22 1997 Craig Burley <burley@gnu.ai.mit.edu> 2181 2182 * stb.c (ffestb_R10012_): Don't confirm on FORMAT(A,) 2183 or even FORMAT(A,,B), as R1229 only warns about the 2184 former currently, and this seems reasonable. 2185 2186 Improvements to diagnostics: 2187 * sta.c (ffesta_second_): Don't add any ffestb parsers 2188 unless they're specifically called for. 2189 Set up ffesta_tokens[0] before calling ffestc_exec_transition, 2190 else stale info might get used. 2191 (ffesta_save_): Do a better job picking which parser to run 2192 after running all parsers with no confirmed possibles. 2193 (FFESTA_maxPOSSIBLES_): Decrease from 100 now that so few 2194 possibles are ever on the list at a given time. 2195 (struct _ffesta_possible): Add named attribute. 2196 (ffesta_add_possible_exec_, ffesta_add_possible_nonexec_): 2197 Make these into macros that call a single function that now 2198 sets the named attribute. 2199 (ffesta_add_possible_unnamed_exec_, 2200 ffeseta_add_possible_unnamed_nonexec_): New macros. 2201 (ffesta_second_): Designate unnamed possibles as 2202 appropriate. 2203 * stb.c (ffestb_R1229, ffestb_R12291_): Use more general 2204 diagnostic, so things like "POINTER (FOO, BAR)" are 2205 diagnosed as unrecognized statements, not invalid statement 2206 functions. 2207 * stb.h, stb.c (ffestb_unimplemented): Remove function. 2208 22091996-12-30 Dave Love <d.love@dl.ac.uk> 2210 2211 * com.c: #include libU77/config.h 2212 (ffecom_f2c_ptr_to_integer_type_node, 2213 ffecom_f2c_ptr_to_integer_type_node): New variables. 2214 (ffecom_init_0): Use them. 2215 (ffecom_expr_intrinsic_): Many news cases for libU77 intrinsics. 2216 2217 * com-rt.def: New definitions for libU77. 2218 * intrin.def: Likewise. Also correct ftell arg spec. 2219 2220 * Makefile.in (f/runtime/libU77/config.h): New target for com.c 2221 dependency. 2222 * Make-lang.in (f771): Depend on f/runtime/Makefile for the above. 2223 2224Sat Dec 28 12:28:29 1996 Craig Burley <burley@gnu.ai.mit.edu> 2225 2226 * stt.c (ffestt_dimlist_type): Treat ([...,]1) in dimlist 2227 as ([...,]*) if -fugly-assumed, so assumed-size array 2228 detected early enough. 2229 2230Thu Dec 19 14:01:57 1996 Craig Burley <burley@gnu.ai.mit.edu> 2231 2232 * target.h (FFETARGET_REAL_VALUE_FROM_INT_): Conditionalize 2233 definition on BUILT_FOR_280, not BUILT_WITH_280, since 2234 the name of the macro was (properly) changed since 0.5.19. 2235 2236 Fix warnings/errors resulting from ffetargetOffset becoming 2237 `long long int' instead of `unsigned long' as of 0.5.19, 2238 while ffebitCount remains `unsigned long': 2239 * bld.c (ffebld_constantarray_dump): Avoid warnings by 2240 using loop var of appropriate type, and using casts. 2241 * com.c (ffecom_expr_): Use right type for loop var. 2242 (ffecom_sym_transform_, ffecom_transform_equiv_): 2243 Cast to right type in assertions. 2244 * data.c (ffedata_gather_, ffedata_value_): Cast to right 2245 type in assertions and comparisons. 2246 2247Wed Dec 18 12:07:11 1996 Craig Burley <burley@gnu.ai.mit.edu> 2248 2249 Patch from Alexandre Oliva <oliva@dcc.unicamp.br>: 2250 * Makefile.in (all.indirect): Don't pass -bbigtoc option 2251 to GNU ld. 2252 2253 Cope with new versions of gcc: 2254 * com.h (BUILT_FOR_280): New macro. 2255 * com.c (ffecom_ptr_to_expr): Conditionalize test of 2256 OFFSET_REF. 2257 (ffecom_build_complex_constant_): Conditionalize calling 2258 sequence for build_complex. 2259 2260Sat Dec 7 07:15:17 1996 Craig Burley <burley@gnu.ai.mit.edu> 2261 2262 * Version 0.5.19 released. 2263 2264Fri Dec 6 12:23:55 1996 Craig Burley <burley@gnu.ai.mit.edu> 2265 2266 * g77.c: Default to assuming "f77" is in $LANGUAGES, since 2267 the LANGUAGE_F77 macro isn't defined by anyone anymore (but 2268 might as well leave the no-f77 code in just in case). 2269 * Make-lang.in (g77, g77-cross): Don't define LANGUAGE_F77 2270 anymore. 2271 22721996-12-06 Dave Love <d.love@dl.ac.uk> 2273 2274 * Make-lang.in (g77, g77-cross): Revert to building `g77' or not 2275 conditional on `f77' in LANGUAGES. 2276 2277Wed Dec 4 13:08:44 1996 Craig Burley <burley@gnu.ai.mit.edu> 2278 2279 * Make-lang.in (g77, g77-cross): No libs or lib dependencies 2280 in case where "f77" is not in $LANGUAGES. 2281 2282 * lex.c (ffelex_image_char_, ffelex_file_fixed, 2283 ffelex_file_free): Fixes to properly handle lines with 2284 null character, and too-long lines as well. 2285 2286 * lex.c: Call ffebad_start_msg_lex instead of 2287 ffebad_start_msg throughout. 2288 2289Sun Dec 1 21:19:55 1996 Craig Burley <burley@gnu.ai.mit.edu> 2290 2291 Fix-up for 1996-11-25 changes: 2292 * com.c (ffecom_member_phase2_): Subtract out 0 offset for 2293 elegance and consistency with EQUIVALENCE aggregates. 2294 (ffecom_sym_transform_): Ditto for LOCAL/COMMON, and 2295 ensure we get the same parent storage area. 2296 * data.c (ffedata_gather_, ffedata_value_): Subtract out 2297 aggregate offset. 2298 2299Wed Nov 27 13:55:57 1996 Craig Burley <burley@gnu.ai.mit.edu> 2300 2301 * proj.h: Quote the text of the #error message, to avoid 2302 strange-looking diagnostics from non-gcc ANSI compilers. 2303 2304 * top.c: Make -fno-debug-kludge the default. 2305 2306Mon Nov 25 20:13:45 1996 Craig Burley <burley@gnu.ai.mit.edu> 2307 2308 Provide more info on EQUIVALENCE mismatches: 2309 * bad.def (FFEBAD_EQUIV_MISMATCH): More detailed message. 2310 * equiv.c (ffeequiv_layout_local_, ffeequiv_layout_cblock): 2311 More details for FFEBAD_EQUIV_MISMATCH. 2312 2313 Fix problem with EQUIVALENCE handling: 2314 * equiv.c (ffeequiv_layout_local_): Redesign algorithm -- 2315 old one was broken, resulting in rejection of good code. 2316 (ffeequiv_offset_): Add argument, change callers. 2317 Clean up the code, fix up the (probably unused) negative-value 2318 case for SYMTER. 2319 * com.c (ffecom_sym_transform_): For local EQUIVALENCE 2320 member, subtract out aggregate offset (which is <= 0). 2321 2322Thu Nov 21 12:44:56 1996 Craig Burley <burley@gnu.ai.mit.edu> 2323 2324 Change type of ffetargetOffset from `unsigned long' to `long long': 2325 * bld.c (ffebld_constantarray_dump): Change printf formats. 2326 * storag.c (ffestorag_dump): Ditto. 2327 * symbol.c (ffesymbol_report): Ditto. 2328 * target.h (ffetargetOffset_f): Ditto and change type itself. 2329 2330 Handle situation where list of languages does not include f77: 2331 * Make-lang.in: Define LANGUAGE_F77 to 1 only if `f77' is in 2332 the $LANGUAGES macro for the build. 2333 * g77.c: Compile to a (nearly) no-op program if LANGUAGE_F77 2334 is not defined to 1. 2335 2336 Fixes to delay confirmation of READ, WRITE, and GOTO statements 2337 so the corresponding assignments to same-named CHAR*(*) arrays 2338 work: 2339 * stb.c (ffestb_R90915_, ffestb_91014_): New functions. 2340 (ffestb_goto3_, ffestb_goto5_): Move confirmation from 3 to 5 2341 for the OPEN_PAREN case. 2342 (ffestb_R9091_, ffestb_R9094_, ffestb_R90913_, ffestb_R90914_, 2343 ffestb_R91012_, ffestb_R91013_): Use new functions, and confirm 2344 except for the OPEN_PAREN case. 2345 2346 Fixes to not confirm declarations with an open paren where 2347 an equal sign or other assignment-like token might be, so the 2348 corresponding assignments to same-named CHAR*(*) arrays work: 2349 (ffestb_decl_entsp_5_): Move assertion so we crash on that first, 2350 if it turns out to be wrong, before the less-debuggable crash 2351 on mistaken confirmation. 2352 (ffestb_decl_entsp_6_, ffestb_decl_entsp_7_, ffestb_decl_entsp_8_): 2353 Include OPEN_PAREN in list of assignment-only tokens. 2354 2355 Fix more diagnosed-crash bugs: 2356 * stu.c (ffestu_sym_end_transition): ANY-ize an adjustable array 2357 with bad dimension expressions even if still stateUNCERTAIN. 2358 (ffestu_symter_end_transition_, ffestu_symter_exec_transition_): 2359 Return TRUE for opANY as well. 2360 For code elegance, move opSYMTER case into first switch. 2361 23621996-11-17 Dave Love <d.love@dl.ac.uk> 2363 2364 * lex.c: Fix last change. 2365 23661996-11-14 Dave Love <d.love@dl.ac.uk> 2367 2368 * Make-lang.in, config-lang.in: Remove the (broken) libU77 stuff, 2369 pending 0.5.20. 2370 2371Thu Nov 14 15:40:59 1996 Craig Burley <burley@gnu.ai.mit.edu> 2372 2373 * bad.def (FFEBAD_UNIMPL_STMT): Explain that invalid 2374 intrinsic references can trigger this message, too. 2375 23761996-11-12 Dave Love <d.love@dl.ac.uk> 2377 2378 * lex.c: Declare dwarfout routines. 2379 2380 * config-lang.in: Sink grep o/p. 2381 2382Mon Nov 11 14:21:13 1996 Craig Burley <burley@gnu.ai.mit.edu> 2383 2384 * g77.c (main): Might as well print version number 2385 for --verbose as well. 2386 2387Thu Nov 7 18:41:41 1996 Craig Burley <burley@gnu.ai.mit.edu> 2388 2389 * expr.c, lang-options.h, target.h, top.c, top.h: Split out 2390 remaining -fugly stuff into -fugly-logint and -fugly-comma, 2391 leaving -fugly as simply a `macro' that expands into other 2392 options, and eliminate defaults for some of the ugly stuff 2393 in target.h. 2394 2395 * Make-lang.in (gcc-cross): Compile zzz.c, not version.o (!), 2396 in to get version info for this target. 2397 2398 * config-lang.in: Test for GBE patch application based 2399 on whether 2.6.x or 2.7.x GBE is detected. 2400 2401Wed Nov 6 14:19:45 1996 Craig Burley <burley@gnu.ai.mit.edu> 2402 2403 * Make-lang.in (g77): Compile zzz.c in to get version info. 2404 * g77.c: Add support for --help and --version. 2405 2406 * g77.c (lookup_option): Short-circuit long-winded tests 2407 when second char is not hyphen, just to save a spot of time. 2408 2409Sat Nov 2 13:50:31 1996 Craig Burley <burley@gnu.ai.mit.edu> 2410 2411 * intrin.def: Add FTELL and FSEEK intrinsics, plus new 2412 `g' codes for alternate-return (GOTO) arguments. 2413 * intrin.c (ffeintrin_check_): Support `g' codes. 2414 * com-rt.def: Add ftell_() and fseek_() to database. 2415 * com.c (ffecom_expr_intrinsic_): Ditto. Also, let each 2416 subroutine intrinsic decide for itself what to do with 2417 tree_type, the default being NULL_TREE once again (so 2418 ffecom_call_ doesn't think it's supposed to cast the 2419 function call to the type in the fall-through case). 2420 2421 * ste.c (ffeste_R909_finish): Don't special-case list-directed 2422 I/O, now that libf2c can return nonzero status codes. 2423 (ffeste_R910_finish): Ditto. 2424 (ffeste_io_call_): Simplify logic. 2425 (ffeste_io_impdo_): 2426 (ffeste_subr_beru_): 2427 (ffeste_R904): 2428 (ffeste_R907): 2429 (ffeste_R909_start): 2430 (ffeste_R909_item): 2431 (ffeste_R909_finish): 2432 (ffeste_R910_start): 2433 (ffeste_R910_item): 2434 (ffeste_R910_finish): 2435 (ffeste_R911_start): 2436 (ffeste_R923A): Ditto all the above. 2437 2438Thu Oct 31 20:56:28 1996 Craig Burley <burley@gnu.ai.mit.edu> 2439 2440 * config-lang.in, Make-lang.in: Rename flag file 2441 build-u77 to build-libu77, for consistency with 2442 install-libf2c and such. 2443 2444 * config-lang.in: Don't complain about failure to patch 2445 if pre-2.7.0 gcc is involved (since our patch for that 2446 doesn't add support for tooning). 2447 2448Sat Oct 26 05:56:51 1996 Craig Burley <burley@gnu.ai.mit.edu> 2449 2450 * bad.def (FFEBAD_TYPELESS_TOO_LARGE): Remove this 2451 unused and redundant diagnostic. 2452 2453Sat Oct 26 00:45:42 1996 Craig Burley <burley@gnu.ai.mit.edu> 2454 2455 * target.c (ffetarget_integerhex): Fix dumb bug. 2456 24571996-10-20 Dave Love <d.love@dl.ac.uk> 2458 2459 * gbe/2.7.2.1.diff: New file. 2460 2461 * Makefile.in (F771_LDFLAGS): Add -bbigtoc for AIX4.1 up, suggested by 2462 endo@material.tohoku.ac.jp [among others!]. 2463 2464Sat Oct 19 03:11:14 1996 Craig Burley <burley@gnu.ai.mit.edu> 2465 2466 * bad.def, bld.c, bld.h, expr.c, lang-options.h, target.c, 2467 target.h, top.c, top.h (ffebld_constant_new_integerbinary, 2468 ffebld_constant_new_integerhex, ffebld_constant_new_integeroctal, 2469 ffeexpr_token_name_apos_name_, ffetarget_integerbinary, 2470 ffetarget_integerhex, ffetarget_integeroctal): Support 2471 new -fno-typeless-boz option with new functions, mods to 2472 existing octal-handling functions, new macros, new error 2473 messages, and so on. 2474 2475 * com.c, lang-options.h, top.c, top.h (ffecom_notify_primary_entry): 2476 Print program unit name on stderr if -fno-silent (new option). 2477 2478 * lang-options.h, top.c, top.h, stt.c (ffestt_dimlist_as_expr): 2479 Treat ([...,]1) in dimlist as ([...,]*) if -fugly-assumed 2480 (new option). 2481 2482 * lang-options.h: Comment out options duplicated in gcc/toplev.c, 2483 because, somehow, having them commented in and building on my 2484 DEC Alpha results in a cc1 that always segfaults, and gdb that 2485 also segfaults whenever it debugs it up to init_lex() calling 2486 xmalloc() or so. 2487 2488Thu Oct 17 00:39:27 1996 Craig Burley <burley@gnu.ai.mit.edu> 2489 2490 * stb.c (ffestb_R10013_): Don't change meaning of .sign until 2491 after previous meaning/value used to set sign of value 2492 (960507-1.f). 2493 2494Sun Oct 13 22:15:23 1996 Craig Burley <burley@gnu.ai.mit.edu> 2495 2496 * top.c (ffe_decode_option): Don't set back-end flags 2497 that are nonexistent prior to gcc 2.7.0. 2498 2499Sun Oct 13 12:48:45 1996 Craig Burley <burley@gnu.ai.mit.edu> 2500 2501 * com.c (convert): Don't convert emulated complex expr to 2502 real (via REALPART_EXPR) if the target type is (emulated) 2503 complex. 2504 2505Wed Oct 2 21:57:12 1996 Craig Burley <burley@gnu.ai.mit.edu> 2506 2507 * com.c (ffecom_debug_kludge_): Set DECL_IN_SYSTEM_HEADER so 2508 -Wunused doesn't complain about these manufactured decls. 2509 (ffecom_expr_): Ditto, for original (non-ASSIGN'ed) variable. 2510 (ffecom_transform_equiv_): Clear DECL_IGNORED_P for aggregate 2511 area so it shows up as a debug-accessible symbol. 2512 (pushdecl): Default for "invented" identifiers (a g77-specific 2513 concept for now) is that they are artificial, in system header, 2514 ignored for debugging purposes, used, and (for types) suppressed. 2515 This ought to be overkill. 2516 2517Fri Sep 27 23:13:07 1996 Craig Burley <burley@gnu.ai.mit.edu> 2518 2519 * ste.c (ffeste_begin_iterdo_, ffeste_end_iterdo_): Support 2520 one-trip DO loops (F66-style). 2521 * lang-options.h, top.c, top.h (-fonetrip): New option. 2522 2523Thu Sep 26 00:18:40 1996 Craig Burley <burley@gnu.ai.mit.edu> 2524 2525 * com.c (ffecom_debug_kludge_): New function. 2526 (ffecom_sym_transform_): Use new function for COMMON and EQUIVALENCE 2527 members. 2528 2529 * lang-options.h, top.c, top.h (-fno-debug-kludge): 2530 New option. 2531 25321996-09-24 Dave Love <d.love@dl.ac.uk> 2533 2534 * Make-lang.in (include/f2c.h): 2535 Remove dependencies on xmake_file and tmake_file. 2536 They expand inconsistently in 2.8 c.f. 2.7; $(GCC_PARTS) depends on 2537 them anyhow. 2538 25391996-09-22 Dave Love <d.love@dl.ac.uk> 2540 2541 * config-lang.in: Add --enable-libu77 option handling. 2542 2543 * Make-lang.in: 2544 Conditionally add --enable-libu77 when running runtime configure. 2545 Define LIBU77STAGESTUFF and use it in relevant rules. 2546 25471996-08-21 Dave Love <d.love@dl.ac.uk> 2548 2549 * Make-lang.in (f77-runtime): 2550 `stmp-hdrs' should have been `stmp-headers'. 2551 25521996-08-20 Dave Love <d.love@dl.ac.uk> 2553 2554 * Make-lang.in (f77-runtime): 2555 Depend on stmp-hdrs, not stmp-int-hdrs, since libF77 2556 needs float.h. 2557 2558Sat Jun 22 18:17:11 1996 Craig Burley <burley@gnu.ai.mit.edu> 2559 2560 * com.c (ffecom_tree_divide_): Fix RECORD_TYPE case to 2561 look at type of first field, properly, to determine 2562 whether to call c_div or z_div. 2563 2564Tue Jun 4 04:27:18 1996 Craig Burley <burley@gnu.ai.mit.edu> 2565 2566 * com.c (ffecom_build_complex_constant_): Explicitly specify 2567 TREE_PURPOSE. 2568 (ffecom_expr_): Fix thinko. 2569 (ffecom_2): For COMPLEX_EXPR, explicitly specify TREE_PURPOSE. 2570 2571Mon May 27 16:23:43 1996 Craig Burley <burley@gnu.ai.mit.edu> 2572 2573 Changes to optionally avoid gcc's back-end complex support: 2574 * com.c (ffecom_stabilize_aggregate_): New function. 2575 (ffecom_convert_to_complex_): New function. 2576 (ffecom_make_complex_type_): New function. 2577 (ffecom_build_complex_constant_): New function. 2578 (ffecom_expr_): For opCONVERT of non-COMPLEX to COMPLEX, 2579 don't bother explicitly converting to the subtype first, 2580 because gcc does that anyway, and more code would have 2581 to be added to find the subtype for the emulated-complex 2582 case. 2583 (ffecom_f2c_make_type_): Use ffecom_make_complex_type_ 2584 instead of make_node etc. to make a complex type. 2585 (ffecom_1, ffecom_2): Translate operations on COMPLEX operands 2586 to appropriate operations when emulating complex. 2587 (ffecom_constantunion): Use ffecom_build_complex_constant_ 2588 instead of build_complex to build a complex constant. 2589 (ffecom_init_0): Change point at which types are laid out 2590 for improved consistency. 2591 Use ffecom_make_complex_type_ instead of make_node etc. 2592 to make a complex type. 2593 Always calculate storage sizes from TYPE_SIZE, never TYPE_PRECISION. 2594 (convert): Use e, not expr, since we've copied into that anyway. 2595 For RECORD_TYPE cases, do emulated-complex conversions. 2596 (ffecom_f2c_set_lio_code_): Always calculate storage sizes 2597 from TYPE_SIZE, never TYPE_PRECISION. 2598 (ffecom_tree_divide_): Allow RECORD_TYPE to also be handled 2599 by run-time library. 2600 (ffecom_expr_intrinsic_): Handle possible RECORD_TYPE as argument 2601 to AIMAG intrinsic. 2602 2603 * top.h, top.c, lang-options.h: Support new -f(no-)emulate-complex option. 2604 2605 * com.c (ffecom_sym_transform_): Clarify and fix typos in comments. 2606 2607Mon May 20 02:06:27 1996 Craig Burley <burley@gnu.ai.mit.edu> 2608 2609 * target.h: Use new REAL_VALUE_UNTO_TARGET_* macros instead 2610 of REAL_VALUE_FROM_TARGET_DOUBLE and _SINGLE. 2611 Explicitly use long instead of HOST_WIDE_INT for emulation 2612 of ffetargetReal1 and ffetargetReal2. 2613 26141996-05-20 Dave Love <d.love@dl.ac.uk> 2615 2616 * config-lang.in: 2617 Test for patch being applied with flag_move_all_movables in toplev.c. 2618 2619 * install.texi (Patching GNU Fortran): 2620 Mention overriding X_CFLAGS rather than 2621 editing proj.h on SunOS4. 2622 2623 * Make-lang.in (F77_FLAGS_TO_PASS): 2624 Add X_CFLAGS (convenient for SunOS4 kluge, in 2625 particular). 2626 (f77.{,mostly,dist}clean): Reorder things, in particular not to delete 2627 Makefiles too early. 2628 2629 * g77.c (DEFAULT_SWITCH_TAKES_ARG): Define a la gcc.c in the 2630 current GCC snapshot. 2631 2632Tue May 14 00:24:07 1996 Craig Burley <burley@gnu.ai.mit.edu> 2633 2634 Changes for DEC Alpha AXP support: 2635 * com.c (ffecom_init_0): REAL_ARITHMETIC means internal 2636 REAL/DOUBLE PRECISION might well have a different size 2637 than the compiled type, so don't crash if this is the 2638 case. 2639 * target.h: Use `int' for ffetargetInteger1, 2640 ffetargetLogical1, and magical tests. Set _f format 2641 strings accordingly. 2642 2643Tue Apr 16 14:08:28 1996 Craig Burley <burley@gnu.ai.mit.edu> 2644 2645 * top.c (ffe_decode_option): -Wall no longer implies 2646 -Wsurprising. 2647 2648Sat Apr 13 14:50:06 1996 Craig Burley <burley@gnu.ai.mit.edu> 2649 2650 * com.c (ffecom_char_args_): If item is error_mark_node, 2651 set *length that way, too. 2652 2653 * com.c (ffecom_expr_power_integer_): If either operand 2654 is error_mark_node, return that. 2655 2656 * com.c (ffecom_intrinsic_len_): If item is error_mark_node, 2657 return that for length. 2658 2659 * expr.c (ffeexpr_declare_unadorned_, 2660 ffeexpr_declare_parenthesized_): Instead of crashing 2661 on unexpected contexts, produce a diagnostic. 2662 2663 * intrin.c (ffeintrin_check_), intrin.def (impSIGNAL): 2664 Allow procedure as second arg to SIGNAL intrinsic. 2665 2666 * stu.c (ffestu_symter_end_transition_): New function. 2667 (ffestu_symter_exec_transition_): Return bool arg. 2668 Always transition symbol (don't inhibit when !whereNONE). 2669 (ffestu_sym_end_transition): If DUMMY/LOCAL arg has any 2670 opANY exprs in its dimlist, diagnose it so it doesn't 2671 make it through to later stages that try to deal with 2672 dimlist stuff. 2673 (ffestu_sym_exec_transition): If sym has any opANY exprs 2674 in its dimlist, diagnose it so it becomes opANY itself. 2675 2676 * symbol.c (ffesymbol_error): If token arg is NULL, 2677 just ANY-ize the symbol -- don't produce diagnostic. 2678 2679Mon Apr 1 10:14:02 1996 Craig Burley <burley@gnu.ai.mit.edu> 2680 2681 * Version 0.5.18 released. 2682 2683Mon Mar 25 20:52:24 1996 Craig Burley <burley@gnu.ai.mit.edu> 2684 2685 * com.c (ffecom_expr_power_integer_): Don't generate code 2686 that compares COMPLEX (or, as it happens, REAL) via "LT_EXPR", 2687 since the back end crashes on that. (This code would never 2688 be executed anyway, but the test that avoids it has now been 2689 translated to control whether the code gets generated at all.) 2690 Fixes 960323-3.f. 2691 2692 * com.c (ffecom_type_localvar_): Handle variable-sized 2693 dimension bounds expressions here, so they get calculated 2694 and saved on procedure entry. Fixes 960323-4.f. 2695 2696 * com.c (ffecom_notify_init_symbol): Symbol has no init 2697 info at all if only zeros have been used to initialize it. 2698 Fixes 960324-0.f. 2699 2700 * expr.c, expr.h (ffeexpr_type_combine): Renamed from 2701 ffeexpr_type_combine_ and now a public procedure; last arg now 2702 a token, instead of an internal structure used to extract a token. 2703 Now allows the outputs to be aliased with the inputs. 2704 Now allows a NULL token to mean "don't report error". 2705 (ffeexpr_reduced_bool2_, ffeexpr_reduced_eqop2_, 2706 ffeexpr_reduced_math2_, ffeexpr_reduced_power_, 2707 ffeexpr_reduced_relop2_): Handle new calling sequence for 2708 ffeexpr_type_combine. 2709 * (ffeexpr_convert): Don't put an opCONVERT node 2710 in just because the size is unknown; all downstream code 2711 should be able to deal without it being there anyway, and 2712 getting rid of it allows new intrinsic code to more easily 2713 combine types and such without generating bad code. 2714 * info.c, info.h (ffeinfo_kindtype_max): Rewrite to do 2715 proper comparison of size of types, not just comparison 2716 of their internal kind numbers (so I2.eq.I1 doesn't promote 2717 I1 to I2, rather the other way around). 2718 * intrin.c (ffeintrin_check_): Combine types of arguments 2719 in COL a la expression handling, for greater flexibility 2720 and permissiveness (though, someday, -fpedantic should 2721 report use of this kind of thing). 2722 Make sure Hollerith/typeless where CHARACTER expected is 2723 rejected. This all fixes 960323-2.f. 2724 2725 * ste.c (ffeste_begin_iterdo_): Fix some more type conversions 2726 so INTEGER*2-laden DO loops don't crash at compile time on 2727 certain machines. Believed to fix 960323-1.f. 2728 2729 * stu.c (ffestu_sym_end_transition): Certainly reject 2730 whereDUMMY not in any dummy list, whether stateUNCERTAIN 2731 or stateUNDERSTOOD. Fixes 960323-0.f. 2732 2733Tue Mar 19 13:12:40 1996 Craig Burley <burley@gnu.ai.mit.edu> 2734 2735 * data.c (ffedata_value): Fix crash on opANY, and simplify 2736 the code at the same time. 2737 2738 * Make-lang.in (f77-runtime): Also depends on lib[FI]77/Makefile... 2739 (include/f2c.h...): ...which in turn depend on */Makefile.in. 2740 (f77.rebuilt): Rebuild runtime stuff too. 2741 2742 * intrin.c (ffeintrin_check_): Accommodate TYPELESS/HOLLERITH 2743 types, convert args as necessary, etc. 2744 2745 * expr.c (ffeexpr_convert): Fix test for TYPELESS/HOLLERITH 2746 to obey the docs; crash if no source token when error. 2747 (ffeexpr_collapse_convert): Crash if no token when error. 2748 2749Mon Mar 18 15:51:30 1996 Craig Burley <burley@gnu.ai.mit.edu> 2750 2751 * com.c (ffecom_init_zero_): Renamed from 2752 ffecom_init_local_zero_; now handles top-level 2753 (COMMON) initializations too. 2754 2755 * bld.c (ffebld_constant_is_zero): 2756 * com.c (ffecom_symbol_transform_, ffecom_sym_transform_assign_, 2757 ffecom_transform_common_, ffecom_transform_equiv_): 2758 * data.c: 2759 * equiv.c: 2760 * equiv.h: 2761 * lang-options.h: 2762 * stc.c: 2763 * storag.c: 2764 * storag.h: 2765 * symbol.c: 2766 * symbol.h: 2767 * target.c: 2768 * target.h: 2769 * top.c: 2770 * top.h: All of this is mostly housekeeping-type changes 2771 to support -f(no-)zeros, i.e. not always stuff zero 2772 values into the initializer fields of symbol/storage objects, 2773 but still track that they have been given initial values. 2774 2775 * bad.def: Fix wording for DATA-related diagnostics. 2776 2777 * com.c (ffecom_sym_transform_assign_): Don't check 2778 any EQUIVALENCE stuff for local ASSIGN, the check was 2779 bad (crashing), and it's not necessary, anyway. 2780 2781 * com.c (ffecom_expr_intrinsic_): For MAX and MIN, 2782 ignore null arguments as far arg[123], and fix handling 2783 of ANY arguments. (New intrinsic support now allows 2784 spurious trailing null arguments.) 2785 2786 * com.c (ffecom_init_0): Add HOLLERITH (unsigned) 2787 equivalents for INTEGER*2, *4, and *8, so shift intrinsics 2788 and other things that need unsigned versions of signed 2789 types work. 2790 2791Sat Mar 16 12:11:40 1996 Craig Burley <burley@gnu.ai.mit.edu> 2792 2793 * storag.c (ffestorag_exec_layout): Treat adjustable 2794 local array like dummy -- don't create storage object. 2795 * com.c (ffecom_sym_transform_): Allow for NULL storage 2796 object in LOCAL case (adjustable array). 2797 2798Fri Mar 15 13:09:41 1996 Craig Burley <burley@gnu.ai.mit.edu> 2799 2800 * com.c (ffecom_sym_transform_): Allow local symbols 2801 with nonconstant sizes (adjustable local arrays). 2802 (ffecom_type_localvar_): Allow dimensions with nonconstant 2803 component (adjustable local arrays). 2804 * expr.c: Various minor changes to handle adjustable 2805 local arrays (a new case of stateUNCERTAIN). 2806 * stu.c (ffestu_sym_end_transition, 2807 ffestu_sym_exec_transition): Ditto. 2808 * symbol.def: Update docs to reflect these changes. 2809 2810 * com.c (ffecom_expr_): Reduce space/time needed for 2811 opACCTER case by handling it here instead of converting 2812 it to opARRTER earlier on. 2813 (ffecom_notify_init_storage): Don't convert ACCTER to ARRTER. 2814 (ffecom_notify_init_symbol): Ditto. 2815 2816 * com.c (ffecom_init_0): Crash and burn if any of the types' 2817 sizes, according to the GBE, disagrees with the sizes of 2818 the FFE's internal implementation. This might catch 2819 Alpha/SGI bugs earlier. 2820 2821Fri Mar 15 01:09:41 1996 Craig Burley <burley@gnu.ai.mit.edu> 2822 2823 * com-rt.def, com.c, com.h: Changes for rewrite of intrinsic 2824 handling. 2825 * com.c (ffecom_arglist_expr_): New function. 2826 (ffecom_widest_expr_type_): New function. 2827 (ffecom_expr_intrinsic_): Reorganize, some rewriting. 2828 (ffecom_f2c_make_type_): Layout complex types. 2829 (ffecom_gfrt_args_): New function. 2830 (ffecom_list_expr): Trivial change for consistency. 2831 2832 * expr.c (ffeexpr_token_name_rhs_): Go back to getting 2833 type from specific, not implementation, info. 2834 (ffeexpr_token_funsubstr_): Set intrinsic implementation too! 2835 * intrin.c: Major rewrite of most portions. 2836 * intrin.def: Major rearchitecting of tables. 2837 * intrin.h (ffeintrin_basictype, ffeintrin_kindtype): 2838 Now (once again) take ffeintrinSpec as arg, not ffeintrinImp; 2839 for now, these return NONE, since they're not really needed 2840 and adding the necessary info to the tables is not trivial. 2841 (ffeintrin_codegen_imp): New function. 2842 * stc.c (ffestc_R1208_item): Change way ffeintrin funcs called, 2843 back to original per above; but comment out the code anyway. 2844 2845 * intrin.c (ffe_init_0): Do internal checks only if 2846 -fset-g77-defaults not specified. 2847 2848 * lang-options.h: Add -fset-g77-defaults option. 2849 * lang-specs.h: Always pass -fset-g77-defaults. 2850 * top.c, top.h: New option. 2851 2852Sat Mar 9 17:49:50 1996 Craig Burley <burley@gnu.ai.mit.edu> 2853 2854 * Make-lang.in (stmp-int-hdrs): Use --no-validate when 2855 generating the f77.rebuilt files (BUGS, INSTALL, NEWS) 2856 so cross-references can work properly in g77.info 2857 without a lot of hassle. Users can probably deal with 2858 the way they end up looking in the f77.rebuilt files. 2859 2860 * bld.c (ffebld_constant_new_integer4_val): INTEGER*8 2861 support -- new function. 2862 (ffebld_constant_new_logical4_val): New function. 2863 * com.c (ffecom_f2c_longint_type_node): New type. 2864 (FFECOM_rttypeLONGINT_): New return type code. 2865 (ffecom_expr_): Add code to invoke pow_qq instead 2866 of pow_ii for INTEGER4 (INTEGER*8) case. 2867 If ffecom_expr_power_integer_ returns NULL_TREE, just do 2868 the usual work. 2869 (ffecom_make_gfrt_): Handle new type. 2870 (ffecom_expr_power_integer_): Let caller do the work if in 2871 dummy-transforming case, since 2872 caller now knows about INTEGER*8 and such, by returning 2873 NULL_TREE. 2874 * expr.c (ffeexpr_reduced_power_): Complain about non-INTEGER 2875 raised to INTEGER4 (INTEGER*8) power. 2876 2877 * target.c (ffetarget_power_integerdefault_integerdefault): 2878 Fix any**negative. 2879 * com.c (ffecom_expr_power_integer_): Fix (-1)**(-8) and similar 2880 to ABS() the integral result if the exponent is negative 2881 and even. 2882 2883 * ste.c (ffeste_begin_iterdo_): Clean up a type ref. 2884 Always convert iteration count to _default_ INTEGER. 2885 2886 * sta.c (ffesta_second_): Add BYTE and WORD type/stmts; 2887 changes by Scott Snyder <snyder@d0sgif.fnal.gov>. 2888 * stb.c (ffestb_decl_recursive): Ditto. 2889 (ffestb_decl_recursive): Ditto. 2890 (ffestb_decl_entsp_2_): Ditto. 2891 (ffestb_decl_entsp_3_): Ditto. 2892 (ffestb_decl_funcname_2_): Ditto. 2893 (ffestb_decl_R539): Ditto. 2894 (ffestb_decl_R5395_): Ditto. 2895 * stc.c (ffestc_establish_declstmt_): Ditto. 2896 * std.c (ffestd_R539item): Ditto. 2897 (ffestd_R1219): Ditto. 2898 * stp.h: Ditto. 2899 * str-1t.fin: Ditto. 2900 * str-2t.fin: Ditto. 2901 2902 * expr.c (ffeexpr_finished_): For DO loops, allow 2903 any INTEGER type; convert LOGICAL (assuming -fugly) 2904 to corresponding INTEGER type instead of always default 2905 INTEGER; let later phases do conversion of DO start, 2906 end, incr vars for implied-DO; change checks for non-integral 2907 DO vars to be -Wsurprising warnings. 2908 * ste.c (ffeste_io_impdo_): Convert start, end, and incr 2909 to type of DO variable. 2910 2911 * com.c (ffecom_init_0): Add new types for [IL][234], 2912 much of which was done by Scott Snyder <snyder@d0sgif.fnal.gov>. 2913 * target.c: Ditto. 2914 * target.h: Ditto. 2915 2916Wed Mar 6 14:08:45 1996 Craig Burley <burley@gnu.ai.mit.edu> 2917 2918 * top.c (ffe_init_gbe_): Make -frerun-loop-opt the default. 2919 2920Mon Mar 4 12:27:00 1996 Craig Burley <burley@gnu.ai.mit.edu> 2921 2922 * expr.c (ffeexpr_exprstack_push_unary_): Really warn only 2923 about two successive _arithmetic_ operators. 2924 2925 * stc.c (ffestc_R522item_object): Allow SAVE of (understood) 2926 local entity. 2927 2928 * top.c (ffe_decode_option): New -f(no-)second-underscore options. 2929 * top.h: New options. 2930 * com.c (ffecom_get_external_identifier_, ffecom_get_identifier_): 2931 New options. 2932 2933 * Make-lang.in (f77.maintainer-clean): Clean f/BUGS, f/INSTALL, 2934 f/NEWS. 2935 ($(srcdir)/f/BUGS, $(srcdir)/f/INSTALL, $(srcdir)/f/NEWS): 2936 New rules. 2937 ($(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi): Depend on 2938 f/bugs.texi and f/news.texi. 2939 (f77.install-man): Install f77 man pages (if enabled). 2940 (f77.uninstall): Uninstall info docs, f77 man pages (if enabled). 2941 2942 * top.c (ffe_init_gbe_): New function. 2943 (ffe_decode_option, ffe_file): Call ffe_init_gbe_ to 2944 set defaults for gcc options. 2945 2946Sat Jan 20 13:57:19 1996 Craig Burley <burley@gnu.ai.mit.edu> 2947 2948 * com.c (ffecom_get_identifier_): Eliminate needless 2949 comparison of results of strchr. 2950 2951Tue Dec 26 11:41:56 1995 Craig Burley <burley@gnu.ai.mit.edu> 2952 2953 * Make-lang.in: Add rules for new files g77.texi, g77.info, 2954 and g77.dvi. 2955 Reorganize the *clean rules to more closely parallel gcc's. 2956 2957 * config-lang.in: Exclude g77.info from diffs. 2958 2959Sun Dec 10 02:29:13 1995 Craig Burley <burley@gnu.ai.mit.edu> 2960 2961 * expr.c (ffeexpr_declare_unadorned_, 2962 ffeexpr_declare_parenthesized_): Break out handling of 2963 contextDATAIMPDO[INDEX,CTRL] so it's independent of symbol state. 2964 Don't exec-transition these here (let ffeexpr_sym_impdoitem_ 2965 handle that when appropriate). Don't "declare" them twice. 2966 2967Tue Dec 5 06:48:26 1995 Craig Burley <burley@gnu.ai.mit.edu> 2968 2969 * stc.c (ffestc_promote_sfdummy_): Allow whereNONE parent 2970 symbol, since it is not necessarily known whether it will 2971 become LOCAL or DUMMY. 2972 2973Mon Dec 4 03:46:55 1995 Craig Burley <burley@gnu.ai.mit.edu> 2974 2975 * lex.c (ffelex_display_token, ffelex_type_string_): Resurrect 2976 these from their old versions and update them for possible invocation 2977 from debugger. 2978 * lex.h (ffelex_display_token): Declare this in case anyone 2979 else wants to call it. 2980 2981 * lex.c (ffelex_total_tokens_): Have this reflect actual allocated 2982 tokens, no longer include outstanding "uses" of tokens. 2983 2984 * malloc.c, malloc.h (MALLOC_DEBUG): New macro to control 2985 checking of whether callers follow rules, now defaults to 0 2986 for "no checking" to improve compile times. 2987 2988 * malloc.c (malloc_pool_kill): Fix bug that could prevent 2989 subpool from actually being killed (wasn't setting its use 2990 count to 1). 2991 2992 * proj.h, *.c (dmpout): Replace all occurrences of `stdout' 2993 and some of `stderr' with `dmpout', so where to dump debugging 2994 output can be easily controlled during build; add default 2995 for `dmpout' of `stderr' to proj.h. 2996 2997Sun Dec 3 00:56:29 1995 Craig Burley <burley@gnu.ai.mit.edu> 2998 2999 * com.c (ffecom_return_expr): Eliminate attempt at warning 3000 about unset return values, since the back end does this better, 3001 with better wording, and is not triggered by clearly working 3002 (but spaghetti) code as easily as this test. 3003 3004Sat Dec 2 08:28:56 1995 Craig Burley <burley@gnu.ai.mit.edu> 3005 3006 * target.c (ffetarget_power_*_integerdefault): Raising 0 to 3007 integer constant power should not be an error condition; 3008 if so, other code should catch 0 to any power, etc. 3009 3010 * bad.def (FFEBAD_BAD_POWER): 0**integer now a warning instead 3011 of an error. 3012 3013Fri Dec 1 00:12:03 1995 Craig Burley (burley@gnu.ai.mit.edu) 3014 3015 * bad.def: Clarify diagnostic regarding complex constant elements. 3016 * expr.c (ffeexpr_cb_comma_c_): Capitalize real/imaginary 3017 for clarified diagnostic. 3018 3019 * com.c (ffecom_close_include_): Close the file! 3020 3021 * lex.c (ffelex_file_fixed): Update line info if the line 3022 has any content, not just if it finishes a previous line 3023 or has a label. 3024 (ffelex_file_free): Clarify switch statement code. 3025 3026Sat Nov 18 19:37:22 1995 Craig Burley (burley@gnu.ai.mit.edu) 3027 3028 * Version 0.5.17 released. 3029 3030Fri Nov 17 14:27:24 1995 Craig Burley (burley@gnu.ai.mit.edu) 3031 3032 * Make-lang.in: Fix typo in comment. 3033 3034 * Makefile.in (f/fini.o, f/proj-h.o): Don't use `$<' since 3035 not all makes support it (e.g. NeXT make), use explicit 3036 source name instead (with $(srcdir) and munging). 3037 (ASSERT_H): assert.h lives in source dir, not build dir. 3038 3039Thu Nov 16 12:47:50 1995 Craig Burley (burley@gnu.ai.mit.edu) 3040 3041 * com.c (ffecom_init_0): Fix dumb bug in code to produce 3042 warning message about non-32-bit-systems. 3043 3044 * stc.c (ffestc_R501_item): Parenthesize test to make 3045 warning go away (and perhaps fix bug). 3046 3047Thu Nov 16 03:43:33 1995 Craig Burley (burley@gnu.ai.mit.edu) 3048 3049 * g77.c: Upgrade to 2.7.0's gcc.c. 3050 Fix -v to pass a temp name instead of "/dev/null" for "-o". 3051 3052Fri Nov 10 19:16:05 1995 Craig Burley (burley@gnu.ai.mit.edu) 3053 3054 * ste.c (ffeste_begin_iterdo_): Add Toon's change to 3055 make loops faster on some machines (implement termination 3056 condition as "--i >= 0" instead of "i-- > 0"). 3057 3058Thu Nov 2 03:58:17 1995 Craig Burley (burley@gnu.ai.mit.edu) 3059 3060 * Make-lang.in: Remove unnecessary $(exeext) a la cp/Make-lang.in. 3061 3062 * com.c (ffecom_expr_): Restore old strategy for assignp variant 3063 of opSYMTER case...always return the ASSIGN version of var. 3064 That way, `-O -Wuninitialized' will catch "I=3;GOTO I;END" 3065 (though the diagnostic will refer to `__g77_ASSIGN_i'). 3066 3067 * com.c (ffecom_expr_power_integer_): For constant rhs case, 3068 wrap every new eval of lhs in save_expr() so it is clear to 3069 back end that MULT_EXPR(lhs,lhs) has identical operands, 3070 otherwise for an rhs like 32767 it generates around 65K pseudo 3071 registers, with which stupid_life_analysis cannot cope 3072 (due to reg_renumber in regs.h being `short *' instead of 3073 `int *'). 3074 3075 * com.c (ffecom_expr_): Speed up implementation of LOGICAL 3076 versions of opNOT, opAND, opOR, opXOR/opNEQV, and opEQV by 3077 assuming the values actually are kosher LOGICAL bit patterns. 3078 Also simplify code that implements some of the INTEGER versions 3079 of these. 3080 3081 * com.c (skip_redundant_dir_prefix, read_name_map, 3082 ffecom_open_include_, signed_type, unsigned_type): Fold in 3083 changes to cccp.c made from 2.7.0 through ss-950826. 3084 3085 * equiv.c (ffeequiv_layout_local_): Kill the equiv list 3086 if no syms in list. 3087 3088 * expr.c (ffeexpr_reduced_eqop2_): Issue specific diagnostic 3089 regarding usage of .EQV./.NEQV. in preference to .EQ./.NE.. 3090 3091 * intrin.c: Add ERF and ERFC as generic intrinsics. 3092 intrin.def: Same. 3093 3094 * sta.c (ffesta_save_, ffesta_second_): Whoever calls 3095 ffestd_exec_begin must also set ffesta_seen_first_exec = TRUE, 3096 and anytime stc sees an exec transition, it must do both. 3097 stc.c (ffestc_eof): Same. 3098 3099 * stc.c (ffestc_promote_sfdummy_): If failed implicit typing 3100 or CHARACTER*(*) arg, after calling ffesymbol_error, don't 3101 reset info to ENTITY/DUMMY, because ffecom_sym_transform_ 3102 doesn't expect such a thing with ANY/ANY type. 3103 3104 * target.h (*logical*): Change some of these so they parallel 3105 changes in com.c, e.g. for _eqv_, use (l)==(r) instead of 3106 !!(l)==!!(r), to get a more faithful result. 3107 3108Fri Oct 27 07:06:59 1995 Craig Burley (burley@gnu.ai.mit.edu) 3109 3110 * com.c (ffecom_sym_transform_): Simplify code for local 3111 EQUIVALENCE case. 3112 3113 * expr.c (ffeexpr_exprstack_push_unary_): Warn about two 3114 successive operators. 3115 (ffeexpr_exprstack_push_binary_): Warn about "surprising" 3116 operator precedence, as in "-2**2". 3117 3118 * lang-options.h: Add -W(no-)surprising options. 3119 3120 * parse.c (yyparse): Don't reset -fpedantic if not -pedantic. 3121 3122 * top.c (ffe_decode_option): Support new -Wsurprising option. 3123 * top.h: Ditto. 3124 3125Mon Oct 23 09:14:15 1995 Craig Burley (burley@gnu.ai.mit.edu) 3126 3127 * com.c (ffecom_finish_symbol_transform_): Don't transform 3128 NONE/NONE (CHARACTER*(*)) vars, as these don't mean anything 3129 in debugging terms, and can't be turned into anything 3130 in the back end (so ffecom_sym_transform_ crashes on them). 3131 3132 * com.c (ffecom_expr_): Change strategy for assignp variant 3133 of opSYMTER case...always return the original var unless 3134 it is not wide enough. 3135 3136 * ste.c (ffeste_io_cilist_): Clarify diagnostic for ASSIGN 3137 involving too-narrow variable. This shouldn't happen, though. 3138 (ffeste_io_icilist_): Ditto. 3139 (ffeste_R838): Ditto. 3140 (ffeste_R839): Ditto. 3141 3142Thu Oct 19 03:21:20 1995 Craig Burley (burley@gnu.ai.mit.edu) 3143 3144 * com.c (ffecom_sym_transform_assign_): Set TREE_STATIC 3145 using the same decision-making process as used for their twin 3146 variables, so ASSIGN can last across RETURN/CALL as appropriate. 3147 3148Fri Sep 22 20:21:18 1995 Craig Burley (burley@gnu.ai.mit.edu) 3149 3150 * Makefile.in: fini is a host program, so it needs a host-compiled 3151 version of proj.o, named proj-h.o. f/fini, f/fini.o, and 3152 f/proj-h.o targets updated accordingly. 3153 3154 * com.c (__eprintf): New function. 3155 3156Wed Sep 20 02:26:36 1995 Craig Burley (burley@gnu.ai.mit.edu) 3157 3158 * lang-options.h: Add omitted -funix-intrinsics-* options. 3159 3160 * malloc.c (malloc_find_inpool_): Check for infinite 3161 loop, crash if detected (user reports encountering 3162 them in some large programs, this might help track 3163 down the bugs). 3164 3165Thu Sep 7 13:00:32 1995 Craig Burley (burley@gnu.ai.mit.edu) 3166 3167 * com.c (lang_print_error_function): Don't dereference null 3168 pointer when outside any program unit. 3169 (ffecom_let_char_, ffecom_arg_ptr_to_expr): If catlist 3170 item or length ever error_mark_node, don't continue processing, 3171 since back-end functions like build_pointer_type crash on 3172 error_mark_node's (due to pushing bad obstacks, etc.). 3173 3174Wed Aug 30 15:58:35 1995 Craig Burley (burley@gnu.ai.mit.edu) 3175 3176 * Version 0.5.16 released. 3177 3178Mon Aug 28 12:24:20 1995 Craig Burley (burley@gnu.ai.mit.edu) 3179 3180 * bad.c (ffebad_finish): Fix botched message when no places 3181 are printed (due to unknown line info, etc.). 3182 3183 * std.c (ffestd_subr_labels_): Do a better job finding 3184 line info in the case of typeANY and diagnostics. 3185 3186Fri Aug 25 15:19:29 1995 Craig Burley (burley@gnu.ai.mit.edu) 3187 3188 * com.c (DECL_ARTIFICIAL): Surround all references to this 3189 macro with #if !BUILT_FOR_270 and #endif. 3190 (init_lex): Surround print_error_function decl with 3191 #if !BUILT_FOR_270 and #endif. 3192 (lang_init): Call new ffelex_hash_kludge function to solve 3193 problem with preprocessed files that have INCLUDE statements. 3194 3195 * lex.c (ffelex_getc_): New function. 3196 (ffelex_cfelex_): Use ffelex_getc_ instead of getc in any 3197 paths of code that can be affected by ffelex_hash_kludge. 3198 Don't make an EOF token for unrecognized token; set token 3199 to NULL instead, to avoid problems when not initialized. 3200 (ffelex_hash_): Use ffelex_getc_ instead of getc in any 3201 paths of code that can be affected by ffelex_hash_kludge. 3202 Test token returned by ffelex_cfelex_ for NULL, meaning 3203 unrecognized token. 3204 Get rid of useless used_up variable. 3205 Don't do ffewhere stuff or kill any tokens if in 3206 ffelex_hash_kludge. 3207 (ffelex_file_fixed, ffelex_file_free): Use ffelex_getc_ 3208 instead of getc in any paths of code that can be affected 3209 by ffelex_hash_kludge. 3210 (ffelex_hash_kludge): New function. 3211 3212 * lex.h (ffelex_hash_kludge): New function. 3213 3214Wed Aug 23 15:17:40 1995 Craig Burley (burley@gnu.ai.mit.edu) 3215 3216 * com.c: Implement -f(no-)underscoring options by always 3217 compiling in code to do it, and having that code inhibit 3218 itself when -fno-underscoring is in effect. This option 3219 overrides -f(no-)f2c for this purpose; -f(no-)f2c returns 3220 to it's <=0.5.15 behavior of affecting only how code 3221 is generated, not how/whether names are mangled. 3222 3223 * target.h: Redo specification of appending underscores so 3224 the macros are named "_default" instead of "_is" and the 3225 two-underscore macro defaults to 1. 3226 3227 * top.c, top.h (underscoring): Add appropriate stuff 3228 for the -f(no-)underscoring options. 3229 3230Tue Aug 22 10:25:01 1995 Craig Burley (burley@gnu.ai.mit.edu) 3231 3232 * bad.c (ffebad_finish): Call report_error_function (in toplev.c) 3233 to better identify location of problem. 3234 Say "(continued):" instead of "(continued:)" for consistency. 3235 3236 * com.c (ffecom_gen_sfuncdef_): Set and reset new 3237 ffecom_nested_entry_ variable to hold ffesymbol being compiled. 3238 (lang_print_error_function): New function from toplev.c. 3239 Use ffecom_nested_entry_ to help determine which name 3240 and kind-string to print. 3241 (ffecom_expr_intrinsic_): Handle EXIT and FLUSH invocations 3242 with different calling sequences than library functions. 3243 Have SIGNAL and SYSTEM push and pop calltemps, and convert 3244 their return values to the destination type (just in case). 3245 (FFECOM_rttypeINT_): New return type for `int', in case 3246 gcc/f/runtime/libF77/system_.c(system_) is really supposed 3247 to return `int' instead of `ftnint'. 3248 3249 * com.h (report_error_function): Declare this. 3250 3251 * equiv.c (ffeequiv_layout_local_): Don't forget to consider 3252 root variable itself as possible "first rooted variable", 3253 else might never set symbol and then crash later. 3254 3255 * intrin.c (ffeintrin_check_exit_): Change to allow no args 3256 and rename to ffeintrin_check_int_1_o_ for `optional'. 3257 #define ffeintrin_check_exit_ and _flush_ to this new 3258 function, so intrin.def can refer to the appropriate names. 3259 3260 * intrin.def (FFEINTRIN_impFLUSH): Validate using 3261 ffeintrin_check_flush_ so passing an INTEGER arg is allowed. 3262 3263 * lex.c (ffelex_file_push_, ffelex_file_pop_): New functions 3264 to manage input_file_stack in gbe. 3265 (ffelex_hash_): Call new functions (instead of doing code). 3266 (ffelex_include_): Call new functions to update stack for 3267 INCLUDE (_hash_ handles cpp output of #include). 3268 3269Mon Aug 21 08:09:04 1995 Craig Burley (burley@gnu.ai.mit.edu) 3270 3271 * Makefile.in: Put `-W' in front of every `-Wall', since 3272 2.7.0 requires that to engage `-Wunused' for parameters. 3273 3274 * com.c: Mark all parameters as artificial, so 3275 `-W -Wunused' doesn't complain about unused ones (since 3276 there's no way right not to individually specify attributes 3277 like `unused'). 3278 3279 * proj.h: Don't #define UNUSED if already defined, regardless 3280 of host compiler. 3281 3282Sun Aug 20 16:03:56 1995 Craig Burley (burley@gnu.ai.mit.edu) 3283 3284 * gbe/2.7.0.diff: Regenerate. 3285 3286 * lang-options.h, lang-specs.h: If not __STDC__ (ANSI C), 3287 avoid doing anything, especially the stringizing in -specs.h. 3288 3289Thu Aug 17 03:36:12 1995 Craig Burley (burley@gnu.ai.mit.edu) 3290 3291 * lang-specs.h: Remove useless optional settings of -traditional, 3292 since -traditional is always set anyway. 3293 3294Wed Aug 16 16:56:46 1995 Craig Burley (burley@gnu.ai.mit.edu) 3295 3296 * Make-lang.in (F2C_INSTALL_FLAG, F2CLIBOK): More 3297 control over whether to install f2c-related stuff. 3298 (install-f2c-*): New targets to install f2c-related 3299 stuff in system, not just gcc, directories. 3300 3301 * com.c: Change calls to ffecom_get_invented_identifier 3302 to use generally more predictable names. 3303 Change calls to build_range_type to ensure consistency 3304 of types of operands. 3305 (ffecom_get_external_identifier_): Change to accept 3306 symbol info, not just text, so it can use f2c flag for 3307 symbol to decide whether to append underscore(s). 3308 (ffecom_get_identifier_): Don't change names if f2c flag 3309 off for compilation. 3310 (ffecom_type_permanent_copy_): Use same type for new max as 3311 used for min. 3312 (ffecom_notify_init_storage): Offline fixups for stand-alone. 3313 3314 * data.c (ffedata_gather): Explicitly test for common block, 3315 since it's no longer always the case that a local EQUIVALENCE 3316 group has no symbol ptr (it now can, if a user-predictable 3317 "rooted" symbol has been identified). 3318 3319 * equiv.c: Add some debugging stuff. 3320 (ffeequiv_layout_local_): Set symbol ptr with user-predictable 3321 "rooted" symbol, for giving the invented aggregate a 3322 predictable name. 3323 3324 * g77.c (append_arg): Allow for 20 extra args instead of 10. 3325 (main): For version-only case, add `-fnull-version' and, unless 3326 explicitly omitted, `-lf2c -lm'. 3327 3328 * lang-options.h: New "-fnull-version" option. 3329 3330 * lang-specs.h: Support ".fpp" suffix for preprocessed source 3331 (useful for OS/2, MS-DOS, other case-insensitive systems). 3332 3333 * stc.c (ffestc_R544_equiv_): Swap way lists are merged so this 3334 is consistent with the order in which lists are built, making 3335 user predictability of invented aggregate name much higher. 3336 3337 * storag.c, storag.h (FFESTORAG_typeDUMMY): Delete this enum. 3338 3339 * top.c: Accept, but otherwise ignore, `-fnull-version'. 3340 3341Tue Aug 15 07:01:07 1995 Craig Burley (burley@gnu.ai.mit.edu) 3342 3343 * DOC, INSTALL, PROJECTS: Extensive improvements to documentation. 3344 3345Sun Aug 13 01:55:18 1995 Craig Burley (burley@gnu.ai.mit.edu) 3346 3347 * INSTALL (f77-install-ok): Document the use of this file. 3348 3349 * Make-lang.in (F77_INSTALL_FLAG): New flag to control 3350 whether to install an `f77' command (based on whether 3351 a file named `f77-install-ok' exists in the source or 3352 build directory) to replace the broken attempt to use 3353 comment lines to avoid installing `f77' (broken in the 3354 sense that it prevented installation of `g77'). 3355 3356Mon Aug 7 06:14:26 1995 Craig Burley (burley@gnu.ai.mit.edu) 3357 3358 * DOC: Add new sections for g77 & gcc compiler options, 3359 source code form, and types, sizes and precisions. 3360 Remove lots of old "delta-version" info, or at least 3361 summarize it. 3362 3363 * INSTALL: Add info here that used to be in DOC. 3364 Other changes. 3365 3366 * g77.c (lookup_option, main): Check for --print-* options, 3367 so we avoid adding version-determining stuff. 3368 3369Wed Jul 26 15:51:03 1995 Craig Burley (burley@gnu.ai.mit.edu) 3370 3371 * Make-lang.in, Makefile.in (input.j, INPUT_H): New file. 3372 Update dependencies accordingly. 3373 3374 * bad.c (ffebad_here): Okay to use unknown line/col. 3375 3376 * compilers.h (@f77-cpp-input): Remove -P option now that 3377 # directives are handled by f771. Update other options 3378 to be more consistent with @c in gcc/gcc.c. Don't run f771 3379 if -E specified, etc., a la @c. 3380 (@f77): Don't run f771 if -E specified, etc., a la @c. 3381 3382 * config-lang.in: Avoid use of word "guaranteed". 3383 3384 * input.j: New file to wrap around gcc/input.h. 3385 3386 * lex.j: Add support for parsing # directives output by cpp. 3387 (ffelex_cfebackslash_): New function. 3388 (ffelex_cfelex_): New function. 3389 (ffelex_get_directive_line_): New function. 3390 (ffelex_hash_): New function. 3391 (ffelex_include_): Change to not use ffewhere_file_(begin|end). 3392 Also fix bug in pointing to next line (for diagnostics, &c) 3393 following successful INCLUDE. 3394 (ffelex_next_line_): New function that does chunk of code 3395 seen in several places elsewhere in the lexers. 3396 (ffelex_file_fixed): Delay finishing statement until source 3397 line is registered with ffewhere, so INCLUDE processing 3398 picks up the info correctly. 3399 Okay to kill or use unknown line/col objects now. 3400 Handle HASH (#) lines. 3401 Reorder tests for insubstantial lines to put most frequent 3402 occurrences at top, for possible minor speedup. 3403 Some general consolidation of code. 3404 (ffelex_file_free): Handle HASH (#) lines. 3405 Okay to kill or use unknown line/col objects now. 3406 Some general consolidation of code. 3407 (ffelex_init_1): Detect HASH (#) lines. 3408 (ffelex_set_expecting_hollerith): Okay to kill or use unknown 3409 line/col objects now. 3410 3411 * lex.h (FFELEX_typeHASH): New enum. 3412 3413 * options-lang.h (-fident, -fno-ident): New options. 3414 3415 * stw.c (ffestw_update): Okay to kill unknown line/col objects 3416 now. 3417 3418 * target.h (FFETARGET_okREALQUAD, FFETARGET_okCOMPLEXDOUBLE, 3419 FFETARGET_okCOMPLEXQUAD): #define these appropriately. 3420 3421 * top.c: Include flag.j wrapper, not flags.h directly. 3422 (ffe_is_ident_): New flag. 3423 (ffe_decode_option): Handle -fident and -fno-ident. 3424 (ffe_file): Replace obsolete ffewhere_file_(begin|end) with 3425 ffewhere_file_set. 3426 3427 * top.h (ffe_is_ident_, ffe_is_ident, ffe_set_is_ident): 3428 New flag and access functions. 3429 3430 * where.c, where.h: Remove all tracking of parent file. 3431 (ffewhere_file_begin, ffewhere_file_end): Delete these. 3432 (ffewhere_line_use): Make it work with unknown line object. 3433 3434Mon Jul 17 03:04:09 1995 Craig Burley (burley@gnu.ai.mit.edu) 3435 3436 * com.c (ffecom_sym_transform_): Set DECL_IN_SYSTEM_HEADER 3437 flag for any local vars used as stmtfunc dummies or DATA 3438 implied-DO iter vars, so no -Wunused warnings are produced 3439 for them (a la f2c). 3440 (ffecom_init_0): Do "extern int xargc;" for IARGC() intrinsic. 3441 Warn if target machine not 32 bits, since g77 isn't yet 3442 working on them at all well. 3443 3444 * expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_data_, 3445 ffeexpr_sym_lhs_extfunc_, ffeexpr_sym_rhs_actualarg_, 3446 ffeexpr_sym_rhs_let_, ffeexpr_paren_rhs_let_): Don't 3447 gratuitously set attr bits that don't apply just 3448 to avoid null set meaning error; instead, use explicit 3449 error flag, and allow null attr set, to 3450 fix certain bugs discovered by looking at this code. 3451 3452 * g77.c: Major changes to improve support for gcc long options, 3453 to make `g77 -v' report more useful info, and so on. 3454 3455Mon Jul 3 14:49:16 1995 Craig Burley (burley@gnu.ai.mit.edu) 3456 3457 * DOC, com.c, intrin.h, intrin.c, intrin.def, target.h, top.c, 3458 top.h: Add new `unix' group of intrinsics, which includes the 3459 newly added ERF, ERFC, EXIT, plus even newer ABORT, DERF, DERFC, 3460 FLUSH, GETARG, GETENV, SIGNAL, and SYSTEM. 3461 3462Tue Jun 27 23:01:05 1995 Craig Burley (burley@gnu.ai.mit.edu) 3463 3464 * bld.c, bld.h (ffebld_constant_pool, 3465 ffebld_constant_character_pool): Use a single macro (the 3466 former) to access the pool for allocating constants, instead 3467 of latter in public and FFEBLD_CONSTANT_POOL_ internally 3468 in bld.c (which was the only one that was correct before 3469 these changes). Add verification of integrity of certain 3470 heap-allocated areas. 3471 3472 * com.c (ffecom_overlap_, ffecom_args_overlap_, 3473 ffecom_tree_canonize_ptr_, ffecom_tree_canonize_ref_): New 3474 functions to optimize calling COMPLEX and, someday, CHARACTER 3475 functions requiring additional argument to be passed. 3476 (ffecom_call_, ffecom_call_binop_, ffecom_expr_, 3477 ffecom_expr_intrinsic_): Change calling 3478 sequences to include more info on possible destination. 3479 (ffecom_expr_intrinsic_): Add ERF(), ERFC(), and EXIT() 3480 intrinsic code. 3481 (ffecom_sym_transform_): For assumed-size arrays, set high 3482 bound to highest possible value instead of low bound, to 3483 improve validity of overlap checking. 3484 (duplicate_decls): If olddecl and newdecl are the same, 3485 don't do any munging, just return affirmative. 3486 3487 * expr.c: Change ffecom_constant_character_pool() to 3488 ffecom_constant_pool(). 3489 3490 * info.c (ffeinfo_new): Compile this version if not being 3491 compiled by GNU C. 3492 3493 * info.h (ffeinfo_new): Don't define macro if not being 3494 compiled by GNU C. 3495 3496 * intrin.c, intrin.def: Add ERF(), ERFC(), and EXIT() intrinsics. 3497 (ffeintrin_check_exit_): New for EXIT() subroutine intrinsic. 3498 3499 * malloc.c, malloc.h (malloc_verify_*): New functions to verify 3500 integrity of heap-storage areas. 3501 3502 * stc.c (ffestc_R834, ffestc_R835): Handle possibility that 3503 an enclosing DO won't have a construct name even when the 3504 CYCLE/EXIT does (i.e. without dereferencing NULL). 3505 3506 * target.c, target.h (ffetarget_verify_character1): New function 3507 to verify integrity of heap storage used to hold character constant. 3508 3509Thu Jun 22 15:36:39 1995 Howard Gordon (flash@super.org) 3510 3511 * stp.h (ffestpVxtcodeIx): Fix typo in typedef for this. 3512 3513Mon May 29 15:22:31 1995 Craig Burley (burley@gnu.ai.mit.edu) 3514 3515 * *: Make all sorts of changes to accommodate upcoming gcc-2.7.0. 3516 I didn't keep track of them, nor just when I made them, nor 3517 when I (much later, probably in early August 1995) modified 3518 them so they could properly handle both 2.7.0 and 2.6.x. 3519 3520 * com.c (ffecom_expr_power_integer_): Don't expand_start_stmt_expr 3521 if transforming dummy args, because the back end cannot handle 3522 that (it's rejected by the gcc front end), just generate 3523 call to run-time library. 3524 Back out changes in 0.5.15 because more temporaries might be 3525 needed anyway (for COMPLEX**INTEGER). 3526 (ffecom_push_tempvar): Remove inhibitor. 3527 Around start_decl and finish_decl (in particular, arround 3528 expand_decl, which is called by them), push NULL_TREE into 3529 sequence_rtl_expr, an external published by gcc/function.c. 3530 This makes sure the temporary is truly in the function's 3531 context, not the inner context of a statement-valued expression. 3532 (I think the back end is inconsistent here, but am not 3533 interested in convincing the gbe maintainers about this now.) 3534 (pushdecl): Make sure that when pushing PARM_DECLs, nothing 3535 other than them are pushed, as happened for 0.5.15 and which, 3536 if done for other reasons not fixed here, might well indicate 3537 some other problem -- so crash if it happens. 3538 3539 * equiv.c (ffeequiv_layout_local_): If the local equiv group 3540 has a non-nil COMMON field, it should mean that an error has 3541 occurred and been reported, so just trash the local equiv 3542 group and do nothing. 3543 3544 * stc.c (ffestc_promote_sfdummy_): Set sfdummy arg state to 3545 UNDERSTOOD so above checking for duplicate args actually 3546 works, and so we don't crash later in pushdecl. 3547 3548 * ste.c (ffeste_R1001): Set initial value only for VAR_DECLs, 3549 not for, e.g., LABEL_DECLs, which the FORMAT label can be 3550 if it was previously treated as an executable label. 3551 3552Sat May 20 01:53:53 1995 Craig Burley (burley@gnu.ai.mit.edu) 3553 3554 * com.c (ffecom_sym_transform_): For adjustable arrays, 3555 pass high bound through variable_size in case its primaries 3556 are changed (dumb0.f, and this might also improve 3557 performance so it approaches f2c|gcc). 3558 3559Fri May 19 11:00:36 1995 Craig Burley (burley@gnu.ai.mit.edu) 3560 3561 * Version 0.5.15 released. 3562 3563 * com.c (ffecom_expr_power_integer_): Push temp vars 3564 before expanding a statement expression, since that seems 3565 to cause temp vars to be "forgotten" after the end of the 3566 expansion in the back end. Disallow more temp-var 3567 pushing during such an expansion, just in case. 3568 (ffecom_push_tempvar): Crash if a new variable needs to be 3569 pushed but cannot be at this point (should never happen). 3570 3571Wed May 17 12:26:16 1995 Craig Burley (burley@gnu.ai.mit.edu) 3572 3573 * expr.c (ffeexpr_collapse_convert): Add code to convert 3574 LOGICAL to CHARACTER. Reject conversion of REAL or COMPLEX 3575 to CHARACTER entirely, as it cannot be supported with all 3576 configurations. 3577 3578 * target.h, target.c (ffetarget_convert_character1_logical1): 3579 New function. 3580 3581Sun May 14 00:00:09 1995 Craig Burley (burley@gnu.ai.mit.edu) 3582 3583 * com.c (ffecom_do_entry_, ffecom_gen_sfuncdef_, 3584 ffecom_start_progunit_, ffecom_sym_transform_, 3585 ffecom_init_0, start_function): Changes to have REAL 3586 external functions return same type as DOUBLE PRECISION 3587 external functions when -ff2c is in force; while at it, 3588 some code cleanups done. 3589 3590 * stc.c (ffestc_R547_item_object): Disallow array declarator 3591 if one already exists for symbol. 3592 3593 * ste.c (ffeste_R1227): Convert result variable to type 3594 of function result as seen by back end (e.g. for when REAL 3595 external function actually returns result as double). 3596 3597 * target.h (FFETARGET_defaultFIXED_LINE_LENGTH): New 3598 macro for default for -ffixed-line-length-N option. 3599 3600 * top.c (ffe_fixed_line_length_): Initialize this to new 3601 target.h macro instead of constant 72. 3602 3603Tue May 9 01:20:03 1995 Craig Burley (burley@gnu.ai.mit.edu) 3604 3605 * lex.c (ffelex_send_token_): If sending CHARACTER token with 3606 null text field, put a single '\0' in it and set length/size 3607 fields to 0 (to fix 950508-0.f). 3608 (ffelex_image_char_): When setting ffelex_bad_line_ to TRUE, 3609 always "close" card image by appending a null char and setting 3610 ffelex_card_length_. As part of this, append useful text 3611 to identify the two kinds of problems that involve this. 3612 (ffelex_file_fixed): Reset ffelex_bad_line_ to FALSE after 3613 seeing a line with invalid first character (fixes 950508-1.f). 3614 If final nontab column is zero, assume tab seen in line. 3615 (ffelex_card_image_): Always make this array 8 characters 3616 longer than reflected by ffelex_card_size_. 3617 (ffelex_init_1): Get final nontab column info from top instead 3618 of assuming 72. 3619 3620 * options-lang.h: Add -ffixed-line-length- prefix. 3621 3622 * top.h: Add ffe_fixed_line_length() and _set_ version, plus 3623 corresponding extern. 3624 3625 * top.c: Handle -ffixed-line-length- option prefix. 3626 3627Fri Apr 28 05:40:25 1995 Craig Burley (burley@gnu.ai.mit.edu) 3628 3629 * Version 0.5.14 released. 3630 3631 * Make-lang.in: Add assert.j. 3632 3633 * Makefile.in: Add assert.j. 3634 3635 * assert.j: New file. 3636 3637Thu Apr 27 16:24:22 1995 Craig Burley (burley@gnu.ai.mit.edu) 3638 3639 * bad.h (ffebad_severity): New function. 3640 3641 * bad.c (ffebad_severity): New function. 3642 3643 * bad.def (FFEBAD_OPEN_INCLUDE): Change severity from SEVERE 3644 to FATAL, since processing continues, and that seems fine. 3645 3646 * com.c: Add facility to handle -I. 3647 (ffecom_file, ffecom_close_include, ffecom_open_include, 3648 ffecom_decode_include_option): New global functions for -I. 3649 (ffecom_file_, ffecom_initialize_char_syntax_, 3650 ffecom_close_include_, ffecom_decode_include_option_, 3651 ffecom_open_include_, append_include_chain, open_include_file, 3652 print_containing_files, read_filename_string, file_name_map, 3653 savestring): New internal functions for -I. 3654 3655 * compilers.h: Pass -I flag(s) to f771 (via "%{I*}"). 3656 3657 * lex.c (ffelex_include_): Call ffecom_close_include 3658 to close include file, for its tracking needs for -I, 3659 instead of using fclose. 3660 3661 * options-lang.h: Add -I prefix. 3662 3663 * parse.c (yyparse): Call ffecom_file for main input file, 3664 so -I handling works (diagnostics). 3665 3666 * std.c (ffestd_S3P4): Have ffecom_open_include handle 3667 opening and diagnosing errors with INCLUDE files. 3668 3669 * ste.c (ffeste_begin_iterdo_): Use correct algorithm for 3670 calculating # of iterations -- mathematically similar but 3671 computationally different algorithm was not handling cases 3672 like "DO I=6,5,2" correctly, because (5-6)/2+1 => 1, not 0. 3673 3674 * top.c (ffe_decode_option): Allow -I, restructure a bit 3675 for clarity and, maybe, speed. 3676 3677Mon Apr 17 13:31:11 1995 Craig Burley (burley@gnu.ai.mit.edu) 3678 3679 * g77.c: Remove -lc, turns out not all systems has it, but 3680 leave other changes in for clarity of code. 3681 3682Sun Apr 16 21:50:33 1995 Craig Burley (burley@gnu.ai.mit.edu) 3683 3684 * com.c (ffecom_expr_): Implement ARRAY_EXPR as INDIRECT_REF 3685 of appropriate PLUS_EXPRs of ptr_to_expr of array, to see 3686 if this generates better code. (Conditional on 3687 FFECOM_FASTER_ARRAY_REFS.) 3688 3689Sun Apr 16 00:22:48 1995 Craig Burley (burley@gnu.ai.mit.edu) 3690 3691 * Make-lang.in (F77_SRCS): Remove g77.c, since it doesn't 3692 contribute to building f771. 3693 3694 * Makefile.in (dircheck): Remove/replace with f/Makefile, because 3695 phony targets that are referenced in other real targets get run 3696 when those targets are specified, which is a waste of time (e.g. 3697 when rebuilding and only g77.c has changed, f771 was being linked 3698 anyway). 3699 3700 * g77.c: Include -lc between -lf2c and -lm throughout. 3701 3702 * implic.c (ffeimplic_establish_symbol): If -Wimplicit, warn if 3703 implicit type given to symbol. 3704 3705 * lex.c (ffelex_include_): Don't gratuitously increment line 3706 number here. 3707 3708 * top.h, top.c (ffe_is_warn_implicit_): New global variable and 3709 related access macros. 3710 (ffe_decode_option): Handle -W options, including -Wall and 3711 -Wimplicit. 3712 3713 * where.c (ffewhere_line_new): Don't muck with root line (was 3714 crashing on null input since lexer changes over the past week 3715 or so). 3716 3717Thu Apr 13 16:48:30 1995 Craig Burley (burley@gnu.ai.mit.edu) 3718 3719 * com.c (ffecom_init_0): Register built-in functions for cos, 3720 sin, and sqrt. 3721 (ffecom_tree_fun_type_double): New variable. 3722 (ffecom_expr_intrinsic_): Update f2c input and output files 3723 to latest version of f2c (no important g77-related changes 3724 noted, just bug fixes to f2c and such). 3725 (builtin_function): New function from c-decl.c. 3726 3727 * com-rt.def: Refer to built-in functions for cos, sin, and sqrt. 3728 3729Thu Apr 13 10:25:09 1995 Craig Burley (burley@gnu.ai.mit.edu) 3730 3731 * com.c (ffecom_expr_intrinsic_): Convert 0. to appropriate 3732 type to keep DCMPLX(I) from crashing the compiler. 3733 (ffecom_expr_): Don't convert result from ffecom_tree_divide_. 3734 (ffecom_tree_divide_): Add tree_type argument, have all callers 3735 pass one, and don't convert right-hand operand to it (this is 3736 to make this new function work as much like the old in-line 3737 code used in ffecom_expr_ as possible). 3738 3739 * lex.c: Maintain lineno and input_filename the way the gcc 3740 lexer does. 3741 3742 * std.c (ffestd_exec_end): Save and restore lineno and 3743 input_filename around the second pass, which sets them 3744 appropriately for each saved statement. 3745 3746Wed Apr 12 09:44:45 1995 Craig Burley (burley@gnu.ai.mit.edu) 3747 3748 * com.c (ffecom_expr_power_integer_): New function. 3749 (ffecom_expr_): Call new function for power op with integer second 3750 argument, for generating better code. Also replace divide 3751 code with call to new ffecom_tree_divide_ function. 3752 Canonicalize calls to ffecom_truth_value(_invert). 3753 (ffecom_tree_divide_): New function. 3754 3755Wed Apr 5 14:15:44 1995 Craig Burley (burley@gnu.ai.mit.edu) 3756 3757 * lex.c: Change to allocate text for tokens only when actually 3758 needed, which should speed compilation up somewhat. 3759 Change to allow INCLUDE at any point where a statement 3760 can end, i.e. in ffelex_finish_statement_ or when a SEMICOLON 3761 token is sent. 3762 Remove some old, obsolete code. 3763 Clean up layout of entire file to improve formatting, 3764 readability, etc. 3765 (ffelex_set_expecting_hollerith): Remove include argument. 3766 3767Fri Mar 31 23:19:08 1995 Craig Burley (burley@gnu.ai.mit.edu) 3768 3769 * bad.h, bad.c (ffebad_start_msg, ffebad_start_msg_lex): 3770 New functions to generate arbitrary messages. 3771 (FFEBAD_severityPEDANTIC): New severity, to correspond 3772 to toplev's pedwarn() function. 3773 3774 * lex.c (ffelex_backslash_): New function to implement 3775 backslash processing. 3776 (ffelex_file_fixed, ffelex_file_free): Implement new 3777 backslash processing. 3778 3779 * std.c (ffestd_R1001dump_): Don't assume CHARACTER and 3780 HOLLERITH tokens stop at '\0' characters, now that backslash 3781 processing is supported -- use their advertised lengths instead, 3782 and double up the '\002' character for libf2c. 3783 3784Mon Mar 27 17:10:33 1995 Craig Burley (burley@gnu.ai.mit.edu) 3785 3786 * com.c (ffecom_init_local_zero_): Implement -finit-local-zero. 3787 (ffecom_sym_transform_): Same. 3788 (ffecom_transform_equiv_): Same. 3789 3790 * options-lang.h: Add -f(no-)(init-local-zero,backslash,ugly-init). 3791 3792 * stb.c (ffestb_V020): Reject "TYPEblah(...", which might be 3793 an array assignment. 3794 3795 * target.h, top.h, top.c: Implement -finit-local-zero. 3796 3797Fri Mar 24 19:56:22 1995 Craig Burley (burley@gnu.ai.mit.edu) 3798 3799 * Make-lang.in, Makefile.in: Remove conf-proj(.in) and 3800 proj.h(.in) rules, plus related config.log, config.cache, 3801 and config.status stuff. 3802 3803 * com.c (ffecom_init_0): Change messages when atof(), bsearch(), 3804 or strtoul() do not work as expected in the start-up test. 3805 3806 * conf-proj, conf-proj.in: Delete. 3807 3808 * lex.c (ffelex_file_fixed): Allow f2c's '&' in column 1 3809 to mean continuation line. 3810 3811 * options-lang.h: New file, #include'd by ../toplev.c. 3812 3813 * proj.h.in: Rename back to proj.h. 3814 3815 * proj.h (LAME_ASSERT): Remove. 3816 (LAME_STDIO): Remove. 3817 (NO_STDDEF): Remove. 3818 (NO_STDLIB): Remove. 3819 (NO_BSEARCH): Remove auto detection, rename to !FFEPROJ_BSEARCH. 3820 (NO_STRTOUL): Remove auto detection, rename to !FFEPROJ_STRTOUL. 3821 (USE_HOST_LIMITS): Remove (maybe still needed by stand-alone?). 3822 (STR, STRX): Do only ANSI C definitions. 3823 3824Mon Mar 13 10:46:13 1995 Craig Burley (burley@gnu.ai.mit.edu) 3825 3826 * BUGS: Add item about g77 requiring gcc to compile it. 3827 3828 * NEWS: New file listing user-visible changes in the release. 3829 3830 * PROJECTS: Update to include a new item or two, and modify 3831 or delete items that are addressed in this or previous releases. 3832 3833 * bad.c (ffebad_finish): Don't crash if missing string &c, 3834 just substitute obviously distressed string "[REPORT BUG!!]" 3835 for cases where the message/caller are fudgy. 3836 3837 * bad.def: Clean up error messages in a major way, add new ones 3838 for use by changes in target.c. 3839 3840 * com.c (ffecom_expr_): Handle opANY in opCONVERT. 3841 (ffecom_let_char_): Disregard destinations with ERROR_MARK. 3842 (ffecom_1, ffecom_1_fn, ffecom_2, ffecom_2s, ffecom_3, 3843 ffecom_3s, &c): Check all inputs for error_mark_node. 3844 (ffecom_start_progunit_): Don't transform all symbols 3845 in BLOCK DATA, since it never executes, and it is silly 3846 to, e.g., generate all the structures for NAMELIST. 3847 (ffecom_char_length_expr_): Rename to ffecom_intrinsic_len_. 3848 (ffecom_intrinsic_ichar_): New function to handle ICHAR of 3849 arbitrary expression with possible 0-length operands. 3850 (ffecom_expr_intrinsic_): Use ffecom_intrinsic_char_. 3851 For MVBITS, set tree_type to void_type_node. 3852 (ffecom_start_progunit_): Name master function for entry points 3853 after primary entry point so users can easily guess it while 3854 debugging. 3855 (ffecom_arg_ptr_to_expr): Change treatment of Hollerith, 3856 Typeless, and %DESCR. 3857 (ffecom_expr_): Change treatment of Hollerith. 3858 3859 * data.c (ffedata_gather_): Handle opANY in opCONVERT. 3860 3861 * expr.c (ffeexpr_token_apostrophe_): Issue FFEBAD_NULL_CHAR_CONST 3862 warning as necessary. 3863 (ffeexpr_token_name_rhs_): Set context for args to intrinsic 3864 so that assignment-like concatenation is allowed for ICHAR(), 3865 IACHAR(), and LEN() intrinsics. 3866 (ffeexpr_reduced_*_): Say "an array" instead of "an entity" in 3867 diagnostics, since it's more informative. 3868 (ffeexpr_finished_): For many contexts, check for null expression 3869 and array before trying to do a conversion, to avoid redundant 3870 diagnostics. 3871 3872 * g77.1: Fix typo for preprocessed suffix (.F, not .f). 3873 3874 * global.c (ffeglobal_init_common): Warn if initializing 3875 blank common. 3876 (ffeglobal_pad_common): Enable code to warn if initial 3877 padding needed. 3878 (ffeglobal_size_common): Complain if enlarging already- 3879 initialized common, since it won't work right anyway. 3880 3881 * intrin.c: Add IMAG() intrinsic. 3882 (ffeintrin_check_loc_): Allow opSUBSTR in LOC(). 3883 3884 * intrin.def: Add IMAG() intrinsic. 3885 3886 * lex.c: Don't report FFEBAD_NULL_CHAR_CONST errors. 3887 3888 * sta.c, sta.h, stb.c: Changes to clean up error messages (see 3889 bad.def). 3890 3891 * stb.c (ffestb_R100113_): Issue FFEBAD_NULL_CHAR_CONST 3892 warning as necessary. 3893 3894 * stc.c (ffestc_shriek_do_): Don't try to reference doref_line 3895 stuff in ANY case, since it won't be valid. 3896 (ffestc_R1227): Allow RETURN in main program unit, with 3897 appropriate warnings/errors. 3898 (ffestc_subr_format_): Array of any type is a CHAREXPR (F77 C5). 3899 3900 * ste.c (ffeste_begin_doiter_): Couple of fixes to accurately 3901 determine if loop never executes. 3902 3903 * target.c (ffetarget_convert_*_hollerith_): Append spaces, 3904 not zeros, to follow F77 Appendix C, and to warn when 3905 truncation of non-blanks done. 3906 (ffetarget_convert_*_typeless): Rewrite to do typeless 3907 conversions properly, and warn when truncation done. 3908 (ffetarget_print_binary, ffetarget_print_octal, 3909 ffetarget_print_hex): Rewrite to use new implementation of 3910 typeless. 3911 (ffetarget_typeless_*): Rewrite to use new implementation 3912 of typeless, and to warn about overflow. 3913 3914 * target.h (ffetargetTypeless): New implementation of 3915 this type. 3916 3917 * type.h, type.c (ffetype_size_typeless): Remove (incorrect) 3918 implementation of this function and its extern. 3919 3920Sun Mar 5 18:46:42 1995 Craig Burley (burley@gnu.ai.mit.edu) 3921 3922 * BUGS: Clarify that constant handling would also fix lack of 3923 adequate IEEE-754/854 support to some degree, and typeless 3924 and non-decimal constants. 3925 3926 * com.c (ffecom_type_permanent_copy_): Comment out to avoid 3927 warnings. 3928 (duplicate_decls): New function a la gcc/c-decl.c. 3929 (pushdecl): Use duplicate_decls to decide whether to return 3930 existing decl or new one, instead of always returning existing 3931 decl. 3932 (ffecom_expr_): opPERCENT_LOC now supports CHARACTER arguments. 3933 (ffecom_init_0): Give f2c I/O code 0 for basictypeANY/kindtypeANY. 3934 (ffecom_sym_transform_): For adjustable arrays, pass low bound 3935 through variable_size in case its primaries are changed (950302-1.f). 3936 3937 * com.h: More decls that belong in tree.h &c. 3938 3939 * data.c (ffedata_eval_integer1_): Fix opPAREN case to not 3940 treat value of expression as an error code. 3941 3942 * expr.c (ffeexpr_finished_): Allow opSUBSTR in contextLOC case. 3943 3944 * proj.c: Add "const" as appropriate. 3945 3946Mon Feb 27 10:04:03 1995 Craig Burley (burley@gnu.ai.mit.edu) 3947 3948 * bad.def (FFEBAD_BAD_SUBSTR): Fix bad grammar in message. 3949 3950Fri Feb 24 16:21:31 1995 Craig Burley (burley@gnu.ai.mit.edu) 3951 3952 * Version 0.5.13 released. 3953 3954 * INSTALL: Warn that f/zzz.o will compare differently between 3955 stages, since it puts the __TIME__ macro into a string. 3956 3957 * com.c (ffecom_sym_transform_): Transform kindFUNCTION/whereDUMMY 3958 to pointer-to-function, not function. 3959 (ffecom_expr_): Use ffecom_arg_ptr_to_expr instead of 3960 ffecom_char_args_ to handle comparison between CHARACTER 3961 types, so either operand can be a CONCATENATE. 3962 (ffecom_transform_common_): Set size of initialized common area 3963 to global (largest-known) size, even though size of init might 3964 be smaller. 3965 3966 * equiv.c (ffeequiv_offset_): Check symbol info for ANY. 3967 3968 * expr.c (ffeexpr_find_close_paren_, ffeexpr_nil_*): New functions 3969 to handle following the contour of a rejected expression, so 3970 statements like "PRINT(I,I,I)=0" don't cause the PRINT statement 3971 code to get the second passed back to it as if there was a 3972 missing close-paren before it, the comma causing the PRINT code 3973 to confirm the statement, resulting in an ambiguity vis-a-vis 3974 the let statement code. 3975 Use the new ffecom_find_close_paren_ handler when an expected 3976 close-paren is missing. 3977 (ffeexpr_isdigits_): New function, use in all places that 3978 currently use isdigit in repetitive code. 3979 (ffeexpr_collapse_symter): Collapse to ANY if init-expr is ANY, 3980 so as to avoid having symbol get "transformed" if used to 3981 dimension an array. 3982 (ffeexpr_token_real_, ffeexpr_token_number_real_): Don't issue 3983 diagnostic about exponent, since it'll be passed along the 3984 handler path, resulting in a diagnostic anyway. 3985 (ffeexpr_token_apos_char_): Use consistent handler path 3986 regardless of whether diagnostics inhibited. 3987 (ffeexpr_token_name_apos_name_): Skip past closing quote/apos 3988 even if not a match or other diagnostic issued. 3989 (ffeexpr_sym_impdoitem_): Exec-transition local SEEN symbol. 3990 3991 * lex.c (ffelex_image_char_): Set ffelex_saw_tab_ if TAB 3992 seen, not if anything other than TAB seen! 3993 3994 * stc.c (ffestc_R537_item): If source is ANY but dest isn't, 3995 set dest symbol's init expr to ANY. 3996 (ffestc_R501_attrib, ffestc_R522, ffestc_R522start): Complain 3997 about conflict between "SAVE" by itself and other uses of 3998 SAVE only in pedantic mode. 3999 4000 * ste.c (ffeste_R1212): Fix loop over labels to always 4001 increment caseno, to avoid pushcase returning 2 for duplicate 4002 values when one of the labels is invalid. 4003 4004Thu Feb 23 12:42:04 1995 Craig Burley (burley@gnu.ai.mit.edu) 4005 4006 * Version 0.5.12 released. 4007 4008 * Make-lang.in (f77.install-common): Add "else true;" before outer 4009 "fi" per Makefile.in patch. 4010 4011 * Makefile.in (dircheck): Add "else true;" before "fi" per 4012 patch from chs1pm@surrey.ac.uk. 4013 4014 * com.c (ffecom_push_tempvar): If type desired is ERROR_MARK, 4015 return error_mark_node, to avoid crash that results from 4016 making a VAR_DECL with error_mark_node as its type. 4017 4018 * ste.c (ffeste_begin_iterdo_): Convert itercount to INTEGER 4019 anytime calculation of number of iterations ends up with type 4020 other than INTEGER (e.g. DOUBLE PRECISION, REAL). 4021 4022Thu Feb 23 02:48:38 1995 Craig Burley (burley@gnu.ai.mit.edu) 4023 4024 * Version 0.5.11 released. 4025 4026 * DOC: Explain -fugly-args. 4027 4028 * bad.def (FFEBAD_ACTUALARG): Explain -fugly-args and how to 4029 rewrite code to not require it. 4030 4031 * com.c (ffecom_vardesc_): Handle negative type code, just in 4032 case. 4033 (ffecom_arg_ptr_to_expr): Let ffecom_expr handle hollerith 4034 and typeless constants (move code to ffecom_constantunion). 4035 (ffecom_constantunion): Handle hollerith and typeless constants. 4036 4037 * expr.c (ffecom_finished_): Check -fugly-args in actual-arg 4038 context where hollerith/typeless provided. 4039 4040 * intrin.def (FFEINTRIN_genDFLOAT): Add FFEINTRIN_specDFLOAT. 4041 (FFEINTRIN_specDFLOAT): Add as f2c intrinsic. 4042 4043 * target.h (ffetarget_convert_real[12]_integer, 4044 ffetarget_convert_complex[12]_integer): Pass -1 for high integer 4045 value if low part is negative. 4046 (FFETARGET_defaultIS_UGLY_ARGS): New macro. 4047 4048 * top.c (ffe_is_ugly_args_): New variable. 4049 (ffe_decode_option): Handle -fugly-args and -fno-ugly-args. 4050 4051 * top.h (ffe_is_ugly_args_, ffe_is_ugly_args(), 4052 ffe_set_is_ugly_args()): New variable and macros. 4053 4054Thu Feb 23 02:48:38 1995 Pedro A M Vazquez (vazquez@iqm.unicamp.br) 4055 4056 * g77.c (sys_errlist): Use const for __FreeBSD__ systems 4057 as well. 4058 4059Wed Feb 22 13:33:43 1995 Craig Burley (burley@gnu.ai.mit.edu) 4060 4061 * Version 0.5.10 released. 4062 4063 * CREDITS: Add Rick Niles. 4064 4065 * INSTALL: Note how to get around lack of makeinfo. 4066 4067 * Make-lang.in (f/proj.h): Remove # comment. 4068 4069 * Makefile.in (f/proj.h): Remove # comment. 4070 4071 * com.c (ffecom_expr_): Simplify opFUNCREF/opSUBRREF conversion. 4072 (ffecom_sym_transform_): For whereGLOBAL and whereDUMMY 4073 kindFUNCTION, use ffecom_tree_fun_type[][] only for non-constant 4074 (non-statement-function) f2c functions. 4075 (ffecom_init_0): ffecom_tree_fun_type[][] and _ptr_to_*_* are 4076 really f2c-interface arrays, so use base type void for COMPLEX 4077 (like CHARACTER). 4078 4079Tue Feb 21 19:01:18 1995 Dave Love <d.love@dl.ac.uk> 4080 4081 * Make-lang.in (f77.install-common): Expurgate the test for and 4082 possible installation of f2c in line with elsewhere. Seems to have 4083 been missing a semicolon anyhow! 4084 4085Tue Feb 21 11:45:25 1995 Craig Burley (burley@gnu.ai.mit.edu) 4086 4087 * Version 0.5.9 released. 4088 4089 * Make-lang.in (f/proj.h): touch file to register update, 4090 because the previous commands won't necessarily modify it. 4091 4092 * Makefile.in (f/proj.h): touch file to register update, 4093 because the previous commands won't necessarily modify it. 4094 4095 * Makefile.in (f/str-*.h, f/str-*.j): Explicitly specify 4096 output file names, so these targets go in build, not source, 4097 directory. 4098 4099 * bits.c, bits.h: Switch to valid ANSI C replacement for 4100 ARRAY_ZERO. 4101 4102 * com.c (ffecom_expr_): Add assignp arg to support ASSIGN better. 4103 If assignp is TRUE, use different tree for FFEBLD_opSYMTER case. 4104 (ffecom_sym_transform_assign_): New function. 4105 (ffecom_expr_assign): New function. 4106 (ffecom_expr_assign_w): New function. 4107 4108 * com.c (ffecom_f2c_make_type_): Do make_signed_type instead 4109 of make_unsigned_type throughout. 4110 4111 * com.c (ffecom_finish_symbol_transform_): Expand scope of 4112 commented-out code to probably produce faster compiler code. 4113 4114 * com.c (ffecom_gen_sfuncdef_): Push/pop calltemps so 4115 COMPLEX works right. 4116 Remove obsolete comment. 4117 4118 * com.c (ffecom_start_progunit_): If non-multi alt-entry 4119 COMPLEX function, primary (static) entry point returns result 4120 directory, not via extra arg -- to agree with ffecom_return_expr 4121 and others. 4122 Pretransform all symbols so statement functions are defined 4123 before any code emitted. 4124 4125 * com.c (ffecom_finish_progunit): Don't posttransform all 4126 symbols here -- pretransform them instead. 4127 4128 * com.c (ffecom_init_0): Don't warn about possible ASSIGN 4129 crash, as this shouldn't happen now. 4130 4131 * com.c (ffecom_push_tempvar): Fix to handle temp vars 4132 pushed while context is a statement (nested) function, and 4133 add appropriate commentary. 4134 4135 * com.c (ffecom_return_expr): Check TREE_USED to determine 4136 where return value is unset. 4137 4138 * com.h (struct _ffecom_symbol_): Add note about length_tree 4139 now being used to keep tree for ASSIGN version of symbol. 4140 4141 * com.h (ffecom_expr_assign, ffecom_expr_assign_rw): New decls. 4142 (error): Add this prototype for back-end function. 4143 4144 * fini.c (main): Grab input, output, and include names 4145 directly off the command line instead of making the latter 4146 two out of the first. 4147 4148 * lex.c: Improve tab handling for both fixed and free source 4149 forms, and ignore carriage-returns on input, while generally 4150 improving the code. ffelex_handle_tab_ has been renamed and 4151 reinvented as ffelex_image_char_, among other things. 4152 4153 * malloc.c, malloc.h: Switch to valid ANSI C replacement for 4154 ARRAY_ZERO, and kill the full number of bytes in pools and 4155 areas. 4156 4157 * proj.h.in (ARRAY_ZERO, ARRAY_ZERO_SIZE): Remove. 4158 4159 * ste.c (ffeste_io_cilist_, ffeste_io_icilist_, ffeste_R838, 4160 ffeste_R839): Issue diagnostic if a too-narrow variable used in an 4161 ASSIGN context despite changes to this code and code in com.c. 4162 4163 * where.c, where.h: Switch to valid ANSI C replacement for 4164 ARRAY_ZERO. 4165 4166Fri Feb 17 03:35:19 1995 Craig Burley (burley@gnu.ai.mit.edu) 4167 4168 * Version 0.5.8 released. 4169 4170 * INSTALL: In quick-build case, list g77 target first so g77 4171 gets installed. Also, explain that gcc gets built and installed 4172 as well, even though this isn't really what we want (and maybe 4173 we'll find a way around this someday). 4174 4175Fri Feb 17 02:35:41 1995 Craig Burley (burley@gnu.ai.mit.edu) 4176 4177 * Version 0.5.7 released. 4178 4179 * Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Remove 4180 ../ prefix in front of .h files, since they're in the cd. 4181 4182Fri Feb 17 01:50:48 1995 Craig Burley (burley@gnu.ai.mit.edu) 4183 4184 * Version 0.5.6 released. 4185 4186Thu Feb 16 20:26:54 1995 Craig Burley (burley@gnu.ai.mit.edu) 4187 4188 * ../README.g77: Remove description of g77 as "not-yet-published". 4189 4190 * CREDITS: More changes. 4191 4192 * Make-lang.in (G77STAGESTUFF): Remove cktyps stuff. 4193 4194 * Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Don't 4195 prefix gcc dir with $(srcdir) since these don't live there, 4196 they are created in the build dir by gcc's configure. Add 4197 a note explaining what these macros are about. 4198 Update dependencies via deps-kinda. 4199 4200 * README.NEXTSTEP: Credit Toon, and per his request, add his 4201 email address. 4202 4203 * com.h (FFECOM_DETERMINE_TYPES): #include "config.j". 4204 4205 * config.j, convert.j, flags.j, hconfig.j, rtl.j, tconfig.j, 4206 tm.j, tree.j: Don't #include if already done. 4207 4208 * convert.j: #include "tree.j" first, as convert.h clearly depends 4209 on trees being defined. 4210 4211 * rtl.j: #include "config.j" first, since there's some stuff 4212 in rtl.h that assumes it has been #included. 4213 4214 * tree.j: #include "config.j" first, or real.h makes inconsistent 4215 decision about return type of ereal_atof, leading to bugs, and 4216 because tree.h/real.h assume config.h already included. 4217 4218Wed Feb 15 14:40:20 1995 Craig Burley (burley@gnu.ai.mit.edu) 4219 4220 * Version 0.5.5 released. 4221 4222 * Copyright notices updated to be FSF-style. 4223 4224 * INSTALL: Some more clarification regarding building just f77. 4225 4226 * Make-lang.in (F77_SRCS): Update wrt changing some .h to .j. 4227 (install-libf77): Fix typo in new parenthetical note. 4228 4229 * Makefile.in (f/*.o): Update. 4230 (CONFIG_H, CONVERT_H, FLAGS_H, GLIMITS_H, HCONFIG_H, RTL_H, 4231 TCONFIG_H, TM_H, TREE_H): Update/new symbols. 4232 (deps-kinda): More fixes wrt changing some .h to .j. 4233 Document and explain this rule a bit better. 4234 Accommodate changes in output of gcc -MM. 4235 4236 * *.h, *.c: Change #include's so proj.h not assumed to #include 4237 malloc.h or config.h (now config.j), and so new .j files are 4238 used instead of old .h ones. 4239 4240 * com.c (ffecom_init_0): Use FLOAT_TYPE_SIZE for f2c's 4241 TYLONG/TYLOGICAL type codes, to get g77 working on Alpha. 4242 4243 * com.h: Make all f2c-related integral types "int", not "long 4244 int". 4245 4246 * config.j, convert.j, flags.j, glimits.j, hconfig.j, rtl.j, 4247 tconfig.j, tm.j, tree.j: New files wrapping around gbe 4248 .h files. 4249 4250 * config.h, convert.h, flags.h, glimits.h, hconfig.h, rtl.h, 4251 tconfig.h, tm.h, tree.h: Deleted so new .j files 4252 can #include the gbe files directly, instead of using "../", 4253 and thus do better with various kinds of builds. 4254 4255 * proj.h: Delete unused NO_STDDEF and related stuff. 4256 4257Tue Feb 14 08:28:08 1995 Craig Burley (burley@gnu.ai.mit.edu) 4258 4259 * BUGS: Remove item #12, cross-compiling & autoconf scripts 4260 reportedly expected to work properly (according to d.love). 4261 4262 * INSTALL: Add explanation of d.love's patch to config-lang.in. 4263 Add explanation of how to install just g77 when gcc already installed. 4264 Add note about usability of "-Wall". Add note about bug- 4265 reporting. 4266 4267 * Make-lang.in ($(srcdir)/f/conf-proj): Add comment about why 4268 conf-proj.out. 4269 (install-libf77): Echo parenthetical note to user about how to do 4270 just the (aborted) libf2c installation. 4271 (deps-kinda): Update to work with new configuration/build stuff. 4272 4273 * bad.c (ffebad_finish): Put capitalized "warning:" &c message 4274 as prefix on any diagnostic without pointers into source. 4275 4276 * bad.def (FFEBAD_TOO_BIG_INIT): Add this warning message. 4277 4278 * config-lang.in: Add Dave Love's patch to catch case where 4279 back-end patches not applied and abort configuration. 4280 4281 * data.c (ffedata_gather_, ffedata_value_): Warn when about 4282 to initialize a large aggregate area, due to design flaw resulting 4283 in too much time/space used to handle such cases. 4284 Use COMMON area name, and first notice of symbol, for multiple- 4285 initialization diagnostic, instead of member symbol and unknown 4286 location. 4287 (FFEDATA_sizeTOO_BIG_INIT_): New macro per above. 4288 4289Mon Feb 13 13:54:26 1995 Dave Love <d.love@dl.ac.uk> 4290 4291 * Make-lang.in (F77_SRCS): Use $(srcdir)/f/proj.h.in, not 4292 $(srcdir)/f/proj.h for build outside srcdir. 4293 4294Sun Feb 12 13:37:11 1995 Craig Burley (burley@gnu.ai.mit.edu) 4295 4296 * ../README.g77: Clarify procedures for unpacking, add asterisks 4297 to mark important things the user must do. 4298 4299 * Fix dates in/add dates to ../README.g77, BUGS, CREDITS, DOC, 4300 INSTALL, PROJECTS, README. 4301 4302Sun Feb 12 00:26:10 1995 Craig Burley (burley@gnu.ai.mit.edu) 4303 4304 * Version 0.5.4 released. 4305 4306 * Make-lang.in (f/proj.h): Reproduce this rule here from 4307 Makefile.in. 4308 ($(srcdir)/f/conf-proj): Put autoconf's stdout in temp file 4309 conf-proj.out, then mv to conf-proj only if successful, so 4310 conf-proj not touched if autoconf not installed. 4311 4312 * Makefile.in ($(srcdir)/conf-proj): See Make-lang.in's similar 4313 rule. 4314 4315Sat Feb 11 20:56:02 1995 Craig Burley (burley@gnu.ai.mit.edu) 4316 4317 * BUGS: Clarify some bugs. 4318 4319 * DOC: Many improvements and fixes. 4320 4321 * README: Move bulk of text, edited, to ../README.g77, and 4322 replace with pointer to that file. 4323 4324 * com.c (ffecom_init_0): Comment out warning about sizeof(ftnlen) 4325 as per ste.c change. Add text about ASSIGN to help user understand 4326 what is being warned about. 4327 4328 * conf-proj.in: Fix typos in comments. 4329 4330 * proj.h.in: Add ARRAY_ZERO_SIZE to parallel malloc.h's version, 4331 in case it proves to be needed. 4332 4333 * ste.c: Comment out assertions requiring sizeof(ftnlen) >= 4334 sizeof(char *), in the hopes that overflow will never happen. 4335 (ffeste_R838): Change assertion to fatal() with at least 4336 partially helpful message. 4337 4338Sat Feb 11 12:38:00 1995 Craig Burley (burley@gnu.ai.mit.edu) 4339 4340 * com.c (ffecom_vardesc_): Crash if typecode is -1. 4341 4342 * ste.c (ffeste_io_dolio_): Crash if typecode is -1. 4343 4344Sat Feb 11 09:51:57 1995 Craig Burley (burley@gnu.ai.mit.edu) 4345 4346 * ste.c: In I/O code tests for item arrayness, sort of revert 4347 to much earlier code that tests original exp, but also check 4348 in newer way just in case. Newer way alone treated FOO(1:40) 4349 as an array, not sure why older way alone didn't work, but I 4350 think maybe it was when diagnosed code was involved, and 4351 since there are now checks for error_mark_node, maybe the old 4352 way alone would work. But better to be safe; both original 4353 ffebld exp _and_ the transformed tree must indicate an array 4354 for the size-determination code to be used, else just 1/2 elements 4355 assumed. And this text is for EMACS: (foo at bar). 4356 4357Fri Feb 10 11:05:50 1995 Craig Burley (burley@gnu.ai.mit.edu) 4358 4359 * ste.c: In many cases, surround statement-expansion code 4360 with ffecom_push_calltemps () and ffecom_pop_calltemps () 4361 so COMPLEX-returning functions can have temporaries pushed 4362 in "auto-pop" mode and have them auto-popped at the end of 4363 the statement. 4364 4365Wed Feb 8 14:35:10 1995 Dave Love <d.love@dl.ac.uk> 4366 4367 * runtime/f2c.h.in (ftnlen, ftnint): Make same size as integer. 4368 4369 * runtime/libI77/err.c (f_init): Thinko in MISSING_FILE_ELEMS 4370 conditional. 4371 * runtime/libI77/wrtfmt.c (mv_cur): Likewise. 4372 * runtime/libI77/wsfe.c (x_putc): Likewise. 4373 4374 * runtime/libF77/signal_.c (signal_): Return 0 (this is a 4375 subroutine). 4376 4377 * Makefile.in (f/proj.h): Depend on com.h. 4378 * Make-lang.in (include/f2c.h): Likewise (and proj.h). 4379 (install-libf77): Also install f2c.h. 4380 4381 * runtime/libI77/Makefile.in (*.o): Add f2c.h dependency. 4382 * runtime/libF77/Makefile.in: Likewise. 4383 4384Wed Feb 8 13:56:47 1995 Craig Burley (burley@gnu.ai.mit.edu) 4385 4386 * stc.c (ffestc_R501_item): Don't reset kind/where to NONE when 4387 setting basictype/kindtype info for symbol, or especially 4388 its function/result twin, because kind/where might not be NONE. 4389 4390Tue Feb 7 14:47:26 1995 Dave Love <d.love@dl.ac.uk> 4391 4392 * Make-lang.in (include/f2c.h:): Set shell variable src more 4393 robustly (independent of whether srcdir is relative or absolute). 4394 * Makefile.in (f/proj.h:): Likewise. 4395 4396 * conf-proj.in: Check need for LAME_ASSERT. Fix indentation in 4397 check for LAME_STDIO (cosmetic only with ANSI C). 4398 4399 * com.h: Extra ...SIZE stuff taken from com.c. 4400 4401 * com.c (FFECOM_DETERMINE_TYPES): Define before including com.h. 4402 (BITS_PER_WORD etc.) Remove and use conditional definitions to com.h. 4403 4404 * runtime/configure.in: #define FFECOM_DETERMINE_TYPES for com.h in 4405 f2c type determination. 4406 4407 * tm.h: Remove (at least pro tem) because of relative path and use 4408 top-level one. 4409 4410 * Make-lang.in (include/f2c.h:): Set shell variable src more 4411 robustly (independent of whether srcdir is relative or absolute). 4412 * Makefile.in (f/proj.h:): Likewise. 4413 4414Mon Feb 6 19:58:32 1995 Dave Love <d.love@dl.ac.uk> 4415 4416 * g77.c (append_arg): Use K&R declaration for, e.g. SunOS4 build. 4417 4418Fri Feb 3 20:33:14 1995 Craig Burley (burley@gnu.ai.mit.edu) 4419 4420 * g77.c (main): Treat -l like filename in terms of -x handling. 4421 Rewrite arglist mechanism for ease of maintenance. 4422 Make sure every -lf2c is followed by -lm and vice versa. 4423 4424 * Make-lang.in: Put complete list of sources in F77_SRCS def 4425 so changing a .h file, for example, causes rebuild. 4426 4427 * Makefile.in: Change test for nextstep to m68k-next-nextstep* so 4428 all versions of nextstep on m68k get the necessary flag. 4429 4430Fri Feb 3 19:10:32 1995 Dave Love <d.love@dl.ac.uk> 4431 4432 * INSTALL: Note about possible conflict with existing libf2c.a and 4433 f2c.h. 4434 4435 * Make-lang.in (f77.distclean): Tidy and move deletion of 4436 f/config.cache to mostlyclean. 4437 (install-libf77): Test for $(libdir)/libf2c.* and barf if found 4438 unless F2CLIBOK defined. 4439 4440 * runtime/Makefile.in (all): Change path to include directory (and 4441 elsewhere). 4442 (INCLUDES): Remove (unused/misleading). 4443 (distclean): Include f2c.h. 4444 (clean): Include config.cache. 4445 4446 * runtime/libF77/Makefile.in (.SUFFIXES): Correct typo. 4447 (ALL_CFLAGS) Fix up include search path to find f2c.h in top level 4448 includes always. 4449 (all): Depend on f2c.h. 4450 * runtime/libI77/Makefile.in (.SUFFIXES): Likewise. 4451 4452Thu Feb 2 17:17:06 1995 Dave Love <d.love@dl.ac.uk> 4453 4454 * INSTALL: Note about --srcdir and GNU make. 4455 4456 * runtime/f2c.h.in (Pad_UDread, ALWAYS_FLUSH): Reomve the #defines 4457 per below. 4458 4459 * runtime/configure.in (Pad_UDread, ALWAYS_FLUSH): Define these 4460 here, not in f2c.h as they'r eonly relevant for building. 4461 * runtime/configure: Regenerated. 4462 4463 * config-lang.in: Warn about using GNU make outside source tree 4464 since I can't get Irix5 or SunOS4 makes to work in this case. 4465 4466 * Makefile.in (VPATH): Don't set it here. 4467 (srcdir): Make it the normal `.' (overridden) at top level. 4468 (all.indirect): New dependency `dircheck'. 4469 (f771): Likewise 4470 (dircheck): New target for foolproofing. 4471 (f/proj.h:): Change finding source. 4472 (CONFIG_H): Don't use this as the relative path in the include loses 4473 f builddir != srcdir. 4474 4475 * config.h: Remove per CONFIG_H change above. 4476 4477 * Make-lang.in (F77_FLAGS_TO_PASS): Remove GCC_FOR_TARGET. 4478 (f771:): Pass VPATH, srcdir to sub-make. 4479 (f/Makefile:): New target. 4480 (stmp-int-hdrs): new variable for cheating build. 4481 (f77-runtime:): Alter GCC_FOR_TARGET treatment. 4482 (include/f2c.h f/runtime/Makefile:) Likewise. 4483 (f77-runtime-unsafe:): New (cheating) target. 4484 4485Thu Feb 2 12:09:51 1995 Craig Burley (burley@gnu.ai.mit.edu) 4486 4487 * BUGS: Update regarding losing EQUIVALENCE members in -g, and 4488 regarding RS/6000 problems in the back end. 4489 4490 * CREDITS: Make some changes as requested. 4491 4492 * com.c (ffecom_member_trunk_): Remove unused static variable. 4493 (ffecom_finish_symbol_transform_): Improve comments. 4494 (ffecom_let_char_): Fix size of temp address-type var. 4495 (ffecom_member_phase2_): Try fixing problem fixed by change 4496 to ffecom_transform_equiv_ (f_m_p2_ function currently not used). 4497 (ffecom_transform_equiv_): Remove def of unused static variable. 4498 Comment-out use of ffecom_member_phase2_, until problems with 4499 back end fixed. 4500 (ffecom_push_tempvar): Fix assertion to not crash okay code. 4501 4502 * com.h: Remove old, commented-out code. 4503 Add prototype for warning() in back end. 4504 4505 * ste.c (ffeste_io_dofio_, ffeste_io_dolio_, ffeste_io_douio_, 4506 ffeste_io_icilist_): Check correct type of variable for arrayness. 4507 4508Sun Jan 29 14:41:42 1995 Dave Love <d.love@dl.ac.uk> 4509 4510 * BUGS: Remove references to my configure bugs; add another. 4511 4512 * runtime/Makefile.in (AR_FLAGS): Provide default value. 4513 4514 * runtime/f2c.h.in (integer, logical): Take typedefs from 4515 F2C_INTEGER configuration parameter again. 4516 (NON_UNIX_STDIO): don't define it. 4517 4518 * runtime/configure.in: Bring type checks for f2c.h in line with 4519 com.h. 4520 (MISSING_FILE_ELEMS): New variable to determine whether the relevant 4521 elements of the FILE struct exist, independent of NON_UNIX_STDIO. 4522 * runtime/libI77/{err,wrtfmt,wsfe}.c (MISSING_FILE_ELEMS): Use new 4523 parameter. 4524 4525 * config-lang.in: Comment out more of f2c rules (c.f. Make-lang.in). 4526 (This stuff is relevant iff you gave configure --enable-f2c.) 4527 Create f/runtime directory tree iff not building in source 4528 directory. 4529 4530 * Makefile.in (srcdir): Append slash so we get the right value when 4531 not building in the source directory. This is a consequence of not 4532 building the `f' sources in `f'. 4533 (VPATH): Override configure's value for reasons above. 4534 (f/proj.h f/conf-proj): New rules to build proj.h by 4535 autoconfiguration. 4536 4537 * proj.h: Rename to proj.h.in for autoconfiguration. 4538 * proj.h.in: New as above. 4539 * conf-proj conf-proj.in: New files for autoconfiguration. 4540 4541 * Make-lang.in (include/f2c.h f/runtime/Makefile:): Change the order 4542 of setting the sh variables so that the right GCC_FOR_TARGET is 4543 used. 4544 (f77.*clean:) Add products of new configuration files and make sure 4545 all the *clean targets do something (unlike the ones in 4546 cp/Make-lange.in). 4547 4548 * com.h (FFECOM_f2cINTEGER, FFECOM_f2cLOGICAL): Define as long or 4549 int appropriately to ensure sizeof(real) == sizeof(integer). 4550 4551 * PROJECTS: Library section. 4552 4553 * runtime/libI77/endfile.c: Don't #include sys/types.h conditional 4554 on NON_UNIX_STDIO since rawio.h needs size_t. 4555 * runtime/libI77/uio.c: #include <sys/types.h> for size_t if not 4556 KR_headers. 4557 4558Wed Jan 25 03:31:51 1995 Craig Burley (burley@gnu.ai.mit.edu) 4559 4560 * Version 0.5.3 released. 4561 4562 * INSTALL: Revise. 4563 4564 * Make-lang.in: Comment out rules for building f2c itself (f/f2c/). 4565 4566 * README: Revise. 4567 4568 * com.c (ffecom_init_0): Warn if ftnlen or INTEGER not big enough 4569 to hold a char *. 4570 4571 * gbe/2.6.2.diff: Update. 4572 4573Mon Jan 23 17:10:49 1995 Craig Burley (burley@gnu.ai.mit.edu) 4574 4575 * TODO: Remove. 4576 BUGS: New file. 4577 PROJECTS: New file. 4578 CREDITS: New file. 4579 4580 * cktyps*: Remove. 4581 Make-lang.in: Remove cktyps stuff. 4582 Makefile.in: Remove cktyps stuff. 4583 4584 * DOC: Add info on changes for 0.5.3. 4585 4586 * bad.c: Put "warning:" &c on diagnostic messages. 4587 Don't output informational messages if warnings disabled. 4588 4589Thu Jan 19 12:38:13 1995 Craig Burley (burley@gnu.ai.mit.edu) 4590 4591 * g77.c: Avoid putting out useless "-xnone -xf77" pairs so 4592 larger command lines can be accommodated. 4593 Recognize both `-xlang' and `-x lang'. 4594 Recognize `-xnone' and `-x none' to mean what it does, instead 4595 of treating "none" as any other language. 4596 Some minor, slight improvements in the way args are handled 4597 (hopefully for clearer, more maintainable code), including 4598 consistency checks on arg count just in case. 4599 4600Wed Jan 18 16:41:57 1995 Craig Burley (burley@gnu.ai.mit.edu) 4601 4602 * DOC: Explain -fautomatic better. 4603 4604 * INSTALL: Describe libf2c.a better. 4605 4606 * Make-lang.in, Makefile.in: Build f771 &c with gcc/ as cd instead 4607 of gcc/f/ so debugging info is better (source file tracking). 4608 Add new source file type.c. 4609 4610 * Makefile.in: For nextstep3, link f771 with -segaddr __DATA 4611 6000000. Fix typo. Change deps-kinda target to handle building 4612 from gcc/. Update dependencies. 4613 4614 * bld-op.def, bld.h, bld.c: Remove opBACKEND and all related 4615 stuff. 4616 Remove consistency tests that cause compiler warnings. 4617 4618 * cktyps.c: Remove all typing checking. 4619 4620 * com-rt.def: Change all rttypeFLOAT_ intrinsics to rttypeDOUBLE_, 4621 to precisely match how they're declared in libf2c. 4622 4623 * com.h, com.c: Revise to more elegantly track related stuff 4624 in the version of f2c.h used to build libf2c. 4625 4626 * com.c: Increase FFECOM_sizeMAXSTACKITEM, and if 0 or undefined 4627 when checked to determine where to put entity, treat as infinite. 4628 Rewrite temporary mechanism to be based on trees instead of 4629 ffeinfo stuff, and make it much simpler. Change interface 4630 accordingly. 4631 Fixes to better track types of things, make appropriate 4632 conversions, etc. E.g. when making an arg for a libf2c 4633 function, make sure it's of the right type (such as ftnlen). 4634 Delete opBACKEND transformation code. 4635 (ffecom_init_0): Smoother initialization of types, especially 4636 paying attention to using consistent rules for making INTEGER, 4637 REAL, DOUBLE PRECISION, etc., and for deciding their "*N" 4638 and kind values that will work across all g77 platforms. 4639 No longer require per-target configuration info in target.h 4640 or config/*/*; use new type module to store size, alignment. 4641 (ffecom_member_phase2): Declare COMMON/EQUIVALENCE group members 4642 so debugger sees them. 4643 (ffecom_finish_progunit): Transform all symbols in program unit, 4644 so -g will show they all exist. 4645 4646 * expr.c (ffeexpr_collapse_substr): Handle strange substring 4647 range values. 4648 4649 * info.h, info.c: Provide connection to new type module. 4650 Remove tests that yield compiler warnings. 4651 4652 * intrin.c (ffeintrin_is_intrinsic): Properly handle deleted 4653 intrinsic. 4654 4655 * lex.c (ffelex_file_fixed): Remove redundant/buggy code. 4656 4657 * stc.c (ffestc_kindtype_kind_, ffestc_kindtype_star_): Replace 4658 boring switch stmt with simple call to new type module. This 4659 sort of thing is a reason to get up in the morning. 4660 4661 * ste.c: Update to handle new interface for 4662 ffecom_push/pop_tempvar. 4663 Fixes to better track types of things. 4664 Fixes to not crash for certain diagnosed constructs. 4665 (ffeste_begin_iterdo_): Check only constants for overflow to avoid 4666 spurious diagnostics. 4667 Don't convert larger integer (say, INTEGER*8) to canonical integer 4668 for iteration count. 4669 4670 * stw.h: Track DO iteration count temporary variable. 4671 4672 * symbol.c: Remove consistency tests that cause compiler warnings. 4673 4674 * target.c (ffetarget_aggregate_info): Replace big switch with 4675 little call to new type module. 4676 (ffetarget_layout): Remove consistency tests that cause 4677 compiler warnings. 4678 (ffetarget_convert_character1_typeless): Pick up length of 4679 typeless type from new type module. 4680 4681 * target.h: Crash build if target float bit pattern cannot be 4682 precisely determined. 4683 Remove all the type cruft now determined by ffecom_init_0 4684 at invocation time and maintained in new type module. 4685 Put casts on second arg of all REAL_VALUE_TO_TARGET_DOUBLE 4686 uses so compiler warnings avoided (requires target float bit 4687 pattern to be precisely determined, hence code to crash build). 4688 4689 * top.c: Add inits/terminates for new type module. 4690 4691 * type.h, type.c: New module. 4692 4693 * gbe/2.6.2.diff: Remove all patches to files in gcc/config/ 4694 directory and its subdirectories. 4695 4696Mon Jan 9 19:23:25 1995 Dave Love <d.love@dl.ac.uk> 4697 4698 * com.h (FFECOM_F2C_INTEGER_TYPE_NODE): Define and use instead of 4699 long_integer_type_node where appropriate. 4700 4701Tue Jan 3 14:56:18 1995 Dave Love <d.love@dl.ac.uk> 4702 4703 * com.h: Make ffecom_f2c_logical_type_node long, consistent with 4704 integer. 4705 4706Fri Dec 2 20:07:37 1994 Dave Love <d.love@dl.ac.uk> 4707 4708 * config-lang.in (stagestuff): Add f2c conditionally. 4709 * Make-lang.in: Add f2c and related targets. 4710 * f2c: Add the directory. 4711 4712Fri Nov 25 22:17:26 1994 Dave Love <d.love@dl.ac.uk> 4713 4714 * Makefile.in (FLAGS_TO_PASS): pass $(CROSS) 4715 * Make-lang.in: more changes to runtime targets 4716 4717Thu Nov 24 18:03:21 1994 Dave Love <d.love@dl.ac.uk> 4718 4719 * Makefile.in (FLAGS_TO_PASS): define for sub-makes 4720 4721 * g77.c (main): change f77-cpp-output to f77-cpp-input (.F files) 4722 4723Wed Nov 23 15:22:53 1994 Dave Love <d.love@dl.ac.uk> 4724 4725 * bad.c (ffebad_finish): kluge to fool emacs19 into finding errors: 4726 add trailing space to <file>:<line>: 4727 4728Tue Nov 22 11:30:50 1994 Dave Love <d.love@dl.ac.uk> 4729 4730 * runtime/libF77/signal_.c (RETSIGTYPE): added 4731 4732Mon Nov 21 13:04:13 1994 Dave Love <d.love@dl.ac.uk> 4733 4734 * Makefile.in (compiler): add runtime 4735 4736 * config-lang.in (stagestuff): add libf2c.a to stagestuff 4737 4738 * Make-lang.in: 4739 G77STAGESTUFF <- MORESTAGESTUFF 4740 f77-runtime: new target, plus supporting ones 4741 4742 * runtime: add the directory, containing libI77, libF77 and autoconf 4743 stuff 4744 4745 * g++.1: remove 4746 4747 * g77.1: minor fixes 4748 4749Thu Nov 17 15:18:05 1994 Craig Burley (burley@gnu.ai.mit.edu) 4750 4751 * Version 0.5.2 released. 4752 4753 * bad.def: Modify wording of FFEBAD_UNIMPL_STMT to indicate 4754 that it covers a wide array of possible problems (that, someday, 4755 should be handled via separate diagnostics). 4756 4757 * lex.c: Allow $ in identifiers if -fdollar-ok. 4758 * top.c: Support -fdollar-ok. 4759 * top.h: Support -fdollar-ok. 4760 * target.h: Support -fdollar-ok. 4761 * DOC: Describe -fdollar-ok. 4762 4763 * std.c (ffestd_R1229_finish): Fix bug so stand-alone build works. 4764 * ste.c (ffeste_R819A): Fix bug so stand-alone build works. 4765 4766 * Make: Improvements for stand-alone build. 4767 4768 * Makefile.in: Fix copyright text at top of file. 4769 4770 * LINK, SRCS, UNLINK: Removed. Not particularly useful now that 4771 g77 sources live in their own subdirectory. 4772 4773 * g77.c (main): Cast arg to bzero to avoid warning. (This is 4774 identical to Kenner's fix to cp/g++.c.) 4775 4776 * gbe/: New subdirectory, to contain .diff files for various 4777 versions of the GNU CC back end. 4778 4779 * gbe/README: New file. 4780 * gbe/2.6.2.diff: New file. 4781 4782Tue Nov 8 10:23:10 1994 Dave Love <d.love@dl.ac.uk> 4783 4784 * Make-lang.in: don't install as f77 as well as g77 to avoid 4785 confusion with system's compiler (especially while testing) 4786 4787 * g77.c (main): use -lf2c and -lm; fix sense of test for .f/.F files 4788 4789Fri Oct 28 09:45:00 1994 Craig Burley (burley@gnu.ai.mit.edu) 4790 4791 * Version 0.5.1 released. 4792 4793 * gcc.c: Invoke f771 instead of f-771. 4794 4795Fri Oct 28 02:00:44 1994 Craig Burley (burley@gnu.ai.mit.edu) 4796 4797 * Version 0.5.0 released. 4798 4799Fri Oct 14 15:03:35 1994 Craig Burley (burley@gnu.ai.mit.edu) 4800 4801 * Makefile.in: Handle the Fortran-77 front-end in a subdirectory. 4802 * f-*: Move Fortran-77 front-end to f/*. 4803 4804Local Variables: 4805add-log-time-format: current-time-string 4806End: 4807