1 Sat Nov 7 15:58:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3 * g77spec.c: Don't include gansidecl.h.
6 1998-11-04 Dave Love <d.love@dl.ac.uk>
8 * g77.texi: Small formatting/indexing fixes.
10 Mon Oct 12 20:41:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12 * bad.c (ffebad_finish): Change type of variable `c' to unsigned
13 char, change type of variable `s' to unsigned char *.
15 * com.c (ffecom_symbol_null_): Add missing initializers.
17 * fini.c (MAXNAMELEN): Undef it before defining.
19 * implic.c (ffeimplic_lookup_): Change type of parameter `c' to
22 * intrin.c (ffeintrin_init_0): Cast the argument of ctype macros
25 * lex.c (ffelex_splice_tokens): Change type of variable `p' to
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.
33 * malloc.c (malloc_root_): Add missing initializer.
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'
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.
64 * top.c (ffe_decode_option): Mark parameter `argc' with
67 * where.c (ffewhere_unknown_line_): Add missing initializers.
69 1998-10-02 Dave Love <d.love@dl.ac.uk>
71 * com.c (ffecom_expr_intrinsic_): Fix return type for RAND.
73 Thu Oct 1 10:43:45 1998 Nick Clifton <nickc@cygnus.com>
75 * lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
76 HANDLE_GENERIC_PRAGMAS.
78 Mon Sep 28 04:22:00 1998 Jeffrey A Law (law@cygnus.com)
80 * news.texi: Update from Craig.
82 1998-09-23 Dave Love <d.love@dl.ac.uk>
84 * g77.texi: Additions about `/*', trailing comments and cpp.
86 1998-09-18 Dave Love <d.love@dl.ac.uk>
88 * g77.texi: Various additions and some small fixes.
90 Thu Sep 10 14:55:44 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl>
92 * Make-lang.in (f77.install-common): Add missing "else true;".
94 1998-09-07 Dave Love <d.love@dl.ac.uk>
96 * ChangeLog.egcs: Deleted. Entries merged here.
98 1998-09-05 Dave Love <d.love@dl.ac.uk>
100 * Makefile.in (LDFLAGS): Set from BOOT_LDFLAGS.
101 (F771_LDFLAGS): Variable dispensed with.
103 Fri Sep 4 19:53:34 1998 Craig Burley <burley@gnu.org>
105 * intdoc.in: Minor editorial tweaks.
107 Fri Sep 4 18:35:52 1998 Craig Burley <burley@gnu.org>
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.
113 Fri Sep 4 18:35:52 1998 Craig Burley <burley@gnu.org>
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.
119 * Makefile.in (proj-h.o): Fix dependencies list.
121 Wed Sep 02 09:25:29 1998 Nick Clifton <nickc@cygnus.com>
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.
132 Tue Sep 1 10:00:21 1998 Craig Burley <burley@gnu.org>
134 * bugs.texi, g77.1, g77.texi, intdoc.in, news.texi: Doc updates
137 1998-08-23 Dave Love <d.love@dl.ac.uk>
139 * g77.texi: Increment `version-g77' and fix a few typos.
141 Tue Aug 18 21:41:31 1998 Jeffrey A Law (law@cygnus.com)
143 * Make-lang.in: Add several "else true" clauses to deal with lame
146 Tue Aug 11 08:12:14 1998 H.J. Lu (hjl@gnu.org)
148 * Make-lang.in (g77.o): Touch lang-f77 before checking it.
150 1998-08-09 Dave Love <d.love@dl.ac.uk>
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.
156 * g77install.texi (Prerequisites): Kluge round TeX lossage with
157 hyphen in @value in @code.
159 Tue Aug 4 16:59:39 1998 Craig Burley <burley@gnu.org>
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.
165 1998-07-26 Dave Love <d.love@dl.ac.uk>
167 * BUGS, INSTALL, NEWS: Rebuilt.
169 Sat Jul 25 17:23:55 1998 Craig Burley <burley@gnu.org>
172 * stc.c (ffestc_R1229_start): Set info to ANY as well.
174 Tue Jul 21 04:33:37 1998 Craig Burley <burley@gnu.org>
176 * g77spec.c (lang_specific_driver): Return unmolested
177 command line when --help seen.
178 Comment out code that printed g77-specific --help info.
180 Sat Jul 18 19:16:48 1998 Craig Burley <burley@gnu.org>
182 * lang-options.h: Fix up doc strings.
183 Remove the unimplemented -fdcp-intrinsics-* options.
185 * str-1t.fin: Change mixed-case spelling of `GoTo' from
188 Thu Jul 16 13:26:36 1998 Craig Burley <burley@gnu.org>
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.
195 1998-07-15 Dave Love <d.love@dl.ac.uk>
197 * intdoc.texi: Regenerated.
199 Mon Jul 13 18:45:06 1998 Craig Burley <burley@gnu.org>
201 * Make-lang.in (f77.rebuilt): Fix to depend on
202 build-dir-based, not source-based, g77.info.
204 * g77.texi: Merge docs with 0.5.24.
205 * g77install.texi: Ditto.
207 Mon Jul 13 18:02:29 1998 Craig Burley <burley@gnu.org>
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.
215 Mon Jul 13 17:33:44 1998 Craig Burley <burley@gnu.org>
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.
226 Mon Jul 13 17:30:29 1998 Nick Clifton <nickc@cygnus.com>
228 * lang-options.h: Format changed to work with --help support added
231 Mon Jul 13 11:54:03 1998 Craig Burley <burley@gnu.org>
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.
237 1998-07-12 Dave Love <d.love@dl.ac.uk>
239 * version.c: Bump version.
241 Sat Jul 11 19:24:32 1998 Craig Burley <burley@gnu.org>
244 * equiv.c (ffeequiv_offset_): Don't crash on various
245 possible ANY operands.
247 Sat Jul 11 18:24:37 1998 Craig Burley <burley@gnu.org>
249 * com.c (ffecom_expr_) [FFEBLD_opCONTER]: Die if padding
250 for constant is non-zero.
252 * com.c (__eprintf): Delete this function, it is obsolete.
254 1998-07-09 Dave Love <d.love@dl.ac.uk>
256 * intdoc.in (HOSTNM_func, HOSTNM_subr): Update last change.
258 Thu Jul 9 00:45:59 1998 Craig Burley <burley@gnu.org>
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"
270 1998-07-06 Mike Stump <mrs@wrs.com>
272 * Make-lang.in (f77.stage?): Use mv -f instead of just mv so that
275 1998-07-06 Dave Love <d.love@dl.ac.uk>
277 * intdoc.in (HOSTNM_func, HOSTNM_subr): Note possible need for
280 1998-07-05 Dave Love <d.love@dl.ac.uk>
282 * intdoc.in: Add entry for DATE_AND_TIME.
284 * intrin.def: Add implementation for DATE_AND_TIME. Make second
285 and third args of SYSTEM_CLOCK optional.
287 * com.c (ffecom_expr_intrinsic_): New case for DATE_AND_TIME.
289 * com-rt.def (FFECOM_gfrtSYSTEM_CLOCK): Call G77_system_clock_0,
291 (FFECOM_gfrtDATE_AND_TIME): New DEFGFRT.
293 Wed Jul 1 11:19:13 1998 Craig Burley <burley@gnu.org>
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.
305 * target.c (ffetarget_align): Make sure alignments
306 are non-zero, just in case.
308 Mon Jun 29 09:47:33 1998 Craig Burley <burley@gnu.org>
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
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'
328 Track destination offset separately, allowing for
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
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
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.
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.
356 Sat Jun 27 12:18:33 1998 Jeffrey A Law (law@cygnus.com)
358 * Make-lang.in (g77): Depend on mkstemp.o. Link in mkstemp.o.
360 Fri Jun 26 11:54:19 1998 Craig Burley <burley@gnu.org>
362 * g77spec.c (lang_specific_driver): Put `-lg2c' in
363 front of any `-lm' that is seen.
365 Wed Jun 24 01:01:23 1998 Jeffrey A Law (law@cygnus.com)
367 * g77spec.c (lang_specific_driver): Revert last change.
369 Mon Jun 22 23:12:05 1998 H.J. Lu (hjl@gnu.org)
371 * Make-lang.in (G77STAGESTUFF): Add g77.c.
373 Fri Jun 19 07:54:40 1998 H.J. Lu (hjl@gnu.org)
375 * g77spec.c (lang_specific_driver): Check n_infiles before
378 Mon Jun 15 23:39:24 1998 Craig Burley <burley@gnu.org>
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.)
385 * Make-lang.in ($(srcdir)/f/intdoc.texi): Compile
386 using $(INCLUDES) macro to get the new hconfig.h
387 and system.h headers.
389 Mon Jun 15 22:21:57 1998 Craig Burley <burley@gnu.org>
416 * system.j: New file.
418 Use toplev.h where appropriate:
427 * toplev.j: New file.
429 Conditionalize all dumping/reporting routines so they don't
430 get built for gcc/egcs:
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.
446 * Makefile.in (deps-kinda): Redirect stderr to stdout,
447 to eliminate diagnostics vis-a-vis g77spec.c.
449 * Makefile.in: Regenerate dependencies via deps-kinda.
451 * lex.c (ffelex_file_fixed, ffelex_file_free): Eliminate
452 apparently spurious warnings about uninitialized variables
453 `c', `column', and so on.
455 Sat Jun 13 03:13:18 1998 Craig Burley <burley@gnu.org>
457 * g77spec.c (lang_specific_driver): Print out egcs
458 version info first, to be compatible with what some
459 test facilities expect.
461 Wed Jun 10 13:17:32 1998 Dave Brolley <brolley@cygnus.com>
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.
468 Sun Jun 7 14:04:34 1998 Richard Henderson <rth@cygnus.com>
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.
476 Fri Jun 5 15:53:17 1998 Per Bothner <bothner@cygnus.com>
478 * g77spec.c (lang_specific_pre_link, lang_specific_extra_ofiles):
479 Define - update needed by gcc.c change.
481 Mon Jun 1 19:37:42 1998 Craig Burley <burley@gnu.org>
483 * com.c (ffecom_init_0): Fix setup of INTEGER(KIND=7)
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.
491 Thu May 28 21:32:18 1998 Craig Burley <burley@gnu.org>
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.
507 * lang-specs.h: Use "%O" instead of OO macro to specify
508 object extension. Remove old stringizing cruft.
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.
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.
528 * Makefile.in (HOST_CC): Delete this definition.
530 * com.c (index, rindex): Delete these declarations.
532 * proj.h: (isascii): Delete this.
534 * Make-lang.in (f77.install-common): Warn if `f77-install-ok'
535 flag-file exists, since it no longer triggers any activity.
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
545 (f77.realclean): Remove obsolete target.
546 (g77.c, g77$(exeext)): Minor changes to look more like g++'s
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.
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.
571 * com.h: Remove all of the gcc back-end decls,
572 since egcs should have all of them correct.
574 * com.c: Include "proj.h" before anything else,
575 as that's how things are supposed to work.
578 * bad.c: Include "flags.j" here, since some diagnostics
579 check flag_pedantic_errors.
581 * Makefile.in (f/*.o): Rebuild dependencies via
584 * output.j: New source file.
585 * Make-lang.in (F77_SRCS): Update accordingly.
586 * Makefile.in (OUTPUT_H): Ditto.
588 * com.c: Include "output.j" here.
591 Mon May 25 03:34:42 1998 Craig Burley <burley@gnu.org>
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.)
597 Sat May 23 06:32:52 1998 Craig Burley <burley@gnu.org>
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.
605 Wed May 20 12:12:55 1998 Craig Burley <burley@gnu.org>
607 * Version 0.5.23 released.
609 Tue May 19 14:52:41 1998 Craig Burley <burley@gnu.org>
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
619 Tue May 19 14:51:59 1998 Craig Burley <burley@gnu.org>
621 * Make-lang.in (f77.install-info, f77.uninstall):
622 Use install-info as appropriate.
624 Tue May 19 12:56:54 1998 Craig Burley <burley@gnu.org>
626 * com.c (ffecom_init_0): Rename xargc to f__xargc,
627 in accord with same-dated change to f/runtime.
629 Fri May 15 10:52:49 1998 Craig Burley <burley@gnu.org>
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.
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.
639 * intrin.c (ffeintrin_init_0): Distinguish between
640 crashes on bad arg base and kind types.
642 Fri May 15 01:44:22 1998 Mumit Khan <khan@xraylith.wisc.edu>
644 * Make-lang.in (f77.mostlyclean): Add missing exeext.
646 Thu May 14 13:30:59 1998 Craig Burley <burley@gnu.org>
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.
652 * intdoc.c (dumpimp): Trivial fix.
654 * com.c (ffecom_expr_): Add ltkt variable for clarity.
656 Wed May 13 13:05:34 1998 Craig Burley <burley@gnu.org>
658 * Make-lang.in (G77STAGESTUFF): Add g77.o, g77spec.o,
660 (f77.clean): Add removal of g77.c, g77.o, g77spec.o,
662 (f77.distclean): Delete removal of g77.c.
664 Thu Apr 30 18:59:43 1998 Jim Wilson <wilson@cygnus.com>
666 * Make-lang.in (g77.info, g77.dvi, BUGS, INSTALL, NEWS): Put -o
667 option before input file.
669 Tue Apr 28 09:23:10 1998 Craig Burley <burley@gnu.org>
672 * global.c (ffeglobal_ref_progunit_): When transitioning
673 from EXT to FUNC, discard hook, since the decl, if any, is
676 Sun Apr 26 09:05:50 1998 Craig Burley <burley@gnu.org>
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.
683 Sat Apr 18 15:26:57 1998 Jim Wilson <wilson@cygnus.com>
685 * g77spec.c (lang_specific_driver): New argument in_added_libraries.
686 New local added_libraries. Increment count when add library to
689 Sat Apr 18 05:03:21 1998 Craig Burley <burley@gnu.org>
691 * com.c (ffecom_check_size_overflow_): Ignore overflow
692 as well if dummy argument.
694 Fri Apr 17 17:18:04 1998 Craig Burley <burley@gnu.org>
696 * version.h: Get rid of the overly large headers
697 here too, as done in version.c.
699 Tue Apr 14 15:51:37 1998 Dave Brolley <brolley@cygnus.com>
701 * com.c (init_parse): Now returns char* containing filename;
703 Tue Apr 14 14:40:40 1998 Craig Burley <burley@gnu.org>
705 * com.c (ffecom_start_progunit_): Mark function decl
706 as used, to avoid spurious warning (-Wunused) for ENTRY.
708 Tue Apr 14 14:19:34 1998 Craig Burley <burley@gnu.org>
710 * sta.c (ffesta_second_): Check for CASE DEFAULT
711 as well as CASE, or it won't be recognized.
713 Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com)
715 * com.c (finput): New variable.
716 (init_parse): Handle !USE_CPPLIB.
717 (finish_parse): New function.
718 (lang_init): No longer declare finput.
720 Sat Apr 4 17:45:01 1998 Richard Henderson <rth@cygnus.com>
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.
726 1998-03-28 Dave Love <d.love@dl.ac.uk>
728 * Make-lang.in (f771$(exeext)): Fix typo.
730 1998-03-24 Martin von Loewis <loewis@informatik.hu-berlin.de>
732 * com.c (lang_print_xnode): New function.
734 Mon Mar 23 21:20:35 1998 Craig Burley <burley@gnu.org>
736 * version.c: Reduce to a one-line file, like
737 gcc's version.c, since there's really no content
740 Mon Mar 23 11:58:43 1998 Craig Burley <burley@gnu.org>
742 * bugs.texi: Various updates.
744 * com.c (ffecom_tree_canonize_ptr_): Fix up spacing a bit.
746 Sun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com>
747 Geoff Noer <noer@cygnus.com>
749 * Makefile.in: Various fixes for building cygwin32 native toolchains.
750 * Make-lang.in: Likewise.
752 Mon Mar 16 21:20:35 1998 Craig Burley <burley@gnu.org>
754 * expr.c (ffeexpr_sym_impdoitem_): Don't blindly
755 reset symbol info after calling ffesymbol_error,
758 Mon Mar 16 15:38:50 1998 Craig Burley <burley@gnu.org>
760 * Version 0.5.22 released.
762 Mon Mar 16 14:36:02 1998 Craig Burley <burley@gnu.org>
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
771 Sun Mar 15 05:48:49 1998 Craig Burley <burley@gnu.org>
773 * intrin.def: Fix spelling of mixed-case form
774 of `CPU_Time' (was `Cpu_Time').
776 Thu Mar 12 13:50:21 1998 Craig Burley <burley@gnu.org>
778 * lang-options.h: Sort all -f*-intrinsics-* options,
779 for consistency with other g77 versions.
781 Thu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de>
783 * lang-specs.h: Properly put brackets around array elements in initializer.
785 1998-03-09 Dave Love <d.love@dl.ac.uk>
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.
791 Sun Mar 8 16:35:34 1998 Craig Burley <burley@gnu.org>
793 * intrin.def: Use tabs instead of blanks more
794 consistently (excepting DEFGEN section for now).
796 Wed Mar 4 17:38:21 1998 Jeffrey A Law (law@cygnus.com)
798 * Make-lang.in: Remove more references to libf77.
800 Tue Mar 3 10:52:35 1998 Manfred Hollstein <manfred@s-direktnet.de>
802 * g77.texi: Use @url for citing URLs.
804 Sat Feb 28 15:24:38 1998 Craig Burley <burley@gnu.org>
806 * intrin.def: Make CPU_TIME's arg generic real to be just
809 Fri Feb 20 12:45:53 1998 Craig Burley <burley@gnu.org>
811 * expr.c (ffeexpr_token_arguments_): Make sure
812 outer exprstack isn't null.
814 1998-02-16 Dave Love <d.love@dl.ac.uk>
816 * Makefile.in (f/fini): Don't use -W -Wall with HOST_CC.
818 Fri Feb 13 00:14:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
820 * com.c (type_for_mode): Add explicit braces to avoid ambiguous `else'.
822 * expr.c (ffeexpr_type_combine): Likewise.
823 (ffeexpr_reduce_): Likewise.
824 (ffeexpr_declare_parenthesized_): Likewise.
826 * src.c (ffesrc_strcmp_1ns2i): Likewise.
827 (ffesrc_strcmp_2c): Likewise.
828 (ffesrc_strncmp_2c): Likewise.
830 * stb.c (ffestb_halt1_): Likewise.
831 (ffestb_R90910_): Likewise.
832 (ffestb_R9109_): Likewise.
834 * stc.c (ffestc_R544_equiv_): Likewise.
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.
845 * ste.c (ffeste_R840): Likewise.
847 * sts.c (ffests_puttext): Likewise.
849 * symbol.c (ffesymbol_check_token_): Likewise.
851 * target.c (ffetarget_real1): Likewise.
852 (ffetarget_real2): Likewise.
854 Wed Feb 11 01:44:48 1998 Richard Henderson (rth@cygnus.com)
856 * com.c (ffecom_ptr_to_expr) [FFEBLD_opARRAYREF]: Do upper - lower
857 in the native type, so as to properly handle negative indices.
859 Tue Feb 3 20:13:05 1998 Richard Henderson <rth@cygnus.com>
861 * config-lang.in: Remove references to runtime/.
863 Sun Feb 1 12:43:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
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.
872 Sun Feb 1 02:26:58 1998 Richard Henderson <rth@cygnus.com>
874 * runtime directory -- moved into "libf2c" in the toplevel
876 * Make-lang.in: Remove all runtime related stuff.
878 Sun Jan 25 12:32:15 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
880 * Make-lang.in (f77.stage1): Depend on stage1-start so parallel
882 * (f77.stage2): Likewise for stage2-start.
883 * (f77.stage3): Likewise for stage3-start.
884 * (f77.stage4): Likewise for stage4-start.
886 Sat Jan 17 21:28:08 1998 Pieter Nagel <pnagel@epiuse.co.za>
888 * Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and
889 local_prefix to sub-make invocations.
891 Tue Jan 13 22:07:54 1998 Jeffrey A Law (law@cygnus.com)
893 * lang-options.h: Add missing options.
895 Sun Jan 11 02:14:47 1998 Craig Burley <burley@gnu.org>
897 Support FORMAT(I<1+2>) (constant variable-FORMAT
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_.
908 * stb.c (ffestb_R10014_, ffestb_R10016_, ffestb_R10018_,
909 ffestb_R100110_): Restructure `for' loop for style.
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.
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>.)
926 Fri Jan 9 19:09:07 1998 Craig Burley <burley@gnu.org>
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
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.
940 Tue Dec 23 14:58:04 1997 Craig Burley <burley@gnu.org>
942 * intrin.c (ffeintrin_fulfill_generic): Don't generate
943 FFEBAD_INTRINSIC_TYPE for CHARACTER*(*) intrinsic.
945 * com.c (ffecom_gfrt_basictype):
946 (ffecom_gfrt_kindtype):
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'.
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
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.
981 * intrin.def (FFEINTRIN_impCPU_TIME): Point to
982 FFECOM_gfrtSECOND as primary run-time routine.
984 Mon Dec 22 12:41:07 1997 Craig Burley <burley@gnu.org>
986 * intrin.c (ffeintrin_init_0): Remove duplicate
989 Fri Dec 19 00:12:01 1997 Richard Henderson <rth@cygnus.com>
991 * com.c (ffecom_sym_transform_): Assumed arrays have no upper bound.
993 Mon Dec 15 17:35:35 1997 Richard Henderson <rth@cygnus.com>
995 * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'.
997 Sun Dec 14 02:49:58 1997 Craig Burley <burley@gnu.org>
999 * intrin.c (ffeintrin_init_0): Fix up indentation a bit.
1000 Fix bug that prevented checking of arguments other
1003 * intdoc.c: Fix up indentation a bit.
1005 Tue Dec 9 16:20:57 1997 Richard Henderson <rth@cygnus.com>
1007 * com.c (ffecom_type_vardesc_): Vardesc.dims is a `ftnlen*'.
1009 Tue Dec 2 09:57:16 1997 Jeffrey A Law (law@cygnus.com)
1011 * Make-lang.in (f77.clean): Remove g77.c.
1013 Mon Dec 1 19:12:36 1997 Craig Burley <burley@gnu.org>
1015 * intrin.c (ffeintrin_check_): Fix up indentation a bit more.
1017 Mon Dec 1 16:21:08 1997 Craig Burley <burley@gnu.org>
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'.
1025 Sun Nov 30 22:22:22 1997 Craig Burley <burley@gnu.org>
1027 * intdoc.c: Minor fix-ups.
1029 * intrin.c (ffeintrin_check_): Fix up indentation a bit.
1031 * intrin.def: Fix up spacing a bit.
1033 Tue Nov 25 15:33:28 1997 Jeffrey A Law (law@cygnus.com)
1035 * Make-lang.in (f77.all.build): Add $(exeext) to binary files.
1036 (f77.all.cross, f77.start.encap): Simliarly.
1038 Fri Nov 21 09:35:20 1997 Fred Fish <fnf@cygnus.com>
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.
1043 Thu Nov 20 00:58:14 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1045 * Make-lang.in (f77.install-info): Depend on f77.info.
1047 1997-11-17 Dave Love <d.love@dl.ac.uk>
1049 * com.c (ffecom_arglist_expr_): Pass null pointers for optional
1050 args which aren't supplied.
1052 Sun Nov 16 21:45:43 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1054 * Make-lang.in (f77.install-info): Depend on f77.info.
1056 1997-11-14 Dave Love <d.love@dl.ac.uk>
1058 * intrin.def: Supply gfrt for CPU_TIME. Generalize arg types of
1059 INT2, INT8, per doc.
1061 1997-11-06 Dave Love <d.love@dl.ac.uk>
1063 * intrin.def: Allow non-integer args for INT2 and INT8 (per
1066 Sun Nov 2 19:49:51 1997 Richard Henderson <rth@cygnus.com>
1068 * com.c (ffecom_expr_): Only use TREE_TYPE argument for simple
1069 arithmetic; convert types as necessary; recurse with target tree type.
1071 Tue Oct 28 02:21:25 1997 Craig Burley <burley@gnu.ai.mit.edu>
1073 * lang-options.h: Add -fgnu-intrinsics-* and
1074 -fbadu77-intrinsics-* options.
1076 Sun Oct 26 02:36:21 1997 Craig Burley <burley@gnu.ai.mit.edu>
1078 * com.c (lang_print_error_function): Fix to more
1079 reliably notice when the diagnosed region changes.
1081 Sat Oct 25 23:43:36 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1089 * malloc.c [MALLOC_DEBUG]: Put initializer for `name'
1090 component in braces, to avoid compiler warning.
1092 Wed Oct 22 11:37:41 1997 Richard Henderson <rth@cygnus.com>
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.
1098 Thu Oct 16 02:04:08 1997 Paul Koning <pkoning@xedia.com>
1100 * Make-lang.in (stmp-f2c.h): Don't configure the runtime
1101 directory if LANGUAGES does not include f77.
1103 Mon Oct 13 12:12:41 1997 Richard Henderson <rth@cygnus.com>
1105 * Make-lang.in (g77*): Copied from cp/Make-lang.in g++*.
1106 * g77spec.c: New file, mostly copied from g++spec.c
1109 Fri Oct 10 13:00:48 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1117 * com.c (ffecom_save_tree): Fix indentation.
1119 Mon Oct 6 14:15:03 1997 Jeffrey A Law (law@cygnus.com)
1121 * Make-lang.in (f77.mostlyclean): Clean up stuff in the
1123 (f77.clean, f77.distclean, f77.maintainer-clean): Likewise.
1125 1997-10-05 Dave Love <d.love@dl.ac.uk>
1127 * intrin.def: Make SECOND_subr's arg generic real for people
1128 porting from Cray and making everything double precision.
1130 Wed Oct 1 01:45:36 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
1132 * g77.c (pexecute, main): Use unlink, not remove.
1134 Mon Sep 29 16:18:21 1997 Craig Burley <burley@gnu.ai.mit.edu>
1136 * stu.c (ffestu_list_exec_transition_,
1137 ffestu_dummies_transition_): Specify `bool' type for
1138 `in_progress' variables.
1140 * com.h (assemble_string): Declare this routine (instead
1141 of #include'ing "output.h" from gcc) to eliminate warnings
1144 Mon Sep 29 10:37:07 1997 Jeffrey A Law (law@cygnus.com)
1146 * intdoc.c (main): Remove unused attribute for main's arguments.
1148 Sun Sep 28 01:47:17 1997 Jeffrey A Law (law@cygnus.com)
1150 * Make-lang.in (G77_FLAGS_TO_PASS): Pass down RANLIB, RANLIB_TEST
1151 and AR instead of the _FOR_TARGET versions.
1153 Tue Sep 23 00:39:57 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
1155 * Make-lang.in: install.texi was renamed to g77install.texi
1156 * install0.texi: Likewise.
1158 Fri Sep 19 01:12:27 1997 Craig Burley <burley@gnu.ai.mit.edu>
1160 * expr.c (ffeexpr_reduced_eqop2_):
1161 (ffeexpr_reduced_relop2_): Minor fixes to diagnostic code.
1163 * fini.c (main): Change return type to `int'.
1165 Thu Sep 18 17:31:38 1997 Jeffrey A Law (law@cygnus.com)
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
1171 (strtoul): Similarly.
1173 * g77install.texi: Renamed from install.texi
1174 * g77.texi: Corresponding changes.
1176 * fini.c (main): Return type is int.
1178 * com.c (lang_printable_name): Use verbosity argument.
1180 Thu Sep 18 16:08:40 1997 Jeffrey A Law (law@cygnus.com)
1182 * Make-lang.in: Fix merge problems.
1184 Wed Sep 17 10:47:08 1997 Craig Burley <burley@gnu.ai.mit.edu>
1186 * com-rt.def (FFECOM_gfrtDSIGN, FFECOM_gfrtISIGN,
1187 FFECOM_gfrtSIGN): Add second argument.
1189 * expr.c (ffeexpr_cb_comma_c_): Trivial fixes.
1191 Sun Sep 14 21:01:23 1997 Jeffrey A Law (law@cygnus.com)
1193 * Make-lang.in: Various changes to build info files
1194 in the object tree rather than the source tree.
1196 * proj.h: Include ctype.h.
1198 Sun Sep 14 12:35:20 1997 Fred Fish (fnf@ninemoons.com)
1200 * proj.h (isascii): Provide a default definition if none is available.
1202 Thu Sep 11 19:26:10 1997 Dave Love <d.love@dl.ac.uk>
1204 * config-lang.in: Remove the messages about possible build problems.
1206 Wed Sep 10 16:39:47 1997 Jim Wilson <wilson@cygnus.com>
1208 * Make-lang.in (LN, LN_S): New macros, use where appropriate.
1210 Tue Sep 9 13:20:40 1997 Jim Wilson <wilson@cygnus.com>
1212 * g77.c (pexecute, doit): Add checks for __CYGWIN32__.
1214 Tue Sep 9 01:59:35 1997 Craig Burley <burley@gnu.ai.mit.edu>
1216 * Version 0.5.21 released.
1218 Tue Sep 9 00:31:01 1997 Craig Burley <burley@gnu.ai.mit.edu>
1220 * intdoc.c (dumpem): Put appropriate commentary in
1221 output file, so readers know it isn't source.
1223 Wed Aug 27 20:32:03 1997 Jeffrey A Law (law@cygnus.com)
1225 * top.c (ffe_decode_option): Turn on flag_move_all_moveables
1226 and flag_reduce_all_givs.
1228 Wed Aug 27 08:08:25 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1235 1997-08-26 Dave Love <d.love@dl.ac.uk>
1237 * Make-lang.in ($(srcdir)/f/runtime/configure,
1238 $(srcdir)/f/runtime/libU77/configure): Fix for when srcdir isn't
1241 Tue Aug 26 05:59:21 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1247 Tue Aug 26 01:36:01 1997 Craig Burley <burley@gnu.ai.mit.edu>
1250 * stb.c (ffestb_R5284_): Allow OPEN_PAREN after closing
1251 SLASH as well as NAME.
1253 Mon Aug 25 23:48:17 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1270 Mon Aug 25 23:24:32 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
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).
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.
1282 Sun Aug 24 17:00:27 1997 Jim Wilson <wilson@cygnus.com>
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.
1287 Sun Aug 24 06:52:48 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
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_.
1300 Thu Aug 21 13:15:29 1997 Jim Wilson <wilson@cygnus.com>
1302 * Make-lang.in (f77): Delete f77-runtime.
1303 (f77.all.build, f77.all.cross, f77.rest.encap): Add f77-runtime.
1305 Wed Aug 20 17:18:40 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1311 Wed Aug 20 16:36:59 1997 Jim Wilson <wilson@cygnus.com>
1313 * intdoc.texi: Readd generated file.
1315 Mon Aug 18 14:27:18 1997 Craig Burley <burley@gnu.ai.mit.edu>
1318 * global.c (ffeglobal_new_progunit_): Distinguish
1319 between previously defined, versus inferred, filewide
1320 when it comes to diagnostics.
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.
1328 * com-rt.def (FFECOM_gfrtALARM): Returns `integer', not
1331 Mon Aug 18 09:01:54 1997 Jeffrey A Law (law@cygnus.com)
1333 * Makefile.in (F77_OBJS): Re-alphabetize.
1334 * Make-lang.in (F77_SRCS): Likewise.
1336 Sun Aug 17 08:35:11 1997 Jeffrey A Law (law@cygnus.com)
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.
1347 * intdoc.texi: Remove generated file from distribution.
1349 Sun Aug 17 03:32:44 1997 Craig Burley <burley@gnu.ai.mit.edu>
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().
1356 * Make-lang.in, Makefile.in: Comment out lines containing
1359 Sat Aug 16 19:41:33 1997 Craig Burley <burley@gnu.ai.mit.edu>
1361 * com.c (ffecom_make_gfrt_): For rttypeREAL_F2C_, return
1362 double_type_node; for rttypeREAL_GNU_, return
1365 1997-08-13 Dave Love <d.love@dl.ac.uk>
1367 * config-lang.in (diff_excludes): Add some hints about known
1368 problematic platforms.
1370 1997-08-13 Dave Love <d.love@dl.ac.uk>
1372 * intdoc.h: Document `alarm'.
1374 Tue Aug 12 10:23:02 1997 Jeffrey A Law (law@cygnus.com)
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
1383 Mon Aug 11 23:18:35 1997 Jeffrey A Law (law@cygnus.com)
1385 * g77-0.5.21-19970811 Imported.
1386 This file describes changes to the front end necessary to make
1389 Mon Aug 11 21:19:22 1997 Craig Burley <burley@gnu.ai.mit.edu>
1391 * Make-lang.in ($(RUNTIMESTAGESTUFF)): Add
1392 f/runtime/stamp-lib.
1394 Mon Aug 11 01:52:03 1997 Craig Burley <burley@gnu.ai.mit.edu>
1396 * com.c (ffecom_build_complex_constant_): Go with the
1397 new build_complex() approach used in gcc-2.8.
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!
1403 * com.c (ffecom_expr_intrinsic_) (case FFEINTRIN_impALARM):
1404 No need to test codegen_imp -- there's only one valid here.
1406 * intrin.def (FFEINTRIN_impALARM): Specify `Status' argument
1409 Fri Aug 8 05:40:23 1997 Craig Burley <burley@gnu.ai.mit.edu>
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
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
1424 (ffecom_arglist_expr_): Ensure arguments are not
1425 converted to narrower types.
1426 (ffecom_call_): Ensure return value is not converted
1428 (ffecom_char_args_): Use new ffeintrin_gfrt_direct()
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'
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
1442 (ffecom_ptr_to_expr): Use new ffeintrin_gfrt_indirect()
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.
1456 * com.c (ffecom_stabilize_aggregate_,
1457 ffecom_convert_to_complex_): Make these `static'.
1459 Thu Aug 7 11:24:34 1997 Craig Burley <burley@gnu.ai.mit.edu>
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
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).
1475 Wed Aug 6 23:08:46 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1481 1997-08-06 Dave Love <d.love@dl.ac.uk>
1483 * intrin.def: Fix IDATE_vxt argument order.
1484 * intdoc.h: Likewise.
1486 Thu Jul 31 22:22:03 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
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.
1498 Sun Jul 20 23:07:47 1997 Craig Burley <burley@gnu.ai.mit.edu>
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,
1504 (ffecom_check_size_overflow_): Add `dummy' argument to
1505 flag that type is for a dummy, update all callers.
1507 Sun Jul 13 17:40:53 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
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
1523 (ffecom_transform_equiv_): Ditto.
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.
1530 1997-07-07 Dave Love <d.love@dl.ac.uk>
1532 * intdoc.h: Add various missing pieces; correct GMTIME, LTIME
1535 * intrin.def, com-rt.def: Add alarm.
1537 * com.c (ffecom_expr_intrinsic_): Add case for alarm.
1539 Thu Jun 26 04:19:40 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
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.
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 `$'.
1561 * stb.c (ffestb_do3_): DO iteration variable is an
1562 lhs, not rhs, expression.
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.
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):
1585 Tue Jun 24 19:47:29 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1593 Mon Jun 23 01:09:28 1997 Craig Burley <burley@gnu.ai.mit.edu>
1595 * global.c (ffeglobal_proc_def_arg): Fix comparison
1597 (ffeglobal_proc_ref_arg): Ditto.
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.
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.
1615 Sat Jun 21 12:32:54 1997 Craig Burley <burley@gnu.ai.mit.edu>
1617 * expr.c (ffeexpr_fulfill_call_): Set array variable
1618 to avoid warning about uninitialized variable.
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
1625 Thu Jun 19 18:19:28 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1634 Thu Jun 12 14:36:25 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1641 Tue Jun 10 14:08:26 1997 Craig Burley <burley@gnu.ai.mit.edu>
1643 * intdoc.c: Add cross-reference to end of description
1644 of any generic intrinsic pointing to other intrinsics
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
1658 (ffestc_R501_item): Ditto.
1660 Mon Jun 9 17:45:44 1997 Craig Burley <burley@gnu.ai.mit.edu>
1662 * com.c (ffecom_expr_intrinsic_): Fix several of the
1663 libU77/libF77-unix handlers to properly convert their
1666 * com-rt.def (FFECOM_gfrtFSTAT): Append missing "i" to
1669 Fri Jun 6 14:37:30 1997 Craig Burley <burley@gnu.ai.mit.edu>
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
1677 (ffeintrin_codegen_imp): Delete this function.
1678 * intrin.def, intrin.h: Remove DEFIMQ stuff from here
1681 Thu Jun 5 13:03:07 1997 Craig Burley <burley@gnu.ai.mit.edu>
1683 * top.c (ffe_decode_option): New -fbadu77-intrinsics-*
1686 * intrin.h: New BADU77 family.
1687 * intrin.c (ffeintrin_state_family): Ditto.
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.
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.
1711 Mon Jun 2 00:37:53 1997 Craig Burley <burley@gnu.ai.mit.edu>
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
1717 Thu May 29 14:30:33 1997 Craig Burley <burley@gnu.ai.mit.edu>
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 `&'.
1726 Wed May 28 22:19:49 1997 Craig Burley <burley@gnu.ai.mit.edu>
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
1733 * expr.c (ffeexpr_fulfill_call_): A SYMTER with kindNONE
1734 also is a procedure (either function or subroutine).
1736 Mon May 26 20:25:31 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1742 * expr.c (ffeexpr_reduced_bool1_), bad.def: New diagnostics
1743 specific to .NOT. now mention only one operand instead
1746 * g77.c: Recognize -fsyntax-only, similar to -c etc.
1747 (lookup_option): Fix bug that prevented non-`--' options
1748 from being recognized.
1750 Sun May 25 04:29:04 1997 Craig Burley <burley@gnu.ai.mit.edu>
1752 * intrin.def (FFEINTRIN_impCTIME): Accept `I*' expression
1753 for STime instead of requiring `I2'.
1755 Tue May 20 16:14:40 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1763 Sun May 18 21:14:59 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1771 Thu May 8 13:07:10 1997 Craig Burley <burley@gnu.ai.mit.edu>
1773 * expr.c (ffeexpr_cb_end_notloc_): For %VAL, %REF, and
1774 %DESCR, copy arg info into new node.
1776 Mon May 5 14:42:17 1997 Craig Burley <burley@gnu.ai.mit.edu>
1778 From Uwe F. Mayer <mayer@math.Vanderbilt.Edu>:
1779 * Make-lang.in (g77-cross): Fix typo in g77.c path.
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.
1785 Sat May 3 02:46:08 1997 Craig Burley <burley@gnu.ai.mit.edu>
1787 * intrin.def (FFEINTRIN_defSIGNAL): Add optional `Status'
1788 argument that com.c already expects (per Dave Love).
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.
1801 Tue Apr 29 18:35:41 1997 Craig Burley <burley@gnu.ai.mit.edu>
1803 More changes to support better tracking of (filewide)
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
1809 (ffeexpr_token_arguments_): Ditto.
1811 Mon Apr 28 20:04:18 1997 Craig Burley <burley@gnu.ai.mit.edu>
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
1820 * com.c (ffecom_do_entry_, ffecom_start_progunit_,
1821 ffecom_sym_transform_): Accommodate new FFEGLOBAL_typeEXT
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
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
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
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.
1861 * global.h, global.c: Rename some macros and functions
1862 to more clearly distinguish common from other globals.
1863 All callers changed.
1865 * com.c (ffecom_sym_transform_): Trees describing
1866 filewide globals must be allocated on permanent obstack.
1868 * expr.c (ffeexpr_token_name_lhs_): Don't generate
1869 gratuitous diagnostics for FFEINFO_whereANY case.
1871 Thu Apr 17 03:27:18 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1882 Wed Apr 16 22:40:56 1997 Craig Burley <burley@gnu.ai.mit.edu>
1884 * expr.c (ffeexpr_declare_parenthesized_): INCLUDE
1885 context can't be an intrinsic invocation either.
1887 Fri Mar 28 10:43:28 1997 Craig Burley <burley@gnu.ai.mit.edu>
1889 * expr.c (ffeexpr_token_arguments_): Make sure top of
1890 exprstack is operand before dereferencing operand field.
1892 * lex.c (ffelex_prepare_eos_): Fill up truncated
1893 hollerith token, so crash on null ->text field doesn't
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.
1902 Thu Mar 27 00:02:48 1997 Craig Burley <burley@gnu.ai.mit.edu>
1904 * com.c (ffecom_sym_transform_): Force local
1905 adjustable array onto stack.
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.
1911 * equiv.c (ffeequiv_add): Don't actually do anything
1912 if there's a disagreement over which COMMON area is
1915 Tue Mar 25 03:35:19 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1921 Mon Mar 24 12:10:08 1997 Craig Burley <burley@gnu.ai.mit.edu>
1923 * lex.c (ffelex_image_char_): Avoid overflowing the
1924 column counter itself, as well as the card image.
1926 * where.c (ffewhere_line_new): Cast ffelex_line_length()
1927 to (size_t) so 255 doesn't overflow to 0!
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.
1935 * expr.c (ffeexpr_cb_comma_i_4_): Don't skip over
1936 arbitrary token (such as EOS).
1938 * com.c (ffecom_init_zero_): Handle RECORD_TYPE and
1939 UNION_TYPE so -fno-zeros works with -femulated-complex.
1941 1997-03-12 Dave Love <d.love@dl.ac.uk>
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.]
1947 Wed Mar 12 10:40:08 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1953 Tue Mar 11 23:42:00 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
1960 Mon Mar 10 22:51:23 1997 Craig Burley <burley@gnu.ai.mit.edu>
1962 * intdoc.c: Fix so any C compiler can compile this.
1964 Fri Feb 28 13:16:50 1997 Craig Burley <burley@gnu.ai.mit.edu>
1966 * Version 0.5.20 released.
1968 Fri Feb 28 01:45:25 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
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.
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.
1988 * type.c: Canonicalize function definitions, for etags
1991 Wed Feb 26 20:43:03 1997 Craig Burley <burley@gnu.ai.mit.edu>
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).
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).
2018 Mon Feb 24 16:42:13 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
2026 Sun Feb 23 15:01:20 1997 Craig Burley <burley@gnu.ai.mit.edu>
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):
2036 generic or specific name text (which is for doc purposes
2037 anyway) over implementation name text (which is for
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).
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
2061 Support intrinsic inquiry functions (BIT_SIZE, LEN):
2062 * intrin.c: Allow `i' in <arg_extra>.
2063 * intrin.def (FFEINTRIN_impBIT_SIZE, FFEINTRIN_impLEN):
2066 Sat Feb 22 13:34:09 1997 Craig Burley <burley@gnu.ai.mit.edu>
2068 Only warn, don't error, for reference to unimplemented
2070 * bad.def (FFEBAD_INTRINSIC_UNIMPLW): Warning version
2072 * intrin.c (ffeintrin_is_intrinsic): Use new warning
2073 version of _UNIMPL (FFEBAD_INTRINSIC_UNIMPLW).
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
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.
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.
2097 Rename implementations of VXTIDATE and VXTTIME to IDATEVXT
2098 and TIMEVXT, so they sort more consistently:
2099 * com.c (ffecom_expr_intrinsic_):
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'
2106 Get rid of FFEINTRIN_familyF2Z, nobody needs it.
2107 Move FFEINTRIN_specDCMPLX from DCP family to FVZ family,
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'.
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
2123 * g77.c (doit): Toon says variables should be defined
2124 before being referenced. Spoilsport.
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?
2131 * intrin.def (FFEINTRIN_impFGETC): Fix STATUS argument
2132 so that it is INTENT(OUT) instead of INTENT(IN).
2134 1997-02-21 Dave Love <d.love@dl.ac.uk>
2136 * intrin.def, com.c: Support Sun-type `short' and `long'
2137 intrinsics. Perhaps should also do Microcruft-style `int2'.
2139 Thu Feb 20 15:16:53 1997 Craig Burley <burley@gnu.ai.mit.edu>
2141 * com.c (ffecom_expr_intrinsic_): Clean up indentation.
2142 Support SECONDSUBR intrinsic implementation.
2143 Rename SECOND to SECONDFUNC for direct support via library.
2145 * g77.c: Fix to return proper status value to shell,
2146 by obtaining it from processes it spawns.
2148 * intdoc.c: Fix minor typo.
2150 * intrin.def: Turn SECOND into generic that maps into
2151 function and subroutine forms.
2153 * intrin.def: Make FLOAT and SNGL into specific intrinsics.
2155 * intrin.def, intrin.h: Change the way DEFGEN and DEFSPEC
2156 macros work, to save on verbage.
2158 Mon Feb 17 02:08:04 1997 Craig Burley <burley@gnu.ai.mit.edu>
2160 New subsystem to automatically generate documentation
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.
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.
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
2198 (FLUSH1): Eliminated.
2199 Add arg-len and arg-rank info to several intrinsics.
2200 (ITIME): Change argument type from REAL to INTEGER.
2202 Tue Feb 11 14:04:42 1997 Craig Burley <burley@gnu.ai.mit.edu>
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
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),
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.
2227 Mon Feb 10 12:44:06 1997 Craig Burley <burley@gnu.ai.mit.edu>
2229 * Make-lang.in: runtime Makefile's, and include/f2c.h,
2230 also depend on f/runtime/configure and f/runtime/libU77/configure.
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.
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
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.)
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.
2274 Sat Feb 8 03:21:50 1997 Craig Burley <burley@gnu.ai.mit.edu>
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'.
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.
2290 Tue Feb 4 23:12:04 1997 Craig Burley <burley@gnu.ai.mit.edu>
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
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
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
2321 (ffeintrin_check_, ffeintrin_init_0): Handle CHARACTER intrinsics of (*)
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.
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".
2335 Sat Feb 1 12:15:09 1997 Craig Burley <burley@gnu.ai.mit.edu>
2337 * Version 0.5.19.1 released.
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.
2349 Sat Feb 1 00:25:55 1997 Craig Burley <burley@gnu.ai.mit.edu>
2351 * com.c (ffecom_init_0): Do internal checks only if
2352 -fset-g77-defaults not specified.
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
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.
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
2375 Fri Jan 31 14:30:00 1997 Craig Burley <burley@gnu.ai.mit.edu>
2377 Remove last vestiges of -fvxt-not-f90:
2378 * stb.c (ffestb_R10012_, ffestb_R10014_, ffestb_V0201_):
2381 Fri Jan 31 02:13:54 1997 Craig Burley <burley@gnu.ai.mit.edu>
2383 * top.c (ffe_decode_option): Warn if -fugly is specified,
2386 * symbol.h: No need to #include "bad.h".
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.
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.
2401 Fix up some more #error directives by quoting their text:
2402 * bld.c (ffebld_constant_is_zero):
2405 Sat Jan 18 18:22:09 1997 Craig Burley <burley@gnu.ai.mit.edu>
2407 * g77.c (lookup_option, main): Recognize `-Xlinker',
2408 `-Wl,', `-l', `-L', `--library-directory', `-o',
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.
2421 Fri Jan 10 23:36:00 1997 Craig Burley <burley@gnu.ai.mit.edu>
2423 * top.c [BUILT_FOR_270] (ffe_decode_option): Make
2424 -fargument-noalias-global the default.
2426 Fri Jan 10 07:42:27 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
2449 Thu Jan 9 14:20:00 1997 Craig Burley <burley@gnu.ai.mit.edu>
2451 * ste.c (ffeste_R809): Produce a diagnostic for SELECT CASE
2452 on CHARACTER type, instead of crashing.
2454 Thu Jan 9 00:52:45 1997 Craig Burley <burley@gnu.ai.mit.edu>
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).
2461 Mon Jan 6 22:44:53 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
2474 Sun Jan 5 03:26:11 1997 Craig Burley <burley@gnu.ai.mit.edu>
2476 * Make-lang.in (g77, g77-cross): Depend on both g77.c and
2477 zzz.c, in $(srcdir)/f/.
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 "*".
2487 Sat Jan 4 15:26:22 1997 Craig Burley <burley@gnu.ai.mit.edu>
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.
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
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
2514 * stb.h, stb.c (ffestb_unimplemented): Remove function.
2516 1996-12-30 Dave Love <d.love@dl.ac.uk>
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.
2524 * com-rt.def: New definitions for libU77.
2525 * intrin.def: Likewise. Also correct ftell arg spec.
2527 * Makefile.in (f/runtime/libU77/config.h): New target for com.c
2529 * Make-lang.in (f771): Depend on f/runtime/Makefile for the above.
2531 Sat Dec 28 12:28:29 1996 Craig Burley <burley@gnu.ai.mit.edu>
2533 * stt.c (ffestt_dimlist_type): Treat ([...,]1) in dimlist
2534 as ([...,]*) if -fugly-assumed, so assumed-size array
2535 detected early enough.
2537 Thu Dec 19 14:01:57 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
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.
2554 Wed Dec 18 12:07:11 1996 Craig Burley <burley@gnu.ai.mit.edu>
2556 Patch from Alexandre Oliva <oliva@dcc.unicamp.br>:
2557 * Makefile.in (all.indirect): Don't pass -bbigtoc option
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
2564 (ffecom_build_complex_constant_): Conditionalize calling
2565 sequence for build_complex.
2567 Sat Dec 7 07:15:17 1996 Craig Burley <burley@gnu.ai.mit.edu>
2569 * Version 0.5.19 released.
2571 Fri Dec 6 12:23:55 1996 Craig Burley <burley@gnu.ai.mit.edu>
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
2579 1996-12-06 Dave Love <d.love@dl.ac.uk>
2581 * Make-lang.in (g77, g77-cross): Revert to building `g77' or not
2582 conditional on `f77' in LANGUAGES.
2584 Wed Dec 4 13:08:44 1996 Craig Burley <burley@gnu.ai.mit.edu>
2586 * Make-lang.in (g77, g77-cross): No libs or lib dependencies
2587 in case where "f77" is not in $LANGUAGES.
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.
2593 * lex.c: Call ffebad_start_msg_lex instead of
2594 ffebad_start_msg throughout.
2596 Sun Dec 1 21:19:55 1996 Craig Burley <burley@gnu.ai.mit.edu>
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
2606 Wed Nov 27 13:55:57 1996 Craig Burley <burley@gnu.ai.mit.edu>
2608 * proj.h: Quote the text of the #error message, to avoid
2609 strange-looking diagnostics from non-gcc ANSI compilers.
2611 * top.c: Make -fno-debug-kludge the default.
2613 Mon Nov 25 20:13:45 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
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
2626 * com.c (ffecom_sym_transform_): For local EQUIVALENCE
2627 member, subtract out aggregate offset (which is <= 0).
2629 Thu Nov 21 12:44:56 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
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.
2643 Fixes to delay confirmation of READ, WRITE, and GOTO statements
2644 so the corresponding assignments to same-named CHAR*(*) arrays
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.
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.
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.
2669 1996-11-17 Dave Love <d.love@dl.ac.uk>
2671 * lex.c: Fix last change.
2673 1996-11-14 Dave Love <d.love@dl.ac.uk>
2675 * Make-lang.in, config-lang.in: Remove the (broken) libU77 stuff,
2678 Thu Nov 14 15:40:59 1996 Craig Burley <burley@gnu.ai.mit.edu>
2680 * bad.def (FFEBAD_UNIMPL_STMT): Explain that invalid
2681 intrinsic references can trigger this message, too.
2683 1996-11-12 Dave Love <d.love@dl.ac.uk>
2685 * lex.c: Declare dwarfout routines.
2687 * config-lang.in: Sink grep o/p.
2689 Mon Nov 11 14:21:13 1996 Craig Burley <burley@gnu.ai.mit.edu>
2691 * g77.c (main): Might as well print version number
2692 for --verbose as well.
2694 Thu Nov 7 18:41:41 1996 Craig Burley <burley@gnu.ai.mit.edu>
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
2702 * Make-lang.in (gcc-cross): Compile zzz.c, not version.o (!),
2703 in to get version info for this target.
2705 * config-lang.in: Test for GBE patch application based
2706 on whether 2.6.x or 2.7.x GBE is detected.
2708 Wed Nov 6 14:19:45 1996 Craig Burley <burley@gnu.ai.mit.edu>
2710 * Make-lang.in (g77): Compile zzz.c in to get version info.
2711 * g77.c: Add support for --help and --version.
2713 * g77.c (lookup_option): Short-circuit long-winded tests
2714 when second char is not hyphen, just to save a spot of time.
2716 Sat Nov 2 13:50:31 1996 Craig Burley <burley@gnu.ai.mit.edu>
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).
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.
2733 (ffeste_subr_beru_):
2736 (ffeste_R909_start):
2738 (ffeste_R909_finish):
2739 (ffeste_R910_start):
2741 (ffeste_R910_finish):
2742 (ffeste_R911_start):
2743 (ffeste_R923A): Ditto all the above.
2745 Thu Oct 31 20:56:28 1996 Craig Burley <burley@gnu.ai.mit.edu>
2747 * config-lang.in, Make-lang.in: Rename flag file
2748 build-u77 to build-libu77, for consistency with
2749 install-libf2c and such.
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).
2755 Sat Oct 26 05:56:51 1996 Craig Burley <burley@gnu.ai.mit.edu>
2757 * bad.def (FFEBAD_TYPELESS_TOO_LARGE): Remove this
2758 unused and redundant diagnostic.
2760 Sat Oct 26 00:45:42 1996 Craig Burley <burley@gnu.ai.mit.edu>
2762 * target.c (ffetarget_integerhex): Fix dumb bug.
2764 1996-10-20 Dave Love <d.love@dl.ac.uk>
2766 * gbe/2.7.2.1.diff: New file.
2768 * Makefile.in (F771_LDFLAGS): Add -bbigtoc for AIX4.1 up, suggested by
2769 endo@material.tohoku.ac.jp [among others!].
2771 Sat Oct 19 03:11:14 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
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).
2785 * lang-options.h, top.c, top.h, stt.c (ffestt_dimlist_as_expr):
2786 Treat ([...,]1) in dimlist as ([...,]*) if -fugly-assumed
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
2795 Thu Oct 17 00:39:27 1996 Craig Burley <burley@gnu.ai.mit.edu>
2797 * stb.c (ffestb_R10013_): Don't change meaning of .sign until
2798 after previous meaning/value used to set sign of value
2801 Sun Oct 13 22:15:23 1996 Craig Burley <burley@gnu.ai.mit.edu>
2803 * top.c (ffe_decode_option): Don't set back-end flags
2804 that are nonexistent prior to gcc 2.7.0.
2806 Sun Oct 13 12:48:45 1996 Craig Burley <burley@gnu.ai.mit.edu>
2808 * com.c (convert): Don't convert emulated complex expr to
2809 real (via REALPART_EXPR) if the target type is (emulated)
2812 Wed Oct 2 21:57:12 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
2824 Fri Sep 27 23:13:07 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
2830 Thu Sep 26 00:18:40 1996 Craig Burley <burley@gnu.ai.mit.edu>
2832 * com.c (ffecom_debug_kludge_): New function.
2833 (ffecom_sym_transform_): Use new function for COMMON and EQUIVALENCE
2836 * lang-options.h, top.c, top.h (-fno-debug-kludge):
2839 1996-09-24 Dave Love <d.love@dl.ac.uk>
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
2846 1996-09-22 Dave Love <d.love@dl.ac.uk>
2848 * config-lang.in: Add --enable-libu77 option handling.
2851 Conditionally add --enable-libu77 when running runtime configure.
2852 Define LIBU77STAGESTUFF and use it in relevant rules.
2854 1996-08-21 Dave Love <d.love@dl.ac.uk>
2856 * Make-lang.in (f77-runtime):
2857 `stmp-hdrs' should have been `stmp-headers'.
2859 1996-08-20 Dave Love <d.love@dl.ac.uk>
2861 * Make-lang.in (f77-runtime):
2862 Depend on stmp-hdrs, not stmp-int-hdrs, since libF77
2865 Sat Jun 22 18:17:11 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
2871 Tue Jun 4 04:27:18 1996 Craig Burley <burley@gnu.ai.mit.edu>
2873 * com.c (ffecom_build_complex_constant_): Explicitly specify
2875 (ffecom_expr_): Fix thinko.
2876 (ffecom_2): For COMPLEX_EXPR, explicitly specify TREE_PURPOSE.
2878 Mon May 27 16:23:43 1996 Craig Burley <burley@gnu.ai.mit.edu>
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
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
2910 * top.h, top.c, lang-options.h: Support new -f(no-)emulate-complex option.
2912 * com.c (ffecom_sym_transform_): Clarify and fix typos in comments.
2914 Mon May 20 02:06:27 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
2921 1996-05-20 Dave Love <d.love@dl.ac.uk>
2924 Test for patch being applied with flag_move_all_movables in toplev.c.
2926 * install.texi (Patching GNU Fortran):
2927 Mention overriding X_CFLAGS rather than
2928 editing proj.h on SunOS4.
2930 * Make-lang.in (F77_FLAGS_TO_PASS):
2931 Add X_CFLAGS (convenient for SunOS4 kluge, in
2933 (f77.{,mostly,dist}clean): Reorder things, in particular not to delete
2934 Makefiles too early.
2936 * g77.c (DEFAULT_SWITCH_TAKES_ARG): Define a la gcc.c in the
2937 current GCC snapshot.
2939 Tue May 14 00:24:07 1996 Craig Burley <burley@gnu.ai.mit.edu>
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
2946 * target.h: Use `int' for ffetargetInteger1,
2947 ffetargetLogical1, and magical tests. Set _f format
2948 strings accordingly.
2950 Tue Apr 16 14:08:28 1996 Craig Burley <burley@gnu.ai.mit.edu>
2952 * top.c (ffe_decode_option): -Wall no longer implies
2955 Sat Apr 13 14:50:06 1996 Craig Burley <burley@gnu.ai.mit.edu>
2957 * com.c (ffecom_char_args_): If item is error_mark_node,
2958 set *length that way, too.
2960 * com.c (ffecom_expr_power_integer_): If either operand
2961 is error_mark_node, return that.
2963 * com.c (ffecom_intrinsic_len_): If item is error_mark_node,
2964 return that for length.
2966 * expr.c (ffeexpr_declare_unadorned_,
2967 ffeexpr_declare_parenthesized_): Instead of crashing
2968 on unexpected contexts, produce a diagnostic.
2970 * intrin.c (ffeintrin_check_), intrin.def (impSIGNAL):
2971 Allow procedure as second arg to SIGNAL intrinsic.
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
2980 (ffestu_sym_exec_transition): If sym has any opANY exprs
2981 in its dimlist, diagnose it so it becomes opANY itself.
2983 * symbol.c (ffesymbol_error): If token arg is NULL,
2984 just ANY-ize the symbol -- don't produce diagnostic.
2986 Mon Apr 1 10:14:02 1996 Craig Burley <burley@gnu.ai.mit.edu>
2988 * Version 0.5.18 released.
2990 Mon Mar 25 20:52:24 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.)
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.
3003 * com.c (ffecom_notify_init_symbol): Symbol has no init
3004 info at all if only zeros have been used to initialize it.
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.
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.
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.
3040 Tue Mar 19 13:12:40 1996 Craig Burley <burley@gnu.ai.mit.edu>
3042 * data.c (ffedata_value): Fix crash on opANY, and simplify
3043 the code at the same time.
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.
3049 * intrin.c (ffeintrin_check_): Accommodate TYPELESS/HOLLERITH
3050 types, convert args as necessary, etc.
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.
3056 Mon Mar 18 15:51:30 1996 Craig Burley <burley@gnu.ai.mit.edu>
3058 * com.c (ffecom_init_zero_): Renamed from
3059 ffecom_init_local_zero_; now handles top-level
3060 (COMMON) initializations too.
3062 * bld.c (ffebld_constant_is_zero):
3063 * com.c (ffecom_symbol_transform_, ffecom_sym_transform_assign_,
3064 ffecom_transform_common_, ffecom_transform_equiv_):
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.
3082 * bad.def: Fix wording for DATA-related diagnostics.
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.
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.)
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
3098 Sat Mar 16 12:11:40 1996 Craig Burley <burley@gnu.ai.mit.edu>
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).
3105 Fri Mar 15 13:09:41 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
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.
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.
3128 Fri Mar 15 01:09:41 1996 Craig Burley <burley@gnu.ai.mit.edu>
3130 * com-rt.def, com.c, com.h: Changes for rewrite of intrinsic
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.
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.
3152 * intrin.c (ffe_init_0): Do internal checks only if
3153 -fset-g77-defaults not specified.
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.
3159 Sat Mar 9 17:49:50 1996 Craig Burley <burley@gnu.ai.mit.edu>
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.
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
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
3181 * expr.c (ffeexpr_reduced_power_): Complain about non-INTEGER
3182 raised to INTEGER4 (INTEGER*8) power.
3184 * target.c (ffetarget_power_integerdefault_integerdefault):
3186 * com.c (ffecom_expr_power_integer_): Fix (-1)**(-8) and similar
3187 to ABS() the integral result if the exponent is negative
3190 * ste.c (ffeste_begin_iterdo_): Clean up a type ref.
3191 Always convert iteration count to _default_ INTEGER.
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.
3206 * str-1t.fin: Ditto.
3207 * str-2t.fin: Ditto.
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.
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>.
3223 Wed Mar 6 14:08:45 1996 Craig Burley <burley@gnu.ai.mit.edu>
3225 * top.c (ffe_init_gbe_): Make -frerun-loop-opt the default.
3227 Mon Mar 4 12:27:00 1996 Craig Burley <burley@gnu.ai.mit.edu>
3229 * expr.c (ffeexpr_exprstack_push_unary_): Really warn only
3230 about two successive _arithmetic_ operators.
3232 * stc.c (ffestc_R522item_object): Allow SAVE of (understood)
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_):
3240 * Make-lang.in (f77.maintainer-clean): Clean f/BUGS, f/INSTALL,
3242 ($(srcdir)/f/BUGS, $(srcdir)/f/INSTALL, $(srcdir)/f/NEWS):
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).
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.
3253 Sat Jan 20 13:57:19 1996 Craig Burley <burley@gnu.ai.mit.edu>
3255 * com.c (ffecom_get_identifier_): Eliminate needless
3256 comparison of results of strchr.
3258 Tue Dec 26 11:41:56 1995 Craig Burley <burley@gnu.ai.mit.edu>
3260 * Make-lang.in: Add rules for new files g77.texi, g77.info,
3262 Reorganize the *clean rules to more closely parallel gcc's.
3264 * config-lang.in: Exclude g77.info from diffs.
3266 Sun Dec 10 02:29:13 1995 Craig Burley <burley@gnu.ai.mit.edu>
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.
3274 Tue Dec 5 06:48:26 1995 Craig Burley <burley@gnu.ai.mit.edu>
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.
3280 Mon Dec 4 03:46:55 1995 Craig Burley <burley@gnu.ai.mit.edu>
3282 * lex.c (ffelex_display_token, ffelex_type_string_): Resurrect
3283 these from their old versions and update them for possible invocation
3285 * lex.h (ffelex_display_token): Declare this in case anyone
3286 else wants to call it.
3288 * lex.c (ffelex_total_tokens_): Have this reflect actual allocated
3289 tokens, no longer include outstanding "uses" of tokens.
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.
3295 * malloc.c (malloc_pool_kill): Fix bug that could prevent
3296 subpool from actually being killed (wasn't setting its use
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.
3304 Sun Dec 3 00:56:29 1995 Craig Burley <burley@gnu.ai.mit.edu>
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.
3311 Sat Dec 2 08:28:56 1995 Craig Burley <burley@gnu.ai.mit.edu>
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.
3317 * bad.def (FFEBAD_BAD_POWER): 0**integer now a warning instead
3320 Fri Dec 1 00:12:03 1995 Craig Burley (burley@gnu.ai.mit.edu)
3322 * bad.def: Clarify diagnostic regarding complex constant elements.
3323 * expr.c (ffeexpr_cb_comma_c_): Capitalize real/imaginary
3324 for clarified diagnostic.
3326 * com.c (ffecom_close_include_): Close the file!
3328 * lex.c (ffelex_file_fixed): Update line info if the line
3329 has any content, not just if it finishes a previous line
3331 (ffelex_file_free): Clarify switch statement code.
3333 Sat Nov 18 19:37:22 1995 Craig Burley (burley@gnu.ai.mit.edu)
3335 * Version 0.5.17 released.
3337 Fri Nov 17 14:27:24 1995 Craig Burley (burley@gnu.ai.mit.edu)
3339 * Make-lang.in: Fix typo in comment.
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.
3346 Thu Nov 16 12:47:50 1995 Craig Burley (burley@gnu.ai.mit.edu)
3348 * com.c (ffecom_init_0): Fix dumb bug in code to produce
3349 warning message about non-32-bit-systems.
3351 * stc.c (ffestc_R501_item): Parenthesize test to make
3352 warning go away (and perhaps fix bug).
3354 Thu Nov 16 03:43:33 1995 Craig Burley (burley@gnu.ai.mit.edu)
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".
3359 Fri Nov 10 19:16:05 1995 Craig Burley (burley@gnu.ai.mit.edu)
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").
3365 Thu Nov 2 03:58:17 1995 Craig Burley (burley@gnu.ai.mit.edu)
3367 * Make-lang.in: Remove unnecessary $(exeext) a la cp/Make-lang.in.
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').
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
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
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.
3392 * equiv.c (ffeequiv_layout_local_): Kill the equiv list
3395 * expr.c (ffeexpr_reduced_eqop2_): Issue specific diagnostic
3396 regarding usage of .EQV./.NEQV. in preference to .EQ./.NE..
3398 * intrin.c: Add ERF and ERFC as generic intrinsics.
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.
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.
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.
3415 Fri Oct 27 07:06:59 1995 Craig Burley (burley@gnu.ai.mit.edu)
3417 * com.c (ffecom_sym_transform_): Simplify code for local
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".
3425 * lang-options.h: Add -W(no-)surprising options.
3427 * parse.c (yyparse): Don't reset -fpedantic if not -pedantic.
3429 * top.c (ffe_decode_option): Support new -Wsurprising option.
3432 Mon Oct 23 09:14:15 1995 Craig Burley (burley@gnu.ai.mit.edu)
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).
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.
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.
3449 Thu Oct 19 03:21:20 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
3455 Fri Sep 22 20:21:18 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
3461 * com.c (__eprintf): New function.
3463 Wed Sep 20 02:26:36 1995 Craig Burley (burley@gnu.ai.mit.edu)
3465 * lang-options.h: Add omitted -funix-intrinsics-* options.
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
3472 Thu Sep 7 13:00:32 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.).
3481 Wed Aug 30 15:58:35 1995 Craig Burley (burley@gnu.ai.mit.edu)
3483 * Version 0.5.16 released.
3485 Mon Aug 28 12:24:20 1995 Craig Burley (burley@gnu.ai.mit.edu)
3487 * bad.c (ffebad_finish): Fix botched message when no places
3488 are printed (due to unknown line info, etc.).
3490 * std.c (ffestd_subr_labels_): Do a better job finding
3491 line info in the case of typeANY and diagnostics.
3493 Fri Aug 25 15:19:29 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
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
3511 Get rid of useless used_up variable.
3512 Don't do ffewhere stuff or kill any tokens if in
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.
3519 * lex.h (ffelex_hash_kludge): New function.
3521 Wed Aug 23 15:17:40 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
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.
3534 * top.c, top.h (underscoring): Add appropriate stuff
3535 for the -f(no-)underscoring options.
3537 Tue Aug 22 10:25:01 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
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'.
3556 * com.h (report_error_function): Declare this.
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.
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.
3567 * intrin.def (FFEINTRIN_impFLUSH): Validate using
3568 ffeintrin_check_flush_ so passing an INTEGER arg is allowed.
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).
3576 Mon Aug 21 08:09:04 1995 Craig Burley (burley@gnu.ai.mit.edu)
3578 * Makefile.in: Put `-W' in front of every `-Wall', since
3579 2.7.0 requires that to engage `-Wunused' for parameters.
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
3586 * proj.h: Don't #define UNUSED if already defined, regardless
3589 Sun Aug 20 16:03:56 1995 Craig Burley (burley@gnu.ai.mit.edu)
3591 * gbe/2.7.0.diff: Regenerate.
3593 * lang-options.h, lang-specs.h: If not __STDC__ (ANSI C),
3594 avoid doing anything, especially the stringizing in -specs.h.
3596 Thu Aug 17 03:36:12 1995 Craig Burley (burley@gnu.ai.mit.edu)
3598 * lang-specs.h: Remove useless optional settings of -traditional,
3599 since -traditional is always set anyway.
3601 Wed Aug 16 16:56:46 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
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
3619 (ffecom_notify_init_storage): Offline fixups for stand-alone.
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).
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
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'.
3635 * lang-options.h: New "-fnull-version" option.
3637 * lang-specs.h: Support ".fpp" suffix for preprocessed source
3638 (useful for OS/2, MS-DOS, other case-insensitive systems).
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.
3644 * storag.c, storag.h (FFESTORAG_typeDUMMY): Delete this enum.
3646 * top.c: Accept, but otherwise ignore, `-fnull-version'.
3648 Tue Aug 15 07:01:07 1995 Craig Burley (burley@gnu.ai.mit.edu)
3650 * DOC, INSTALL, PROJECTS: Extensive improvements to documentation.
3652 Sun Aug 13 01:55:18 1995 Craig Burley (burley@gnu.ai.mit.edu)
3654 * INSTALL (f77-install-ok): Document the use of this file.
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').
3663 Mon Aug 7 06:14:26 1995 Craig Burley (burley@gnu.ai.mit.edu)
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
3670 * INSTALL: Add info here that used to be in DOC.
3673 * g77.c (lookup_option, main): Check for --print-* options,
3674 so we avoid adding version-determining stuff.
3676 Wed Jul 26 15:51:03 1995 Craig Burley (burley@gnu.ai.mit.edu)
3678 * Make-lang.in, Makefile.in (input.j, INPUT_H): New file.
3679 Update dependencies accordingly.
3681 * bad.c (ffebad_here): Okay to use unknown line/col.
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.
3689 * config-lang.in: Avoid use of word "guaranteed".
3691 * input.j: New file to wrap around gcc/input.h.
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.
3718 * lex.h (FFELEX_typeHASH): New enum.
3720 * options-lang.h (-fident, -fno-ident): New options.
3722 * stw.c (ffestw_update): Okay to kill unknown line/col objects
3725 * target.h (FFETARGET_okREALQUAD, FFETARGET_okCOMPLEXDOUBLE,
3726 FFETARGET_okCOMPLEXQUAD): #define these appropriately.
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
3734 * top.h (ffe_is_ident_, ffe_is_ident, ffe_set_is_ident):
3735 New flag and access functions.
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.
3741 Mon Jul 17 03:04:09 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
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.
3759 * g77.c: Major changes to improve support for gcc long options,
3760 to make `g77 -v' report more useful info, and so on.
3762 Mon Jul 3 14:49:16 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
3769 Tue Jun 27 23:01:05 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
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()
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.
3794 * expr.c: Change ffecom_constant_character_pool() to
3795 ffecom_constant_pool().
3797 * info.c (ffeinfo_new): Compile this version if not being
3800 * info.h (ffeinfo_new): Don't define macro if not being
3803 * intrin.c, intrin.def: Add ERF(), ERFC(), and EXIT() intrinsics.
3804 (ffeintrin_check_exit_): New for EXIT() subroutine intrinsic.
3806 * malloc.c, malloc.h (malloc_verify_*): New functions to verify
3807 integrity of heap-storage areas.
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).
3813 * target.c, target.h (ffetarget_verify_character1): New function
3814 to verify integrity of heap storage used to hold character constant.
3816 Thu Jun 22 15:36:39 1995 Howard Gordon (flash@super.org)
3818 * stp.h (ffestpVxtcodeIx): Fix typo in typedef for this.
3820 Mon May 29 15:22:31 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
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.
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.
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.
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.
3859 Sat May 20 01:53:53 1995 Craig Burley (burley@gnu.ai.mit.edu)
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).
3866 Fri May 19 11:00:36 1995 Craig Burley (burley@gnu.ai.mit.edu)
3868 * Version 0.5.15 released.
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).
3878 Wed May 17 12:26:16 1995 Craig Burley (burley@gnu.ai.mit.edu)
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
3885 * target.h, target.c (ffetarget_convert_character1_logical1):
3888 Sun May 14 00:00:09 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
3897 * stc.c (ffestc_R547_item_object): Disallow array declarator
3898 if one already exists for symbol.
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).
3904 * target.h (FFETARGET_defaultFIXED_LINE_LENGTH): New
3905 macro for default for -ffixed-line-length-N option.
3907 * top.c (ffe_fixed_line_length_): Initialize this to new
3908 target.h macro instead of constant 72.
3910 Tue May 9 01:20:03 1995 Craig Burley (burley@gnu.ai.mit.edu)
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
3927 * options-lang.h: Add -ffixed-line-length- prefix.
3929 * top.h: Add ffe_fixed_line_length() and _set_ version, plus
3930 corresponding extern.
3932 * top.c: Handle -ffixed-line-length- option prefix.
3934 Fri Apr 28 05:40:25 1995 Craig Burley (burley@gnu.ai.mit.edu)
3936 * Version 0.5.14 released.
3938 * Make-lang.in: Add assert.j.
3940 * Makefile.in: Add assert.j.
3942 * assert.j: New file.
3944 Thu Apr 27 16:24:22 1995 Craig Burley (burley@gnu.ai.mit.edu)
3946 * bad.h (ffebad_severity): New function.
3948 * bad.c (ffebad_severity): New function.
3950 * bad.def (FFEBAD_OPEN_INCLUDE): Change severity from SEVERE
3951 to FATAL, since processing continues, and that seems fine.
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.
3962 * compilers.h: Pass -I flag(s) to f771 (via "%{I*}").
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.
3968 * options-lang.h: Add -I prefix.
3970 * parse.c (yyparse): Call ffecom_file for main input file,
3971 so -I handling works (diagnostics).
3973 * std.c (ffestd_S3P4): Have ffecom_open_include handle
3974 opening and diagnosing errors with INCLUDE files.
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.
3981 * top.c (ffe_decode_option): Allow -I, restructure a bit
3982 for clarity and, maybe, speed.
3984 Mon Apr 17 13:31:11 1995 Craig Burley (burley@gnu.ai.mit.edu)
3986 * g77.c: Remove -lc, turns out not all systems has it, but
3987 leave other changes in for clarity of code.
3989 Sun Apr 16 21:50:33 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.)
3996 Sun Apr 16 00:22:48 1995 Craig Burley (burley@gnu.ai.mit.edu)
3998 * Make-lang.in (F77_SRCS): Remove g77.c, since it doesn't
3999 contribute to building f771.
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
4007 * g77.c: Include -lc between -lf2c and -lm throughout.
4009 * implic.c (ffeimplic_establish_symbol): If -Wimplicit, warn if
4010 implicit type given to symbol.
4012 * lex.c (ffelex_include_): Don't gratuitously increment line
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
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
4024 Thu Apr 13 16:48:30 1995 Craig Burley (burley@gnu.ai.mit.edu)
4026 * com.c (ffecom_init_0): Register built-in functions for cos,
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.
4034 * com-rt.def: Refer to built-in functions for cos, sin, and sqrt.
4036 Thu Apr 13 10:25:09 1995 Craig Burley (burley@gnu.ai.mit.edu)
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).
4046 * lex.c: Maintain lineno and input_filename the way the gcc
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.
4053 Wed Apr 12 09:44:45 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
4062 Wed Apr 5 14:15:44 1995 Craig Burley (burley@gnu.ai.mit.edu)
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
4069 Remove some old, obsolete code.
4070 Clean up layout of entire file to improve formatting,
4072 (ffelex_set_expecting_hollerith): Remove include argument.
4074 Fri Mar 31 23:19:08 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
4081 * lex.c (ffelex_backslash_): New function to implement
4082 backslash processing.
4083 (ffelex_file_fixed, ffelex_file_free): Implement new
4084 backslash processing.
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.
4091 Mon Mar 27 17:10:33 1995 Craig Burley (burley@gnu.ai.mit.edu)
4093 * com.c (ffecom_init_local_zero_): Implement -finit-local-zero.
4094 (ffecom_sym_transform_): Same.
4095 (ffecom_transform_equiv_): Same.
4097 * options-lang.h: Add -f(no-)(init-local-zero,backslash,ugly-init).
4099 * stb.c (ffestb_V020): Reject "TYPEblah(...", which might be
4100 an array assignment.
4102 * target.h, top.h, top.c: Implement -finit-local-zero.
4104 Fri Mar 24 19:56:22 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
4110 * com.c (ffecom_init_0): Change messages when atof(), bsearch(),
4111 or strtoul() do not work as expected in the start-up test.
4113 * conf-proj, conf-proj.in: Delete.
4115 * lex.c (ffelex_file_fixed): Allow f2c's '&' in column 1
4116 to mean continuation line.
4118 * options-lang.h: New file, #include'd by ../toplev.c.
4120 * proj.h.in: Rename back to proj.h.
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.
4131 Mon Mar 13 10:46:13 1995 Craig Burley (burley@gnu.ai.mit.edu)
4133 * BUGS: Add item about g77 requiring gcc to compile it.
4135 * NEWS: New file listing user-visible changes in the release.
4137 * PROJECTS: Update to include a new item or two, and modify
4138 or delete items that are addressed in this or previous releases.
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.
4144 * bad.def: Clean up error messages in a major way, add new ones
4145 for use by changes in target.c.
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
4162 (ffecom_arg_ptr_to_expr): Change treatment of Hollerith,
4163 Typeless, and %DESCR.
4164 (ffecom_expr_): Change treatment of Hollerith.
4166 * data.c (ffedata_gather_): Handle opANY in opCONVERT.
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
4179 * g77.1: Fix typo for preprocessed suffix (.F, not .f).
4181 * global.c (ffeglobal_init_common): Warn if initializing
4183 (ffeglobal_pad_common): Enable code to warn if initial
4185 (ffeglobal_size_common): Complain if enlarging already-
4186 initialized common, since it won't work right anyway.
4188 * intrin.c: Add IMAG() intrinsic.
4189 (ffeintrin_check_loc_): Allow opSUBSTR in LOC().
4191 * intrin.def: Add IMAG() intrinsic.
4193 * lex.c: Don't report FFEBAD_NULL_CHAR_CONST errors.
4195 * sta.c, sta.h, stb.c: Changes to clean up error messages (see
4198 * stb.c (ffestb_R100113_): Issue FFEBAD_NULL_CHAR_CONST
4199 warning as necessary.
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).
4207 * ste.c (ffeste_begin_doiter_): Couple of fixes to accurately
4208 determine if loop never executes.
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
4218 (ffetarget_typeless_*): Rewrite to use new implementation
4219 of typeless, and to warn about overflow.
4221 * target.h (ffetargetTypeless): New implementation of
4224 * type.h, type.c (ffetype_size_typeless): Remove (incorrect)
4225 implementation of this function and its extern.
4227 Sun Mar 5 18:46:42 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
4233 * com.c (ffecom_type_permanent_copy_): Comment out to avoid
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
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).
4244 * com.h: More decls that belong in tree.h &c.
4246 * data.c (ffedata_eval_integer1_): Fix opPAREN case to not
4247 treat value of expression as an error code.
4249 * expr.c (ffeexpr_finished_): Allow opSUBSTR in contextLOC case.
4251 * proj.c: Add "const" as appropriate.
4253 Mon Feb 27 10:04:03 1995 Craig Burley (burley@gnu.ai.mit.edu)
4255 * bad.def (FFEBAD_BAD_SUBSTR): Fix bad grammar in message.
4257 Fri Feb 24 16:21:31 1995 Craig Burley (burley@gnu.ai.mit.edu)
4259 * Version 0.5.13 released.
4261 * INSTALL: Warn that f/zzz.o will compare differently between
4262 stages, since it puts the __TIME__ macro into a string.
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
4273 * equiv.c (ffeequiv_offset_): Check symbol info for ANY.
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
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.
4298 * lex.c (ffelex_image_char_): Set ffelex_saw_tab_ if TAB
4299 seen, not if anything other than TAB seen!
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.
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.
4311 Thu Feb 23 12:42:04 1995 Craig Burley (burley@gnu.ai.mit.edu)
4313 * Version 0.5.12 released.
4315 * Make-lang.in (f77.install-common): Add "else true;" before outer
4316 "fi" per Makefile.in patch.
4318 * Makefile.in (dircheck): Add "else true;" before "fi" per
4319 patch from chs1pm@surrey.ac.uk.
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.
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).
4329 Thu Feb 23 02:48:38 1995 Craig Burley (burley@gnu.ai.mit.edu)
4331 * Version 0.5.11 released.
4333 * DOC: Explain -fugly-args.
4335 * bad.def (FFEBAD_ACTUALARG): Explain -fugly-args and how to
4336 rewrite code to not require it.
4338 * com.c (ffecom_vardesc_): Handle negative type code, just in
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.
4344 * expr.c (ffecom_finished_): Check -fugly-args in actual-arg
4345 context where hollerith/typeless provided.
4347 * intrin.def (FFEINTRIN_genDFLOAT): Add FFEINTRIN_specDFLOAT.
4348 (FFEINTRIN_specDFLOAT): Add as f2c intrinsic.
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.
4355 * top.c (ffe_is_ugly_args_): New variable.
4356 (ffe_decode_option): Handle -fugly-args and -fno-ugly-args.
4358 * top.h (ffe_is_ugly_args_, ffe_is_ugly_args(),
4359 ffe_set_is_ugly_args()): New variable and macros.
4361 Thu Feb 23 02:48:38 1995 Pedro A M Vazquez (vazquez@iqm.unicamp.br)
4363 * g77.c (sys_errlist): Use const for __FreeBSD__ systems
4366 Wed Feb 22 13:33:43 1995 Craig Burley (burley@gnu.ai.mit.edu)
4368 * Version 0.5.10 released.
4370 * CREDITS: Add Rick Niles.
4372 * INSTALL: Note how to get around lack of makeinfo.
4374 * Make-lang.in (f/proj.h): Remove # comment.
4376 * Makefile.in (f/proj.h): Remove # comment.
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
4386 Tue Feb 21 19:01:18 1995 Dave Love <d.love@dl.ac.uk>
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!
4392 Tue Feb 21 11:45:25 1995 Craig Burley (burley@gnu.ai.mit.edu)
4394 * Version 0.5.9 released.
4396 * Make-lang.in (f/proj.h): touch file to register update,
4397 because the previous commands won't necessarily modify it.
4399 * Makefile.in (f/proj.h): touch file to register update,
4400 because the previous commands won't necessarily modify it.
4402 * Makefile.in (f/str-*.h, f/str-*.j): Explicitly specify
4403 output file names, so these targets go in build, not source,
4406 * bits.c, bits.h: Switch to valid ANSI C replacement for
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.
4415 * com.c (ffecom_f2c_make_type_): Do make_signed_type instead
4416 of make_unsigned_type throughout.
4418 * com.c (ffecom_finish_symbol_transform_): Expand scope of
4419 commented-out code to probably produce faster compiler code.
4421 * com.c (ffecom_gen_sfuncdef_): Push/pop calltemps so
4422 COMPLEX works right.
4423 Remove obsolete comment.
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
4429 Pretransform all symbols so statement functions are defined
4430 before any code emitted.
4432 * com.c (ffecom_finish_progunit): Don't posttransform all
4433 symbols here -- pretransform them instead.
4435 * com.c (ffecom_init_0): Don't warn about possible ASSIGN
4436 crash, as this shouldn't happen now.
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.
4442 * com.c (ffecom_return_expr): Check TREE_USED to determine
4443 where return value is unset.
4445 * com.h (struct _ffecom_symbol_): Add note about length_tree
4446 now being used to keep tree for ASSIGN version of symbol.
4448 * com.h (ffecom_expr_assign, ffecom_expr_assign_rw): New decls.
4449 (error): Add this prototype for back-end function.
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.
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.
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
4464 * proj.h.in (ARRAY_ZERO, ARRAY_ZERO_SIZE): Remove.
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.
4470 * where.c, where.h: Switch to valid ANSI C replacement for
4473 Fri Feb 17 03:35:19 1995 Craig Burley (burley@gnu.ai.mit.edu)
4475 * Version 0.5.8 released.
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).
4482 Fri Feb 17 02:35:41 1995 Craig Burley (burley@gnu.ai.mit.edu)
4484 * Version 0.5.7 released.
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.
4489 Fri Feb 17 01:50:48 1995 Craig Burley (burley@gnu.ai.mit.edu)
4491 * Version 0.5.6 released.
4493 Thu Feb 16 20:26:54 1995 Craig Burley (burley@gnu.ai.mit.edu)
4495 * ../README.g77: Remove description of g77 as "not-yet-published".
4497 * CREDITS: More changes.
4499 * Make-lang.in (G77STAGESTUFF): Remove cktyps stuff.
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.
4507 * README.NEXTSTEP: Credit Toon, and per his request, add his
4510 * com.h (FFECOM_DETERMINE_TYPES): #include "config.j".
4512 * config.j, convert.j, flags.j, hconfig.j, rtl.j, tconfig.j,
4513 tm.j, tree.j: Don't #include if already done.
4515 * convert.j: #include "tree.j" first, as convert.h clearly depends
4516 on trees being defined.
4518 * rtl.j: #include "config.j" first, since there's some stuff
4519 in rtl.h that assumes it has been #included.
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.
4525 Wed Feb 15 14:40:20 1995 Craig Burley (burley@gnu.ai.mit.edu)
4527 * Version 0.5.5 released.
4529 * Copyright notices updated to be FSF-style.
4531 * INSTALL: Some more clarification regarding building just f77.
4533 * Make-lang.in (F77_SRCS): Update wrt changing some .h to .j.
4534 (install-libf77): Fix typo in new parenthetical note.
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.
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.
4547 * com.c (ffecom_init_0): Use FLOAT_TYPE_SIZE for f2c's
4548 TYLONG/TYLOGICAL type codes, to get g77 working on Alpha.
4550 * com.h: Make all f2c-related integral types "int", not "long
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
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.
4562 * proj.h: Delete unused NO_STDDEF and related stuff.
4564 Tue Feb 14 08:28:08 1995 Craig Burley (burley@gnu.ai.mit.edu)
4566 * BUGS: Remove item #12, cross-compiling & autoconf scripts
4567 reportedly expected to work properly (according to d.love).
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-
4574 * Make-lang.in ($(srcdir)/f/conf-proj): Add comment about why
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.
4580 * bad.c (ffebad_finish): Put capitalized "warning:" &c message
4581 as prefix on any diagnostic without pointers into source.
4583 * bad.def (FFEBAD_TOO_BIG_INIT): Add this warning message.
4585 * config-lang.in: Add Dave Love's patch to catch case where
4586 back-end patches not applied and abort configuration.
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
4594 (FFEDATA_sizeTOO_BIG_INIT_): New macro per above.
4596 Mon Feb 13 13:54:26 1995 Dave Love <d.love@dl.ac.uk>
4598 * Make-lang.in (F77_SRCS): Use $(srcdir)/f/proj.h.in, not
4599 $(srcdir)/f/proj.h for build outside srcdir.
4601 Sun Feb 12 13:37:11 1995 Craig Burley (burley@gnu.ai.mit.edu)
4603 * ../README.g77: Clarify procedures for unpacking, add asterisks
4604 to mark important things the user must do.
4606 * Fix dates in/add dates to ../README.g77, BUGS, CREDITS, DOC,
4607 INSTALL, PROJECTS, README.
4609 Sun Feb 12 00:26:10 1995 Craig Burley (burley@gnu.ai.mit.edu)
4611 * Version 0.5.4 released.
4613 * Make-lang.in (f/proj.h): Reproduce this rule here from
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.
4619 * Makefile.in ($(srcdir)/conf-proj): See Make-lang.in's similar
4622 Sat Feb 11 20:56:02 1995 Craig Burley (burley@gnu.ai.mit.edu)
4624 * BUGS: Clarify some bugs.
4626 * DOC: Many improvements and fixes.
4628 * README: Move bulk of text, edited, to ../README.g77, and
4629 replace with pointer to that file.
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.
4635 * conf-proj.in: Fix typos in comments.
4637 * proj.h.in: Add ARRAY_ZERO_SIZE to parallel malloc.h's version,
4638 in case it proves to be needed.
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.
4645 Sat Feb 11 12:38:00 1995 Craig Burley (burley@gnu.ai.mit.edu)
4647 * com.c (ffecom_vardesc_): Crash if typecode is -1.
4649 * ste.c (ffeste_io_dolio_): Crash if typecode is -1.
4651 Sat Feb 11 09:51:57 1995 Craig Burley (burley@gnu.ai.mit.edu)
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).
4664 Fri Feb 10 11:05:50 1995 Craig Burley (burley@gnu.ai.mit.edu)
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
4672 Wed Feb 8 14:35:10 1995 Dave Love <d.love@dl.ac.uk>
4674 * runtime/f2c.h.in (ftnlen, ftnint): Make same size as integer.
4676 * runtime/libI77/err.c (f_init): Thinko in MISSING_FILE_ELEMS
4678 * runtime/libI77/wrtfmt.c (mv_cur): Likewise.
4679 * runtime/libI77/wsfe.c (x_putc): Likewise.
4681 * runtime/libF77/signal_.c (signal_): Return 0 (this is a
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.
4688 * runtime/libI77/Makefile.in (*.o): Add f2c.h dependency.
4689 * runtime/libF77/Makefile.in: Likewise.
4691 Wed Feb 8 13:56:47 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
4697 Tue Feb 7 14:47:26 1995 Dave Love <d.love@dl.ac.uk>
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.
4703 * conf-proj.in: Check need for LAME_ASSERT. Fix indentation in
4704 check for LAME_STDIO (cosmetic only with ANSI C).
4706 * com.h: Extra ...SIZE stuff taken from com.c.
4708 * com.c (FFECOM_DETERMINE_TYPES): Define before including com.h.
4709 (BITS_PER_WORD etc.) Remove and use conditional definitions to com.h.
4711 * runtime/configure.in: #define FFECOM_DETERMINE_TYPES for com.h in
4712 f2c type determination.
4714 * tm.h: Remove (at least pro tem) because of relative path and use
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.
4721 Mon Feb 6 19:58:32 1995 Dave Love <d.love@dl.ac.uk>
4723 * g77.c (append_arg): Use K&R declaration for, e.g. SunOS4 build.
4725 Fri Feb 3 20:33:14 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
4731 * Make-lang.in: Put complete list of sources in F77_SRCS def
4732 so changing a .h file, for example, causes rebuild.
4734 * Makefile.in: Change test for nextstep to m68k-next-nextstep* so
4735 all versions of nextstep on m68k get the necessary flag.
4737 Fri Feb 3 19:10:32 1995 Dave Love <d.love@dl.ac.uk>
4739 * INSTALL: Note about possible conflict with existing libf2c.a and
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.
4747 * runtime/Makefile.in (all): Change path to include directory (and
4749 (INCLUDES): Remove (unused/misleading).
4750 (distclean): Include f2c.h.
4751 (clean): Include config.cache.
4753 * runtime/libF77/Makefile.in (.SUFFIXES): Correct typo.
4754 (ALL_CFLAGS) Fix up include search path to find f2c.h in top level
4756 (all): Depend on f2c.h.
4757 * runtime/libI77/Makefile.in (.SUFFIXES): Likewise.
4759 Thu Feb 2 17:17:06 1995 Dave Love <d.love@dl.ac.uk>
4761 * INSTALL: Note about --srcdir and GNU make.
4763 * runtime/f2c.h.in (Pad_UDread, ALWAYS_FLUSH): Reomve the #defines
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.
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.
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'.
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.
4782 * config.h: Remove per CONFIG_H change above.
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.
4792 Thu Feb 2 12:09:51 1995 Craig Burley (burley@gnu.ai.mit.edu)
4794 * BUGS: Update regarding losing EQUIVALENCE members in -g, and
4795 regarding RS/6000 problems in the back end.
4797 * CREDITS: Make some changes as requested.
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
4807 (ffecom_push_tempvar): Fix assertion to not crash okay code.
4809 * com.h: Remove old, commented-out code.
4810 Add prototype for warning() in back end.
4812 * ste.c (ffeste_io_dofio_, ffeste_io_dolio_, ffeste_io_douio_,
4813 ffeste_io_icilist_): Check correct type of variable for arrayness.
4815 Sun Jan 29 14:41:42 1995 Dave Love <d.love@dl.ac.uk>
4817 * BUGS: Remove references to my configure bugs; add another.
4819 * runtime/Makefile.in (AR_FLAGS): Provide default value.
4821 * runtime/f2c.h.in (integer, logical): Take typedefs from
4822 F2C_INTEGER configuration parameter again.
4823 (NON_UNIX_STDIO): don't define it.
4825 * runtime/configure.in: Bring type checks for f2c.h in line with
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
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
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
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.
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
4851 (f77.*clean:) Add products of new configuration files and make sure
4852 all the *clean targets do something (unlike the ones in
4855 * com.h (FFECOM_f2cINTEGER, FFECOM_f2cLOGICAL): Define as long or
4856 int appropriately to ensure sizeof(real) == sizeof(integer).
4858 * PROJECTS: Library section.
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
4865 Wed Jan 25 03:31:51 1995 Craig Burley (burley@gnu.ai.mit.edu)
4867 * Version 0.5.3 released.
4871 * Make-lang.in: Comment out rules for building f2c itself (f/f2c/).
4875 * com.c (ffecom_init_0): Warn if ftnlen or INTEGER not big enough
4878 * gbe/2.6.2.diff: Update.
4880 Mon Jan 23 17:10:49 1995 Craig Burley (burley@gnu.ai.mit.edu)
4888 Make-lang.in: Remove cktyps stuff.
4889 Makefile.in: Remove cktyps stuff.
4891 * DOC: Add info on changes for 0.5.3.
4893 * bad.c: Put "warning:" &c on diagnostic messages.
4894 Don't output informational messages if warnings disabled.
4896 Thu Jan 19 12:38:13 1995 Craig Burley (burley@gnu.ai.mit.edu)
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.
4907 Wed Jan 18 16:41:57 1995 Craig Burley (burley@gnu.ai.mit.edu)
4909 * DOC: Explain -fautomatic better.
4911 * INSTALL: Describe libf2c.a better.
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.
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.
4921 * bld-op.def, bld.h, bld.c: Remove opBACKEND and all related
4923 Remove consistency tests that cause compiler warnings.
4925 * cktyps.c: Remove all typing checking.
4927 * com-rt.def: Change all rttypeFLOAT_ intrinsics to rttypeDOUBLE_,
4928 to precisely match how they're declared in libf2c.
4930 * com.h, com.c: Revise to more elegantly track related stuff
4931 in the version of f2c.h used to build libf2c.
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
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.
4953 * expr.c (ffeexpr_collapse_substr): Handle strange substring
4956 * info.h, info.c: Provide connection to new type module.
4957 Remove tests that yield compiler warnings.
4959 * intrin.c (ffeintrin_is_intrinsic): Properly handle deleted
4962 * lex.c (ffelex_file_fixed): Remove redundant/buggy code.
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.
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.
4977 * stw.h: Track DO iteration count temporary variable.
4979 * symbol.c: Remove consistency tests that cause compiler warnings.
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
4985 (ffetarget_convert_character1_typeless): Pick up length of
4986 typeless type from new type module.
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).
4996 * top.c: Add inits/terminates for new type module.
4998 * type.h, type.c: New module.
5000 * gbe/2.6.2.diff: Remove all patches to files in gcc/config/
5001 directory and its subdirectories.
5003 Mon Jan 9 19:23:25 1995 Dave Love <d.love@dl.ac.uk>
5005 * com.h (FFECOM_F2C_INTEGER_TYPE_NODE): Define and use instead of
5006 long_integer_type_node where appropriate.
5008 Tue Jan 3 14:56:18 1995 Dave Love <d.love@dl.ac.uk>
5010 * com.h: Make ffecom_f2c_logical_type_node long, consistent with
5013 Fri Dec 2 20:07:37 1994 Dave Love <d.love@dl.ac.uk>
5015 * config-lang.in (stagestuff): Add f2c conditionally.
5016 * Make-lang.in: Add f2c and related targets.
5017 * f2c: Add the directory.
5019 Fri Nov 25 22:17:26 1994 Dave Love <d.love@dl.ac.uk>
5021 * Makefile.in (FLAGS_TO_PASS): pass $(CROSS)
5022 * Make-lang.in: more changes to runtime targets
5024 Thu Nov 24 18:03:21 1994 Dave Love <d.love@dl.ac.uk>
5026 * Makefile.in (FLAGS_TO_PASS): define for sub-makes
5028 * g77.c (main): change f77-cpp-output to f77-cpp-input (.F files)
5030 Wed Nov 23 15:22:53 1994 Dave Love <d.love@dl.ac.uk>
5032 * bad.c (ffebad_finish): kluge to fool emacs19 into finding errors:
5033 add trailing space to <file>:<line>:
5035 Tue Nov 22 11:30:50 1994 Dave Love <d.love@dl.ac.uk>
5037 * runtime/libF77/signal_.c (RETSIGTYPE): added
5039 Mon Nov 21 13:04:13 1994 Dave Love <d.love@dl.ac.uk>
5041 * Makefile.in (compiler): add runtime
5043 * config-lang.in (stagestuff): add libf2c.a to stagestuff
5046 G77STAGESTUFF <- MORESTAGESTUFF
5047 f77-runtime: new target, plus supporting ones
5049 * runtime: add the directory, containing libI77, libF77 and autoconf
5054 * g77.1: minor fixes
5056 Thu Nov 17 15:18:05 1994 Craig Burley (burley@gnu.ai.mit.edu)
5058 * Version 0.5.2 released.
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).
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.
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.
5073 * Make: Improvements for stand-alone build.
5075 * Makefile.in: Fix copyright text at top of file.
5077 * LINK, SRCS, UNLINK: Removed. Not particularly useful now that
5078 g77 sources live in their own subdirectory.
5080 * g77.c (main): Cast arg to bzero to avoid warning. (This is
5081 identical to Kenner's fix to cp/g++.c.)
5083 * gbe/: New subdirectory, to contain .diff files for various
5084 versions of the GNU CC back end.
5086 * gbe/README: New file.
5087 * gbe/2.6.2.diff: New file.
5089 Tue Nov 8 10:23:10 1994 Dave Love <d.love@dl.ac.uk>
5091 * Make-lang.in: don't install as f77 as well as g77 to avoid
5092 confusion with system's compiler (especially while testing)
5094 * g77.c (main): use -lf2c and -lm; fix sense of test for .f/.F files
5096 Fri Oct 28 09:45:00 1994 Craig Burley (burley@gnu.ai.mit.edu)
5098 * Version 0.5.1 released.
5100 * gcc.c: Invoke f771 instead of f-771.
5102 Fri Oct 28 02:00:44 1994 Craig Burley (burley@gnu.ai.mit.edu)
5104 * Version 0.5.0 released.
5106 Fri Oct 14 15:03:35 1994 Craig Burley (burley@gnu.ai.mit.edu)
5108 * Makefile.in: Handle the Fortran-77 front-end in a subdirectory.
5109 * f-*: Move Fortran-77 front-end to f/*.