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