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