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