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