diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index d80094ddf3c..a58657142b5 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -478,4805 +478,8 @@ Wed Jul 1 11:19:13 1998 Craig Burley * target.c (ffetarget_align): Make sure alignments are non-zero, just in case. -Mon Jun 29 09:47:33 1998 Craig Burley +See ChangeLog.0 for earlier changes. - Fix 980628-*.f: - * bld.h: New `pad' field and accessor macros for - ACCTER, ARRTER, and CONTER ops. - * bld.c (ffebld_new_accter, ffebld_new_arrter, - ffebld_new_conter_with_orig): Initialize `pad' field - to zero. - * com.c (ffecom_transform_common_): Include initial - padding (aka modulo aka offset) in size calculation. - Copy initial padding value into FFE initialization expression - so the GBE transformation of that expression includes it. - Make array low bound 0 instead of 1, for consistency. - (ffecom_transform_equiv_): Include initial - padding (aka modulo aka offset) in size calculation. - Copy initial padding value into FFE initialization expression - so the GBE transformation of that expression includes it. - Make array low bound 0 instead of 1, for consistency. - (ffecom_expr_, case FFEBLD_opACCTER): Delete unused `size' - variable. - Track destination offset separately, allowing for - initial padding. - Don't bother setting initial PURPOSE offset if zero. - Include initial padding in size calculation. - (ffecom_expr_, case FFEBLD_opARRTER): Allow for - initial padding. - Include initial padding in size calculation. - Make array low bound 0 instead of 1, for consistency. - (ffecom_finish_global_): Make array low bound 0 instead - of 1, for consistency. - (ffecom_notify_init_storage): Copy `pad' field from old - ACCTER to new ARRTER. - (ffecom_notify_init_symbol): Ditto. - * data.c (ffedata_gather_): Initialize `pad' field in new - ARRTER to 0. - (ffedata_value_): Ditto. - * equiv.c (ffeequiv_layout_local_): When lowering start - of equiv area, extend lowering to maintain needed alignment. - * target.c (ffetarget_align): Handle negative offset correctly. - - * global.c (ffeglobal_pad_common): Warn about non-zero - padding only the first time its seen. - If new padding larger than old, update old. - (ffeglobal_save_common): Use correct type for size throughout. - * global.h: Use correct type for size throughout. - (ffeglobal_common_pad): New macro. - (ffeglobal_pad): Delete this unused and broken macro. - -Sat Jun 27 12:18:33 1998 Jeffrey A Law (law@cygnus.com) - - * Make-lang.in (g77): Depend on mkstemp.o. Link in mkstemp.o. - -Fri Jun 26 11:54:19 1998 Craig Burley - - * g77spec.c (lang_specific_driver): Put `-lg2c' in - front of any `-lm' that is seen. - -Wed Jun 24 01:01:23 1998 Jeffrey A Law (law@cygnus.com) - - * g77spec.c (lang_specific_driver): Revert last change. - -Mon Jun 22 23:12:05 1998 H.J. Lu (hjl@gnu.org) - - * Make-lang.in (G77STAGESTUFF): Add g77.c. - -Fri Jun 19 07:54:40 1998 H.J. Lu (hjl@gnu.org) - - * g77spec.c (lang_specific_driver): Check n_infiles before - appending args. - -Mon Jun 15 23:39:24 1998 Craig Burley - - * Make-lang.in (f/g77.info): Use -f when removing - pre-existing Info files, if any. (This rm command - can go away once makeinfo has been changed to delete - .info-N files beyond the last one it creates.) - - * Make-lang.in ($(srcdir)/f/intdoc.texi): Compile - using $(INCLUDES) macro to get the new hconfig.h - and system.h headers. - -Mon Jun 15 22:21:57 1998 Craig Burley - - Cutover to system.h: - * Make-lang.in: - * Makefile.in: - * ansify.c: - * bad.c: - * bld.c: - * com.c: - * com.h: - * expr.c: - * fini.c: - * g77spec.c: - * implic.c: - * intdoc.c: - * intrin.c: - * lex.c: - * lex.h: - * parse.c: - * proj.c: - * proj.h: - * src.c: - * src.h: - * stb.c: - * ste.c: - * target.c: - * top.c: - * system.j: New file. - - Use toplev.h where appropriate: - * Make-lang.in: - * Makefile.in: - * bad.c: - * bld.c: - * com.c: - * lex.c: - * ste.c: - * top.c: - * toplev.j: New file. - - Conditionalize all dumping/reporting routines so they don't - get built for gcc/egcs: - * bld.c: - * bld.h: - * com.c: - * equiv.c: - * equiv.h: - * sta.c: - * stt.c: - * stt.h: - * symbol.c: - * symbol.h: - - Use hconfig.h instead of config.h where appropriate: - * Makefile.in (proj-h.o): Compile with -DUSE_HCONFIG. - * fini.c: Define USE_HCONFIG before including proj.h. - - * Makefile.in (deps-kinda): Redirect stderr to stdout, - to eliminate diagnostics vis-a-vis g77spec.c. - - * Makefile.in: Regenerate dependencies via deps-kinda. - - * lex.c (ffelex_file_fixed, ffelex_file_free): Eliminate - apparently spurious warnings about uninitialized variables - `c', `column', and so on. - -Sat Jun 13 03:13:18 1998 Craig Burley - - * g77spec.c (lang_specific_driver): Print out egcs - version info first, to be compatible with what some - test facilities expect. - -Wed Jun 10 13:17:32 1998 Dave Brolley - - * top.h (ffe_decode_option): New argc/argv interface. - * top.c (ffe_decode_option): New argc/argv interface. - * parse.c (yyparse): New argc/argv interface for ffe_decode_option. - * com.c (lang_decode_option): New argc/argv interface. - -Sun Jun 7 14:04:34 1998 Richard Henderson - - * com.c (lang_init_options): New function. - * top.c (ffe_decode_option): Remove all trace of -fset-g77-defaults. - Set ffe_is_do_internal_checks_ with -version. - * lang-options.h: Likewise. - * lang-specs.h: Likewise. - -Fri Jun 5 15:53:17 1998 Per Bothner - - * g77spec.c (lang_specific_pre_link, lang_specific_extra_ofiles): - Define - update needed by gcc.c change. - -Mon Jun 1 19:37:42 1998 Craig Burley - - * com.c (ffecom_init_0): Fix setup of INTEGER(KIND=7) - pointer type. - * info.c (ffeinfo_type): Don't crash on null type. - * expr.c (ffeexpr_fulfill_call_): Don't special-case - %LOC(expr) or LOC(expr). - Delete FFEGLOBAL_argsummaryPTR. - * global.c, global.h: Delete FFEGLOBAL_argsummaryPTR. - -Thu May 28 21:32:18 1998 Craig Burley - - Restore circa-0.5.22 capabilities of `g77' driver: - * Make-lang.in (g77spec.o): Depend on f/version.h. - (g77version.o): New rule to compile g77 version info. - (g77$(exeext)): Depend on and link in g77version.o. - * g77spec.c: Rewrite to be more like 0.5.22 version - of g77.c, making filtering of command line smarter - so mixed Fortran and C (etc.) can be compiled, verbose - version info can be obtained, etc. - * lang-specs.h (f77-version): New "language" to support - "g77 -v" command under new gcc 2.8 regime. - * lex.c (ffelex_file_fixed): If -fnull-version, just - substitute a "source file" that prints out version info. - * top.c, top.h: Support -fnull-version. - - * lang-specs.h: Use "%O" instead of OO macro to specify - object extension. Remove old stringizing cruft. - - * Make-lang.in (g77.c, g77spec.o, g77.o, g77$(exeext), - g77-cross$(exeext), f771, - $(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi, - $(srcdir)/f/intdoc.texi, - f77.install-common, f77.install-info, f77.install-man, - f77.uninstall, $(G77STAGESTUFF), f77.stage1, f77.stage2, - f77.stage3, f77.stage4, f77.distdir): Don't do anything - unless user specified "f77" or "F77" in $LANGUAGES either - during configuration or explicitly. For convenience of - various tests and to work around lack of the assignment - "LANGUAGES=$(BOOT_LANGUAGES)" in the "make stage1" command - of "make bootstrap" in gcc, use a touch file named "lang-f77" - to communicate whether this is the case. - - * Make-lang.in (F77_FLAGS_TO_PASS): Delete this macro, - replace with minimal expansion of its former self in - each of the two instances where it was used. - - * Makefile.in (HOST_CC): Delete this definition. - - * com.c (index, rindex): Delete these declarations. - - * proj.h: (isascii): Delete this. - - * Make-lang.in (f77.install-common): Warn if `f77-install-ok' - flag-file exists, since it no longer triggers any activity. - - Rename libf2c.a and f2c.h to libg2c.a and g2c.h, - normalize and simplify g77/libg2c build process: - * Make-lang.in: Remove all support for overwriting - /usr/bin/f77 etc., or whatever the actual names are - via $(prefix) and $(local_prefix). (g++ overwrites - /usr/bin/c++, but then it's often the only C++ compiler - on the system; f77 often exists on systems that are - installing g77.) - (f77.realclean): Remove obsolete target. - (g77.c, g77$(exeext)): Minor changes to look more like g++'s - stuff. - (f771): Now built with srcdir=gcc/f, not srcdir=gcc, to be - more like g++ and such. - (f/Makefile): Removed, as g++ doesn't need this rule. - (f77.install-common): No longer install f77, etc. - (f77.install-man): No longer install f77.1. - (f77.uninstall): No longer uninstall f77, f77.1, etc. - (f77.stage1, f77.stage2, f77.stage3, f77.stage4): Do work - only if "f77" appears in $(LANGUAGES). - (Note: gcc's Makefile.in's bootstrap target should set - LANGUAGES=$(BOOT_LANGUAGES) when making the stage1 target.) - * Makefile.in: Update vis-a-vis gcc/cp/Makefile.in. - (none): Remove. - (g77-only): Relocate. - (all.indirect, f771, *.o): Now assumes current directory - is this dir (gcc/f), not the parent directory. - (TAGS): Remove "echo 'parse.y,0' >> TAGS ;" line. - * config-lang.in: Delete commented-out code. - Fix stagestuff definition. Add more stuff to - diff_excludes definition. Don't create any directories. - Set outputs to f/Makefile, to get variable substition - to happen (what does that really do, anyway?!). - * g77spec.c: Rename libf2c to libg2c. - - * com.h: Remove all of the gcc back-end decls, - since egcs should have all of them correct. - - * com.c: Include "proj.h" before anything else, - as that's how things are supposed to work. - * ste.c: Ditto. - - * bad.c: Include "flags.j" here, since some diagnostics - check flag_pedantic_errors. - - * Makefile.in (f/*.o): Rebuild dependencies via - deps-kinda. - - * output.j: New source file. - * Make-lang.in (F77_SRCS): Update accordingly. - * Makefile.in (OUTPUT_H): Ditto. - (deps-kinda): Ditto. - * com.c: Include "output.j" here. - * lex.c: Ditto. - -Mon May 25 03:34:42 1998 Craig Burley - - * com.c (ffecom_expr_): Fix D**I and Z**I cases to - not convert (DOUBLE PRECISION) D and (DOUBLE COMPLEX) Z - to INTEGER. (This is dead code here anyway.) - -Sat May 23 06:32:52 1998 Craig Burley - - * com.c (ffecom_finish_symbol_transform_): Don't transform - statement (nested) functions, to avoid gcc compiling them - and thus producing linker errors if they refer to undefined - external functions. But warn if they're unused and -Wunused. - * bad.def (FFEBAD_SFUNC_UNUSED): New diagnostic. - -Wed May 20 12:12:55 1998 Craig Burley - - * Version 0.5.23 released. - -Tue May 19 14:52:41 1998 Craig Burley - - * bad.def (FFEBAD_OPEN_UNSUPPORTED, FFEBAD_INQUIRE_UNSUPPORTED, - FFEBAD_READ_UNSUPPORTED, FFEBAD_WRITE_UNSUPPORTED, - FFEBAD_QUAD_UNSUPPORTED, FFEBAD_BLOCKDATA_STMT, - FFEBAD_TRUNCATING_CHARACTER, FFEBAD_TRUNCATING_HOLLERITH, - FFEBAD_TRUNCATING_NUMERIC, FFEBAD_TRUNCATING_TYPELESS, - FFEBAD_TYPELESS_OVERFLOW): Change these from warnings - to errors. - -Tue May 19 14:51:59 1998 Craig Burley - - * Make-lang.in (f77.install-info, f77.uninstall): - Use install-info as appropriate. - -Tue May 19 12:56:54 1998 Craig Burley - - * com.c (ffecom_init_0): Rename xargc to f__xargc, - in accord with same-dated change to f/runtime. - -Fri May 15 10:52:49 1998 Craig Burley - - * com.c (ffecom_convert_narrow_, ffecom_convert_widen_): - Be even more persnickety in checking for internal bugs. - Also, if precision isn't changing, just return the expr. - - * expr.c (ffeexpr_token_number_): Call - ffeexpr_make_float_const_ to make an integer. - (ffeexpr_make_float_const_): Handle making an integer. - - * intrin.c (ffeintrin_init_0): Distinguish between - crashes on bad arg base and kind types. - -Fri May 15 01:44:22 1998 Mumit Khan - - * Make-lang.in (f77.mostlyclean): Add missing exeext. - -Thu May 14 13:30:59 1998 Craig Burley - - * Make-lang.in (f/expr.c): Now depends on f/stamp-str. - * expr.c: Use ffestrOther in place of ffeexprDotdot_. - * str-ot.fin: Add more keywords for expr.c. - - * intdoc.c (dumpimp): Trivial fix. - - * com.c (ffecom_expr_): Add ltkt variable for clarity. - -Wed May 13 13:05:34 1998 Craig Burley - - * Make-lang.in (G77STAGESTUFF): Add g77.o, g77spec.o, - and g77version.o. - (f77.clean): Add removal of g77.c, g77.o, g77spec.o, - and g77version.o. - (f77.distclean): Delete removal of g77.c. - -Thu Apr 30 18:59:43 1998 Jim Wilson - - * Make-lang.in (g77.info, g77.dvi, BUGS, INSTALL, NEWS): Put -o - option before input file. - -Tue Apr 28 09:23:10 1998 Craig Burley - - Fix 980427-0.f: - * global.c (ffeglobal_ref_progunit_): When transitioning - from EXT to FUNC, discard hook, since the decl, if any, is - probably wrong. - -Sun Apr 26 09:05:50 1998 Craig Burley - - * com.c (ffecom_char_enhance_arg_): Wrap the upper bound - (the PARM_DECL specifying the length of the CHARACTER*(*) - dummy arg) in a variable_size invocation, to prevent - dwarf2out.c crashing when compiling code with -g. - -Sat Apr 18 15:26:57 1998 Jim Wilson - - * g77spec.c (lang_specific_driver): New argument in_added_libraries. - New local added_libraries. Increment count when add library to - arglist. - -Sat Apr 18 05:03:21 1998 Craig Burley - - * com.c (ffecom_check_size_overflow_): Ignore overflow - as well if dummy argument. - -Fri Apr 17 17:18:04 1998 Craig Burley - - * version.h: Get rid of the overly large headers - here too, as done in version.c. - -Tue Apr 14 15:51:37 1998 Dave Brolley - - * com.c (init_parse): Now returns char* containing filename; - -Tue Apr 14 14:40:40 1998 Craig Burley - - * com.c (ffecom_start_progunit_): Mark function decl - as used, to avoid spurious warning (-Wunused) for ENTRY. - -Tue Apr 14 14:19:34 1998 Craig Burley - - * sta.c (ffesta_second_): Check for CASE DEFAULT - as well as CASE, or it won't be recognized. - -Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) - - * com.c (finput): New variable. - (init_parse): Handle !USE_CPPLIB. - (finish_parse): New function. - (lang_init): No longer declare finput. - -Sat Apr 4 17:45:01 1998 Richard Henderson - - * com.c (ffecom_expr_): Revert Oct 22 change. Instead take a WIDENP - argument so that we can respect the signedness of the original type. - (ffecom_init_0): Do sizetype initialization first. - -1998-03-28 Dave Love - - * Make-lang.in (f771$(exeext)): Fix typo. - -1998-03-24 Martin von Loewis - - * com.c (lang_print_xnode): New function. - -Mon Mar 23 21:20:35 1998 Craig Burley - - * version.c: Reduce to a one-line file, like - gcc's version.c, since there's really no content - there. - -Mon Mar 23 11:58:43 1998 Craig Burley - - * bugs.texi: Various updates. - - * com.c (ffecom_tree_canonize_ptr_): Fix up spacing a bit. - -Sun Mar 22 00:50:42 1998 Nick Clifton - Geoff Noer - - * Makefile.in: Various fixes for building cygwin32 native toolchains. - * Make-lang.in: Likewise. - -Mon Mar 16 21:20:35 1998 Craig Burley - - * expr.c (ffeexpr_sym_impdoitem_): Don't blindly - reset symbol info after calling ffesymbol_error, - to avoid crash. - -Mon Mar 16 15:38:50 1998 Craig Burley - - * Version 0.5.22 released. - -Mon Mar 16 14:36:02 1998 Craig Burley - - Make -g work better for ENTRY: - * com.c (ffecom_start_progunit_): Master function - for ENTRY-laden procedure is not really invented, - so it can be debugged. - (ffecom_do_entry_): Push/set/pop lineno for each - entry point. - -Sun Mar 15 05:48:49 1998 Craig Burley - - * intrin.def: Fix spelling of mixed-case form - of `CPU_Time' (was `Cpu_Time'). - -Thu Mar 12 13:50:21 1998 Craig Burley - - * lang-options.h: Sort all -f*-intrinsics-* options, - for consistency with other g77 versions. - -Thu Mar 12 09:39:40 1998 Manfred Hollstein - - * lang-specs.h: Properly put brackets around array elements in initializer. - -1998-03-09 Dave Love - - * Make-lang.in: Set CONFIG_SITE to a non-existent file since - /dev/null loses with bash 2.0/autoconf 2.12. Put - F77_FLAGS_TO_PASS before CC. - -Sun Mar 8 16:35:34 1998 Craig Burley - - * intrin.def: Use tabs instead of blanks more - consistently (excepting DEFGEN section for now). - -Wed Mar 4 17:38:21 1998 Jeffrey A Law (law@cygnus.com) - - * Make-lang.in: Remove more references to libf77. - -Tue Mar 3 10:52:35 1998 Manfred Hollstein - - * g77.texi: Use @url for citing URLs. - -Sat Feb 28 15:24:38 1998 Craig Burley - - * intrin.def: Make CPU_TIME's arg generic real to be just - like SECOND_subr. - -Fri Feb 20 12:45:53 1998 Craig Burley - - * expr.c (ffeexpr_token_arguments_): Make sure - outer exprstack isn't null. - -1998-02-16 Dave Love - - * Makefile.in (f/fini): Don't use -W -Wall with HOST_CC. - -Fri Feb 13 00:14:56 1998 Kaveh R. Ghazi - - * com.c (type_for_mode): Add explicit braces to avoid ambiguous `else'. - - * expr.c (ffeexpr_type_combine): Likewise. - (ffeexpr_reduce_): Likewise. - (ffeexpr_declare_parenthesized_): Likewise. - - * src.c (ffesrc_strcmp_1ns2i): Likewise. - (ffesrc_strcmp_2c): Likewise. - (ffesrc_strncmp_2c): Likewise. - - * stb.c (ffestb_halt1_): Likewise. - (ffestb_R90910_): Likewise. - (ffestb_R9109_): Likewise. - - * stc.c (ffestc_R544_equiv_): Likewise. - - * std.c (ffestd_subr_copy_easy_): Likewise. - (ffestd_R1001dump_): Likewise. - (ffestd_R1001dump_1005_1_): Likewise. - (ffestd_R1001dump_1005_2_): Likewise. - (ffestd_R1001dump_1005_3_): Likewise. - (ffestd_R1001dump_1005_4_): Likewise. - (ffestd_R1001dump_1005_5_): Likewise. - (ffestd_R1001dump_1010_2_): Likewise. - - * ste.c (ffeste_R840): Likewise. - - * sts.c (ffests_puttext): Likewise. - - * symbol.c (ffesymbol_check_token_): Likewise. - - * target.c (ffetarget_real1): Likewise. - (ffetarget_real2): Likewise. - -Wed Feb 11 01:44:48 1998 Richard Henderson (rth@cygnus.com) - - * com.c (ffecom_ptr_to_expr) [FFEBLD_opARRAYREF]: Do upper - lower - in the native type, so as to properly handle negative indices. - -Tue Feb 3 20:13:05 1998 Richard Henderson - - * config-lang.in: Remove references to runtime/. - -Sun Feb 1 12:43:49 1998 J"orn Rennecke - - * com.c (ffecom_tree_canonize_ptr_): Place bitsizetype typed expr - as first agument in MULT_EXPR. - Use bitsize_int (0L, 0L) as zero for bitsizes. - (ffecom_tree_canonize_ref_): - Use bitsize_int (0L, 0L) as zero for bitsizes. - (ffecom_init_0): Use set_sizetype. - -Sun Feb 1 02:26:58 1998 Richard Henderson - - * runtime directory -- moved into "libf2c" in the toplevel - directory. - * Make-lang.in: Remove all runtime related stuff. - -Sun Jan 25 12:32:15 1998 Kaveh R. Ghazi - - * Make-lang.in (f77.stage1): Depend on stage1-start so parallel - make works better. - * (f77.stage2): Likewise for stage2-start. - * (f77.stage3): Likewise for stage3-start. - * (f77.stage4): Likewise for stage4-start. - -Sat Jan 17 21:28:08 1998 Pieter Nagel - - * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and - local_prefix to sub-make invocations. - -Tue Jan 13 22:07:54 1998 Jeffrey A Law (law@cygnus.com) - - * lang-options.h: Add missing options. - -Sun Jan 11 02:14:47 1998 Craig Burley - - Support FORMAT(I<1+2>) (constant variable-FORMAT - expressions): - * bad.def (FFEBAD_FORMAT_VARIABLE): New diagnostic. - * std.c (ffestd_R1001rtexpr_): New function. - (ffestd_R1001dump_, ffestd_R1001dump_1005_1_, - ffestd_R1001dump_1005_2_, ffestd_R1001dump_1005_3_, - ffestd_R1001dump_1005_4_, ffestd_R1001dump_1005_5_, - ffestd_R1001dump_1010_2_, ffestd_R1001dump_1010_3_, - ffestd_R1001dump_1010_4_, ffestd_R1001dump_1010_5_): - Use new function instead of ffestd_R1001error_. - - * stb.c (ffestb_R10014_, ffestb_R10016_, ffestb_R10018_, - ffestb_R100110_): Restructure `for' loop for style. - - Fix 970626-2.f by not doing most back-end processing - when current_function_decl is an ERROR_MARK, and by - making that the case when its type would be an ERROR_MARK: - * com.c (ffecom_start_progunit_, finish_function, - lang_printable_name, start_function, - ffecom_finish_symbol_transform_): Test for ERROR_MARK. - * std.c (ffestd_stmt_pass_): Don't do any downstream - processing if ERROR_MARK. - - * Make-lang.in (f77.install-common): Don't install, and - don't uninstall existing, Info files if f/g77.info - doesn't exit. (This is a somewhat modified version - of an egcs patch on 1998-01-07 12:05:51 by Bruno Haible - .) - -Fri Jan 9 19:09:07 1998 Craig Burley - - Fix -fpedantic combined with `F()' invocation, - also -fugly-comma combined with `IARGC()' invocation: - * bad.def (FFEBAD_NULL_ARGUMENT_W): New diagnostic. - * expr.c (ffeexpr_finished_): Don't reject null expressions - in the argument-expression context -- let outer context - handle that. - (ffeexpr_token_arguments_): Warn about null expressions - here if -fpedantic (as appropriate). - Obey -fugly-comma for only external-procedure invocations. - * intrin.c (ffeintrin_check_): No longer ignore explicit - omitted trailing args. - -Tue Dec 23 14:58:04 1997 Craig Burley - - * intrin.c (ffeintrin_fulfill_generic): Don't generate - FFEBAD_INTRINSIC_TYPE for CHARACTER*(*) intrinsic. - - * com.c (ffecom_gfrt_basictype): - (ffecom_gfrt_kindtype): - (ffecom_make_gfrt_): - (FFECOM_rttypeVOIDSTAR_): New return type `void *', for - the SIGNAL intrinsic. - * com-rt.def (FFECOM_rttypeSIGNAL): Now returns `void *'. - * intdoc.c: Replace `p' kind specifier with `7'. - * intrin.c (ffeintrin_check_, ffeintrin_init_0): Replace - `p' kind specifier with `7'. - * intrin.def (FFEINTRIN_impLOC, FFEINTRIN_impSIGNAL_func, - FFEINTRIN_impSIGNAL_subr): Replace `p' specifier with `7'. - Also, SIGNAL now returns a `void *' status, not `int'. - - Improve run-time diagnostic for "PRINT '(I1', 42": - * com.c (ffecom_char_args_x_): Renamed from ffecom_char_args_, - which is now a macro (to avoid lots of changes to other code) - with new arg, ffecom_char_args_with_null_ being another new - macro to call same function with different value for new arg. - This function now appends a null byte to opCONTER expression - if the new arg is TRUE. - (ffecom_arg_ptr_to_expr): Support NULL length pointer. - * ste.c (ffeste_io_cilist_): - (ffeste_io_icilist_): Pass NULL length ptr for - FORMAT expression, so null byte gets appended where - feasible. - * target.c (ffetarget_character1): - (ffetarget_concatenate_character1): - (ffetarget_substr_character1): - (ffetarget_convert_character1_character1): - (ffetarget_convert_character1_hollerith): - (ffetarget_convert_character1_integer4): - (ffetarget_convert_character1_logical4): - (ffetarget_convert_character1_typeless): - (ffetarget_hollerith): Append extra phantom null byte as - part of FFETARGET-NULL-BYTE kludge. - - * intrin.def (FFEINTRIN_impCPU_TIME): Point to - FFECOM_gfrtSECOND as primary run-time routine. - -Mon Dec 22 12:41:07 1997 Craig Burley - - * intrin.c (ffeintrin_init_0): Remove duplicate - check for `!'. - -Fri Dec 19 00:12:01 1997 Richard Henderson - - * com.c (ffecom_sym_transform_): Assumed arrays have no upper bound. - -Mon Dec 15 17:35:35 1997 Richard Henderson - - * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'. - -Sun Dec 14 02:49:58 1997 Craig Burley - - * intrin.c (ffeintrin_init_0): Fix up indentation a bit. - Fix bug that prevented checking of arguments other - than the first. - - * intdoc.c: Fix up indentation a bit. - -Tue Dec 9 16:20:57 1997 Richard Henderson - - * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'. - -Tue Dec 2 09:57:16 1997 Jeffrey A Law (law@cygnus.com) - - * Make-lang.in (f77.clean): Remove g77.c. - -Mon Dec 1 19:12:36 1997 Craig Burley - - * intrin.c (ffeintrin_check_): Fix up indentation a bit more. - -Mon Dec 1 16:21:08 1997 Craig Burley - - * com.c (ffecom_arglist_expr_): Crash if non-supplied - optional arg isn't passed as an address. - Pass null pointer explicitly, instead of via ffecom routine. - If incoming argstring is NULL, substitute pointer to "0". - Recognize '0' as ending the usual arg stuff, just like '\0'. - -Sun Nov 30 22:22:22 1997 Craig Burley - - * intdoc.c: Minor fix-ups. - - * intrin.c (ffeintrin_check_): Fix up indentation a bit. - - * intrin.def: Fix up spacing a bit. - -Tue Nov 25 15:33:28 1997 Jeffrey A Law (law@cygnus.com) - - * Make-lang.in (f77.all.build): Add $(exeext) to binary files. - (f77.all.cross, f77.start.encap): Simliarly. - -Fri Nov 21 09:35:20 1997 Fred Fish - - * Make-lang.in (stmp-f2c.h): Move inclusion of F77_FLAGS_TO_PASS - to before override of CC so that the override works. - -Thu Nov 20 00:58:14 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Make-lang.in (f77.install-info): Depend on f77.info. - -1997-11-17 Dave Love - - * com.c (ffecom_arglist_expr_): Pass null pointers for optional - args which aren't supplied. - -Sun Nov 16 21:45:43 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Make-lang.in (f77.install-info): Depend on f77.info. - -1997-11-14 Dave Love - - * intrin.def: Supply gfrt for CPU_TIME. Generalize arg types of - INT2, INT8, per doc. - -1997-11-06 Dave Love - - * intrin.def: Allow non-integer args for INT2 and INT8 (per - documentation). - -Sun Nov 2 19:49:51 1997 Richard Henderson - - * com.c (ffecom_expr_): Only use TREE_TYPE argument for simple - arithmetic; convert types as necessary; recurse with target tree type. - -Tue Oct 28 02:21:25 1997 Craig Burley - - * lang-options.h: Add -fgnu-intrinsics-* and - -fbadu77-intrinsics-* options. - -Sun Oct 26 02:36:21 1997 Craig Burley - - * com.c (lang_print_error_function): Fix to more - reliably notice when the diagnosed region changes. - -Sat Oct 25 23:43:36 1997 Craig Burley - - Fix 950327-0.f: - * sta.c, sta.h (ffesta_outpooldisp): New function. - * std.c (ffestd_stmt_pass_): Don't kill NULL pool. - (ffestd_R842): If pool already preserved, save NULL - for pool, because it should be killed only once. - - * malloc.c [MALLOC_DEBUG]: Put initializer for `name' - component in braces, to avoid compiler warning. - -Wed Oct 22 11:37:41 1997 Richard Henderson - - * com.c (ffecom_expr_): Take an new arg TREE_TYPE that if non-null - specifies the type in which to do the calculation. Change all callers. - [FFEBLD_opARRAYREF]: Force the index expr to use sizetype. - -Thu Oct 16 02:04:08 1997 Paul Koning - - * Make-lang.in (stmp-f2c.h): Don't configure the runtime - directory if LANGUAGES does not include f77. - -Mon Oct 13 12:12:41 1997 Richard Henderson - - * Make-lang.in (g77*): Copied from cp/Make-lang.in g++*. - * g77spec.c: New file, mostly copied from g++spec.c - * g77.c: Removed. - -Fri Oct 10 13:00:48 1997 Craig Burley - - * ste.c (ffeste_begin_iterdo_): Fix loop setup so iteration - variable is modified only after the #iterations is calculated; - otherwise if the iteration variable is aliased to any of the - operands in the start, end, or increment expressions, the - wrong #iterations might be calculated. - - * com.c (ffecom_save_tree): Fix indentation. - -Mon Oct 6 14:15:03 1997 Jeffrey A Law (law@cygnus.com) - - * Make-lang.in (f77.mostlyclean): Clean up stuff in the - object tree too. - (f77.clean, f77.distclean, f77.maintainer-clean): Likewise. - -1997-10-05 Dave Love - - * intrin.def: Make SECOND_subr's arg generic real for people - porting from Cray and making everything double precision. - -Wed Oct 1 01:45:36 1997 Philippe De Muyter - - * g77.c (pexecute, main): Use unlink, not remove. - -Mon Sep 29 16:18:21 1997 Craig Burley - - * stu.c (ffestu_list_exec_transition_, - ffestu_dummies_transition_): Specify `bool' type for - `in_progress' variables. - - * com.h (assemble_string): Declare this routine (instead - of #include'ing "output.h" from gcc) to eliminate warnings - from lex.c. - -Mon Sep 29 10:37:07 1997 Jeffrey A Law (law@cygnus.com) - - * intdoc.c (main): Remove unused attribute for main's arguments. - -Sun Sep 28 01:47:17 1997 Jeffrey A Law (law@cygnus.com) - - * Make-lang.in (G77_FLAGS_TO_PASS): Pass down RANLIB, RANLIB_TEST - and AR instead of the _FOR_TARGET versions. - -Tue Sep 23 00:39:57 1997 Alexandre Oliva - - * Make-lang.in: install.texi was renamed to g77install.texi - * install0.texi: Likewise. - -Fri Sep 19 01:12:27 1997 Craig Burley - - * expr.c (ffeexpr_reduced_eqop2_): - (ffeexpr_reduced_relop2_): Minor fixes to diagnostic code. - - * fini.c (main): Change return type to `int'. - -Thu Sep 18 17:31:38 1997 Jeffrey A Law (law@cygnus.com) - - * proj.h (FFEPROJ_BSEARCH): Delete all references. - (FFEPROJ_STRTOUL): Likewise. - * proj.c (bsearch): Compile this if no bsearch is provided by the - host system. - (strtoul): Similarly. - - * g77install.texi: Renamed from install.texi - * g77.texi: Corresponding changes. - - * fini.c (main): Return type is int. - - * com.c (lang_printable_name): Use verbosity argument. - -Thu Sep 18 16:08:40 1997 Jeffrey A Law (law@cygnus.com) - - * Make-lang.in: Fix merge problems. - -Wed Sep 17 10:47:08 1997 Craig Burley - - * com-rt.def (FFECOM_gfrtDSIGN, FFECOM_gfrtISIGN, - FFECOM_gfrtSIGN): Add second argument. - - * expr.c (ffeexpr_cb_comma_c_): Trivial fixes. - -Sun Sep 14 21:01:23 1997 Jeffrey A Law (law@cygnus.com) - - * Make-lang.in: Various changes to build info files - in the object tree rather than the source tree. - - * proj.h: Include ctype.h. - -Sun Sep 14 12:35:20 1997 Fred Fish (fnf@ninemoons.com) - - * proj.h (isascii): Provide a default definition if none is available. - -Thu Sep 11 19:26:10 1997 Dave Love - - * config-lang.in: Remove the messages about possible build problems. - -Wed Sep 10 16:39:47 1997 Jim Wilson - - * Make-lang.in (LN, LN_S): New macros, use where appropriate. - -Tue Sep 9 13:20:40 1997 Jim Wilson - - * g77.c (pexecute, doit): Add checks for __CYGWIN32__. - -Tue Sep 9 01:59:35 1997 Craig Burley - - * Version 0.5.21 released. - -Tue Sep 9 00:31:01 1997 Craig Burley - - * intdoc.c (dumpem): Put appropriate commentary in - output file, so readers know it isn't source. - -Wed Aug 27 20:32:03 1997 Jeffrey A Law (law@cygnus.com) - - * top.c (ffe_decode_option): Turn on flag_move_all_moveables - and flag_reduce_all_givs. - -Wed Aug 27 08:08:25 1997 Craig Burley - - * proj.h: Always #include "config.j" first, to pick up - gcc's configuration. - * com.c: Change bcopy() and bzero() calls to memcpy() - and memset() calls, to make more of g77 ANSI C. - -1997-08-26 Dave Love - - * Make-lang.in ($(srcdir)/f/runtime/configure, - $(srcdir)/f/runtime/libU77/configure): Fix for when srcdir isn't - relative. - -Tue Aug 26 05:59:21 1997 Craig Burley - - * ansify.c (main): Make sure readers of stdout know - it's derived from stdin; omit comment text; get source - line numbers in future stderr output to be correct. - -Tue Aug 26 01:36:01 1997 Craig Burley - - Fix 970825-0.f: - * stb.c (ffestb_R5284_): Allow OPEN_PAREN after closing - SLASH as well as NAME. - -Mon Aug 25 23:48:17 1997 Craig Burley - - Changes to allow g77 docs to be built entirely from scratch - using any ANSI C compiler, not requiring GNU C: - * Make-lang.in ($(srcdir)/f/intdoc.texi): "Pipe" new - location of intrinsic documentation data base, f/intdoc.in, - through new `ansify' program to append `\n\' to quoted - newlines, into f/intdoc.h0. Do appropriate cleanups. Explain. - (f77.mostlyclean): Add f/ansify and f/intdoc.h0 to cleanups. - * f/ansify.c: New program. - * f/intdoc.c: Fix so it conforms to ANSI C. - #include f/intdoc.h0 instead of f/intdoc.h. - Avoid some warnings. - * f/intdoc.h, f/intdoc.in: Rename the former to the latter; no - changes made to the content in this patch! - * f/intrin.h (ffeintrinFamily): Fix to conform to ANSI C. - -Mon Aug 25 23:24:32 1997 H.J. Lu (hjl@gnu.ai.mit.edu) - - * Make-lang.in ($(srcdir)/f/runtime/configure, - $(srcdir)/f/runtime/libU77/configure, f77.mostlyclean, - f77.clean, f77.distclean, f77.maintainer-clean, f77.realclean): - Handle absolute pathname of $(srcdir). - (stmp-f2c.h): New. - (include/f2c.h, f/runtime/Makefile, f/runtime/libF77/Makefile, - f/runtime/libI77/Makefile, f/runtime/libU77/Makefile): Only - depend on stmp-f2c.h. - (f77.maintainer-clean): Don't make itself. - -Sun Aug 24 17:00:27 1997 Jim Wilson - - * Make-lang.in (f77.install-info): Don't cd into srcdir. Add srcdir - to filenames. Use sed to extract base filename for install. - -Sun Aug 24 06:52:48 1997 Craig Burley - - Fix up g77 compiler data base for libf2c routines: - * com-rt.def (FFECOM_gfrtSIGNAL): Change return type to - FTNINT to match actual code. - - * com.c (ffecomRttype_): Replace FFECOM_rttypeINT_ with - FFECOM_rttypeFTNINT_. - Add and fix up comments. - (ffecom_make_gfrt_, ffecom_gfrt_basictype, - ffecom_gfrt_kindtype): Replace FFECOM_rttypeINT_ with - FFECOM_rttypeFTNINT_; add FFECOM_rttypeDOUBLEREAL_. - -Thu Aug 21 13:15:29 1997 Jim Wilson - - * Make-lang.in (f77): Delete f77-runtime. - (f77.all.build, f77.all.cross, f77.rest.encap): Add f77-runtime. - -Wed Aug 20 17:18:40 1997 Craig Burley - - * global.c (ffeglobal_ref_progunit_): It's okay to have - a different CHARACTER*n length for a reference if the - existing length is for another reference, not a definition. - -Wed Aug 20 16:36:59 1997 Jim Wilson - - * intdoc.texi: Readd generated file. - -Mon Aug 18 14:27:18 1997 Craig Burley - - Fix 970814-0.f: - * global.c (ffeglobal_new_progunit_): Distinguish - between previously defined, versus inferred, filewide - when it comes to diagnostics. - - Fix 970816-1.f: - * global.c (ffeglobal_ref_progunit_): Change BDATA into EXT - right at the beginning, so EXTERNAL FOO followed later - by SUBROUTINE FOO is not diagnosed. - - Fix 970813-0.f: - * com-rt.def (FFECOM_gfrtALARM): Returns `integer', not - `void'. - -Mon Aug 18 09:01:54 1997 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (F77_OBJS): Re-alphabetize. - * Make-lang.in (F77_SRCS): Likewise. - -Sun Aug 17 08:35:11 1997 Jeffrey A Law (law@cygnus.com) - - * INSTALL: Rebuilt. - * install.texi: Remove "Object File Differences" section. Remove - all references to zzz.o failing comparison tests. - * version.c, version.h: Renamed from zzz.c and zzz.h. Remove - date and time stamps so a 3 stage build reports no differences. - * Make-lang.in: Corresponding changes. - * Makefile.in: Likewise. - * g77.c, parse.c: Likewise. - - * intdoc.texi: Remove generated file from distribution. - -Sun Aug 17 03:32:44 1997 Craig Burley - - Fix up problems when virtual memory exhausted: - * malloc.c (malloc_new_): Use gcc's xmalloc(), so we - print a nicer message when malloc returns no memory. - (malloc_resize_): Ditto for xrealloc(). - - * Make-lang.in, Makefile.in: Comment out lines containing - just formfeeds. - -Sat Aug 16 19:41:33 1997 Craig Burley - - * com.c (ffecom_make_gfrt_): For rttypeREAL_F2C_, return - double_type_node; for rttypeREAL_GNU_, return - _real_type_node. - -1997-08-13 Dave Love - - * config-lang.in (diff_excludes): Add some hints about known - problematic platforms. - -1997-08-13 Dave Love - - * intdoc.h: Document `alarm'. - -Tue Aug 12 10:23:02 1997 Jeffrey A Law (law@cygnus.com) - - * config-lang.in: Don't demand the backend patch. - * com.c (lang_printable_name): Second argument is now an int. Don't - store into the value of the second argument. - * top.c (ffe_decode_option): Temporarily disable setting - of "Toon" loop options until we figure out how to address - them. - -Mon Aug 11 23:18:35 1997 Jeffrey A Law (law@cygnus.com) - - * g77-0.5.21-19970811 Imported. - This file describes changes to the front end necessary to make - it work with egcs. - -Mon Aug 11 21:19:22 1997 Craig Burley - - * Make-lang.in ($(RUNTIMESTAGESTUFF)): Add - f/runtime/stamp-lib. - -Mon Aug 11 01:52:03 1997 Craig Burley - - * com.c (ffecom_build_complex_constant_): Go with the - new build_complex() approach used in gcc-2.8. - - * com.c (ffecom_sym_transform_): Don't set - DECL_IN_SYSTEM_HEADER for a tree node that isn't - a VAR_DECL, which happens when var is in common! - - * com.c (ffecom_expr_intrinsic_) (case FFEINTRIN_impALARM): - No need to test codegen_imp -- there's only one valid here. - - * intrin.def (FFEINTRIN_impALARM): Specify `Status' argument - as write-only. - -Fri Aug 8 05:40:23 1997 Craig Burley - - Substantial changes to accommodate distinctions among - run-time routines that support intrinsics, and between - routines that compute and return the same type vs. those - that compute one type and return another (or `void'): - * com-rt.def: Specify new return type REAL_F2C_ instead - of many DOUBLE_, COMPLEX_F2C_ instead of COMPLEX_, and - so on. - Clear up the *BES* routines "once and for all". - * com.c: New return types. - (ffecom_convert_narrow_, ffecom_convert_widen_): - New functions that are "safe" variants of convert(), - to catch errors that ffecom_expr_intrinsic_() now - no longer catches. - (ffecom_arglist_expr_): Ensure arguments are not - converted to narrower types. - (ffecom_call_): Ensure return value is not converted - to a wider type. - (ffecom_char_args_): Use new ffeintrin_gfrt_direct() - routine. - (ffecom_expr_intrinsic_): Simplify how run-time - routine is selected (via `gfrt' only now; lose the - redundant `ix' variable). - Eliminate the `library' label; any code that doesn't - return directly just `break's out now with `gfrt' - set appropriately. - Set `gfrt' to default choice initially, either a - fast direct form or, if not available, a slower - indirect-callable form. - (ffecom_make_gfrt_): No longer need to do special - check for complex; it's built into the new return-type - regime. - (ffecom_ptr_to_expr): Use new ffeintrin_gfrt_indirect() - routine. - * intrin.c, intrin.h: `gfrt' field replaced with three fields, - so it is easier to provide faster direct-callable and - GNU-convention indirect-callable routines in the future. - DEFIMP macro adjusted accordingly, along with all its uses. - (ffeintrin_gfrt_direct): New function. - (ffeintrin_gfrt_indirect): Ditto. - (ffeintrin_is_actualarg): If `-fno-f2c' is in effect, - require a GNU-callable version of intrinsic instead of - an f2c-callable version, so indirect calling is still checked. - * intrin.def: Replace one GFRT field with the three new fields, - as appropriate for each DEFIMP intrinsic. - - * com.c (ffecom_stabilize_aggregate_, - ffecom_convert_to_complex_): Make these `static'. - -Thu Aug 7 11:24:34 1997 Craig Burley - - Provide means for front end to determine actual - "standard" return type for an intrinsic if it is - passed as an actual argument: - * com.h, com.c (ffecom_gfrt_basictype, - ffecom_gfrt_kindtype): New functions. - (ffecom_gfrt_kind_type_): Replaced with new function. - All callers updated. - (ffecom_make_gfrt_): No longer need do anything - with kind type. - - * intrin.c (ffeintrin_basictype, ffeintrin_kindtype): - Now returns correct type info for specific intrinsic - (based on type of run-time-library implementation). - -Wed Aug 6 23:08:46 1997 Craig Burley - - * global.c (ffeglobal_ref_progunit_): Don't reset - number of arguments just due to new type info, - so useful warnings can be issued. - -1997-08-06 Dave Love - - * intrin.def: Fix IDATE_vxt argument order. - * intdoc.h: Likewise. - -Thu Jul 31 22:22:03 1997 Craig Burley - - * global.c (ffeglobal_proc_ref_arg): If REF/DESCR - disagreement, DESCR is CHARACTER, and types disagree, - pretend the argsummary agrees so the message ends up - being about type disagreement. - (ffeglobal_proc_def_arg): Ditto. - - * expr.c (ffeexpr_token_first_rhs_3_): Set info for LABTOK - to NONE of everything, to avoid misdiagnosing filewide - usage of alternate returns. - -Sun Jul 20 23:07:47 1997 Craig Burley - - * com.c (ffecom_sym_transform_): If type gets set - to error_mark_node, just return that for transformed symbol. - (ffecom_member_phase2_): If type gets set to error_mark_node, - just return. - (ffecom_check_size_overflow_): Add `dummy' argument to - flag that type is for a dummy, update all callers. - -Sun Jul 13 17:40:53 1997 Craig Burley - - Fix 970712-1.f: - * where.c (ffewhere_set_from_track): If start point - is too large, just use initial start point. 0.6 should - fix all this properly. - - Fix 970712-2.f: - * com.c (ffecom_sym_transform_): Preserve error_mark_node for type. - (ffecom_type_localvar_): Ditto. - (ffecom_sym_transform_): If type is error_mark_node, - don't error-check decl size, because back end responds by - setting that to an integer 0 instead of error_mark_node. - (ffecom_transform_common_): Same as earlier fix to _transform_ - in that size is checked by dividing BITS_PER_UNIT instead of - multiplying. - (ffecom_transform_equiv_): Ditto. - - Fix 970712-3.f: - * stb.c (ffestb_R10014_): Fix flaky fall-through in error - test for FFELEX_typeCONCAT by just replicating the code, - and do FFELEX_typeCOLONCOLON while at it. - -1997-07-07 Dave Love - - * intdoc.h: Add various missing pieces; correct GMTIME, LTIME - result ordering. - - * intrin.def, com-rt.def: Add alarm. - - * com.c (ffecom_expr_intrinsic_): Add case for alarm. - -Thu Jun 26 04:19:40 1997 Craig Burley - - Fix 970302-3.f: - * com.c (ffecom_sym_transform_): For sanity-check compare - of gbe size of local variable to g77 expectation, - use varasm.c/assemble_variable technique of dividing - BITS_PER_UNIT out of gbe info instead of multiplying - g77 info up, to avoid crash when size in bytes is very - large, and overflows an `int' or similar when multiplied. - - Fix 970626-2.f: - * com.c (ffecom_finish_symbol_transform_): Don't bother - transforming a dummy argument, to avoid a crash. - * ste.c (ffeste_R1227): Don't return a value if the - result decl, or its type, is error_mark_node. - - Fix 970626-4.f: - * lex.c (ffelex_splice_tokens): `-fdollar-ok' is - irrelevant to whether a DOLLAR token should be made - from an initial character of `$'. - - Fix 970626-6.f: - * stb.c (ffestb_do3_): DO iteration variable is an - lhs, not rhs, expression. - - Fix 970626-7.f and 970626-8.f: - * expr.c (ffeexpr_cb_comma_i_1_): Set IMPDO expression - to have clean info, because undefined rank, for example, - caused crash on mangled source on UltraSPARC but not - on Alpha for a series of weird reasons. - (ffeexpr_cb_close_paren_): If not CLOSE_PAREN, push - opANY expression onto stack instead of attempting - to mimic what program might have wanted. - (ffeexpr_cb_close_paren_): Don't wrap opPAREN around - opIMPDO, just warn that it's gratuitous. - * bad.def (FFEBAD_IMPDO_PAREN): New warning. - - Fix 970626-9.f: - * expr.c (ffeexpr_declare_parenthesized_): Must shut down - parsing in kindANY case, otherwise the parsing engine might - decide there's an ambiguity. - (ffeexpr_token_name_rhs_): Eliminate parentypeSUBROUTINE_ - case, so we crash right away if it comes through. - * st.c, st.h, sta.c, sta.h (ffest_shutdown, ffesta_shutdown): - New functions. - -Tue Jun 24 19:47:29 1997 Craig Burley - - * com.c (ffecom_check_size_overflow_): New function - catches some cases of the size of a type getting - too large. varasm.c must catch the rest. - (ffecom_sym_transform_): Use new function. - (ffecom_type_localvar_): Ditto. - -Mon Jun 23 01:09:28 1997 Craig Burley - - * global.c (ffeglobal_proc_def_arg): Fix comparison - of argno to #args. - (ffeglobal_proc_ref_arg): Ditto. - - * lang-options.h, top.c: Rename `-fdebug' to `-fxyzzy', - since it's an unsupported internals option and some - poor user might guess that it does something. - - * bad.def: Make a warning for each filewide diagnostic. - Put all filewides together. - * com.c (ffecom_sym_transform_): Don't substitute - known global tree for global entities when `-fno-globals'. - * global.c (ffeglobal_new_progunit_): Don't produce - fatal diagnostics about globals when `-fno-globals'. - Instead, produce equivalent warning when `-Wglobals'. - (ffeglobal_proc_ref_arg): Ditto. - (ffeglobal_proc_ref_nargs): Ditto. - (ffeglobal_ref_progunit_): Ditto. - * lang-options.h, top.c, top.h: New `-fno-globals' option. - -Sat Jun 21 12:32:54 1997 Craig Burley - - * expr.c (ffeexpr_fulfill_call_): Set array variable - to avoid warning about uninitialized variable. - - * Make-lang.in: Get rid of any setting of HOST_* macros, - since these will break gcc's build! - * makefile: New file to make building derived files - easier. - -Thu Jun 19 18:19:28 1997 Craig Burley - - * g77.c (main): Install Emilio Lopes' patch to support - Ratfor, and to fix the printing of the version string - to go to stderr, not stdout. - * lang-specs.h: Install Emilio Lopes' patch to support - Ratfor, and patch the result to support picking up - `*f771' from the `specs' file. - -Thu Jun 12 14:36:25 1997 Craig Burley - - * storag.c (ffestorag_update_init, ffestorag_update_save): - Also update parent, in case equivalence processing - has already eliminated pointers to it via the - local equivalence info. - -Tue Jun 10 14:08:26 1997 Craig Burley - - * intdoc.c: Add cross-reference to end of description - of any generic intrinsic pointing to other intrinsics - with the same name. - - Warn about explicit type declaration for intrinsic - that disagrees with invocation: - * expr.c (ffeexpr_paren_rhs_let_): Preserve type info - for intrinsic functions. - (ffeexpr_token_funsubstr_): Ditto. - * intrin.c (ffeintrin_fulfill_generic): Warn if type - info of fulfilled intrinsic invocation disagrees with - explicit type info given symbol. - (ffeintrin_fulfill_specific): Ditto. - * stc.c (ffestc_R1208_item): Preserve type info - for intrinsics. - (ffestc_R501_item): Ditto. - -Mon Jun 9 17:45:44 1997 Craig Burley - - * com.c (ffecom_expr_intrinsic_): Fix several of the - libU77/libF77-unix handlers to properly convert their - arguments. - - * com-rt.def (FFECOM_gfrtFSTAT): Append missing "i" to - arg string. - -Fri Jun 6 14:37:30 1997 Craig Burley - - * com.c (ffecom_expr_intrinsic_): Have a case statement - for every intrinsic implementation, so missing ones - are caught via gcc warnings. - Don't call ffeintrin_codegen_imp anymore. - * intrin.c (ffeintrin_fulfill_generic): Remove cg_imp - stuff from here. - (ffeintrin_codegen_imp): Delete this function. - * intrin.def, intrin.h: Remove DEFIMQ stuff from here - as well. - -Thu Jun 5 13:03:07 1997 Craig Burley - - * top.c (ffe_decode_option): New -fbadu77-intrinsics-* - options. - * top.h: Ditto. - * intrin.h: New BADU77 family. - * intrin.c (ffeintrin_state_family): Ditto. - - Implement new scheme to track intrinsic names vs. forms: - * intrin.c (ffeintrin_fulfill_generic), - (ffeintrin_fulfill_specific), (ffeintrin_is_intrinsic), - intrin.def: The documented name is now either in the - generic info or, if no generic, in the specific info. - For a generic, the specific info contains merely the - distinguishing form (usually "function" or "subroutine"), - used for diagnostics about ambiguous references and - in the documentation. - - * intrin.def: Clean up formatting of DEFNAME block. - Convert many libU77 intrinsics into generics that - support both subroutine and function forms. - Put the function forms of side-effect routines into - the new BADU77 family. - Make MCLOCK and TIME return INTEGER*4 again, and add - INTEGER*8 equivalents called MCLOCK8 and TIME8. - Fix up more status return values to be written and - insist on them being I1 as well. - * com.c (ffecom_expr_intrinsic_): Lots of changes to - support new libU77 intrinsic interfaces. - -Mon Jun 2 00:37:53 1997 Craig Burley - - * com.c (ffecom_init_0): Pointer type is now INTEGER(KIND=7), - not INTEGER(KIND=0), since we want to reserve KIND=0 for - future use. - -Thu May 29 14:30:33 1997 Craig Burley - - Fix bugs preventing CTIME(I*4) from working correctly: - * com.c (ffecom_char_args_): For FUNCREF case, process - args to intrinsic just as they would be in - ffecom_expr_intrinsic_. - * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtTTYNAM): Fix - argument decls to specify `&'. - -Wed May 28 22:19:49 1997 Craig Burley - - Fix gratuitous warnings exposed by dophot aka 970528-1: - * global.c (ffeglobal_proc_def_arg, ffeglobal_proc_ref_arg): - Support distinct function/subroutine arguments instead of - just procedures. - * global.h: Ditto. - * expr.c (ffeexpr_fulfill_call_): A SYMTER with kindNONE - also is a procedure (either function or subroutine). - -Mon May 26 20:25:31 1997 Craig Burley - - * bad.def: Have several lexer diagnostics refer to - documentation for people who need more info on what Fortran - source code is supposed to look like. - - * expr.c (ffeexpr_reduced_bool1_), bad.def: New diagnostics - specific to .NOT. now mention only one operand instead - of two. - - * g77.c: Recognize -fsyntax-only, similar to -c etc. - (lookup_option): Fix bug that prevented non-`--' options - from being recognized. - -Sun May 25 04:29:04 1997 Craig Burley - - * intrin.def (FFEINTRIN_impCTIME): Accept `I*' expression - for STime instead of requiring `I2'. - -Tue May 20 16:14:40 1997 Craig Burley - - * symbol.c (ffesymbol_reference): All references to - standard intrinsics are considered explicit, so as - to avoid generating basically useless warnings. - * intrin.c, intrin.h (ffeintrin_is_standard): Returns TRUE - if intrinsic is standard. - -Sun May 18 21:14:59 1997 Craig Burley - - * com-rt.def: Changed all external names of the - form `"\([a-z0-9]*\)_' to `"G77_\1_0"' so as to - allow any name valid as an intrinsic to be used - as such and as a user-defined external procedure - name or common block as well. - -Thu May 8 13:07:10 1997 Craig Burley - - * expr.c (ffeexpr_cb_end_notloc_): For %VAL, %REF, and - %DESCR, copy arg info into new node. - -Mon May 5 14:42:17 1997 Craig Burley - - From Uwe F. Mayer : - * Make-lang.in (g77-cross): Fix typo in g77.c path. - - From Brian McIlwrath : - * lang-specs.h: Have g77 pick up options from a section - labeled `*f771' of the `specs' file. - -Sat May 3 02:46:08 1997 Craig Burley - - * intrin.def (FFEINTRIN_defSIGNAL): Add optional `Status' - argument that com.c already expects (per Dave Love). - - More changes to support better tracking of (filewide) - globals, in particular, the arguments to procedures: - * bad.def (FFEBAD_FILEWIDE_NARGS, FFEBAD_FILEWIDE_NARGS_W, - FFEBAD_FILEWIDE_ARG, FFEBAD_FILEWIDE_ARG_W): New diagnostics. - * expr.c (ffebad_fulfill_call_): Provide info on each - argument to ffeglobal. - * global.c, global.h (ffeglobal_proc_def_arg, - ffeglobal_proc_def_nargs, ffeglobal_proc_ref_arg, - ffeglobal_proc_ref_args): New functions. - (ffeglobalArgSummary, ffeglobalArgInfo_): New types. - -Tue Apr 29 18:35:41 1997 Craig Burley - - More changes to support better tracking of (filewide) - globals: - * expr.c (ffeexpr_fulfill_call_): New function. - (ffeexpr_token_name_lhs_): Call after building procedure - reference expression. Also leave info field for ANY-ized - expression alone. - (ffeexpr_token_arguments_): Ditto. - -Mon Apr 28 20:04:18 1997 Craig Burley - - Changes to support better tracking of (filewide) - globals, mainly to avoid crashes due to inlining: - * bad.def: Go back to quoting intrinsic names, - (FFEBAD_FILEWIDE_DISAGREEMENT, FFEBAD_FILEWIDE_TIFF, - FFEBAD_FILEWIDE_TYPE_MISMATCH): New diagnostics. - (FFEBAD_INTRINSIC_EXPIMP, FFEBAD_INTRINSIC_GLOBAL): Reword - for clarity. - * com.c (ffecom_do_entry_, ffecom_start_progunit_, - ffecom_sym_transform_): Accommodate new FFEGLOBAL_typeEXT - possibility. - * expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_extfunc_, - ffeexpr_sym_rhs_actualarg_, ffeexpr_declare_parenthesized_, - ffeexpr_paren_rhs_let_, ffeexpr_token_funsubstr_): - Fill in real kind info instead of leaving NONE where - appropriate. - Register references to intrinsics and globals with ffesymbol - using new ffesymbol_reference function instead of - ffesymbol_globalize. - * global.c (ffeglobal_type_string_): New array for - new diagnostics. - * global.h, global.c: - Replace ->init mechanism with ->tick mechanism. - Move other common-related members into a substructure of - a union, so the proc substructure can be introduced - to include members related to externals other than commons. - Don't complain about ANY-ized globals; ANY-ize globals - once they're complained about, in any case where code - generation could become a problem. - Handle global entries that have NONE type (seen as - intrinsics), EXT type (seen as EXTERNAL), and so on. - Keep track of kind and type of externals, both via - definition and via reference. - Diagnose disagreements about kind or type of externals - (such as functions). - (ffeglobal_ref_intrinsic, ffeglobal_ref_progunit_): New - functions. - * stc.c (ffestc_R1207_item, ffestc_R1208_item, - ffestc_R1219, ffestc_R1226): - Call ffesymbol_reference, not ffesymbol_globalize. - * stu.c (ffestu_sym_end_transition, - ffestu_sym_exec_transition): - Call ffesymbol_reference, not ffesymbol_globalize. - * symbol.c (ffesymbol_globalize): Removed... - (ffesymbol_reference): ...to this new function, - which more generally registers references to symbols, - globalizes globals, and calls on the ffeglobal module - to check globals filewide. - - * global.h, global.c: Rename some macros and functions - to more clearly distinguish common from other globals. - All callers changed. - - * com.c (ffecom_sym_transform_): Trees describing - filewide globals must be allocated on permanent obstack. - - * expr.c (ffeexpr_token_name_lhs_): Don't generate - gratuitous diagnostics for FFEINFO_whereANY case. - -Thu Apr 17 03:27:18 1997 Craig Burley - - * global.c: Add support for flagging intrinsic/global - confusion via warnings. - * bad.def (FFEBAD_INTRINSIC_EXPIMP, - FFEBAD_INTRINSIC_GLOBAL): New diagnostics. - * expr.c (ffeexpr_token_funsubstr_): Ditto. - (ffeexpr_sym_lhs_call_): Ditto. - (ffeexpr_paren_rhs_let_): Ditto. - * stc.c (ffestc_R1208_item): Ditto. - -Wed Apr 16 22:40:56 1997 Craig Burley - - * expr.c (ffeexpr_declare_parenthesized_): INCLUDE - context can't be an intrinsic invocation either. - -Fri Mar 28 10:43:28 1997 Craig Burley - - * expr.c (ffeexpr_token_arguments_): Make sure top of - exprstack is operand before dereferencing operand field. - - * lex.c (ffelex_prepare_eos_): Fill up truncated - hollerith token, so crash on null ->text field doesn't - happen later. - - * stb.c (ffestb_R10014_): If NAMES isn't recognized (or - the recognized part is followed in the token by a - non-digit), don't try and collect digits, as there - might be more than FFEWHERE_indexMAX letters to skip - past to do so -- and the code is diagnosed anyway. - -Thu Mar 27 00:02:48 1997 Craig Burley - - * com.c (ffecom_sym_transform_): Force local - adjustable array onto stack. - - * stc.c (ffestc_R547_item_object): Don't actually put - the symbol in COMMON if the symbol has already been - EQUIVALENCE'd to a different COMMON area. - - * equiv.c (ffeequiv_add): Don't actually do anything - if there's a disagreement over which COMMON area is - involved. - -Tue Mar 25 03:35:19 1997 Craig Burley - - * com.c (ffecom_transform_common_): If no explicit init - of COMMON area, don't actually init it even though - storage area suggests it. - -Mon Mar 24 12:10:08 1997 Craig Burley - - * lex.c (ffelex_image_char_): Avoid overflowing the - column counter itself, as well as the card image. - - * where.c (ffewhere_line_new): Cast ffelex_line_length() - to (size_t) so 255 doesn't overflow to 0! - - * stc.c (ffestc_labeldef_notloop_begin_): Don't gratuitously - terminate loop before processing statement, so block - doesn't disappear out from under EXIT/CYCLE processing. - (ffestc_labeldef_notloop_): Has old code from above - function, instead of just calling it. - - * expr.c (ffeexpr_cb_comma_i_4_): Don't skip over - arbitrary token (such as EOS). - - * com.c (ffecom_init_zero_): Handle RECORD_TYPE and - UNION_TYPE so -fno-zeros works with -femulated-complex. - -1997-03-12 Dave Love - - * intrin.def: New intrinsics INT2, INT8, CPU_TIME. Fix AND, OR, - XOR. [Integrated by burley, AND/OR/XOR already fixed, INT8 - implementation changed/fixed.] - -Wed Mar 12 10:40:08 1997 Craig Burley - - * Make-lang.in ($(srcdir)/f/intdoc.texi): Simplify rules - so building f/intdoc is not always necessary; remove - f/intdoc after running it if it is built. - -Tue Mar 11 23:42:00 1997 Craig Burley - - * intrin.def (FFEINTRIN_impAND, FFEINTRIN_impOR, - FFEINTRIN_impXOR): Use the IAND, IOR, and IEOR implementations - of these, instead of crashing in ffecom_expr_intrinsic_ - or adding case labels there. - -Mon Mar 10 22:51:23 1997 Craig Burley - - * intdoc.c: Fix so any C compiler can compile this. - -Fri Feb 28 13:16:50 1997 Craig Burley - - * Version 0.5.20 released. - -Fri Feb 28 01:45:25 1997 Craig Burley - - * Make-lang.in (RUNTIMESTAGESTUFF, LIBU77STAGESTUFF): - Move some files incorrectly in the former to the latter, - and add another file or two to the latter. - - New meanings for (KIND=n), and new denotations in the - little language describing intrinsics: - * com.c (ffecom_init_0): Assign new meanings. - * intdoc.c: Document new meanings. - Support the new denotations. - * intrin.c: Employ new meanings, mapping them to internal - values (which are the same as they ever were for now). - Support the new denotations. - * intrin.def: Switch DEFIMP table to the new denotations. - - * intrin.c (ffeintrin_check_): Fix bug that was leaving - LOC() and %LOC() returning INTEGER*4 on systems where - it should return INTEGER*8. - - * type.c: Canonicalize function definitions, for etags - and such. - -Wed Feb 26 20:43:03 1997 Craig Burley - - * com.c (ffecom_init_0): Choose INTEGER(KIND=n) types, - where n is 2, 3, and 4, according to the new docs - instead of according to the old C correspondences - (which seem less useful at this point). - - * equiv.c (ffeequiv_destroy_): New function. - (ffeequiv_layout_local_): Use this new function - whenever the laying out of a local equivalence chain - is aborted for any reason. - Otherwise ensure that symbols no longer reference - the stale ffeequiv entries that result when they - are killed off in this procedure. - Also, the rooted symbol is one that has storage, - it really is irrelevant whether it has an equiv entry - at this point (though the code to remove the equiv - entry was put in at the end, just in case). - (ffeequiv_kill): When doing internal checks, make - sure the victim isn't named by any symbols it points - to. Not as complete a check as looking through the - entire symbol table (which does matter, since some - code in equiv.c used to remove symbols from the lists - for an ffeequiv victim but not remove that victim as the - symbol's equiv info), but this check did find some - real bugs in the code (that were fixed). - -Mon Feb 24 16:42:13 1997 Craig Burley - - * com.c (ffecom_expr_intrinsic_): Fix a couple of - warnings about uninitialized variables. - * intrin.c (ffeintrin_check_): Ditto, but there were - a couple of _real_ uninitialized-variable _bugs_ here! - (ffeintrin_fulfill_specific): Ditto, no real bug here. - -Sun Feb 23 15:01:20 1997 Craig Burley - - Clean up diagnostics (especially about intrinsics): - * bad.def (FFEBAD_UNIMPL_STMT): Remove. - (FFEBAD_INTRINSIC_*, FFEBAD_NEED_INTRINSIC): Clean these - up so they're friendlier. - (FFEBAD_INTRINSIC_CMPAMBIG): New. - * intrin.c (ffeintrin_fulfill_generic, - ffeintrin_fulfill_specific, ffeintrin_is_intrinsic): - Always choose - generic or specific name text (which is for doc purposes - anyway) over implementation name text (which is for - internal use). - * intrin.def: Use more descriptive name texts for generics - and specifics in cases where the names themselves are not - enough (e.g. IDATE, which has two forms). - - Fix some intrinsic mappings: - * intrin.def (FFEINTRIN_specIDINT, FFEINTRIN_specAND, - FFEINTRIN_specDFLOAT, FFEINTRIN_specDREAL, FFEINTRIN_specOR, - FFEINTRIN_specXOR): Now have their own implementations, - instead of borrowing from others. - (FFEINTRIN_specAJMAX0, FFEINTRIN_specAJMIN0, FFEINTRIN_specBJTEST, - FFEINTRIN_specDFLOTJ, FFEINTRIN_specFLOATJ, FFEINTRIN_specJIABS, - FFEINTRIN_specJIAND, FFEINTRIN_specJIBCLR, FFEINTRIN_specJIBITS, - FFEINTRIN_specJIBSET, FFEINTRIN_specJIDIM, FFEINTRIN_specJIDINT, - FFEINTRIN_specJIDNNT, FFEINTRIN_specJIEOR, FFEINTRIN_specJIFIX, - FFEINTRIN_specJINT, FFEINTRIN_specJIOR, FFEINTRIN_specJISHFT, - FFEINTRIN_specJISHFTC, FFEINTRIN_specJISIN, FFEINTRIN_specJMAX0, - FFEINTRIN_specJMAX1, FFEINTRIN_specJMIN0, FFEINTRIN_specJMIN1, - FFEINTRIN_specJMOD, FFEINTRIN_specJNINT, FFEINTRIN_specJNOT,): - Turn these implementations off, since it's not clear - just what types they expect in the context of portable Fortran. - (DFLOAT): Now in FVZ family, since f2c supports them - - Support intrinsic inquiry functions (BIT_SIZE, LEN): - * intrin.c: Allow `i' in . - * intrin.def (FFEINTRIN_impBIT_SIZE, FFEINTRIN_impLEN): - Mark args with `i'. - -Sat Feb 22 13:34:09 1997 Craig Burley - - Only warn, don't error, for reference to unimplemented - intrinsic: - * bad.def (FFEBAD_INTRINSIC_UNIMPLW): Warning version - of _UNIMPL. - * intrin.c (ffeintrin_is_intrinsic): Use new warning - version of _UNIMPL (FFEBAD_INTRINSIC_UNIMPLW). - - Complain about REAL(Z) and AIMAG(Z) (Z is DOUBLE COMPLEX): - * bad.def (FFEBAD_INTRINSIC_CMPAMBIG): New diagnostic. - * expr.c: Needed #include "intrin.h" anyway. - (ffeexpr_token_intrincheck_): New function handles delayed - diagnostic for "REAL(REAL(expr)" if next token isn't ")". - (ffeexpr_token_arguments_): Do most of the actual checking here. - * intrin.h, intrin.c (ffeintrin_fulfill_specific): New - argument, check_intrin, to tell caller that intrin is REAL(Z) - or AIMAG(Z). All callers updated, mostly to pass NULL in - for this. - (ffeintrin_check_): Also has new arg check_intrin for same - purpose. All callers updated the same way. - * intrin.def (FFEINTRIN_impAIMAG): Change return type - from "R0" to "RC", to accommodate f2c (and perhaps other - non-F90 F77 compilers). - * top.h, top.c: New option -fugly-complex. - - New GNU intrinsics REALPART, IMAGPART, and COMPLEX: - * com.c (ffecom_expr_intrinsic_): Implement impCOMPLEX - and impREALPART here. (specIMAGPART => specAIMAG.) - * intrin.def: Add the intrinsics here. - - Rename implementations of VXTIDATE and VXTTIME to IDATEVXT - and TIMEVXT, so they sort more consistently: - * com.c (ffecom_expr_intrinsic_): - * intrin.def: - - Delete intrinsic group `dcp', add `gnu', etc.: - * intrin.c (ffeintrin_state_family): FFEINTRIN_familyGNU - replaces FFEINTRIN_familyDCP, and gets state from `gnu' - group. - Get rid of FFEINTRIN_familyF2Z, nobody needs it. - Move FFEINTRIN_specDCMPLX from DCP family to FVZ family, - as f2c has it. - Move FFEINTRIN_specDFLOAT from F2C family to FVZ family. - (FFEINTRIN_specZABS, FFEINTRIN_specZCOS, FFEINTRIN_specZEXP, - FFEINTRIN_specZLOG, FFEINTRIN_specZSIN, FFEINTRIN_specZSQRT): - Move these from F2Z family to F2C family. - * intrin.h (FFEINTRIN_familyF2Z, FFEINTRIN_familyDCP): Remove. - (FFEINTRIN_familyGNU): Add. - * top.h, top.c: Replace `dcp' with `gnu'. - - * com.c (ffecom_expr_intrinsic_): Clean up by collecting - simple conversions into one nice, conceptual place. - Fix up some intrinsic subroutines (MVBITS, KILL, UMASK) to - properly push and pop call temps, to avoid wasting temp - registers. - - * g77.c (doit): Toon says variables should be defined - before being referenced. Spoilsport. - - * intrin.c (ffeintrin_check_): Now Dave's worried about - warnings about uninitialized variables. Okay, so for - basic return values 'g' and 's', they _were_ - uninitialized -- is determinism really _that_ useful? - - * intrin.def (FFEINTRIN_impFGETC): Fix STATUS argument - so that it is INTENT(OUT) instead of INTENT(IN). - -1997-02-21 Dave Love - - * intrin.def, com.c: Support Sun-type `short' and `long' - intrinsics. Perhaps should also do Microcruft-style `int2'. - -Thu Feb 20 15:16:53 1997 Craig Burley - - * com.c (ffecom_expr_intrinsic_): Clean up indentation. - Support SECONDSUBR intrinsic implementation. - Rename SECOND to SECONDFUNC for direct support via library. - - * g77.c: Fix to return proper status value to shell, - by obtaining it from processes it spawns. - - * intdoc.c: Fix minor typo. - - * intrin.def: Turn SECOND into generic that maps into - function and subroutine forms. - - * intrin.def: Make FLOAT and SNGL into specific intrinsics. - - * intrin.def, intrin.h: Change the way DEFGEN and DEFSPEC - macros work, to save on verbage. - -Mon Feb 17 02:08:04 1997 Craig Burley - - New subsystem to automatically generate documentation - on intrinsics: - * Make-lang.in ($(srcdir)/f/g77.info, - $(srcdir)/f/g77.dvi): Move g77 doc rules around. - Add to g77 doc rules the new subsystem. - (f77.mostlyclean, f77.maintainer-clean): Also clean up - after new doc subsystem. - * intdoc.c, intdoc.h: New doc subsystem code. - * intrin.h [FFEINTRIN_DOC]: When 1, don't pull in - stuff not needed by doc subsystem. - - Improve on intrinsics mechanism to both be more - self-documenting and to catch more user errors: - * intrin.c (ffeintrin_check_): Recognize new arg-len - and arg-rank information, and check it. - Move goto and signal indicators to the basic type. - Permit reference to arbitrary argument number, not - just first argument (for BESJN and BESYN). - (ffeintrin_init_0): Check and accept new notations. - * intrin.c, intrin.def: Value in COL now identifies - arguments starting with number 0 being the first. - - Some minor intrinsics cleanups (resulting from doc work): - * com.c (ffecom_expr_intrinsic_): Implement FLUSH - directly once again, handle its optional argument, - so it need not be a generic (awkward to handle in docs). - * intrin.def (BESJ0, BESJ1, BESJN, BESY0, BESY1, BESYN, - CHDIR, CHMOD, CTIME, DBESJ0, DBESJ1, DBESJN, DBESY0, - DBESY1, DBESYN, DDIM, ETIME, FGETC, FNUM, FPUTC, FSTAT, - GERROR, GETCWD, GETGID, GETLOG, GETPID, GETUID, GMTIME, - HOSTNM, IDATE, IERRNO, IIDINT, IRAND, ISATTY, ITIME, JIDINT, - LNBLNK, LSTAT, LTIME, MCLOCK, PERROR, SRAND, SYMLNK, TTYNAM, - UMASK): Change capitalization of initcaps (official) name - to be consistent with Burley's somewhat arbitrary rules. - (BESJN, BESYN): These have return arguments of same type - as their _second_ argument. - (FLUSH): Now a specific, not generic, intrinsic, with one - optional argument. - (FLUSH1): Eliminated. - Add arg-len and arg-rank info to several intrinsics. - (ITIME): Change argument type from REAL to INTEGER. - -Tue Feb 11 14:04:42 1997 Craig Burley - - * Make-lang.in (f771): Invocation of Makefile now done - with $(srcdir)=gcc to go along with $(VPATH)=gcc. - ($(srcdir)/f/runtime/configure, - $(srcdir)/f/runtime/libU77/configure): Break these out - so spurious triggers of this rule don't happen (as when - configure.in is more recent than libU77/configure). - (f77.rebuilt): Distinguish source versus build files, - so this target can be invoked from build directory and - still work. - * Makefile.in: This now expects $(srcdir) to be the gcc - source directory, not gcc/f, to agree with $(VPATH). - Accordingly, $(INCLUDES) has been fixed, various cruft - removed, the removal of f771 has been fixed to remove - the _real_ f771 (not the one in gcc's parent directory), - and so on. - - * lex.c: Part of ffelex_finish_statement_() now done - by new function ffelex_prepare_eos_(), so that, in one - popular case, the EOS can be prepared while the pointer - is at the end of the non-continued line instead of the - end of the line that marks no continuation. This improves - the appearance of diagnostics substantially. - -Mon Feb 10 12:44:06 1997 Craig Burley - - * Make-lang.in: runtime Makefile's, and include/f2c.h, - also depend on f/runtime/configure and f/runtime/libU77/configure. - - Fix various libU77 routines: - * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtMCLOCK, - FFECOM_gfrtTIME): These now use INTEGER*8 for time values, - for compatibility with systems like Alpha. - (FFECOM_gfrtSYSTEM_CLOCK, FFECOM_gfrtTTYNAM): Delete incorrect - trailing underscore in routine names. - * intrin.c, intrin.def: Support INTEGER*8 return values and - arguments ('4'). Change FFEINTRIN_impCTIME, FFEINTRIN_impMCLOCK, - and FFEINTRIN_impTIME accordingly. - (ffeintrin_is_intrinsic): Don't give caller a clue about - form of intrinsic -- shouldn't be needed at this point. - - Cope with generic intrinsics that are subroutines and functions: - * com.c (ffecom_finish_symbol_transform_, ffecom_expr_transform_): - Don't transform an intrinsic that is not known to be a subroutine - or a function. (Maybe someday have to avoid transforming - any intrinsic with an undecided or unknown implementation.) - * expr.c (ffeexpr_declare_unadorned_, - ffeexpr_declare_parenthesized_): Ok to invoke generic - intrinsic that has at least one subroutine form as a - subroutine. - Ok to pass intrinsic as actual arg if it has a known specific - intrinsic form that is valid as actual arg. - (ffeexpr_declare_parenthesized_): An unknown kind of - intrinsic has a paren_type chosen based on context. - (ffeexpr_token_arguments_): Build funcref/subrref based - on context, not on kind of procedure being called. - * intrin.h, intrin.c (ffeintrin_is_intrinsic): Undo changes of - Tue Feb 4 23:12:04 1997 by me, change all callers to leave - intrinsics as FFEINFO_kindNONE at this point. (Some callers - also had unused variables deleted as a result.) - - Enable all intrinsic groups (especially f90 and vxt): - * target.h (FFETARGET_defaultSTATE_DCP, FFETARGET_defaultSTATE_F2C, - FFETARGET_defaultSTATE_F90, FFETARGET_defaultSTATE_MIL, - FFETARGET_defaultSTATE_UNIX, FFETARGET_defaultSTATE_VXT): - Delete these macros, let top.c set them directly. - * top.c (ffeintrinsic_state_dcp_, ffe_intrinsic_state_f2c_, - ffe_intrinsic_state_f90_, ffe_intrinsic_state_mil_, - ffe_intrinsic_state_unix_, ffe_intrinsic_state_vxt_): - Enable all these directly. - -Sat Feb 8 03:21:50 1997 Craig Burley - - * g77.c: Incorporate recent changes to ../gcc.c. - For version magic (e.g. `g77 -v'), instead of compiling - /dev/null, write, compile, run, and then delete a small - program that prints the version numbers of the three - components of libf2c (libF77, libI77, and libU77), - so we get this info with bug reports. - Also, this change reduces the chances of accidentally - linking to an old (complex-alias-problem) libf2c. - Fix `-L' so the argument is expected in `-Larg'. - - * com.h (FFECOM_f2cLONGINT): For INTEGER*8 support in f2c.h, - dynamically determine proper type here, instead of - assuming `long long int' is correct. - -Tue Feb 4 23:12:04 1997 Craig Burley - - Add libU77 library from Dave Love : - * Make-lang.in (f77-runtime): Depend on new Makefile. - (f/runtime/libU77/Makefile): New rule. - Also configure libU77. - ($(srcdir)/f/runtime/configure: Use Makefile.in, - so configuration doesn't have to have happened. - (f77.mostlyclean, f77.clean, f77.distclean, - f77.maintainer-clean): Some fixups here, but more work - needed. - (RUNTIMESTAGESTUFF): Add libU77's config.status. - (LIBU77STAGESTUFF, f77.stage1, f77.stage2, f77.stage3, - f77.stage4): New macro, appropriate uses added. - * com-rt.def: Add libU77 procedures. - * com.c (ffecom_f2c_ptr_to_integer_type_node, - ffecom_f2c_ptr_to_real_type_node): New type nodes. - (FFECOM_rttypeCHARACTER_): New type of run-time function. - (ffecom_char_args_): Handle CHARACTER*n intrinsics - where n != 1 here, instead of in ffecom_expr_intrinsic_. - (ffecom_expr_intrinsic_): New code to handle new - intrinsics. - In particular, change how FFEINTRIN_impFLUSH is handled. - (ffecom_make_gfrt_): Handle new type of run-time function. - (ffecom_init_0): Initialize new type nodes. - * config-lang.in: New libU77 directory. - * intrin.h, intrin.c (ffeintrin_is_intrinsic): Handle - potential generic for subroutine _and_ function - specifics via two new arguments. All callers changed. - Properly ignore deleted/disabled intrinsics in resolving - generics. - (ffeintrin_check_, ffeintrin_init_0): Handle CHARACTER intrinsics of (*) - length. - * intrin.def: Permission granted by FSF to place this in - public domain, which will allow it to serve as source - for both g77 program and its documentation. - Add libU77 intrinsics. - (FLUSH): Now a generic, not specific, intrinsic. - (DEFIMP): Now support return modifier for CHARACTER intrinsics. - - * com-rt.def (FFECOM_gfrtDIM, FFECOM_gfrtERF, - FFECOM_gfrtERFC, FFECOM_gfrtEXP, FFECOM_gfrtSIGN, - FFECOM_gfrtSIN, FFECOM_gfrtSINH, FFECOM_gfrtTAN, - FFECOM_gfrtTANH, FFECOM_gfrtPOW_RI): Change "&r" to "&f". - -Sat Feb 1 12:15:09 1997 Craig Burley - - * Version 0.5.19.1 released. - - * com.c (ffecom_expr_, ffecom_expr_intrinsic_, - ffecom_tree_divide_): FFECOM_gfrtPOW_ZI, - FFECOM_gfrtCONJG, FFECOM_gfrtDCONJG, - FFECOM_gfrtCCOS, FFECOM_gfrtCDCOS, - FFECOM_gfrtCLOG, FFECOM_gfrtCDLOG, - FFECOM_gfrtCSIN, FFECOM_gfrtCDSIN, - FFECOM_gfrtCSQRT, FFECOM_gfrtCDSQRT, - FFECOM_gfrtDIV_CC, FFECOM_gfrtDIV_ZZ: These all require - result to _not_ overlap one or more inputs. - -Sat Feb 1 00:25:55 1997 Craig Burley - - * com.c (ffecom_init_0): Do internal checks only if - -fset-g77-defaults not specified. - - Fix %LOC(), LOC() to return sufficiently wide type: - * com.h, com.c (ffecom_pointer_kind_, ffecom_label_kind_, - ffecom_pointer_kind(), ffecom_label_kind()): New globals - and accessor macros hold kind for integer pointers on target - machine. - (ffecom_init_0): Determine narrowest INTEGER type that - can hold a pointer (usually INTEGER*4 or INTEGER*8), - store it in ffecom_pointer_kind_, etc. - * expr.c (ffeexpr_cb_end_loc_): Use right type for %LOC(). - * intrin.c (ffeintrin_check_, ffeintrin_init_0): Support - new 'p' kind for type of intrinsic. - * intrin.def (FFEINTRIN_impLOC): Returns "Ip" instead of "I1", - so LOC() type is correct for target machine. - - Support -fugly-assign: - * lang-options.h, top.h, top.c (ffe_decode_option): - Accept -fugly-assign and -fno-ugly-assign. - * com.c (ffecom_expr_): Handle -fugly-assign. - * expr.c (ffeexpr_finished_): Check right type for ASSIGN - contexts. - -Fri Jan 31 14:30:00 1997 Craig Burley - - Remove last vestiges of -fvxt-not-f90: - * stb.c (ffestb_R10012_, ffestb_R10014_, ffestb_V0201_): - top.c, top.h: - -Fri Jan 31 02:13:54 1997 Craig Burley - - * top.c (ffe_decode_option): Warn if -fugly is specified, - it'll go away soon. - - * symbol.h: No need to #include "bad.h". - - Reorganize features from -fvxt-not-f90 to -fvxt: - * lang-options.h, top.h, top.c: - Accept -fvxt and -fno-vxt, but not -fvxt-not-f90 or -ff90-not-vxt. - Warn if the latter two are used. - * expr.c (ffeexpr_nil_rhs_): Double-quote means octal constant. - (ffeexpr_token_rhs_): Double-quote means octal constant. - * target.h (FFETARGET_defaultIS_VXT_NOT_90): Delete macro - definition, no longer needed. - - Make some -ff90 features the default: - * data.c (ffedata_value): DATA implies SAVE. - * src.h (ffesrc_is_name_noninit): Underscores always okay. - - Fix up some more #error directives by quoting their text: - * bld.c (ffebld_constant_is_zero): - * target.h: - -Sat Jan 18 18:22:09 1997 Craig Burley - - * g77.c (lookup_option, main): Recognize `-Xlinker', - `-Wl,', `-l', `-L', `--library-directory', `-o', - `--output'. - (lookup_option): Don't depend on SWITCH_TAKES_ARG - being correct, it might or might not have `-x' in - it depending on host. - Return NULL argument if it would be an empty string. - (main): If no input files (by gcc.c's definition) - but `-o' or `--output' specified, produce diagnostic - to avoid overwriting output via gcc. - Recognize C++ `+e' options. - Treat -L as another non-magical option (like -B). - Don't append_arg `-x' twice. - -Fri Jan 10 23:36:00 1997 Craig Burley - - * top.c [BUILT_FOR_270] (ffe_decode_option): Make - -fargument-noalias-global the default. - -Fri Jan 10 07:42:27 1997 Craig Burley - - Enable inlining of previously-compiled program units: - * com.c (ffecom_do_entry_, ffecom_start_progunit_): - Register new public function in ffeglobal database. - (ffecom_sym_transform_): Any GLOBAL or potentially GLOBAL - symbol should be looked up in ffeglobal database and - that tree node used, if found. That way, gcc knows - the references are to those earlier definitions, so it - can emit shorter branches/calls, inline, etc. - (ffecom_transform_common_): Minor change for clarity. - * expr.c (ffeexpr_sym-lhs_call_, ffeexpr_sym_lhs_extfunc_, - ffeexpr_sym_rhs_actualarg_, ffeexpr_paren_rhs_let_, - ffeexpr_token_funsubstr_): Globalize symbol as needed. - * global.c (ffeglobal_promoted): New function to look up - existing local symbol in ffeglobal database. - * global.h: Declare new function. - * name.h (ffename_token): New macro, plus alphabetize. - * stc.c (ffestc_R1207_item): Globalize EXTERNAL symbol. - * stu.c (ffestu_sym_end_transition, ffestu_sym_exec_transition): - Globalize symbol as needed. - * symbol.h, symbol.c (ffesymbol_globalize): New function. - -Thu Jan 9 14:20:00 1997 Craig Burley - - * ste.c (ffeste_R809): Produce a diagnostic for SELECT CASE - on CHARACTER type, instead of crashing. - -Thu Jan 9 00:52:45 1997 Craig Burley - - * stc.c (ffestc_order_entry_, ffestc_order_format_, - ffestc_R1226): Allow ENTRY and FORMAT before IMPLICIT - NONE, by having them transition only to state 1 instead - of state 2 (which is disallowed by IMPLICIT NONE). - -Mon Jan 6 22:44:53 1997 Craig Burley - - Fix AXP bug found by Rick Niles (961201-1.f): - * com.c (ffecom_init_0): Undo my 1996-05-14 change, as - it is incorrect and prevented easily finding this bug. - * target.h [__alpha__] (ffetargetReal1, ffetargetReal2): - Use int instead of long. - (ffetarget_cvt_r1_to_rv_, ffetarget_cvt_rv_to_r1_, - ffetarget_cvt_r2_to_rv_, ffetarget_cvt_rv_to_r2_): - New functions that intercede for callers of - REAL_VALUE_(TO|UNTO)_TARGET_(SINGLE|DOUBLE). - All callers changed, and damaging casts to (long *) removed. - -Sun Jan 5 03:26:11 1997 Craig Burley - - * Make-lang.in (g77, g77-cross): Depend on both g77.c and - zzz.c, in $(srcdir)/f/. - - Better design for -fugly-assumed: - * stc.c (ffestc_R501_item, ffestc_R524_item, - ffestc_R547_item_object): Pass new is_ugly_assumed flag. - * stt.c, stt.h (ffestt_dimlist_as_expr, - ffestt_dimlist_type): New is_ugly_assumed flag now - controls whether "1" is treated as "*". - Don't treat "2-1" or other collapsed constants as "*". - -Sat Jan 4 15:26:22 1997 Craig Burley - - * stb.c (ffestb_R10012_): Don't confirm on FORMAT(A,) - or even FORMAT(A,,B), as R1229 only warns about the - former currently, and this seems reasonable. - - Improvements to diagnostics: - * sta.c (ffesta_second_): Don't add any ffestb parsers - unless they're specifically called for. - Set up ffesta_tokens[0] before calling ffestc_exec_transition, - else stale info might get used. - (ffesta_save_): Do a better job picking which parser to run - after running all parsers with no confirmed possibles. - (FFESTA_maxPOSSIBLES_): Decrease from 100 now that so few - possibles are ever on the list at a given time. - (struct _ffesta_possible): Add named attribute. - (ffesta_add_possible_exec_, ffesta_add_possible_nonexec_): - Make these into macros that call a single function that now - sets the named attribute. - (ffesta_add_possible_unnamed_exec_, - ffeseta_add_possible_unnamed_nonexec_): New macros. - (ffesta_second_): Designate unnamed possibles as - appropriate. - * stb.c (ffestb_R1229, ffestb_R12291_): Use more general - diagnostic, so things like "POINTER (FOO, BAR)" are - diagnosed as unrecognized statements, not invalid statement - functions. - * stb.h, stb.c (ffestb_unimplemented): Remove function. - -1996-12-30 Dave Love - - * com.c: #include libU77/config.h - (ffecom_f2c_ptr_to_integer_type_node, - ffecom_f2c_ptr_to_integer_type_node): New variables. - (ffecom_init_0): Use them. - (ffecom_expr_intrinsic_): Many news cases for libU77 intrinsics. - - * com-rt.def: New definitions for libU77. - * intrin.def: Likewise. Also correct ftell arg spec. - - * Makefile.in (f/runtime/libU77/config.h): New target for com.c - dependency. - * Make-lang.in (f771): Depend on f/runtime/Makefile for the above. - -Sat Dec 28 12:28:29 1996 Craig Burley - - * stt.c (ffestt_dimlist_type): Treat ([...,]1) in dimlist - as ([...,]*) if -fugly-assumed, so assumed-size array - detected early enough. - -Thu Dec 19 14:01:57 1996 Craig Burley - - * target.h (FFETARGET_REAL_VALUE_FROM_INT_): Conditionalize - definition on BUILT_FOR_280, not BUILT_WITH_280, since - the name of the macro was (properly) changed since 0.5.19. - - Fix warnings/errors resulting from ffetargetOffset becoming - `long long int' instead of `unsigned long' as of 0.5.19, - while ffebitCount remains `unsigned long': - * bld.c (ffebld_constantarray_dump): Avoid warnings by - using loop var of appropriate type, and using casts. - * com.c (ffecom_expr_): Use right type for loop var. - (ffecom_sym_transform_, ffecom_transform_equiv_): - Cast to right type in assertions. - * data.c (ffedata_gather_, ffedata_value_): Cast to right - type in assertions and comparisons. - -Wed Dec 18 12:07:11 1996 Craig Burley - - Patch from Alexandre Oliva : - * Makefile.in (all.indirect): Don't pass -bbigtoc option - to GNU ld. - - Cope with new versions of gcc: - * com.h (BUILT_FOR_280): New macro. - * com.c (ffecom_ptr_to_expr): Conditionalize test of - OFFSET_REF. - (ffecom_build_complex_constant_): Conditionalize calling - sequence for build_complex. - -Sat Dec 7 07:15:17 1996 Craig Burley - - * Version 0.5.19 released. - -Fri Dec 6 12:23:55 1996 Craig Burley - - * g77.c: Default to assuming "f77" is in $LANGUAGES, since - the LANGUAGE_F77 macro isn't defined by anyone anymore (but - might as well leave the no-f77 code in just in case). - * Make-lang.in (g77, g77-cross): Don't define LANGUAGE_F77 - anymore. - -1996-12-06 Dave Love - - * Make-lang.in (g77, g77-cross): Revert to building `g77' or not - conditional on `f77' in LANGUAGES. - -Wed Dec 4 13:08:44 1996 Craig Burley - - * Make-lang.in (g77, g77-cross): No libs or lib dependencies - in case where "f77" is not in $LANGUAGES. - - * lex.c (ffelex_image_char_, ffelex_file_fixed, - ffelex_file_free): Fixes to properly handle lines with - null character, and too-long lines as well. - - * lex.c: Call ffebad_start_msg_lex instead of - ffebad_start_msg throughout. - -Sun Dec 1 21:19:55 1996 Craig Burley - - Fix-up for 1996-11-25 changes: - * com.c (ffecom_member_phase2_): Subtract out 0 offset for - elegance and consistency with EQUIVALENCE aggregates. - (ffecom_sym_transform_): Ditto for LOCAL/COMMON, and - ensure we get the same parent storage area. - * data.c (ffedata_gather_, ffedata_value_): Subtract out - aggregate offset. - -Wed Nov 27 13:55:57 1996 Craig Burley - - * proj.h: Quote the text of the #error message, to avoid - strange-looking diagnostics from non-gcc ANSI compilers. - - * top.c: Make -fno-debug-kludge the default. - -Mon Nov 25 20:13:45 1996 Craig Burley - - Provide more info on EQUIVALENCE mismatches: - * bad.def (FFEBAD_EQUIV_MISMATCH): More detailed message. - * equiv.c (ffeequiv_layout_local_, ffeequiv_layout_cblock): - More details for FFEBAD_EQUIV_MISMATCH. - - Fix problem with EQUIVALENCE handling: - * equiv.c (ffeequiv_layout_local_): Redesign algorithm -- - old one was broken, resulting in rejection of good code. - (ffeequiv_offset_): Add argument, change callers. - Clean up the code, fix up the (probably unused) negative-value - case for SYMTER. - * com.c (ffecom_sym_transform_): For local EQUIVALENCE - member, subtract out aggregate offset (which is <= 0). - -Thu Nov 21 12:44:56 1996 Craig Burley - - Change type of ffetargetOffset from `unsigned long' to `long long': - * bld.c (ffebld_constantarray_dump): Change printf formats. - * storag.c (ffestorag_dump): Ditto. - * symbol.c (ffesymbol_report): Ditto. - * target.h (ffetargetOffset_f): Ditto and change type itself. - - Handle situation where list of languages does not include f77: - * Make-lang.in: Define LANGUAGE_F77 to 1 only if `f77' is in - the $LANGUAGES macro for the build. - * g77.c: Compile to a (nearly) no-op program if LANGUAGE_F77 - is not defined to 1. - - Fixes to delay confirmation of READ, WRITE, and GOTO statements - so the corresponding assignments to same-named CHAR*(*) arrays - work: - * stb.c (ffestb_R90915_, ffestb_91014_): New functions. - (ffestb_goto3_, ffestb_goto5_): Move confirmation from 3 to 5 - for the OPEN_PAREN case. - (ffestb_R9091_, ffestb_R9094_, ffestb_R90913_, ffestb_R90914_, - ffestb_R91012_, ffestb_R91013_): Use new functions, and confirm - except for the OPEN_PAREN case. - - Fixes to not confirm declarations with an open paren where - an equal sign or other assignment-like token might be, so the - corresponding assignments to same-named CHAR*(*) arrays work: - (ffestb_decl_entsp_5_): Move assertion so we crash on that first, - if it turns out to be wrong, before the less-debuggable crash - on mistaken confirmation. - (ffestb_decl_entsp_6_, ffestb_decl_entsp_7_, ffestb_decl_entsp_8_): - Include OPEN_PAREN in list of assignment-only tokens. - - Fix more diagnosed-crash bugs: - * stu.c (ffestu_sym_end_transition): ANY-ize an adjustable array - with bad dimension expressions even if still stateUNCERTAIN. - (ffestu_symter_end_transition_, ffestu_symter_exec_transition_): - Return TRUE for opANY as well. - For code elegance, move opSYMTER case into first switch. - -1996-11-17 Dave Love - - * lex.c: Fix last change. - -1996-11-14 Dave Love - - * Make-lang.in, config-lang.in: Remove the (broken) libU77 stuff, - pending 0.5.20. - -Thu Nov 14 15:40:59 1996 Craig Burley - - * bad.def (FFEBAD_UNIMPL_STMT): Explain that invalid - intrinsic references can trigger this message, too. - -1996-11-12 Dave Love - - * lex.c: Declare dwarfout routines. - - * config-lang.in: Sink grep o/p. - -Mon Nov 11 14:21:13 1996 Craig Burley - - * g77.c (main): Might as well print version number - for --verbose as well. - -Thu Nov 7 18:41:41 1996 Craig Burley - - * expr.c, lang-options.h, target.h, top.c, top.h: Split out - remaining -fugly stuff into -fugly-logint and -fugly-comma, - leaving -fugly as simply a `macro' that expands into other - options, and eliminate defaults for some of the ugly stuff - in target.h. - - * Make-lang.in (gcc-cross): Compile zzz.c, not version.o (!), - in to get version info for this target. - - * config-lang.in: Test for GBE patch application based - on whether 2.6.x or 2.7.x GBE is detected. - -Wed Nov 6 14:19:45 1996 Craig Burley - - * Make-lang.in (g77): Compile zzz.c in to get version info. - * g77.c: Add support for --help and --version. - - * g77.c (lookup_option): Short-circuit long-winded tests - when second char is not hyphen, just to save a spot of time. - -Sat Nov 2 13:50:31 1996 Craig Burley - - * intrin.def: Add FTELL and FSEEK intrinsics, plus new - `g' codes for alternate-return (GOTO) arguments. - * intrin.c (ffeintrin_check_): Support `g' codes. - * com-rt.def: Add ftell_() and fseek_() to database. - * com.c (ffecom_expr_intrinsic_): Ditto. Also, let each - subroutine intrinsic decide for itself what to do with - tree_type, the default being NULL_TREE once again (so - ffecom_call_ doesn't think it's supposed to cast the - function call to the type in the fall-through case). - - * ste.c (ffeste_R909_finish): Don't special-case list-directed - I/O, now that libf2c can return non-zero status codes. - (ffeste_R910_finish): Ditto. - (ffeste_io_call_): Simplify logic. - (ffeste_io_impdo_): - (ffeste_subr_beru_): - (ffeste_R904): - (ffeste_R907): - (ffeste_R909_start): - (ffeste_R909_item): - (ffeste_R909_finish): - (ffeste_R910_start): - (ffeste_R910_item): - (ffeste_R910_finish): - (ffeste_R911_start): - (ffeste_R923A): Ditto all the above. - -Thu Oct 31 20:56:28 1996 Craig Burley - - * config-lang.in, Make-lang.in: Rename flag file - build-u77 to build-libu77, for consistency with - install-libf2c and such. - - * config-lang.in: Don't complain about failure to patch - if pre-2.7.0 gcc is involved (since our patch for that - doesn't add support for tooning). - -Sat Oct 26 05:56:51 1996 Craig Burley - - * bad.def (FFEBAD_TYPELESS_TOO_LARGE): Remove this - unused and redundant diagnostic. - -Sat Oct 26 00:45:42 1996 Craig Burley - - * target.c (ffetarget_integerhex): Fix dumb bug. - -1996-10-20 Dave Love - - * gbe/2.7.2.1.diff: New file. - - * Makefile.in (F771_LDFLAGS): Add -bbigtoc for AIX4.1 up, suggested by - endo@material.tohoku.ac.jp [among others!]. - -Sat Oct 19 03:11:14 1996 Craig Burley - - * bad.def, bld.c, bld.h, expr.c, lang-options.h, target.c, - target.h, top.c, top.h (ffebld_constant_new_integerbinary, - ffebld_constant_new_integerhex, ffebld_constant_new_integeroctal, - ffeexpr_token_name_apos_name_, ffetarget_integerbinary, - ffetarget_integerhex, ffetarget_integeroctal): Support - new -fno-typeless-boz option with new functions, mods to - existing octal-handling functions, new macros, new error - messages, and so on. - - * com.c, lang-options.h, top.c, top.h (ffecom_notify_primary_entry): - Print program unit name on stderr if -fno-silent (new option). - - * lang-options.h, top.c, top.h, stt.c (ffestt_dimlist_as_expr): - Treat ([...,]1) in dimlist as ([...,]*) if -fugly-assumed - (new option). - - * lang-options.h: Comment out options duplicated in gcc/toplev.c, - because, somehow, having them commented in and building on my - DEC Alpha results in a cc1 that always segfaults, and gdb that - also segfaults whenever it debugs it up to init_lex() calling - xmalloc() or so. - -Thu Oct 17 00:39:27 1996 Craig Burley - - * stb.c (ffestb_R10013_): Don't change meaning of .sign until - after previous meaning/value used to set sign of value - (960507-1.f). - -Sun Oct 13 22:15:23 1996 Craig Burley - - * top.c (ffe_decode_option): Don't set back-end flags - that are nonexistent prior to gcc 2.7.0. - -Sun Oct 13 12:48:45 1996 Craig Burley - - * com.c (convert): Don't convert emulated complex expr to - real (via REALPART_EXPR) if the target type is (emulated) - complex. - -Wed Oct 2 21:57:12 1996 Craig Burley - - * com.c (ffecom_debug_kludge_): Set DECL_IN_SYSTEM_HEADER so - -Wunused doesn't complain about these manufactured decls. - (ffecom_expr_): Ditto, for original (non-ASSIGN'ed) variable. - (ffecom_transform_equiv_): Clear DECL_IGNORED_P for aggregate - area so it shows up as a debug-accessible symbol. - (pushdecl): Default for "invented" identifiers (a g77-specific - concept for now) is that they are artificial, in system header, - ignored for debugging purposes, used, and (for types) suppressed. - This ought to be overkill. - -Fri Sep 27 23:13:07 1996 Craig Burley - - * ste.c (ffeste_begin_iterdo_, ffeste_end_iterdo_): Support - one-trip DO loops (F66-style). - * lang-options.h, top.c, top.h (-fonetrip): New option. - -Thu Sep 26 00:18:40 1996 Craig Burley - - * com.c (ffecom_debug_kludge_): New function. - (ffecom_sym_transform_): Use new function for COMMON and EQUIVALENCE - members. - - * lang-options.h, top.c, top.h (-fno-debug-kludge): - New option. - -1996-09-24 Dave Love - - * Make-lang.in (include/f2c.h): - Remove dependencies on xmake_file and tmake_file. - They expand inconsistently in 2.8 c.f. 2.7; $(GCC_PARTS) depends on - them anyhow. - -1996-09-22 Dave Love - - * config-lang.in: Add --enable-libu77 option handling. - - * Make-lang.in: - Conditionally add --enable-libu77 when running runtime configure. - Define LIBU77STAGESTUFF and use it in relevant rules. - -1996-08-21 Dave Love - - * Make-lang.in (f77-runtime): - `stmp-hdrs' should have been `stmp-headers'. - -1996-08-20 Dave Love - - * Make-lang.in (f77-runtime): - Depend on stmp-hdrs, not stmp-int-hdrs, since libF77 - needs float.h. - -Sat Jun 22 18:17:11 1996 Craig Burley - - * com.c (ffecom_tree_divide_): Fix RECORD_TYPE case to - look at type of first field, properly, to determine - whether to call c_div or z_div. - -Tue Jun 4 04:27:18 1996 Craig Burley - - * com.c (ffecom_build_complex_constant_): Explicitly specify - TREE_PURPOSE. - (ffecom_expr_): Fix thinko. - (ffecom_2): For COMPLEX_EXPR, explicitly specify TREE_PURPOSE. - -Mon May 27 16:23:43 1996 Craig Burley - - Changes to optionally avoid gcc's back-end complex support: - * com.c (ffecom_stabilize_aggregate_): New function. - (ffecom_convert_to_complex_): New function. - (ffecom_make_complex_type_): New function. - (ffecom_build_complex_constant_): New function. - (ffecom_expr_): For opCONVERT of non-COMPLEX to COMPLEX, - don't bother explicitly converting to the subtype first, - because gcc does that anyway, and more code would have - to be added to find the subtype for the emulated-complex - case. - (ffecom_f2c_make_type_): Use ffecom_make_complex_type_ - instead of make_node etc. to make a complex type. - (ffecom_1, ffecom_2): Translate operations on COMPLEX operands - to appropriate operations when emulating complex. - (ffecom_constantunion): Use ffecom_build_complex_constant_ - instead of build_complex to build a complex constant. - (ffecom_init_0): Change point at which types are laid out - for improved consistency. - Use ffecom_make_complex_type_ instead of make_node etc. - to make a complex type. - Always calculate storage sizes from TYPE_SIZE, never TYPE_PRECISION. - (convert): Use e, not expr, since we've copied into that anyway. - For RECORD_TYPE cases, do emulated-complex conversions. - (ffecom_f2c_set_lio_code_): Always calculate storage sizes - from TYPE_SIZE, never TYPE_PRECISION. - (ffecom_tree_divide_): Allow RECORD_TYPE to also be handled - by run-time library. - (ffecom_expr_intrinsic_): Handle possible RECORD_TYPE as argument - to AIMAG intrinsic. - - * top.h, top.c, lang-options.h: Support new -f(no-)emulate-complex option. - - * com.c (ffecom_sym_transform_): Clarify and fix typos in comments. - -Mon May 20 02:06:27 1996 Craig Burley - - * target.h: Use new REAL_VALUE_UNTO_TARGET_* macros instead - of REAL_VALUE_FROM_TARGET_DOUBLE and _SINGLE. - Explicitly use long instead of HOST_WIDE_INT for emulation - of ffetargetReal1 and ffetargetReal2. - -1996-05-20 Dave Love - - * config-lang.in: - Test for patch being applied with flag_move_all_movables in toplev.c. - - * install.texi (Patching GNU Fortran): - Mention overriding X_CFLAGS rather than - editing proj.h on SunOS4. - - * Make-lang.in (F77_FLAGS_TO_PASS): - Add X_CFLAGS (convenient for SunOS4 kluge, in - particular). - (f77.{,mostly,dist}clean): Reorder things, in particular not to delete - Makefiles too early. - - * g77.c (DEFAULT_SWITCH_TAKES_ARG): Define a la gcc.c in the - current GCC snapshot. - -Tue May 14 00:24:07 1996 Craig Burley - - Changes for DEC Alpha AXP support: - * com.c (ffecom_init_0): REAL_ARITHMETIC means internal - REAL/DOUBLE PRECISION might well have a different size - than the compiled type, so don't crash if this is the - case. - * target.h: Use `int' for ffetargetInteger1, - ffetargetLogical1, and magical tests. Set _f format - strings accordingly. - -Tue Apr 16 14:08:28 1996 Craig Burley - - * top.c (ffe_decode_option): -Wall no longer implies - -Wsurprising. - -Sat Apr 13 14:50:06 1996 Craig Burley - - * com.c (ffecom_char_args_): If item is error_mark_node, - set *length that way, too. - - * com.c (ffecom_expr_power_integer_): If either operand - is error_mark_node, return that. - - * com.c (ffecom_intrinsic_len_): If item is error_mark_node, - return that for length. - - * expr.c (ffeexpr_declare_unadorned_, - ffeexpr_declare_parenthesized_): Instead of crashing - on unexpected contexts, produce a diagnostic. - - * intrin.c (ffeintrin_check_), intrin.def (impSIGNAL): - Allow procedure as second arg to SIGNAL intrinsic. - - * stu.c (ffestu_symter_end_transition_): New function. - (ffestu_symter_exec_transition_): Return bool arg. - Always transition symbol (don't inhibit when !whereNONE). - (ffestu_sym_end_transition): If DUMMY/LOCAL arg has any - opANY exprs in its dimlist, diagnose it so it doesn't - make it through to later stages that try to deal with - dimlist stuff. - (ffestu_sym_exec_transition): If sym has any opANY exprs - in its dimlist, diagnose it so it becomes opANY itself. - - * symbol.c (ffesymbol_error): If token arg is NULL, - just ANY-ize the symbol -- don't produce diagnostic. - -Mon Apr 1 10:14:02 1996 Craig Burley - - * Version 0.5.18 released. - -Mon Mar 25 20:52:24 1996 Craig Burley - - * com.c (ffecom_expr_power_integer_): Don't generate code - that compares COMPLEX (or, as it happens, REAL) via "LT_EXPR", - since the back end crashes on that. (This code would never - be executed anyway, but the test that avoids it has now been - translated to control whether the code gets generated at all.) - Fixes 960323-3.f. - - * com.c (ffecom_type_localvar_): Handle variable-sized - dimension bounds expressions here, so they get calculated - and saved on procedure entry. Fixes 960323-4.f. - - * com.c (ffecom_notify_init_symbol): Symbol has no init - info at all if only zeros have been used to initialize it. - Fixes 960324-0.f. - - * expr.c, expr.h (ffeexpr_type_combine): Renamed from - ffeexpr_type_combine_ and now a public procedure; last arg now - a token, instead of an internal structure used to extract a token. - Now allows the outputs to be aliased with the inputs. - Now allows a NULL token to mean "don't report error". - (ffeexpr_reduced_bool2_, ffeexpr_reduced_eqop2_, - ffeexpr_reduced_math2_, ffeexpr_reduced_power_, - ffeexpr_reduced_relop2_): Handle new calling sequence for - ffeexpr_type_combine. - * (ffeexpr_convert): Don't put an opCONVERT node - in just because the size is unknown; all downstream code - should be able to deal without it being there anyway, and - getting rid of it allows new intrinsic code to more easily - combine types and such without generating bad code. - * info.c, info.h (ffeinfo_kindtype_max): Rewrite to do - proper comparison of size of types, not just comparison - of their internal kind numbers (so I2.eq.I1 doesn't promote - I1 to I2, rather the other way around). - * intrin.c (ffeintrin_check_): Combine types of arguments - in COL a la expression handling, for greater flexibility - and permissiveness (though, someday, -fpedantic should - report use of this kind of thing). - Make sure Hollerith/typeless where CHARACTER expected is - rejected. This all fixes 960323-2.f. - - * ste.c (ffeste_begin_iterdo_): Fix some more type conversions - so INTEGER*2-laden DO loops don't crash at compile time on - certain machines. Believed to fix 960323-1.f. - - * stu.c (ffestu_sym_end_transition): Certainly reject - whereDUMMY not in any dummy list, whether stateUNCERTAIN - or stateUNDERSTOOD. Fixes 960323-0.f. - -Tue Mar 19 13:12:40 1996 Craig Burley - - * data.c (ffedata_value): Fix crash on opANY, and simplify - the code at the same time. - - * Make-lang.in (f77-runtime): Also depends on lib[FI]77/Makefile... - (include/f2c.h...): ...which in turn depend on */Makefile.in. - (f77.rebuilt): Rebuild runtime stuff too. - - * intrin.c (ffeintrin_check_): Accommodate TYPELESS/HOLLERITH - types, convert args as necessary, etc. - - * expr.c (ffeexpr_convert): Fix test for TYPELESS/HOLLERITH - to obey the docs; crash if no source token when error. - (ffeexpr_collapse_convert): Crash if no token when error. - -Mon Mar 18 15:51:30 1996 Craig Burley - - * com.c (ffecom_init_zero_): Renamed from - ffecom_init_local_zero_; now handles top-level - (COMMON) initializations too. - - * bld.c (ffebld_constant_is_zero): - * com.c (ffecom_symbol_transform_, ffecom_sym_transform_assign_, - ffecom_transform_common_, ffecom_transform_equiv_): - * data.c: - * equiv.c: - * equiv.h: - * lang-options.h: - * stc.c: - * storag.c: - * storag.h: - * symbol.c: - * symbol.h: - * target.c: - * target.h: - * top.c: - * top.h: All of this is mostly housekeeping-type changes - to support -f(no-)zeros, i.e. not always stuff zero - values into the initializer fields of symbol/storage objects, - but still track that they have been given initial values. - - * bad.def: Fix wording for DATA-related diagnostics. - - * com.c (ffecom_sym_transform_assign_): Don't check - any EQUIVALENCE stuff for local ASSIGN, the check was - bad (crashing), and it's not necessary, anyway. - - * com.c (ffecom_expr_intrinsic_): For MAX and MIN, - ignore null arguments as far arg[123], and fix handling - of ANY arguments. (New intrinsic support now allows - spurious trailing null arguments.) - - * com.c (ffecom_init_0): Add HOLLERITH (unsigned) - equivalents for INTEGER*2, *4, and *8, so shift intrinsics - and other things that need unsigned versions of signed - types work. - -Sat Mar 16 12:11:40 1996 Craig Burley - - * storag.c (ffestorag_exec_layout): Treat adjustable - local array like dummy -- don't create storage object. - * com.c (ffecom_sym_transform_): Allow for NULL storage - object in LOCAL case (adjustable array). - -Fri Mar 15 13:09:41 1996 Craig Burley - - * com.c (ffecom_sym_transform_): Allow local symbols - with nonconstant sizes (adjustable local arrays). - (ffecom_type_localvar_): Allow dimensions with nonconstant - component (adjustable local arrays). - * expr.c: Various minor changes to handle adjustable - local arrays (a new case of stateUNCERTAIN). - * stu.c (ffestu_sym_end_transition, - ffestu_sym_exec_transition): Ditto. - * symbol.def: Update docs to reflect these changes. - - * com.c (ffecom_expr_): Reduce space/time needed for - opACCTER case by handling it here instead of converting - it to opARRTER earlier on. - (ffecom_notify_init_storage): Don't convert ACCTER to ARRTER. - (ffecom_notify_init_symbol): Ditto. - - * com.c (ffecom_init_0): Crash and burn if any of the types' - sizes, according to the GBE, disagrees with the sizes of - the FFE's internal implementation. This might catch - Alpha/SGI bugs earlier. - -Fri Mar 15 01:09:41 1996 Craig Burley - - * com-rt.def, com.c, com.h: Changes for rewrite of intrinsic - handling. - * com.c (ffecom_arglist_expr_): New function. - (ffecom_widest_expr_type_): New function. - (ffecom_expr_intrinsic_): Reorganize, some rewriting. - (ffecom_f2c_make_type_): Layout complex types. - (ffecom_gfrt_args_): New function. - (ffecom_list_expr): Trivial change for consistency. - - * expr.c (ffeexpr_token_name_rhs_): Go back to getting - type from specific, not implementation, info. - (ffeexpr_token_funsubstr_): Set intrinsic implementation too! - * intrin.c: Major rewrite of most portions. - * intrin.def: Major rearchitecting of tables. - * intrin.h (ffeintrin_basictype, ffeintrin_kindtype): - Now (once again) take ffeintrinSpec as arg, not ffeintrinImp; - for now, these return NONE, since they're not really needed - and adding the necessary info to the tables is not trivial. - (ffeintrin_codegen_imp): New function. - * stc.c (ffestc_R1208_item): Change way ffeintrin funcs called, - back to original per above; but comment out the code anyway. - - * intrin.c (ffe_init_0): Do internal checks only if - -fset-g77-defaults not specified. - - * lang-options.h: Add -fset-g77-defaults option. - * lang-specs.h: Always pass -fset-g77-defaults. - * top.c, top.h: New option. - -Sat Mar 9 17:49:50 1996 Craig Burley - - * Make-lang.in (stmp-int-hdrs): Use --no-validate when - generating the f77.rebuilt files (BUGS, INSTALL, NEWS) - so cross-references can work properly in g77.info - without a lot of hassle. Users can probably deal with - the way they end up looking in the f77.rebuilt files. - - * bld.c (ffebld_constant_new_integer4_val): INTEGER*8 - support -- new function. - (ffebld_constant_new_logical4_val): New function. - * com.c (ffecom_f2c_longint_type_node): New type. - (FFECOM_rttypeLONGINT_): New return type code. - (ffecom_expr_): Add code to invoke pow_qq instead - of pow_ii for INTEGER4 (INTEGER*8) case. - If ffecom_expr_power_integer_ returns NULL_TREE, just do - the usual work. - (ffecom_make_gfrt_): Handle new type. - (ffecom_expr_power_integer_): Let caller do the work if in - dummy-transforming case, since - caller now knows about INTEGER*8 and such, by returning - NULL_TREE. - * expr.c (ffeexpr_reduced_power_): Complain about non-INTEGER - raised to INTEGER4 (INTEGER*8) power. - - * target.c (ffetarget_power_integerdefault_integerdefault): - Fix any**negative. - * com.c (ffecom_expr_power_integer_): Fix (-1)**(-8) and similar - to ABS() the integral result if the exponent is negative - and even. - - * ste.c (ffeste_begin_iterdo_): Clean up a type ref. - Always convert iteration count to _default_ INTEGER. - - * sta.c (ffesta_second_): Add BYTE and WORD type/stmts; - changes by Scott Snyder . - * stb.c (ffestb_decl_recursive): Ditto. - (ffestb_decl_recursive): Ditto. - (ffestb_decl_entsp_2_): Ditto. - (ffestb_decl_entsp_3_): Ditto. - (ffestb_decl_funcname_2_): Ditto. - (ffestb_decl_R539): Ditto. - (ffestb_decl_R5395_): Ditto. - * stc.c (ffestc_establish_declstmt_): Ditto. - * std.c (ffestd_R539item): Ditto. - (ffestd_R1219): Ditto. - * stp.h: Ditto. - * str-1t.fin: Ditto. - * str-2t.fin: Ditto. - - * expr.c (ffeexpr_finished_): For DO loops, allow - any INTEGER type; convert LOGICAL (assuming -fugly) - to corresponding INTEGER type instead of always default - INTEGER; let later phases do conversion of DO start, - end, incr vars for implied-DO; change checks for non-integral - DO vars to be -Wsurprising warnings. - * ste.c (ffeste_io_impdo_): Convert start, end, and incr - to type of DO variable. - - * com.c (ffecom_init_0): Add new types for [IL][234], - much of which was done by Scott Snyder . - * target.c: Ditto. - * target.h: Ditto. - -Wed Mar 6 14:08:45 1996 Craig Burley - - * top.c (ffe_init_gbe_): Make -frerun-loop-opt the default. - -Mon Mar 4 12:27:00 1996 Craig Burley - - * expr.c (ffeexpr_exprstack_push_unary_): Really warn only - about two successive _arithmetic_ operators. - - * stc.c (ffestc_R522item_object): Allow SAVE of (understood) - local entity. - - * top.c (ffe_decode_option): New -f(no-)second-underscore options. - * top.h: New options. - * com.c (ffecom_get_external_identifier_, ffecom_get_identifier_): - New options. - - * Make-lang.in (f77.maintainer-clean): Clean f/BUGS, f/INSTALL, - f/NEWS. - ($(srcdir)/f/BUGS, $(srcdir)/f/INSTALL, $(srcdir)/f/NEWS): - New rules. - ($(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi): Depend on - f/bugs.texi and f/news.texi. - (f77.install-man): Install f77 man pages (if enabled). - (f77.uninstall): Uninstall info docs, f77 man pages (if enabled). - - * top.c (ffe_init_gbe_): New function. - (ffe_decode_option, ffe_file): Call ffe_init_gbe_ to - set defaults for gcc options. - -Sat Jan 20 13:57:19 1996 Craig Burley - - * com.c (ffecom_get_identifier_): Eliminate needless - comparison of results of strchr. - -Tue Dec 26 11:41:56 1995 Craig Burley - - * Make-lang.in: Add rules for new files g77.texi, g77.info, - and g77.dvi. - Reorganize the *clean rules to more closely parallel gcc's. - - * config-lang.in: Exclude g77.info from diffs. - -Sun Dec 10 02:29:13 1995 Craig Burley - - * expr.c (ffeexpr_declare_unadorned_, - ffeexpr_declare_parenthesized_): Break out handling of - contextDATAIMPDO[INDEX,CTRL] so it's independent of symbol state. - Don't exec-transition these here (let ffeexpr_sym_impdoitem_ - handle that when appropriate). Don't "declare" them twice. - -Tue Dec 5 06:48:26 1995 Craig Burley - - * stc.c (ffestc_promote_sfdummy_): Allow whereNONE parent - symbol, since it is not necessarily known whether it will - become LOCAL or DUMMY. - -Mon Dec 4 03:46:55 1995 Craig Burley - - * lex.c (ffelex_display_token, ffelex_type_string_): Resurrect - these from their old versions and update them for possible invocation - from debugger. - * lex.h (ffelex_display_token): Declare this in case anyone - else wants to call it. - - * lex.c (ffelex_total_tokens_): Have this reflect actual allocated - tokens, no longer include outstanding "uses" of tokens. - - * malloc.c, malloc.h (MALLOC_DEBUG): New macro to control - checking of whether callers follow rules, now defaults to 0 - for "no checking" to improve compile times. - - * malloc.c (malloc_pool_kill): Fix bug that could prevent - subpool from actually being killed (wasn't setting its use - count to 1). - - * proj.h, *.c (dmpout): Replace all occurrences of `stdout' - and some of `stderr' with `dmpout', so where to dump debugging - output can be easily controlled during build; add default - for `dmpout' of `stderr' to proj.h. - -Sun Dec 3 00:56:29 1995 Craig Burley - - * com.c (ffecom_return_expr): Eliminate attempt at warning - about unset return values, since the back end does this better, - with better wording, and is not triggered by clearly working - (but spaghetti) code as easily as this test. - -Sat Dec 2 08:28:56 1995 Craig Burley - - * target.c (ffetarget_power_*_integerdefault): Raising 0 to - integer constant power should not be an error condition; - if so, other code should catch 0 to any power, etc. - - * bad.def (FFEBAD_BAD_POWER): 0**integer now a warning instead - of an error. - -Fri Dec 1 00:12:03 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * bad.def: Clarify diagnostic regarding complex constant elements. - * expr.c (ffeexpr_cb_comma_c_): Capitalize real/imaginary - for clarified diagnostic. - - * com.c (ffecom_close_include_): Close the file! - - * lex.c (ffelex_file_fixed): Update line info if the line - has any content, not just if it finishes a previous line - or has a label. - (ffelex_file_free): Clarify switch statement code. - -Sat Nov 18 19:37:22 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.17 released. - -Fri Nov 17 14:27:24 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Make-lang.in: Fix typo in comment. - - * Makefile.in (f/fini.o, f/proj-h.o): Don't use `$<' since - not all makes support it (e.g. NeXT make), use explicit - source name instead (with $(srcdir) and munging). - (ASSERT_H): assert.h lives in source dir, not build dir. - -Thu Nov 16 12:47:50 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_init_0): Fix dumb bug in code to produce - warning message about non-32-bit-systems. - - * stc.c (ffestc_R501_item): Parenthesize test to make - warning go away (and perhaps fix bug). - -Thu Nov 16 03:43:33 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * g77.c: Upgrade to 2.7.0's gcc.c. - Fix -v to pass a temp name instead of "/dev/null" for "-o". - -Fri Nov 10 19:16:05 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * ste.c (ffeste_begin_iterdo_): Add Toon's change to - make loops faster on some machines (implement termination - condition as "--i >= 0" instead of "i-- > 0"). - -Thu Nov 2 03:58:17 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Make-lang.in: Remove unnecessary $(exeext) a la cp/Make-lang.in. - - * com.c (ffecom_expr_): Restore old strategy for assignp variant - of opSYMTER case...always return the ASSIGN version of var. - That way, `-O -Wuninitialized' will catch "I=3;GOTO I;END" - (though the diagnostic will refer to `__g77_ASSIGN_i'). - - * com.c (ffecom_expr_power_integer_): For constant rhs case, - wrap every new eval of lhs in save_expr() so it is clear to - back end that MULT_EXPR(lhs,lhs) has identical operands, - otherwise for an rhs like 32767 it generates around 65K pseudo - registers, with which stupid_life_analysis cannot cope - (due to reg_renumber in regs.h being `short *' instead of - `int *'). - - * com.c (ffecom_expr_): Speed up implementation of LOGICAL - versions of opNOT, opAND, opOR, opXOR/opNEQV, and opEQV by - assuming the values actually are kosher LOGICAL bit patterns. - Also simplify code that implements some of the INTEGER versions - of these. - - * com.c (skip_redundant_dir_prefix, read_name_map, - ffecom_open_include_, signed_type, unsigned_type): Fold in - changes to cccp.c made from 2.7.0 through ss-950826. - - * equiv.c (ffeequiv_layout_local_): Kill the equiv list - if no syms in list. - - * expr.c (ffeexpr_reduced_eqop2_): Issue specific diagnostic - regarding usage of .EQV./.NEQV. in preference to .EQ./.NE.. - - * intrin.c: Add ERF and ERFC as generic intrinsics. - intrin.def: Same. - - * sta.c (ffesta_save_, ffesta_second_): Whoever calls - ffestd_exec_begin must also set ffesta_seen_first_exec = TRUE, - and anytime stc sees an exec transition, it must do both. - stc.c (ffestc_eof): Same. - - * stc.c (ffestc_promote_sfdummy_): If failed implicit typing - or CHARACTER*(*) arg, after calling ffesymbol_error, don't - reset info to ENTITY/DUMMY, because ffecom_sym_transform_ - doesn't expect such a thing with ANY/ANY type. - - * target.h (*logical*): Change some of these so they parallel - changes in com.c, e.g. for _eqv_, use (l)==(r) instead of - !!(l)==!!(r), to get a more faithful result. - -Fri Oct 27 07:06:59 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_sym_transform_): Simplify code for local - EQUIVALENCE case. - - * expr.c (ffeexpr_exprstack_push_unary_): Warn about two - successive operators. - (ffeexpr_exprstack_push_binary_): Warn about "surprising" - operator precedence, as in "-2**2". - - * lang-options.h: Add -W(no-)surprising options. - - * parse.c (yyparse): Don't reset -fpedantic if not -pedantic. - - * top.c (ffe_decode_option): Support new -Wsurprising option. - * top.h: Ditto. - -Mon Oct 23 09:14:15 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_finish_symbol_transform_): Don't transform - NONE/NONE (CHARACTER*(*)) vars, as these don't mean anything - in debugging terms, and can't be turned into anything - in the back end (so ffecom_sym_transform_ crashes on them). - - * com.c (ffecom_expr_): Change strategy for assignp variant - of opSYMTER case...always return the original var unless - it is not wide enough. - - * ste.c (ffeste_io_cilist_): Clarify diagnostic for ASSIGN - involving too-narrow variable. This shouldn't happen, though. - (ffeste_io_icilist_): Ditto. - (ffeste_R838): Ditto. - (ffeste_R839): Ditto. - -Thu Oct 19 03:21:20 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_sym_transform_assign_): Set TREE_STATIC - using the same decision-making process as used for their twin - variables, so ASSIGN can last across RETURN/CALL as appropriate. - -Fri Sep 22 20:21:18 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Makefile.in: fini is a host program, so it needs a host-compiled - version of proj.o, named proj-h.o. f/fini, f/fini.o, and - f/proj-h.o targets updated accordingly. - - * com.c (__eprintf): New function. - -Wed Sep 20 02:26:36 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * lang-options.h: Add omitted -funix-intrinsics-* options. - - * malloc.c (malloc_find_inpool_): Check for infinite - loop, crash if detected (user reports encountering - them in some large programs, this might help track - down the bugs). - -Thu Sep 7 13:00:32 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (lang_print_error_function): Don't dereference null - pointer when outside any program unit. - (ffecom_let_char_, ffecom_arg_ptr_to_expr): If catlist - item or length ever error_mark_node, don't continue processing, - since back-end functions like build_pointer_type crash on - error_mark_node's (due to pushing bad obstacks, etc.). - -Wed Aug 30 15:58:35 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.16 released. - -Mon Aug 28 12:24:20 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * bad.c (ffebad_finish): Fix botched message when no places - are printed (due to unknown line info, etc.). - - * std.c (ffestd_subr_labels_): Do a better job finding - line info in the case of typeANY and diagnostics. - -Fri Aug 25 15:19:29 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (DECL_ARTIFICIAL): Surround all references to this - macro with #if !BUILT_FOR_270 and #endif. - (init_lex): Surround print_error_function decl with - #if !BUILT_FOR_270 and #endif. - (lang_init): Call new ffelex_hash_kludge function to solve - problem with preprocessed files that have INCLUDE statements. - - * lex.c (ffelex_getc_): New function. - (ffelex_cfelex_): Use ffelex_getc_ instead of getc in any - paths of code that can be affected by ffelex_hash_kludge. - Don't make an EOF token for unrecognized token; set token - to NULL instead, to avoid problems when not initialized. - (ffelex_hash_): Use ffelex_getc_ instead of getc in any - paths of code that can be affected by ffelex_hash_kludge. - Test token returned by ffelex_cfelex_ for NULL, meaning - unrecognized token. - Get rid of useless used_up variable. - Don't do ffewhere stuff or kill any tokens if in - ffelex_hash_kludge. - (ffelex_file_fixed, ffelex_file_free): Use ffelex_getc_ - instead of getc in any paths of code that can be affected - by ffelex_hash_kludge. - (ffelex_hash_kludge): New function. - - * lex.h (ffelex_hash_kludge): New function. - -Wed Aug 23 15:17:40 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c: Implement -f(no-)underscoring options by always - compiling in code to do it, and having that code inhibit - itself when -fno-underscoring is in effect. This option - overrides -f(no-)f2c for this purpose; -f(no-)f2c returns - to it's <=0.5.15 behavior of affecting only how code - is generated, not how/whether names are mangled. - - * target.h: Redo specification of appending underscores so - the macros are named "_default" instead of "_is" and the - two-underscore macro defaults to 1. - - * top.c, top.h (underscoring): Add appropriate stuff - for the -f(no-)underscoring options. - -Tue Aug 22 10:25:01 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * bad.c (ffebad_finish): Call report_error_function (in toplev.c) - to better identify location of problem. - Say "(continued):" instead of "(continued:)" for consistency. - - * com.c (ffecom_gen_sfuncdef_): Set and reset new - ffecom_nested_entry_ variable to hold ffesymbol being compiled. - (lang_print_error_function): New function from toplev.c. - Use ffecom_nested_entry_ to help determine which name - and kind-string to print. - (ffecom_expr_intrinsic_): Handle EXIT and FLUSH invocations - with different calling sequences than library functions. - Have SIGNAL and SYSTEM push and pop calltemps, and convert - their return values to the destination type (just in case). - (FFECOM_rttypeINT_): New return type for `int', in case - gcc/f/runtime/libF77/system_.c(system_) is really supposed - to return `int' instead of `ftnint'. - - * com.h (report_error_function): Declare this. - - * equiv.c (ffeequiv_layout_local_): Don't forget to consider - root variable itself as possible "first rooted variable", - else might never set symbol and then crash later. - - * intrin.c (ffeintrin_check_exit_): Change to allow no args - and rename to ffeintrin_check_int_1_o_ for `optional'. - #define ffeintrin_check_exit_ and _flush_ to this new - function, so intrin.def can refer to the appropriate names. - - * intrin.def (FFEINTRIN_impFLUSH): Validate using - ffeintrin_check_flush_ so passing an INTEGER arg is allowed. - - * lex.c (ffelex_file_push_, ffelex_file_pop_): New functions - to manage input_file_stack in gbe. - (ffelex_hash_): Call new functions (instead of doing code). - (ffelex_include_): Call new functions to update stack for - INCLUDE (_hash_ handles cpp output of #include). - -Mon Aug 21 08:09:04 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Makefile.in: Put `-W' in front of every `-Wall', since - 2.7.0 requires that to engage `-Wunused' for parameters. - - * com.c: Mark all parameters as artificial, so - `-W -Wunused' doesn't complain about unused ones (since - there's no way right not to individually specify attributes - like `unused'). - - * proj.h: Don't #define UNUSED if already defined, regardless - of host compiler. - -Sun Aug 20 16:03:56 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * gbe/2.7.0.diff: Regenerate. - - * lang-options.h, lang-specs.h: If not __STDC__ (ANSI C), - avoid doing anything, especially the stringizing in -specs.h. - -Thu Aug 17 03:36:12 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * lang-specs.h: Remove useless optional settings of -traditional, - since -traditional is always set anyway. - -Wed Aug 16 16:56:46 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Make-lang.in (F2C_INSTALL_FLAG, F2CLIBOK): More - control over whether to install f2c-related stuff. - (install-f2c-*): New targets to install f2c-related - stuff in system, not just gcc, directories. - - * com.c: Change calls to ffecom_get_invented_identifier - to use generally more predictable names. - Change calls to build_range_type to ensure consistency - of types of operands. - (ffecom_get_external_identifier_): Change to accept - symbol info, not just text, so it can use f2c flag for - symbol to decide whether to append underscore(s). - (ffecom_get_identifier_): Don't change names if f2c flag - off for compilation. - (ffecom_type_permanent_copy_): Use same type for new max as - used for min. - (ffecom_notify_init_storage): Offline fixups for stand-alone. - - * data.c (ffedata_gather): Explicitly test for common block, - since it's no longer always the case that a local EQUIVALENCE - group has no symbol ptr (it now can, if a user-predictable - "rooted" symbol has been identified). - - * equiv.c: Add some debugging stuff. - (ffeequiv_layout_local_): Set symbol ptr with user-predictable - "rooted" symbol, for giving the invented aggregate a - predictable name. - - * g77.c (append_arg): Allow for 20 extra args instead of 10. - (main): For version-only case, add `-fnull-version' and, unless - explicitly omitted, `-lf2c -lm'. - - * lang-options.h: New "-fnull-version" option. - - * lang-specs.h: Support ".fpp" suffix for preprocessed source - (useful for OS/2, MS-DOS, other case-insensitive systems). - - * stc.c (ffestc_R544_equiv_): Swap way lists are merged so this - is consistent with the order in which lists are built, making - user predictability of invented aggregate name much higher. - - * storag.c, storag.h (FFESTORAG_typeDUMMY): Delete this enum. - - * top.c: Accept, but otherwise ignore, `-fnull-version'. - -Tue Aug 15 07:01:07 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * DOC, INSTALL, PROJECTS: Extensive improvements to documentation. - -Sun Aug 13 01:55:18 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * INSTALL (f77-install-ok): Document the use of this file. - - * Make-lang.in (F77_INSTALL_FLAG): New flag to control - whether to install an `f77' command (based on whether - a file named `f77-install-ok' exists in the source or - build directory) to replace the broken attempt to use - comment lines to avoid installing `f77' (broken in the - sense that it prevented installation of `g77'). - -Mon Aug 7 06:14:26 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * DOC: Add new sections for g77 & gcc compiler options, - source code form, and types, sizes and precisions. - Remove lots of old "delta-version" info, or at least - summarize it. - - * INSTALL: Add info here that used to be in DOC. - Other changes. - - * g77.c (lookup_option, main): Check for --print-* options, - so we avoid adding version-determining stuff. - -Wed Jul 26 15:51:03 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Make-lang.in, Makefile.in (input.j, INPUT_H): New file. - Update dependencies accordingly. - - * bad.c (ffebad_here): Okay to use unknown line/col. - - * compilers.h (@f77-cpp-input): Remove -P option now that - # directives are handled by f771. Update other options - to be more consistent with @c in gcc/gcc.c. Don't run f771 - if -E specified, etc., a la @c. - (@f77): Don't run f771 if -E specified, etc., a la @c. - - * config-lang.in: Avoid use of word "guaranteed". - - * input.j: New file to wrap around gcc/input.h. - - * lex.j: Add support for parsing # directives output by cpp. - (ffelex_cfebackslash_): New function. - (ffelex_cfelex_): New function. - (ffelex_get_directive_line_): New function. - (ffelex_hash_): New function. - (ffelex_include_): Change to not use ffewhere_file_(begin|end). - Also fix bug in pointing to next line (for diagnostics, &c) - following successful INCLUDE. - (ffelex_next_line_): New function that does chunk of code - seen in several places elsewhere in the lexers. - (ffelex_file_fixed): Delay finishing statement until source - line is registered with ffewhere, so INCLUDE processing - picks up the info correctly. - Okay to kill or use unknown line/col objects now. - Handle HASH (#) lines. - Reorder tests for insubstantial lines to put most frequent - occurrences at top, for possible minor speedup. - Some general consolidation of code. - (ffelex_file_free): Handle HASH (#) lines. - Okay to kill or use unknown line/col objects now. - Some general consolidation of code. - (ffelex_init_1): Detect HASH (#) lines. - (ffelex_set_expecting_hollerith): Okay to kill or use unknown - line/col objects now. - - * lex.h (FFELEX_typeHASH): New enum. - - * options-lang.h (-fident, -fno-ident): New options. - - * stw.c (ffestw_update): Okay to kill unknown line/col objects - now. - - * target.h (FFETARGET_okREALQUAD, FFETARGET_okCOMPLEXDOUBLE, - FFETARGET_okCOMPLEXQUAD): #define these appropriately. - - * top.c: Include flag.j wrapper, not flags.h directly. - (ffe_is_ident_): New flag. - (ffe_decode_option): Handle -fident and -fno-ident. - (ffe_file): Replace obsolete ffewhere_file_(begin|end) with - ffewhere_file_set. - - * top.h (ffe_is_ident_, ffe_is_ident, ffe_set_is_ident): - New flag and access functions. - - * where.c, where.h: Remove all tracking of parent file. - (ffewhere_file_begin, ffewhere_file_end): Delete these. - (ffewhere_line_use): Make it work with unknown line object. - -Mon Jul 17 03:04:09 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_sym_transform_): Set DECL_IN_SYSTEM_HEADER - flag for any local vars used as stmtfunc dummies or DATA - implied-DO iter vars, so no -Wunused warnings are produced - for them (a la f2c). - (ffecom_init_0): Do "extern int xargc;" for IARGC() intrinsic. - Warn if target machine not 32 bits, since g77 isn't yet - working on them at all well. - - * expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_data_, - ffeexpr_sym_lhs_extfunc_, ffeexpr_sym_rhs_actualarg_, - ffeexpr_sym_rhs_let_, ffeexpr_paren_rhs_let_): Don't - gratuitously set attr bits that don't apply just - to avoid null set meaning error; instead, use explicit - error flag, and allow null attr set, to - fix certain bugs discovered by looking at this code. - - * g77.c: Major changes to improve support for gcc long options, - to make `g77 -v' report more useful info, and so on. - -Mon Jul 3 14:49:16 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * DOC, com.c, intrin.h, intrin.c, intrin.def, target.h, top.c, - top.h: Add new `unix' group of intrinsics, which includes the - newly added ERF, ERFC, EXIT, plus even newer ABORT, DERF, DERFC, - FLUSH, GETARG, GETENV, SIGNAL, and SYSTEM. - -Tue Jun 27 23:01:05 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * bld.c, bld.h (ffebld_constant_pool, - ffebld_constant_character_pool): Use a single macro (the - former) to access the pool for allocating constants, instead - of latter in public and FFEBLD_CONSTANT_POOL_ internally - in bld.c (which was the only one that was correct before - these changes). Add verification of integrity of certain - heap-allocated areas. - - * com.c (ffecom_overlap_, ffecom_args_overlap_, - ffecom_tree_canonize_ptr_, ffecom_tree_canonize_ref_): New - functions to optimize calling COMPLEX and, someday, CHARACTER - functions requiring additional argument to be passed. - (ffecom_call_, ffecom_call_binop_, ffecom_expr_, - ffecom_expr_intrinsic_): Change calling - sequences to include more info on possible destination. - (ffecom_expr_intrinsic_): Add ERF(), ERFC(), and EXIT() - intrinsic code. - (ffecom_sym_transform_): For assumed-size arrays, set high - bound to highest possible value instead of low bound, to - improve validity of overlap checking. - (duplicate_decls): If olddecl and newdecl are the same, - don't do any munging, just return affirmative. - - * expr.c: Change ffecom_constant_character_pool() to - ffecom_constant_pool(). - - * info.c (ffeinfo_new): Compile this version if not being - compiled by GNU C. - - * info.h (ffeinfo_new): Don't define macro if not being - compiled by GNU C. - - * intrin.c, intrin.def: Add ERF(), ERFC(), and EXIT() intrinsics. - (ffeintrin_check_exit_): New for EXIT() subroutine intrinsic. - - * malloc.c, malloc.h (malloc_verify_*): New functions to verify - integrity of heap-storage areas. - - * stc.c (ffestc_R834, ffestc_R835): Handle possibility that - an enclosing DO won't have a construct name even when the - CYCLE/EXIT does (i.e. without dereferencing NULL). - - * target.c, target.h (ffetarget_verify_character1): New function - to verify integrity of heap storage used to hold character constant. - -Thu Jun 22 15:36:39 1995 Howard Gordon (flash@super.org) - - * stp.h (ffestpVxtcodeIx): Fix typo in typedef for this. - -Mon May 29 15:22:31 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * *: Make all sorts of changes to accommodate upcoming gcc-2.7.0. - I didn't keep track of them, nor just when I made them, nor - when I (much later, probably in early August 1995) modified - them so they could properly handle both 2.7.0 and 2.6.x. - - * com.c (ffecom_expr_power_integer_): Don't expand_start_stmt_expr - if transforming dummy args, because the back end cannot handle - that (it's rejected by the gcc front end), just generate - call to run-time library. - Back out changes in 0.5.15 because more temporaries might be - needed anyway (for COMPLEX**INTEGER). - (ffecom_push_tempvar): Remove inhibitor. - Around start_decl and finish_decl (in particular, arround - expand_decl, which is called by them), push NULL_TREE into - sequence_rtl_expr, an external published by gcc/function.c. - This makes sure the temporary is truly in the function's - context, not the inner context of a statement-valued expression. - (I think the back end is inconsistent here, but am not - interested in convincing the gbe maintainers about this now.) - (pushdecl): Make sure that when pushing PARM_DECLs, nothing - other than them are pushed, as happened for 0.5.15 and which, - if done for other reasons not fixed here, might well indicate - some other problem -- so crash if it happens. - - * equiv.c (ffeequiv_layout_local_): If the local equiv group - has a non-nil COMMON field, it should mean that an error has - occurred and been reported, so just trash the local equiv - group and do nothing. - - * stc.c (ffestc_promote_sfdummy_): Set sfdummy arg state to - UNDERSTOOD so above checking for duplicate args actually - works, and so we don't crash later in pushdecl. - - * ste.c (ffeste_R1001): Set initial value only for VAR_DECLs, - not for, e.g., LABEL_DECLs, which the FORMAT label can be - if it was previously treated as an executable label. - -Sat May 20 01:53:53 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_sym_transform_): For adjustable arrays, - pass high bound through variable_size in case its primaries - are changed (dumb0.f, and this might also improve - performance so it approaches f2c|gcc). - -Fri May 19 11:00:36 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.15 released. - - * com.c (ffecom_expr_power_integer_): Push temp vars - before expanding a statement expression, since that seems - to cause temp vars to be "forgotten" after the end of the - expansion in the back end. Disallow more temp-var - pushing during such an expansion, just in case. - (ffecom_push_tempvar): Crash if a new variable needs to be - pushed but cannot be at this point (should never happen). - -Wed May 17 12:26:16 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * expr.c (ffeexpr_collapse_convert): Add code to convert - LOGICAL to CHARACTER. Reject conversion of REAL or COMPLEX - to CHARACTER entirely, as it cannot be supported with all - configurations. - - * target.h, target.c (ffetarget_convert_character1_logical1): - New function. - -Sun May 14 00:00:09 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_do_entry_, ffecom_gen_sfuncdef_, - ffecom_start_progunit_, ffecom_sym_transform_, - ffecom_init_0, start_function): Changes to have REAL - external functions return same type as DOUBLE PRECISION - external functions when -ff2c is in force; while at it, - some code cleanups done. - - * stc.c (ffestc_R547_item_object): Disallow array declarator - if one already exists for symbol. - - * ste.c (ffeste_R1227): Convert result variable to type - of function result as seen by back end (e.g. for when REAL - external function actually returns result as double). - - * target.h (FFETARGET_defaultFIXED_LINE_LENGTH): New - macro for default for -ffixed-line-length-N option. - - * top.c (ffe_fixed_line_length_): Initialize this to new - target.h macro instead of constant 72. - -Tue May 9 01:20:03 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * lex.c (ffelex_send_token_): If sending CHARACTER token with - null text field, put a single '\0' in it and set length/size - fields to 0 (to fix 950508-0.f). - (ffelex_image_char_): When setting ffelex_bad_line_ to TRUE, - always "close" card image by appending a null char and setting - ffelex_card_length_. As part of this, append useful text - to identify the two kinds of problems that involve this. - (ffelex_file_fixed): Reset ffelex_bad_line_ to FALSE after - seeing a line with invalid first character (fixes 950508-1.f). - If final nontab column is zero, assume tab seen in line. - (ffelex_card_image_): Always make this array 8 characters - longer than reflected by ffelex_card_size_. - (ffelex_init_1): Get final nontab column info from top instead - of assuming 72. - - * options-lang.h: Add -ffixed-line-length- prefix. - - * top.h: Add ffe_fixed_line_length() and _set_ version, plus - corresponding extern. - - * top.c: Handle -ffixed-line-length- option prefix. - -Fri Apr 28 05:40:25 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.14 released. - - * Make-lang.in: Add assert.j. - - * Makefile.in: Add assert.j. - - * assert.j: New file. - -Thu Apr 27 16:24:22 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * bad.h (ffebad_severity): New function. - - * bad.c (ffebad_severity): New function. - - * bad.def (FFEBAD_OPEN_INCLUDE): Change severity from SEVERE - to FATAL, since processing continues, and that seems fine. - - * com.c: Add facility to handle -I. - (ffecom_file, ffecom_close_include, ffecom_open_include, - ffecom_decode_include_option): New global functions for -I. - (ffecom_file_, ffecom_initialize_char_syntax_, - ffecom_close_include_, ffecom_decode_include_option_, - ffecom_open_include_, append_include_chain, open_include_file, - print_containing_files, read_filename_string, file_name_map, - savestring): New internal functions for -I. - - * compilers.h: Pass -I flag(s) to f771 (via "%{I*}"). - - * lex.c (ffelex_include_): Call ffecom_close_include - to close include file, for its tracking needs for -I, - instead of using fclose. - - * options-lang.h: Add -I prefix. - - * parse.c (yyparse): Call ffecom_file for main input file, - so -I handling works (diagnostics). - - * std.c (ffestd_S3P4): Have ffecom_open_include handle - opening and diagnosing errors with INCLUDE files. - - * ste.c (ffeste_begin_iterdo_): Use correct algorithm for - calculating # of iterations -- mathematically similar but - computationally different algorithm was not handling cases - like "DO I=6,5,2" correctly, because (5-6)/2+1 => 1, not 0. - - * top.c (ffe_decode_option): Allow -I, restructure a bit - for clarity and, maybe, speed. - -Mon Apr 17 13:31:11 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * g77.c: Remove -lc, turns out not all systems has it, but - leave other changes in for clarity of code. - -Sun Apr 16 21:50:33 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_expr_): Implement ARRAY_EXPR as INDIRECT_REF - of appropriate PLUS_EXPRs of ptr_to_expr of array, to see - if this generates better code. (Conditional on - FFECOM_FASTER_ARRAY_REFS.) - -Sun Apr 16 00:22:48 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Make-lang.in (F77_SRCS): Remove g77.c, since it doesn't - contribute to building f771. - - * Makefile.in (dircheck): Remove/replace with f/Makefile, because - phony targets that are referenced in other real targets get run - when those targets are specified, which is a waste of time (e.g. - when rebuilding and only g77.c has changed, f771 was being linked - anyway). - - * g77.c: Include -lc between -lf2c and -lm throughout. - - * implic.c (ffeimplic_establish_symbol): If -Wimplicit, warn if - implicit type given to symbol. - - * lex.c (ffelex_include_): Don't gratuitously increment line - number here. - - * top.h, top.c (ffe_is_warn_implicit_): New global variable and - related access macros. - (ffe_decode_option): Handle -W options, including -Wall and - -Wimplicit. - - * where.c (ffewhere_line_new): Don't muck with root line (was - crashing on null input since lexer changes over the past week - or so). - -Thu Apr 13 16:48:30 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_init_0): Register built-in functions for cos, - sin, and sqrt. - (ffecom_tree_fun_type_double): New variable. - (ffecom_expr_intrinsic_): Update f2c input and output files - to latest version of f2c (no important g77-related changes - noted, just bug fixes to f2c and such). - (builtin_function): New function from c-decl.c. - - * com-rt.def: Refer to built-in functions for cos, sin, and sqrt. - -Thu Apr 13 10:25:09 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_expr_intrinsic_): Convert 0. to appropriate - type to keep DCMPLX(I) from crashing the compiler. - (ffecom_expr_): Don't convert result from ffecom_tree_divide_. - (ffecom_tree_divide_): Add tree_type argument, have all callers - pass one, and don't convert right-hand operand to it (this is - to make this new function work as much like the old in-line - code used in ffecom_expr_ as possible). - - * lex.c: Maintain lineno and input_filename the way the gcc - lexer does. - - * std.c (ffestd_exec_end): Save and restore lineno and - input_filename around the second pass, which sets them - appropriately for each saved statement. - -Wed Apr 12 09:44:45 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_expr_power_integer_): New function. - (ffecom_expr_): Call new function for power op with integer second - argument, for generating better code. Also replace divide - code with call to new ffecom_tree_divide_ function. - Canonicalize calls to ffecom_truth_value(_invert). - (ffecom_tree_divide_): New function. - -Wed Apr 5 14:15:44 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * lex.c: Change to allocate text for tokens only when actually - needed, which should speed compilation up somewhat. - Change to allow INCLUDE at any point where a statement - can end, i.e. in ffelex_finish_statement_ or when a SEMICOLON - token is sent. - Remove some old, obsolete code. - Clean up layout of entire file to improve formatting, - readability, etc. - (ffelex_set_expecting_hollerith): Remove include argument. - -Fri Mar 31 23:19:08 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * bad.h, bad.c (ffebad_start_msg, ffebad_start_msg_lex): - New functions to generate arbitrary messages. - (FFEBAD_severityPEDANTIC): New severity, to correspond - to toplev's pedwarn() function. - - * lex.c (ffelex_backslash_): New function to implement - backslash processing. - (ffelex_file_fixed, ffelex_file_free): Implement new - backslash processing. - - * std.c (ffestd_R1001dump_): Don't assume CHARACTER and - HOLLERITH tokens stop at '\0' characters, now that backslash - processing is supported -- use their advertised lengths instead, - and double up the '\002' character for libf2c. - -Mon Mar 27 17:10:33 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_init_local_zero_): Implement -finit-local-zero. - (ffecom_sym_transform_): Same. - (ffecom_transform_equiv_): Same. - - * options-lang.h: Add -f(no-)(init-local-zero,backslash,ugly-init). - - * stb.c (ffestb_V020): Reject "TYPEblah(...", which might be - an array assignment. - - * target.h, top.h, top.c: Implement -finit-local-zero. - -Fri Mar 24 19:56:22 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Make-lang.in, Makefile.in: Remove conf-proj(.in) and - proj.h(.in) rules, plus related config.log, config.cache, - and config.status stuff. - - * com.c (ffecom_init_0): Change messages when atof(), bsearch(), - or strtoul() do not work as expected in the start-up test. - - * conf-proj, conf-proj.in: Delete. - - * lex.c (ffelex_file_fixed): Allow f2c's '&' in column 1 - to mean continuation line. - - * options-lang.h: New file, #include'd by ../toplev.c. - - * proj.h.in: Rename back to proj.h. - - * proj.h (LAME_ASSERT): Remove. - (LAME_STDIO): Remove. - (NO_STDDEF): Remove. - (NO_STDLIB): Remove. - (NO_BSEARCH): Remove auto detection, rename to !FFEPROJ_BSEARCH. - (NO_STRTOUL): Remove auto detection, rename to !FFEPROJ_STRTOUL. - (USE_HOST_LIMITS): Remove (maybe still needed by stand-alone?). - (STR, STRX): Do only ANSI C definitions. - -Mon Mar 13 10:46:13 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * BUGS: Add item about g77 requiring gcc to compile it. - - * NEWS: New file listing user-visible changes in the release. - - * PROJECTS: Update to include a new item or two, and modify - or delete items that are addressed in this or previous releases. - - * bad.c (ffebad_finish): Don't crash if missing string &c, - just substitute obviously distressed string "[REPORT BUG!!]" - for cases where the message/caller are fudgy. - - * bad.def: Clean up error messages in a major way, add new ones - for use by changes in target.c. - - * com.c (ffecom_expr_): Handle opANY in opCONVERT. - (ffecom_let_char_): Disregard destinations with ERROR_MARK. - (ffecom_1, ffecom_1_fn, ffecom_2, ffecom_2s, ffecom_3, - ffecom_3s, &c): Check all inputs for error_mark_node. - (ffecom_start_progunit_): Don't transform all symbols - in BLOCK DATA, since it never executes, and it is silly - to, e.g., generate all the structures for NAMELIST. - (ffecom_char_length_expr_): Rename to ffecom_intrinsic_len_. - (ffecom_intrinsic_ichar_): New function to handle ICHAR of - arbitrary expression with possible 0-length operands. - (ffecom_expr_intrinsic_): Use ffecom_intrinsic_char_. - For MVBITS, set tree_type to void_type_node. - (ffecom_start_progunit_): Name master function for entry points - after primary entry point so users can easily guess it while - debugging. - (ffecom_arg_ptr_to_expr): Change treatment of Hollerith, - Typeless, and %DESCR. - (ffecom_expr_): Change treatment of Hollerith. - - * data.c (ffedata_gather_): Handle opANY in opCONVERT. - - * expr.c (ffeexpr_token_apostrophe_): Issue FFEBAD_NULL_CHAR_CONST - warning as necessary. - (ffeexpr_token_name_rhs_): Set context for args to intrinsic - so that assignment-like concatenation is allowed for ICHAR(), - IACHAR(), and LEN() intrinsics. - (ffeexpr_reduced_*_): Say "an array" instead of "an entity" in - diagnostics, since it's more informative. - (ffeexpr_finished_): For many contexts, check for null expression - and array before trying to do a conversion, to avoid redundant - diagnostics. - - * g77.1: Fix typo for preprocessed suffix (.F, not .f). - - * global.c (ffeglobal_init_common): Warn if initializing - blank common. - (ffeglobal_pad_common): Enable code to warn if initial - padding needed. - (ffeglobal_size_common): Complain if enlarging already- - initialized common, since it won't work right anyway. - - * intrin.c: Add IMAG() intrinsic. - (ffeintrin_check_loc_): Allow opSUBSTR in LOC(). - - * intrin.def: Add IMAG() intrinsic. - - * lex.c: Don't report FFEBAD_NULL_CHAR_CONST errors. - - * sta.c, sta.h, stb.c: Changes to clean up error messages (see - bad.def). - - * stb.c (ffestb_R100113_): Issue FFEBAD_NULL_CHAR_CONST - warning as necessary. - - * stc.c (ffestc_shriek_do_): Don't try to reference doref_line - stuff in ANY case, since it won't be valid. - (ffestc_R1227): Allow RETURN in main program unit, with - appropriate warnings/errors. - (ffestc_subr_format_): Array of any type is a CHAREXPR (F77 C5). - - * ste.c (ffeste_begin_doiter_): Couple of fixes to accurately - determine if loop never executes. - - * target.c (ffetarget_convert_*_hollerith_): Append spaces, - not zeros, to follow F77 Appendix C, and to warn when - truncation of non-blanks done. - (ffetarget_convert_*_typeless): Rewrite to do typeless - conversions properly, and warn when truncation done. - (ffetarget_print_binary, ffetarget_print_octal, - ffetarget_print_hex): Rewrite to use new implementation of - typeless. - (ffetarget_typeless_*): Rewrite to use new implementation - of typeless, and to warn about overflow. - - * target.h (ffetargetTypeless): New implementation of - this type. - - * type.h, type.c (ffetype_size_typeless): Remove (incorrect) - implementation of this function and its extern. - -Sun Mar 5 18:46:42 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * BUGS: Clarify that constant handling would also fix lack of - adequate IEEE-754/854 support to some degree, and typeless - and non-decimal constants. - - * com.c (ffecom_type_permanent_copy_): Comment out to avoid - warnings. - (duplicate_decls): New function a la gcc/c-decl.c. - (pushdecl): Use duplicate_decls to decide whether to return - existing decl or new one, instead of always returning existing - decl. - (ffecom_expr_): opPERCENT_LOC now supports CHARACTER arguments. - (ffecom_init_0): Give f2c I/O code 0 for basictypeANY/kindtypeANY. - (ffecom_sym_transform_): For adjustable arrays, pass low bound - through variable_size in case its primaries are changed (950302-1.f). - - * com.h: More decls that belong in tree.h &c. - - * data.c (ffedata_eval_integer1_): Fix opPAREN case to not - treat value of expression as an error code. - - * expr.c (ffeexpr_finished_): Allow opSUBSTR in contextLOC case. - - * proj.c: Add "const" as appropriate. - -Mon Feb 27 10:04:03 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * bad.def (FFEBAD_BAD_SUBSTR): Fix bad grammar in message. - -Fri Feb 24 16:21:31 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.13 released. - - * INSTALL: Warn that f/zzz.o will compare differently between - stages, since it puts the __TIME__ macro into a string. - - * com.c (ffecom_sym_transform_): Transform kindFUNCTION/whereDUMMY - to pointer-to-function, not function. - (ffecom_expr_): Use ffecom_arg_ptr_to_expr instead of - ffecom_char_args_ to handle comparison between CHARACTER - types, so either operand can be a CONCATENATE. - (ffecom_transform_common_): Set size of initialized common area - to global (largest-known) size, even though size of init might - be smaller. - - * equiv.c (ffeequiv_offset_): Check symbol info for ANY. - - * expr.c (ffeexpr_find_close_paren_, ffeexpr_nil_*): New functions - to handle following the contour of a rejected expression, so - statements like "PRINT(I,I,I)=0" don't cause the PRINT statement - code to get the second passed back to it as if there was a - missing close-paren before it, the comma causing the PRINT code - to confirm the statement, resulting in an ambiguity vis-a-vis - the let statement code. - Use the new ffecom_find_close_paren_ handler when an expected - close-paren is missing. - (ffeexpr_isdigits_): New function, use in all places that - currently use isdigit in repetitive code. - (ffeexpr_collapse_symter): Collapse to ANY if init-expr is ANY, - so as to avoid having symbol get "transformed" if used to - dimension an array. - (ffeexpr_token_real_, ffeexpr_token_number_real_): Don't issue - diagnostic about exponent, since it'll be passed along the - handler path, resulting in a diagnostic anyway. - (ffeexpr_token_apos_char_): Use consistent handler path - regardless of whether diagnostics inhibited. - (ffeexpr_token_name_apos_name_): Skip past closing quote/apos - even if not a match or other diagnostic issued. - (ffeexpr_sym_impdoitem_): Exec-transition local SEEN symbol. - - * lex.c (ffelex_image_char_): Set ffelex_saw_tab_ if TAB - seen, not if anything other than TAB seen! - - * stc.c (ffestc_R537_item): If source is ANY but dest isn't, - set dest symbol's init expr to ANY. - (ffestc_R501_attrib, ffestc_R522, ffestc_R522start): Complain - about conflict between "SAVE" by itself and other uses of - SAVE only in pedantic mode. - - * ste.c (ffeste_R1212): Fix loop over labels to always - increment caseno, to avoid pushcase returning 2 for duplicate - values when one of the labels is invalid. - -Thu Feb 23 12:42:04 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.12 released. - - * Make-lang.in (f77.install-common): Add "else true;" before outer - "fi" per Makefile.in patch. - - * Makefile.in (dircheck): Add "else true;" before "fi" per - patch from chs1pm@surrey.ac.uk. - - * com.c (ffecom_push_tempvar): If type desired is ERROR_MARK, - return error_mark_node, to avoid crash that results from - making a VAR_DECL with error_mark_node as its type. - - * ste.c (ffeste_begin_iterdo_): Convert itercount to INTEGER - anytime calculation of number of iterations ends up with type - other than INTEGER (e.g. DOUBLE PRECISION, REAL). - -Thu Feb 23 02:48:38 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.11 released. - - * DOC: Explain -fugly-args. - - * bad.def (FFEBAD_ACTUALARG): Explain -fugly-args and how to - rewrite code to not require it. - - * com.c (ffecom_vardesc_): Handle negative type code, just in - case. - (ffecom_arg_ptr_to_expr): Let ffecom_expr handle hollerith - and typeless constants (move code to ffecom_constantunion). - (ffecom_constantunion): Handle hollerith and typeless constants. - - * expr.c (ffecom_finished_): Check -fugly-args in actual-arg - context where hollerith/typeless provided. - - * intrin.def (FFEINTRIN_genDFLOAT): Add FFEINTRIN_specDFLOAT. - (FFEINTRIN_specDFLOAT): Add as f2c intrinsic. - - * target.h (ffetarget_convert_real[12]_integer, - ffetarget_convert_complex[12]_integer): Pass -1 for high integer - value if low part is negative. - (FFETARGET_defaultIS_UGLY_ARGS): New macro. - - * top.c (ffe_is_ugly_args_): New variable. - (ffe_decode_option): Handle -fugly-args and -fno-ugly-args. - - * top.h (ffe_is_ugly_args_, ffe_is_ugly_args(), - ffe_set_is_ugly_args()): New variable and macros. - -Thu Feb 23 02:48:38 1995 Pedro A M Vazquez (vazquez@iqm.unicamp.br) - - * g77.c (sys_errlist): Use const for __FreeBSD__ systems - as well. - -Wed Feb 22 13:33:43 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.10 released. - - * CREDITS: Add Rick Niles. - - * INSTALL: Note how to get around lack of makeinfo. - - * Make-lang.in (f/proj.h): Remove # comment. - - * Makefile.in (f/proj.h): Remove # comment. - - * com.c (ffecom_expr_): Simplify opFUNCREF/opSUBRREF conversion. - (ffecom_sym_transform_): For whereGLOBAL and whereDUMMY - kindFUNCTION, use ffecom_tree_fun_type[][] only for non-constant - (non-statement-function) f2c functions. - (ffecom_init_0): ffecom_tree_fun_type[][] and _ptr_to_*_* are - really f2c-interface arrays, so use base type void for COMPLEX - (like CHARACTER). - -Tue Feb 21 19:01:18 1995 Dave Love - - * Make-lang.in (f77.install-common): Expurgate the test for and - possible installation of f2c in line with elsewhere. Seems to have - been missing a semicolon anyhow! - -Tue Feb 21 11:45:25 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.9 released. - - * Make-lang.in (f/proj.h): touch file to register update, - because the previous commands won't necessarily modify it. - - * Makefile.in (f/proj.h): touch file to register update, - because the previous commands won't necessarily modify it. - - * Makefile.in (f/str-*.h, f/str-*.j): Explicitly specify - output file names, so these targets go in build, not source, - directory. - - * bits.c, bits.h: Switch to valid ANSI C replacement for - ARRAY_ZERO. - - * com.c (ffecom_expr_): Add assignp arg to support ASSIGN better. - If assignp is TRUE, use different tree for FFEBLD_opSYMTER case. - (ffecom_sym_transform_assign_): New function. - (ffecom_expr_assign): New function. - (ffecom_expr_assign_w): New function. - - * com.c (ffecom_f2c_make_type_): Do make_signed_type instead - of make_unsigned_type throughout. - - * com.c (ffecom_finish_symbol_transform_): Expand scope of - commented-out code to probably produce faster compiler code. - - * com.c (ffecom_gen_sfuncdef_): Push/pop calltemps so - COMPLEX works right. - Remove obsolete comment. - - * com.c (ffecom_start_progunit_): If non-multi alt-entry - COMPLEX function, primary (static) entry point returns result - directory, not via extra arg -- to agree with ffecom_return_expr - and others. - Pretransform all symbols so statement functions are defined - before any code emitted. - - * com.c (ffecom_finish_progunit): Don't posttransform all - symbols here -- pretransform them instead. - - * com.c (ffecom_init_0): Don't warn about possible ASSIGN - crash, as this shouldn't happen now. - - * com.c (ffecom_push_tempvar): Fix to handle temp vars - pushed while context is a statement (nested) function, and - add appropriate commentary. - - * com.c (ffecom_return_expr): Check TREE_USED to determine - where return value is unset. - - * com.h (struct _ffecom_symbol_): Add note about length_tree - now being used to keep tree for ASSIGN version of symbol. - - * com.h (ffecom_expr_assign, ffecom_expr_assign_rw): New decls. - (error): Add this prototype for back-end function. - - * fini.c (main): Grab input, output, and include names - directly off the command line instead of making the latter - two out of the first. - - * lex.c: Improve tab handling for both fixed and free source - forms, and ignore carriage-returns on input, while generally - improving the code. ffelex_handle_tab_ has been renamed and - reinvented as ffelex_image_char_, among other things. - - * malloc.c, malloc.h: Switch to valid ANSI C replacement for - ARRAY_ZERO, and kill the full number of bytes in pools and - areas. - - * proj.h.in (ARRAY_ZERO, ARRAY_ZERO_SIZE): Remove. - - * ste.c (ffeste_io_cilist_, ffeste_io_icilist_, ffeste_R838, - ffeste_R839): Issue diagnostic if a too-narrow variable used in an - ASSIGN context despite changes to this code and code in com.c. - - * where.c, where.h: Switch to valid ANSI C replacement for - ARRAY_ZERO. - -Fri Feb 17 03:35:19 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.8 released. - - * INSTALL: In quick-build case, list g77 target first so g77 - gets installed. Also, explain that gcc gets built and installed - as well, even though this isn't really what we want (and maybe - we'll find a way around this someday). - -Fri Feb 17 02:35:41 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.7 released. - - * Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Remove - ../ prefix in front of .h files, since they're in the cd. - -Fri Feb 17 01:50:48 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.6 released. - -Thu Feb 16 20:26:54 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * ../README.g77: Remove description of g77 as "not-yet-published". - - * CREDITS: More changes. - - * Make-lang.in (G77STAGESTUFF): Remove cktyps stuff. - - * Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Don't - prefix gcc dir with $(srcdir) since these don't live there, - they are created in the build dir by gcc's configure. Add - a note explaining what these macros are about. - Update dependencies via deps-kinda. - - * README.NEXTSTEP: Credit Toon, and per his request, add his - email address. - - * com.h (FFECOM_DETERMINE_TYPES): #include "config.j". - - * config.j, convert.j, flags.j, hconfig.j, rtl.j, tconfig.j, - tm.j, tree.j: Don't #include if already done. - - * convert.j: #include "tree.j" first, as convert.h clearly depends - on trees being defined. - - * rtl.j: #include "config.j" first, since there's some stuff - in rtl.h that assumes it has been #included. - - * tree.j: #include "config.j" first, or real.h makes inconsistent - decision about return type of ereal_atof, leading to bugs, and - because tree.h/real.h assume config.h already included. - -Wed Feb 15 14:40:20 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.5 released. - - * Copyright notices updated to be FSF-style. - - * INSTALL: Some more clarification regarding building just f77. - - * Make-lang.in (F77_SRCS): Update wrt changing some .h to .j. - (install-libf77): Fix typo in new parenthetical note. - - * Makefile.in (f/*.o): Update. - (CONFIG_H, CONVERT_H, FLAGS_H, GLIMITS_H, HCONFIG_H, RTL_H, - TCONFIG_H, TM_H, TREE_H): Update/new symbols. - (deps-kinda): More fixes wrt changing some .h to .j. - Document and explain this rule a bit better. - Accommodate changes in output of gcc -MM. - - * *.h, *.c: Change #include's so proj.h not assumed to #include - malloc.h or config.h (now config.j), and so new .j files are - used instead of old .h ones. - - * com.c (ffecom_init_0): Use FLOAT_TYPE_SIZE for f2c's - TYLONG/TYLOGICAL type codes, to get g77 working on Alpha. - - * com.h: Make all f2c-related integral types "int", not "long - int". - - * config.j, convert.j, flags.j, glimits.j, hconfig.j, rtl.j, - tconfig.j, tm.j, tree.j: New files wrapping around gbe - .h files. - - * config.h, convert.h, flags.h, glimits.h, hconfig.h, rtl.h, - tconfig.h, tm.h, tree.h: Deleted so new .j files - can #include the gbe files directly, instead of using "../", - and thus do better with various kinds of builds. - - * proj.h: Delete unused NO_STDDEF and related stuff. - -Tue Feb 14 08:28:08 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * BUGS: Remove item #12, cross-compiling & autoconf scripts - reportedly expected to work properly (according to d.love). - - * INSTALL: Add explanation of d.love's patch to config-lang.in. - Add explanation of how to install just g77 when gcc already installed. - Add note about usability of "-Wall". Add note about bug- - reporting. - - * Make-lang.in ($(srcdir)/f/conf-proj): Add comment about why - conf-proj.out. - (install-libf77): Echo parenthetical note to user about how to do - just the (aborted) libf2c installation. - (deps-kinda): Update to work with new configuration/build stuff. - - * bad.c (ffebad_finish): Put capitalized "warning:" &c message - as prefix on any diagnostic without pointers into source. - - * bad.def (FFEBAD_TOO_BIG_INIT): Add this warning message. - - * config-lang.in: Add Dave Love's patch to catch case where - back-end patches not applied and abort configuration. - - * data.c (ffedata_gather_, ffedata_value_): Warn when about - to initialize a large aggregate area, due to design flaw resulting - in too much time/space used to handle such cases. - Use COMMON area name, and first notice of symbol, for multiple- - initialization diagnostic, instead of member symbol and unknown - location. - (FFEDATA_sizeTOO_BIG_INIT_): New macro per above. - -Mon Feb 13 13:54:26 1995 Dave Love - - * Make-lang.in (F77_SRCS): Use $(srcdir)/f/proj.h.in, not - $(srcdir)/f/proj.h for build outside srcdir. - -Sun Feb 12 13:37:11 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * ../README.g77: Clarify procedures for unpacking, add asterisks - to mark important things the user must do. - - * Fix dates in/add dates to ../README.g77, BUGS, CREDITS, DOC, - INSTALL, PROJECTS, README. - -Sun Feb 12 00:26:10 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.4 released. - - * Make-lang.in (f/proj.h): Reproduce this rule here from - Makefile.in. - ($(srcdir)/f/conf-proj): Put autoconf's stdout in temp file - conf-proj.out, then mv to conf-proj only if successful, so - conf-proj not touched if autoconf not installed. - - * Makefile.in ($(srcdir)/conf-proj): See Make-lang.in's similar - rule. - -Sat Feb 11 20:56:02 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * BUGS: Clarify some bugs. - - * DOC: Many improvements and fixes. - - * README: Move bulk of text, edited, to ../README.g77, and - replace with pointer to that file. - - * com.c (ffecom_init_0): Comment out warning about sizeof(ftnlen) - as per ste.c change. Add text about ASSIGN to help user understand - what is being warned about. - - * conf-proj.in: Fix typos in comments. - - * proj.h.in: Add ARRAY_ZERO_SIZE to parallel malloc.h's version, - in case it proves to be needed. - - * ste.c: Comment out assertions requiring sizeof(ftnlen) >= - sizeof(char *), in the hopes that overflow will never happen. - (ffeste_R838): Change assertion to fatal() with at least - partially helpful message. - -Sat Feb 11 12:38:00 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * com.c (ffecom_vardesc_): Crash if typecode is -1. - - * ste.c (ffeste_io_dolio_): Crash if typecode is -1. - -Sat Feb 11 09:51:57 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * ste.c: In I/O code tests for item arrayness, sort of revert - to much earlier code that tests original exp, but also check - in newer way just in case. Newer way alone treated FOO(1:40) - as an array, not sure why older way alone didn't work, but I - think maybe it was when diagnosed code was involved, and - since there are now checks for error_mark_node, maybe the old - way alone would work. But better to be safe; both original - ffebld exp _and_ the transformed tree must indicate an array - for the size-determination code to be used, else just 1/2 elements - assumed. And this text is for EMACS: (foo at bar). - -Fri Feb 10 11:05:50 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * ste.c: In many cases, surround statement-expansion code - with ffecom_push_calltemps () and ffecom_pop_calltemps () - so COMPLEX-returning functions can have temporaries pushed - in "auto-pop" mode and have them auto-popped at the end of - the statement. - -Wed Feb 8 14:35:10 1995 Dave Love - - * runtime/f2c.h.in (ftnlen, ftnint): Make same size as integer. - - * runtime/libI77/err.c (f_init): Thinko in MISSING_FILE_ELEMS - conditional. - * runtime/libI77/wrtfmt.c (mv_cur): Likewise. - * runtime/libI77/wsfe.c (x_putc): Likewise. - - * runtime/libF77/signal_.c (signal_): Return 0 (this is a - subroutine). - - * Makefile.in (f/proj.h): Depend on com.h. - * Make-lang.in (include/f2c.h): Likewise (and proj.h). - (install-libf77): Also install f2c.h. - - * runtime/libI77/Makefile.in (*.o): Add f2c.h dependency. - * runtime/libF77/Makefile.in: Likewise. - -Wed Feb 8 13:56:47 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * stc.c (ffestc_R501_item): Don't reset kind/where to NONE when - setting basictype/kindtype info for symbol, or especially - its function/result twin, because kind/where might not be NONE. - -Tue Feb 7 14:47:26 1995 Dave Love - - * Make-lang.in (include/f2c.h:): Set shell variable src more - robustly (independent of whether srcdir is relative or absolute). - * Makefile.in (f/proj.h:): Likewise. - - * conf-proj.in: Check need for LAME_ASSERT. Fix indentation in - check for LAME_STDIO (cosmetic only with ANSI C). - - * com.h: Extra ...SIZE stuff taken from com.c. - - * com.c (FFECOM_DETERMINE_TYPES): Define before including com.h. - (BITS_PER_WORD etc.) Remove and use conditional definitions to com.h. - - * runtime/configure.in: #define FFECOM_DETERMINE_TYPES for com.h in - f2c type determination. - - * tm.h: Remove (at least pro tem) because of relative path and use - top-level one. - - * Make-lang.in (include/f2c.h:): Set shell variable src more - robustly (independent of whether srcdir is relative or absolute). - * Makefile.in (f/proj.h:): Likewise. - -Mon Feb 6 19:58:32 1995 Dave Love - - * g77.c (append_arg): Use K&R declaration for, e.g. SunOS4 build. - -Fri Feb 3 20:33:14 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * g77.c (main): Treat -l like filename in terms of -x handling. - Rewrite arglist mechanism for ease of maintenance. - Make sure every -lf2c is followed by -lm and vice versa. - - * Make-lang.in: Put complete list of sources in F77_SRCS def - so changing a .h file, for example, causes rebuild. - - * Makefile.in: Change test for nextstep to m68k-next-nextstep* so - all versions of nextstep on m68k get the necessary flag. - -Fri Feb 3 19:10:32 1995 Dave Love - - * INSTALL: Note about possible conflict with existing libf2c.a and - f2c.h. - - * Make-lang.in (f77.distclean): Tidy and move deletion of - f/config.cache to mostlyclean. - (install-libf77): Test for $(libdir)/libf2c.* and barf if found - unless F2CLIBOK defined. - - * runtime/Makefile.in (all): Change path to include directory (and - elsewhere). - (INCLUDES): Remove (unused/misleading). - (distclean): Include f2c.h. - (clean): Include config.cache. - - * runtime/libF77/Makefile.in (.SUFFIXES): Correct typo. - (ALL_CFLAGS) Fix up include search path to find f2c.h in top level - includes always. - (all): Depend on f2c.h. - * runtime/libI77/Makefile.in (.SUFFIXES): Likewise. - -Thu Feb 2 17:17:06 1995 Dave Love - - * INSTALL: Note about --srcdir and GNU make. - - * runtime/f2c.h.in (Pad_UDread, ALWAYS_FLUSH): Reomve the #defines - per below. - - * runtime/configure.in (Pad_UDread, ALWAYS_FLUSH): Define these - here, not in f2c.h as they'r eonly relevant for building. - * runtime/configure: Regenerated. - - * config-lang.in: Warn about using GNU make outside source tree - since I can't get Irix5 or SunOS4 makes to work in this case. - - * Makefile.in (VPATH): Don't set it here. - (srcdir): Make it the normal `.' (overridden) at top level. - (all.indirect): New dependency `dircheck'. - (f771): Likewise - (dircheck): New target for foolproofing. - (f/proj.h:): Change finding source. - (CONFIG_H): Don't use this as the relative path in the include loses - f builddir != srcdir. - - * config.h: Remove per CONFIG_H change above. - - * Make-lang.in (F77_FLAGS_TO_PASS): Remove GCC_FOR_TARGET. - (f771:): Pass VPATH, srcdir to sub-make. - (f/Makefile:): New target. - (stmp-int-hdrs): new variable for cheating build. - (f77-runtime:): Alter GCC_FOR_TARGET treatment. - (include/f2c.h f/runtime/Makefile:) Likewise. - (f77-runtime-unsafe:): New (cheating) target. - -Thu Feb 2 12:09:51 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * BUGS: Update regarding losing EQUIVALENCE members in -g, and - regarding RS/6000 problems in the back end. - - * CREDITS: Make some changes as requested. - - * com.c (ffecom_member_trunk_): Remove unused static variable. - (ffecom_finish_symbol_transform_): Improve comments. - (ffecom_let_char_): Fix size of temp address-type var. - (ffecom_member_phase2_): Try fixing problem fixed by change - to ffecom_transform_equiv_ (f_m_p2_ function currently not used). - (ffecom_transform_equiv_): Remove def of unused static variable. - Comment-out use of ffecom_member_phase2_, until problems with - back end fixed. - (ffecom_push_tempvar): Fix assertion to not crash okay code. - - * com.h: Remove old, commented-out code. - Add prototype for warning() in back end. - - * ste.c (ffeste_io_dofio_, ffeste_io_dolio_, ffeste_io_douio_, - ffeste_io_icilist_): Check correct type of variable for arrayness. - -Sun Jan 29 14:41:42 1995 Dave Love - - * BUGS: Remove references to my configure bugs; add another. - - * runtime/Makefile.in (AR_FLAGS): Provide default value. - - * runtime/f2c.h.in (integer, logical): Take typedefs from - F2C_INTEGER configuration parameter again. - (NON_UNIX_STDIO): don't define it. - - * runtime/configure.in: Bring type checks for f2c.h in line with - com.h. - (MISSING_FILE_ELEMS): New variable to determine whether the relevant - elements of the FILE struct exist, independent of NON_UNIX_STDIO. - * runtime/libI77/{err,wrtfmt,wsfe}.c (MISSING_FILE_ELEMS): Use new - parameter. - - * config-lang.in: Comment out more of f2c rules (c.f. Make-lang.in). - (This stuff is relevant iff you gave configure --enable-f2c.) - Create f/runtime directory tree iff not building in source - directory. - - * Makefile.in (srcdir): Append slash so we get the right value when - not building in the source directory. This is a consequence of not - building the `f' sources in `f'. - (VPATH): Override configure's value for reasons above. - (f/proj.h f/conf-proj): New rules to build proj.h by - autoconfiguration. - - * proj.h: Rename to proj.h.in for autoconfiguration. - * proj.h.in: New as above. - * conf-proj conf-proj.in: New files for autoconfiguration. - - * Make-lang.in (include/f2c.h f/runtime/Makefile:): Change the order - of setting the sh variables so that the right GCC_FOR_TARGET is - used. - (f77.*clean:) Add products of new configuration files and make sure - all the *clean targets do something (unlike the ones in - cp/Make-lange.in). - - * com.h (FFECOM_f2cINTEGER, FFECOM_f2cLOGICAL): Define as long or - int appropriately to ensure sizeof(real) == sizeof(integer). - - * PROJECTS: Library section. - - * runtime/libI77/endfile.c: Don't #include sys/types.h conditional - on NON_UNIX_STDIO since rawio.h needs size_t. - * runtime/libI77/uio.c: #include for size_t if not - KR_headers. - -Wed Jan 25 03:31:51 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.3 released. - - * INSTALL: Revise. - - * Make-lang.in: Comment out rules for building f2c itself (f/f2c/). - - * README: Revise. - - * com.c (ffecom_init_0): Warn if ftnlen or INTEGER not big enough - to hold a char *. - - * gbe/2.6.2.diff: Update. - -Mon Jan 23 17:10:49 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * TODO: Remove. - BUGS: New file. - PROJECTS: New file. - CREDITS: New file. - - * cktyps*: Remove. - Make-lang.in: Remove cktyps stuff. - Makefile.in: Remove cktyps stuff. - - * DOC: Add info on changes for 0.5.3. - - * bad.c: Put "warning:" &c on diagnostic messages. - Don't output informational messages if warnings disabled. - -Thu Jan 19 12:38:13 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * g77.c: Avoid putting out useless "-xnone -xf77" pairs so - larger command lines can be accommodated. - Recognize both `-xlang' and `-x lang'. - Recognize `-xnone' and `-x none' to mean what it does, instead - of treating "none" as any other language. - Some minor, slight improvements in the way args are handled - (hopefully for clearer, more maintainable code), including - consistency checks on arg count just in case. - -Wed Jan 18 16:41:57 1995 Craig Burley (burley@gnu.ai.mit.edu) - - * DOC: Explain -fautomatic better. - - * INSTALL: Describe libf2c.a better. - - * Make-lang.in, Makefile.in: Build f771 &c with gcc/ as cd instead - of gcc/f/ so debugging info is better (source file tracking). - Add new source file type.c. - - * Makefile.in: For nextstep3, link f771 with -segaddr __DATA - 6000000. Fix typo. Change deps-kinda target to handle building - from gcc/. Update dependencies. - - * bld-op.def, bld.h, bld.c: Remove opBACKEND and all related - stuff. - Remove consistency tests that cause compiler warnings. - - * cktyps.c: Remove all typing checking. - - * com-rt.def: Change all rttypeFLOAT_ intrinsics to rttypeDOUBLE_, - to precisely match how they're declared in libf2c. - - * com.h, com.c: Revise to more elegantly track related stuff - in the version of f2c.h used to build libf2c. - - * com.c: Increase FFECOM_sizeMAXSTACKITEM, and if 0 or undefined - when checked to determine where to put entity, treat as infinite. - Rewrite temporary mechanism to be based on trees instead of - ffeinfo stuff, and make it much simpler. Change interface - accordingly. - Fixes to better track types of things, make appropriate - conversions, etc. E.g. when making an arg for a libf2c - function, make sure it's of the right type (such as ftnlen). - Delete opBACKEND transformation code. - (ffecom_init_0): Smoother initialization of types, especially - paying attention to using consistent rules for making INTEGER, - REAL, DOUBLE PRECISION, etc., and for deciding their "*N" - and kind values that will work across all g77 platforms. - No longer require per-target configuration info in target.h - or config/*/*; use new type module to store size, alignment. - (ffecom_member_phase2): Declare COMMON/EQUIVALENCE group members - so debugger sees them. - (ffecom_finish_progunit): Transform all symbols in program unit, - so -g will show they all exist. - - * expr.c (ffeexpr_collapse_substr): Handle strange substring - range values. - - * info.h, info.c: Provide connection to new type module. - Remove tests that yield compiler warnings. - - * intrin.c (ffeintrin_is_intrinsic): Properly handle deleted - intrinsic. - - * lex.c (ffelex_file_fixed): Remove redundant/buggy code. - - * stc.c (ffestc_kindtype_kind_, ffestc_kindtype_star_): Replace - boring switch stmt with simple call to new type module. This - sort of thing is a reason to get up in the morning. - - * ste.c: Update to handle new interface for - ffecom_push/pop_tempvar. - Fixes to better track types of things. - Fixes to not crash for certain diagnosed constructs. - (ffeste_begin_iterdo_): Check only constants for overflow to avoid - spurious diagnostics. - Don't convert larger integer (say, INTEGER*8) to canonical integer - for iteration count. - - * stw.h: Track DO iteration count temporary variable. - - * symbol.c: Remove consistency tests that cause compiler warnings. - - * target.c (ffetarget_aggregate_info): Replace big switch with - little call to new type module. - (ffetarget_layout): Remove consistency tests that cause - compiler warnings. - (ffetarget_convert_character1_typeless): Pick up length of - typeless type from new type module. - - * target.h: Crash build if target float bit pattern cannot be - precisely determined. - Remove all the type cruft now determined by ffecom_init_0 - at invocation time and maintained in new type module. - Put casts on second arg of all REAL_VALUE_TO_TARGET_DOUBLE - uses so compiler warnings avoided (requires target float bit - pattern to be precisely determined, hence code to crash build). - - * top.c: Add inits/terminates for new type module. - - * type.h, type.c: New module. - - * gbe/2.6.2.diff: Remove all patches to files in gcc/config/ - directory and its subdirectories. - -Mon Jan 9 19:23:25 1995 Dave Love - - * com.h (FFECOM_F2C_INTEGER_TYPE_NODE): Define and use instead of - long_integer_type_node where appropriate. - -Tue Jan 3 14:56:18 1995 Dave Love - - * com.h: Make ffecom_f2c_logical_type_node long, consistent with - integer. - -Fri Dec 2 20:07:37 1994 Dave Love - - * config-lang.in (stagestuff): Add f2c conditionally. - * Make-lang.in: Add f2c and related targets. - * f2c: Add the directory. - -Fri Nov 25 22:17:26 1994 Dave Love - - * Makefile.in (FLAGS_TO_PASS): pass $(CROSS) - * Make-lang.in: more changes to runtime targets - -Thu Nov 24 18:03:21 1994 Dave Love - - * Makefile.in (FLAGS_TO_PASS): define for sub-makes - - * g77.c (main): change f77-cpp-output to f77-cpp-input (.F files) - -Wed Nov 23 15:22:53 1994 Dave Love - - * bad.c (ffebad_finish): kluge to fool emacs19 into finding errors: - add trailing space to :: - -Tue Nov 22 11:30:50 1994 Dave Love - - * runtime/libF77/signal_.c (RETSIGTYPE): added - -Mon Nov 21 13:04:13 1994 Dave Love - - * Makefile.in (compiler): add runtime - - * config-lang.in (stagestuff): add libf2c.a to stagestuff - - * Make-lang.in: - G77STAGESTUFF <- MORESTAGESTUFF - f77-runtime: new target, plus supporting ones - - * runtime: add the directory, containing libI77, libF77 and autoconf - stuff - - * g++.1: remove - - * g77.1: minor fixes - -Thu Nov 17 15:18:05 1994 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.2 released. - - * bad.def: Modify wording of FFEBAD_UNIMPL_STMT to indicate - that it covers a wide array of possible problems (that, someday, - should be handled via separate diagnostics). - - * lex.c: Allow $ in identifiers if -fdollar-ok. - * top.c: Support -fdollar-ok. - * top.h: Support -fdollar-ok. - * target.h: Support -fdollar-ok. - * DOC: Describe -fdollar-ok. - - * std.c (ffestd_R1229_finish): Fix bug so stand-alone build works. - * ste.c (ffeste_R819A): Fix bug so stand-alone build works. - - * Make: Improvements for stand-alone build. - - * Makefile.in: Fix copyright text at top of file. - - * LINK, SRCS, UNLINK: Removed. Not particularly useful now that - g77 sources live in their own subdirectory. - - * g77.c (main): Cast arg to bzero to avoid warning. (This is - identical to Kenner's fix to cp/g++.c.) - - * gbe/: New subdirectory, to contain .diff files for various - versions of the GNU CC back end. - - * gbe/README: New file. - * gbe/2.6.2.diff: New file. - -Tue Nov 8 10:23:10 1994 Dave Love - - * Make-lang.in: don't install as f77 as well as g77 to avoid - confusion with system's compiler (especially while testing) - - * g77.c (main): use -lf2c and -lm; fix sense of test for .f/.F files - -Fri Oct 28 09:45:00 1994 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.1 released. - - * gcc.c: Invoke f771 instead of f-771. - -Fri Oct 28 02:00:44 1994 Craig Burley (burley@gnu.ai.mit.edu) - - * Version 0.5.0 released. - -Fri Oct 14 15:03:35 1994 Craig Burley (burley@gnu.ai.mit.edu) - - * Makefile.in: Handle the Fortran-77 front-end in a subdirectory. - * f-*: Move Fortran-77 front-end to f/*. +Local Variables: +add-log-time-format: current-time-string +End: diff --git a/gcc/f/ChangeLog.0 b/gcc/f/ChangeLog.0 new file mode 100644 index 00000000000..b74222ed673 --- /dev/null +++ b/gcc/f/ChangeLog.0 @@ -0,0 +1,4806 @@ +Mon Jun 29 09:47:33 1998 Craig Burley + + Fix 980628-*.f: + * bld.h: New `pad' field and accessor macros for + ACCTER, ARRTER, and CONTER ops. + * bld.c (ffebld_new_accter, ffebld_new_arrter, + ffebld_new_conter_with_orig): Initialize `pad' field + to zero. + * com.c (ffecom_transform_common_): Include initial + padding (aka modulo aka offset) in size calculation. + Copy initial padding value into FFE initialization expression + so the GBE transformation of that expression includes it. + Make array low bound 0 instead of 1, for consistency. + (ffecom_transform_equiv_): Include initial + padding (aka modulo aka offset) in size calculation. + Copy initial padding value into FFE initialization expression + so the GBE transformation of that expression includes it. + Make array low bound 0 instead of 1, for consistency. + (ffecom_expr_, case FFEBLD_opACCTER): Delete unused `size' + variable. + Track destination offset separately, allowing for + initial padding. + Don't bother setting initial PURPOSE offset if zero. + Include initial padding in size calculation. + (ffecom_expr_, case FFEBLD_opARRTER): Allow for + initial padding. + Include initial padding in size calculation. + Make array low bound 0 instead of 1, for consistency. + (ffecom_finish_global_): Make array low bound 0 instead + of 1, for consistency. + (ffecom_notify_init_storage): Copy `pad' field from old + ACCTER to new ARRTER. + (ffecom_notify_init_symbol): Ditto. + * data.c (ffedata_gather_): Initialize `pad' field in new + ARRTER to 0. + (ffedata_value_): Ditto. + * equiv.c (ffeequiv_layout_local_): When lowering start + of equiv area, extend lowering to maintain needed alignment. + * target.c (ffetarget_align): Handle negative offset correctly. + + * global.c (ffeglobal_pad_common): Warn about non-zero + padding only the first time its seen. + If new padding larger than old, update old. + (ffeglobal_save_common): Use correct type for size throughout. + * global.h: Use correct type for size throughout. + (ffeglobal_common_pad): New macro. + (ffeglobal_pad): Delete this unused and broken macro. + +Sat Jun 27 12:18:33 1998 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in (g77): Depend on mkstemp.o. Link in mkstemp.o. + +Fri Jun 26 11:54:19 1998 Craig Burley + + * g77spec.c (lang_specific_driver): Put `-lg2c' in + front of any `-lm' that is seen. + +Wed Jun 24 01:01:23 1998 Jeffrey A Law (law@cygnus.com) + + * g77spec.c (lang_specific_driver): Revert last change. + +Mon Jun 22 23:12:05 1998 H.J. Lu (hjl@gnu.org) + + * Make-lang.in (G77STAGESTUFF): Add g77.c. + +Fri Jun 19 07:54:40 1998 H.J. Lu (hjl@gnu.org) + + * g77spec.c (lang_specific_driver): Check n_infiles before + appending args. + +Mon Jun 15 23:39:24 1998 Craig Burley + + * Make-lang.in (f/g77.info): Use -f when removing + pre-existing Info files, if any. (This rm command + can go away once makeinfo has been changed to delete + .info-N files beyond the last one it creates.) + + * Make-lang.in ($(srcdir)/f/intdoc.texi): Compile + using $(INCLUDES) macro to get the new hconfig.h + and system.h headers. + +Mon Jun 15 22:21:57 1998 Craig Burley + + Cutover to system.h: + * Make-lang.in: + * Makefile.in: + * ansify.c: + * bad.c: + * bld.c: + * com.c: + * com.h: + * expr.c: + * fini.c: + * g77spec.c: + * implic.c: + * intdoc.c: + * intrin.c: + * lex.c: + * lex.h: + * parse.c: + * proj.c: + * proj.h: + * src.c: + * src.h: + * stb.c: + * ste.c: + * target.c: + * top.c: + * system.j: New file. + + Use toplev.h where appropriate: + * Make-lang.in: + * Makefile.in: + * bad.c: + * bld.c: + * com.c: + * lex.c: + * ste.c: + * top.c: + * toplev.j: New file. + + Conditionalize all dumping/reporting routines so they don't + get built for gcc/egcs: + * bld.c: + * bld.h: + * com.c: + * equiv.c: + * equiv.h: + * sta.c: + * stt.c: + * stt.h: + * symbol.c: + * symbol.h: + + Use hconfig.h instead of config.h where appropriate: + * Makefile.in (proj-h.o): Compile with -DUSE_HCONFIG. + * fini.c: Define USE_HCONFIG before including proj.h. + + * Makefile.in (deps-kinda): Redirect stderr to stdout, + to eliminate diagnostics vis-a-vis g77spec.c. + + * Makefile.in: Regenerate dependencies via deps-kinda. + + * lex.c (ffelex_file_fixed, ffelex_file_free): Eliminate + apparently spurious warnings about uninitialized variables + `c', `column', and so on. + +Sat Jun 13 03:13:18 1998 Craig Burley + + * g77spec.c (lang_specific_driver): Print out egcs + version info first, to be compatible with what some + test facilities expect. + +Wed Jun 10 13:17:32 1998 Dave Brolley + + * top.h (ffe_decode_option): New argc/argv interface. + * top.c (ffe_decode_option): New argc/argv interface. + * parse.c (yyparse): New argc/argv interface for ffe_decode_option. + * com.c (lang_decode_option): New argc/argv interface. + +Sun Jun 7 14:04:34 1998 Richard Henderson + + * com.c (lang_init_options): New function. + * top.c (ffe_decode_option): Remove all trace of -fset-g77-defaults. + Set ffe_is_do_internal_checks_ with -version. + * lang-options.h: Likewise. + * lang-specs.h: Likewise. + +Fri Jun 5 15:53:17 1998 Per Bothner + + * g77spec.c (lang_specific_pre_link, lang_specific_extra_ofiles): + Define - update needed by gcc.c change. + +Mon Jun 1 19:37:42 1998 Craig Burley + + * com.c (ffecom_init_0): Fix setup of INTEGER(KIND=7) + pointer type. + * info.c (ffeinfo_type): Don't crash on null type. + * expr.c (ffeexpr_fulfill_call_): Don't special-case + %LOC(expr) or LOC(expr). + Delete FFEGLOBAL_argsummaryPTR. + * global.c, global.h: Delete FFEGLOBAL_argsummaryPTR. + +Thu May 28 21:32:18 1998 Craig Burley + + Restore circa-0.5.22 capabilities of `g77' driver: + * Make-lang.in (g77spec.o): Depend on f/version.h. + (g77version.o): New rule to compile g77 version info. + (g77$(exeext)): Depend on and link in g77version.o. + * g77spec.c: Rewrite to be more like 0.5.22 version + of g77.c, making filtering of command line smarter + so mixed Fortran and C (etc.) can be compiled, verbose + version info can be obtained, etc. + * lang-specs.h (f77-version): New "language" to support + "g77 -v" command under new gcc 2.8 regime. + * lex.c (ffelex_file_fixed): If -fnull-version, just + substitute a "source file" that prints out version info. + * top.c, top.h: Support -fnull-version. + + * lang-specs.h: Use "%O" instead of OO macro to specify + object extension. Remove old stringizing cruft. + + * Make-lang.in (g77.c, g77spec.o, g77.o, g77$(exeext), + g77-cross$(exeext), f771, + $(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi, + $(srcdir)/f/intdoc.texi, + f77.install-common, f77.install-info, f77.install-man, + f77.uninstall, $(G77STAGESTUFF), f77.stage1, f77.stage2, + f77.stage3, f77.stage4, f77.distdir): Don't do anything + unless user specified "f77" or "F77" in $LANGUAGES either + during configuration or explicitly. For convenience of + various tests and to work around lack of the assignment + "LANGUAGES=$(BOOT_LANGUAGES)" in the "make stage1" command + of "make bootstrap" in gcc, use a touch file named "lang-f77" + to communicate whether this is the case. + + * Make-lang.in (F77_FLAGS_TO_PASS): Delete this macro, + replace with minimal expansion of its former self in + each of the two instances where it was used. + + * Makefile.in (HOST_CC): Delete this definition. + + * com.c (index, rindex): Delete these declarations. + + * proj.h: (isascii): Delete this. + + * Make-lang.in (f77.install-common): Warn if `f77-install-ok' + flag-file exists, since it no longer triggers any activity. + + Rename libf2c.a and f2c.h to libg2c.a and g2c.h, + normalize and simplify g77/libg2c build process: + * Make-lang.in: Remove all support for overwriting + /usr/bin/f77 etc., or whatever the actual names are + via $(prefix) and $(local_prefix). (g++ overwrites + /usr/bin/c++, but then it's often the only C++ compiler + on the system; f77 often exists on systems that are + installing g77.) + (f77.realclean): Remove obsolete target. + (g77.c, g77$(exeext)): Minor changes to look more like g++'s + stuff. + (f771): Now built with srcdir=gcc/f, not srcdir=gcc, to be + more like g++ and such. + (f/Makefile): Removed, as g++ doesn't need this rule. + (f77.install-common): No longer install f77, etc. + (f77.install-man): No longer install f77.1. + (f77.uninstall): No longer uninstall f77, f77.1, etc. + (f77.stage1, f77.stage2, f77.stage3, f77.stage4): Do work + only if "f77" appears in $(LANGUAGES). + (Note: gcc's Makefile.in's bootstrap target should set + LANGUAGES=$(BOOT_LANGUAGES) when making the stage1 target.) + * Makefile.in: Update vis-a-vis gcc/cp/Makefile.in. + (none): Remove. + (g77-only): Relocate. + (all.indirect, f771, *.o): Now assumes current directory + is this dir (gcc/f), not the parent directory. + (TAGS): Remove "echo 'parse.y,0' >> TAGS ;" line. + * config-lang.in: Delete commented-out code. + Fix stagestuff definition. Add more stuff to + diff_excludes definition. Don't create any directories. + Set outputs to f/Makefile, to get variable substition + to happen (what does that really do, anyway?!). + * g77spec.c: Rename libf2c to libg2c. + + * com.h: Remove all of the gcc back-end decls, + since egcs should have all of them correct. + + * com.c: Include "proj.h" before anything else, + as that's how things are supposed to work. + * ste.c: Ditto. + + * bad.c: Include "flags.j" here, since some diagnostics + check flag_pedantic_errors. + + * Makefile.in (f/*.o): Rebuild dependencies via + deps-kinda. + + * output.j: New source file. + * Make-lang.in (F77_SRCS): Update accordingly. + * Makefile.in (OUTPUT_H): Ditto. + (deps-kinda): Ditto. + * com.c: Include "output.j" here. + * lex.c: Ditto. + +Mon May 25 03:34:42 1998 Craig Burley + + * com.c (ffecom_expr_): Fix D**I and Z**I cases to + not convert (DOUBLE PRECISION) D and (DOUBLE COMPLEX) Z + to INTEGER. (This is dead code here anyway.) + +Sat May 23 06:32:52 1998 Craig Burley + + * com.c (ffecom_finish_symbol_transform_): Don't transform + statement (nested) functions, to avoid gcc compiling them + and thus producing linker errors if they refer to undefined + external functions. But warn if they're unused and -Wunused. + * bad.def (FFEBAD_SFUNC_UNUSED): New diagnostic. + +Wed May 20 12:12:55 1998 Craig Burley + + * Version 0.5.23 released. + +Tue May 19 14:52:41 1998 Craig Burley + + * bad.def (FFEBAD_OPEN_UNSUPPORTED, FFEBAD_INQUIRE_UNSUPPORTED, + FFEBAD_READ_UNSUPPORTED, FFEBAD_WRITE_UNSUPPORTED, + FFEBAD_QUAD_UNSUPPORTED, FFEBAD_BLOCKDATA_STMT, + FFEBAD_TRUNCATING_CHARACTER, FFEBAD_TRUNCATING_HOLLERITH, + FFEBAD_TRUNCATING_NUMERIC, FFEBAD_TRUNCATING_TYPELESS, + FFEBAD_TYPELESS_OVERFLOW): Change these from warnings + to errors. + +Tue May 19 14:51:59 1998 Craig Burley + + * Make-lang.in (f77.install-info, f77.uninstall): + Use install-info as appropriate. + +Tue May 19 12:56:54 1998 Craig Burley + + * com.c (ffecom_init_0): Rename xargc to f__xargc, + in accord with same-dated change to f/runtime. + +Fri May 15 10:52:49 1998 Craig Burley + + * com.c (ffecom_convert_narrow_, ffecom_convert_widen_): + Be even more persnickety in checking for internal bugs. + Also, if precision isn't changing, just return the expr. + + * expr.c (ffeexpr_token_number_): Call + ffeexpr_make_float_const_ to make an integer. + (ffeexpr_make_float_const_): Handle making an integer. + + * intrin.c (ffeintrin_init_0): Distinguish between + crashes on bad arg base and kind types. + +Fri May 15 01:44:22 1998 Mumit Khan + + * Make-lang.in (f77.mostlyclean): Add missing exeext. + +Thu May 14 13:30:59 1998 Craig Burley + + * Make-lang.in (f/expr.c): Now depends on f/stamp-str. + * expr.c: Use ffestrOther in place of ffeexprDotdot_. + * str-ot.fin: Add more keywords for expr.c. + + * intdoc.c (dumpimp): Trivial fix. + + * com.c (ffecom_expr_): Add ltkt variable for clarity. + +Wed May 13 13:05:34 1998 Craig Burley + + * Make-lang.in (G77STAGESTUFF): Add g77.o, g77spec.o, + and g77version.o. + (f77.clean): Add removal of g77.c, g77.o, g77spec.o, + and g77version.o. + (f77.distclean): Delete removal of g77.c. + +Thu Apr 30 18:59:43 1998 Jim Wilson + + * Make-lang.in (g77.info, g77.dvi, BUGS, INSTALL, NEWS): Put -o + option before input file. + +Tue Apr 28 09:23:10 1998 Craig Burley + + Fix 980427-0.f: + * global.c (ffeglobal_ref_progunit_): When transitioning + from EXT to FUNC, discard hook, since the decl, if any, is + probably wrong. + +Sun Apr 26 09:05:50 1998 Craig Burley + + * com.c (ffecom_char_enhance_arg_): Wrap the upper bound + (the PARM_DECL specifying the length of the CHARACTER*(*) + dummy arg) in a variable_size invocation, to prevent + dwarf2out.c crashing when compiling code with -g. + +Sat Apr 18 15:26:57 1998 Jim Wilson + + * g77spec.c (lang_specific_driver): New argument in_added_libraries. + New local added_libraries. Increment count when add library to + arglist. + +Sat Apr 18 05:03:21 1998 Craig Burley + + * com.c (ffecom_check_size_overflow_): Ignore overflow + as well if dummy argument. + +Fri Apr 17 17:18:04 1998 Craig Burley + + * version.h: Get rid of the overly large headers + here too, as done in version.c. + +Tue Apr 14 15:51:37 1998 Dave Brolley + + * com.c (init_parse): Now returns char* containing filename; + +Tue Apr 14 14:40:40 1998 Craig Burley + + * com.c (ffecom_start_progunit_): Mark function decl + as used, to avoid spurious warning (-Wunused) for ENTRY. + +Tue Apr 14 14:19:34 1998 Craig Burley + + * sta.c (ffesta_second_): Check for CASE DEFAULT + as well as CASE, or it won't be recognized. + +Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) + + * com.c (finput): New variable. + (init_parse): Handle !USE_CPPLIB. + (finish_parse): New function. + (lang_init): No longer declare finput. + +Sat Apr 4 17:45:01 1998 Richard Henderson + + * com.c (ffecom_expr_): Revert Oct 22 change. Instead take a WIDENP + argument so that we can respect the signedness of the original type. + (ffecom_init_0): Do sizetype initialization first. + +1998-03-28 Dave Love + + * Make-lang.in (f771$(exeext)): Fix typo. + +1998-03-24 Martin von Loewis + + * com.c (lang_print_xnode): New function. + +Mon Mar 23 21:20:35 1998 Craig Burley + + * version.c: Reduce to a one-line file, like + gcc's version.c, since there's really no content + there. + +Mon Mar 23 11:58:43 1998 Craig Burley + + * bugs.texi: Various updates. + + * com.c (ffecom_tree_canonize_ptr_): Fix up spacing a bit. + +Sun Mar 22 00:50:42 1998 Nick Clifton + Geoff Noer + + * Makefile.in: Various fixes for building cygwin32 native toolchains. + * Make-lang.in: Likewise. + +Mon Mar 16 21:20:35 1998 Craig Burley + + * expr.c (ffeexpr_sym_impdoitem_): Don't blindly + reset symbol info after calling ffesymbol_error, + to avoid crash. + +Mon Mar 16 15:38:50 1998 Craig Burley + + * Version 0.5.22 released. + +Mon Mar 16 14:36:02 1998 Craig Burley + + Make -g work better for ENTRY: + * com.c (ffecom_start_progunit_): Master function + for ENTRY-laden procedure is not really invented, + so it can be debugged. + (ffecom_do_entry_): Push/set/pop lineno for each + entry point. + +Sun Mar 15 05:48:49 1998 Craig Burley + + * intrin.def: Fix spelling of mixed-case form + of `CPU_Time' (was `Cpu_Time'). + +Thu Mar 12 13:50:21 1998 Craig Burley + + * lang-options.h: Sort all -f*-intrinsics-* options, + for consistency with other g77 versions. + +Thu Mar 12 09:39:40 1998 Manfred Hollstein + + * lang-specs.h: Properly put brackets around array elements in initializer. + +1998-03-09 Dave Love + + * Make-lang.in: Set CONFIG_SITE to a non-existent file since + /dev/null loses with bash 2.0/autoconf 2.12. Put + F77_FLAGS_TO_PASS before CC. + +Sun Mar 8 16:35:34 1998 Craig Burley + + * intrin.def: Use tabs instead of blanks more + consistently (excepting DEFGEN section for now). + +Wed Mar 4 17:38:21 1998 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in: Remove more references to libf77. + +Tue Mar 3 10:52:35 1998 Manfred Hollstein + + * g77.texi: Use @url for citing URLs. + +Sat Feb 28 15:24:38 1998 Craig Burley + + * intrin.def: Make CPU_TIME's arg generic real to be just + like SECOND_subr. + +Fri Feb 20 12:45:53 1998 Craig Burley + + * expr.c (ffeexpr_token_arguments_): Make sure + outer exprstack isn't null. + +1998-02-16 Dave Love + + * Makefile.in (f/fini): Don't use -W -Wall with HOST_CC. + +Fri Feb 13 00:14:56 1998 Kaveh R. Ghazi + + * com.c (type_for_mode): Add explicit braces to avoid ambiguous `else'. + + * expr.c (ffeexpr_type_combine): Likewise. + (ffeexpr_reduce_): Likewise. + (ffeexpr_declare_parenthesized_): Likewise. + + * src.c (ffesrc_strcmp_1ns2i): Likewise. + (ffesrc_strcmp_2c): Likewise. + (ffesrc_strncmp_2c): Likewise. + + * stb.c (ffestb_halt1_): Likewise. + (ffestb_R90910_): Likewise. + (ffestb_R9109_): Likewise. + + * stc.c (ffestc_R544_equiv_): Likewise. + + * std.c (ffestd_subr_copy_easy_): Likewise. + (ffestd_R1001dump_): Likewise. + (ffestd_R1001dump_1005_1_): Likewise. + (ffestd_R1001dump_1005_2_): Likewise. + (ffestd_R1001dump_1005_3_): Likewise. + (ffestd_R1001dump_1005_4_): Likewise. + (ffestd_R1001dump_1005_5_): Likewise. + (ffestd_R1001dump_1010_2_): Likewise. + + * ste.c (ffeste_R840): Likewise. + + * sts.c (ffests_puttext): Likewise. + + * symbol.c (ffesymbol_check_token_): Likewise. + + * target.c (ffetarget_real1): Likewise. + (ffetarget_real2): Likewise. + +Wed Feb 11 01:44:48 1998 Richard Henderson (rth@cygnus.com) + + * com.c (ffecom_ptr_to_expr) [FFEBLD_opARRAYREF]: Do upper - lower + in the native type, so as to properly handle negative indices. + +Tue Feb 3 20:13:05 1998 Richard Henderson + + * config-lang.in: Remove references to runtime/. + +Sun Feb 1 12:43:49 1998 J"orn Rennecke + + * com.c (ffecom_tree_canonize_ptr_): Place bitsizetype typed expr + as first agument in MULT_EXPR. + Use bitsize_int (0L, 0L) as zero for bitsizes. + (ffecom_tree_canonize_ref_): + Use bitsize_int (0L, 0L) as zero for bitsizes. + (ffecom_init_0): Use set_sizetype. + +Sun Feb 1 02:26:58 1998 Richard Henderson + + * runtime directory -- moved into "libf2c" in the toplevel + directory. + * Make-lang.in: Remove all runtime related stuff. + +Sun Jan 25 12:32:15 1998 Kaveh R. Ghazi + + * Make-lang.in (f77.stage1): Depend on stage1-start so parallel + make works better. + * (f77.stage2): Likewise for stage2-start. + * (f77.stage3): Likewise for stage3-start. + * (f77.stage4): Likewise for stage4-start. + +Sat Jan 17 21:28:08 1998 Pieter Nagel + + * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and + local_prefix to sub-make invocations. + +Tue Jan 13 22:07:54 1998 Jeffrey A Law (law@cygnus.com) + + * lang-options.h: Add missing options. + +Sun Jan 11 02:14:47 1998 Craig Burley + + Support FORMAT(I<1+2>) (constant variable-FORMAT + expressions): + * bad.def (FFEBAD_FORMAT_VARIABLE): New diagnostic. + * std.c (ffestd_R1001rtexpr_): New function. + (ffestd_R1001dump_, ffestd_R1001dump_1005_1_, + ffestd_R1001dump_1005_2_, ffestd_R1001dump_1005_3_, + ffestd_R1001dump_1005_4_, ffestd_R1001dump_1005_5_, + ffestd_R1001dump_1010_2_, ffestd_R1001dump_1010_3_, + ffestd_R1001dump_1010_4_, ffestd_R1001dump_1010_5_): + Use new function instead of ffestd_R1001error_. + + * stb.c (ffestb_R10014_, ffestb_R10016_, ffestb_R10018_, + ffestb_R100110_): Restructure `for' loop for style. + + Fix 970626-2.f by not doing most back-end processing + when current_function_decl is an ERROR_MARK, and by + making that the case when its type would be an ERROR_MARK: + * com.c (ffecom_start_progunit_, finish_function, + lang_printable_name, start_function, + ffecom_finish_symbol_transform_): Test for ERROR_MARK. + * std.c (ffestd_stmt_pass_): Don't do any downstream + processing if ERROR_MARK. + + * Make-lang.in (f77.install-common): Don't install, and + don't uninstall existing, Info files if f/g77.info + doesn't exit. (This is a somewhat modified version + of an egcs patch on 1998-01-07 12:05:51 by Bruno Haible + .) + +Fri Jan 9 19:09:07 1998 Craig Burley + + Fix -fpedantic combined with `F()' invocation, + also -fugly-comma combined with `IARGC()' invocation: + * bad.def (FFEBAD_NULL_ARGUMENT_W): New diagnostic. + * expr.c (ffeexpr_finished_): Don't reject null expressions + in the argument-expression context -- let outer context + handle that. + (ffeexpr_token_arguments_): Warn about null expressions + here if -fpedantic (as appropriate). + Obey -fugly-comma for only external-procedure invocations. + * intrin.c (ffeintrin_check_): No longer ignore explicit + omitted trailing args. + +Tue Dec 23 14:58:04 1997 Craig Burley + + * intrin.c (ffeintrin_fulfill_generic): Don't generate + FFEBAD_INTRINSIC_TYPE for CHARACTER*(*) intrinsic. + + * com.c (ffecom_gfrt_basictype): + (ffecom_gfrt_kindtype): + (ffecom_make_gfrt_): + (FFECOM_rttypeVOIDSTAR_): New return type `void *', for + the SIGNAL intrinsic. + * com-rt.def (FFECOM_rttypeSIGNAL): Now returns `void *'. + * intdoc.c: Replace `p' kind specifier with `7'. + * intrin.c (ffeintrin_check_, ffeintrin_init_0): Replace + `p' kind specifier with `7'. + * intrin.def (FFEINTRIN_impLOC, FFEINTRIN_impSIGNAL_func, + FFEINTRIN_impSIGNAL_subr): Replace `p' specifier with `7'. + Also, SIGNAL now returns a `void *' status, not `int'. + + Improve run-time diagnostic for "PRINT '(I1', 42": + * com.c (ffecom_char_args_x_): Renamed from ffecom_char_args_, + which is now a macro (to avoid lots of changes to other code) + with new arg, ffecom_char_args_with_null_ being another new + macro to call same function with different value for new arg. + This function now appends a null byte to opCONTER expression + if the new arg is TRUE. + (ffecom_arg_ptr_to_expr): Support NULL length pointer. + * ste.c (ffeste_io_cilist_): + (ffeste_io_icilist_): Pass NULL length ptr for + FORMAT expression, so null byte gets appended where + feasible. + * target.c (ffetarget_character1): + (ffetarget_concatenate_character1): + (ffetarget_substr_character1): + (ffetarget_convert_character1_character1): + (ffetarget_convert_character1_hollerith): + (ffetarget_convert_character1_integer4): + (ffetarget_convert_character1_logical4): + (ffetarget_convert_character1_typeless): + (ffetarget_hollerith): Append extra phantom null byte as + part of FFETARGET-NULL-BYTE kludge. + + * intrin.def (FFEINTRIN_impCPU_TIME): Point to + FFECOM_gfrtSECOND as primary run-time routine. + +Mon Dec 22 12:41:07 1997 Craig Burley + + * intrin.c (ffeintrin_init_0): Remove duplicate + check for `!'. + +Fri Dec 19 00:12:01 1997 Richard Henderson + + * com.c (ffecom_sym_transform_): Assumed arrays have no upper bound. + +Mon Dec 15 17:35:35 1997 Richard Henderson + + * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'. + +Sun Dec 14 02:49:58 1997 Craig Burley + + * intrin.c (ffeintrin_init_0): Fix up indentation a bit. + Fix bug that prevented checking of arguments other + than the first. + + * intdoc.c: Fix up indentation a bit. + +Tue Dec 9 16:20:57 1997 Richard Henderson + + * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'. + +Tue Dec 2 09:57:16 1997 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in (f77.clean): Remove g77.c. + +Mon Dec 1 19:12:36 1997 Craig Burley + + * intrin.c (ffeintrin_check_): Fix up indentation a bit more. + +Mon Dec 1 16:21:08 1997 Craig Burley + + * com.c (ffecom_arglist_expr_): Crash if non-supplied + optional arg isn't passed as an address. + Pass null pointer explicitly, instead of via ffecom routine. + If incoming argstring is NULL, substitute pointer to "0". + Recognize '0' as ending the usual arg stuff, just like '\0'. + +Sun Nov 30 22:22:22 1997 Craig Burley + + * intdoc.c: Minor fix-ups. + + * intrin.c (ffeintrin_check_): Fix up indentation a bit. + + * intrin.def: Fix up spacing a bit. + +Tue Nov 25 15:33:28 1997 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in (f77.all.build): Add $(exeext) to binary files. + (f77.all.cross, f77.start.encap): Simliarly. + +Fri Nov 21 09:35:20 1997 Fred Fish + + * Make-lang.in (stmp-f2c.h): Move inclusion of F77_FLAGS_TO_PASS + to before override of CC so that the override works. + +Thu Nov 20 00:58:14 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * Make-lang.in (f77.install-info): Depend on f77.info. + +1997-11-17 Dave Love + + * com.c (ffecom_arglist_expr_): Pass null pointers for optional + args which aren't supplied. + +Sun Nov 16 21:45:43 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * Make-lang.in (f77.install-info): Depend on f77.info. + +1997-11-14 Dave Love + + * intrin.def: Supply gfrt for CPU_TIME. Generalize arg types of + INT2, INT8, per doc. + +1997-11-06 Dave Love + + * intrin.def: Allow non-integer args for INT2 and INT8 (per + documentation). + +Sun Nov 2 19:49:51 1997 Richard Henderson + + * com.c (ffecom_expr_): Only use TREE_TYPE argument for simple + arithmetic; convert types as necessary; recurse with target tree type. + +Tue Oct 28 02:21:25 1997 Craig Burley + + * lang-options.h: Add -fgnu-intrinsics-* and + -fbadu77-intrinsics-* options. + +Sun Oct 26 02:36:21 1997 Craig Burley + + * com.c (lang_print_error_function): Fix to more + reliably notice when the diagnosed region changes. + +Sat Oct 25 23:43:36 1997 Craig Burley + + Fix 950327-0.f: + * sta.c, sta.h (ffesta_outpooldisp): New function. + * std.c (ffestd_stmt_pass_): Don't kill NULL pool. + (ffestd_R842): If pool already preserved, save NULL + for pool, because it should be killed only once. + + * malloc.c [MALLOC_DEBUG]: Put initializer for `name' + component in braces, to avoid compiler warning. + +Wed Oct 22 11:37:41 1997 Richard Henderson + + * com.c (ffecom_expr_): Take an new arg TREE_TYPE that if non-null + specifies the type in which to do the calculation. Change all callers. + [FFEBLD_opARRAYREF]: Force the index expr to use sizetype. + +Thu Oct 16 02:04:08 1997 Paul Koning + + * Make-lang.in (stmp-f2c.h): Don't configure the runtime + directory if LANGUAGES does not include f77. + +Mon Oct 13 12:12:41 1997 Richard Henderson + + * Make-lang.in (g77*): Copied from cp/Make-lang.in g++*. + * g77spec.c: New file, mostly copied from g++spec.c + * g77.c: Removed. + +Fri Oct 10 13:00:48 1997 Craig Burley + + * ste.c (ffeste_begin_iterdo_): Fix loop setup so iteration + variable is modified only after the #iterations is calculated; + otherwise if the iteration variable is aliased to any of the + operands in the start, end, or increment expressions, the + wrong #iterations might be calculated. + + * com.c (ffecom_save_tree): Fix indentation. + +Mon Oct 6 14:15:03 1997 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in (f77.mostlyclean): Clean up stuff in the + object tree too. + (f77.clean, f77.distclean, f77.maintainer-clean): Likewise. + +1997-10-05 Dave Love + + * intrin.def: Make SECOND_subr's arg generic real for people + porting from Cray and making everything double precision. + +Wed Oct 1 01:45:36 1997 Philippe De Muyter + + * g77.c (pexecute, main): Use unlink, not remove. + +Mon Sep 29 16:18:21 1997 Craig Burley + + * stu.c (ffestu_list_exec_transition_, + ffestu_dummies_transition_): Specify `bool' type for + `in_progress' variables. + + * com.h (assemble_string): Declare this routine (instead + of #include'ing "output.h" from gcc) to eliminate warnings + from lex.c. + +Mon Sep 29 10:37:07 1997 Jeffrey A Law (law@cygnus.com) + + * intdoc.c (main): Remove unused attribute for main's arguments. + +Sun Sep 28 01:47:17 1997 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in (G77_FLAGS_TO_PASS): Pass down RANLIB, RANLIB_TEST + and AR instead of the _FOR_TARGET versions. + +Tue Sep 23 00:39:57 1997 Alexandre Oliva + + * Make-lang.in: install.texi was renamed to g77install.texi + * install0.texi: Likewise. + +Fri Sep 19 01:12:27 1997 Craig Burley + + * expr.c (ffeexpr_reduced_eqop2_): + (ffeexpr_reduced_relop2_): Minor fixes to diagnostic code. + + * fini.c (main): Change return type to `int'. + +Thu Sep 18 17:31:38 1997 Jeffrey A Law (law@cygnus.com) + + * proj.h (FFEPROJ_BSEARCH): Delete all references. + (FFEPROJ_STRTOUL): Likewise. + * proj.c (bsearch): Compile this if no bsearch is provided by the + host system. + (strtoul): Similarly. + + * g77install.texi: Renamed from install.texi + * g77.texi: Corresponding changes. + + * fini.c (main): Return type is int. + + * com.c (lang_printable_name): Use verbosity argument. + +Thu Sep 18 16:08:40 1997 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in: Fix merge problems. + +Wed Sep 17 10:47:08 1997 Craig Burley + + * com-rt.def (FFECOM_gfrtDSIGN, FFECOM_gfrtISIGN, + FFECOM_gfrtSIGN): Add second argument. + + * expr.c (ffeexpr_cb_comma_c_): Trivial fixes. + +Sun Sep 14 21:01:23 1997 Jeffrey A Law (law@cygnus.com) + + * Make-lang.in: Various changes to build info files + in the object tree rather than the source tree. + + * proj.h: Include ctype.h. + +Sun Sep 14 12:35:20 1997 Fred Fish (fnf@ninemoons.com) + + * proj.h (isascii): Provide a default definition if none is available. + +Thu Sep 11 19:26:10 1997 Dave Love + + * config-lang.in: Remove the messages about possible build problems. + +Wed Sep 10 16:39:47 1997 Jim Wilson + + * Make-lang.in (LN, LN_S): New macros, use where appropriate. + +Tue Sep 9 13:20:40 1997 Jim Wilson + + * g77.c (pexecute, doit): Add checks for __CYGWIN32__. + +Tue Sep 9 01:59:35 1997 Craig Burley + + * Version 0.5.21 released. + +Tue Sep 9 00:31:01 1997 Craig Burley + + * intdoc.c (dumpem): Put appropriate commentary in + output file, so readers know it isn't source. + +Wed Aug 27 20:32:03 1997 Jeffrey A Law (law@cygnus.com) + + * top.c (ffe_decode_option): Turn on flag_move_all_moveables + and flag_reduce_all_givs. + +Wed Aug 27 08:08:25 1997 Craig Burley + + * proj.h: Always #include "config.j" first, to pick up + gcc's configuration. + * com.c: Change bcopy() and bzero() calls to memcpy() + and memset() calls, to make more of g77 ANSI C. + +1997-08-26 Dave Love + + * Make-lang.in ($(srcdir)/f/runtime/configure, + $(srcdir)/f/runtime/libU77/configure): Fix for when srcdir isn't + relative. + +Tue Aug 26 05:59:21 1997 Craig Burley + + * ansify.c (main): Make sure readers of stdout know + it's derived from stdin; omit comment text; get source + line numbers in future stderr output to be correct. + +Tue Aug 26 01:36:01 1997 Craig Burley + + Fix 970825-0.f: + * stb.c (ffestb_R5284_): Allow OPEN_PAREN after closing + SLASH as well as NAME. + +Mon Aug 25 23:48:17 1997 Craig Burley + + Changes to allow g77 docs to be built entirely from scratch + using any ANSI C compiler, not requiring GNU C: + * Make-lang.in ($(srcdir)/f/intdoc.texi): "Pipe" new + location of intrinsic documentation data base, f/intdoc.in, + through new `ansify' program to append `\n\' to quoted + newlines, into f/intdoc.h0. Do appropriate cleanups. Explain. + (f77.mostlyclean): Add f/ansify and f/intdoc.h0 to cleanups. + * f/ansify.c: New program. + * f/intdoc.c: Fix so it conforms to ANSI C. + #include f/intdoc.h0 instead of f/intdoc.h. + Avoid some warnings. + * f/intdoc.h, f/intdoc.in: Rename the former to the latter; no + changes made to the content in this patch! + * f/intrin.h (ffeintrinFamily): Fix to conform to ANSI C. + +Mon Aug 25 23:24:32 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * Make-lang.in ($(srcdir)/f/runtime/configure, + $(srcdir)/f/runtime/libU77/configure, f77.mostlyclean, + f77.clean, f77.distclean, f77.maintainer-clean, f77.realclean): + Handle absolute pathname of $(srcdir). + (stmp-f2c.h): New. + (include/f2c.h, f/runtime/Makefile, f/runtime/libF77/Makefile, + f/runtime/libI77/Makefile, f/runtime/libU77/Makefile): Only + depend on stmp-f2c.h. + (f77.maintainer-clean): Don't make itself. + +Sun Aug 24 17:00:27 1997 Jim Wilson + + * Make-lang.in (f77.install-info): Don't cd into srcdir. Add srcdir + to filenames. Use sed to extract base filename for install. + +Sun Aug 24 06:52:48 1997 Craig Burley + + Fix up g77 compiler data base for libf2c routines: + * com-rt.def (FFECOM_gfrtSIGNAL): Change return type to + FTNINT to match actual code. + + * com.c (ffecomRttype_): Replace FFECOM_rttypeINT_ with + FFECOM_rttypeFTNINT_. + Add and fix up comments. + (ffecom_make_gfrt_, ffecom_gfrt_basictype, + ffecom_gfrt_kindtype): Replace FFECOM_rttypeINT_ with + FFECOM_rttypeFTNINT_; add FFECOM_rttypeDOUBLEREAL_. + +Thu Aug 21 13:15:29 1997 Jim Wilson + + * Make-lang.in (f77): Delete f77-runtime. + (f77.all.build, f77.all.cross, f77.rest.encap): Add f77-runtime. + +Wed Aug 20 17:18:40 1997 Craig Burley + + * global.c (ffeglobal_ref_progunit_): It's okay to have + a different CHARACTER*n length for a reference if the + existing length is for another reference, not a definition. + +Wed Aug 20 16:36:59 1997 Jim Wilson + + * intdoc.texi: Readd generated file. + +Mon Aug 18 14:27:18 1997 Craig Burley + + Fix 970814-0.f: + * global.c (ffeglobal_new_progunit_): Distinguish + between previously defined, versus inferred, filewide + when it comes to diagnostics. + + Fix 970816-1.f: + * global.c (ffeglobal_ref_progunit_): Change BDATA into EXT + right at the beginning, so EXTERNAL FOO followed later + by SUBROUTINE FOO is not diagnosed. + + Fix 970813-0.f: + * com-rt.def (FFECOM_gfrtALARM): Returns `integer', not + `void'. + +Mon Aug 18 09:01:54 1997 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (F77_OBJS): Re-alphabetize. + * Make-lang.in (F77_SRCS): Likewise. + +Sun Aug 17 08:35:11 1997 Jeffrey A Law (law@cygnus.com) + + * INSTALL: Rebuilt. + * install.texi: Remove "Object File Differences" section. Remove + all references to zzz.o failing comparison tests. + * version.c, version.h: Renamed from zzz.c and zzz.h. Remove + date and time stamps so a 3 stage build reports no differences. + * Make-lang.in: Corresponding changes. + * Makefile.in: Likewise. + * g77.c, parse.c: Likewise. + + * intdoc.texi: Remove generated file from distribution. + +Sun Aug 17 03:32:44 1997 Craig Burley + + Fix up problems when virtual memory exhausted: + * malloc.c (malloc_new_): Use gcc's xmalloc(), so we + print a nicer message when malloc returns no memory. + (malloc_resize_): Ditto for xrealloc(). + + * Make-lang.in, Makefile.in: Comment out lines containing + just formfeeds. + +Sat Aug 16 19:41:33 1997 Craig Burley + + * com.c (ffecom_make_gfrt_): For rttypeREAL_F2C_, return + double_type_node; for rttypeREAL_GNU_, return + _real_type_node. + +1997-08-13 Dave Love + + * config-lang.in (diff_excludes): Add some hints about known + problematic platforms. + +1997-08-13 Dave Love + + * intdoc.h: Document `alarm'. + +Tue Aug 12 10:23:02 1997 Jeffrey A Law (law@cygnus.com) + + * config-lang.in: Don't demand the backend patch. + * com.c (lang_printable_name): Second argument is now an int. Don't + store into the value of the second argument. + * top.c (ffe_decode_option): Temporarily disable setting + of "Toon" loop options until we figure out how to address + them. + +Mon Aug 11 23:18:35 1997 Jeffrey A Law (law@cygnus.com) + + * g77-0.5.21-19970811 Imported. + This file describes changes to the front end necessary to make + it work with egcs. + +Mon Aug 11 21:19:22 1997 Craig Burley + + * Make-lang.in ($(RUNTIMESTAGESTUFF)): Add + f/runtime/stamp-lib. + +Mon Aug 11 01:52:03 1997 Craig Burley + + * com.c (ffecom_build_complex_constant_): Go with the + new build_complex() approach used in gcc-2.8. + + * com.c (ffecom_sym_transform_): Don't set + DECL_IN_SYSTEM_HEADER for a tree node that isn't + a VAR_DECL, which happens when var is in common! + + * com.c (ffecom_expr_intrinsic_) (case FFEINTRIN_impALARM): + No need to test codegen_imp -- there's only one valid here. + + * intrin.def (FFEINTRIN_impALARM): Specify `Status' argument + as write-only. + +Fri Aug 8 05:40:23 1997 Craig Burley + + Substantial changes to accommodate distinctions among + run-time routines that support intrinsics, and between + routines that compute and return the same type vs. those + that compute one type and return another (or `void'): + * com-rt.def: Specify new return type REAL_F2C_ instead + of many DOUBLE_, COMPLEX_F2C_ instead of COMPLEX_, and + so on. + Clear up the *BES* routines "once and for all". + * com.c: New return types. + (ffecom_convert_narrow_, ffecom_convert_widen_): + New functions that are "safe" variants of convert(), + to catch errors that ffecom_expr_intrinsic_() now + no longer catches. + (ffecom_arglist_expr_): Ensure arguments are not + converted to narrower types. + (ffecom_call_): Ensure return value is not converted + to a wider type. + (ffecom_char_args_): Use new ffeintrin_gfrt_direct() + routine. + (ffecom_expr_intrinsic_): Simplify how run-time + routine is selected (via `gfrt' only now; lose the + redundant `ix' variable). + Eliminate the `library' label; any code that doesn't + return directly just `break's out now with `gfrt' + set appropriately. + Set `gfrt' to default choice initially, either a + fast direct form or, if not available, a slower + indirect-callable form. + (ffecom_make_gfrt_): No longer need to do special + check for complex; it's built into the new return-type + regime. + (ffecom_ptr_to_expr): Use new ffeintrin_gfrt_indirect() + routine. + * intrin.c, intrin.h: `gfrt' field replaced with three fields, + so it is easier to provide faster direct-callable and + GNU-convention indirect-callable routines in the future. + DEFIMP macro adjusted accordingly, along with all its uses. + (ffeintrin_gfrt_direct): New function. + (ffeintrin_gfrt_indirect): Ditto. + (ffeintrin_is_actualarg): If `-fno-f2c' is in effect, + require a GNU-callable version of intrinsic instead of + an f2c-callable version, so indirect calling is still checked. + * intrin.def: Replace one GFRT field with the three new fields, + as appropriate for each DEFIMP intrinsic. + + * com.c (ffecom_stabilize_aggregate_, + ffecom_convert_to_complex_): Make these `static'. + +Thu Aug 7 11:24:34 1997 Craig Burley + + Provide means for front end to determine actual + "standard" return type for an intrinsic if it is + passed as an actual argument: + * com.h, com.c (ffecom_gfrt_basictype, + ffecom_gfrt_kindtype): New functions. + (ffecom_gfrt_kind_type_): Replaced with new function. + All callers updated. + (ffecom_make_gfrt_): No longer need do anything + with kind type. + + * intrin.c (ffeintrin_basictype, ffeintrin_kindtype): + Now returns correct type info for specific intrinsic + (based on type of run-time-library implementation). + +Wed Aug 6 23:08:46 1997 Craig Burley + + * global.c (ffeglobal_ref_progunit_): Don't reset + number of arguments just due to new type info, + so useful warnings can be issued. + +1997-08-06 Dave Love + + * intrin.def: Fix IDATE_vxt argument order. + * intdoc.h: Likewise. + +Thu Jul 31 22:22:03 1997 Craig Burley + + * global.c (ffeglobal_proc_ref_arg): If REF/DESCR + disagreement, DESCR is CHARACTER, and types disagree, + pretend the argsummary agrees so the message ends up + being about type disagreement. + (ffeglobal_proc_def_arg): Ditto. + + * expr.c (ffeexpr_token_first_rhs_3_): Set info for LABTOK + to NONE of everything, to avoid misdiagnosing filewide + usage of alternate returns. + +Sun Jul 20 23:07:47 1997 Craig Burley + + * com.c (ffecom_sym_transform_): If type gets set + to error_mark_node, just return that for transformed symbol. + (ffecom_member_phase2_): If type gets set to error_mark_node, + just return. + (ffecom_check_size_overflow_): Add `dummy' argument to + flag that type is for a dummy, update all callers. + +Sun Jul 13 17:40:53 1997 Craig Burley + + Fix 970712-1.f: + * where.c (ffewhere_set_from_track): If start point + is too large, just use initial start point. 0.6 should + fix all this properly. + + Fix 970712-2.f: + * com.c (ffecom_sym_transform_): Preserve error_mark_node for type. + (ffecom_type_localvar_): Ditto. + (ffecom_sym_transform_): If type is error_mark_node, + don't error-check decl size, because back end responds by + setting that to an integer 0 instead of error_mark_node. + (ffecom_transform_common_): Same as earlier fix to _transform_ + in that size is checked by dividing BITS_PER_UNIT instead of + multiplying. + (ffecom_transform_equiv_): Ditto. + + Fix 970712-3.f: + * stb.c (ffestb_R10014_): Fix flaky fall-through in error + test for FFELEX_typeCONCAT by just replicating the code, + and do FFELEX_typeCOLONCOLON while at it. + +1997-07-07 Dave Love + + * intdoc.h: Add various missing pieces; correct GMTIME, LTIME + result ordering. + + * intrin.def, com-rt.def: Add alarm. + + * com.c (ffecom_expr_intrinsic_): Add case for alarm. + +Thu Jun 26 04:19:40 1997 Craig Burley + + Fix 970302-3.f: + * com.c (ffecom_sym_transform_): For sanity-check compare + of gbe size of local variable to g77 expectation, + use varasm.c/assemble_variable technique of dividing + BITS_PER_UNIT out of gbe info instead of multiplying + g77 info up, to avoid crash when size in bytes is very + large, and overflows an `int' or similar when multiplied. + + Fix 970626-2.f: + * com.c (ffecom_finish_symbol_transform_): Don't bother + transforming a dummy argument, to avoid a crash. + * ste.c (ffeste_R1227): Don't return a value if the + result decl, or its type, is error_mark_node. + + Fix 970626-4.f: + * lex.c (ffelex_splice_tokens): `-fdollar-ok' is + irrelevant to whether a DOLLAR token should be made + from an initial character of `$'. + + Fix 970626-6.f: + * stb.c (ffestb_do3_): DO iteration variable is an + lhs, not rhs, expression. + + Fix 970626-7.f and 970626-8.f: + * expr.c (ffeexpr_cb_comma_i_1_): Set IMPDO expression + to have clean info, because undefined rank, for example, + caused crash on mangled source on UltraSPARC but not + on Alpha for a series of weird reasons. + (ffeexpr_cb_close_paren_): If not CLOSE_PAREN, push + opANY expression onto stack instead of attempting + to mimic what program might have wanted. + (ffeexpr_cb_close_paren_): Don't wrap opPAREN around + opIMPDO, just warn that it's gratuitous. + * bad.def (FFEBAD_IMPDO_PAREN): New warning. + + Fix 970626-9.f: + * expr.c (ffeexpr_declare_parenthesized_): Must shut down + parsing in kindANY case, otherwise the parsing engine might + decide there's an ambiguity. + (ffeexpr_token_name_rhs_): Eliminate parentypeSUBROUTINE_ + case, so we crash right away if it comes through. + * st.c, st.h, sta.c, sta.h (ffest_shutdown, ffesta_shutdown): + New functions. + +Tue Jun 24 19:47:29 1997 Craig Burley + + * com.c (ffecom_check_size_overflow_): New function + catches some cases of the size of a type getting + too large. varasm.c must catch the rest. + (ffecom_sym_transform_): Use new function. + (ffecom_type_localvar_): Ditto. + +Mon Jun 23 01:09:28 1997 Craig Burley + + * global.c (ffeglobal_proc_def_arg): Fix comparison + of argno to #args. + (ffeglobal_proc_ref_arg): Ditto. + + * lang-options.h, top.c: Rename `-fdebug' to `-fxyzzy', + since it's an unsupported internals option and some + poor user might guess that it does something. + + * bad.def: Make a warning for each filewide diagnostic. + Put all filewides together. + * com.c (ffecom_sym_transform_): Don't substitute + known global tree for global entities when `-fno-globals'. + * global.c (ffeglobal_new_progunit_): Don't produce + fatal diagnostics about globals when `-fno-globals'. + Instead, produce equivalent warning when `-Wglobals'. + (ffeglobal_proc_ref_arg): Ditto. + (ffeglobal_proc_ref_nargs): Ditto. + (ffeglobal_ref_progunit_): Ditto. + * lang-options.h, top.c, top.h: New `-fno-globals' option. + +Sat Jun 21 12:32:54 1997 Craig Burley + + * expr.c (ffeexpr_fulfill_call_): Set array variable + to avoid warning about uninitialized variable. + + * Make-lang.in: Get rid of any setting of HOST_* macros, + since these will break gcc's build! + * makefile: New file to make building derived files + easier. + +Thu Jun 19 18:19:28 1997 Craig Burley + + * g77.c (main): Install Emilio Lopes' patch to support + Ratfor, and to fix the printing of the version string + to go to stderr, not stdout. + * lang-specs.h: Install Emilio Lopes' patch to support + Ratfor, and patch the result to support picking up + `*f771' from the `specs' file. + +Thu Jun 12 14:36:25 1997 Craig Burley + + * storag.c (ffestorag_update_init, ffestorag_update_save): + Also update parent, in case equivalence processing + has already eliminated pointers to it via the + local equivalence info. + +Tue Jun 10 14:08:26 1997 Craig Burley + + * intdoc.c: Add cross-reference to end of description + of any generic intrinsic pointing to other intrinsics + with the same name. + + Warn about explicit type declaration for intrinsic + that disagrees with invocation: + * expr.c (ffeexpr_paren_rhs_let_): Preserve type info + for intrinsic functions. + (ffeexpr_token_funsubstr_): Ditto. + * intrin.c (ffeintrin_fulfill_generic): Warn if type + info of fulfilled intrinsic invocation disagrees with + explicit type info given symbol. + (ffeintrin_fulfill_specific): Ditto. + * stc.c (ffestc_R1208_item): Preserve type info + for intrinsics. + (ffestc_R501_item): Ditto. + +Mon Jun 9 17:45:44 1997 Craig Burley + + * com.c (ffecom_expr_intrinsic_): Fix several of the + libU77/libF77-unix handlers to properly convert their + arguments. + + * com-rt.def (FFECOM_gfrtFSTAT): Append missing "i" to + arg string. + +Fri Jun 6 14:37:30 1997 Craig Burley + + * com.c (ffecom_expr_intrinsic_): Have a case statement + for every intrinsic implementation, so missing ones + are caught via gcc warnings. + Don't call ffeintrin_codegen_imp anymore. + * intrin.c (ffeintrin_fulfill_generic): Remove cg_imp + stuff from here. + (ffeintrin_codegen_imp): Delete this function. + * intrin.def, intrin.h: Remove DEFIMQ stuff from here + as well. + +Thu Jun 5 13:03:07 1997 Craig Burley + + * top.c (ffe_decode_option): New -fbadu77-intrinsics-* + options. + * top.h: Ditto. + * intrin.h: New BADU77 family. + * intrin.c (ffeintrin_state_family): Ditto. + + Implement new scheme to track intrinsic names vs. forms: + * intrin.c (ffeintrin_fulfill_generic), + (ffeintrin_fulfill_specific), (ffeintrin_is_intrinsic), + intrin.def: The documented name is now either in the + generic info or, if no generic, in the specific info. + For a generic, the specific info contains merely the + distinguishing form (usually "function" or "subroutine"), + used for diagnostics about ambiguous references and + in the documentation. + + * intrin.def: Clean up formatting of DEFNAME block. + Convert many libU77 intrinsics into generics that + support both subroutine and function forms. + Put the function forms of side-effect routines into + the new BADU77 family. + Make MCLOCK and TIME return INTEGER*4 again, and add + INTEGER*8 equivalents called MCLOCK8 and TIME8. + Fix up more status return values to be written and + insist on them being I1 as well. + * com.c (ffecom_expr_intrinsic_): Lots of changes to + support new libU77 intrinsic interfaces. + +Mon Jun 2 00:37:53 1997 Craig Burley + + * com.c (ffecom_init_0): Pointer type is now INTEGER(KIND=7), + not INTEGER(KIND=0), since we want to reserve KIND=0 for + future use. + +Thu May 29 14:30:33 1997 Craig Burley + + Fix bugs preventing CTIME(I*4) from working correctly: + * com.c (ffecom_char_args_): For FUNCREF case, process + args to intrinsic just as they would be in + ffecom_expr_intrinsic_. + * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtTTYNAM): Fix + argument decls to specify `&'. + +Wed May 28 22:19:49 1997 Craig Burley + + Fix gratuitous warnings exposed by dophot aka 970528-1: + * global.c (ffeglobal_proc_def_arg, ffeglobal_proc_ref_arg): + Support distinct function/subroutine arguments instead of + just procedures. + * global.h: Ditto. + * expr.c (ffeexpr_fulfill_call_): A SYMTER with kindNONE + also is a procedure (either function or subroutine). + +Mon May 26 20:25:31 1997 Craig Burley + + * bad.def: Have several lexer diagnostics refer to + documentation for people who need more info on what Fortran + source code is supposed to look like. + + * expr.c (ffeexpr_reduced_bool1_), bad.def: New diagnostics + specific to .NOT. now mention only one operand instead + of two. + + * g77.c: Recognize -fsyntax-only, similar to -c etc. + (lookup_option): Fix bug that prevented non-`--' options + from being recognized. + +Sun May 25 04:29:04 1997 Craig Burley + + * intrin.def (FFEINTRIN_impCTIME): Accept `I*' expression + for STime instead of requiring `I2'. + +Tue May 20 16:14:40 1997 Craig Burley + + * symbol.c (ffesymbol_reference): All references to + standard intrinsics are considered explicit, so as + to avoid generating basically useless warnings. + * intrin.c, intrin.h (ffeintrin_is_standard): Returns TRUE + if intrinsic is standard. + +Sun May 18 21:14:59 1997 Craig Burley + + * com-rt.def: Changed all external names of the + form `"\([a-z0-9]*\)_' to `"G77_\1_0"' so as to + allow any name valid as an intrinsic to be used + as such and as a user-defined external procedure + name or common block as well. + +Thu May 8 13:07:10 1997 Craig Burley + + * expr.c (ffeexpr_cb_end_notloc_): For %VAL, %REF, and + %DESCR, copy arg info into new node. + +Mon May 5 14:42:17 1997 Craig Burley + + From Uwe F. Mayer : + * Make-lang.in (g77-cross): Fix typo in g77.c path. + + From Brian McIlwrath : + * lang-specs.h: Have g77 pick up options from a section + labeled `*f771' of the `specs' file. + +Sat May 3 02:46:08 1997 Craig Burley + + * intrin.def (FFEINTRIN_defSIGNAL): Add optional `Status' + argument that com.c already expects (per Dave Love). + + More changes to support better tracking of (filewide) + globals, in particular, the arguments to procedures: + * bad.def (FFEBAD_FILEWIDE_NARGS, FFEBAD_FILEWIDE_NARGS_W, + FFEBAD_FILEWIDE_ARG, FFEBAD_FILEWIDE_ARG_W): New diagnostics. + * expr.c (ffebad_fulfill_call_): Provide info on each + argument to ffeglobal. + * global.c, global.h (ffeglobal_proc_def_arg, + ffeglobal_proc_def_nargs, ffeglobal_proc_ref_arg, + ffeglobal_proc_ref_args): New functions. + (ffeglobalArgSummary, ffeglobalArgInfo_): New types. + +Tue Apr 29 18:35:41 1997 Craig Burley + + More changes to support better tracking of (filewide) + globals: + * expr.c (ffeexpr_fulfill_call_): New function. + (ffeexpr_token_name_lhs_): Call after building procedure + reference expression. Also leave info field for ANY-ized + expression alone. + (ffeexpr_token_arguments_): Ditto. + +Mon Apr 28 20:04:18 1997 Craig Burley + + Changes to support better tracking of (filewide) + globals, mainly to avoid crashes due to inlining: + * bad.def: Go back to quoting intrinsic names, + (FFEBAD_FILEWIDE_DISAGREEMENT, FFEBAD_FILEWIDE_TIFF, + FFEBAD_FILEWIDE_TYPE_MISMATCH): New diagnostics. + (FFEBAD_INTRINSIC_EXPIMP, FFEBAD_INTRINSIC_GLOBAL): Reword + for clarity. + * com.c (ffecom_do_entry_, ffecom_start_progunit_, + ffecom_sym_transform_): Accommodate new FFEGLOBAL_typeEXT + possibility. + * expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_extfunc_, + ffeexpr_sym_rhs_actualarg_, ffeexpr_declare_parenthesized_, + ffeexpr_paren_rhs_let_, ffeexpr_token_funsubstr_): + Fill in real kind info instead of leaving NONE where + appropriate. + Register references to intrinsics and globals with ffesymbol + using new ffesymbol_reference function instead of + ffesymbol_globalize. + * global.c (ffeglobal_type_string_): New array for + new diagnostics. + * global.h, global.c: + Replace ->init mechanism with ->tick mechanism. + Move other common-related members into a substructure of + a union, so the proc substructure can be introduced + to include members related to externals other than commons. + Don't complain about ANY-ized globals; ANY-ize globals + once they're complained about, in any case where code + generation could become a problem. + Handle global entries that have NONE type (seen as + intrinsics), EXT type (seen as EXTERNAL), and so on. + Keep track of kind and type of externals, both via + definition and via reference. + Diagnose disagreements about kind or type of externals + (such as functions). + (ffeglobal_ref_intrinsic, ffeglobal_ref_progunit_): New + functions. + * stc.c (ffestc_R1207_item, ffestc_R1208_item, + ffestc_R1219, ffestc_R1226): + Call ffesymbol_reference, not ffesymbol_globalize. + * stu.c (ffestu_sym_end_transition, + ffestu_sym_exec_transition): + Call ffesymbol_reference, not ffesymbol_globalize. + * symbol.c (ffesymbol_globalize): Removed... + (ffesymbol_reference): ...to this new function, + which more generally registers references to symbols, + globalizes globals, and calls on the ffeglobal module + to check globals filewide. + + * global.h, global.c: Rename some macros and functions + to more clearly distinguish common from other globals. + All callers changed. + + * com.c (ffecom_sym_transform_): Trees describing + filewide globals must be allocated on permanent obstack. + + * expr.c (ffeexpr_token_name_lhs_): Don't generate + gratuitous diagnostics for FFEINFO_whereANY case. + +Thu Apr 17 03:27:18 1997 Craig Burley + + * global.c: Add support for flagging intrinsic/global + confusion via warnings. + * bad.def (FFEBAD_INTRINSIC_EXPIMP, + FFEBAD_INTRINSIC_GLOBAL): New diagnostics. + * expr.c (ffeexpr_token_funsubstr_): Ditto. + (ffeexpr_sym_lhs_call_): Ditto. + (ffeexpr_paren_rhs_let_): Ditto. + * stc.c (ffestc_R1208_item): Ditto. + +Wed Apr 16 22:40:56 1997 Craig Burley + + * expr.c (ffeexpr_declare_parenthesized_): INCLUDE + context can't be an intrinsic invocation either. + +Fri Mar 28 10:43:28 1997 Craig Burley + + * expr.c (ffeexpr_token_arguments_): Make sure top of + exprstack is operand before dereferencing operand field. + + * lex.c (ffelex_prepare_eos_): Fill up truncated + hollerith token, so crash on null ->text field doesn't + happen later. + + * stb.c (ffestb_R10014_): If NAMES isn't recognized (or + the recognized part is followed in the token by a + non-digit), don't try and collect digits, as there + might be more than FFEWHERE_indexMAX letters to skip + past to do so -- and the code is diagnosed anyway. + +Thu Mar 27 00:02:48 1997 Craig Burley + + * com.c (ffecom_sym_transform_): Force local + adjustable array onto stack. + + * stc.c (ffestc_R547_item_object): Don't actually put + the symbol in COMMON if the symbol has already been + EQUIVALENCE'd to a different COMMON area. + + * equiv.c (ffeequiv_add): Don't actually do anything + if there's a disagreement over which COMMON area is + involved. + +Tue Mar 25 03:35:19 1997 Craig Burley + + * com.c (ffecom_transform_common_): If no explicit init + of COMMON area, don't actually init it even though + storage area suggests it. + +Mon Mar 24 12:10:08 1997 Craig Burley + + * lex.c (ffelex_image_char_): Avoid overflowing the + column counter itself, as well as the card image. + + * where.c (ffewhere_line_new): Cast ffelex_line_length() + to (size_t) so 255 doesn't overflow to 0! + + * stc.c (ffestc_labeldef_notloop_begin_): Don't gratuitously + terminate loop before processing statement, so block + doesn't disappear out from under EXIT/CYCLE processing. + (ffestc_labeldef_notloop_): Has old code from above + function, instead of just calling it. + + * expr.c (ffeexpr_cb_comma_i_4_): Don't skip over + arbitrary token (such as EOS). + + * com.c (ffecom_init_zero_): Handle RECORD_TYPE and + UNION_TYPE so -fno-zeros works with -femulated-complex. + +1997-03-12 Dave Love + + * intrin.def: New intrinsics INT2, INT8, CPU_TIME. Fix AND, OR, + XOR. [Integrated by burley, AND/OR/XOR already fixed, INT8 + implementation changed/fixed.] + +Wed Mar 12 10:40:08 1997 Craig Burley + + * Make-lang.in ($(srcdir)/f/intdoc.texi): Simplify rules + so building f/intdoc is not always necessary; remove + f/intdoc after running it if it is built. + +Tue Mar 11 23:42:00 1997 Craig Burley + + * intrin.def (FFEINTRIN_impAND, FFEINTRIN_impOR, + FFEINTRIN_impXOR): Use the IAND, IOR, and IEOR implementations + of these, instead of crashing in ffecom_expr_intrinsic_ + or adding case labels there. + +Mon Mar 10 22:51:23 1997 Craig Burley + + * intdoc.c: Fix so any C compiler can compile this. + +Fri Feb 28 13:16:50 1997 Craig Burley + + * Version 0.5.20 released. + +Fri Feb 28 01:45:25 1997 Craig Burley + + * Make-lang.in (RUNTIMESTAGESTUFF, LIBU77STAGESTUFF): + Move some files incorrectly in the former to the latter, + and add another file or two to the latter. + + New meanings for (KIND=n), and new denotations in the + little language describing intrinsics: + * com.c (ffecom_init_0): Assign new meanings. + * intdoc.c: Document new meanings. + Support the new denotations. + * intrin.c: Employ new meanings, mapping them to internal + values (which are the same as they ever were for now). + Support the new denotations. + * intrin.def: Switch DEFIMP table to the new denotations. + + * intrin.c (ffeintrin_check_): Fix bug that was leaving + LOC() and %LOC() returning INTEGER*4 on systems where + it should return INTEGER*8. + + * type.c: Canonicalize function definitions, for etags + and such. + +Wed Feb 26 20:43:03 1997 Craig Burley + + * com.c (ffecom_init_0): Choose INTEGER(KIND=n) types, + where n is 2, 3, and 4, according to the new docs + instead of according to the old C correspondences + (which seem less useful at this point). + + * equiv.c (ffeequiv_destroy_): New function. + (ffeequiv_layout_local_): Use this new function + whenever the laying out of a local equivalence chain + is aborted for any reason. + Otherwise ensure that symbols no longer reference + the stale ffeequiv entries that result when they + are killed off in this procedure. + Also, the rooted symbol is one that has storage, + it really is irrelevant whether it has an equiv entry + at this point (though the code to remove the equiv + entry was put in at the end, just in case). + (ffeequiv_kill): When doing internal checks, make + sure the victim isn't named by any symbols it points + to. Not as complete a check as looking through the + entire symbol table (which does matter, since some + code in equiv.c used to remove symbols from the lists + for an ffeequiv victim but not remove that victim as the + symbol's equiv info), but this check did find some + real bugs in the code (that were fixed). + +Mon Feb 24 16:42:13 1997 Craig Burley + + * com.c (ffecom_expr_intrinsic_): Fix a couple of + warnings about uninitialized variables. + * intrin.c (ffeintrin_check_): Ditto, but there were + a couple of _real_ uninitialized-variable _bugs_ here! + (ffeintrin_fulfill_specific): Ditto, no real bug here. + +Sun Feb 23 15:01:20 1997 Craig Burley + + Clean up diagnostics (especially about intrinsics): + * bad.def (FFEBAD_UNIMPL_STMT): Remove. + (FFEBAD_INTRINSIC_*, FFEBAD_NEED_INTRINSIC): Clean these + up so they're friendlier. + (FFEBAD_INTRINSIC_CMPAMBIG): New. + * intrin.c (ffeintrin_fulfill_generic, + ffeintrin_fulfill_specific, ffeintrin_is_intrinsic): + Always choose + generic or specific name text (which is for doc purposes + anyway) over implementation name text (which is for + internal use). + * intrin.def: Use more descriptive name texts for generics + and specifics in cases where the names themselves are not + enough (e.g. IDATE, which has two forms). + + Fix some intrinsic mappings: + * intrin.def (FFEINTRIN_specIDINT, FFEINTRIN_specAND, + FFEINTRIN_specDFLOAT, FFEINTRIN_specDREAL, FFEINTRIN_specOR, + FFEINTRIN_specXOR): Now have their own implementations, + instead of borrowing from others. + (FFEINTRIN_specAJMAX0, FFEINTRIN_specAJMIN0, FFEINTRIN_specBJTEST, + FFEINTRIN_specDFLOTJ, FFEINTRIN_specFLOATJ, FFEINTRIN_specJIABS, + FFEINTRIN_specJIAND, FFEINTRIN_specJIBCLR, FFEINTRIN_specJIBITS, + FFEINTRIN_specJIBSET, FFEINTRIN_specJIDIM, FFEINTRIN_specJIDINT, + FFEINTRIN_specJIDNNT, FFEINTRIN_specJIEOR, FFEINTRIN_specJIFIX, + FFEINTRIN_specJINT, FFEINTRIN_specJIOR, FFEINTRIN_specJISHFT, + FFEINTRIN_specJISHFTC, FFEINTRIN_specJISIN, FFEINTRIN_specJMAX0, + FFEINTRIN_specJMAX1, FFEINTRIN_specJMIN0, FFEINTRIN_specJMIN1, + FFEINTRIN_specJMOD, FFEINTRIN_specJNINT, FFEINTRIN_specJNOT,): + Turn these implementations off, since it's not clear + just what types they expect in the context of portable Fortran. + (DFLOAT): Now in FVZ family, since f2c supports them + + Support intrinsic inquiry functions (BIT_SIZE, LEN): + * intrin.c: Allow `i' in . + * intrin.def (FFEINTRIN_impBIT_SIZE, FFEINTRIN_impLEN): + Mark args with `i'. + +Sat Feb 22 13:34:09 1997 Craig Burley + + Only warn, don't error, for reference to unimplemented + intrinsic: + * bad.def (FFEBAD_INTRINSIC_UNIMPLW): Warning version + of _UNIMPL. + * intrin.c (ffeintrin_is_intrinsic): Use new warning + version of _UNIMPL (FFEBAD_INTRINSIC_UNIMPLW). + + Complain about REAL(Z) and AIMAG(Z) (Z is DOUBLE COMPLEX): + * bad.def (FFEBAD_INTRINSIC_CMPAMBIG): New diagnostic. + * expr.c: Needed #include "intrin.h" anyway. + (ffeexpr_token_intrincheck_): New function handles delayed + diagnostic for "REAL(REAL(expr)" if next token isn't ")". + (ffeexpr_token_arguments_): Do most of the actual checking here. + * intrin.h, intrin.c (ffeintrin_fulfill_specific): New + argument, check_intrin, to tell caller that intrin is REAL(Z) + or AIMAG(Z). All callers updated, mostly to pass NULL in + for this. + (ffeintrin_check_): Also has new arg check_intrin for same + purpose. All callers updated the same way. + * intrin.def (FFEINTRIN_impAIMAG): Change return type + from "R0" to "RC", to accommodate f2c (and perhaps other + non-F90 F77 compilers). + * top.h, top.c: New option -fugly-complex. + + New GNU intrinsics REALPART, IMAGPART, and COMPLEX: + * com.c (ffecom_expr_intrinsic_): Implement impCOMPLEX + and impREALPART here. (specIMAGPART => specAIMAG.) + * intrin.def: Add the intrinsics here. + + Rename implementations of VXTIDATE and VXTTIME to IDATEVXT + and TIMEVXT, so they sort more consistently: + * com.c (ffecom_expr_intrinsic_): + * intrin.def: + + Delete intrinsic group `dcp', add `gnu', etc.: + * intrin.c (ffeintrin_state_family): FFEINTRIN_familyGNU + replaces FFEINTRIN_familyDCP, and gets state from `gnu' + group. + Get rid of FFEINTRIN_familyF2Z, nobody needs it. + Move FFEINTRIN_specDCMPLX from DCP family to FVZ family, + as f2c has it. + Move FFEINTRIN_specDFLOAT from F2C family to FVZ family. + (FFEINTRIN_specZABS, FFEINTRIN_specZCOS, FFEINTRIN_specZEXP, + FFEINTRIN_specZLOG, FFEINTRIN_specZSIN, FFEINTRIN_specZSQRT): + Move these from F2Z family to F2C family. + * intrin.h (FFEINTRIN_familyF2Z, FFEINTRIN_familyDCP): Remove. + (FFEINTRIN_familyGNU): Add. + * top.h, top.c: Replace `dcp' with `gnu'. + + * com.c (ffecom_expr_intrinsic_): Clean up by collecting + simple conversions into one nice, conceptual place. + Fix up some intrinsic subroutines (MVBITS, KILL, UMASK) to + properly push and pop call temps, to avoid wasting temp + registers. + + * g77.c (doit): Toon says variables should be defined + before being referenced. Spoilsport. + + * intrin.c (ffeintrin_check_): Now Dave's worried about + warnings about uninitialized variables. Okay, so for + basic return values 'g' and 's', they _were_ + uninitialized -- is determinism really _that_ useful? + + * intrin.def (FFEINTRIN_impFGETC): Fix STATUS argument + so that it is INTENT(OUT) instead of INTENT(IN). + +1997-02-21 Dave Love + + * intrin.def, com.c: Support Sun-type `short' and `long' + intrinsics. Perhaps should also do Microcruft-style `int2'. + +Thu Feb 20 15:16:53 1997 Craig Burley + + * com.c (ffecom_expr_intrinsic_): Clean up indentation. + Support SECONDSUBR intrinsic implementation. + Rename SECOND to SECONDFUNC for direct support via library. + + * g77.c: Fix to return proper status value to shell, + by obtaining it from processes it spawns. + + * intdoc.c: Fix minor typo. + + * intrin.def: Turn SECOND into generic that maps into + function and subroutine forms. + + * intrin.def: Make FLOAT and SNGL into specific intrinsics. + + * intrin.def, intrin.h: Change the way DEFGEN and DEFSPEC + macros work, to save on verbage. + +Mon Feb 17 02:08:04 1997 Craig Burley + + New subsystem to automatically generate documentation + on intrinsics: + * Make-lang.in ($(srcdir)/f/g77.info, + $(srcdir)/f/g77.dvi): Move g77 doc rules around. + Add to g77 doc rules the new subsystem. + (f77.mostlyclean, f77.maintainer-clean): Also clean up + after new doc subsystem. + * intdoc.c, intdoc.h: New doc subsystem code. + * intrin.h [FFEINTRIN_DOC]: When 1, don't pull in + stuff not needed by doc subsystem. + + Improve on intrinsics mechanism to both be more + self-documenting and to catch more user errors: + * intrin.c (ffeintrin_check_): Recognize new arg-len + and arg-rank information, and check it. + Move goto and signal indicators to the basic type. + Permit reference to arbitrary argument number, not + just first argument (for BESJN and BESYN). + (ffeintrin_init_0): Check and accept new notations. + * intrin.c, intrin.def: Value in COL now identifies + arguments starting with number 0 being the first. + + Some minor intrinsics cleanups (resulting from doc work): + * com.c (ffecom_expr_intrinsic_): Implement FLUSH + directly once again, handle its optional argument, + so it need not be a generic (awkward to handle in docs). + * intrin.def (BESJ0, BESJ1, BESJN, BESY0, BESY1, BESYN, + CHDIR, CHMOD, CTIME, DBESJ0, DBESJ1, DBESJN, DBESY0, + DBESY1, DBESYN, DDIM, ETIME, FGETC, FNUM, FPUTC, FSTAT, + GERROR, GETCWD, GETGID, GETLOG, GETPID, GETUID, GMTIME, + HOSTNM, IDATE, IERRNO, IIDINT, IRAND, ISATTY, ITIME, JIDINT, + LNBLNK, LSTAT, LTIME, MCLOCK, PERROR, SRAND, SYMLNK, TTYNAM, + UMASK): Change capitalization of initcaps (official) name + to be consistent with Burley's somewhat arbitrary rules. + (BESJN, BESYN): These have return arguments of same type + as their _second_ argument. + (FLUSH): Now a specific, not generic, intrinsic, with one + optional argument. + (FLUSH1): Eliminated. + Add arg-len and arg-rank info to several intrinsics. + (ITIME): Change argument type from REAL to INTEGER. + +Tue Feb 11 14:04:42 1997 Craig Burley + + * Make-lang.in (f771): Invocation of Makefile now done + with $(srcdir)=gcc to go along with $(VPATH)=gcc. + ($(srcdir)/f/runtime/configure, + $(srcdir)/f/runtime/libU77/configure): Break these out + so spurious triggers of this rule don't happen (as when + configure.in is more recent than libU77/configure). + (f77.rebuilt): Distinguish source versus build files, + so this target can be invoked from build directory and + still work. + * Makefile.in: This now expects $(srcdir) to be the gcc + source directory, not gcc/f, to agree with $(VPATH). + Accordingly, $(INCLUDES) has been fixed, various cruft + removed, the removal of f771 has been fixed to remove + the _real_ f771 (not the one in gcc's parent directory), + and so on. + + * lex.c: Part of ffelex_finish_statement_() now done + by new function ffelex_prepare_eos_(), so that, in one + popular case, the EOS can be prepared while the pointer + is at the end of the non-continued line instead of the + end of the line that marks no continuation. This improves + the appearance of diagnostics substantially. + +Mon Feb 10 12:44:06 1997 Craig Burley + + * Make-lang.in: runtime Makefile's, and include/f2c.h, + also depend on f/runtime/configure and f/runtime/libU77/configure. + + Fix various libU77 routines: + * com-rt.def (FFECOM_gfrtCTIME, FFECOM_gfrtMCLOCK, + FFECOM_gfrtTIME): These now use INTEGER*8 for time values, + for compatibility with systems like Alpha. + (FFECOM_gfrtSYSTEM_CLOCK, FFECOM_gfrtTTYNAM): Delete incorrect + trailing underscore in routine names. + * intrin.c, intrin.def: Support INTEGER*8 return values and + arguments ('4'). Change FFEINTRIN_impCTIME, FFEINTRIN_impMCLOCK, + and FFEINTRIN_impTIME accordingly. + (ffeintrin_is_intrinsic): Don't give caller a clue about + form of intrinsic -- shouldn't be needed at this point. + + Cope with generic intrinsics that are subroutines and functions: + * com.c (ffecom_finish_symbol_transform_, ffecom_expr_transform_): + Don't transform an intrinsic that is not known to be a subroutine + or a function. (Maybe someday have to avoid transforming + any intrinsic with an undecided or unknown implementation.) + * expr.c (ffeexpr_declare_unadorned_, + ffeexpr_declare_parenthesized_): Ok to invoke generic + intrinsic that has at least one subroutine form as a + subroutine. + Ok to pass intrinsic as actual arg if it has a known specific + intrinsic form that is valid as actual arg. + (ffeexpr_declare_parenthesized_): An unknown kind of + intrinsic has a paren_type chosen based on context. + (ffeexpr_token_arguments_): Build funcref/subrref based + on context, not on kind of procedure being called. + * intrin.h, intrin.c (ffeintrin_is_intrinsic): Undo changes of + Tue Feb 4 23:12:04 1997 by me, change all callers to leave + intrinsics as FFEINFO_kindNONE at this point. (Some callers + also had unused variables deleted as a result.) + + Enable all intrinsic groups (especially f90 and vxt): + * target.h (FFETARGET_defaultSTATE_DCP, FFETARGET_defaultSTATE_F2C, + FFETARGET_defaultSTATE_F90, FFETARGET_defaultSTATE_MIL, + FFETARGET_defaultSTATE_UNIX, FFETARGET_defaultSTATE_VXT): + Delete these macros, let top.c set them directly. + * top.c (ffeintrinsic_state_dcp_, ffe_intrinsic_state_f2c_, + ffe_intrinsic_state_f90_, ffe_intrinsic_state_mil_, + ffe_intrinsic_state_unix_, ffe_intrinsic_state_vxt_): + Enable all these directly. + +Sat Feb 8 03:21:50 1997 Craig Burley + + * g77.c: Incorporate recent changes to ../gcc.c. + For version magic (e.g. `g77 -v'), instead of compiling + /dev/null, write, compile, run, and then delete a small + program that prints the version numbers of the three + components of libf2c (libF77, libI77, and libU77), + so we get this info with bug reports. + Also, this change reduces the chances of accidentally + linking to an old (complex-alias-problem) libf2c. + Fix `-L' so the argument is expected in `-Larg'. + + * com.h (FFECOM_f2cLONGINT): For INTEGER*8 support in f2c.h, + dynamically determine proper type here, instead of + assuming `long long int' is correct. + +Tue Feb 4 23:12:04 1997 Craig Burley + + Add libU77 library from Dave Love : + * Make-lang.in (f77-runtime): Depend on new Makefile. + (f/runtime/libU77/Makefile): New rule. + Also configure libU77. + ($(srcdir)/f/runtime/configure: Use Makefile.in, + so configuration doesn't have to have happened. + (f77.mostlyclean, f77.clean, f77.distclean, + f77.maintainer-clean): Some fixups here, but more work + needed. + (RUNTIMESTAGESTUFF): Add libU77's config.status. + (LIBU77STAGESTUFF, f77.stage1, f77.stage2, f77.stage3, + f77.stage4): New macro, appropriate uses added. + * com-rt.def: Add libU77 procedures. + * com.c (ffecom_f2c_ptr_to_integer_type_node, + ffecom_f2c_ptr_to_real_type_node): New type nodes. + (FFECOM_rttypeCHARACTER_): New type of run-time function. + (ffecom_char_args_): Handle CHARACTER*n intrinsics + where n != 1 here, instead of in ffecom_expr_intrinsic_. + (ffecom_expr_intrinsic_): New code to handle new + intrinsics. + In particular, change how FFEINTRIN_impFLUSH is handled. + (ffecom_make_gfrt_): Handle new type of run-time function. + (ffecom_init_0): Initialize new type nodes. + * config-lang.in: New libU77 directory. + * intrin.h, intrin.c (ffeintrin_is_intrinsic): Handle + potential generic for subroutine _and_ function + specifics via two new arguments. All callers changed. + Properly ignore deleted/disabled intrinsics in resolving + generics. + (ffeintrin_check_, ffeintrin_init_0): Handle CHARACTER intrinsics of (*) + length. + * intrin.def: Permission granted by FSF to place this in + public domain, which will allow it to serve as source + for both g77 program and its documentation. + Add libU77 intrinsics. + (FLUSH): Now a generic, not specific, intrinsic. + (DEFIMP): Now support return modifier for CHARACTER intrinsics. + + * com-rt.def (FFECOM_gfrtDIM, FFECOM_gfrtERF, + FFECOM_gfrtERFC, FFECOM_gfrtEXP, FFECOM_gfrtSIGN, + FFECOM_gfrtSIN, FFECOM_gfrtSINH, FFECOM_gfrtTAN, + FFECOM_gfrtTANH, FFECOM_gfrtPOW_RI): Change "&r" to "&f". + +Sat Feb 1 12:15:09 1997 Craig Burley + + * Version 0.5.19.1 released. + + * com.c (ffecom_expr_, ffecom_expr_intrinsic_, + ffecom_tree_divide_): FFECOM_gfrtPOW_ZI, + FFECOM_gfrtCONJG, FFECOM_gfrtDCONJG, + FFECOM_gfrtCCOS, FFECOM_gfrtCDCOS, + FFECOM_gfrtCLOG, FFECOM_gfrtCDLOG, + FFECOM_gfrtCSIN, FFECOM_gfrtCDSIN, + FFECOM_gfrtCSQRT, FFECOM_gfrtCDSQRT, + FFECOM_gfrtDIV_CC, FFECOM_gfrtDIV_ZZ: These all require + result to _not_ overlap one or more inputs. + +Sat Feb 1 00:25:55 1997 Craig Burley + + * com.c (ffecom_init_0): Do internal checks only if + -fset-g77-defaults not specified. + + Fix %LOC(), LOC() to return sufficiently wide type: + * com.h, com.c (ffecom_pointer_kind_, ffecom_label_kind_, + ffecom_pointer_kind(), ffecom_label_kind()): New globals + and accessor macros hold kind for integer pointers on target + machine. + (ffecom_init_0): Determine narrowest INTEGER type that + can hold a pointer (usually INTEGER*4 or INTEGER*8), + store it in ffecom_pointer_kind_, etc. + * expr.c (ffeexpr_cb_end_loc_): Use right type for %LOC(). + * intrin.c (ffeintrin_check_, ffeintrin_init_0): Support + new 'p' kind for type of intrinsic. + * intrin.def (FFEINTRIN_impLOC): Returns "Ip" instead of "I1", + so LOC() type is correct for target machine. + + Support -fugly-assign: + * lang-options.h, top.h, top.c (ffe_decode_option): + Accept -fugly-assign and -fno-ugly-assign. + * com.c (ffecom_expr_): Handle -fugly-assign. + * expr.c (ffeexpr_finished_): Check right type for ASSIGN + contexts. + +Fri Jan 31 14:30:00 1997 Craig Burley + + Remove last vestiges of -fvxt-not-f90: + * stb.c (ffestb_R10012_, ffestb_R10014_, ffestb_V0201_): + top.c, top.h: + +Fri Jan 31 02:13:54 1997 Craig Burley + + * top.c (ffe_decode_option): Warn if -fugly is specified, + it'll go away soon. + + * symbol.h: No need to #include "bad.h". + + Reorganize features from -fvxt-not-f90 to -fvxt: + * lang-options.h, top.h, top.c: + Accept -fvxt and -fno-vxt, but not -fvxt-not-f90 or -ff90-not-vxt. + Warn if the latter two are used. + * expr.c (ffeexpr_nil_rhs_): Double-quote means octal constant. + (ffeexpr_token_rhs_): Double-quote means octal constant. + * target.h (FFETARGET_defaultIS_VXT_NOT_90): Delete macro + definition, no longer needed. + + Make some -ff90 features the default: + * data.c (ffedata_value): DATA implies SAVE. + * src.h (ffesrc_is_name_noninit): Underscores always okay. + + Fix up some more #error directives by quoting their text: + * bld.c (ffebld_constant_is_zero): + * target.h: + +Sat Jan 18 18:22:09 1997 Craig Burley + + * g77.c (lookup_option, main): Recognize `-Xlinker', + `-Wl,', `-l', `-L', `--library-directory', `-o', + `--output'. + (lookup_option): Don't depend on SWITCH_TAKES_ARG + being correct, it might or might not have `-x' in + it depending on host. + Return NULL argument if it would be an empty string. + (main): If no input files (by gcc.c's definition) + but `-o' or `--output' specified, produce diagnostic + to avoid overwriting output via gcc. + Recognize C++ `+e' options. + Treat -L as another non-magical option (like -B). + Don't append_arg `-x' twice. + +Fri Jan 10 23:36:00 1997 Craig Burley + + * top.c [BUILT_FOR_270] (ffe_decode_option): Make + -fargument-noalias-global the default. + +Fri Jan 10 07:42:27 1997 Craig Burley + + Enable inlining of previously-compiled program units: + * com.c (ffecom_do_entry_, ffecom_start_progunit_): + Register new public function in ffeglobal database. + (ffecom_sym_transform_): Any GLOBAL or potentially GLOBAL + symbol should be looked up in ffeglobal database and + that tree node used, if found. That way, gcc knows + the references are to those earlier definitions, so it + can emit shorter branches/calls, inline, etc. + (ffecom_transform_common_): Minor change for clarity. + * expr.c (ffeexpr_sym-lhs_call_, ffeexpr_sym_lhs_extfunc_, + ffeexpr_sym_rhs_actualarg_, ffeexpr_paren_rhs_let_, + ffeexpr_token_funsubstr_): Globalize symbol as needed. + * global.c (ffeglobal_promoted): New function to look up + existing local symbol in ffeglobal database. + * global.h: Declare new function. + * name.h (ffename_token): New macro, plus alphabetize. + * stc.c (ffestc_R1207_item): Globalize EXTERNAL symbol. + * stu.c (ffestu_sym_end_transition, ffestu_sym_exec_transition): + Globalize symbol as needed. + * symbol.h, symbol.c (ffesymbol_globalize): New function. + +Thu Jan 9 14:20:00 1997 Craig Burley + + * ste.c (ffeste_R809): Produce a diagnostic for SELECT CASE + on CHARACTER type, instead of crashing. + +Thu Jan 9 00:52:45 1997 Craig Burley + + * stc.c (ffestc_order_entry_, ffestc_order_format_, + ffestc_R1226): Allow ENTRY and FORMAT before IMPLICIT + NONE, by having them transition only to state 1 instead + of state 2 (which is disallowed by IMPLICIT NONE). + +Mon Jan 6 22:44:53 1997 Craig Burley + + Fix AXP bug found by Rick Niles (961201-1.f): + * com.c (ffecom_init_0): Undo my 1996-05-14 change, as + it is incorrect and prevented easily finding this bug. + * target.h [__alpha__] (ffetargetReal1, ffetargetReal2): + Use int instead of long. + (ffetarget_cvt_r1_to_rv_, ffetarget_cvt_rv_to_r1_, + ffetarget_cvt_r2_to_rv_, ffetarget_cvt_rv_to_r2_): + New functions that intercede for callers of + REAL_VALUE_(TO|UNTO)_TARGET_(SINGLE|DOUBLE). + All callers changed, and damaging casts to (long *) removed. + +Sun Jan 5 03:26:11 1997 Craig Burley + + * Make-lang.in (g77, g77-cross): Depend on both g77.c and + zzz.c, in $(srcdir)/f/. + + Better design for -fugly-assumed: + * stc.c (ffestc_R501_item, ffestc_R524_item, + ffestc_R547_item_object): Pass new is_ugly_assumed flag. + * stt.c, stt.h (ffestt_dimlist_as_expr, + ffestt_dimlist_type): New is_ugly_assumed flag now + controls whether "1" is treated as "*". + Don't treat "2-1" or other collapsed constants as "*". + +Sat Jan 4 15:26:22 1997 Craig Burley + + * stb.c (ffestb_R10012_): Don't confirm on FORMAT(A,) + or even FORMAT(A,,B), as R1229 only warns about the + former currently, and this seems reasonable. + + Improvements to diagnostics: + * sta.c (ffesta_second_): Don't add any ffestb parsers + unless they're specifically called for. + Set up ffesta_tokens[0] before calling ffestc_exec_transition, + else stale info might get used. + (ffesta_save_): Do a better job picking which parser to run + after running all parsers with no confirmed possibles. + (FFESTA_maxPOSSIBLES_): Decrease from 100 now that so few + possibles are ever on the list at a given time. + (struct _ffesta_possible): Add named attribute. + (ffesta_add_possible_exec_, ffesta_add_possible_nonexec_): + Make these into macros that call a single function that now + sets the named attribute. + (ffesta_add_possible_unnamed_exec_, + ffeseta_add_possible_unnamed_nonexec_): New macros. + (ffesta_second_): Designate unnamed possibles as + appropriate. + * stb.c (ffestb_R1229, ffestb_R12291_): Use more general + diagnostic, so things like "POINTER (FOO, BAR)" are + diagnosed as unrecognized statements, not invalid statement + functions. + * stb.h, stb.c (ffestb_unimplemented): Remove function. + +1996-12-30 Dave Love + + * com.c: #include libU77/config.h + (ffecom_f2c_ptr_to_integer_type_node, + ffecom_f2c_ptr_to_integer_type_node): New variables. + (ffecom_init_0): Use them. + (ffecom_expr_intrinsic_): Many news cases for libU77 intrinsics. + + * com-rt.def: New definitions for libU77. + * intrin.def: Likewise. Also correct ftell arg spec. + + * Makefile.in (f/runtime/libU77/config.h): New target for com.c + dependency. + * Make-lang.in (f771): Depend on f/runtime/Makefile for the above. + +Sat Dec 28 12:28:29 1996 Craig Burley + + * stt.c (ffestt_dimlist_type): Treat ([...,]1) in dimlist + as ([...,]*) if -fugly-assumed, so assumed-size array + detected early enough. + +Thu Dec 19 14:01:57 1996 Craig Burley + + * target.h (FFETARGET_REAL_VALUE_FROM_INT_): Conditionalize + definition on BUILT_FOR_280, not BUILT_WITH_280, since + the name of the macro was (properly) changed since 0.5.19. + + Fix warnings/errors resulting from ffetargetOffset becoming + `long long int' instead of `unsigned long' as of 0.5.19, + while ffebitCount remains `unsigned long': + * bld.c (ffebld_constantarray_dump): Avoid warnings by + using loop var of appropriate type, and using casts. + * com.c (ffecom_expr_): Use right type for loop var. + (ffecom_sym_transform_, ffecom_transform_equiv_): + Cast to right type in assertions. + * data.c (ffedata_gather_, ffedata_value_): Cast to right + type in assertions and comparisons. + +Wed Dec 18 12:07:11 1996 Craig Burley + + Patch from Alexandre Oliva : + * Makefile.in (all.indirect): Don't pass -bbigtoc option + to GNU ld. + + Cope with new versions of gcc: + * com.h (BUILT_FOR_280): New macro. + * com.c (ffecom_ptr_to_expr): Conditionalize test of + OFFSET_REF. + (ffecom_build_complex_constant_): Conditionalize calling + sequence for build_complex. + +Sat Dec 7 07:15:17 1996 Craig Burley + + * Version 0.5.19 released. + +Fri Dec 6 12:23:55 1996 Craig Burley + + * g77.c: Default to assuming "f77" is in $LANGUAGES, since + the LANGUAGE_F77 macro isn't defined by anyone anymore (but + might as well leave the no-f77 code in just in case). + * Make-lang.in (g77, g77-cross): Don't define LANGUAGE_F77 + anymore. + +1996-12-06 Dave Love + + * Make-lang.in (g77, g77-cross): Revert to building `g77' or not + conditional on `f77' in LANGUAGES. + +Wed Dec 4 13:08:44 1996 Craig Burley + + * Make-lang.in (g77, g77-cross): No libs or lib dependencies + in case where "f77" is not in $LANGUAGES. + + * lex.c (ffelex_image_char_, ffelex_file_fixed, + ffelex_file_free): Fixes to properly handle lines with + null character, and too-long lines as well. + + * lex.c: Call ffebad_start_msg_lex instead of + ffebad_start_msg throughout. + +Sun Dec 1 21:19:55 1996 Craig Burley + + Fix-up for 1996-11-25 changes: + * com.c (ffecom_member_phase2_): Subtract out 0 offset for + elegance and consistency with EQUIVALENCE aggregates. + (ffecom_sym_transform_): Ditto for LOCAL/COMMON, and + ensure we get the same parent storage area. + * data.c (ffedata_gather_, ffedata_value_): Subtract out + aggregate offset. + +Wed Nov 27 13:55:57 1996 Craig Burley + + * proj.h: Quote the text of the #error message, to avoid + strange-looking diagnostics from non-gcc ANSI compilers. + + * top.c: Make -fno-debug-kludge the default. + +Mon Nov 25 20:13:45 1996 Craig Burley + + Provide more info on EQUIVALENCE mismatches: + * bad.def (FFEBAD_EQUIV_MISMATCH): More detailed message. + * equiv.c (ffeequiv_layout_local_, ffeequiv_layout_cblock): + More details for FFEBAD_EQUIV_MISMATCH. + + Fix problem with EQUIVALENCE handling: + * equiv.c (ffeequiv_layout_local_): Redesign algorithm -- + old one was broken, resulting in rejection of good code. + (ffeequiv_offset_): Add argument, change callers. + Clean up the code, fix up the (probably unused) negative-value + case for SYMTER. + * com.c (ffecom_sym_transform_): For local EQUIVALENCE + member, subtract out aggregate offset (which is <= 0). + +Thu Nov 21 12:44:56 1996 Craig Burley + + Change type of ffetargetOffset from `unsigned long' to `long long': + * bld.c (ffebld_constantarray_dump): Change printf formats. + * storag.c (ffestorag_dump): Ditto. + * symbol.c (ffesymbol_report): Ditto. + * target.h (ffetargetOffset_f): Ditto and change type itself. + + Handle situation where list of languages does not include f77: + * Make-lang.in: Define LANGUAGE_F77 to 1 only if `f77' is in + the $LANGUAGES macro for the build. + * g77.c: Compile to a (nearly) no-op program if LANGUAGE_F77 + is not defined to 1. + + Fixes to delay confirmation of READ, WRITE, and GOTO statements + so the corresponding assignments to same-named CHAR*(*) arrays + work: + * stb.c (ffestb_R90915_, ffestb_91014_): New functions. + (ffestb_goto3_, ffestb_goto5_): Move confirmation from 3 to 5 + for the OPEN_PAREN case. + (ffestb_R9091_, ffestb_R9094_, ffestb_R90913_, ffestb_R90914_, + ffestb_R91012_, ffestb_R91013_): Use new functions, and confirm + except for the OPEN_PAREN case. + + Fixes to not confirm declarations with an open paren where + an equal sign or other assignment-like token might be, so the + corresponding assignments to same-named CHAR*(*) arrays work: + (ffestb_decl_entsp_5_): Move assertion so we crash on that first, + if it turns out to be wrong, before the less-debuggable crash + on mistaken confirmation. + (ffestb_decl_entsp_6_, ffestb_decl_entsp_7_, ffestb_decl_entsp_8_): + Include OPEN_PAREN in list of assignment-only tokens. + + Fix more diagnosed-crash bugs: + * stu.c (ffestu_sym_end_transition): ANY-ize an adjustable array + with bad dimension expressions even if still stateUNCERTAIN. + (ffestu_symter_end_transition_, ffestu_symter_exec_transition_): + Return TRUE for opANY as well. + For code elegance, move opSYMTER case into first switch. + +1996-11-17 Dave Love + + * lex.c: Fix last change. + +1996-11-14 Dave Love + + * Make-lang.in, config-lang.in: Remove the (broken) libU77 stuff, + pending 0.5.20. + +Thu Nov 14 15:40:59 1996 Craig Burley + + * bad.def (FFEBAD_UNIMPL_STMT): Explain that invalid + intrinsic references can trigger this message, too. + +1996-11-12 Dave Love + + * lex.c: Declare dwarfout routines. + + * config-lang.in: Sink grep o/p. + +Mon Nov 11 14:21:13 1996 Craig Burley + + * g77.c (main): Might as well print version number + for --verbose as well. + +Thu Nov 7 18:41:41 1996 Craig Burley + + * expr.c, lang-options.h, target.h, top.c, top.h: Split out + remaining -fugly stuff into -fugly-logint and -fugly-comma, + leaving -fugly as simply a `macro' that expands into other + options, and eliminate defaults for some of the ugly stuff + in target.h. + + * Make-lang.in (gcc-cross): Compile zzz.c, not version.o (!), + in to get version info for this target. + + * config-lang.in: Test for GBE patch application based + on whether 2.6.x or 2.7.x GBE is detected. + +Wed Nov 6 14:19:45 1996 Craig Burley + + * Make-lang.in (g77): Compile zzz.c in to get version info. + * g77.c: Add support for --help and --version. + + * g77.c (lookup_option): Short-circuit long-winded tests + when second char is not hyphen, just to save a spot of time. + +Sat Nov 2 13:50:31 1996 Craig Burley + + * intrin.def: Add FTELL and FSEEK intrinsics, plus new + `g' codes for alternate-return (GOTO) arguments. + * intrin.c (ffeintrin_check_): Support `g' codes. + * com-rt.def: Add ftell_() and fseek_() to database. + * com.c (ffecom_expr_intrinsic_): Ditto. Also, let each + subroutine intrinsic decide for itself what to do with + tree_type, the default being NULL_TREE once again (so + ffecom_call_ doesn't think it's supposed to cast the + function call to the type in the fall-through case). + + * ste.c (ffeste_R909_finish): Don't special-case list-directed + I/O, now that libf2c can return non-zero status codes. + (ffeste_R910_finish): Ditto. + (ffeste_io_call_): Simplify logic. + (ffeste_io_impdo_): + (ffeste_subr_beru_): + (ffeste_R904): + (ffeste_R907): + (ffeste_R909_start): + (ffeste_R909_item): + (ffeste_R909_finish): + (ffeste_R910_start): + (ffeste_R910_item): + (ffeste_R910_finish): + (ffeste_R911_start): + (ffeste_R923A): Ditto all the above. + +Thu Oct 31 20:56:28 1996 Craig Burley + + * config-lang.in, Make-lang.in: Rename flag file + build-u77 to build-libu77, for consistency with + install-libf2c and such. + + * config-lang.in: Don't complain about failure to patch + if pre-2.7.0 gcc is involved (since our patch for that + doesn't add support for tooning). + +Sat Oct 26 05:56:51 1996 Craig Burley + + * bad.def (FFEBAD_TYPELESS_TOO_LARGE): Remove this + unused and redundant diagnostic. + +Sat Oct 26 00:45:42 1996 Craig Burley + + * target.c (ffetarget_integerhex): Fix dumb bug. + +1996-10-20 Dave Love + + * gbe/2.7.2.1.diff: New file. + + * Makefile.in (F771_LDFLAGS): Add -bbigtoc for AIX4.1 up, suggested by + endo@material.tohoku.ac.jp [among others!]. + +Sat Oct 19 03:11:14 1996 Craig Burley + + * bad.def, bld.c, bld.h, expr.c, lang-options.h, target.c, + target.h, top.c, top.h (ffebld_constant_new_integerbinary, + ffebld_constant_new_integerhex, ffebld_constant_new_integeroctal, + ffeexpr_token_name_apos_name_, ffetarget_integerbinary, + ffetarget_integerhex, ffetarget_integeroctal): Support + new -fno-typeless-boz option with new functions, mods to + existing octal-handling functions, new macros, new error + messages, and so on. + + * com.c, lang-options.h, top.c, top.h (ffecom_notify_primary_entry): + Print program unit name on stderr if -fno-silent (new option). + + * lang-options.h, top.c, top.h, stt.c (ffestt_dimlist_as_expr): + Treat ([...,]1) in dimlist as ([...,]*) if -fugly-assumed + (new option). + + * lang-options.h: Comment out options duplicated in gcc/toplev.c, + because, somehow, having them commented in and building on my + DEC Alpha results in a cc1 that always segfaults, and gdb that + also segfaults whenever it debugs it up to init_lex() calling + xmalloc() or so. + +Thu Oct 17 00:39:27 1996 Craig Burley + + * stb.c (ffestb_R10013_): Don't change meaning of .sign until + after previous meaning/value used to set sign of value + (960507-1.f). + +Sun Oct 13 22:15:23 1996 Craig Burley + + * top.c (ffe_decode_option): Don't set back-end flags + that are nonexistent prior to gcc 2.7.0. + +Sun Oct 13 12:48:45 1996 Craig Burley + + * com.c (convert): Don't convert emulated complex expr to + real (via REALPART_EXPR) if the target type is (emulated) + complex. + +Wed Oct 2 21:57:12 1996 Craig Burley + + * com.c (ffecom_debug_kludge_): Set DECL_IN_SYSTEM_HEADER so + -Wunused doesn't complain about these manufactured decls. + (ffecom_expr_): Ditto, for original (non-ASSIGN'ed) variable. + (ffecom_transform_equiv_): Clear DECL_IGNORED_P for aggregate + area so it shows up as a debug-accessible symbol. + (pushdecl): Default for "invented" identifiers (a g77-specific + concept for now) is that they are artificial, in system header, + ignored for debugging purposes, used, and (for types) suppressed. + This ought to be overkill. + +Fri Sep 27 23:13:07 1996 Craig Burley + + * ste.c (ffeste_begin_iterdo_, ffeste_end_iterdo_): Support + one-trip DO loops (F66-style). + * lang-options.h, top.c, top.h (-fonetrip): New option. + +Thu Sep 26 00:18:40 1996 Craig Burley + + * com.c (ffecom_debug_kludge_): New function. + (ffecom_sym_transform_): Use new function for COMMON and EQUIVALENCE + members. + + * lang-options.h, top.c, top.h (-fno-debug-kludge): + New option. + +1996-09-24 Dave Love + + * Make-lang.in (include/f2c.h): + Remove dependencies on xmake_file and tmake_file. + They expand inconsistently in 2.8 c.f. 2.7; $(GCC_PARTS) depends on + them anyhow. + +1996-09-22 Dave Love + + * config-lang.in: Add --enable-libu77 option handling. + + * Make-lang.in: + Conditionally add --enable-libu77 when running runtime configure. + Define LIBU77STAGESTUFF and use it in relevant rules. + +1996-08-21 Dave Love + + * Make-lang.in (f77-runtime): + `stmp-hdrs' should have been `stmp-headers'. + +1996-08-20 Dave Love + + * Make-lang.in (f77-runtime): + Depend on stmp-hdrs, not stmp-int-hdrs, since libF77 + needs float.h. + +Sat Jun 22 18:17:11 1996 Craig Burley + + * com.c (ffecom_tree_divide_): Fix RECORD_TYPE case to + look at type of first field, properly, to determine + whether to call c_div or z_div. + +Tue Jun 4 04:27:18 1996 Craig Burley + + * com.c (ffecom_build_complex_constant_): Explicitly specify + TREE_PURPOSE. + (ffecom_expr_): Fix thinko. + (ffecom_2): For COMPLEX_EXPR, explicitly specify TREE_PURPOSE. + +Mon May 27 16:23:43 1996 Craig Burley + + Changes to optionally avoid gcc's back-end complex support: + * com.c (ffecom_stabilize_aggregate_): New function. + (ffecom_convert_to_complex_): New function. + (ffecom_make_complex_type_): New function. + (ffecom_build_complex_constant_): New function. + (ffecom_expr_): For opCONVERT of non-COMPLEX to COMPLEX, + don't bother explicitly converting to the subtype first, + because gcc does that anyway, and more code would have + to be added to find the subtype for the emulated-complex + case. + (ffecom_f2c_make_type_): Use ffecom_make_complex_type_ + instead of make_node etc. to make a complex type. + (ffecom_1, ffecom_2): Translate operations on COMPLEX operands + to appropriate operations when emulating complex. + (ffecom_constantunion): Use ffecom_build_complex_constant_ + instead of build_complex to build a complex constant. + (ffecom_init_0): Change point at which types are laid out + for improved consistency. + Use ffecom_make_complex_type_ instead of make_node etc. + to make a complex type. + Always calculate storage sizes from TYPE_SIZE, never TYPE_PRECISION. + (convert): Use e, not expr, since we've copied into that anyway. + For RECORD_TYPE cases, do emulated-complex conversions. + (ffecom_f2c_set_lio_code_): Always calculate storage sizes + from TYPE_SIZE, never TYPE_PRECISION. + (ffecom_tree_divide_): Allow RECORD_TYPE to also be handled + by run-time library. + (ffecom_expr_intrinsic_): Handle possible RECORD_TYPE as argument + to AIMAG intrinsic. + + * top.h, top.c, lang-options.h: Support new -f(no-)emulate-complex option. + + * com.c (ffecom_sym_transform_): Clarify and fix typos in comments. + +Mon May 20 02:06:27 1996 Craig Burley + + * target.h: Use new REAL_VALUE_UNTO_TARGET_* macros instead + of REAL_VALUE_FROM_TARGET_DOUBLE and _SINGLE. + Explicitly use long instead of HOST_WIDE_INT for emulation + of ffetargetReal1 and ffetargetReal2. + +1996-05-20 Dave Love + + * config-lang.in: + Test for patch being applied with flag_move_all_movables in toplev.c. + + * install.texi (Patching GNU Fortran): + Mention overriding X_CFLAGS rather than + editing proj.h on SunOS4. + + * Make-lang.in (F77_FLAGS_TO_PASS): + Add X_CFLAGS (convenient for SunOS4 kluge, in + particular). + (f77.{,mostly,dist}clean): Reorder things, in particular not to delete + Makefiles too early. + + * g77.c (DEFAULT_SWITCH_TAKES_ARG): Define a la gcc.c in the + current GCC snapshot. + +Tue May 14 00:24:07 1996 Craig Burley + + Changes for DEC Alpha AXP support: + * com.c (ffecom_init_0): REAL_ARITHMETIC means internal + REAL/DOUBLE PRECISION might well have a different size + than the compiled type, so don't crash if this is the + case. + * target.h: Use `int' for ffetargetInteger1, + ffetargetLogical1, and magical tests. Set _f format + strings accordingly. + +Tue Apr 16 14:08:28 1996 Craig Burley + + * top.c (ffe_decode_option): -Wall no longer implies + -Wsurprising. + +Sat Apr 13 14:50:06 1996 Craig Burley + + * com.c (ffecom_char_args_): If item is error_mark_node, + set *length that way, too. + + * com.c (ffecom_expr_power_integer_): If either operand + is error_mark_node, return that. + + * com.c (ffecom_intrinsic_len_): If item is error_mark_node, + return that for length. + + * expr.c (ffeexpr_declare_unadorned_, + ffeexpr_declare_parenthesized_): Instead of crashing + on unexpected contexts, produce a diagnostic. + + * intrin.c (ffeintrin_check_), intrin.def (impSIGNAL): + Allow procedure as second arg to SIGNAL intrinsic. + + * stu.c (ffestu_symter_end_transition_): New function. + (ffestu_symter_exec_transition_): Return bool arg. + Always transition symbol (don't inhibit when !whereNONE). + (ffestu_sym_end_transition): If DUMMY/LOCAL arg has any + opANY exprs in its dimlist, diagnose it so it doesn't + make it through to later stages that try to deal with + dimlist stuff. + (ffestu_sym_exec_transition): If sym has any opANY exprs + in its dimlist, diagnose it so it becomes opANY itself. + + * symbol.c (ffesymbol_error): If token arg is NULL, + just ANY-ize the symbol -- don't produce diagnostic. + +Mon Apr 1 10:14:02 1996 Craig Burley + + * Version 0.5.18 released. + +Mon Mar 25 20:52:24 1996 Craig Burley + + * com.c (ffecom_expr_power_integer_): Don't generate code + that compares COMPLEX (or, as it happens, REAL) via "LT_EXPR", + since the back end crashes on that. (This code would never + be executed anyway, but the test that avoids it has now been + translated to control whether the code gets generated at all.) + Fixes 960323-3.f. + + * com.c (ffecom_type_localvar_): Handle variable-sized + dimension bounds expressions here, so they get calculated + and saved on procedure entry. Fixes 960323-4.f. + + * com.c (ffecom_notify_init_symbol): Symbol has no init + info at all if only zeros have been used to initialize it. + Fixes 960324-0.f. + + * expr.c, expr.h (ffeexpr_type_combine): Renamed from + ffeexpr_type_combine_ and now a public procedure; last arg now + a token, instead of an internal structure used to extract a token. + Now allows the outputs to be aliased with the inputs. + Now allows a NULL token to mean "don't report error". + (ffeexpr_reduced_bool2_, ffeexpr_reduced_eqop2_, + ffeexpr_reduced_math2_, ffeexpr_reduced_power_, + ffeexpr_reduced_relop2_): Handle new calling sequence for + ffeexpr_type_combine. + * (ffeexpr_convert): Don't put an opCONVERT node + in just because the size is unknown; all downstream code + should be able to deal without it being there anyway, and + getting rid of it allows new intrinsic code to more easily + combine types and such without generating bad code. + * info.c, info.h (ffeinfo_kindtype_max): Rewrite to do + proper comparison of size of types, not just comparison + of their internal kind numbers (so I2.eq.I1 doesn't promote + I1 to I2, rather the other way around). + * intrin.c (ffeintrin_check_): Combine types of arguments + in COL a la expression handling, for greater flexibility + and permissiveness (though, someday, -fpedantic should + report use of this kind of thing). + Make sure Hollerith/typeless where CHARACTER expected is + rejected. This all fixes 960323-2.f. + + * ste.c (ffeste_begin_iterdo_): Fix some more type conversions + so INTEGER*2-laden DO loops don't crash at compile time on + certain machines. Believed to fix 960323-1.f. + + * stu.c (ffestu_sym_end_transition): Certainly reject + whereDUMMY not in any dummy list, whether stateUNCERTAIN + or stateUNDERSTOOD. Fixes 960323-0.f. + +Tue Mar 19 13:12:40 1996 Craig Burley + + * data.c (ffedata_value): Fix crash on opANY, and simplify + the code at the same time. + + * Make-lang.in (f77-runtime): Also depends on lib[FI]77/Makefile... + (include/f2c.h...): ...which in turn depend on */Makefile.in. + (f77.rebuilt): Rebuild runtime stuff too. + + * intrin.c (ffeintrin_check_): Accommodate TYPELESS/HOLLERITH + types, convert args as necessary, etc. + + * expr.c (ffeexpr_convert): Fix test for TYPELESS/HOLLERITH + to obey the docs; crash if no source token when error. + (ffeexpr_collapse_convert): Crash if no token when error. + +Mon Mar 18 15:51:30 1996 Craig Burley + + * com.c (ffecom_init_zero_): Renamed from + ffecom_init_local_zero_; now handles top-level + (COMMON) initializations too. + + * bld.c (ffebld_constant_is_zero): + * com.c (ffecom_symbol_transform_, ffecom_sym_transform_assign_, + ffecom_transform_common_, ffecom_transform_equiv_): + * data.c: + * equiv.c: + * equiv.h: + * lang-options.h: + * stc.c: + * storag.c: + * storag.h: + * symbol.c: + * symbol.h: + * target.c: + * target.h: + * top.c: + * top.h: All of this is mostly housekeeping-type changes + to support -f(no-)zeros, i.e. not always stuff zero + values into the initializer fields of symbol/storage objects, + but still track that they have been given initial values. + + * bad.def: Fix wording for DATA-related diagnostics. + + * com.c (ffecom_sym_transform_assign_): Don't check + any EQUIVALENCE stuff for local ASSIGN, the check was + bad (crashing), and it's not necessary, anyway. + + * com.c (ffecom_expr_intrinsic_): For MAX and MIN, + ignore null arguments as far arg[123], and fix handling + of ANY arguments. (New intrinsic support now allows + spurious trailing null arguments.) + + * com.c (ffecom_init_0): Add HOLLERITH (unsigned) + equivalents for INTEGER*2, *4, and *8, so shift intrinsics + and other things that need unsigned versions of signed + types work. + +Sat Mar 16 12:11:40 1996 Craig Burley + + * storag.c (ffestorag_exec_layout): Treat adjustable + local array like dummy -- don't create storage object. + * com.c (ffecom_sym_transform_): Allow for NULL storage + object in LOCAL case (adjustable array). + +Fri Mar 15 13:09:41 1996 Craig Burley + + * com.c (ffecom_sym_transform_): Allow local symbols + with nonconstant sizes (adjustable local arrays). + (ffecom_type_localvar_): Allow dimensions with nonconstant + component (adjustable local arrays). + * expr.c: Various minor changes to handle adjustable + local arrays (a new case of stateUNCERTAIN). + * stu.c (ffestu_sym_end_transition, + ffestu_sym_exec_transition): Ditto. + * symbol.def: Update docs to reflect these changes. + + * com.c (ffecom_expr_): Reduce space/time needed for + opACCTER case by handling it here instead of converting + it to opARRTER earlier on. + (ffecom_notify_init_storage): Don't convert ACCTER to ARRTER. + (ffecom_notify_init_symbol): Ditto. + + * com.c (ffecom_init_0): Crash and burn if any of the types' + sizes, according to the GBE, disagrees with the sizes of + the FFE's internal implementation. This might catch + Alpha/SGI bugs earlier. + +Fri Mar 15 01:09:41 1996 Craig Burley + + * com-rt.def, com.c, com.h: Changes for rewrite of intrinsic + handling. + * com.c (ffecom_arglist_expr_): New function. + (ffecom_widest_expr_type_): New function. + (ffecom_expr_intrinsic_): Reorganize, some rewriting. + (ffecom_f2c_make_type_): Layout complex types. + (ffecom_gfrt_args_): New function. + (ffecom_list_expr): Trivial change for consistency. + + * expr.c (ffeexpr_token_name_rhs_): Go back to getting + type from specific, not implementation, info. + (ffeexpr_token_funsubstr_): Set intrinsic implementation too! + * intrin.c: Major rewrite of most portions. + * intrin.def: Major rearchitecting of tables. + * intrin.h (ffeintrin_basictype, ffeintrin_kindtype): + Now (once again) take ffeintrinSpec as arg, not ffeintrinImp; + for now, these return NONE, since they're not really needed + and adding the necessary info to the tables is not trivial. + (ffeintrin_codegen_imp): New function. + * stc.c (ffestc_R1208_item): Change way ffeintrin funcs called, + back to original per above; but comment out the code anyway. + + * intrin.c (ffe_init_0): Do internal checks only if + -fset-g77-defaults not specified. + + * lang-options.h: Add -fset-g77-defaults option. + * lang-specs.h: Always pass -fset-g77-defaults. + * top.c, top.h: New option. + +Sat Mar 9 17:49:50 1996 Craig Burley + + * Make-lang.in (stmp-int-hdrs): Use --no-validate when + generating the f77.rebuilt files (BUGS, INSTALL, NEWS) + so cross-references can work properly in g77.info + without a lot of hassle. Users can probably deal with + the way they end up looking in the f77.rebuilt files. + + * bld.c (ffebld_constant_new_integer4_val): INTEGER*8 + support -- new function. + (ffebld_constant_new_logical4_val): New function. + * com.c (ffecom_f2c_longint_type_node): New type. + (FFECOM_rttypeLONGINT_): New return type code. + (ffecom_expr_): Add code to invoke pow_qq instead + of pow_ii for INTEGER4 (INTEGER*8) case. + If ffecom_expr_power_integer_ returns NULL_TREE, just do + the usual work. + (ffecom_make_gfrt_): Handle new type. + (ffecom_expr_power_integer_): Let caller do the work if in + dummy-transforming case, since + caller now knows about INTEGER*8 and such, by returning + NULL_TREE. + * expr.c (ffeexpr_reduced_power_): Complain about non-INTEGER + raised to INTEGER4 (INTEGER*8) power. + + * target.c (ffetarget_power_integerdefault_integerdefault): + Fix any**negative. + * com.c (ffecom_expr_power_integer_): Fix (-1)**(-8) and similar + to ABS() the integral result if the exponent is negative + and even. + + * ste.c (ffeste_begin_iterdo_): Clean up a type ref. + Always convert iteration count to _default_ INTEGER. + + * sta.c (ffesta_second_): Add BYTE and WORD type/stmts; + changes by Scott Snyder . + * stb.c (ffestb_decl_recursive): Ditto. + (ffestb_decl_recursive): Ditto. + (ffestb_decl_entsp_2_): Ditto. + (ffestb_decl_entsp_3_): Ditto. + (ffestb_decl_funcname_2_): Ditto. + (ffestb_decl_R539): Ditto. + (ffestb_decl_R5395_): Ditto. + * stc.c (ffestc_establish_declstmt_): Ditto. + * std.c (ffestd_R539item): Ditto. + (ffestd_R1219): Ditto. + * stp.h: Ditto. + * str-1t.fin: Ditto. + * str-2t.fin: Ditto. + + * expr.c (ffeexpr_finished_): For DO loops, allow + any INTEGER type; convert LOGICAL (assuming -fugly) + to corresponding INTEGER type instead of always default + INTEGER; let later phases do conversion of DO start, + end, incr vars for implied-DO; change checks for non-integral + DO vars to be -Wsurprising warnings. + * ste.c (ffeste_io_impdo_): Convert start, end, and incr + to type of DO variable. + + * com.c (ffecom_init_0): Add new types for [IL][234], + much of which was done by Scott Snyder . + * target.c: Ditto. + * target.h: Ditto. + +Wed Mar 6 14:08:45 1996 Craig Burley + + * top.c (ffe_init_gbe_): Make -frerun-loop-opt the default. + +Mon Mar 4 12:27:00 1996 Craig Burley + + * expr.c (ffeexpr_exprstack_push_unary_): Really warn only + about two successive _arithmetic_ operators. + + * stc.c (ffestc_R522item_object): Allow SAVE of (understood) + local entity. + + * top.c (ffe_decode_option): New -f(no-)second-underscore options. + * top.h: New options. + * com.c (ffecom_get_external_identifier_, ffecom_get_identifier_): + New options. + + * Make-lang.in (f77.maintainer-clean): Clean f/BUGS, f/INSTALL, + f/NEWS. + ($(srcdir)/f/BUGS, $(srcdir)/f/INSTALL, $(srcdir)/f/NEWS): + New rules. + ($(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi): Depend on + f/bugs.texi and f/news.texi. + (f77.install-man): Install f77 man pages (if enabled). + (f77.uninstall): Uninstall info docs, f77 man pages (if enabled). + + * top.c (ffe_init_gbe_): New function. + (ffe_decode_option, ffe_file): Call ffe_init_gbe_ to + set defaults for gcc options. + +Sat Jan 20 13:57:19 1996 Craig Burley + + * com.c (ffecom_get_identifier_): Eliminate needless + comparison of results of strchr. + +Tue Dec 26 11:41:56 1995 Craig Burley + + * Make-lang.in: Add rules for new files g77.texi, g77.info, + and g77.dvi. + Reorganize the *clean rules to more closely parallel gcc's. + + * config-lang.in: Exclude g77.info from diffs. + +Sun Dec 10 02:29:13 1995 Craig Burley + + * expr.c (ffeexpr_declare_unadorned_, + ffeexpr_declare_parenthesized_): Break out handling of + contextDATAIMPDO[INDEX,CTRL] so it's independent of symbol state. + Don't exec-transition these here (let ffeexpr_sym_impdoitem_ + handle that when appropriate). Don't "declare" them twice. + +Tue Dec 5 06:48:26 1995 Craig Burley + + * stc.c (ffestc_promote_sfdummy_): Allow whereNONE parent + symbol, since it is not necessarily known whether it will + become LOCAL or DUMMY. + +Mon Dec 4 03:46:55 1995 Craig Burley + + * lex.c (ffelex_display_token, ffelex_type_string_): Resurrect + these from their old versions and update them for possible invocation + from debugger. + * lex.h (ffelex_display_token): Declare this in case anyone + else wants to call it. + + * lex.c (ffelex_total_tokens_): Have this reflect actual allocated + tokens, no longer include outstanding "uses" of tokens. + + * malloc.c, malloc.h (MALLOC_DEBUG): New macro to control + checking of whether callers follow rules, now defaults to 0 + for "no checking" to improve compile times. + + * malloc.c (malloc_pool_kill): Fix bug that could prevent + subpool from actually being killed (wasn't setting its use + count to 1). + + * proj.h, *.c (dmpout): Replace all occurrences of `stdout' + and some of `stderr' with `dmpout', so where to dump debugging + output can be easily controlled during build; add default + for `dmpout' of `stderr' to proj.h. + +Sun Dec 3 00:56:29 1995 Craig Burley + + * com.c (ffecom_return_expr): Eliminate attempt at warning + about unset return values, since the back end does this better, + with better wording, and is not triggered by clearly working + (but spaghetti) code as easily as this test. + +Sat Dec 2 08:28:56 1995 Craig Burley + + * target.c (ffetarget_power_*_integerdefault): Raising 0 to + integer constant power should not be an error condition; + if so, other code should catch 0 to any power, etc. + + * bad.def (FFEBAD_BAD_POWER): 0**integer now a warning instead + of an error. + +Fri Dec 1 00:12:03 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * bad.def: Clarify diagnostic regarding complex constant elements. + * expr.c (ffeexpr_cb_comma_c_): Capitalize real/imaginary + for clarified diagnostic. + + * com.c (ffecom_close_include_): Close the file! + + * lex.c (ffelex_file_fixed): Update line info if the line + has any content, not just if it finishes a previous line + or has a label. + (ffelex_file_free): Clarify switch statement code. + +Sat Nov 18 19:37:22 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.17 released. + +Fri Nov 17 14:27:24 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Make-lang.in: Fix typo in comment. + + * Makefile.in (f/fini.o, f/proj-h.o): Don't use `$<' since + not all makes support it (e.g. NeXT make), use explicit + source name instead (with $(srcdir) and munging). + (ASSERT_H): assert.h lives in source dir, not build dir. + +Thu Nov 16 12:47:50 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_init_0): Fix dumb bug in code to produce + warning message about non-32-bit-systems. + + * stc.c (ffestc_R501_item): Parenthesize test to make + warning go away (and perhaps fix bug). + +Thu Nov 16 03:43:33 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * g77.c: Upgrade to 2.7.0's gcc.c. + Fix -v to pass a temp name instead of "/dev/null" for "-o". + +Fri Nov 10 19:16:05 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * ste.c (ffeste_begin_iterdo_): Add Toon's change to + make loops faster on some machines (implement termination + condition as "--i >= 0" instead of "i-- > 0"). + +Thu Nov 2 03:58:17 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Make-lang.in: Remove unnecessary $(exeext) a la cp/Make-lang.in. + + * com.c (ffecom_expr_): Restore old strategy for assignp variant + of opSYMTER case...always return the ASSIGN version of var. + That way, `-O -Wuninitialized' will catch "I=3;GOTO I;END" + (though the diagnostic will refer to `__g77_ASSIGN_i'). + + * com.c (ffecom_expr_power_integer_): For constant rhs case, + wrap every new eval of lhs in save_expr() so it is clear to + back end that MULT_EXPR(lhs,lhs) has identical operands, + otherwise for an rhs like 32767 it generates around 65K pseudo + registers, with which stupid_life_analysis cannot cope + (due to reg_renumber in regs.h being `short *' instead of + `int *'). + + * com.c (ffecom_expr_): Speed up implementation of LOGICAL + versions of opNOT, opAND, opOR, opXOR/opNEQV, and opEQV by + assuming the values actually are kosher LOGICAL bit patterns. + Also simplify code that implements some of the INTEGER versions + of these. + + * com.c (skip_redundant_dir_prefix, read_name_map, + ffecom_open_include_, signed_type, unsigned_type): Fold in + changes to cccp.c made from 2.7.0 through ss-950826. + + * equiv.c (ffeequiv_layout_local_): Kill the equiv list + if no syms in list. + + * expr.c (ffeexpr_reduced_eqop2_): Issue specific diagnostic + regarding usage of .EQV./.NEQV. in preference to .EQ./.NE.. + + * intrin.c: Add ERF and ERFC as generic intrinsics. + intrin.def: Same. + + * sta.c (ffesta_save_, ffesta_second_): Whoever calls + ffestd_exec_begin must also set ffesta_seen_first_exec = TRUE, + and anytime stc sees an exec transition, it must do both. + stc.c (ffestc_eof): Same. + + * stc.c (ffestc_promote_sfdummy_): If failed implicit typing + or CHARACTER*(*) arg, after calling ffesymbol_error, don't + reset info to ENTITY/DUMMY, because ffecom_sym_transform_ + doesn't expect such a thing with ANY/ANY type. + + * target.h (*logical*): Change some of these so they parallel + changes in com.c, e.g. for _eqv_, use (l)==(r) instead of + !!(l)==!!(r), to get a more faithful result. + +Fri Oct 27 07:06:59 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_sym_transform_): Simplify code for local + EQUIVALENCE case. + + * expr.c (ffeexpr_exprstack_push_unary_): Warn about two + successive operators. + (ffeexpr_exprstack_push_binary_): Warn about "surprising" + operator precedence, as in "-2**2". + + * lang-options.h: Add -W(no-)surprising options. + + * parse.c (yyparse): Don't reset -fpedantic if not -pedantic. + + * top.c (ffe_decode_option): Support new -Wsurprising option. + * top.h: Ditto. + +Mon Oct 23 09:14:15 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_finish_symbol_transform_): Don't transform + NONE/NONE (CHARACTER*(*)) vars, as these don't mean anything + in debugging terms, and can't be turned into anything + in the back end (so ffecom_sym_transform_ crashes on them). + + * com.c (ffecom_expr_): Change strategy for assignp variant + of opSYMTER case...always return the original var unless + it is not wide enough. + + * ste.c (ffeste_io_cilist_): Clarify diagnostic for ASSIGN + involving too-narrow variable. This shouldn't happen, though. + (ffeste_io_icilist_): Ditto. + (ffeste_R838): Ditto. + (ffeste_R839): Ditto. + +Thu Oct 19 03:21:20 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_sym_transform_assign_): Set TREE_STATIC + using the same decision-making process as used for their twin + variables, so ASSIGN can last across RETURN/CALL as appropriate. + +Fri Sep 22 20:21:18 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Makefile.in: fini is a host program, so it needs a host-compiled + version of proj.o, named proj-h.o. f/fini, f/fini.o, and + f/proj-h.o targets updated accordingly. + + * com.c (__eprintf): New function. + +Wed Sep 20 02:26:36 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * lang-options.h: Add omitted -funix-intrinsics-* options. + + * malloc.c (malloc_find_inpool_): Check for infinite + loop, crash if detected (user reports encountering + them in some large programs, this might help track + down the bugs). + +Thu Sep 7 13:00:32 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (lang_print_error_function): Don't dereference null + pointer when outside any program unit. + (ffecom_let_char_, ffecom_arg_ptr_to_expr): If catlist + item or length ever error_mark_node, don't continue processing, + since back-end functions like build_pointer_type crash on + error_mark_node's (due to pushing bad obstacks, etc.). + +Wed Aug 30 15:58:35 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.16 released. + +Mon Aug 28 12:24:20 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * bad.c (ffebad_finish): Fix botched message when no places + are printed (due to unknown line info, etc.). + + * std.c (ffestd_subr_labels_): Do a better job finding + line info in the case of typeANY and diagnostics. + +Fri Aug 25 15:19:29 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (DECL_ARTIFICIAL): Surround all references to this + macro with #if !BUILT_FOR_270 and #endif. + (init_lex): Surround print_error_function decl with + #if !BUILT_FOR_270 and #endif. + (lang_init): Call new ffelex_hash_kludge function to solve + problem with preprocessed files that have INCLUDE statements. + + * lex.c (ffelex_getc_): New function. + (ffelex_cfelex_): Use ffelex_getc_ instead of getc in any + paths of code that can be affected by ffelex_hash_kludge. + Don't make an EOF token for unrecognized token; set token + to NULL instead, to avoid problems when not initialized. + (ffelex_hash_): Use ffelex_getc_ instead of getc in any + paths of code that can be affected by ffelex_hash_kludge. + Test token returned by ffelex_cfelex_ for NULL, meaning + unrecognized token. + Get rid of useless used_up variable. + Don't do ffewhere stuff or kill any tokens if in + ffelex_hash_kludge. + (ffelex_file_fixed, ffelex_file_free): Use ffelex_getc_ + instead of getc in any paths of code that can be affected + by ffelex_hash_kludge. + (ffelex_hash_kludge): New function. + + * lex.h (ffelex_hash_kludge): New function. + +Wed Aug 23 15:17:40 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c: Implement -f(no-)underscoring options by always + compiling in code to do it, and having that code inhibit + itself when -fno-underscoring is in effect. This option + overrides -f(no-)f2c for this purpose; -f(no-)f2c returns + to it's <=0.5.15 behavior of affecting only how code + is generated, not how/whether names are mangled. + + * target.h: Redo specification of appending underscores so + the macros are named "_default" instead of "_is" and the + two-underscore macro defaults to 1. + + * top.c, top.h (underscoring): Add appropriate stuff + for the -f(no-)underscoring options. + +Tue Aug 22 10:25:01 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * bad.c (ffebad_finish): Call report_error_function (in toplev.c) + to better identify location of problem. + Say "(continued):" instead of "(continued:)" for consistency. + + * com.c (ffecom_gen_sfuncdef_): Set and reset new + ffecom_nested_entry_ variable to hold ffesymbol being compiled. + (lang_print_error_function): New function from toplev.c. + Use ffecom_nested_entry_ to help determine which name + and kind-string to print. + (ffecom_expr_intrinsic_): Handle EXIT and FLUSH invocations + with different calling sequences than library functions. + Have SIGNAL and SYSTEM push and pop calltemps, and convert + their return values to the destination type (just in case). + (FFECOM_rttypeINT_): New return type for `int', in case + gcc/f/runtime/libF77/system_.c(system_) is really supposed + to return `int' instead of `ftnint'. + + * com.h (report_error_function): Declare this. + + * equiv.c (ffeequiv_layout_local_): Don't forget to consider + root variable itself as possible "first rooted variable", + else might never set symbol and then crash later. + + * intrin.c (ffeintrin_check_exit_): Change to allow no args + and rename to ffeintrin_check_int_1_o_ for `optional'. + #define ffeintrin_check_exit_ and _flush_ to this new + function, so intrin.def can refer to the appropriate names. + + * intrin.def (FFEINTRIN_impFLUSH): Validate using + ffeintrin_check_flush_ so passing an INTEGER arg is allowed. + + * lex.c (ffelex_file_push_, ffelex_file_pop_): New functions + to manage input_file_stack in gbe. + (ffelex_hash_): Call new functions (instead of doing code). + (ffelex_include_): Call new functions to update stack for + INCLUDE (_hash_ handles cpp output of #include). + +Mon Aug 21 08:09:04 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Makefile.in: Put `-W' in front of every `-Wall', since + 2.7.0 requires that to engage `-Wunused' for parameters. + + * com.c: Mark all parameters as artificial, so + `-W -Wunused' doesn't complain about unused ones (since + there's no way right not to individually specify attributes + like `unused'). + + * proj.h: Don't #define UNUSED if already defined, regardless + of host compiler. + +Sun Aug 20 16:03:56 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * gbe/2.7.0.diff: Regenerate. + + * lang-options.h, lang-specs.h: If not __STDC__ (ANSI C), + avoid doing anything, especially the stringizing in -specs.h. + +Thu Aug 17 03:36:12 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * lang-specs.h: Remove useless optional settings of -traditional, + since -traditional is always set anyway. + +Wed Aug 16 16:56:46 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Make-lang.in (F2C_INSTALL_FLAG, F2CLIBOK): More + control over whether to install f2c-related stuff. + (install-f2c-*): New targets to install f2c-related + stuff in system, not just gcc, directories. + + * com.c: Change calls to ffecom_get_invented_identifier + to use generally more predictable names. + Change calls to build_range_type to ensure consistency + of types of operands. + (ffecom_get_external_identifier_): Change to accept + symbol info, not just text, so it can use f2c flag for + symbol to decide whether to append underscore(s). + (ffecom_get_identifier_): Don't change names if f2c flag + off for compilation. + (ffecom_type_permanent_copy_): Use same type for new max as + used for min. + (ffecom_notify_init_storage): Offline fixups for stand-alone. + + * data.c (ffedata_gather): Explicitly test for common block, + since it's no longer always the case that a local EQUIVALENCE + group has no symbol ptr (it now can, if a user-predictable + "rooted" symbol has been identified). + + * equiv.c: Add some debugging stuff. + (ffeequiv_layout_local_): Set symbol ptr with user-predictable + "rooted" symbol, for giving the invented aggregate a + predictable name. + + * g77.c (append_arg): Allow for 20 extra args instead of 10. + (main): For version-only case, add `-fnull-version' and, unless + explicitly omitted, `-lf2c -lm'. + + * lang-options.h: New "-fnull-version" option. + + * lang-specs.h: Support ".fpp" suffix for preprocessed source + (useful for OS/2, MS-DOS, other case-insensitive systems). + + * stc.c (ffestc_R544_equiv_): Swap way lists are merged so this + is consistent with the order in which lists are built, making + user predictability of invented aggregate name much higher. + + * storag.c, storag.h (FFESTORAG_typeDUMMY): Delete this enum. + + * top.c: Accept, but otherwise ignore, `-fnull-version'. + +Tue Aug 15 07:01:07 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * DOC, INSTALL, PROJECTS: Extensive improvements to documentation. + +Sun Aug 13 01:55:18 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * INSTALL (f77-install-ok): Document the use of this file. + + * Make-lang.in (F77_INSTALL_FLAG): New flag to control + whether to install an `f77' command (based on whether + a file named `f77-install-ok' exists in the source or + build directory) to replace the broken attempt to use + comment lines to avoid installing `f77' (broken in the + sense that it prevented installation of `g77'). + +Mon Aug 7 06:14:26 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * DOC: Add new sections for g77 & gcc compiler options, + source code form, and types, sizes and precisions. + Remove lots of old "delta-version" info, or at least + summarize it. + + * INSTALL: Add info here that used to be in DOC. + Other changes. + + * g77.c (lookup_option, main): Check for --print-* options, + so we avoid adding version-determining stuff. + +Wed Jul 26 15:51:03 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Make-lang.in, Makefile.in (input.j, INPUT_H): New file. + Update dependencies accordingly. + + * bad.c (ffebad_here): Okay to use unknown line/col. + + * compilers.h (@f77-cpp-input): Remove -P option now that + # directives are handled by f771. Update other options + to be more consistent with @c in gcc/gcc.c. Don't run f771 + if -E specified, etc., a la @c. + (@f77): Don't run f771 if -E specified, etc., a la @c. + + * config-lang.in: Avoid use of word "guaranteed". + + * input.j: New file to wrap around gcc/input.h. + + * lex.j: Add support for parsing # directives output by cpp. + (ffelex_cfebackslash_): New function. + (ffelex_cfelex_): New function. + (ffelex_get_directive_line_): New function. + (ffelex_hash_): New function. + (ffelex_include_): Change to not use ffewhere_file_(begin|end). + Also fix bug in pointing to next line (for diagnostics, &c) + following successful INCLUDE. + (ffelex_next_line_): New function that does chunk of code + seen in several places elsewhere in the lexers. + (ffelex_file_fixed): Delay finishing statement until source + line is registered with ffewhere, so INCLUDE processing + picks up the info correctly. + Okay to kill or use unknown line/col objects now. + Handle HASH (#) lines. + Reorder tests for insubstantial lines to put most frequent + occurrences at top, for possible minor speedup. + Some general consolidation of code. + (ffelex_file_free): Handle HASH (#) lines. + Okay to kill or use unknown line/col objects now. + Some general consolidation of code. + (ffelex_init_1): Detect HASH (#) lines. + (ffelex_set_expecting_hollerith): Okay to kill or use unknown + line/col objects now. + + * lex.h (FFELEX_typeHASH): New enum. + + * options-lang.h (-fident, -fno-ident): New options. + + * stw.c (ffestw_update): Okay to kill unknown line/col objects + now. + + * target.h (FFETARGET_okREALQUAD, FFETARGET_okCOMPLEXDOUBLE, + FFETARGET_okCOMPLEXQUAD): #define these appropriately. + + * top.c: Include flag.j wrapper, not flags.h directly. + (ffe_is_ident_): New flag. + (ffe_decode_option): Handle -fident and -fno-ident. + (ffe_file): Replace obsolete ffewhere_file_(begin|end) with + ffewhere_file_set. + + * top.h (ffe_is_ident_, ffe_is_ident, ffe_set_is_ident): + New flag and access functions. + + * where.c, where.h: Remove all tracking of parent file. + (ffewhere_file_begin, ffewhere_file_end): Delete these. + (ffewhere_line_use): Make it work with unknown line object. + +Mon Jul 17 03:04:09 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_sym_transform_): Set DECL_IN_SYSTEM_HEADER + flag for any local vars used as stmtfunc dummies or DATA + implied-DO iter vars, so no -Wunused warnings are produced + for them (a la f2c). + (ffecom_init_0): Do "extern int xargc;" for IARGC() intrinsic. + Warn if target machine not 32 bits, since g77 isn't yet + working on them at all well. + + * expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_data_, + ffeexpr_sym_lhs_extfunc_, ffeexpr_sym_rhs_actualarg_, + ffeexpr_sym_rhs_let_, ffeexpr_paren_rhs_let_): Don't + gratuitously set attr bits that don't apply just + to avoid null set meaning error; instead, use explicit + error flag, and allow null attr set, to + fix certain bugs discovered by looking at this code. + + * g77.c: Major changes to improve support for gcc long options, + to make `g77 -v' report more useful info, and so on. + +Mon Jul 3 14:49:16 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * DOC, com.c, intrin.h, intrin.c, intrin.def, target.h, top.c, + top.h: Add new `unix' group of intrinsics, which includes the + newly added ERF, ERFC, EXIT, plus even newer ABORT, DERF, DERFC, + FLUSH, GETARG, GETENV, SIGNAL, and SYSTEM. + +Tue Jun 27 23:01:05 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * bld.c, bld.h (ffebld_constant_pool, + ffebld_constant_character_pool): Use a single macro (the + former) to access the pool for allocating constants, instead + of latter in public and FFEBLD_CONSTANT_POOL_ internally + in bld.c (which was the only one that was correct before + these changes). Add verification of integrity of certain + heap-allocated areas. + + * com.c (ffecom_overlap_, ffecom_args_overlap_, + ffecom_tree_canonize_ptr_, ffecom_tree_canonize_ref_): New + functions to optimize calling COMPLEX and, someday, CHARACTER + functions requiring additional argument to be passed. + (ffecom_call_, ffecom_call_binop_, ffecom_expr_, + ffecom_expr_intrinsic_): Change calling + sequences to include more info on possible destination. + (ffecom_expr_intrinsic_): Add ERF(), ERFC(), and EXIT() + intrinsic code. + (ffecom_sym_transform_): For assumed-size arrays, set high + bound to highest possible value instead of low bound, to + improve validity of overlap checking. + (duplicate_decls): If olddecl and newdecl are the same, + don't do any munging, just return affirmative. + + * expr.c: Change ffecom_constant_character_pool() to + ffecom_constant_pool(). + + * info.c (ffeinfo_new): Compile this version if not being + compiled by GNU C. + + * info.h (ffeinfo_new): Don't define macro if not being + compiled by GNU C. + + * intrin.c, intrin.def: Add ERF(), ERFC(), and EXIT() intrinsics. + (ffeintrin_check_exit_): New for EXIT() subroutine intrinsic. + + * malloc.c, malloc.h (malloc_verify_*): New functions to verify + integrity of heap-storage areas. + + * stc.c (ffestc_R834, ffestc_R835): Handle possibility that + an enclosing DO won't have a construct name even when the + CYCLE/EXIT does (i.e. without dereferencing NULL). + + * target.c, target.h (ffetarget_verify_character1): New function + to verify integrity of heap storage used to hold character constant. + +Thu Jun 22 15:36:39 1995 Howard Gordon (flash@super.org) + + * stp.h (ffestpVxtcodeIx): Fix typo in typedef for this. + +Mon May 29 15:22:31 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * *: Make all sorts of changes to accommodate upcoming gcc-2.7.0. + I didn't keep track of them, nor just when I made them, nor + when I (much later, probably in early August 1995) modified + them so they could properly handle both 2.7.0 and 2.6.x. + + * com.c (ffecom_expr_power_integer_): Don't expand_start_stmt_expr + if transforming dummy args, because the back end cannot handle + that (it's rejected by the gcc front end), just generate + call to run-time library. + Back out changes in 0.5.15 because more temporaries might be + needed anyway (for COMPLEX**INTEGER). + (ffecom_push_tempvar): Remove inhibitor. + Around start_decl and finish_decl (in particular, arround + expand_decl, which is called by them), push NULL_TREE into + sequence_rtl_expr, an external published by gcc/function.c. + This makes sure the temporary is truly in the function's + context, not the inner context of a statement-valued expression. + (I think the back end is inconsistent here, but am not + interested in convincing the gbe maintainers about this now.) + (pushdecl): Make sure that when pushing PARM_DECLs, nothing + other than them are pushed, as happened for 0.5.15 and which, + if done for other reasons not fixed here, might well indicate + some other problem -- so crash if it happens. + + * equiv.c (ffeequiv_layout_local_): If the local equiv group + has a non-nil COMMON field, it should mean that an error has + occurred and been reported, so just trash the local equiv + group and do nothing. + + * stc.c (ffestc_promote_sfdummy_): Set sfdummy arg state to + UNDERSTOOD so above checking for duplicate args actually + works, and so we don't crash later in pushdecl. + + * ste.c (ffeste_R1001): Set initial value only for VAR_DECLs, + not for, e.g., LABEL_DECLs, which the FORMAT label can be + if it was previously treated as an executable label. + +Sat May 20 01:53:53 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_sym_transform_): For adjustable arrays, + pass high bound through variable_size in case its primaries + are changed (dumb0.f, and this might also improve + performance so it approaches f2c|gcc). + +Fri May 19 11:00:36 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.15 released. + + * com.c (ffecom_expr_power_integer_): Push temp vars + before expanding a statement expression, since that seems + to cause temp vars to be "forgotten" after the end of the + expansion in the back end. Disallow more temp-var + pushing during such an expansion, just in case. + (ffecom_push_tempvar): Crash if a new variable needs to be + pushed but cannot be at this point (should never happen). + +Wed May 17 12:26:16 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * expr.c (ffeexpr_collapse_convert): Add code to convert + LOGICAL to CHARACTER. Reject conversion of REAL or COMPLEX + to CHARACTER entirely, as it cannot be supported with all + configurations. + + * target.h, target.c (ffetarget_convert_character1_logical1): + New function. + +Sun May 14 00:00:09 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_do_entry_, ffecom_gen_sfuncdef_, + ffecom_start_progunit_, ffecom_sym_transform_, + ffecom_init_0, start_function): Changes to have REAL + external functions return same type as DOUBLE PRECISION + external functions when -ff2c is in force; while at it, + some code cleanups done. + + * stc.c (ffestc_R547_item_object): Disallow array declarator + if one already exists for symbol. + + * ste.c (ffeste_R1227): Convert result variable to type + of function result as seen by back end (e.g. for when REAL + external function actually returns result as double). + + * target.h (FFETARGET_defaultFIXED_LINE_LENGTH): New + macro for default for -ffixed-line-length-N option. + + * top.c (ffe_fixed_line_length_): Initialize this to new + target.h macro instead of constant 72. + +Tue May 9 01:20:03 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * lex.c (ffelex_send_token_): If sending CHARACTER token with + null text field, put a single '\0' in it and set length/size + fields to 0 (to fix 950508-0.f). + (ffelex_image_char_): When setting ffelex_bad_line_ to TRUE, + always "close" card image by appending a null char and setting + ffelex_card_length_. As part of this, append useful text + to identify the two kinds of problems that involve this. + (ffelex_file_fixed): Reset ffelex_bad_line_ to FALSE after + seeing a line with invalid first character (fixes 950508-1.f). + If final nontab column is zero, assume tab seen in line. + (ffelex_card_image_): Always make this array 8 characters + longer than reflected by ffelex_card_size_. + (ffelex_init_1): Get final nontab column info from top instead + of assuming 72. + + * options-lang.h: Add -ffixed-line-length- prefix. + + * top.h: Add ffe_fixed_line_length() and _set_ version, plus + corresponding extern. + + * top.c: Handle -ffixed-line-length- option prefix. + +Fri Apr 28 05:40:25 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.14 released. + + * Make-lang.in: Add assert.j. + + * Makefile.in: Add assert.j. + + * assert.j: New file. + +Thu Apr 27 16:24:22 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * bad.h (ffebad_severity): New function. + + * bad.c (ffebad_severity): New function. + + * bad.def (FFEBAD_OPEN_INCLUDE): Change severity from SEVERE + to FATAL, since processing continues, and that seems fine. + + * com.c: Add facility to handle -I. + (ffecom_file, ffecom_close_include, ffecom_open_include, + ffecom_decode_include_option): New global functions for -I. + (ffecom_file_, ffecom_initialize_char_syntax_, + ffecom_close_include_, ffecom_decode_include_option_, + ffecom_open_include_, append_include_chain, open_include_file, + print_containing_files, read_filename_string, file_name_map, + savestring): New internal functions for -I. + + * compilers.h: Pass -I flag(s) to f771 (via "%{I*}"). + + * lex.c (ffelex_include_): Call ffecom_close_include + to close include file, for its tracking needs for -I, + instead of using fclose. + + * options-lang.h: Add -I prefix. + + * parse.c (yyparse): Call ffecom_file for main input file, + so -I handling works (diagnostics). + + * std.c (ffestd_S3P4): Have ffecom_open_include handle + opening and diagnosing errors with INCLUDE files. + + * ste.c (ffeste_begin_iterdo_): Use correct algorithm for + calculating # of iterations -- mathematically similar but + computationally different algorithm was not handling cases + like "DO I=6,5,2" correctly, because (5-6)/2+1 => 1, not 0. + + * top.c (ffe_decode_option): Allow -I, restructure a bit + for clarity and, maybe, speed. + +Mon Apr 17 13:31:11 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * g77.c: Remove -lc, turns out not all systems has it, but + leave other changes in for clarity of code. + +Sun Apr 16 21:50:33 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_expr_): Implement ARRAY_EXPR as INDIRECT_REF + of appropriate PLUS_EXPRs of ptr_to_expr of array, to see + if this generates better code. (Conditional on + FFECOM_FASTER_ARRAY_REFS.) + +Sun Apr 16 00:22:48 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Make-lang.in (F77_SRCS): Remove g77.c, since it doesn't + contribute to building f771. + + * Makefile.in (dircheck): Remove/replace with f/Makefile, because + phony targets that are referenced in other real targets get run + when those targets are specified, which is a waste of time (e.g. + when rebuilding and only g77.c has changed, f771 was being linked + anyway). + + * g77.c: Include -lc between -lf2c and -lm throughout. + + * implic.c (ffeimplic_establish_symbol): If -Wimplicit, warn if + implicit type given to symbol. + + * lex.c (ffelex_include_): Don't gratuitously increment line + number here. + + * top.h, top.c (ffe_is_warn_implicit_): New global variable and + related access macros. + (ffe_decode_option): Handle -W options, including -Wall and + -Wimplicit. + + * where.c (ffewhere_line_new): Don't muck with root line (was + crashing on null input since lexer changes over the past week + or so). + +Thu Apr 13 16:48:30 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_init_0): Register built-in functions for cos, + sin, and sqrt. + (ffecom_tree_fun_type_double): New variable. + (ffecom_expr_intrinsic_): Update f2c input and output files + to latest version of f2c (no important g77-related changes + noted, just bug fixes to f2c and such). + (builtin_function): New function from c-decl.c. + + * com-rt.def: Refer to built-in functions for cos, sin, and sqrt. + +Thu Apr 13 10:25:09 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_expr_intrinsic_): Convert 0. to appropriate + type to keep DCMPLX(I) from crashing the compiler. + (ffecom_expr_): Don't convert result from ffecom_tree_divide_. + (ffecom_tree_divide_): Add tree_type argument, have all callers + pass one, and don't convert right-hand operand to it (this is + to make this new function work as much like the old in-line + code used in ffecom_expr_ as possible). + + * lex.c: Maintain lineno and input_filename the way the gcc + lexer does. + + * std.c (ffestd_exec_end): Save and restore lineno and + input_filename around the second pass, which sets them + appropriately for each saved statement. + +Wed Apr 12 09:44:45 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_expr_power_integer_): New function. + (ffecom_expr_): Call new function for power op with integer second + argument, for generating better code. Also replace divide + code with call to new ffecom_tree_divide_ function. + Canonicalize calls to ffecom_truth_value(_invert). + (ffecom_tree_divide_): New function. + +Wed Apr 5 14:15:44 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * lex.c: Change to allocate text for tokens only when actually + needed, which should speed compilation up somewhat. + Change to allow INCLUDE at any point where a statement + can end, i.e. in ffelex_finish_statement_ or when a SEMICOLON + token is sent. + Remove some old, obsolete code. + Clean up layout of entire file to improve formatting, + readability, etc. + (ffelex_set_expecting_hollerith): Remove include argument. + +Fri Mar 31 23:19:08 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * bad.h, bad.c (ffebad_start_msg, ffebad_start_msg_lex): + New functions to generate arbitrary messages. + (FFEBAD_severityPEDANTIC): New severity, to correspond + to toplev's pedwarn() function. + + * lex.c (ffelex_backslash_): New function to implement + backslash processing. + (ffelex_file_fixed, ffelex_file_free): Implement new + backslash processing. + + * std.c (ffestd_R1001dump_): Don't assume CHARACTER and + HOLLERITH tokens stop at '\0' characters, now that backslash + processing is supported -- use their advertised lengths instead, + and double up the '\002' character for libf2c. + +Mon Mar 27 17:10:33 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_init_local_zero_): Implement -finit-local-zero. + (ffecom_sym_transform_): Same. + (ffecom_transform_equiv_): Same. + + * options-lang.h: Add -f(no-)(init-local-zero,backslash,ugly-init). + + * stb.c (ffestb_V020): Reject "TYPEblah(...", which might be + an array assignment. + + * target.h, top.h, top.c: Implement -finit-local-zero. + +Fri Mar 24 19:56:22 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Make-lang.in, Makefile.in: Remove conf-proj(.in) and + proj.h(.in) rules, plus related config.log, config.cache, + and config.status stuff. + + * com.c (ffecom_init_0): Change messages when atof(), bsearch(), + or strtoul() do not work as expected in the start-up test. + + * conf-proj, conf-proj.in: Delete. + + * lex.c (ffelex_file_fixed): Allow f2c's '&' in column 1 + to mean continuation line. + + * options-lang.h: New file, #include'd by ../toplev.c. + + * proj.h.in: Rename back to proj.h. + + * proj.h (LAME_ASSERT): Remove. + (LAME_STDIO): Remove. + (NO_STDDEF): Remove. + (NO_STDLIB): Remove. + (NO_BSEARCH): Remove auto detection, rename to !FFEPROJ_BSEARCH. + (NO_STRTOUL): Remove auto detection, rename to !FFEPROJ_STRTOUL. + (USE_HOST_LIMITS): Remove (maybe still needed by stand-alone?). + (STR, STRX): Do only ANSI C definitions. + +Mon Mar 13 10:46:13 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * BUGS: Add item about g77 requiring gcc to compile it. + + * NEWS: New file listing user-visible changes in the release. + + * PROJECTS: Update to include a new item or two, and modify + or delete items that are addressed in this or previous releases. + + * bad.c (ffebad_finish): Don't crash if missing string &c, + just substitute obviously distressed string "[REPORT BUG!!]" + for cases where the message/caller are fudgy. + + * bad.def: Clean up error messages in a major way, add new ones + for use by changes in target.c. + + * com.c (ffecom_expr_): Handle opANY in opCONVERT. + (ffecom_let_char_): Disregard destinations with ERROR_MARK. + (ffecom_1, ffecom_1_fn, ffecom_2, ffecom_2s, ffecom_3, + ffecom_3s, &c): Check all inputs for error_mark_node. + (ffecom_start_progunit_): Don't transform all symbols + in BLOCK DATA, since it never executes, and it is silly + to, e.g., generate all the structures for NAMELIST. + (ffecom_char_length_expr_): Rename to ffecom_intrinsic_len_. + (ffecom_intrinsic_ichar_): New function to handle ICHAR of + arbitrary expression with possible 0-length operands. + (ffecom_expr_intrinsic_): Use ffecom_intrinsic_char_. + For MVBITS, set tree_type to void_type_node. + (ffecom_start_progunit_): Name master function for entry points + after primary entry point so users can easily guess it while + debugging. + (ffecom_arg_ptr_to_expr): Change treatment of Hollerith, + Typeless, and %DESCR. + (ffecom_expr_): Change treatment of Hollerith. + + * data.c (ffedata_gather_): Handle opANY in opCONVERT. + + * expr.c (ffeexpr_token_apostrophe_): Issue FFEBAD_NULL_CHAR_CONST + warning as necessary. + (ffeexpr_token_name_rhs_): Set context for args to intrinsic + so that assignment-like concatenation is allowed for ICHAR(), + IACHAR(), and LEN() intrinsics. + (ffeexpr_reduced_*_): Say "an array" instead of "an entity" in + diagnostics, since it's more informative. + (ffeexpr_finished_): For many contexts, check for null expression + and array before trying to do a conversion, to avoid redundant + diagnostics. + + * g77.1: Fix typo for preprocessed suffix (.F, not .f). + + * global.c (ffeglobal_init_common): Warn if initializing + blank common. + (ffeglobal_pad_common): Enable code to warn if initial + padding needed. + (ffeglobal_size_common): Complain if enlarging already- + initialized common, since it won't work right anyway. + + * intrin.c: Add IMAG() intrinsic. + (ffeintrin_check_loc_): Allow opSUBSTR in LOC(). + + * intrin.def: Add IMAG() intrinsic. + + * lex.c: Don't report FFEBAD_NULL_CHAR_CONST errors. + + * sta.c, sta.h, stb.c: Changes to clean up error messages (see + bad.def). + + * stb.c (ffestb_R100113_): Issue FFEBAD_NULL_CHAR_CONST + warning as necessary. + + * stc.c (ffestc_shriek_do_): Don't try to reference doref_line + stuff in ANY case, since it won't be valid. + (ffestc_R1227): Allow RETURN in main program unit, with + appropriate warnings/errors. + (ffestc_subr_format_): Array of any type is a CHAREXPR (F77 C5). + + * ste.c (ffeste_begin_doiter_): Couple of fixes to accurately + determine if loop never executes. + + * target.c (ffetarget_convert_*_hollerith_): Append spaces, + not zeros, to follow F77 Appendix C, and to warn when + truncation of non-blanks done. + (ffetarget_convert_*_typeless): Rewrite to do typeless + conversions properly, and warn when truncation done. + (ffetarget_print_binary, ffetarget_print_octal, + ffetarget_print_hex): Rewrite to use new implementation of + typeless. + (ffetarget_typeless_*): Rewrite to use new implementation + of typeless, and to warn about overflow. + + * target.h (ffetargetTypeless): New implementation of + this type. + + * type.h, type.c (ffetype_size_typeless): Remove (incorrect) + implementation of this function and its extern. + +Sun Mar 5 18:46:42 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * BUGS: Clarify that constant handling would also fix lack of + adequate IEEE-754/854 support to some degree, and typeless + and non-decimal constants. + + * com.c (ffecom_type_permanent_copy_): Comment out to avoid + warnings. + (duplicate_decls): New function a la gcc/c-decl.c. + (pushdecl): Use duplicate_decls to decide whether to return + existing decl or new one, instead of always returning existing + decl. + (ffecom_expr_): opPERCENT_LOC now supports CHARACTER arguments. + (ffecom_init_0): Give f2c I/O code 0 for basictypeANY/kindtypeANY. + (ffecom_sym_transform_): For adjustable arrays, pass low bound + through variable_size in case its primaries are changed (950302-1.f). + + * com.h: More decls that belong in tree.h &c. + + * data.c (ffedata_eval_integer1_): Fix opPAREN case to not + treat value of expression as an error code. + + * expr.c (ffeexpr_finished_): Allow opSUBSTR in contextLOC case. + + * proj.c: Add "const" as appropriate. + +Mon Feb 27 10:04:03 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * bad.def (FFEBAD_BAD_SUBSTR): Fix bad grammar in message. + +Fri Feb 24 16:21:31 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.13 released. + + * INSTALL: Warn that f/zzz.o will compare differently between + stages, since it puts the __TIME__ macro into a string. + + * com.c (ffecom_sym_transform_): Transform kindFUNCTION/whereDUMMY + to pointer-to-function, not function. + (ffecom_expr_): Use ffecom_arg_ptr_to_expr instead of + ffecom_char_args_ to handle comparison between CHARACTER + types, so either operand can be a CONCATENATE. + (ffecom_transform_common_): Set size of initialized common area + to global (largest-known) size, even though size of init might + be smaller. + + * equiv.c (ffeequiv_offset_): Check symbol info for ANY. + + * expr.c (ffeexpr_find_close_paren_, ffeexpr_nil_*): New functions + to handle following the contour of a rejected expression, so + statements like "PRINT(I,I,I)=0" don't cause the PRINT statement + code to get the second passed back to it as if there was a + missing close-paren before it, the comma causing the PRINT code + to confirm the statement, resulting in an ambiguity vis-a-vis + the let statement code. + Use the new ffecom_find_close_paren_ handler when an expected + close-paren is missing. + (ffeexpr_isdigits_): New function, use in all places that + currently use isdigit in repetitive code. + (ffeexpr_collapse_symter): Collapse to ANY if init-expr is ANY, + so as to avoid having symbol get "transformed" if used to + dimension an array. + (ffeexpr_token_real_, ffeexpr_token_number_real_): Don't issue + diagnostic about exponent, since it'll be passed along the + handler path, resulting in a diagnostic anyway. + (ffeexpr_token_apos_char_): Use consistent handler path + regardless of whether diagnostics inhibited. + (ffeexpr_token_name_apos_name_): Skip past closing quote/apos + even if not a match or other diagnostic issued. + (ffeexpr_sym_impdoitem_): Exec-transition local SEEN symbol. + + * lex.c (ffelex_image_char_): Set ffelex_saw_tab_ if TAB + seen, not if anything other than TAB seen! + + * stc.c (ffestc_R537_item): If source is ANY but dest isn't, + set dest symbol's init expr to ANY. + (ffestc_R501_attrib, ffestc_R522, ffestc_R522start): Complain + about conflict between "SAVE" by itself and other uses of + SAVE only in pedantic mode. + + * ste.c (ffeste_R1212): Fix loop over labels to always + increment caseno, to avoid pushcase returning 2 for duplicate + values when one of the labels is invalid. + +Thu Feb 23 12:42:04 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.12 released. + + * Make-lang.in (f77.install-common): Add "else true;" before outer + "fi" per Makefile.in patch. + + * Makefile.in (dircheck): Add "else true;" before "fi" per + patch from chs1pm@surrey.ac.uk. + + * com.c (ffecom_push_tempvar): If type desired is ERROR_MARK, + return error_mark_node, to avoid crash that results from + making a VAR_DECL with error_mark_node as its type. + + * ste.c (ffeste_begin_iterdo_): Convert itercount to INTEGER + anytime calculation of number of iterations ends up with type + other than INTEGER (e.g. DOUBLE PRECISION, REAL). + +Thu Feb 23 02:48:38 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.11 released. + + * DOC: Explain -fugly-args. + + * bad.def (FFEBAD_ACTUALARG): Explain -fugly-args and how to + rewrite code to not require it. + + * com.c (ffecom_vardesc_): Handle negative type code, just in + case. + (ffecom_arg_ptr_to_expr): Let ffecom_expr handle hollerith + and typeless constants (move code to ffecom_constantunion). + (ffecom_constantunion): Handle hollerith and typeless constants. + + * expr.c (ffecom_finished_): Check -fugly-args in actual-arg + context where hollerith/typeless provided. + + * intrin.def (FFEINTRIN_genDFLOAT): Add FFEINTRIN_specDFLOAT. + (FFEINTRIN_specDFLOAT): Add as f2c intrinsic. + + * target.h (ffetarget_convert_real[12]_integer, + ffetarget_convert_complex[12]_integer): Pass -1 for high integer + value if low part is negative. + (FFETARGET_defaultIS_UGLY_ARGS): New macro. + + * top.c (ffe_is_ugly_args_): New variable. + (ffe_decode_option): Handle -fugly-args and -fno-ugly-args. + + * top.h (ffe_is_ugly_args_, ffe_is_ugly_args(), + ffe_set_is_ugly_args()): New variable and macros. + +Thu Feb 23 02:48:38 1995 Pedro A M Vazquez (vazquez@iqm.unicamp.br) + + * g77.c (sys_errlist): Use const for __FreeBSD__ systems + as well. + +Wed Feb 22 13:33:43 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.10 released. + + * CREDITS: Add Rick Niles. + + * INSTALL: Note how to get around lack of makeinfo. + + * Make-lang.in (f/proj.h): Remove # comment. + + * Makefile.in (f/proj.h): Remove # comment. + + * com.c (ffecom_expr_): Simplify opFUNCREF/opSUBRREF conversion. + (ffecom_sym_transform_): For whereGLOBAL and whereDUMMY + kindFUNCTION, use ffecom_tree_fun_type[][] only for non-constant + (non-statement-function) f2c functions. + (ffecom_init_0): ffecom_tree_fun_type[][] and _ptr_to_*_* are + really f2c-interface arrays, so use base type void for COMPLEX + (like CHARACTER). + +Tue Feb 21 19:01:18 1995 Dave Love + + * Make-lang.in (f77.install-common): Expurgate the test for and + possible installation of f2c in line with elsewhere. Seems to have + been missing a semicolon anyhow! + +Tue Feb 21 11:45:25 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.9 released. + + * Make-lang.in (f/proj.h): touch file to register update, + because the previous commands won't necessarily modify it. + + * Makefile.in (f/proj.h): touch file to register update, + because the previous commands won't necessarily modify it. + + * Makefile.in (f/str-*.h, f/str-*.j): Explicitly specify + output file names, so these targets go in build, not source, + directory. + + * bits.c, bits.h: Switch to valid ANSI C replacement for + ARRAY_ZERO. + + * com.c (ffecom_expr_): Add assignp arg to support ASSIGN better. + If assignp is TRUE, use different tree for FFEBLD_opSYMTER case. + (ffecom_sym_transform_assign_): New function. + (ffecom_expr_assign): New function. + (ffecom_expr_assign_w): New function. + + * com.c (ffecom_f2c_make_type_): Do make_signed_type instead + of make_unsigned_type throughout. + + * com.c (ffecom_finish_symbol_transform_): Expand scope of + commented-out code to probably produce faster compiler code. + + * com.c (ffecom_gen_sfuncdef_): Push/pop calltemps so + COMPLEX works right. + Remove obsolete comment. + + * com.c (ffecom_start_progunit_): If non-multi alt-entry + COMPLEX function, primary (static) entry point returns result + directory, not via extra arg -- to agree with ffecom_return_expr + and others. + Pretransform all symbols so statement functions are defined + before any code emitted. + + * com.c (ffecom_finish_progunit): Don't posttransform all + symbols here -- pretransform them instead. + + * com.c (ffecom_init_0): Don't warn about possible ASSIGN + crash, as this shouldn't happen now. + + * com.c (ffecom_push_tempvar): Fix to handle temp vars + pushed while context is a statement (nested) function, and + add appropriate commentary. + + * com.c (ffecom_return_expr): Check TREE_USED to determine + where return value is unset. + + * com.h (struct _ffecom_symbol_): Add note about length_tree + now being used to keep tree for ASSIGN version of symbol. + + * com.h (ffecom_expr_assign, ffecom_expr_assign_rw): New decls. + (error): Add this prototype for back-end function. + + * fini.c (main): Grab input, output, and include names + directly off the command line instead of making the latter + two out of the first. + + * lex.c: Improve tab handling for both fixed and free source + forms, and ignore carriage-returns on input, while generally + improving the code. ffelex_handle_tab_ has been renamed and + reinvented as ffelex_image_char_, among other things. + + * malloc.c, malloc.h: Switch to valid ANSI C replacement for + ARRAY_ZERO, and kill the full number of bytes in pools and + areas. + + * proj.h.in (ARRAY_ZERO, ARRAY_ZERO_SIZE): Remove. + + * ste.c (ffeste_io_cilist_, ffeste_io_icilist_, ffeste_R838, + ffeste_R839): Issue diagnostic if a too-narrow variable used in an + ASSIGN context despite changes to this code and code in com.c. + + * where.c, where.h: Switch to valid ANSI C replacement for + ARRAY_ZERO. + +Fri Feb 17 03:35:19 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.8 released. + + * INSTALL: In quick-build case, list g77 target first so g77 + gets installed. Also, explain that gcc gets built and installed + as well, even though this isn't really what we want (and maybe + we'll find a way around this someday). + +Fri Feb 17 02:35:41 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.7 released. + + * Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Remove + ../ prefix in front of .h files, since they're in the cd. + +Fri Feb 17 01:50:48 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.6 released. + +Thu Feb 16 20:26:54 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * ../README.g77: Remove description of g77 as "not-yet-published". + + * CREDITS: More changes. + + * Make-lang.in (G77STAGESTUFF): Remove cktyps stuff. + + * Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Don't + prefix gcc dir with $(srcdir) since these don't live there, + they are created in the build dir by gcc's configure. Add + a note explaining what these macros are about. + Update dependencies via deps-kinda. + + * README.NEXTSTEP: Credit Toon, and per his request, add his + email address. + + * com.h (FFECOM_DETERMINE_TYPES): #include "config.j". + + * config.j, convert.j, flags.j, hconfig.j, rtl.j, tconfig.j, + tm.j, tree.j: Don't #include if already done. + + * convert.j: #include "tree.j" first, as convert.h clearly depends + on trees being defined. + + * rtl.j: #include "config.j" first, since there's some stuff + in rtl.h that assumes it has been #included. + + * tree.j: #include "config.j" first, or real.h makes inconsistent + decision about return type of ereal_atof, leading to bugs, and + because tree.h/real.h assume config.h already included. + +Wed Feb 15 14:40:20 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.5 released. + + * Copyright notices updated to be FSF-style. + + * INSTALL: Some more clarification regarding building just f77. + + * Make-lang.in (F77_SRCS): Update wrt changing some .h to .j. + (install-libf77): Fix typo in new parenthetical note. + + * Makefile.in (f/*.o): Update. + (CONFIG_H, CONVERT_H, FLAGS_H, GLIMITS_H, HCONFIG_H, RTL_H, + TCONFIG_H, TM_H, TREE_H): Update/new symbols. + (deps-kinda): More fixes wrt changing some .h to .j. + Document and explain this rule a bit better. + Accommodate changes in output of gcc -MM. + + * *.h, *.c: Change #include's so proj.h not assumed to #include + malloc.h or config.h (now config.j), and so new .j files are + used instead of old .h ones. + + * com.c (ffecom_init_0): Use FLOAT_TYPE_SIZE for f2c's + TYLONG/TYLOGICAL type codes, to get g77 working on Alpha. + + * com.h: Make all f2c-related integral types "int", not "long + int". + + * config.j, convert.j, flags.j, glimits.j, hconfig.j, rtl.j, + tconfig.j, tm.j, tree.j: New files wrapping around gbe + .h files. + + * config.h, convert.h, flags.h, glimits.h, hconfig.h, rtl.h, + tconfig.h, tm.h, tree.h: Deleted so new .j files + can #include the gbe files directly, instead of using "../", + and thus do better with various kinds of builds. + + * proj.h: Delete unused NO_STDDEF and related stuff. + +Tue Feb 14 08:28:08 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * BUGS: Remove item #12, cross-compiling & autoconf scripts + reportedly expected to work properly (according to d.love). + + * INSTALL: Add explanation of d.love's patch to config-lang.in. + Add explanation of how to install just g77 when gcc already installed. + Add note about usability of "-Wall". Add note about bug- + reporting. + + * Make-lang.in ($(srcdir)/f/conf-proj): Add comment about why + conf-proj.out. + (install-libf77): Echo parenthetical note to user about how to do + just the (aborted) libf2c installation. + (deps-kinda): Update to work with new configuration/build stuff. + + * bad.c (ffebad_finish): Put capitalized "warning:" &c message + as prefix on any diagnostic without pointers into source. + + * bad.def (FFEBAD_TOO_BIG_INIT): Add this warning message. + + * config-lang.in: Add Dave Love's patch to catch case where + back-end patches not applied and abort configuration. + + * data.c (ffedata_gather_, ffedata_value_): Warn when about + to initialize a large aggregate area, due to design flaw resulting + in too much time/space used to handle such cases. + Use COMMON area name, and first notice of symbol, for multiple- + initialization diagnostic, instead of member symbol and unknown + location. + (FFEDATA_sizeTOO_BIG_INIT_): New macro per above. + +Mon Feb 13 13:54:26 1995 Dave Love + + * Make-lang.in (F77_SRCS): Use $(srcdir)/f/proj.h.in, not + $(srcdir)/f/proj.h for build outside srcdir. + +Sun Feb 12 13:37:11 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * ../README.g77: Clarify procedures for unpacking, add asterisks + to mark important things the user must do. + + * Fix dates in/add dates to ../README.g77, BUGS, CREDITS, DOC, + INSTALL, PROJECTS, README. + +Sun Feb 12 00:26:10 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.4 released. + + * Make-lang.in (f/proj.h): Reproduce this rule here from + Makefile.in. + ($(srcdir)/f/conf-proj): Put autoconf's stdout in temp file + conf-proj.out, then mv to conf-proj only if successful, so + conf-proj not touched if autoconf not installed. + + * Makefile.in ($(srcdir)/conf-proj): See Make-lang.in's similar + rule. + +Sat Feb 11 20:56:02 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * BUGS: Clarify some bugs. + + * DOC: Many improvements and fixes. + + * README: Move bulk of text, edited, to ../README.g77, and + replace with pointer to that file. + + * com.c (ffecom_init_0): Comment out warning about sizeof(ftnlen) + as per ste.c change. Add text about ASSIGN to help user understand + what is being warned about. + + * conf-proj.in: Fix typos in comments. + + * proj.h.in: Add ARRAY_ZERO_SIZE to parallel malloc.h's version, + in case it proves to be needed. + + * ste.c: Comment out assertions requiring sizeof(ftnlen) >= + sizeof(char *), in the hopes that overflow will never happen. + (ffeste_R838): Change assertion to fatal() with at least + partially helpful message. + +Sat Feb 11 12:38:00 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * com.c (ffecom_vardesc_): Crash if typecode is -1. + + * ste.c (ffeste_io_dolio_): Crash if typecode is -1. + +Sat Feb 11 09:51:57 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * ste.c: In I/O code tests for item arrayness, sort of revert + to much earlier code that tests original exp, but also check + in newer way just in case. Newer way alone treated FOO(1:40) + as an array, not sure why older way alone didn't work, but I + think maybe it was when diagnosed code was involved, and + since there are now checks for error_mark_node, maybe the old + way alone would work. But better to be safe; both original + ffebld exp _and_ the transformed tree must indicate an array + for the size-determination code to be used, else just 1/2 elements + assumed. And this text is for EMACS: (foo at bar). + +Fri Feb 10 11:05:50 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * ste.c: In many cases, surround statement-expansion code + with ffecom_push_calltemps () and ffecom_pop_calltemps () + so COMPLEX-returning functions can have temporaries pushed + in "auto-pop" mode and have them auto-popped at the end of + the statement. + +Wed Feb 8 14:35:10 1995 Dave Love + + * runtime/f2c.h.in (ftnlen, ftnint): Make same size as integer. + + * runtime/libI77/err.c (f_init): Thinko in MISSING_FILE_ELEMS + conditional. + * runtime/libI77/wrtfmt.c (mv_cur): Likewise. + * runtime/libI77/wsfe.c (x_putc): Likewise. + + * runtime/libF77/signal_.c (signal_): Return 0 (this is a + subroutine). + + * Makefile.in (f/proj.h): Depend on com.h. + * Make-lang.in (include/f2c.h): Likewise (and proj.h). + (install-libf77): Also install f2c.h. + + * runtime/libI77/Makefile.in (*.o): Add f2c.h dependency. + * runtime/libF77/Makefile.in: Likewise. + +Wed Feb 8 13:56:47 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * stc.c (ffestc_R501_item): Don't reset kind/where to NONE when + setting basictype/kindtype info for symbol, or especially + its function/result twin, because kind/where might not be NONE. + +Tue Feb 7 14:47:26 1995 Dave Love + + * Make-lang.in (include/f2c.h:): Set shell variable src more + robustly (independent of whether srcdir is relative or absolute). + * Makefile.in (f/proj.h:): Likewise. + + * conf-proj.in: Check need for LAME_ASSERT. Fix indentation in + check for LAME_STDIO (cosmetic only with ANSI C). + + * com.h: Extra ...SIZE stuff taken from com.c. + + * com.c (FFECOM_DETERMINE_TYPES): Define before including com.h. + (BITS_PER_WORD etc.) Remove and use conditional definitions to com.h. + + * runtime/configure.in: #define FFECOM_DETERMINE_TYPES for com.h in + f2c type determination. + + * tm.h: Remove (at least pro tem) because of relative path and use + top-level one. + + * Make-lang.in (include/f2c.h:): Set shell variable src more + robustly (independent of whether srcdir is relative or absolute). + * Makefile.in (f/proj.h:): Likewise. + +Mon Feb 6 19:58:32 1995 Dave Love + + * g77.c (append_arg): Use K&R declaration for, e.g. SunOS4 build. + +Fri Feb 3 20:33:14 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * g77.c (main): Treat -l like filename in terms of -x handling. + Rewrite arglist mechanism for ease of maintenance. + Make sure every -lf2c is followed by -lm and vice versa. + + * Make-lang.in: Put complete list of sources in F77_SRCS def + so changing a .h file, for example, causes rebuild. + + * Makefile.in: Change test for nextstep to m68k-next-nextstep* so + all versions of nextstep on m68k get the necessary flag. + +Fri Feb 3 19:10:32 1995 Dave Love + + * INSTALL: Note about possible conflict with existing libf2c.a and + f2c.h. + + * Make-lang.in (f77.distclean): Tidy and move deletion of + f/config.cache to mostlyclean. + (install-libf77): Test for $(libdir)/libf2c.* and barf if found + unless F2CLIBOK defined. + + * runtime/Makefile.in (all): Change path to include directory (and + elsewhere). + (INCLUDES): Remove (unused/misleading). + (distclean): Include f2c.h. + (clean): Include config.cache. + + * runtime/libF77/Makefile.in (.SUFFIXES): Correct typo. + (ALL_CFLAGS) Fix up include search path to find f2c.h in top level + includes always. + (all): Depend on f2c.h. + * runtime/libI77/Makefile.in (.SUFFIXES): Likewise. + +Thu Feb 2 17:17:06 1995 Dave Love + + * INSTALL: Note about --srcdir and GNU make. + + * runtime/f2c.h.in (Pad_UDread, ALWAYS_FLUSH): Reomve the #defines + per below. + + * runtime/configure.in (Pad_UDread, ALWAYS_FLUSH): Define these + here, not in f2c.h as they'r eonly relevant for building. + * runtime/configure: Regenerated. + + * config-lang.in: Warn about using GNU make outside source tree + since I can't get Irix5 or SunOS4 makes to work in this case. + + * Makefile.in (VPATH): Don't set it here. + (srcdir): Make it the normal `.' (overridden) at top level. + (all.indirect): New dependency `dircheck'. + (f771): Likewise + (dircheck): New target for foolproofing. + (f/proj.h:): Change finding source. + (CONFIG_H): Don't use this as the relative path in the include loses + f builddir != srcdir. + + * config.h: Remove per CONFIG_H change above. + + * Make-lang.in (F77_FLAGS_TO_PASS): Remove GCC_FOR_TARGET. + (f771:): Pass VPATH, srcdir to sub-make. + (f/Makefile:): New target. + (stmp-int-hdrs): new variable for cheating build. + (f77-runtime:): Alter GCC_FOR_TARGET treatment. + (include/f2c.h f/runtime/Makefile:) Likewise. + (f77-runtime-unsafe:): New (cheating) target. + +Thu Feb 2 12:09:51 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * BUGS: Update regarding losing EQUIVALENCE members in -g, and + regarding RS/6000 problems in the back end. + + * CREDITS: Make some changes as requested. + + * com.c (ffecom_member_trunk_): Remove unused static variable. + (ffecom_finish_symbol_transform_): Improve comments. + (ffecom_let_char_): Fix size of temp address-type var. + (ffecom_member_phase2_): Try fixing problem fixed by change + to ffecom_transform_equiv_ (f_m_p2_ function currently not used). + (ffecom_transform_equiv_): Remove def of unused static variable. + Comment-out use of ffecom_member_phase2_, until problems with + back end fixed. + (ffecom_push_tempvar): Fix assertion to not crash okay code. + + * com.h: Remove old, commented-out code. + Add prototype for warning() in back end. + + * ste.c (ffeste_io_dofio_, ffeste_io_dolio_, ffeste_io_douio_, + ffeste_io_icilist_): Check correct type of variable for arrayness. + +Sun Jan 29 14:41:42 1995 Dave Love + + * BUGS: Remove references to my configure bugs; add another. + + * runtime/Makefile.in (AR_FLAGS): Provide default value. + + * runtime/f2c.h.in (integer, logical): Take typedefs from + F2C_INTEGER configuration parameter again. + (NON_UNIX_STDIO): don't define it. + + * runtime/configure.in: Bring type checks for f2c.h in line with + com.h. + (MISSING_FILE_ELEMS): New variable to determine whether the relevant + elements of the FILE struct exist, independent of NON_UNIX_STDIO. + * runtime/libI77/{err,wrtfmt,wsfe}.c (MISSING_FILE_ELEMS): Use new + parameter. + + * config-lang.in: Comment out more of f2c rules (c.f. Make-lang.in). + (This stuff is relevant iff you gave configure --enable-f2c.) + Create f/runtime directory tree iff not building in source + directory. + + * Makefile.in (srcdir): Append slash so we get the right value when + not building in the source directory. This is a consequence of not + building the `f' sources in `f'. + (VPATH): Override configure's value for reasons above. + (f/proj.h f/conf-proj): New rules to build proj.h by + autoconfiguration. + + * proj.h: Rename to proj.h.in for autoconfiguration. + * proj.h.in: New as above. + * conf-proj conf-proj.in: New files for autoconfiguration. + + * Make-lang.in (include/f2c.h f/runtime/Makefile:): Change the order + of setting the sh variables so that the right GCC_FOR_TARGET is + used. + (f77.*clean:) Add products of new configuration files and make sure + all the *clean targets do something (unlike the ones in + cp/Make-lange.in). + + * com.h (FFECOM_f2cINTEGER, FFECOM_f2cLOGICAL): Define as long or + int appropriately to ensure sizeof(real) == sizeof(integer). + + * PROJECTS: Library section. + + * runtime/libI77/endfile.c: Don't #include sys/types.h conditional + on NON_UNIX_STDIO since rawio.h needs size_t. + * runtime/libI77/uio.c: #include for size_t if not + KR_headers. + +Wed Jan 25 03:31:51 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.3 released. + + * INSTALL: Revise. + + * Make-lang.in: Comment out rules for building f2c itself (f/f2c/). + + * README: Revise. + + * com.c (ffecom_init_0): Warn if ftnlen or INTEGER not big enough + to hold a char *. + + * gbe/2.6.2.diff: Update. + +Mon Jan 23 17:10:49 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * TODO: Remove. + BUGS: New file. + PROJECTS: New file. + CREDITS: New file. + + * cktyps*: Remove. + Make-lang.in: Remove cktyps stuff. + Makefile.in: Remove cktyps stuff. + + * DOC: Add info on changes for 0.5.3. + + * bad.c: Put "warning:" &c on diagnostic messages. + Don't output informational messages if warnings disabled. + +Thu Jan 19 12:38:13 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * g77.c: Avoid putting out useless "-xnone -xf77" pairs so + larger command lines can be accommodated. + Recognize both `-xlang' and `-x lang'. + Recognize `-xnone' and `-x none' to mean what it does, instead + of treating "none" as any other language. + Some minor, slight improvements in the way args are handled + (hopefully for clearer, more maintainable code), including + consistency checks on arg count just in case. + +Wed Jan 18 16:41:57 1995 Craig Burley (burley@gnu.ai.mit.edu) + + * DOC: Explain -fautomatic better. + + * INSTALL: Describe libf2c.a better. + + * Make-lang.in, Makefile.in: Build f771 &c with gcc/ as cd instead + of gcc/f/ so debugging info is better (source file tracking). + Add new source file type.c. + + * Makefile.in: For nextstep3, link f771 with -segaddr __DATA + 6000000. Fix typo. Change deps-kinda target to handle building + from gcc/. Update dependencies. + + * bld-op.def, bld.h, bld.c: Remove opBACKEND and all related + stuff. + Remove consistency tests that cause compiler warnings. + + * cktyps.c: Remove all typing checking. + + * com-rt.def: Change all rttypeFLOAT_ intrinsics to rttypeDOUBLE_, + to precisely match how they're declared in libf2c. + + * com.h, com.c: Revise to more elegantly track related stuff + in the version of f2c.h used to build libf2c. + + * com.c: Increase FFECOM_sizeMAXSTACKITEM, and if 0 or undefined + when checked to determine where to put entity, treat as infinite. + Rewrite temporary mechanism to be based on trees instead of + ffeinfo stuff, and make it much simpler. Change interface + accordingly. + Fixes to better track types of things, make appropriate + conversions, etc. E.g. when making an arg for a libf2c + function, make sure it's of the right type (such as ftnlen). + Delete opBACKEND transformation code. + (ffecom_init_0): Smoother initialization of types, especially + paying attention to using consistent rules for making INTEGER, + REAL, DOUBLE PRECISION, etc., and for deciding their "*N" + and kind values that will work across all g77 platforms. + No longer require per-target configuration info in target.h + or config/*/*; use new type module to store size, alignment. + (ffecom_member_phase2): Declare COMMON/EQUIVALENCE group members + so debugger sees them. + (ffecom_finish_progunit): Transform all symbols in program unit, + so -g will show they all exist. + + * expr.c (ffeexpr_collapse_substr): Handle strange substring + range values. + + * info.h, info.c: Provide connection to new type module. + Remove tests that yield compiler warnings. + + * intrin.c (ffeintrin_is_intrinsic): Properly handle deleted + intrinsic. + + * lex.c (ffelex_file_fixed): Remove redundant/buggy code. + + * stc.c (ffestc_kindtype_kind_, ffestc_kindtype_star_): Replace + boring switch stmt with simple call to new type module. This + sort of thing is a reason to get up in the morning. + + * ste.c: Update to handle new interface for + ffecom_push/pop_tempvar. + Fixes to better track types of things. + Fixes to not crash for certain diagnosed constructs. + (ffeste_begin_iterdo_): Check only constants for overflow to avoid + spurious diagnostics. + Don't convert larger integer (say, INTEGER*8) to canonical integer + for iteration count. + + * stw.h: Track DO iteration count temporary variable. + + * symbol.c: Remove consistency tests that cause compiler warnings. + + * target.c (ffetarget_aggregate_info): Replace big switch with + little call to new type module. + (ffetarget_layout): Remove consistency tests that cause + compiler warnings. + (ffetarget_convert_character1_typeless): Pick up length of + typeless type from new type module. + + * target.h: Crash build if target float bit pattern cannot be + precisely determined. + Remove all the type cruft now determined by ffecom_init_0 + at invocation time and maintained in new type module. + Put casts on second arg of all REAL_VALUE_TO_TARGET_DOUBLE + uses so compiler warnings avoided (requires target float bit + pattern to be precisely determined, hence code to crash build). + + * top.c: Add inits/terminates for new type module. + + * type.h, type.c: New module. + + * gbe/2.6.2.diff: Remove all patches to files in gcc/config/ + directory and its subdirectories. + +Mon Jan 9 19:23:25 1995 Dave Love + + * com.h (FFECOM_F2C_INTEGER_TYPE_NODE): Define and use instead of + long_integer_type_node where appropriate. + +Tue Jan 3 14:56:18 1995 Dave Love + + * com.h: Make ffecom_f2c_logical_type_node long, consistent with + integer. + +Fri Dec 2 20:07:37 1994 Dave Love + + * config-lang.in (stagestuff): Add f2c conditionally. + * Make-lang.in: Add f2c and related targets. + * f2c: Add the directory. + +Fri Nov 25 22:17:26 1994 Dave Love + + * Makefile.in (FLAGS_TO_PASS): pass $(CROSS) + * Make-lang.in: more changes to runtime targets + +Thu Nov 24 18:03:21 1994 Dave Love + + * Makefile.in (FLAGS_TO_PASS): define for sub-makes + + * g77.c (main): change f77-cpp-output to f77-cpp-input (.F files) + +Wed Nov 23 15:22:53 1994 Dave Love + + * bad.c (ffebad_finish): kluge to fool emacs19 into finding errors: + add trailing space to :: + +Tue Nov 22 11:30:50 1994 Dave Love + + * runtime/libF77/signal_.c (RETSIGTYPE): added + +Mon Nov 21 13:04:13 1994 Dave Love + + * Makefile.in (compiler): add runtime + + * config-lang.in (stagestuff): add libf2c.a to stagestuff + + * Make-lang.in: + G77STAGESTUFF <- MORESTAGESTUFF + f77-runtime: new target, plus supporting ones + + * runtime: add the directory, containing libI77, libF77 and autoconf + stuff + + * g++.1: remove + + * g77.1: minor fixes + +Thu Nov 17 15:18:05 1994 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.2 released. + + * bad.def: Modify wording of FFEBAD_UNIMPL_STMT to indicate + that it covers a wide array of possible problems (that, someday, + should be handled via separate diagnostics). + + * lex.c: Allow $ in identifiers if -fdollar-ok. + * top.c: Support -fdollar-ok. + * top.h: Support -fdollar-ok. + * target.h: Support -fdollar-ok. + * DOC: Describe -fdollar-ok. + + * std.c (ffestd_R1229_finish): Fix bug so stand-alone build works. + * ste.c (ffeste_R819A): Fix bug so stand-alone build works. + + * Make: Improvements for stand-alone build. + + * Makefile.in: Fix copyright text at top of file. + + * LINK, SRCS, UNLINK: Removed. Not particularly useful now that + g77 sources live in their own subdirectory. + + * g77.c (main): Cast arg to bzero to avoid warning. (This is + identical to Kenner's fix to cp/g++.c.) + + * gbe/: New subdirectory, to contain .diff files for various + versions of the GNU CC back end. + + * gbe/README: New file. + * gbe/2.6.2.diff: New file. + +Tue Nov 8 10:23:10 1994 Dave Love + + * Make-lang.in: don't install as f77 as well as g77 to avoid + confusion with system's compiler (especially while testing) + + * g77.c (main): use -lf2c and -lm; fix sense of test for .f/.F files + +Fri Oct 28 09:45:00 1994 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.1 released. + + * gcc.c: Invoke f771 instead of f-771. + +Fri Oct 28 02:00:44 1994 Craig Burley (burley@gnu.ai.mit.edu) + + * Version 0.5.0 released. + +Fri Oct 14 15:03:35 1994 Craig Burley (burley@gnu.ai.mit.edu) + + * Makefile.in: Handle the Fortran-77 front-end in a subdirectory. + * f-*: Move Fortran-77 front-end to f/*. + +Local Variables: +add-log-time-format: current-time-string +End: