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