OSDN Git Service

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