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