Mon Apr  1 10:14:02 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* Version 0.5.18 released.

Mon Mar 25 20:52:24 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* com.c (ffecom_expr_power_integer_): Don't generate code
	that compares COMPLEX (or, as it happens, REAL) via "LT_EXPR",
	since the back end crashes on that.  (This code would never
	be executed anyway, but the test that avoids it has now been
	translated to control whether the code gets generated at all.)
	Fixes 960323-3.f.

	* com.c (ffecom_type_localvar_): Handle variable-sized
	dimension bounds expressions here, so they get calculated
	and saved on procedure entry.  Fixes 960323-4.f.

	* com.c (ffecom_notify_init_symbol): Symbol has no init
	info at all if only zeros have been used to initialize it.
	Fixes 960324-0.f.

	* expr.c, expr.h (ffeexpr_type_combine): Renamed from
	ffeexpr_type_combine_ and now a public procedure; last arg now
	a token, instead of an internal structure used to extract a token.
	Now allows the outputs to be aliased with the inputs.
	Now allows a NULL token to mean "don't report error".
	(ffeexpr_reduced_bool2_, ffeexpr_reduced_eqop2_,
	ffeexpr_reduced_math2_, ffeexpr_reduced_power_,
	ffeexpr_reduced_relop2_): Handle new calling sequence for
	ffeexpr_type_combine.
	* (ffeexpr_convert): Don't put an opCONVERT node
	in just because the size is unknown; all downstream code
	should be able to deal without it being there anyway, and
	getting rid of it allows new intrinsic code to more easily
	combine types and such without generating bad code.
	* info.c, info.h (ffeinfo_kindtype_max): Rewrite to do
	proper comparison of size of types, not just comparison
	of their internal kind numbers (so I2.eq.I1 doesn't promote
	I1 to I2, rather the other way around).
	* intrin.c (ffeintrin_check_): Combine types of arguments
	in COL a la expression handling, for greater flexibility
	and permissiveness (though, someday, -fpedantic should
	report use of this kind of thing).
	Make sure Hollerith/typeless where CHARACTER expected is
	rejected.  This all fixes 960323-2.f.

	* ste.c (ffeste_begin_iterdo_): Fix some more type conversions
	so INTEGER*2-laden DO loops don't crash at compile time on
	certain machines.  Believed to fix 960323-1.f.

	* stu.c (ffestu_sym_end_transition): Certainly reject
	whereDUMMY not in any dummy list, whether stateUNCERTAIN
	or stateUNDERSTOOD.  Fixes 960323-0.f.

Tue Mar 19 13:12:40 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* data.c (ffedata_value): Fix crash on opANY, and simplify
	the code at the same time.

	* Make-lang.in (f77-runtime): Also depends on lib[FI]77/Makefile...
	(include/f2c.h...): ...which in turn depend on */Makefile.in.
	(f77.rebuilt): Rebuild runtime stuff too.

	* intrin.c (ffeintrin_check_): Accommodate TYPELESS/HOLLERITH
	types, convert args as necessary, etc.

	* expr.c (ffeexpr_convert): Fix test for TYPELESS/HOLLERITH
	to obey the docs; crash if no source token when error.
	(ffeexpr_collapse_convert): Crash if no token when error.

Mon Mar 18 15:51:30 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* com.c (ffecom_init_zero_): Renamed from
	ffecom_init_local_zero_; now handles top-level
	(COMMON) initializations too.

	* bld.c (ffebld_constant_is_zero):
	* com.c (ffecom_symbol_transform_, ffecom_sym_transform_assign_,
	ffecom_transform_common_, ffecom_transform_equiv_):
	* data.c:
	* equiv.c:
	* equiv.h:
	* lang-options.h:
	* stc.c:
	* storag.c:
	* storag.h:
	* symbol.c:
	* symbol.h:
	* target.c:
	* target.h:
	* top.c:
	* top.h: All of this is mostly housekeeping-type changes
	to support -f(no-)zeros, i.e. not always stuff zero
	values into the initializer fields of symbol/storage objects,
	but still track that they have been given initial values.

	* bad.def: Fix wording for DATA-related diagnostics.

	* com.c (ffecom_sym_transform_assign_): Don't check
	any EQUIVALENCE stuff for local ASSIGN, the check was
	bad (crashing), and it's not necessary, anyway.

	* com.c (ffecom_expr_intrinsic_): For MAX and MIN,
	ignore null arguments as far arg[123], and fix handling
	of ANY arguments.  (New intrinsic support now allows
	spurious trailing null arguments.)

	* com.c (ffecom_init_0): Add HOLLERITH (unsigned)
	equivalents for INTEGER*2, *4, and *8, so shift intrinsics
	and other things that need unsigned versions of signed
	types work.

Sat Mar 16 12:11:40 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* storag.c (ffestorag_exec_layout): Treat adjustable
	local array like dummy -- don't create storage object.
	* com.c (ffecom_sym_transform_): Allow for NULL storage
	object in LOCAL case (adjustable array).

Fri Mar 15 13:09:41 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* com.c (ffecom_sym_transform_): Allow local symbols
	with nonconstant sizes (adjustable local arrays).
	(ffecom_type_localvar_): Allow dimensions with nonconstant
	component (adjustable local arrays).
	* expr.c: Various minor changes to handle adjustable
	local arrays (a new case of stateUNCERTAIN).
	* stu.c (ffestu_sym_end_transition,
	ffestu_sym_exec_transition): Ditto.
	* symbol.def: Update docs to reflect these changes.

	* com.c (ffecom_expr_): Reduce space/time needed for
	opACCTER case by handling it here instead of converting
	it to opARRTER earlier on.
	(ffecom_notify_init_storage): Don't convert ACCTER to ARRTER.
	(ffecom_notify_init_symbol): Ditto.

	* com.c (ffecom_init_0): Crash and burn if any of the types'
	sizes, according to the GBE, disagrees with the sizes of
	the FFE's internal implementation.  This might catch
	Alpha/SGI bugs earlier.

Fri Mar 15 01:09:41 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* com-rt.def, com.c, com.h: Changes for rewrite of intrinsic
	handling.
	* com.c (ffecom_arglist_expr_): New function.
	(ffecom_widest_expr_type_): New function.
	(ffecom_expr_intrinsic_): Reorganize, some rewriting.
	(ffecom_f2c_make_type_): Layout complex types.
	(ffecom_gfrt_args_): New function.
	(ffecom_list_expr): Trivial change for consistency.

	* expr.c (ffeexpr_token_name_rhs_): Go back to getting
	type from specific, not implementation, info.
	(ffeexpr_token_funsubstr_): Set intrinsic implementation too!
	* intrin.c: Major rewrite of most portions.
	* intrin.def: Major rearchitecting of tables.
	* intrin.h (ffeintrin_basictype, ffeintrin_kindtype):
	Now (once again) take ffeintrinSpec as arg, not ffeintrinImp;
	for now, these return NONE, since they're not really needed
	and adding the necessary info to the tables is not trivial.
	(ffeintrin_codegen_imp): New function.
	* stc.c (ffestc_R1208_item): Change way ffeintrin funcs called,
	back to original per above; but comment out the code anyway.

	* intrin.c (ffe_init_0): Do internal checks only if
	-fset-g77-defaults not specified.

	* lang-options.h: Add -fset-g77-defaults option.
	* lang-specs.h: Always pass -fset-g77-defaults.
	* top.c, top.h: New option.

Sat Mar  9 17:49:50 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* Make-lang.in (stmp-int-hdrs): Use --no-validate when
	generating the f77.rebuilt files (BUGS, INSTALL, NEWS)
	so cross-references can work properly in g77.info
	without a lot of hassle.  Users can probably deal with
	the way they end up looking in the f77.rebuilt files.

	* bld.c (ffebld_constant_new_integer4_val): INTEGER*8
	support -- new function.
	(ffebld_constant_new_logical4_val): New function.
	* com.c (ffecom_f2c_longint_type_node): New type.
	(FFECOM_rttypeLONGINT_): New return type code.
	(ffecom_expr_): Add code to invoke pow_qq instead
	of pow_ii for INTEGER4 (INTEGER*8) case.
	If ffecom_expr_power_integer_ returns NULL_TREE, just do
	the usual work.
	(ffecom_make_gfrt_): Handle new type.
	(ffecom_expr_power_integer_): Let caller do the work if in
	dummy-transforming case, since
	caller now knows about INTEGER*8 and such, by returning
	NULL_TREE.
	* expr.c (ffeexpr_reduced_power_): Complain about non-INTEGER
	raised to INTEGER4 (INTEGER*8) power.

	* target.c (ffetarget_power_integerdefault_integerdefault):
	Fix any**negative.
	* com.c (ffecom_expr_power_integer_): Fix (-1)**(-8) and similar
	to ABS() the integral result if the exponent is negative
	and even.

	* ste.c (ffeste_begin_iterdo_): Clean up a type ref.
	Always convert iteration count to _default_ INTEGER.

	* sta.c (ffesta_second_): Add BYTE and WORD type/stmts;
	changes by Scott Snyder <snyder@d0sgif.fnal.gov>.
	* stb.c (ffestb_decl_recursive): Ditto.
	(ffestb_decl_recursive): Ditto.
	(ffestb_decl_entsp_2_): Ditto.
	(ffestb_decl_entsp_3_): Ditto.
	(ffestb_decl_funcname_2_): Ditto.
	(ffestb_decl_R539): Ditto.
	(ffestb_decl_R5395_): Ditto.
	* stc.c (ffestc_establish_declstmt_): Ditto.
	* std.c (ffestd_R539item): Ditto.
	(ffestd_R1219): Ditto.
	* stp.h: Ditto.
	* str-1t.fin: Ditto.
	* str-2t.fin: Ditto.

	* expr.c (ffeexpr_finished_): For DO loops, allow
	any INTEGER type; convert LOGICAL (assuming -fugly)
	to corresponding INTEGER type instead of always default
	INTEGER; let later phases do conversion of DO start,
	end, incr vars for implied-DO; change checks for non-integral
	DO vars to be -Wsurprising warnings.
	* ste.c (ffeste_io_impdo_): Convert start, end, and incr
	to type of DO variable.

	* com.c (ffecom_init_0): Add new types for [IL][234],
	much of which was done by Scott Snyder <snyder@d0sgif.fnal.gov>.
	* target.c: Ditto.
	* target.h: Ditto.

Wed Mar  6 14:08:45 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* top.c (ffe_init_gbe_): Make -frerun-loop-opt the default.

Mon Mar  4 12:27:00 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* expr.c (ffeexpr_exprstack_push_unary_): Really warn only
	about two successive _arithmetic_ operators.

	* stc.c (ffestc_R522item_object): Allow SAVE of (understood)
	local entity.

	* top.c (ffe_decode_option): New -f(no-)second-underscore options.
	* top.h: New options.
	* com.c (ffecom_get_external_identifier_, ffecom_get_identifier_):
	New options.

	* Make-lang.in (f77.maintainer-clean): Clean f/BUGS, f/INSTALL,
	f/NEWS.
	($(srcdir)/f/BUGS, $(srcdir)/f/INSTALL, $(srcdir)/f/NEWS):
	New rules.
	($(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi): Depend on
	f/bugs.texi and f/news.texi.
	(f77.install-man): Install f77 man pages (if enabled).
	(f77.uninstall): Uninstall info docs, f77 man pages (if enabled).

	* top.c (ffe_init_gbe_): New function.
	(ffe_decode_option, ffe_file): Call ffe_init_gbe_ to
	set defaults for gcc options.

Sat Jan 20 13:57:19 1996  Craig Burley  <burley@gnu.ai.mit.edu>

	* com.c (ffecom_get_identifier_): Eliminate needless
	comparison of results of strchr.

Tue Dec 26 11:41:56 1995  Craig Burley  <burley@gnu.ai.mit.edu>

	* Make-lang.in: Add rules for new files g77.texi, g77.info,
	and g77.dvi.
	Reorganize the *clean rules to more closely parallel gcc's.

	* config-lang.in: Exclude g77.info from diffs.

Sun Dec 10 02:29:13 1995  Craig Burley  <burley@gnu.ai.mit.edu>

	* expr.c (ffeexpr_declare_unadorned_,
	ffeexpr_declare_parenthesized_): Break out handling of
	contextDATAIMPDO[INDEX,CTRL] so it's independent of symbol state.
	Don't exec-transition these here (let ffeexpr_sym_impdoitem_
	handle that when appropriate).  Don't "declare" them twice.

Tue Dec  5 06:48:26 1995  Craig Burley  <burley@gnu.ai.mit.edu>

	* stc.c (ffestc_promote_sfdummy_): Allow whereNONE parent
	symbol, since it is not necessarily known whether it will
	become LOCAL or DUMMY.

Mon Dec  4 03:46:55 1995  Craig Burley  <burley@gnu.ai.mit.edu>

	* lex.c (ffelex_display_token, ffelex_type_string_): Resurrect
	these from their old versions and update them for possible invocation
	from debugger.
	* lex.h (ffelex_display_token): Declare this in case anyone
	else wants to call it.

	* lex.c (ffelex_total_tokens_): Have this reflect actual allocated
	tokens, no longer include outstanding "uses" of tokens.

	* malloc.c, malloc.h (MALLOC_DEBUG): New macro to control
	checking of whether callers follow rules, now defaults to 0
	for "no checking" to improve compile times.

	* malloc.c (malloc_pool_kill): Fix bug that could prevent
	subpool from actually being killed (wasn't setting its use
	count to 1).

	* proj.h, *.c (dmpout): Replace all occurrences of `stdout'
	and some of `stderr' with `dmpout', so where to dump debugging
	output can be easily controlled during build; add default
	for `dmpout' of `stderr' to proj.h.

Sun Dec  3 00:56:29 1995  Craig Burley  <burley@gnu.ai.mit.edu>

	* com.c (ffecom_return_expr): Eliminate attempt at warning
	about unset return values, since the back end does this better,
	with better wording, and is not triggered by clearly working
	(but spaghetti) code as easily as this test.

Sat Dec  2 08:28:56 1995  Craig Burley  <burley@gnu.ai.mit.edu>

	* target.c (ffetarget_power_*_integerdefault): Raising 0 to
	integer constant power should not be an error condition;
	if so, other code should catch 0 to any power, etc.

	* bad.def (FFEBAD_BAD_POWER): 0**integer now a warning instead
	of an error.

Fri Dec  1 00:12:03 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* bad.def: Clarify diagnostic regarding complex constant elements.
	* expr.c (ffeexpr_cb_comma_c_): Capitalize real/imaginary
	for clarified diagnostic.

	* com.c (ffecom_close_include_): Close the file!

	* lex.c (ffelex_file_fixed): Update line info if the line
	has any content, not just if it finishes a previous line
	or has a label.
	(ffelex_file_free): Clarify switch statement code.

Sat Nov 18 19:37:22 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.17 released.

Fri Nov 17 14:27:24 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Make-lang.in: Fix typo in comment.

	* Makefile.in (f/fini.o, f/proj-h.o): Don't use `$<' since
	not all makes support it (e.g. NeXT make), use explicit
	source name instead (with $(srcdir) and munging).
	(ASSERT_H): assert.h lives in source dir, not build dir.

Thu Nov 16 12:47:50 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_init_0): Fix dumb bug in code to produce
	warning message about non-32-bit-systems.

	* stc.c (ffestc_R501_item): Parenthesize test to make
	warning go away (and perhaps fix bug).

Thu Nov 16 03:43:33 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* g77.c: Upgrade to 2.7.0's gcc.c.
	Fix -v to pass a temp name instead of "/dev/null" for "-o".

Fri Nov 10 19:16:05 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* ste.c (ffeste_begin_iterdo_): Add Toon's change to
	make loops faster on some machines (implement termination
	condition as "--i >= 0" instead of "i-- > 0").

Thu Nov  2 03:58:17 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Make-lang.in: Remove unnecessary $(exeext) a la cp/Make-lang.in.

	* com.c (ffecom_expr_): Restore old strategy for assignp variant
	of opSYMTER case...always return the ASSIGN version of var.
	That way, `-O -Wuninitialized' will catch "I=3;GOTO I;END"
	(though the diagnostic will refer to `__g77_ASSIGN_i').

	* com.c (ffecom_expr_power_integer_): For constant rhs case,
	wrap every new eval of lhs in save_expr() so it is clear to
	back end that MULT_EXPR(lhs,lhs) has identical operands,
	otherwise for an rhs like 32767 it generates around 65K pseudo
	registers, which which stupid_life_analysis cannot cope
	(due to reg_renumber in regs.h being `short *' instead of
	`int *').

	* com.c (ffecom_expr_): Speed up implementation of LOGICAL
	versions of opNOT, opAND, opOR, opXOR/opNEQV, and opEQV by
	assuming the values actually are kosher LOGICAL bit patterns.
	Also simplify code that implements some of the INTEGER versions
	of these.

	* com.c (skip_redundant_dir_prefix, read_name_map,
	ffecom_open_include_, signed_type, unsigned_type): Fold in
	changes to cccp.c made from 2.7.0 through ss-950826.

	* equiv.c (ffeequiv_layout_local_): Kill the equiv list
	if no syms in list.

	* expr.c (ffeexpr_reduced_eqop2_): Issue specific diagnostic
	regarding usage of .EQV./.NEQV. in preference to .EQ./.NE..

	* intrin.c: Add ERF and ERFC as generic intrinsics.
	intrin.def: Same.

	* sta.c (ffesta_save_, ffesta_second_): Whoever calls
	ffestd_exec_begin must also set ffesta_seen_first_exec = TRUE,
	and anytime stc sees an exec transition, it must do both.
	stc.c (ffestc_eof): Same.

	* stc.c (ffestc_promote_sfdummy_): If failed implicit typing
	or CHARACTER*(*) arg, after calling ffesymbol_error, don't
	reset info to ENTITY/DUMMY, because ffecom_sym_transform_
	doesn't expect such a thing with ANY/ANY type.

	* target.h (*logical*): Change some of these so they parallel
	changes in com.c, e.g. for _eqv_, use (l)==(r) instead of
	!!(l)==!!(r), to get a more faithful result.

Fri Oct 27 07:06:59 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_sym_transform_): Simplify code for local
	EQUIVALENCE case.

	* expr.c (ffeexpr_exprstack_push_unary_): Warn about two
	successive operators.
	(ffeexpr_exprstack_push_binary_): Warn about "surprising"
	operator precedence, as in "-2**2".

	* lang-options.h: Add -W(no-)surprising options.

	* parse.c (yyparse): Don't reset -fpedantic if not -pedantic.

	* top.c (ffe_decode_option): Support new -Wsurprising option.
	* top.h: Ditto.

Mon Oct 23 09:14:15 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_finish_symbol_transform_): Don't transform
	NONE/NONE (CHARACTER*(*)) vars, as these don't mean anything
	in debugging terms, and can't be turned into anything
	in the back end (so ffecom_sym_transform_ crashes on them).

	* com.c (ffecom_expr_): Change strategy for assignp variant
	of opSYMTER case...always return the original var unless
	it is not wide enough.

	* ste.c (ffeste_io_cilist_): Clarify diagnostic for ASSIGN
	involving too-narrow variable.  This shouldn't happen, though.
	(ffeste_io_icilist_): Ditto.
	(ffeste_R838): Ditto.
	(ffeste_R839): Ditto.

Thu Oct 19 03:21:20 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_sym_transform_assign_): Set TREE_STATIC
	using the same decision-making process as used for their twin
	variables, so ASSIGN can last across RETURN/CALL as appropriate.

Fri Sep 22 20:21:18 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Makefile.in: fini is a host program, so it needs a host-compiled
	version of proj.o, named proj-h.o.  f/fini, f/fini.o, and
	f/proj-h.o targets updated accordingly.

	* com.c (__eprintf): New function.

Wed Sep 20 02:26:36 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* lang-options.h: Add omitted -funix-intrinsics-* options.

	* malloc.c (malloc_find_inpool_): Check for infinite
	loop, crash if detected (user reports encountering
	them in some large programs, this might help track
	down the bugs).

Thu Sep  7 13:00:32 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (lang_print_error_function): Don't dereference null
	pointer when outside any program unit.
	(ffecom_let_char_, ffecom_arg_ptr_to_expr): If catlist
	item or length ever error_mark_node, don't continue processing,
	since back-end functions like build_pointer_type crash on
	error_mark_node's (due to pushing bad obstacks, etc.).

Wed Aug 30 15:58:35 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.16 released.

Mon Aug 28 12:24:20 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* bad.c (ffebad_finish): Fix botched message when no places
	are printed (due to unknown line info, etc.).

	* std.c (ffestd_subr_labels_): Do a better job finding
	line info in the case of typeANY and diagnostics.

Fri Aug 25 15:19:29 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (DECL_ARTIFICIAL): Surround all references to this
	macro with #if !BUILT_FOR_270 and #endif.
	(init_lex): Surround print_error_function decl with
	#if !BUILT_FOR_270 and #endif.
	(lang_init): Call new ffelex_hash_kludge function to solve
	problem with preprocessed files that have INCLUDE statements.

	* lex.c (ffelex_getc_): New function.
	(ffelex_cfelex_): Use ffelex_getc_ instead of getc in any
	paths of code that can be affected by ffelex_hash_kludge.
	Don't make an EOF token for unrecognized token; set token
	to NULL instead, to avoid problems when not initialized.
	(ffelex_hash_): Use ffelex_getc_ instead of getc in any
	paths of code that can be affected by ffelex_hash_kludge.
	Test token returned by ffelex_cfelex_ for NULL, meaning
	unrecognized token.
	Get rid of useless used_up variable.
	Don't do ffewhere stuff or kill any tokens if in
	ffelex_hash_kludge.
	(ffelex_file_fixed, ffelex_file_free): Use ffelex_getc_
	instead of getc in any paths of code that can be affected
	by ffelex_hash_kludge.
	(ffelex_hash_kludge): New function.

	* lex.h (ffelex_hash_kludge): New function.

Wed Aug 23 15:17:40 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c: Implement -f(no-)underscoring options by always
	compiling in code to do it, and having that code inhibit
	itself when -fno-underscoring is in effect.  This option
	overrides -f(no-)f2c for this purpose; -f(no-)f2c returns
	to it's <=0.5.15 behavior of affecting only how code
	is generated, not how/whether names are mangled.

	* target.h: Redo specification of appending underscores so
	the macros are named "_default" instead of "_is" and the
	two-underscore macro defaults to 1.

	* top.c, top.h (underscoring): Add appropriate stuff
	for the -f(no-)underscoring options.

Tue Aug 22 10:25:01 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* bad.c (ffebad_finish): Call report_error_function (in toplev.c)
	to better identify location of problem.
	Say "(continued):" instead of "(continued:)" for consistency.

	* com.c (ffecom_gen_sfuncdef_): Set and reset new
	ffecom_nested_entry_ variable to hold ffesymbol being compiled.
	(lang_print_error_function): New function from toplev.c.
	Use ffecom_nested_entry_ to help determine which name
	and kind-string to print.
	(ffecom_expr_intrinsic_): Handle EXIT and FLUSH invocations
	with different calling sequences than library functions.
	Have SIGNAL and SYSTEM push and pop calltemps, and convert
	their return values to the destination type (just in case).
	(FFECOM_rttypeINT_): New return type for `int', in case
	gcc/f/runtime/libF77/system_.c(system_) is really supposed
	to return `int' instead of `ftnint'.

	* com.h (report_error_function): Declare this.

	* equiv.c (ffeequiv_layout_local_): Don't forget to consider
	root variable itself as possible "first rooted variable",
	else might never set symbol and then crash later.

	* intrin.c (ffeintrin_check_exit_): Change to allow no args
	and rename to ffeintrin_check_int_1_o_ for `optional'.
	#define ffeintrin_check_exit_ and _flush_ to this new
	function, so intrin.def can refer to the appropriate names.

	* intrin.def (FFEINTRIN_impFLUSH): Validate using
	ffeintrin_check_flush_ so passing an INTEGER arg is allowed.

	* lex.c (ffelex_file_push_, ffelex_file_pop_): New functions
	to manage input_file_stack in gbe.
	(ffelex_hash_): Call new functions (instead of doing code).
	(ffelex_include_): Call new functions to update stack for
	INCLUDE (_hash_ handles cpp output of #include).

Mon Aug 21 08:09:04 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Makefile.in: Put `-W' in front of every `-Wall', since
	2.7.0 requires that to engage `-Wunused' for parameters.

	* com.c: Mark all parameters as artificial, so
	`-W -Wunused' doesn't complain about unused ones (since
	there's no way right not to individually specify attributes
	like `unused').

	* proj.h: Don't #define UNUSED if already defined, regardless
	of host compiler.

Sun Aug 20 16:03:56 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* gbe/2.7.0.diff: Regenerate.

	* lang-options.h, lang-specs.h: If not __STDC__ (ANSI C),
	avoid doing anything, especially the stringizing in -specs.h.

Thu Aug 17 03:36:12 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* lang-specs.h: Remove useless optional settings of -traditional,
	since -traditional is always set anyway.

Wed Aug 16 16:56:46 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Make-lang.in (F2C_INSTALL_FLAG, F2CLIBOK): More
	control over whether to install f2c-related stuff.
	(install-f2c-*): New targets to install f2c-related
	stuff in system, not just gcc, directories.

	* com.c: Change calls to ffecom_get_invented_identifier
	to use generally more predictable names.
	Change calls to build_range_type to ensure consistency
	of types of operands.
	(ffecom_get_external_identifier_): Change to accept
	symbol info, not just text, so it can use f2c flag for
	symbol to decide whether to append underscore(s).
	(ffecom_get_identifier_): Don't change names if f2c flag
	off for compilation.
	(ffecom_type_permanent_copy_): Use same type for new max as
	used for min.
	(ffecom_notify_init_storage): Offline fixups for stand-alone.

	* data.c (ffedata_gather): Explicitly test for common block,
	since it's no longer always the case that a local EQUIVALENCE
	group has no symbol ptr (it now can, if a user-predictable
	"rooted" symbol has been identified).

	* equiv.c: Add some debugging stuff.
	(ffeequiv_layout_local_): Set symbol ptr with user-predictable
	"rooted" symbol, for giving the invented aggregate a
	predictable name.

	* g77.c (append_arg): Allow for 20 extra args instead of 10.
	(main): For version-only case, add `-fnull-version' and, unless
	explicitly omitted, `-lf2c -lm'.

	* lang-options.h: New "-fnull-version" option.

	* lang-specs.h: Support ".fpp" suffix for preprocessed source
	(useful for OS/2, MS-DOS, other case-insensitive systems).

	* stc.c (ffestc_R544_equiv_): Swap way lists are merged so this
	is consistent with the order in which lists are built, making
	user predictability of invented aggregate name much higher.

	* storag.c, storag.h (FFESTORAG_typeDUMMY): Delete this enum.

	* top.c: Accept, but otherwise ignore, `-fnull-version'.

Tue Aug 15 07:01:07 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* DOC, INSTALL, PROJECTS: Extensive improvements to documentation.

Sun Aug 13 01:55:18 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* INSTALL (f77-install-ok): Document the use of this file.

	* Make-lang.in (F77_INSTALL_FLAG): New flag to control
	whether to install an `f77' command (based on whether
	a file named `f77-install-ok' exists in the source or
	build directory) to replace the broken attempt to use
	comment lines to avoid installing `f77' (broken in the
	sense that it prevented installation of `g77').

Mon Aug  7 06:14:26 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* DOC: Add new sections for g77 & gcc compiler options,
	source code form, and types, sizes and precisions.
	Remove lots of old "delta-version" info, or at least
	summarize it.

	* INSTALL: Add info here that used to be in DOC.
	Other changes.

	* g77.c (lookup_option, main): Check for --print-* options,
	so we avoid adding version-determining stuff.

Wed Jul 26 15:51:03 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Make-lang.in, Makefile.in (input.j, INPUT_H): New file.
	Update dependencies accordingly.

	* bad.c (ffebad_here): Okay to use unknown line/col.

	* compilers.h (@f77-cpp-input): Remove -P option now that
	# directives are handled by f771.  Update other options
	to be more consistent with @c in gcc/gcc.c.  Don't run f771
	if -E specified, etc., a la @c.
	(@f77): Don't run f771 if -E specified, etc., a la @c.

	* config-lang.in: Avoid use of word "guaranteed".

	* input.j: New file to wrap around gcc/input.h.

	* lex.j: Add support for parsing # directives output by cpp.
	(ffelex_cfebackslash_): New function.
	(ffelex_cfelex_): New function.
	(ffelex_get_directive_line_): New function.
	(ffelex_hash_): New function.
	(ffelex_include_): Change to not use ffewhere_file_(begin|end).
	Also fix bug in pointing to next line (for diagnostics, &c)
	following successful INCLUDE.
	(ffelex_next_line_): New function that does chunk of code
	seen in several places elsewhere in the lexers.
	(ffelex_file_fixed): Delay finishing statement until source
	line is registered with ffewhere, so INCLUDE processing
	picks up the info correctly.
	Okay to kill or use unknown line/col objects now.
	Handle HASH (#) lines.
	Reorder tests for insubstantial lines to put most frequent
	occurrences at top, for possible minor speedup.
	Some general consolidation of code.
	(ffelex_file_free): Handle HASH (#) lines.
	Okay to kill or use unknown line/col objects now.
	Some general consolidation of code.
	(ffelex_init_1): Detect HASH (#) lines.
	(ffelex_set_expecting_hollerith): Okay to kill or use unknown
	line/col objects now.

	* lex.h (FFELEX_typeHASH): New enum.

	* options-lang.h (-fident, -fno-ident): New options.

	* stw.c (ffestw_update): Okay to kill unknown line/col objects
	now.

	* target.h (FFETARGET_okREALQUAD, FFETARGET_okCOMPLEXDOUBLE,
	FFETARGET_okCOMPLEXQUAD): #define these appropriately.

	* top.c: Include flag.j wrapper, not flags.h directly.
	(ffe_is_ident_): New flag.
	(ffe_decode_option): Handle -fident and -fno-ident.
	(ffe_file): Replace obsolete ffewhere_file_(begin|end) with
	ffewhere_file_set.

	* top.h (ffe_is_ident_, ffe_is_ident, ffe_set_is_ident):
	New flag and access functions.

	* where.c, where.h: Remove all tracking of parent file.
	(ffewhere_file_begin, ffewhere_file_end): Delete these.
	(ffewhere_line_use): Make it work with unknown line object.

Mon Jul 17 03:04:09 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_sym_transform_): Set DECL_IN_SYSTEM_HEADER
	flag for any local vars used as stmtfunc dummies or DATA
	implied-DO iter vars, so no -Wunused warnings are produced
	for them (a la f2c).
	(ffecom_init_0): Do "extern int xargc;" for IARGC() intrinsic.
	Warn if target machine not 32 bits, since g77 isn't yet
	working on them at all well.

	* expr.c (ffeexpr_sym_lhs_call_, ffeexpr_sym_lhs_data_,
	ffeexpr_sym_lhs_extfunc_, ffeexpr_sym_rhs_actualarg_,
	ffeexpr_sym_rhs_let_, ffeexpr_paren_rhs_let_): Don't
	gratuitously set attr bits that don't apply just
	to avoid null set meaning error; instead, use explicit
	error flag, and allow null attr set, to
	fix certain bugs discovered by looking at this code.

	* g77.c: Major changes to improve support for gcc long options,
	to make `g77 -v' report more useful info, and so on.

Mon Jul  3 14:49:16 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* DOC, com.c, intrin.h, intrin.c, intrin.def, target.h, top.c,
	top.h: Add new `unix' group of intrinsics, which includes the
	newly added ERF, ERFC, EXIT, plus even newer ABORT, DERF, DERFC,
	FLUSH, GETARG, GETENV, SIGNAL, and SYSTEM.

Tue Jun 27 23:01:05 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* bld.c, bld.h (ffebld_constant_pool,
	ffebld_constant_character_pool): Use a single macro (the
	former) to access the pool for allocating constants, instead
	of latter in public and FFEBLD_CONSTANT_POOL_ internally
	in bld.c (which was the only one that was correct before
	these changes).  Add verification of integrity of certain
	heap-allocated areas.

	* com.c (ffecom_overlap_, ffecom_args_overlap_,
	ffecom_tree_canonize_ptr_, ffecom_tree_canonize_ref_): New
	functions to optimize calling COMPLEX and, someday, CHARACTER
	functions requiring additional argument to be passed.
	(ffecom_call_, ffecom_call_binop_, ffecom_expr_,
	ffecom_expr_intrinsic_): Change calling
	sequences to include more info on possible destination.
	(ffecom_expr_intrinsic_): Add ERF(), ERFC(), and EXIT()
	intrinsic code.
	(ffecom_sym_transform_): For assumed-size arrays, set high
	bound to highest possible value instead of low bound, to
	improve validity of overlap checking.
	(duplicate_decls): If olddecl and newdecl are the same,
	don't do any munging, just return affirmative.

	* expr.c: Change ffecom_constant_character_pool() to
	ffecom_constant_pool().

	* info.c (ffeinfo_new): Compile this version if not being
	compiled by GNU C.

	* info.h (ffeinfo_new): Don't define macro if not being
	compiled by GNU C.

	* intrin.c, intrin.def: Add ERF(), ERFC(), and EXIT() intrinsics.
	(ffeintrin_check_exit_): New for EXIT() subroutine intrinsic.

	* malloc.c, malloc.h (malloc_verify_*): New functions to verify
	integrity of heap-storage areas.

	* stc.c (ffestc_R834, ffestc_R835): Handle possibility that
	an enclosing DO won't have a construct name even when the
	CYCLE/EXIT does (i.e. without dereferencing NULL).

	* target.c, target.h (ffetarget_verify_character1): New function
	to verify integrity of heap storage used to hold character constant.

Thu Jun 22 15:36:39 1995  Howard Gordon  (flash@super.org)

	* stp.h (ffestpVxtcodeIx): Fix typo in typedef for this.

Mon May 29 15:22:31 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* *: Make all sorts of changes to accommodate upcoming gcc-2.7.0.
	I didn't keep track of them, nor just when I made them, nor
	when I (much later, probably in early August 1995) modified
	them so they could properly handle both 2.7.0 and 2.6.x.

	* com.c (ffecom_expr_power_integer_): Don't expand_start_stmt_expr
	if transforming dummy args, because the back end cannot handle
	that (it's rejected by the gcc front end), just generate
	call to run-time library.
	Back out changes in 0.5.15 because more temporaries might be
	needed anyway (for COMPLEX**INTEGER).
	(ffecom_push_tempvar): Remove inhibitor.
	Around start_decl and finish_decl (in particular, arround
	expand_decl, which is called by them), push NULL_TREE into
	sequence_rtl_expr, an external published by gcc/function.c.
	This makes sure the temporary is truly in the function's
	context, not the inner context of a statement-valued expression.
	(I think the back end is inconsistent here, but am not
	interested in convincing the gbe maintainers about this now.)
	(pushdecl): Make sure that when pushing PARM_DECLs, nothing
	other than them are pushed, as happened for 0.5.15 and which,
	if done for other reasons not fixed here, might well indicate
	some other problem -- so crash if it happens.

	* equiv.c (ffeequiv_layout_local_): If the local equiv group
	has a non-nil COMMON field, it should mean that an error has
	occurred and been reported, so just trash the local equiv
	group and do nothing.

	* stc.c (ffestc_promote_sfdummy_): Set sfdummy arg state to
	UNDERSTOOD so above checking for duplicate args actually
	works, and so we don't crash later in pushdecl.

	* ste.c (ffeste_R1001): Set initial value only for VAR_DECLs,
	not for, e.g., LABEL_DECLs, which the FORMAT label can be
	if it was previously treated as an executable label.

Sat May 20 01:53:53 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_sym_transform_): For adjustable arrays,
	pass high bound through variable_size in case its primaries
	are changed (dumb0.f, and this might also improve
	performance so it approaches f2c|gcc).

Fri May 19 11:00:36 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.15 released.

	* com.c (ffecom_expr_power_integer_): Push temp vars
	before expanding a statement expression, since that seems
	to cause temp vars to be "forgotten" after the end of the
	expansion in the back end.  Disallow more temp-var
	pushing during such an expansion, just in case.
	(ffecom_push_tempvar): Crash if a new variable needs to be
	pushed but cannot be at this point (should never happen).

Wed May 17 12:26:16 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* expr.c (ffeexpr_collapse_convert): Add code to convert
	LOGICAL to CHARACTER.  Reject conversion of REAL or COMPLEX
	to CHARACTER entirely, as it cannot be supported with all
	configurations.

	* target.h, target.c (ffetarget_convert_character1_logical1):
	New function.

Sun May 14 00:00:09 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_do_entry_, ffecom_gen_sfuncdef_,
	ffecom_start_progunit_, ffecom_sym_transform_,
	ffecom_init_0, start_function): Changes to have REAL
	external functions return same type as DOUBLE PRECISION
	external functions when -ff2c is in force; while at it,
	some code cleanups done.

	* stc.c (ffestc_R547_item_object): Disallow array declarator
	if one already exists for symbol.

	* ste.c (ffeste_R1227): Convert result variable to type
	of function result as seen by back end (e.g. for when REAL
	external function actually returns result as double).

	* target.h (FFETARGET_defaultFIXED_LINE_LENGTH): New
	macro for default for -ffixed-line-length-N option.

	* top.c (ffe_fixed_line_length_): Initialize this to new
	target.h macro instead of constant 72.

Tue May  9 01:20:03 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* lex.c (ffelex_send_token_): If sending CHARACTER token with
	null text field, put a single '\0' in it and set length/size
	fields to 0 (to fix 950508-0.f).
	(ffelex_image_char_): When setting ffelex_bad_line_ to TRUE,
	always "close" card image by appending a null char and setting
	ffelex_card_length_.  As part of this, append useful text
	to identify the two kinds of problems that involve this.
	(ffelex_file_fixed): Reset ffelex_bad_line_ to FALSE after
	seeing a line with invalid first character (fixes 950508-1.f).
	If final nontab column is zero, assume tab seen in line.
	(ffelex_card_image_): Always make this array 8 characters
	longer than reflected by ffelex_card_size_.
	(ffelex_init_1): Get final nontab column info from top instead
	of assuming 72.

	* options-lang.h: Add -ffixed-line-length- prefix.

	* top.h: Add ffe_fixed_line_length() and _set_ version, plus
	corresponding extern.

	* top.c: Handle -ffixed-line-length- option prefix.

Fri Apr 28 05:40:25 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.14 released.

	* Make-lang.in: Add assert.j.

	* Makefile.in: Add assert.j.

	* assert.j: New file.

Thu Apr 27 16:24:22 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* bad.h (ffebad_severity): New function.

	* bad.c (ffebad_severity): New function.

	* bad.def (FFEBAD_OPEN_INCLUDE): Change severity from SEVERE
	to FATAL, since processing continues, and that seems fine.

	* com.c: Add facility to handle -I.
	(ffecom_file, ffecom_close_include, ffecom_open_include,
	ffecom_decode_include_option): New global functions for -I.
	(ffecom_file_, ffecom_initialize_char_syntax_,
	ffecom_close_include_, ffecom_decode_include_option_,
	ffecom_open_include_, append_include_chain, open_include_file,
	print_containing_files, read_filename_string, file_name_map,
	savestring): New internal functions for -I.

	* compilers.h: Pass -I flag(s) to f771 (via "%{I*}").

	* lex.c (ffelex_include_): Call ffecom_close_include
	to close include file, for its tracking needs for -I,
	instead of using fclose.

	* options-lang.h: Add -I prefix.

	* parse.c (yyparse): Call ffecom_file for main input file,
	so -I handling works (diagnostics).

	* std.c (ffestd_S3P4): Have ffecom_open_include handle
	opening and diagnosing errors with INCLUDE files.

	* ste.c (ffeste_begin_iterdo_): Use correct algorithm for
	calculating # of iterations -- mathematically similar but
	computationally different algorithm was not handling cases
	like "DO I=6,5,2" correctly, because (5-6)/2+1 => 1, not 0.

	* top.c (ffe_decode_option): Allow -I, restructure a bit
	for clarity and, maybe, speed.

Mon Apr 17 13:31:11 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* g77.c: Remove -lc, turns out not all systems has it, but
	leave other changes in for clarity of code.

Sun Apr 16 21:50:33 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_expr_): Implement ARRAY_EXPR as INDIRECT_REF
	of appropriate PLUS_EXPRs of ptr_to_expr of array, to see
	if this generates better code.  (Conditional on
	FFECOM_FASTER_ARRAY_REFS.)

Sun Apr 16 00:22:48 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Make-lang.in (F77_SRCS): Remove g77.c, since it doesn't
	contribute to building f771.

	* Makefile.in (dircheck): Remove/replace with f/Makefile, because
	phony targets that are referenced in other real targets get run
	when those targets are specified, which is a waste of time (e.g.
	when rebuilding and only g77.c has changed, f771 was being linked
	anyway).

	* g77.c: Include -lc between -lf2c and -lm throughout.

	* implic.c (ffeimplic_establish_symbol): If -Wimplicit, warn if
	implicit type given to symbol.

	* lex.c (ffelex_include_): Don't gratuitously increment line
	number here.

	* top.h, top.c (ffe_is_warn_implicit_): New global variable and
	related access macros.
	(ffe_decode_option): Handle -W options, including -Wall and
	-Wimplicit.

	* where.c (ffewhere_line_new): Don't muck with root line (was
	crashing on null input since lexer changes over the past week
	or so).

Thu Apr 13 16:48:30 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_init_0): Register built-in functions for cos,
	sin, and sqrt.
	(ffecom_tree_fun_type_double): New variable.
	(ffecom_expr_intrinsic_): Update f2c input and output files
	to latest version of f2c (no important g77-related changes
	noted, just bug fixes to f2c and such).
	(builtin_function): New function from c-decl.c.

	* com-rt.def: Refer to built-in functions for cos, sin, and sqrt.

Thu Apr 13 10:25:09 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_expr_intrinsic_): Convert 0. to appropriate
	type to keep DCMPLX(I) from crashing the compiler.
	(ffecom_expr_): Don't convert result from ffecom_tree_divide_.
	(ffecom_tree_divide_): Add tree_type argument, have all callers
	pass one, and don't convert right-hand operand to it (this is
	to make this new function work as much like the old in-line
	code used in ffecom_expr_ as possible).

	* lex.c: Maintain lineno and input_filename the way the gcc
	lexer does.

	* std.c (ffestd_exec_end): Save and restore lineno and
	input_filename around the second pass, which sets them
	appropriately for each saved statement.

Wed Apr 12 09:44:45 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_expr_power_integer_): New function.
	(ffecom_expr_): Call new function for power op with integer second
	argument, for generating better code.  Also replace divide
	code with call to new ffecom_tree_divide_ function.
	Canonicalize calls to ffecom_truth_value(_invert).
	(ffecom_tree_divide_): New function.

Wed Apr  5 14:15:44 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* lex.c: Change to allocate text for tokens only when actually
	needed, which should speed compilation up somewhat.
	Change to allow INCLUDE at any point where a statement
	can end, i.e. in ffelex_finish_statement_ or when a SEMICOLON
	token is sent.
	Remove some old, obsolete code.
	Clean up layout of entire file to improve formatting,
	readability, etc.
	(ffelex_set_expecting_hollerith): Remove include argument.

Fri Mar 31 23:19:08 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* bad.h, bad.c (ffebad_start_msg, ffebad_start_msg_lex):
	New functions to generate arbitrary messages.
	(FFEBAD_severityPEDANTIC): New severity, to correspond
	to toplev's pedwarn() function.

	* lex.c (ffelex_backslash_): New function to implement
	backslash processing.
	(ffelex_file_fixed, ffelex_file_free): Implement new
	backslash processing.

	* std.c (ffestd_R1001dump_): Don't assume CHARACTER and
	HOLLERITH tokens stop at '\0' characters, now that backslash
	processing is supported -- use their advertised lengths instead,
	and double up the '\002' character for libf2c.

Mon Mar 27 17:10:33 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_init_local_zero_): Implement -finit-local-zero.
	(ffecom_sym_transform_): Same.
	(ffecom_transform_equiv_): Same.

	* options-lang.h: Add -f(no-)(init-local-zero,backslash,ugly-init).

	* stb.c (ffestb_V020): Reject "TYPEblah(...", which might be
	an array assignment.

	* target.h, top.h, top.c: Implement -finit-local-zero.

Fri Mar 24 19:56:22 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Make-lang.in, Makefile.in: Remove conf-proj(.in) and
	proj.h(.in) rules, plus related config.log, config.cache,
	and config.status stuff.

	* com.c (ffecom_init_0): Change messages when atof(), bsearch(),
	or strtoul() do not work as expected in the start-up test.

	* conf-proj, conf-proj.in: Delete.

	* lex.c (ffelex_file_fixed): Allow f2c's '&' in column 1
	to mean continuation line.

	* options-lang.h: New file, #include'd by ../toplev.c.

	* proj.h.in: Rename back to proj.h.

	* proj.h (LAME_ASSERT): Remove.
	(LAME_STDIO): Remove.
	(NO_STDDEF): Remove.
	(NO_STDLIB): Remove.
	(NO_BSEARCH): Remove auto detection, rename to !FFEPROJ_BSEARCH.
	(NO_STRTOUL): Remove auto detection, rename to !FFEPROJ_STRTOUL.
	(USE_HOST_LIMITS): Remove (maybe still needed by stand-alone?).
	(STR, STRX): Do only ANSI C definitions.

Mon Mar 13 10:46:13 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* BUGS: Add item about g77 requiring gcc to compile it.

	* NEWS: New file listing user-visible changes in the release.

	* PROJECTS: Update to include a new item or two, and modify
	or delete items that are addressed in this or previous releases.

	* bad.c (ffebad_finish): Don't crash if missing string &c,
	just substitute obviously distressed string "[REPORT BUG!!]"
	for cases where the message/caller are fudgy.

	* bad.def: Clean up error messages in a major way, add new ones
	for use by changes in target.c.

	* com.c (ffecom_expr_): Handle opANY in opCONVERT.
	(ffecom_let_char_): Disregard destinations with ERROR_MARK.
	(ffecom_1, ffecom_1_fn, ffecom_2, ffecom_2s, ffecom_3,
	ffecom_3s, &c): Check all inputs for error_mark_node.
	(ffecom_start_progunit_): Don't transform all symbols
	in BLOCK DATA, since it never executes, and it is silly
	to, e.g., generate all the structures for NAMELIST.
	(ffecom_char_length_expr_): Rename to ffecom_intrinsic_len_.
	(ffecom_intrinsic_ichar_): New function to handle ICHAR of
	arbitrary expression with possible 0-length operands.
	(ffecom_expr_intrinsic_): Use ffecom_intrinsic_char_.
	For MVBITS, set tree_type to void_type_node.
	(ffecom_start_progunit_): Name master function for entry points
	after primary entry point so users can easily guess it while
	debugging.
	(ffecom_arg_ptr_to_expr): Change treatment of Hollerith,
	Typeless, and %DESCR.
	(ffecom_expr_): Change treatment of Hollerith.

	* data.c (ffedata_gather_): Handle opANY in opCONVERT.

	* expr.c (ffeexpr_token_apostrophe_): Issue FFEBAD_NULL_CHAR_CONST
	warning as necessary.
	(ffeexpr_token_name_rhs_): Set context for args to intrinsic
	so that assignment-like concatenation is allowed for ICHAR(),
	IACHAR(), and LEN() intrinsics.
	(ffeexpr_reduced_*_): Say "an array" instead of "an entity" in
	diagnostics, since it's more informative.
	(ffeexpr_finished_): For many contexts, check for null expression
	and array before trying to do a conversion, to avoid redundant
	diagnostics.

	* g77.1: Fix typo for preprocessed suffix (.F, not .f).

	* global.c (ffeglobal_init_common): Warn if initializing
	blank common.
	(ffeglobal_pad_common): Enable code to warn if initial
	padding needed.
	(ffeglobal_size_common): Complain if enlarging already-
	initialized common, since it won't work right anyway.

	* intrin.c: Add IMAG() intrinsic.
	(ffeintrin_check_loc_): Allow opSUBSTR in LOC().

	* intrin.def: Add IMAG() intrinsic.

	* lex.c: Don't report FFEBAD_NULL_CHAR_CONST errors.

	* sta.c, sta.h, stb.c: Changes to clean up error messages (see
	bad.def).

	* stb.c (ffestb_R100113_): Issue FFEBAD_NULL_CHAR_CONST
	warning as necessary.

	* stc.c (ffestc_shriek_do_): Don't try to reference doref_line
	stuff in ANY case, since it won't be valid.
	(ffestc_R1227): Allow RETURN in main program unit, with
	appropriate warnings/errors.
	(ffestc_subr_format_): Array of any type is a CHAREXPR (F77 C5).

	* ste.c (ffeste_begin_doiter_): Couple of fixes to accurately
	determine if loop never executes.

	* target.c (ffetarget_convert_*_hollerith_): Append spaces,
	not zeros, to follow F77 Appendix C, and to warn when
	truncation of non-blanks done.
	(ffetarget_convert_*_typeless): Rewrite to do typeless
	conversions properly, and warn when truncation done.
	(ffetarget_print_binary, ffetarget_print_octal,
	ffetarget_print_hex): Rewrite to use new implementation of
	typeless.
	(ffetarget_typeless_*): Rewrite to use new implementation
	of typeless, and to warn about overflow.

	* target.h (ffetargetTypeless): New implementation of
	this type.

	* type.h, type.c (ffetype_size_typeless): Remove (incorrect)
	implementation of this function and its extern.

Sun Mar  5 18:46:42 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* BUGS: Clarify that constant handling would also fix lack of
	adequate IEEE-754/854 support to some degree, and typeless
	and non-decimal constants.

	* com.c (ffecom_type_permanent_copy_): Comment out to avoid
	warnings.
	(duplicate_decls): New function a la gcc/c-decl.c.
	(pushdecl): Use duplicate_decls to decide whether to return
	existing decl or new one, instead of always returning existing
	decl.
	(ffecom_expr_): opPERCENT_LOC now supports CHARACTER arguments.
	(ffecom_init_0): Give f2c I/O code 0 for basictypeANY/kindtypeANY.
	(ffecom_sym_transform_): For adjustable arrays, pass low bound
	through variable_size in case its primaries are changed (950302-1.f).

	* com.h: More decls that belong in tree.h &c.

	* data.c (ffedata_eval_integer1_): Fix opPAREN case to not
	treat value of expression as an error code.

	* expr.c (ffeexpr_finished_): Allow opSUBSTR in contextLOC case.

	* proj.c: Add "const" as appropriate.

Mon Feb 27 10:04:03 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* bad.def (FFEBAD_BAD_SUBSTR): Fix bad grammar in message.

Fri Feb 24 16:21:31 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.13 released.

	* INSTALL: Warn that f/zzz.o will compare differently between
	stages, since it puts the __TIME__ macro into a string.

	* com.c (ffecom_sym_transform_): Transform kindFUNCTION/whereDUMMY
	to pointer-to-function, not function.
	(ffecom_expr_): Use ffecom_arg_ptr_to_expr instead of
	ffecom_char_args_ to handle comparison between CHARACTER
	types, so either operand can be a CONCATENATE.
	(ffecom_transform_common_): Set size of initialized common area
	to global (largest-known) size, even though size of init might
	be smaller.

	* equiv.c (ffeequiv_offset_): Check symbol info for ANY.

	* expr.c (ffeexpr_find_close_paren_, ffeexpr_nil_*): New functions
	to handle following the contour of a rejected expression, so
	statements like "PRINT(I,I,I)=0" don't cause the PRINT statement
	code to get the second passed back to it as if there was a
	missing close-paren before it, the comma causing the PRINT code
	to confirm the statement, resulting in an ambiguity vis-a-vis
	the let statement code.
	Use the new ffecom_find_close_paren_ handler when an expected
	close-paren is missing.
	(ffeexpr_isdigits_): New function, use in all places that
	currently use isdigit in repetitive code.
	(ffeexpr_collapse_symter): Collapse to ANY if init-expr is ANY,
	so as to avoid having symbol get "transformed" if used to
	dimension an array.
	(ffeexpr_token_real_, ffeexpr_token_number_real_): Don't issue
	diagnostic about exponent, since it'll be passed along the
	handler path, resulting in a diagnostic anyway.
	(ffeexpr_token_apos_char_): Use consistent handler path
	regardless of whether diagnostics inhibited.
	(ffeexpr_token_name_apos_name_): Skip past closing quote/apos
	even if not a match or other diagnostic issued.
	(ffeexpr_sym_impdoitem_): Exec-transition local SEEN symbol.

	* lex.c (ffelex_image_char_): Set ffelex_saw_tab_ if TAB
	seen, not if anything other than TAB seen!

	* stc.c (ffestc_R537_item): If source is ANY but dest isn't,
	set dest symbol's init expr to ANY.
	(ffestc_R501_attrib, ffestc_R522, ffestc_R522start): Complain
	about conflict between "SAVE" by itself and other uses of
	SAVE only in pedantic mode.

	* ste.c (ffeste_R1212): Fix loop over labels to always
	increment caseno, to avoid pushcase returning 2 for duplicate
	values when one of the labels is invalid.

Thu Feb 23 12:42:04 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.12 released.

	* Make-lang.in (f77.install-common): Add "else true;" before outer
	"fi" per Makefile.in patch.

	* Makefile.in (dircheck): Add "else true;" before "fi" per
	patch from chs1pm@surrey.ac.uk.

	* com.c (ffecom_push_tempvar): If type desired is ERROR_MARK,
	return error_mark_node, to avoid crash that results from
	making a VAR_DECL with error_mark_node as its type.

	* ste.c (ffeste_begin_iterdo_): Convert itercount to INTEGER
	anytime calculation of number of iterations ends up with type
	other than INTEGER (e.g. DOUBLE PRECISION, REAL).

Thu Feb 23 02:48:38 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.11 released.

	* DOC: Explain -fugly-args.

	* bad.def (FFEBAD_ACTUALARG): Explain -fugly-args and how to
	rewrite code to not require it.

	* com.c (ffecom_vardesc_): Handle negative type code, just in
	case.
	(ffecom_arg_ptr_to_expr): Let ffecom_expr handle hollerith
	and typeless constants (move code to ffecom_constantunion).
	(ffecom_constantunion): Handle hollerith and typeless constants.

	* expr.c (ffecom_finished_): Check -fugly-args in actual-arg
	context where hollerith/typeless provided.

	* intrin.def (FFEINTRIN_genDFLOAT): Add FFEINTRIN_specDFLOAT.
	(FFEINTRIN_specDFLOAT): Add as f2c intrinsic.

	* target.h (ffetarget_convert_real[12]_integer,
	ffetarget_convert_complex[12]_integer): Pass -1 for high integer
	value if low part is negative.
	(FFETARGET_defaultIS_UGLY_ARGS): New macro.

	* top.c (ffe_is_ugly_args_): New variable.
	(ffe_decode_option): Handle -fugly-args and -fno-ugly-args.

	* top.h (ffe_is_ugly_args_, ffe_is_ugly_args(),
	ffe_set_is_ugly_args()): New variable and macros.

Thu Feb 23 02:48:38 1995  Pedro A M Vazquez  (vazquez@iqm.unicamp.br)

	* g77.c (sys_errlist): Use const for __FreeBSD__ systems
	as well.

Wed Feb 22 13:33:43 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.10 released.

	* CREDITS: Add Rick Niles.

	* INSTALL: Note how to get around lack of makeinfo.

	* Make-lang.in (f/proj.h): Remove # comment.

	* Makefile.in (f/proj.h): Remove # comment.

	* com.c (ffecom_expr_): Simplify opFUNCREF/opSUBRREF conversion.
	(ffecom_sym_transform_): For whereGLOBAL and whereDUMMY
	kindFUNCTION, use ffecom_tree_fun_type[][] only for non-constant
	(non-statement-function) f2c functions.
	(ffecom_init_0): ffecom_tree_fun_type[][] and _ptr_to_*_* are
	really f2c-interface arrays, so use base type void for COMPLEX
	(like CHARACTER).

Tue Feb 21 19:01:18 1995  Dave Love  <d.love@dl.ac.uk>

	* Make-lang.in (f77.install-common): Expurgate the test for and
	possible installation of f2c in line with elsewhere.  Seems to have
	been missing a semicolon anyhow!

Tue Feb 21 11:45:25 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.9 released.

	* Make-lang.in (f/proj.h): touch file to register update,
	because the previous commands won't necessarily modify it.

	* Makefile.in (f/proj.h): touch file to register update,
	because the previous commands won't necessarily modify it.

	* Makefile.in (f/str-*.h, f/str-*.j): Explicitly specify
	output file names, so these targets go in build, not source,
	directory.

	* bits.c, bits.h: Switch to valid ANSI C replacement for
	ARRAY_ZERO.

	* com.c (ffecom_expr_): Add assignp arg to support ASSIGN better.
	If assignp is TRUE, use different tree for FFEBLD_opSYMTER case.
	(ffecom_sym_transform_assign_): New function.
	(ffecom_expr_assign): New function.
	(ffecom_expr_assign_w): New function.

	* com.c (ffecom_f2c_make_type_): Do make_signed_type instead
	of make_unsigned_type throughout.

	* com.c (ffecom_finish_symbol_transform_): Expand scope of
	commented-out code to probably produce faster compiler code.

	* com.c (ffecom_gen_sfuncdef_): Push/pop calltemps so
	COMPLEX works right.
	Remove obsolete comment.

	* com.c (ffecom_start_progunit_): If non-multi alt-entry
	COMPLEX function, primary (static) entry point returns result
	directory, not via extra arg -- to agree with ffecom_return_expr
	and others.
	Pretransform all symbols so statement functions are defined
	before any code emitted.

	* com.c (ffecom_finish_progunit): Don't posttransform all
	symbols here -- pretransform them instead.

	* com.c (ffecom_init_0): Don't warn about possible ASSIGN
	crash, as this shouldn't happen now.

	* com.c (ffecom_push_tempvar): Fix to handle temp vars
	pushed while context is a statement (nested) function, and
	add appropriate commentary.

	* com.c (ffecom_return_expr): Check TREE_USED to determine
	where return value is unset.

	* com.h (struct _ffecom_symbol_): Add note about length_tree
	now being used to keep tree for ASSIGN version of symbol.

	* com.h (ffecom_expr_assign, ffecom_expr_assign_rw): New decls.
	(error): Add this prototype for back-end function.

	* fini.c (main): Grab input, output, and include names
	directly off the command line instead of making the latter
	two out of the first.

	* lex.c: Improve tab handling for both fixed and free source
	forms, and ignore carriage-returns on input, while generally
	improving the code.  ffelex_handle_tab_ has been renamed and
	reinvented as ffelex_image_char_, among other things.

	* malloc.c, malloc.h: Switch to valid ANSI C replacement for
	ARRAY_ZERO, and kill the full number of bytes in pools and
	areas.

	* proj.h.in (ARRAY_ZERO, ARRAY_ZERO_SIZE): Remove.

	* ste.c (ffeste_io_cilist_, ffeste_io_icilist_, ffeste_R838,
	ffeste_R839): Issue diagnostic if a too-narrow variable used in an
	ASSIGN context despite changes to this code and code in com.c.

	* where.c, where.h: Switch to valid ANSI C replacement for
	ARRAY_ZERO.

Fri Feb 17 03:35:19 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.8 released.

	* INSTALL: In quick-build case, list g77 target first so g77
	gets installed.  Also, explain that gcc gets built and installed
	as well, even though this isn't really what we want (and maybe
	we'll find a way around this someday).

Fri Feb 17 02:35:41 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.7 released.

	* Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Remove
	../ prefix in front of .h files, since they're in the cd.

Fri Feb 17 01:50:48 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.6 released.

Thu Feb 16 20:26:54 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* ../README.g77: Remove description of g77 as "not-yet-published".

	* CREDITS: More changes.

	* Make-lang.in (G77STAGESTUFF): Remove cktyps stuff.

	* Makefile.in (CONFIG_H, HCONFIG_H, TCONFIG_H, TM_H): Don't
	prefix gcc dir with $(srcdir) since these don't live there,
	they are created in the build dir by gcc's configure.  Add
	a note explaining what these macros are about.
	Update dependencies via deps-kinda.

	* README.NEXTSTEP: Credit Toon, and per his request, add his
	email address.

	* com.h (FFECOM_DETERMINE_TYPES): #include "config.j".

	* config.j, convert.j, flags.j, hconfig.j, rtl.j, tconfig.j,
	tm.j, tree.j: Don't #include if already done.

	* convert.j: #include "tree.j" first, as convert.h clearly depends
	on trees being defined.

	* rtl.j: #include "config.j" first, since there's some stuff
	in rtl.h that assumes it has been #included.

	* tree.j: #include "config.j" first, or real.h makes inconsistent
	decision about return type of ereal_atof, leading to bugs, and
	because tree.h/real.h assume config.h already included.

Wed Feb 15 14:40:20 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.5 released.

	* Copyright notices updated to be FSF-style.

	* INSTALL: Some more clarification regarding building just f77.

	* Make-lang.in (F77_SRCS): Update wrt changing some .h to .j.
	(install-libf77): Fix typo in new parenthetical note.

	* Makefile.in (f/*.o): Update.
	(CONFIG_H, CONVERT_H, FLAGS_H, GLIMITS_H, HCONFIG_H, RTL_H,
	TCONFIG_H, TM_H, TREE_H): Update/new symbols.
	(deps-kinda): More fixes wrt changing some .h to .j.
	Document and explain this rule a bit better.
	Accommodate changes in output of gcc -MM.

	* *.h, *.c: Change #include's so proj.h not assumed to #include
	malloc.h or config.h (now config.j), and so new .j files are
	used instead of old .h ones.

	* com.c (ffecom_init_0): Use FLOAT_TYPE_SIZE for f2c's
	TYLONG/TYLOGICAL type codes, to get g77 working on Alpha.

	* com.h: Make all f2c-related integral types "int", not "long
	int".

	* config.j, convert.j, flags.j, glimits.j, hconfig.j, rtl.j,
	tconfig.j, tm.j, tree.j: New files wrapping around gbe
	.h files.

	* config.h, convert.h, flags.h, glimits.h, hconfig.h, rtl.h,
	tconfig.h, tm.h, tree.h: Deleted so new .j files
	can #include the gbe files directly, instead of using "../",
	and thus do better with various kinds of builds.

	* proj.h: Delete unused NO_STDDEF and related stuff.

Tue Feb 14 08:28:08 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* BUGS: Remove item #12, cross-compiling & autoconf scripts
	reportedly expected to work properly (according to d.love).

	* INSTALL: Add explanation of d.love's patch to config-lang.in.
	Add explanation of how to install just g77 when gcc already installed.
	Add note about usability of "-Wall".  Add note about bug-
	reporting.

	* Make-lang.in ($(srcdir)/f/conf-proj): Add comment about why
	conf-proj.out.
	(install-libf77): Echo parenthetical note to user about how to do
	just the (aborted) libf2c installation.
	(deps-kinda): Update to work with new configuration/build stuff.

	* bad.c (ffebad_finish): Put capitalized "warning:" &c message
	as prefix on any diagnostic without pointers into source.

	* bad.def (FFEBAD_TOO_BIG_INIT): Add this warning message.

	* config-lang.in: Add Dave Love's patch to catch case where
	back-end patches not applied and abort configuration.

	* data.c (ffedata_gather_, ffedata_value_): Warn when about
	to initialize a large aggregate area, due to design flaw resulting
	in too much time/space used to handle such cases.
	Use COMMON area name, and first notice of symbol, for multiple-
	initialization diagnostic, instead of member symbol and unknown
	location.
	(FFEDATA_sizeTOO_BIG_INIT_): New macro per above.

Mon Feb 13 13:54:26 1995  Dave Love  <d.love@dl.ac.uk>

	* Make-lang.in (F77_SRCS): Use $(srcdir)/f/proj.h.in, not
	$(srcdir)/f/proj.h for build outside srcdir.

Sun Feb 12 13:37:11 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* ../README.g77: Clarify procedures for unpacking, add asterisks
	to mark important things the user must do.

	* Fix dates in/add dates to ../README.g77, BUGS, CREDITS, DOC,
	INSTALL, PROJECTS, README.

Sun Feb 12 00:26:10 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.4 released.

	* Make-lang.in (f/proj.h): Reproduce this rule here from
	Makefile.in.
	($(srcdir)/f/conf-proj): Put autoconf's stdout in temp file
	conf-proj.out, then mv to conf-proj only if successful, so
	conf-proj not touched if autoconf not installed.

	* Makefile.in ($(srcdir)/conf-proj): See Make-lang.in's similar
	rule.

Sat Feb 11 20:56:02 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* BUGS: Clarify some bugs.

	* DOC: Many improvements and fixes.

	* README: Move bulk of text, edited, to ../README.g77, and
	replace with pointer to that file.

	* com.c (ffecom_init_0): Comment out warning about sizeof(ftnlen)
	as per ste.c change.  Add text about ASSIGN to help user understand
	what is being warned about.

	* conf-proj.in: Fix typos in comments.

	* proj.h.in: Add ARRAY_ZERO_SIZE to parallel malloc.h's version,
	in case it proves to be needed.

	* ste.c: Comment out assertions requiring sizeof(ftnlen) >=
	sizeof(char *), in the hopes that overflow will never happen.
	(ffeste_R838): Change assertion to fatal() with at least
	partially helpful message.

Sat Feb 11 12:38:00 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* com.c (ffecom_vardesc_): Crash if typecode is -1.

	* ste.c (ffeste_io_dolio_): Crash if typecode is -1.

Sat Feb 11 09:51:57 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* ste.c: In I/O code tests for item arrayness, sort of revert
	to much earlier code that tests original exp, but also check
	in newer way just in case.  Newer way alone treated FOO(1:40)
	as an array, not sure why older way alone didn't work, but I
	think maybe it was when diagnosed code was involved, and
	since there are now checks for error_mark_node, maybe the old
	way alone would work.  But better to be safe; both original
	ffebld exp _and_ the transformed tree must indicate an array
	for the size-determination code to be used, else just 1/2 elements
	assumed.  And this text is for EMACS: (foo at bar).

Fri Feb 10 11:05:50 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* ste.c: In many cases, surround statement-expansion code
	with ffecom_push_calltemps () and ffecom_pop_calltemps ()
	so COMPLEX-returning functions can have temporaries pushed
	in "auto-pop" mode and have them auto-popped at the end of
	the statement.

Wed Feb  8 14:35:10 1995  Dave Love  <d.love@dl.ac.uk>

	* runtime/f2c.h.in (ftnlen, ftnint): Make same size as integer.

	* runtime/libI77/err.c (f_init): Thinko in MISSING_FILE_ELEMS
	conditional.
	* runtime/libI77/wrtfmt.c (mv_cur): Likewise.
	* runtime/libI77/wsfe.c (x_putc): Likewise.

	* runtime/libF77/signal_.c (signal_): Return 0 (this is a
	subroutine).

	* Makefile.in (f/proj.h): Depend on com.h.
	* Make-lang.in (include/f2c.h): Likewise (and proj.h).
	(install-libf77): Also install f2c.h.

	* runtime/libI77/Makefile.in (*.o): Add f2c.h dependency.
	* runtime/libF77/Makefile.in:  Likewise.

Wed Feb  8 13:56:47 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* stc.c (ffestc_R501_item): Don't reset kind/where to NONE when
	setting basictype/kindtype info for symbol, or especially
	its function/result twin, because kind/where might not be NONE.

Tue Feb  7 14:47:26 1995  Dave Love  <d.love@dl.ac.uk>

	* Make-lang.in (include/f2c.h:): Set shell variable src more
	robustly (independent of whether srcdir is relative or absolute).
	* Makefile.in (f/proj.h:): Likewise.

	* conf-proj.in: Check need for LAME_ASSERT.  Fix indentation in
	check for LAME_STDIO (cosmetic only with ANSI C).

	* com.h: Extra ...SIZE stuff taken from com.c.

	* com.c (FFECOM_DETERMINE_TYPES): Define before including com.h.
	(BITS_PER_WORD etc.) Remove and use conditional definitions to com.h.

	* runtime/configure.in: #define FFECOM_DETERMINE_TYPES for com.h in
	f2c type determination.

	* tm.h: Remove (at least pro tem) because of relative path and use
	top-level one.

	* Make-lang.in (include/f2c.h:): Set shell variable src more
	robustly (independent of whether srcdir is relative or absolute).
	* Makefile.in (f/proj.h:): Likewise.

Mon Feb  6 19:58:32 1995  Dave Love  <d.love@dl.ac.uk>

	* g77.c (append_arg): Use K&R declaration for, e.g. SunOS4 build.

Fri Feb  3 20:33:14 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* g77.c (main): Treat -l like filename in terms of -x handling.
	Rewrite arglist mechanism for ease of maintenance.
	Make sure every -lf2c is followed by -lm and vice versa.

	* Make-lang.in: Put complete list of sources in F77_SRCS def
	so changing a .h file, for example, causes rebuild.

	* Makefile.in: Change test for nextstep to m68k-next-nextstep* so
	all versions of nextstep on m68k get the necessary flag.

Fri Feb  3 19:10:32 1995  Dave Love  <d.love@dl.ac.uk>

	* INSTALL: Note about possible conflict with existing libf2c.a and
	f2c.h.

	* Make-lang.in (f77.distclean): Tidy and move deletion of
	f/config.cache to mostlyclean.
	(install-libf77): Test for $(libdir)/libf2c.* and barf if found
	unless F2CLIBOK defined.

	* runtime/Makefile.in (all): Change path to include directory (and
	elsewhere).
	(INCLUDES): Remove (unused/misleading).
	(distclean): Include f2c.h.
	(clean): Include config.cache.

	* runtime/libF77/Makefile.in (.SUFFIXES): Correct typo.
	(ALL_CFLAGS) Fix up include search path to find f2c.h in top level
	includes always.
	(all): Depend on f2c.h.
	* runtime/libI77/Makefile.in (.SUFFIXES): Likewise.

Thu Feb  2 17:17:06 1995  Dave Love  <d.love@dl.ac.uk>

	* INSTALL: Note about --srcdir and GNU make.

	* runtime/f2c.h.in (Pad_UDread, ALWAYS_FLUSH): Reomve the #defines
	per below.

	* runtime/configure.in (Pad_UDread, ALWAYS_FLUSH): Define these
	here, not in f2c.h as they'r eonly relevant for building.
	* runtime/configure: Regenerated.

	* config-lang.in: Warn about using GNU make outside source tree
	since I can't get Irix5 or SunOS4 makes to work in this case.

	* Makefile.in (VPATH): Don't set it here.
	(srcdir): Make it the normal `.' (overridden) at top level.
	(all.indirect): New dependency `dircheck'.
	(f771): Likewise
	(dircheck): New target for foolproofing.
	(f/proj.h:): Change finding source.
	(CONFIG_H): Don't use this as the relative path in the include loses
	f builddir != srcdir.

	* config.h: Remove per CONFIG_H change above.

	* Make-lang.in (F77_FLAGS_TO_PASS): Remove GCC_FOR_TARGET.
	(f771:): Pass VPATH, srcdir to sub-make.
	(f/Makefile:): New target.
	(stmp-int-hdrs): new variable for cheating build.
	(f77-runtime:): Alter GCC_FOR_TARGET treatment.
	(include/f2c.h f/runtime/Makefile:) Likewise.
	(f77-runtime-unsafe:): New (cheating) target.

Thu Feb  2 12:09:51 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* BUGS: Update regarding losing EQUIVALENCE members in -g, and
	regarding RS/6000 problems in the back end.

	* CREDITS: Make some changes as requested.

	* com.c (ffecom_member_trunk_): Remove unused static variable.
	(ffecom_finish_symbol_transform_): Improve comments.
	(ffecom_let_char_): Fix size of temp address-type var.
	(ffecom_member_phase2_): Try fixing problem fixed by change
	to ffecom_transform_equiv_ (f_m_p2_ function currently not used).
	(ffecom_transform_equiv_): Remove def of unused static variable.
	Comment-out use of ffecom_member_phase2_, until problems with
	back end fixed.
	(ffecom_push_tempvar): Fix assertion to not crash okay code.

	* com.h: Remove old, commented-out code.
	Add prototype for warning() in back end.

	* ste.c (ffeste_io_dofio_, ffeste_io_dolio_, ffeste_io_douio_,
	ffeste_io_icilist_): Check correct type of variable for arrayness.

Sun Jan 29 14:41:42 1995  Dave Love  <d.love@dl.ac.uk>

	* BUGS: Remove references to my configure bugs; add another.

	* runtime/Makefile.in (AR_FLAGS): Provide default value.

	* runtime/f2c.h.in (integer, logical): Take typedefs from
	F2C_INTEGER configuration parameter again.
	(NON_UNIX_STDIO): don't define it.

	* runtime/configure.in: Bring type checks for f2c.h in line with
	com.h.
	(MISSING_FILE_ELEMS): New variable to determine whether the relevant
	elements of the FILE struct exist, independent of NON_UNIX_STDIO.
	* runtime/libI77/{err,wrtfmt,wsfe}.c (MISSING_FILE_ELEMS): Use new
	parameter.

	* config-lang.in: Comment out more of f2c rules (c.f. Make-lang.in).
	(This stuff is relevant iff you gave configure --enable-f2c.)
	Create f/runtime directory tree iff not building in source
	directory.

	* Makefile.in (srcdir): Append slash so we get the right value when
	not building in the source directory.  This is a consequence of not
	building the `f' sources in `f'.
	(VPATH): Override configure's value for reasons above.
	(f/proj.h f/conf-proj): New rules to build proj.h by
	autoconfiguration.

	* proj.h: Rename to proj.h.in for autoconfiguration.
	* proj.h.in: New as above.
	* conf-proj conf-proj.in: New files for autoconfiguration.

	* Make-lang.in (include/f2c.h f/runtime/Makefile:): Change the order
	of setting the sh variables so that the right GCC_FOR_TARGET is
	used.
	(f77.*clean:) Add products of new configuration files and make sure
	all the *clean targets do something (unlike the ones in
	cp/Make-lange.in).

	* com.h (FFECOM_f2cINTEGER, FFECOM_f2cLOGICAL): Define as long or
	int appropriately to ensure sizeof(real) == sizeof(integer).

	* PROJECTS: Library section.

	* runtime/libI77/endfile.c: Don't #include sys/types.h conditional
	on NON_UNIX_STDIO since rawio.h needs size_t.
	* runtime/libI77/uio.c: #include <sys/types.h> for size_t if not
	KR_headers.

Wed Jan 25 03:31:51 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.3 released.

	* INSTALL: Revise.

	* Make-lang.in: Comment out rules for building f2c itself (f/f2c/).

	* README: Revise.

	* com.c (ffecom_init_0): Warn if ftnlen or INTEGER not big enough
	to hold a char *.

	* gbe/2.6.2.diff: Update.

Mon Jan 23 17:10:49 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* TODO: Remove.
	BUGS: New file.
	PROJECTS: New file.
	CREDITS: New file.

	* cktyps*: Remove.
	Make-lang.in: Remove cktyps stuff.
	Makefile.in: Remove cktyps stuff.

	* DOC: Add info on changes for 0.5.3.

	* bad.c: Put "warning:" &c on diagnostic messages.
	Don't output informational messages if warnings disabled.

Thu Jan 19 12:38:13 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* g77.c: Avoid putting out useless "-xnone -xf77" pairs so
	larger command lines can be accommodated.
	Recognize both `-xlang' and `-x lang'.
	Recognize `-xnone' and `-x none' to mean what it does, instead
	of treating "none" as any other language.
	Some minor, slight improvements in the way args are handled
	(hopefully for clearer, more maintainable code), including
	consistency checks on arg count just in case.

Wed Jan 18 16:41:57 1995  Craig Burley  (burley@gnu.ai.mit.edu)

	* DOC: Explain -fautomatic better.

	* INSTALL: Describe libf2c.a better.

	* Make-lang.in, Makefile.in: Build f771 &c with gcc/ as cd instead
	of gcc/f/ so debugging info is better (source file tracking).
	Add new source file type.c.

	* Makefile.in: For nextstep3, link f771 with -segaddr __DATA
	6000000.  Fix typo.  Change deps-kinda target to handle building
	from gcc/.  Update dependencies.

	* bld-op.def, bld.h, bld.c: Remove opBACKEND and all related
	stuff.
	Remove consistency tests that cause compiler warnings.

	* cktyps.c: Remove all typing checking.

	* com-rt.def: Change all rttypeFLOAT_ intrinsics to rttypeDOUBLE_,
	to precisely match how they're declared in libf2c.

	* com.h, com.c: Revise to more elegantly track related stuff
	in the version of f2c.h used to build libf2c.

	* com.c: Increase FFECOM_sizeMAXSTACKITEM, and if 0 or undefined
	when checked to determine where to put entity, treat as infinite.
	Rewrite temporary mechanism to be based on trees instead of
	ffeinfo stuff, and make it much simpler.  Change interface
	accordingly.
	Fixes to better track types of things, make appropriate
	conversions, etc.  E.g. when making an arg for a libf2c
	function, make sure it's of the right type (such as ftnlen).
	Delete opBACKEND transformation code.
	(ffecom_init_0): Smoother initialization of types, especially
	paying attention to using consistent rules for making INTEGER,
	REAL, DOUBLE PRECISION, etc., and for deciding their "*N"
	and kind values that will work across all g77 platforms.
	No longer require per-target configuration info in target.h
	or config/*/*; use new type module to store size, alignment.
	(ffecom_member_phase2): Declare COMMON/EQUIVALENCE group members
	so debugger sees them.
	(ffecom_finish_progunit): Transform all symbols in program unit,
	so -g will show they all exist.

	* expr.c (ffeexpr_collapse_substr): Handle strange substring
	range values.

	* info.h, info.c: Provide connection to new type module.
	Remove tests that yield compiler warnings.

	* intrin.c (ffeintrin_is_intrinsic): Properly handle deleted
	intrinsic.

	* lex.c (ffelex_file_fixed): Remove redundant/buggy code.

	* stc.c (ffestc_kindtype_kind_, ffestc_kindtype_star_): Replace
	boring switch stmt with simple call to new type module.  This
	sort of thing is a reason to get up in the morning.

	* ste.c: Update to handle new interface for
	ffecom_push/pop_tempvar.
	Fixes to better track types of things.
	Fixes to not crash for certain diagnosed constructs.
	(ffeste_begin_iterdo_): Check only constants for overflow to avoid
	spurious diagnostics.
	Don't convert larger integer (say, INTEGER*8) to canonical integer
	for iteration count.

	* stw.h: Track DO iteration count temporary variable.

	* symbol.c: Remove consistency tests that cause compiler warnings.

	* target.c (ffetarget_aggregate_info): Replace big switch with
	little call to new type module.
	(ffetarget_layout): Remove consistency tests that cause
	compiler warnings.
	(ffetarget_convert_character1_typeless): Pick up length of
	typeless type from new type module.

	* target.h: Crash build if target float bit pattern cannot be
	precisely determined.
	Remove all the type cruft now determined by ffecom_init_0
	at invocation time and maintained in new type module.
	Put casts on second arg of all REAL_VALUE_TO_TARGET_DOUBLE
	uses so compiler warnings avoided (requires target float bit
	pattern to be precisely determined, hence code to crash build).

	* top.c: Add inits/terminates for new type module.

	* type.h, type.c: New module.

	* gbe/2.6.2.diff: Remove all patches to files in gcc/config/
	directory and its subdirectories.

Mon Jan  9 19:23:25 1995  Dave Love  <d.love@dl.ac.uk>

	* com.h (FFECOM_F2C_INTEGER_TYPE_NODE): Define and use instead of
	long_integer_type_node where appropriate.

Tue Jan  3 14:56:18 1995  Dave Love  <d.love@dl.ac.uk>

	* com.h: Make ffecom_f2c_logical_type_node long, consistent with
	integer.

Fri Dec  2 20:07:37 1994  Dave Love  <d.love@dl.ac.uk>

	* config-lang.in (stagestuff): Add f2c conditionally.
	* Make-lang.in: Add f2c and related targets.
	* f2c: Add the directory.

Fri Nov 25 22:17:26 1994  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in (FLAGS_TO_PASS): pass $(CROSS)
	* Make-lang.in: more changes to runtime targets

Thu Nov 24 18:03:21 1994  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in (FLAGS_TO_PASS): define for sub-makes

	* g77.c (main): change f77-cpp-output to f77-cpp-input (.F files)

Wed Nov 23 15:22:53 1994  Dave Love  <d.love@dl.ac.uk>

	* bad.c (ffebad_finish): kluge to fool emacs19 into finding errors:
	add trailing space to <file>:<line>:

Tue Nov 22 11:30:50 1994  Dave Love  <d.love@dl.ac.uk>

	* runtime/libF77/signal_.c (RETSIGTYPE): added

Mon Nov 21 13:04:13 1994  Dave Love  <d.love@dl.ac.uk>

	* Makefile.in (compiler): add runtime

	* config-lang.in (stagestuff): add libf2c.a to stagestuff

	* Make-lang.in:
	G77STAGESTUFF <- MORESTAGESTUFF
	f77-runtime: new target, plus supporting ones

	* runtime: add the directory, containing libI77, libF77 and autoconf
	stuff

	* g++.1: remove

	* g77.1: minor fixes

Thu Nov 17 15:18:05 1994  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.2 released.

	* bad.def: Modify wording of FFEBAD_UNIMPL_STMT to indicate
	that it covers a wide array of possible problems (that, someday,
	should be handled via separate diagnostics).

	* lex.c: Allow $ in identifiers if -fdollar-ok.
	* top.c: Support -fdollar-ok.
	* top.h: Support -fdollar-ok.
	* target.h: Support -fdollar-ok.
	* DOC: Describe -fdollar-ok.

	* std.c (ffestd_R1229_finish): Fix bug so stand-alone build works.
	* ste.c (ffeste_R819A): Fix bug so stand-alone build works.

	* Make: Improvements for stand-alone build.

	* Makefile.in: Fix copyright text at top of file.

	* LINK, SRCS, UNLINK: Removed.  Not particularly useful now that
	g77 sources live in their own subdirectory.

	* g77.c (main): Cast arg to bzero to avoid warning.  (This is
	identical to Kenner's fix to cp/g++.c.)

	* gbe/: New subdirectory, to contain .diff files for various
	versions of the GNU CC back end.

	* gbe/README: New file.
	* gbe/2.6.2.diff: New file.

Tue Nov  8 10:23:10 1994  Dave Love  <d.love@dl.ac.uk>

	* Make-lang.in: don't install as f77 as well as g77 to avoid
	confusion with system's compiler (especially while testing)

	* g77.c (main): use -lf2c and -lm; fix sense of test for .f/.F files

Fri Oct 28 09:45:00 1994  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.1 released.

	* gcc.c: Invoke f771 instead of f-771.

Fri Oct 28 02:00:44 1994  Craig Burley  (burley@gnu.ai.mit.edu)

	* Version 0.5.0 released.

Fri Oct 14 15:03:35 1994  Craig Burley  (burley@gnu.ai.mit.edu)

	* Makefile.in: Handle the Fortran-77 front-end in a subdirectory.
	* f-*: Move Fortran-77 front-end to f/*.
