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