2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* simplify.c (range_check): Remove blank line at beginning of function.
	(gfc_simplify_dint): Same at end of function.
	(gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
	(gfc_simplify_bound): Fix indentation.
	(gfc_simplify_log10): Simplify calculation.
	(gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
	of function.
	(gfc_simplify_nearest): Same at end of function.
	(gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
	function.
	(gfc_simplify_rrspacing, gfc_simplify_set_exponent,
	gfc_simplify_spacing): Simplify calulations.

2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>

	* trans-intrinsic.c: Fix comments on spacing and rrspacing
	(gfc_conv_intrinsic_rrspacing): Add fold on constant trees.

2004-10-01  Jan Hubicka  <jh@suse.cz>

	* f95-lang.c (gfc_expand_function): Update call of
	tree_rest_of_compilation.
	* trans-decl.c (gfc_generate_constructors): Likewise.

2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-intrinsic.c: Comment fixes.

2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.

2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-types.c (gfc_return_by_reference): Remove superfluous
	assertion.

	* intrinsic.h (gfc_resolve_getcwd): Update prototype.
	* iresolve.c (gfc_resolve_getcwd): Add second argument to function.

	PR fortran/17615
	* trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
	function to determine return type.
	
2004-09-20  Jan Hubicka  <jh@suse.cz>

	* trans-decl.c (build_entry_thunks): Finalize the function; do not lower
	tree.
	(gfc_generate_function_code): Likewise.

2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15957
	* simplify.c (gfc_simplify_reshape): Set shape of return value
	correctly.

2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
	enumeration constants.

2004-09-17  Paul Brook  <paul@codesourcery.com>

	* gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
	(gfc_linebuf_header_size): Define.
	* scanner.c (load_file): Use it.

2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>

	* array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
	interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
	resolve.c, scanner.c, trans-array.c, trans-array.h,
	trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
	trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
	trans.h: Fix comment typos.  Follow spelling conventions.

2004-09-16  Victor Leikehman  <lei@il.ibm.com>

	PR/15364
	* trans-io.c (transfer_array_component): New function.
	(transfer_expr): For array fields, call transfer_array_component.

2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>

	* gfortran.texi: Fix a typo.

2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>

	* parse.c (eof_buf): Rename eof to eof_buf.
	(unexpected_eof): Same.
	(gfc_parse_file): Same.

2004-09-15  Steven G. Kargl  <kargls@comcast.net>

	* check.c (gfc_check_getcwd_sub): New function.
	* gfortran.h (GFC_ISYM_GETCWD): New symbol.
	* intrinsic.c (add_functions): Add function definition;
	Use symbol.
	* intrinsic.c (add_subroutines): Add subroutine definitions.
	* intrinsic.h: Add prototypes.
	* iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
	New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.

2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16485
	* module.c (write_symbol): Don't fill in module name here.
	(write_symbol0): Fill in here instead.

2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* data.c, decl.c, f95-lang.c, gfortran.h, match.c,
	trans-array.c, trans-common.c, trans-expr.c,
	trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
	comment typos.  Follow spelling conventions.

2004-09-09  Paul Brook  <paul@codesourcery.com>

	* scanner.c (get_file): Add ATTRIBUTE_UNUSED.

2004-09-08  Paul Brook  <paul@codesourcery.com>

	* array.c: Don't include assert.h.
	* data.c: Don't include assert.h.  Replace assert and abort with
	gcc_assert and gcc_unreachable.
	* dependency.c: Ditto.
	* f95-lang.c: Ditto.
	* iresolve.c: Ditto.
	* resolve.c: Ditto.
	* simplify.c: Ditto.
	* symbol.c: Ditto.
	* trans-array.c: Ditto.
	* trans-common.c: Ditto.
	* trans-const.c: Ditto.
	* trans-decl.c: Ditto.
	* trans-expr.c: Ditto.
	* trans-intrinsic.c: Ditto.
	* trans-io.c: Ditto.
	* trans-stmt.c: Ditto.
	* trans-types.c: Ditto.
	* trans.c: Ditto.

2004-09-07  Per Bothner  <per@bothner.com>
	Paul Brook  <paul@codesourcery.com>

	* error.c (show_locus): Handle mapped locations.
	* f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
	* gfortran.h: Include input.h.
	(struct gfc_linebuf): Use source_location.
	* scanner.c (get_file): Initialize linemap.
	(preprocessor_line): Pass extra argument to get_file.
	(load_file): Ditto.  Setup linemap.
	(gfc_new_file): Handle mapped locations.
	* trans-common.c (build_field, build_equiv_decl, build_common_decl):
	Set decl source locations.
	(gfc_trans_common): Set blank common block location.
	* trans-decl.c (gfc_set_decl_location): New function.
	(gfc_get_label_decl, gfc_get_symbol_decl): Use it.
	(trans_function_start): Move call to gfc_set_backend_locus..
	(build_function_decl): ... to here.
	(build_entry_thunks): Set and restore the backend locus.
	(gfc_generate_constructors): Remove excess arguments to
	init_function_start.
	(gfc_generate_block_data): Add comments.  Set the decl locus.
	* trans-io.c (set_error_locus): Handle mapped locations.
	* trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
	(gfc_trans_code): Use SET_EXPR_LOCATION.
	(gfc_generate_code): Override the location of the new symbol.
	* trans.h (gfc_set_decl_location): Add prototype.

2004-08-31  Paul Brook  <paul@codesourcery.com>

	* trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.

2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15327
	* trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
	strings.

2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16400
	PR fortran/16404
	(port from g95)
	* resolve.c (resolve_transfer): New function.
	(resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16579
	* trans-types.c (gfc_init_types): Make gfc_character1_type_node an
	unsigned char.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* CONTRIB, NEWS, README, TODO: Remove obsolete files.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/17244
	* trans-types.c (gfc_return_by_reference): Remove TODO error,
	add comment pointing out possible issue WRT compatibility with g77.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
	all occurences of 'gfc_strlen_type_node' by
	'gfc_charlen_type_node'.
	* trans-types.h: Same. Also update comment accordingly.

2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* primary.c: Update copyright boilerplate to say GCC.
	* f95-lang.c: Change initial comment to say gfortran.

2004-08-31  Paul Brook  <paul@codesourcery.com>

	* trans-types.h: Add comments.
	(intmax_type_node, string_type_node, const_string_type_node): Remove.

2004-08-30  Richard Henderson  <rth@redhat.com>

	* Make-lang.in (fortran/f95-lang.o): Update dependencies.
	(fortran/trans-decl.o, fortran/trans-types.o): Likewise.
	* gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
	c_long, c_long_long.
	(gfc_logical_info): Add c_bool.
	(gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
	* trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
	rather than gfc_int[48]_type_node for allocate choice.
	* trans-decl.c (gfc_build_intrinsic_function_decls): Cache
	local copies of some kind type nodes.
	(gfc_build_builtin_function_decls): Likewise.
	* trans-expr.c (gfc_conv_power_op): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_index,
	gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
	gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
	* trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
	gfc_trans_character_select, gfc_trans_allocate): Likewise.
	* trans-io.c (gfc_pint4_type_node): Move into ...
	(gfc_build_io_library_fndecls): ... here.  Cache local copies of
	some kind type nodes.
	* trans-types.c (gfc_type_nodes): Remove.
	(gfc_character1_type_node, gfc_strlen_type_node): New.
	(gfc_integer_types, gfc_logical_types): New.
	(gfc_real_types, gfc_complex_types): New.
	(gfc_init_kinds): Fill in real mode_precision.
	(gfc_build_int_type, gfc_build_real_type): New.
	(gfc_build_complex_type, gfc_build_logical_type): New.
	(c_size_t_size): New.
	(gfc_init_types): Loop over kinds.
	(gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
	(gfc_get_complex_type, gfc_get_logical_type): Likewise.
	(gfc_get_character_type_len): Likewise.
	(gfc_type_for_size): Loop over kinds; use a reduced set of
	unsigned type nodes.
	(gfc_type_for_mode): Loop over kinds.
	(gfc_signed_or_unsigned_type): Use gfc_type_for_size.
	(gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
	* trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
	F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
	F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
	F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
	F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
	F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
	gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
	gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
	gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
	gfc_complex8_type_node, gfc_complex16_type_node,
	gfc_logical1_type_node, gfc_logical2_type_node,
	gfc_logical4_type_node, gfc_logical8_type_node,
	gfc_logical16_type_node, gfc_strlen_kind): Remove.
	(gfc_character1_type_node): Turn in to a variable.
	(gfc_strlen_type_node): Likewise.

2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.h (gfc_namespace): Add new field is_block_data.
	* parse.c (accept_statement): Remove special handling for BLOCK DATA.
	(parse_block_data): Record BLOCK DATA name, set is_block_data field.
	* trans.c (gfc_generate_code): Handle BLOCK DATA units.
	* trans.h (gfc_generate_block_data): Add prototype.
	* trans-decl.c (gfc_generate_block_data): New function.

2004-08-29  Richard Henderson  <rth@redhat.com>

	* trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
	* trans-types.c (gfc_init_kinds): Reject integer kinds larger
	than two HOST_WIDE_INT.

2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13910
	* decl.c (free_variable, free_value, gfc_free_data, var_list,
	var_element, top_var_list, match_data_constant, top_val_list,
	gfc_match_data): Move here from match.c.
	(match_old_style_init): New function.
	(variable_decl): Match old-style initialization.
	* expr.c (gfc_get_variable_expr): New function.
	* gfortran.h (gfc_get_variable_expr): Add prototype.
	* gfortran.texi: Start documentation for supported extensions.
	* match.c: Remove the functions moved to decl.c.
	* match.h (gfc_match_data): Move prototype to under decl.c.
	* symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
	comments.

2004-08-29  Steven G. Kargl  <kargls@comcast.net>
	Paul Brook  <paul@codesourcery.com>

	* check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
	* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
	(DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
	(build_builtin_fntypes): New function.
	(gfc_init_builtin_functions): Use it.
	* gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
	and GFC_ISYM_ERF{,C}.
	(gfc_c_int_kind): Declare.
	* intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
	* intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
	gfc_resolve_g77_math1): Add prototypes.
	* resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
	* mathbuiltins.def: Add comment.  Change third argument.  Use
	DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
	* trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
	(DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
	* trans-types.c (gfc_c_int_kind): Declare.
	(gfc_init_kinds): Set it.

2004-08-29  Steven G. Kargl  <kargls@comcast.net>
	Paul Brook  <paul@codesourcery.com>

	* gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
	(gfc_check_f, gfc_simplify_f): Add f0.
	* intrinsic.c (do_check): Call f0.  Flatten.
	(add_sym_0): Fix prototype.  Set f0.
	(add_functions): Add getgid, getgid and getuid.
	(resolve_intrinsic): Remove obsolete comment.
	(do_simplify): Call f0.
	* intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
	gfc_resolve_getuid): Add prototypes.
	* iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
	gfc_resolve_getuid): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
	GFC_ISYM_GET?ID.

2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* error.c (gfc_error_init_1): Remove blank line in front of
	function body. Add missing blank.
	(gfc_buffer_error, error_char, error_string): Remove blank line in
	front of function body.
	(show_locus): Add comma in comment.
	(gfc_clear_warning, gfc_warning_check, gfc_clear_error,
	gfc_push_error, gfc_pop_error): Remove blank line in front of
	function body.
	(gfc_get_errors): Typo fix in comment in front of function. Remove
	blank line in front of function body.

2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
	variable declaration of same name.
	* arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
	intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
	resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
	Replace all calls to gfc_default_*_kind with variable accesses.
	* trans-types.c: Same as above.
	(gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
	static qualifier. Replace all occurences.
	(gfc_default_*_kind): Remove functions.

2004-08-26  Richard Henderson  <rth@redhat.com>

	* arith.c: Include system.h, not real system headers.
	(MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
	DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
	GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
	GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
	(gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
	gfc_index_integer_kind, gfc_default_integer_kind,
	gfc_default_real_kind,gfc_default_double_kind,
	gfc_default_character_kind, gfc_default_logical_kind,
	gfc_default_complex_kind, validate_integer, validate_real,
	validate_logical, validate_character,
	gfc_validate_kind): Move to trans-types.c.
	(gfc_set_model_kind): Use gfc_validate_kind.
	(gfc_set_model): Just copy the current precision to default.
	(gfc_arith_init_1): Use mpfr precision 128 for integer setup.
	* f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
	* gfortran.h: Update file commentary.
	* trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
	(gfc_default_integer_kind_1, gfc_default_real_kind_1,
	gfc_default_double_kind_1, gfc_default_character_kind_1,
	gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
	(gfc_init_kinds): New.
	(gfc_init_types): Don't set gfc_index_integer_kind here.
	* trans-types.h (gfc_init_kinds): Declare.
	* doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.

2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* check.c (gfc_check_atan2): New function.
	* intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
	* intrinsic.h (gfc_check_atan2): Add prototype.

2004-08-25  Richard Henderson  <rth@redhat.com>

	* arith.c (gfc_validate_kind): Add may_fail argument; abort if
	false and we don't validate the kind.
	(gfc_check_integer_range, gfc_check_real_range): Update to match.
	* check.c (kind_check): Likewise.
	* decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
	(match_char_spec, match_logical_spec): Likewise.
	* gfortran.h (gfc_validate_kind): Likewise.
	* options.c (gfc_handle_option): Likewise.
	* primary.c (match_integer_constant, match_real_constant,
	match_string_constant, match_logical_constant,
	match_const_complex_part): Likewise.
	* simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
	gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
	gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
	gfc_simplify_maxexponent, gfc_simplify_minexponent,
	gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
	gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
	gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
	gfc_simplify_tiny): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
	gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
	prepare_arg_info): Likewise.

2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* expr.c (gfc_check_assign): Add comment. Add new warning.
	* trans-expr.c (gfc_conv_function_call): Correctly dereference
 	result of pointer valued function when not in pointer assignment.

2004-08-25  Paul Brook  <paul@codesourcery.com>

	* config-lang.in: Remove dead commented line.
	* module.c: Replace g95 with gfortran in comment.

2004-08-25  Paul Brook  <paul@codesourcery.com>

	PR fortran/17190
	* arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.

2004-08-25  Paul Brook  <paul@codesourcery.com>

	PR fortran/17144
	* trans-array.c (gfc_trans_allocate_temp_array): Remove
	string_length argument.
	(gfc_trans_array_ctor_element): New function.
	(gfc_trans_array_constructor_subarray): Use it.
	(gfc_trans_array_constructor_value): Ditto.  Handle constant
	character arrays.
	(get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
	(gfc_trans_array_constructor): Use them.
	(gfc_add_loop_ss_code): Update to new gfc_ss layout.
	(gfc_conv_ss_descriptor): Remember section string length.
	(gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
	(gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
	(gfc_conv_expr_descriptor): Ditto.
	(gfc_conv_loop_setup): Ditto.  Spelling fixes.
	* trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
	* trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
	* trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
	(gfc_conv_variable): Set string_length from section.
	(gfc_conv_function_call): Remove extra argument.
	(gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
	* trans-types.c (gfc_get_character_type_len): New function.
	(gfc_get_character_type): Use it.
	(gfc_get_dtype): Return zero for internal types.
	* trans-types.h (gfc_get_character_type_len): Add prototype.
	* trans.h (struct gfc_ss): Move string_length out of union.

2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans.h (build2_v, build3_v): New macros.
	(build_v): Remove.
	* f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
	build.
	* trans-array.c (gfc_conv_descriptor_data,
	gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
	gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
	gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
	gfc_trans_allocate_temp_array,
	gfc_trans_array_constructor_subarray,
	gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
	gfc_trans_array_bound_check, gfc_conv_array_index_offset,
	gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
	gfc_conv_array_ref, gfc_trans_preloop_setup,
	gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
	gfc_conv_loop_setup, gfc_array_init_size,
	gfc_conv_array_initializer, gfc_trans_array_bounds,
	gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
	gfc_conv_expr_descriptor, gfc_conv_array_parameter,
	gfc_trans_deferred_array): Use buildN and buildN_v macros instead
	of build and build_v as appropriate.
	* trans-common.c (create_common): Same.
	* trans-decl.c (gfc_trans_auto_character_variable,
	gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
	* trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
	gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
	gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
	gfc_conv_expr_op, gfc_conv_function_call,
	gfc_trans_structure_assign): Same.
	* trans-intrinsic.c (build_fixbound_expr, build_round_expr,
	gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
	gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
	gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
	gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
	gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
	gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
	gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
	gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
	gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
	gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
	gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
	gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
	gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
	gfc_conv_intrinsic_iargc): Same.
	* trans-io.c (set_parameter_value, set_parameter_ref, set_string,
	set_flag, add_case, io_result, transfer_namelist_element,
	transfer_expr): Same.
	* trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
	gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
	gfc_trans_integer_select, gfc_trans_logical_select,
	gfc_trans_character_select, gfc_trans_forall_loop,
	gfc_trans_nested_forall_loop, gfc_do_allocate,
	generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
	compute_inner_temp_size, compute_overall_iter_number,
	allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
	gfc_trans_forall_1, gfc_evaluate_where_mask,
	gfc_trans_where_assign, gfc_trans_allocate): Same.
	* trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
	* trans.c (gfc_add_modify_expr, gfc_finish_block,
	gfc_build_array_ref, gfc_build_function_call,
	gfc_trans_runtime_check): Same.

2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-const.c (gfc_conv_mpz_to_tree): Change call to
	build_int_cst to build_int_cst_wide in accordance to Nathan's
	previous patch.

2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>

	* trans-array.c (gfc_trans_array_constructor_value): Adjust
	build_int_cst calls.
	* trans-const.c (gfc_build_string_const, gfc_init_constants,
	gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
	* trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
	gfc_trans_entry_master_switch): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_ibits,
	gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
	* trans-io.c (add_case, set_error_locus,
	transfer_namelist_element, transfer_expr): Likewise.
	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
	gfc_trans_stop, gfc_trans_character_select): Likewise.
	* trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
	* trans.c (gfc_trans_runtime_check): Likewise.

2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-decl.c, trans-types.c: Add and remove blank lines as
	required.

2004-08-24  Richard Henderson  <rth@redhat.com>

	* trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.

2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* resolve.c (merge_argument_lists): Revert unintentionally
	committed change.

2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-decl.c (build_function_decl): Fix spelling in comment.
	(build_entry_thunks): Remove code with no function.
	(gfc_build_intrinsic_function_decls): Remove empty line.

	* resolve.c (resolve_entries): Fix a bunch of comment typos.

2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>

	* f95-lang.c (gfc_init_decl_processing): Adjust
	build_common_tree_nodes call.

2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-types.c: Spelling and formatting fixes.

2004-08-23  Richard Henderson  <rth@redhat.com>

	* trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
	of going through an intermediate string.  Fix 32/64 int/long bug.

2004-08-23  Eric Christopher  <echristo@redhat.com>

	* trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
	usage. Use build_vector_type_for_mode for vector types.

2004-08-22  Richard Henderson  <rth@redhat.com>

	PR 13465
	* data.c (find_con_by_offset): Search ordered list; handle
	elements with repeat counts.
	(gfc_assign_data_value_range): New.
	* gfortran.h (struct gfc_data_value): Make repeat unsigned.
	(gfc_assign_data_value_range): Declare.
	* match.c (top_val_list): Extract repeat count into a temporary.
	* resolve.c (values): Make left unsigned.
	(next_data_value): Don't decrement left.
	(check_data_variable): Use gfc_assign_data_value_range.

2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.

2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* check.c (gfc_check_reduction): Rename to ...
	(check_reduction): ... this. Make static. Don't check type of
	first argument.
	(gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
	* intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
	SUM to use new check functions.
	(check_specific): Change logic to call new functions.
	* intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
	Add prototypes.
	(gfc_check_reduction): Remove prototype.

2004-08-20  Paul Brook  <paul@codesourcery.com>
	Canqun Yang  <canqun@nudt.edu.cn>

	PR fortran/17077
	* trans-array.c (gfc_conv_array_parameter): Pass correct pointer
	for automatic arrays.
	* trans-types.c (gfc_get_nodesc_array_type): Add comment.

2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
	(Port from g95)

	PR fortran/17074
	* match.c (match_simple_forall, match_simple_where): Forward-declare.
	(gfc_match_if): Order statement list alphabetically, add WHERE and
	FORALL, remove double PAUSE.
	(gfc_match_simple_where, match_forall_header,
	gfc_match_simple_forall): New functions.
	(gfc_match_forall): Use match_forall_header.

2004-08-19  Paul Brook  <paul@codesourcery.com>

	PR fortran/17091
	* gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
	* symbol.c (gfc_clear_attr): Use memset.

2004-08-19  Paul Brook  <paul@codesourcery.com>

	PR fortran/14976
	PR fortran/16228
	* data.c (assign_substring_data_value): Remove.
	(create_character_intializer): New function.
	(gfc_assign_data_value): Track the typespec for the current
	subobject.  Use create_character_intializer.

2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>

	PR fortran/16946
	* check.c (gfc_check_reduction): New function.
	(gfc_check_minval_maxval): Removed.
	(gfc_check_product): Removed.
	(gfc_check_sum): Removed.
	* intrinsic.h: Add/remove declarations for these.
	* gfortran.h: Add field f3red to union gfc_check_f.
	* intrinsic.c (add_sym_3red): New function.
	(add_functions): Register maxval, minval, product, and sum intrinsics
	through add_sym_3red.
	(check_specific): Handle f3red union field.
	* iresolve.c: Whitespace change.

2004-08-18  Paul Brook  <paul@codesourcery.com>

	* trans-types.c (gfc_sym_type): Use pointer types for optional args.

2004-08-18  Victor Leikehman  <lei@il.ibm.com>

	PR fortran/13278
	* trans-io.c (transfer_namelist_element): New. Recursively handle
	derived-type variables.  Pass string lengths.
	(build_dt): Code moved to build_namelist, with some
	changes and additions.
	(gfc_build_io_library_fndecls): Declare the fifth
	argument in st_set_nml_var_char -- string_length.

2004-08-17  Paul Brook  <paul@codesourcery.com>
	Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13082
	* decl.c (get_proc_name): Update mystery comment.
	(gfc_match_entry): Check for errors earlier.  Add entry point to list.
	* dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
	* gfortran.h (symbol_attribute): Add entry_master.  Document entry.
	(struct gfc_entry_list): Define.
	(gfc_get_entry_list): Define.
	(struct gfc_namespace): Add refs and entries.
	(enum gfc_exec_op): Add EXEC_ENTRY.
	(struct gfc_code): Add ext.entry.
	* module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
	(mio_symbol_attribute): Don't save/reture addr->entry.
	(mio_namespace_ref): Refcount namespaces.
	* parse.c (accept_statement): Handle ST_ENTRY.
	(gfc_fixup_sibling_symbols): Mark symbol as referenced.
	(parse_contained): Fixup sibling references to entry points
	after parsing the procedure body.
	* resolve.c (resolve_contained_fntype): New function.
	(merge_argument_lists, resolve_entries): New functions.
	(resolve_contained_functions): Use them.
	(resolve_code): Handle EXEC_ENTRY.
	(gfc_resolve): Call resolve_entries.
	* st.c (gfc_free_statement): Handle EXEC_ENTRY.
	* symbol.c (gfc_get_namespace): Refcount namespaces.
	(gfc_free_namespace): Ditto.
	* trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
	optional when multiple entry points are present.
	* trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
	(gfc_get_extern_function_decl): Add assertion.  Fix coment.
	(create_function_arglist, trans_function_start, build_entry_thunks):
	New functions.
	(gfc_build_function_decl): Rename ...
	(build_function_decl): ... to this.
	(gfc_create_function_decl): New function.
	(gfc_generate_contained_functions): Use it.
	(gfc_trans_entry_master_switch): New function.
	(gfc_generate_function_code): Use new functions.
	* trans-stmt.c (gfc_trans_entry): New function.
	* trans-stmt.h (gfc_trans_entry): Add prototype.
	* trans-types.c (gfc_get_function_type): Add entry point argument.
	* trans.c (gfc_trans_code): Handle EXEC_ENTRY.
	(gfc_generate_module_code): Call gfc_create_function_decl.
	* trans.h (gfc_build_function_decl): Remove.
	(gfc_create_function_decl): Add prototype.

2004-08-15  Andrew Pinski  <apinski@apple.com>

	PR fortran/17030
	* f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
	for cabs{,f} and copysign{,f}.
	* trans-decl.c (gfor_fndecl_math_cabsf): Delete.
	(gfor_fndecl_math_cabs): Delete.
	(gfor_fndecl_math_sign4): Delete.
	(gfor_fndecl_math_sign8): Delete.
	(gfc_build_intrinsic_function_decls): Remove the
	initializing of cabs{,f} and copysign{,f} functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
	instead of the functions definitions.
	(gfc_conv_intrinsic_sign): Likewise.
	* trans.h (gfor_fndecl_math_cabsf): Delete.
	(gfor_fndecl_math_cabs): Delete.
	(gfor_fndecl_math_sign4): Delete.
	(gfor_fndecl_math_sign8): Delete.

2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>

	* trans-array.c (gfc_trans_array_constructor_value): Use
	build_int_cst.
	* trans-const.c (gfc_build_string_const,
	gfc_init_constants, gfc_conv_mpz_to_tree,
	gfc_conv_constant_to_tree): Likewise.
	* trans-decl.c (gfc_get_symbol_decl): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_ibits,
	gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
	* trans-io.c (add_case, set_error_locus, build_dt,
	transfer_expr): Likewise.
	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
	gfc_trans_stop, gfc_trans_character_select): Likewise.
	* trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
	* trans.c (gfc_trans_runtime_check): Likewise.

2004-08-14  Paul Brook  <paul@codesourcery.com>

	* trans-decl.c (gfc_build_function_decl): Remove dead code.

2004-08-14  Paul Brook  <paul@codesourcery.com>

	* trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.

2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.h: Add comments.
	* parse.c (parse_contained): Fix comment typo.
	* resolve.c (was_declared): Ditto.
	* symbol.c: Ditto.

2004-08-11  Paul Brook  <paul@codeourcery.com>

	PR fortran/16917
	* intrinsic.c (add_functions): Add dfloat as an alias for dble.

2004-08-10  Richard Henderson  <rth@redhat.com>

	* f95-lang.c (gfc_init_builtin_functions): Remove
	 __builtin_stack_alloc, add __builtin_alloca.
	* trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
	* trans-decl.c (gfc_trans_auto_character_variable): Likewise.

2004-08-10  Paul Brook  <paul@codesourcery.com>

	* trans-io.c (transfer_expr): Handle pointters.

2004-08-10  Paul Brook  <paul@codesourcery.com>

	PR fortran/16919
	* trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
	(gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
	(gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
	Handle GFC_SS_COMPONENT.
	(gfc_conv_ss_startstride): Ditto.  Set ss->shape.
	(gfc_conv_loop_setup): Tweak commends. Remove dead code.
	Use ss->shape.
	(gfc_conv_array_initializer): Call specific initializer routines.
	* trans-expr.c (gfc_trans_structure_assign): New function.
	(gfc_trans_subarray_assign): New function.
	(gfc_trans_subcomponent_assign): New fucntion
	(gfc_conv_structure): Use them.
	* trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
	(gfc_ss): Add shape.

2004-08-08  Victor Leikehman  <lei@il.ibm.com>

	* simplify.c (gfc_simplify_shape): Bugfix.
	* expr.c (gfc_copy_shape_excluding): New function.
	* gfortran.h (gfc_get_shape): Bugfix.
	(gfc_copy_shape_excluding): Added declaration.
	* iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
	gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
	gfc_resolve_ubound, gfc_resolve_transpose): Added compile
	time resolution of shape.

2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>

	* intrinsic.c (add_subroutines): Add getenv and
	get_environment_variable. (add_sym_5s): New function.
	* intrinsic.h (gfc_resolve_get_environment_variable): Add
	prototype.
	* iresolve.c (gfc_resolve_get_environment_variable): New
	function.

2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>

	* f95-lang.c (gfc_init_builtin_functions): Fix the number of
	__builtin_pow[f] arguments.

2004-08-06  Steven G. Kargl  <kargls@comcast.net>

	* arith.c: Add #define for model numbers.  Remove global GMP variables.
	(natural_logarithm,common_logarithm,exponential,sine,
	cosine,arctangent,hypercos,hypersine ): Remove.
	(gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
	(arctangent2,gfc_arith_init_1,gfc_arith_done_1
	gfc_check_real_range, gfc_constant_result, gfc_range_check,
	gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
	gfc_arith_divide,complex_reciprocal,complex_pow_ui,
	gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
	gfc_convert_complex,gfc_int2real,gfc_int2complex,
	gfc_real2int,gfc_real2real,gfc_real2complex,
	gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
	to MPFR, use new functions.
	* arith.h: Remove extern global variables.
	(natural_logarithm,common_logarithm,exponential, sine, cosine,
	arctangent,hypercos,hypersine): Remove prototypes.
	(arctangent2): Update prototype from GMP to MPFR.
	(gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
	* dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
	* expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
	* gfortran.h (GFC_REAL_BITS): Remove.
	(arith): Add ARITH_NAN.
	Include mpfr.h.  Define GFC_RND_MODE.
	Rename GCC_GFORTRAN_H GFC_GFC_H.
	(gfc_expr): Convert GMP to MPFR.
	* module.c: Add arith.h, correct type in comment.
	(mio_gmp_real): Convert GMP to MPFR.
	(mio_expr):  Use gfc_set_model_kind().
	* primary.c:  Update copyright date with 2004.
	(match_real_constant,match_const_complex_part): Convert GMP to MPFR.
	* simplify.c: Remove global GMP variables
	(gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
	gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
	gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
	gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
	gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
	gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
	gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
	gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
	gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
	gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
	gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
	gfc_simplify_rrspacing,gfc_simplify_scale,
	gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
	gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
	gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
	gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
	Use new functions.
	* trans-const.c (gfc_conv_mpfr_to_tree): Rename from
	gfc_conv_mpf_to_tree.  Convert it to use MPFR
	(gfc_conv_constant_to_tree): Use it.
	* trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
	* trans-intrinsic.c: Add arith.h, remove gmp.h
	(gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.

2004-08-06  Victor Leikehman  <lei@il.ibm.com>
	Paul Brook  <paul@codesourcery.com>

	* trans-array.c (gfc_trans_allocate_array_storage,
	gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
	gfc_conv_loop_setup): For functions, if the shape of the result
	is not known in compile-time, generate an empty array descriptor for
	the result and let the callee to allocate the memory.
	(gfc_trans_dummy_array_bias): Do nothing for pointers.
	(gfc_conv_expr_descriptor): Use function return values directly.
	* trans-expr.c (gfc_conv_function_call): Always add byref call
	insn to pre chain.
	(gfc_trans_pointer_assignment): Add comments.
	(gfc_trans_arrayfunc_assign): Don't chain on expression.

2004-08-01  Roger Sayle  <roger@eyesopen.com>

	* options.c (gfc_init_options): Don't warn about the use GNU
	extensions by default.
	(gfc_post_options): Warn about GNU extensions with -pedantic.
	(gfc_handle_option): Don't warn about GNU extensions with -std=gnu.

2004-07-30  Richard Henderson  <rth@redhat.com>

	* trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
	for TREE_CONSTANTs.

2004-07-25  Richard Henderson  <rth@redhat.com>

	* trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
	and DECL_IGNORED_P on RESULT_DECL.
	(gfc_generate_constructors): Likewise.

2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16465
	* lang.opt (ffixed-line-length-none, ffixed-line-length-): New
	options.
	(ffixed-line-length-80, ffixed-line-length-132): Remove.
	* options.c (gfc_handle_options): Deal with changed options.
	* scanner.c (load_line): Change second arg to 'char **',
	allocate if pointing to NULL. Keep track of buffer's length.
	Adapt buffer size to overlong lines. Pad lines to full length
	in fixed form.
	(load_file): Adapt to new interface of load_line.

2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>

	* trans.h (builtin_function): Declare.

2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16404
	(parts ported from g95)
	* parse.h (gfc_state_data): New field do_variable.
	(gfc_check_do_variable): Add prototype.
	* parse.c (push_state): Initialize field 'do_variable'.
	(gfc_check_do_variable): New function.
	(parse_do_block): Remember do iterator variable.
	(parse_file): Initialize field 'do_variable'.
	* match.c (gfc_match_assignment, gfc_match_do,
	gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
	Add previously missing checks.
	(gfc_match_return): Reformat error message.
	* io.c (match_out_tag): New function.
	(match_open_element, match_close_element,
	match_file_element, match_dt_element): Call match_out_tag
	instead of match_vtag where appropriate.
	(match_io_iterator, match_io_element): Add missing check.
	(match_io): Reformat error message.
	(match_inquire_element): Call match_out_tag where appropriate.

	* parse.c (gfc_check_do_variable): Fix error locus.

2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15129
	* trans-decl.c (gfc_build_function_decl): Create a new chardecl
	for every assumed length character dummy argument.

	PR fortran/15140
	* trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.

	PR fortran/13792
	* simplify.c (gfc_simplify_bound): Copy the bound expression.

2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

 	PR fortran/15324
	* trans-array.c gfc_trans_g77_array,
	gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
	for assumed length characters.
	(gfc_conv_expr_descriptor): Set se->string_length if dealing
	with a character expression.
	(gfc_cvonv_array_parameter): Pass string length when passing
	character array according to g77 conventions.

2004-07-12  Paul Brook  <paul@codesourcery.com>

	* expr.c (gfc_check_assign_symbol): Handle pointer assignments.
	* trans-array.c (gfc_trans_auto_array_allocation): Remove
	initialization code.
	* trans-common.c (create_common): Use gfc_conv_initializer.
	* trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
	* trans-expr.c (gfc_conv_initializer): New function.
	(gfc_conv_structure): Use it.
	* trans.h (gfc_conv_initializer): Add prototype.

2004-07-11  Paul Brook  <paul@codesourcery.com>

	PR fortran/15986
	* parse.c (gfc_fixup_sibling_symbols): Also look for untyped
	variables.
	(parse_contained): Mark contained symbols as referenced.

2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16455
	* module.c (gfc_dump_module, gfc_use_module): Print locus
	when opening of module file fails.

	PR fortran/16404
	* io.c (match_io): Flag 'WRITE(...), ...' as extension.

	PR fortran/16404
	* match.c (gfc_match_program): A program name is obligatory.
	(gfc_match_return): RETURN in main program is an extension.
	(gfc_match_block_data): A space is required before a block data
	name.

	PR fortran/16433
	* primary.c (match_boz_constant): Call gfc_notify_std only if
	we actually have a non-standard boz-literal-constant.

	PR fortran/15754
	* expr.c (gfc_check_assign): Print ranks if incompatible. Issue
	warning if assigning NULL().

2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>

	* f95-lang.c (set_block): Remove.
	(gfc_clear_binding_stack): New.
	(LANG_HOOKS_CLEAR_BINDING_STACK): Define.
	(struct binding_level): Remove block_created_by_back_end.
	(clear_binding_level): Likewise.
	(poplevel): Don't handle block_created_by_back_end.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-decl.c (gfc_create_module_variable): Nothing to do if
	symbol is in common, because we ...
	(gfc_generate_module_vars): Call gfc_trans_common.

2004-07-10  Paul Brook  <paul@codesourcery.com>

	* trans-array.c (gfc_build_null_descriptor): New function.
	(gfc_trans_static_array_pointer): Use it.
	* trans-array.h (gfc_build_null_descriptor): Add prototype.
	* trans-expr.c (gfc_conv_structure): Handle array pointers.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16336
	* decl.c (gfc_match_save): Use-associated common block
	doesn't collide.
	* gfortran.h (gfc_common_head): Add new field 'name'.
	Fix typo in comment after #endif.
	* match.c (gfc_get_common): Add new argument from_common,
	mangle name if flag is set, fill in new field in structure
	gfc_common_head.
	(match_common): Set new arg in call to gfc_get_common,
	use-associated common block doesn't collide.
	* match.h (gfc_get_common): Adapt prototype.
	* module.c (load_commons): Set new arg in call to
	gfc_get_common.
	* symbol.c (free_common_tree): New function.
	(gfc_free_namespace): Call new function.
	* trans-common.c (several functions): Remove argument
	'name', use name from gfc_common_head instead.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
	and RHS match. Return early if the RHS is NULL().

	PR fortran/16336
	* match.c (match_common): Fix error reporting for used common.

	PR fortran/15969
	* trans-expr.c (gfc_conv_structure): Handle initialization
	of scalar pointer components.

	* parse.c (decode_statement): Fix matching of BLOCK DATA.

	* trans-decl.c (generate_local_decl): Remove workaround obsoleted
	by fix for PR 15481.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-common.c: Fix whitespace issues, make variable names
	more readable.
	(create_common): Additionally, make loop logic more obvious.

2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
	Paul Brook  <paul@codesourcery.com>

	PR fortran/13415
	* trans-common.c (calculate_length): Remove ...
	(get_segment_info): Merge into here.  Save field type.
	(build_field): Use saved type.
	(create_common, new_condition, new_segment, finish_equivalences):
	Use new get_segment_info.
	* trans-types.c: Update comment.

2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/14077
	* moduele.c (mio_symbol): Don't I/O initial values unless
	symbol is a parameter.

2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13201
	* resolve.c (resolve_symbol): Verify that the shape of a
	parameter array is not only explicit, but also constant.
	* array.c (gfc_is_compile_time_shape): New function.
	* gfortran.h (gfc_is_compile_time_shape): Add prototype.

2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15481
	PR fortran/13372
	PR fortran/13575
	PR fortran/15978
	* module.c (write_symbol, write_symtree): Remove workaround.
	* primary.c (match_actual_arglist): Enhance comment.
	(gfc_match_rvalue): Handle function call with first argument
	a keyword argument correctly.
	* resolve.c (resolve_symbol): Change call to
	gfc_set_default_type to issue error if no implicit type
	can be found.
	* trans-decl.c (gfc_create_module_variable): Remove workaround.

2004-07-08  Paul Brook  <paul@codesourcery.com>

	* intrinsic.c (add_sym_4s): New function.
	(add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.

2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
	Paul Brook  <paul@codesourcery.com>

	PR fortran/15280
	PR fortran/15665
	* gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
	GFC_ISYM_COMMAND_ARGUMENT_COUNT.
	* intrinsic.c (add_functions):  Identify iargc.  Add
	command_argument_count.
	(add_subroutines): Resolve getarg.  Add get_command and
	get_command_argument.
	* intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
	gfc_resolve_get_command_argument): Add prototypes.
	* iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
	gfc_resolve_get_command_argument): New functions.
	* trans-decl.c (gfor_fndecl_iargc): New variable.
	(gfc_build_intrinsic_function_decls): Set it.
	* trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
	(gfc_conv_intrinsic_function): Use it.
	* trans.h (gfor_fndecl_iargc): Declare.

2004-07-04  Matthias Klose  <doko@debian.org>

	* Make-lang.in: Generate and install gfortran man page.
	* invoke.texi: Remove extra '@c man end'.

2004-07-04  Richard Henderson  <rth@redhat.com>

	* f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.

2004-07-04  Paul Brook  <paul@codesourcery.com>

	* decl.c (gfc_match_implicit_range): Don't use typespec.
	(gfc_match_implicit): Handle character selectors.
	* gfortran.h (gfc_set_implicit): Remove prototype.
	(gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
	* parse.c (accept_statement): Don't call gfc_set_implicit.
	* symbol.c (new_ts): Remove.
	(gfc_set_implicit_none): Use same loop bounds as other functions.
	(gfc_set_implicit): Remove.
	(gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
	(gfc_merge_new_implicit): Combine with gfc_set_implicit.

2004-06-30  Richard Henderson  <rth@redhat.com>

	* match.c (var_element): Remove unused variable.

	* trans-decl.c (gfc_generate_function_code): Don't set
	x_whole_function_mode_p.
	(gfc_generate_constructors): Likewise.

2004-06-30  Richard Henderson  <rth@redhat.com>

	* trans-decl.c (gfc_generate_function_code): Don't set
	immediate_size_expand.
	(gfc_generate_constructors): Likewise.

2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16161
	* decl.c (gfc_match_type_spec): Rename second argument to
	'implicit_flag', reverse meaning. Don't match_char_spec if
	'implicit_flag' is set. Rename to ...
	(match_type_spec): ... this.
	(gfc_match_implicit_none, match_implicit_range): Move here
	from match.c.
	(gfc_match_implicit): Move here from match.c, try to
	match_char_len if match_implicit_range doesn't succeed for
	CHARACTER implicits. Call renamed fucntion match_type_spec.
	(gfc_match_data_decl, match_prefix): Call renamed function
	match_type_spec.
	* match.c (gfc_match_implicit_none, match_implicit_range,
	gfc_match_implicit): Move to decl.c.
	* match.h (gfc_match_implicit_none, gfc_match_implicit):
	Move protoypes to section 'decl.c'.
	(gfc_match_type_spec): Remove prototype.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
	copyright years.

2004-06-29  Steven Bosscher  <stevenb@suse.de>

	Make sure types in assignments are compatible.  Mostly mechanical.
	* trans-const.h (gfc_index_one_node): New define.
	* trans-array.c (gfc_trans_allocate_array_storage,
	gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
	gfc_trans_array_constructor_value, gfc_trans_array_constructor,
	gfc_conv_array_ubound, gfc_conv_array_ref,
	gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
	gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
	gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
	gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
	types in assignments, conversions and conditionals for expressions.
	* trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
	gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
	gfc_conv_function_call, gfc_trans_pointer_assignment,
	gfc_trans_scalar_assign): Likewise.
	* trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
	gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
	gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
	gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
	gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
	gfc_conv_allocated, gfc_conv_associated,
	gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
	* trans-io.c (set_string): Likewise.
	* trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
	gfc_do_allocate, generate_loop_for_temp_to_lhs,
	generate_loop_for_rhs_to_temp, compute_inner_temp_size,
	compute_overall_iter_number, gfc_trans_assign_need_temp,
	gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
	gfc_evaluate_where_mask, gfc_trans_where_assign,
	gfc_trans_where_2): Likewise.
	* trans-types.c (gfc_get_character_type, gfc_build_array_type,
	gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.

	* trans.c (gfc_add_modify_expr): Add sanity check that types
	for the lhs and rhs are the same for scalar assignments.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* dump-parse-tree.c (show_common): New function.
	(gfc_show_namespace): Show commons.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
	Andrew Vaught  <andyv@firstinter.net>

	PR fortran/13249
	PR fortran/15481
	* decl.c (gfc_match_save): Adapt to new common structures,
	don't allow saving USE-associated common.
	* dump-parse-tree (gfc_show_attr): (saved_)common are not
	symbol attributes any longer.
	(gfc_show_symbol): Don't show old-style commons any longer.
	(gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
	interface.
	* gfortran.h (symbol_attribute): Remove common and saved_common
	attributes.
	(gfc_symbol): Remove common_head element.
	(gfc_common_head): New struct.
	(gfc_get_common_head): New macro.
	(gfc_symtree): Add field 'common' to union.
	(gfc_namespace): Add field 'common_root'; change type of field
	'blank_common' to blank_common.
	(gfc_add_data): New prototype.
	(gfc_traverse_symtree): Expect a symtree as first argument
	instead of namespace.
	* match.c (gfc_get_common): New function.
	(match_common_name): Change to take char * as argument, adapt,
	fix bug with empty name.
	(gfc_match_common): Adapt to new data structures. Disallow
	redeclaration of USE-associated COMMON-block. Fix bug with
	empty common.
	(var_element): Adapt to new common structures.
	* match.h (gfc_get_common): Declare.
	* module.c: Add 2004 to copyright years, add commons to module
	file layout description.
	(ab_attribute, attr_bits, mio_symbol_attributes): Remove code
	for removed attributes.
	(mio_symbol): Adapt to new way of storing common relations.
	(load_commons): New function.
	(read_module): Skip common list on first pass, load_commons at
	second.
	(write_commons): New function.
	(write_module): Call write_commons().
	* symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
	functions related to removed attributes.
	(gfc_add_data): New function.
	(gfc_clear_attr): Don't set removed attributes.
	(gfc_copy_attr): Don't copy removed attributes.
	(traverse_symtree): Remove.
	(gfc_traverse_symtree): Don't traverse symbol
	tree of the passed namespace, but require a symtree to be passed
	instead. Unify with traverse_symtree.
	(gfc_traverse_ns): Call gfc_traverse_symtree according to new
	interface.
	(save_symbol): Remove setting of removed attribute.
	* trans-common.c (gfc_sym_mangled_common_id): Change to
	take 'char *' argument instead of 'gfc_symbol'.
	(build_common_decl, new_segment, translate_common): Adapt to new
	data structures, add new
	argument name.
	(create_common): Adapt to new data structures, add new
	argument name. Fix typo in intialization of derived types.
	(finish_equivalences): Add second argument in call to
	create_common.
	(named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
	(gfc_trans_common): Adapt to new data structures.
	* trans-decl.c (gfc_create_module_variables): Remove test for
	removed attribute.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* io.c: Add 2004 to copyright years.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
	Andrew Vaught  <andyv@firstinter.net>

	* gfortran.h (gfc_gsymbol): New typedef.
	(gfc_gsym_root): New variable.
	(gfc_get_gsymbol, gfc_find_gsym): New prototypes.
	* parse.c (global_used): New function.
	(parse_block_data): Check for double empty BLOCK DATA,
	use global symbol table.
	(parse_module): Use global symbol table.
	(add_global_procedure, add_global_program): New functions.
	(gfc_parse_file): Use global symbol table.
	* symbol.c (gfc_gsym_root): New variable.
	(gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
	functions.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* module.c (mio_gmp_real): Correct writing of negative numbers.

2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15963
	* expr.c (check_intrinsic_op): Allow comparison of characters.
	Make logic easier.

2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
	Andrew Vaught  <andyv@firstinter.net>

	* decl.c (contained_procedure): New function.
	(match_end): Verify correctness of END STATEMENT in
	all cases.

2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
	Andrew Vaught  <andyv@firstinter.net>

	PR fortran/15190
	* decl.c (gfc_match_type_spec), io.c (match_io), parse.c
	(decode_statement): Enforce required space in free-form.

2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
	* trans-array.c (gfc_conv_descriptor_data): Add operand
	for COMPONENT_REF.
	(gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
	(gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
	(gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
	* trans-common.c (create_common): Likewise.
	* trans-expr.c (gfc_conv_component_ref): Likewise.
	* trans-io.c (set_parameter_value): Likewise.
	(set_parameter_ref, set_string, set_flag, io_result): Likewise.
	(transfer_expr): Likewise.
	* trans-decl.c (gfc_trans_auto_character_variable):
	Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
	(gfc_gimplify_function): New function.
	(gfc_generate_function-code): Properly handle nested functions.
	* trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.

2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>

	PR fortran/15750
	* io.c (gfc_match_inquire): Bugfix for iolength related stuff.
	(gfc_resolve_inquire): Resolve the iolength tag.  Return
	SUCCESS at end of function if no failure has occured.
	* resolve.c (resolve_code): Resolve if iolength is encountered.
	* trans-io.c: (ioparm_iolength, iocall_iolength,
	iocall_iolength_done): New variables.
	(last_dt): Add IOLENGTH.
	(gfc_build_io_library_fndecls ): Set iolength related variables.
	(gfc_trans_iolength): Implement.
	(gfc_trans_dt_end): Treat iolength as a third form of data transfer.

2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de

	PR fortran/15511
	* scanner.c (load_line): Don't truncate preprocessor lines.
	Reformat error message.
	(preprocessor_line): Issue warning in case of malformed
	preprocessor line.

2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* resolve.c (resolve_symbol): Add comment in function body.
	(check_data_variable): Change type of mark to ar_type, adapt code
	accordingly.

2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* array.c (gfc_insert_constructor): Avoid redundant call to
	mpz_comp. Add 2004 to copyright years.

2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>

	* trans.h (stmtblock_t): Change has_scope to unsigned int.

2004-06-20  Steven G. Kargl  <kargls@comcast.net>

	* arith.c (gfc_range_check): correct complex underflow.

2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15962
	* match.c (match_case_selector): Call gfc_match_init_expr
	instead of gfc_match_expr.
	* resolve.c (validate_case_label_expr): No need to check for
	constant, since it wouldn't have been matched with the fix to
	match.c.

2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15211
	* trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
	of strings.

2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15510
	* trans-deecl.c (generate_local_decl): Do not issue warning for
	unused variables if they're use associated.

2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
	Andrew Vaught <andyv@firstinter.net>

	PR fortran/14928
	* gfortran.h (gfc_check_f): Add new field f3ml.
	* check.c (gfc_check_minloc_maxloc): Take argument list instead
	of individual arguments, reorder if necessary.
	* intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
	* intrinsic.c (add_sym_3ml): New function.
	(add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
	(check_specific): Catch special case MINLOC, MAXLOC.

2004-06-14  Paul Brook  <paul@codesourcery.com>

	* intrinsic.c (add_sym_2s): Use correct function types.

2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
	* data.c (gfc_get_section_index):  Remove dependency on trans.h.

2004-06-12  Steven G. Kargl  <kargls@comcast.net>

	* check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
	gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
	* gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
	GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
	* trans-intrinsic.c:  Use symbols.
	* intrinsic.c (add_sym_2s): New function.
	* intrinsic.c: Add etime, dtime, irand, rand, second, srand.
	* intrinsic.h: Function prototypes.
	* iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
	gfc_resolve_srand):  New functions.

2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/14957
	* decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
	contained procedure.

2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/12841
	* interface.c (compare_parameter, compare_actual_formal): Don't
	check types and array shapes for NULL()
	* trans-expr.c (conv_function_call): No double indirection for
	NULL()

2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>

	* trans-expr.c (gfc_conv_cst_int_power): Compute
	x**(-n) by converting it to (1/x)**n instead of
	1/x**n.

2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13372
	* module.c (write_symbol, write_symtree): Don't write symbols
	wrongly added to namespace.
	* trans-decl.c (gfc_create_module_variable): Don't create a
	backend decl for a symbol incorrectly added to namespace.

2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13201
	* resolve.c (resolve_symbol): Verify that parameter array has an
	explicit shape. Fix typos and coding style issues in surrounding
	lines.

2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15478
	* gfortran.texi: The documentation doesn't contain infomration on
	how to report bugs, and shouldn't, so remove the line which
	says it does.

2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* intrinsic.c (sort_actual): Keep track of type of missing
	arguments. (Missing from previous commit.)

2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.h (gfc_actual_arglist): New field missing_arg_type.
	* interface.c (compare_actual_formal): Keep type of omitted
	optional arguments.
	* trans-expr.c (gfc_conv_function_call): Add string length
	argument for omitted string argument.

2004-06-03  Paul Brook  <paul@codesourcery.com>

	* trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
	lists instead of compound expr chains.
	(gfc_trans_code): Annotate statement lists.

2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-array.c: Fix spelling in comments.

2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15557
	* data.c (assign_substring_data_value): New function.
	(gfc_assign_data_value): Call the new function if we're dealing
	with a substring LHS.

2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15477
	* gfortran.h (GFC_VERSION): Remove.
	* gfortran.texi (version-gfortran): Remove, replace by version-GCC
	where used.

2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-types.c: Fix spelling & layout in comments.

2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/14067
	* trans-const.c (gfc_conv_string_init): Allow variable string
	length lower than initialization string length.

2004-05-30  Paul Brook  <paul@codesourcery.com>

	PR fortran/15620
	* trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
	* trans-expr.c (gfc_trans_string_copy): New function.
	(gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
	character lengths.
	(gfc_conv_string_parameter): Use gfc_trans_string_copy.
	* trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
	* trans.h (struct gfc_saved_var): Define.
	(gfc_shadow_sym, gfc_restore_sym): Add prototypes.

2004-05-30  Steven G. Kargl  <kargls@comcast.net>

	* iresolve.c (gfc_resolve_random_number): Clean up conditional.

2004-05-29  Steven G. Kargl  <kargls@comcast.net>

	* simplify.c (gfc_simplify_log): Remove useless line of code.

2004-05-29  Paul Brook  <paul@codesourcery.com>

	* trans-common.c (find_equivalence): Find multiple rules.

2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
	(gfc_current_locus): Declare new global variable.
	* scanner.c (gfc_current_locus, gfc_set_locus): Remove.
	(gfc_current_locus1): Rename ...
	(gfc_current_locus): ... to this.
	(gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
	skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
	gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
	gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
	and gfc_current_locus(), respectively.
	* array.c (match_subscript, gfc_match_array_ref, match_array_list,
	match_array_cons_element, gfc_match_array_constructor):
	Read/modify gfc_current_locus instead of calling gfc_set_locus()
	and gfc_current_locus().
	* decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
	match_attr_spec, gfc_match_function_decl, gfc_match_end,
	attr_decl1, gfc_match_save): Likewise.
	* error.c (error_print, gfc_internal_error): Likewise.
	* expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
	* interface.c (gfc_add_interface): Likewise.
	* io.c (gfc_match_format, match_dt_format, match_dt_element,
	match_io_iterator, match_io): Likewise.
	* match.c (gfc_match_space, gfc_match_eos,
	gfc_match_small_literal_int, gfc_match_st_label,
	gfc_match_strings, gfc_match_name, gfc_match_iterator,
	gfc_match_char, gfc_match, gfc_match_assignment,
	gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
	gfc_match_nullify, gfc_match_call, match_implicit_range,
	gfc_match_implicit, gfc_match_data, match_case_selector,
	gfc_match_case, match_forall_iterator): Likewise.
	* matchexp.c (gfc_match_defined_op_name, next_operator,
	match_level_1, match_mult_operand, match_ext_mult_operand,
	match_add_operand, match_ext_add_operand, match_level_2,
	match_level_3, match_level_4, match_and_operand, match_or_operand,
	match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
	* module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
	* parse.c (match_word, decode_statement, next_free, next_fixed,
	add_statement, verify_st_order, parse_if_block, gfc_parse_file):
	Likewise.
	* primary.c (match_digits, match_integer_constant,
	match_boz_constant, match_real_constant, match_substring,
	next_string_char, match_charkind_name, match_string_constant,
	match_logical_constant, match_const_complex_part,
	match_complex_constant, match_actual_arg, match_keyword_arg,
	gfc_match_actual_arglist, gfc_match_structure_constructor,
	gfc_match_rvalue, gfc_match_variable): Likewise.
	* st.c (gfc_get_code): Likewise.
	* symbol.c (check_conflict, check_used, check_done,
	duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
	gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
	gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.

2004-05-26  Roger Sayle  <roger@eyesopen.com>

	* io.c (format_asterisk): Silence compiler warnings by correcting
	the number of elements of a "locus" initializer.

2004-05-25  Roger Sayle  <roger@eyesopen.com>

	PR fortran/13912
	* matchexp.c: Allow unary operators after arithmetic operators
	as a GNU extension.
	(match_ext_mult_operand, match_ext_add_operand): New functions.
	(match_mult_operand): Tweak to call match_ext_mult_operand.
	(match_add_operand): Tweak to call match_ext_mult_operand.
	(match_level_2): Rearrange to call match_ext_add_operand.

2004-05-25  Paul Brook  <paul@codesourcery.com>

	* expr.c (check_inquiry): Remove bogus tests.

2004-05-23  Paul Brook  <paul@codesourcery.com>

	PR fortran/13773
	* expr.c (restricted_args): Remove redundant checks/argument.
	(external_spec_function): Update to match.
	(restricted_intrinsic): Rewrite.

2004-05-23  Paul Brook  <paul@codesourcery.com>
	Victor Leikehman  <lei@haifasphere.co.il>

	* gfortran.h (struct gfc_symbol): Add equiv_built.
	* trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
	messages.
	(current_length): Remove.
	(add_segments): New function.
	(build_equiv_decl): Create initialized common blocks.
	(build_common_decl): Always add decl to bindings.
	(create_common): Create initializers.
	(find_segment_info): Reformat to match coding conventions.
	(new_condition): Use add_segments.
	(add_condition, find_equivalence, add_equivalences): Move iteration
	inside functions.  Only process each segment once.
	(new_segment, finish_equivalences, translate_common): Simplify.

2004-05-23  Steven G. Kargl  <kargls@comcast.net>

	* check.c (gfc_check_random_seed): Issue for too many arguments.

2004-05-22  Steven G. Kargl  <kargls@comcast.net>

	* intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.

2004-05-22  Paul Brook  <paul@codesourcery.com>

	* dump-parse-tree.c (gfc_show_equiv): New function.
	(gfc_show_namespace): Use it.

2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>

	PR fortran/13249
	* symbol.c (gfc_add_common): Disable checks to work around other more
	fundamental inadequacies.

2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
	only for functions.
	(gfc_build_function_decl): Likewise.

2004-05-22  Steven G. Kargl  <kargls@comcast.net>

	* check.c (gfc_check_system_clock): New function.
	* intrinsic.c (add_sym_3s): New function.
	(add_subroutines): Use it.
	* intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
	Add prototypes.
	* iresolve.c (gfc_resolve_system_clock): New function.

2004-05-22  Steven G. Kargl  <kargls@comcast.net>

	* invoke.texi: Document -Wunderflow and spell check.
	* lang.opt: Add Wunderflow.
	* gfortran.h (gfc_option_t): Add warn_underflow option.
	* options.c (gfc_init_options, set_Wall): Use it.
	* primary.c (match_real_constant): Explicitly handle UNDERFLOW.
	* arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
	gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
	gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
	* arith.c (common_logarithm): Fix typo in comment.

2004-05-21  Roger Sayle  <roger@eyesopen.com>

	* io.c (check_format): As a GNU extension, allow the comma after a
	string literal to be optional in a format.  Use gfc_notify_std to
	issue an error/warning as appropriate.

2004-05-21  Roger Sayle  <roger@eyesopen.com>

	* io.c (check_format): Use gfc_notify_std to determine whether to
	issue an error/warning for omitting the digits from the X format.

2004-05-20  Roger Sayle  <roger@eyesopen.com>

	* io.c (check_format): Allow the number before the X format to
	be optional when not -pedantic.

2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
	Paul Brook  <paul@codesourcery.com>

	* f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
	Create decls for __builtin_pow{,f}.
	* gfortran.h (PREFIX_LEN): Define.
	* trans-decl.c (gfor_fndecl_math_powi): Add.
	(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
	(gfc_build_intrinsic_function_decls): Create decls for powi.
	* trans-expr.c (powi_table): Add.
	(gfc_conv_integer_power): Remove.
	(gfc_conv_powi): New function.
	(gfc_conv_cst_int_power): New function.
	(gfc_conv_power_op): Use new powi routines.
	* trans.h (struct gfc_powdecl_list): Add.
	(gfor_fndecl_math_powi): Add.
	(gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.

2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans.c, trans-decl.c: Fix comment typos.

2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-const.c (gfc_conv_mpf_to_tree): Fix typo.

2004-05-18  Steve Kargl  <kargls@comcast.net>

	* arith.c (gfc_int2complex): Fix incorrect range checking.

2004-05-18  Paul Brook  <paul@codesourcery.com>

	PR fortran/13930
	* decl.c (add_init_expr_to_sym): Remove incorrect check.
	(default_initializer): Move to expr.c.
	(variable_decl): Don't assign default initializer to variables.
	* expr.c (gfc_default_initializer): Move to here.
	* gfortran.h (gfc_default_initializer): Add prototype.
	* resolve.c (resolve_symbol): Check for illegal initializers.
	Assign default initializer.

2004-05-17  Steve Kargl  <kargls@comcast.net>

	* arith.c (gfc_arith_power): Complex number raised to 0 power is 1.

2004-05-17  Steve Kargl  <kargls@comcast.net>

	* arith.c (gfc_real2complex): Range checking wrong part of complex
	number.

2004-05-16  Paul Brook  <paul@codesourcery.com>

	* options.c (gfc_handle_module_path_options): Fix buffer overrun.

2004-05-16  Paul Brook  <paul@codesourcery.com>

	* arith.c (gfc_range_check): Fix logic error.

2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>

	* arith.c: Fix comment typos.

2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13742
	* decl.c (add_init_expr_to_sym): Verify that COMMON variable is
	not initialized in a disallowed fashion.
	* match.c (gfc_match_common): Likewise.
	(var_element): Verify that variable is not in the blank COMMON,
	if it is in a common.

2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>

	* Make-lang.in (f95.generated-manpages): Remove.
	(f95.srcextra): New.
	(f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
	f95.maintainer-clean): Generate info and dvi files in objdir/doc.
	(f95.dvi): Remove.
	(dvi): New.
	(f95.install-info): Remove.
	(install-info): New.

2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>

	* decl.c (add_init_expr_to_sym): Check for variable size arrays.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* primary.c (match_boz_constant): Use gfc_notify_std() for
	issuing a warning or an error.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13826
	* primary.c (match_structure_constructor): Rename ...
	(gfc_match_structure_constructor): ... to this. Make non-static.
	(gfc_match_rvalue): Call renamed function.
	* match.h (gfc_match_structure_constructor): Declare.
	* match.c (gfc_match_data_constant): Handle structure
	constructor.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13702
	(Port from g95)
	* gfortran.h (gfc_linebuf): New typedef.
	(linebuf): Remove.
	(gfc_file): Revamped, use new gfc_linebuf.
	(locus): Revamped, use new types.
	(gfc_current_file): Remove.
	(gfc_current_form, gfc_source_file): New global variables.
	* match.c (gfc_match_space, gfc_match_strings): Use
	gfc_current_form to find source form.
	* module.c (gfc_dump_module): Use gfc_source_file when printing
	module header.
	* error.c (show_locus, show_loci) Use new data structures to print
	locus.
	* scanner.c (first_file, first_duplicated_file, gfc_current_file):
	Remove.
	(file_head, current_file, gfc_current_form, line_head, line_tail,
	gfc_current_locus1, gfc_source_file): New global variables.
	(gfc_scanner_init1): Set new global variables.
	(gfc_scanner_done1): Free new data structures.
	(gfc_current_locus): Return pointer to gfc_current_locus1.
	(gfc_set_locus): Set gfc_current_locus1.
	(gfc_at_eof): Set new variables.
	(gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
	to new locus structure.
	(gfc_check_include): Remove.
	(skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
	(gfc_skip_comments): Use gfc_current_form, find locus with
	gfc_current_locus1.
	(gfc_next_char): Use gfc_current_form.
	(gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
	(load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
	comment formatting.
	(get_file): New function.
	(preprocessor_line, include_line): New functions.
	(load_file): Move down, rewrite to match new data structures.
	(gfc_new_file): Rewrite to match new data structures.
	* parse.c (next_statement): Remove code which is now useless. Use
	gfc_source_form and gfc_source_file where appropriate.
	* trans-decl.c (gfc_get_label_decl): adapt to new data structures
	when determining locus of frontend code.
	* trans-io.c (set_error_locus): Same.
	* trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
	* lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
	preprocessor flags.
	(all): Add missing initializers.

2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* Make-lang.in (trans-common.o): Remove redundant dependency.
	(data.c): Replace object file name ...
	(data.o): ... by the correct one.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* dump-parse-tree.c (gfc_show_array_ref): Print colon only
	for ranges when dumping array references.

2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>

	* decl.c (variable_decl): Always apply default initializer.

2004-05-08  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15206
	* trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
	handle zero correctly.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* match.c (gfc_match): Eliminate dead code.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
	Detect bad continuation line in fixed form sources.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15205
	* iresolve.c (gfc_resolve_nearest): Add new function.
	* intrinsic.h: ... declare it here.
	* intrinsic.c (add_functions): ... add it as resolving function
	for NEAREST.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/14066
	* match.c (gfc_match_do): Allow infinite loops with
	label-do-stmt. Do not enforce space after comma.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15051
	* parse.c (parse_interface): Allow empty INTERFACE, remove
	seen_body.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
	decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
	expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
	intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
	matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
	primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
	trans-array.c, trans-array.h, trans-common.c, trans-const.c,
	trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
	trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
	trans-types.h, trans.c, trans.h: Update copyright years and
	boilerplate.
	* data.c: Likewise, also removed two whitespace-only lines.
	* gfortranspec.c, lang.opt: Update copyright years.

2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/14568
	* trans-decl.c (generate_local_decl): Don't warn for unused
	variables which are in common blocks.

2004-05-13  Diego Novillo  <dnovillo@redhat.com>

	* Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
	trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
	trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].

2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>

	PR fortran/15314
	* trans-expr.c (gfc_conv_structure): Use field type, not expr type.

2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>

	* gfortran.texi: Use @table @emph instead of @itemize @emph.
	Remove "set DEVELOPMENT".
	(Compiling GFORTRAN): Remove.

2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

	* array.c (match_subscript, match_array_ref): Add comments
	explaining argument 'init'.
	* decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
	trans-expr.c, trans.c: Fix some typos in comments.
	* dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
	* primary.c (match_digits, match_integer_constant): Add comment
	explaining signflag.

2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13940
	* primary.c: Include system.h and flags.h, needed for pedantic.
	(match_boz_constant): Allow "x" for hexadecimal constants, warn if
	pedantic is set.

2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13940
	* match.c (match_data_constant): Handle case where
	gfc_find_symbol	sets sym to NULL

2004-04-28  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>

	* Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
	dependency on mathbuiltins.def

2004-04-24  Victor Leikehman  <lei@il.ibm.com>

	* trans-io.c (transfer_expr): Implemented recursive printing
	of derived types.

2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>

	* gfortranspec.c: Do not include multilib.h.

2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
	2004 to copyright years.
	* trans-expr.c, trans-decl.c: Comment update, we now generate
	GENERIC, not SIMPLE. Add 2004 to copyright years.

2004-04-24  Paul Brook  <paul@codesourcery.com>

	* Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).

2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>

	PR 14817
	* arith.c (gfc_arith_divide): Fix complex divide.

2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>

	* gfortranspec.c: Include the target headers.

2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/14921
	PR fortran/14540
	* arith.c (arctangent2): New function.
	* arith.h (arctangent2): Add function prototype.
	* simplify.c (gfc_simplify_atan2): Use it.
	(gfc_simplify_log): Use it.

2004-04-12  Diego Novillo  <dnovillo@redhat.com>

	* fortran/f95-lang.c (gfc_expand_stmt): Remove.
	(LANG_HOOKS_RTL_EXPAND_STMT): Remove.

2004-04-11  Bud Davis  <bdavis9659@comcast.net>

	PR fortran/14872
	* trans-io.c (build_dt): Change REC to value.

2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>

	PR 14394
	* trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
	the real value when converting mpf to string.

2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>

	PR 14395
	* trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
	the result.

2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/14377
	* simplify.c (simplify_min_max): Convert the type of the result.

2004-04-11  Paul Brook  <paul@codesourcery.com>

	* gfortran.texi: Use full target triplet.

2004-04-11  Paul Brook  <paul@codesourcery.com>

	* Make-lang.in (GFORTRAN_TEXI): Set it.
	(fortran/dfortran.dvi): Use it.  Add fortran to include paths.
	(fortran/gfortran.info): Ditto.
	* gfortran.texi: Major update.
	* invoke.texi: New file.

2004-04-10  Paul Brook  <paul@codesourcery.com>

	* trans-array.c (gfc_trans_allocate_temp_array,
	gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
	* trans-decl.c (gfc_build_dummy_array_decl,
	gfc_get_symbol_decl, gfc_build_function_decl,
	gfc_create_module_variable): Ditto.
	* trans-expr.c (gfc_conv_variable): Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
	* trans.h (GFC_DECL_STRING): Remove.
	(GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
	GFC_DECL_ASSIGN): Renumber flags.

2004-04-05  Paul Brook  <paul@codesourcery.com>

	PR 13252
	PR 14081
	* f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
	and stack_restore.
	* gfortran.h (struct gfc_charlen): Add backend_decl.
	* trans-array.c (gfc_trans_allocate_temp_array,
	gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
	(gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
	Remove old, broken string handling.
	(gfc_trans_auto_array_allocation, gfc_trans_g77_array,
	gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
	gfc_trans_deferred_array): Handle character arrays.
	* trans-const.c (gfc_conv_const_charlen): New function.
	* trans-const.h (gfc_conv_const_charlen): Add prototype.
	* trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
	as static.
	(gfc_build_dummy_array_decl): Handle arrays with unknown element size.
	(gfc_create_string_length): New function.
	(gfc_get_symbol_decl): Create lengths for character variables.
	(gfc_get_fake_result_decl): Ditto.
	(gfc_build_function_decl): Only set length for assumed length
	character arguments.
	(gfc_trans_dummy_character): New function.
	(gfc_trans_auto_character_variable): Rewrite.
	(gfc_trans_deferred_vars): Handle more types of character variable.
	(gfc_create_module_variable): String lengths have moved.
	(gfc_generate_function_code): Initialize deferred var chain earlier.
	* trans-expr.c (gfc_conv_init_string_length): Rename ...
	(gfc_trans_init_string_length):  ... to this.
	(gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
	gfc_conv_function_call): Update to new format for character variables.
	(gfc_conv_string_length): Remove.
	(gfc_conv_string_parameter): Update assertion.
	* trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
	* trans-io.c (set_string): Use new macro names.
	* trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
	* trans-types.c (gfc_get_character_type): Use existing length expr.
	(gfc_is_nodesc_array): Make public.
	(gfc_get_dtype_cst): Rename ...
	(gfc_get_dtype): ... to this.  Handle unknown size arrays.
	(gfc_get_nodesc_array_type): Use new name.
	(gfc_sym_type): New character variable code.
	(gfc_get_derived_type): Ditto.
	(gfc_get_function_type): Evaluate character variable lengths.
	* trans-types.h (gfc_strlen_kind): Define.
	(gfc_is_nodesc_array): Add prototype.
	* trans.h: Update prototypes.
	(struct lang_type): Update comments.
	(GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
	(GFC_KNOWN_SIZE_STRING_TYPE): Remove.

2004-04-04  Paul Brook  <paul@codesourcery.com>

	* gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
	* options.c (gfc_init.options, gfc_handle_option): Ditto.
	* trans-expr.c (gfc_conv_function_call): Ditto.
	* trans-types.c (gfc_is_nodesc_array): Ditto
	* lang.opt (fg77-calls): Remove.

2004-04-04  Paul Brook  <paul@codesourcery.com>

	* trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
	(gfc_conv_descriptor_base): Rename ...
	(gfc_conv_descriptor_offset): ... to this.
	(gfc_trans_allocate_array_storage): Set offset to zero.
	(gfc_conv_array_base): Rename ...
	(gfc_conv_array_offset): ... to this.
	(gfc_conv_array_index_ref): Add offset parameter.
	(gfc_conv_array_ref): Include offset.
	(gfc_trans_preloop_setup): Use existing offset.
	(gfc_trans_allocate_temp_array,  gfc_array_allocate,
	gfc_trans_auto_array_allocation, gfc_trans_g77_array,
	gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
	gfc_conf_ss_descriptor): Set offset.
	* trans-array.h: Rename prototypes.
	* trans-const.h (gfc_index_zero_node): Define.
	* trans-decl.c (gfc_build_qualified_array): Change base to offset.
	* trans-types.c (gfc_get_array_type_bounds): Ditto.
	(gfc_get_nodesc_array_type): Calculate offset before upper bound.

2004-03-25  Diego Novillo  <dnovillo@redhat.com>

	* convert.c (convert): Don't handle WITH_RECORD_EXPR.

2004-03-24  Bud Davis  <bdavis9659@comcast.net>

	PR 14055
	* arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
	before conversion by gmp library call.

2004-03-24  Bud Davis  <bdavis9659@comcast.net>

	PR 12921
	* trans-io.c (gfc_trans_open): Change RECL= to a value parameter.

2004-02-24  Richard Henderson  <rth@redhat.com>

	* trans-array.c (gfc_trans_dummy_array_bias): Fix typo.

2004-02-19  Loren J. Rittle  <ljrittle@acm.org>

	* Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
	(fortran/gfortran.info): ... to here.
	(f95.srcinfo): New.

2004-02-16  Richard Henderson  <rth@redhat.com>

	* Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
	* f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
	(LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
	(gfc_expand_function): Rename from expand_function_body, make static,
	don't do anything except invoke tree_rest_of_compilation.
	(gfc_be_parse_file): Invoke cgraph.
	(gfc_expand_decl): Remove.
	(gfc_init_builtin_functions): Add __builtin_init_trampoline and
	__builtin_adjust_trampoline.
	* trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
	(gfc_finalize): New.
	(gfc_generate_function_code): Use it.  Lower nested functions.
	* trans-expr.c (gfc_conv_function_call): Add static chain operand
	to call_expr.
	* trans.c (gfc_build_function_call): Likewise.
	* trans.h (expand_function_body): Remove.

2004-02-15  Victor Leikehman  <lei@il.ibm.com>

	PR gfortran/13433
	* trans-decl.c (gfc_build_function_decl) For functions
	returning CHARACTER pass an extra length argument,
	following g77 calling conventions.
	* trans-types.c (gfc_get_function_type) Ditto.
	* trans-expr.c (gfc_conv_function_call) Ditto.

2004-02-14  Paul Brook  <paul@codesourcery.com>

	* f95-lang.c (gfc_init_builtin_functions): Build chain properly.

2004-02-12  Paul Brook  <paul@nowt.org>

	* BUGS: Remove.

2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>

	* gfortran.texi: Fix typos.

2004-02-07  Bud Davis  <bdavis9659@comcast.net>

	PR gfortran/13909
	* intrinsic.c (add_conversions) Use logical conversion instead
	of real.
	* trans-types.c (gfc_get_logical_type) implemented logical*1
	and logical*2.

2004-01-17  Paul Brook  <paul@codesourcery.com>

	* lang-specs.h: Remove %<fixed-form.

2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>

	* lang-specs.h: Enable preprocessing of source files
	ending in .F, .fpp, .FPP, .F90 and .F95.

2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>

	PR fortran/12912
	* lang-specs.h: Enable compilation of files ending
	in .f, .for and .FOR.

2004-01-11  Paul Brook  <paul@codesourcery.com>

	* trans-stmt.c (gfc_trans_if_1): New function.
	(gfc_trans_if): Use it.

2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>

	* gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
	(gfc_option_t): Add max_identifier_length.
	* lang.opt: Add fmax-identifier-length.
	* match.c (parse_name): Use limit.
	* options.c (gfc_init_options): Set max_identifier_length.
	(gfc_handle_option): Ditto.

2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>

	* intrinsic.c (add_functions): Add resolve function to dcmplx.
	* intrinsic.h (gfc_resolve_dcmplx): Add prototype.
	* iresolve.c (gfc_resolve_dcmplx): New function.

2004-01-10  Paul Brook  <paul@codesourcery.com>

	* trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
	* trans-types.c (gfc_sym_type): Handle external dummy procedures.
	(gfc_return_by_reference): Correct condition.
	(gfc_get_function_type): Ditto.

2004-01-10  Paul Brook  <paul@codesourcery.com>

	* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
	types.

2004-01-10  Huang Chun  <chunhuang73@hotmail.com>

	* iresolve.c: Use correct kind.

2004-01-10  Huang Chun  <chunhuang73@hotmail.com>

	PR fortran/13467
	* trans-decl.c (gfc_create_module_variable):  Output array valued
	parameters.

2004-01-10  Paul Brook  <paul@codesourcery.com>

	* resolve.c (resolve_branch): Get error message right way round.

2004-01-10  Canqun Yang <canqun@nudt.edu.cn>

	* trans-array (gfc_conv_loop_setup): Adjust comment to track
	reality.
	(gfc_array_allocate): Don't count size of element twice.

2004-01-04  Paul Brook  <paul@codesourcery.com>

	* lang.opt (i8, r8, std=*): Remove RejectNegative.

2004-01-04  Paul Brook  <paul@codesourcery.com>

	* error.c (gfc_notify_std): New function.
	* gfortran.h (gfc_notify_std): Declare.
	(GFC_STD_*): Define.
	(gfc_option_t): Add warn_std and allow_std.
	* intrinsic.c (gfc_init_expr_extensions): Fix logic.
	(gfc_intrinsic_func_interface): Use gfc_notify_std.
	* check.c (check_rest): Use gfc_notify_std.
	* match.c (gfc_match_pause): Ditto.
	(gfc_match_assign): Ditto.
	(gfc_match_goto): Ditto.
	* resolve.c (resolve_branch): Ditto.
	* lang.opt: Add std=<foo> and w.
	* options.c (gfc_init_options): Set allow_std and warn_std.
	(gfc_handle_option): Handle OPT_std_* and OPT_w.

2004-01-01  Paul Brook  <paul@codesourcery.com>

	* array.c (gfc_append_constructor): Take constructor, not expression.
	* data.c (struct gfc_expr_stack): Remove.
	(expr_stack): Remove.
	(find_con_by_offset): Rename from find_expr_in_con.
	(find_con_by_component): Rename from find_component_in_con.
	(gfc_get_expr_stack): Remove.
	(gfc_assign_data_value): Rewrite.
	(gfc_expr_push): Remove.
	(gfc_expr_pop): Remove.
	(gfc_advance_section): Rename from
	gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
	(gfc_get_section_index): Handle unbounded sections.
	* gfortran.h: Update prototypes.
	* resolve.c (check_data_variable): Array section maight not be the
	last ref.

2004-01-01  Paul Brook  <paul@codesourcery.com>

	PR fortran/13432
	* resolve.c (resolve_symbol): Allow assumed length function results.

2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>

	* match.c (gfc_match_pause): Fix spelling.

2004-01-01  Steven Bosscher  <stevenb@suse.de>

	PR fortran/13251
	* trans-expr.c (gfc_conv_variable): Take the type kind of a substring
	reference from the expression.

2003-12-26  Feng Wang  <fengwang@nudt.edu.cn>

	* dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
	dumping.
	* gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
	(gfc_exec_op): New EXEC_LABEL_ASSIGN.
	(symbol_attribute):New variable attribute: assign.
	* io.c (resolve_tag):Integer variable is allowed.
	(match_dt_format): Add ASSIGN statement. Set assign flag.
	* match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
	(gfc_match_assign): Add ASSIGN statement. Set assign flag.
	(gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
	* parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
	(next_statement): Add ST_LABEL_ASSIGNMENT.
	(gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
	* resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
	(resolve_blocks): Resolve ASSIGNED GOTO statement label list.
	* st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
	* trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
	assign.  Put them into the stuct lang_decl.
	* trans-io.c (set_string): Add the assign statement.
	* trans-stmt.c (gfc_trans_label_assign): New function.
	(gfc_trans_goto): Translate ASSIGNED GOTO statement.
	* trans-stmt.h (gfc_trans_label_assign): Added function prototype.
	* trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
	* trans.h (lang_decl):Add shadow variable decl tree needed by assign.
	(GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
	(GFC_DECL_ASSIGN(node)): New macro to access flag.

2003-12-31  Huang Chun <chunhuang73@hotmail.com>

	PR fortran/13434
	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
	minval/maxval.

2003-12-22  Toon Moene  <toon@moene.indiv.nluug.nl>

	* options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
	that arguments to subroutines/functions can't alias themselves, nor global
	memory.

2003-12-20  Steven Bosscher  <stevenb@suse.de>

	* trans-expr.c (gfc_conv_expr_op): Fold the result expression.
	* trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.

2003-12-12  Huang Chun <chunhuang73@hotmail.com>

	* primary.c (match_substring): Fix substring bug for start point
	or end point is NULL.
	* trans-expr.c (gfc_conv_substring): Ditto
	* trans-types.c (gfc_sym_type): Get correct type of scalar
	character variables.
	* trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
	derived type.

2003-12-10  Richard Henderson  <rth@redhat.com>

	* options.c (gfc_post_options): Don't ever use rtl inlining.

2003-12-05  Canqun Yang  <canqun@nudt.edu.cn>

	* trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
	* trans-equivalence.c: Remove.
	* trans-decl.c (gfc_get_symbol_decl): Update to match.
	(gfc_generate_function_code): Ditto.
	* trans-array.c (gfc_conv_array_parameter): Ditto.
	* Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
	(F95_ADDITIONAL_OBJS): Add stor-layout.o
	* trans.h (gfc_trans_equivalence): Remove.
	* gfortran.h (struct gfc_equiv): Add used field.
	(struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
	equiv_offset fields.

2003-12-05  Richard Henderson  <rth@redhat.com>

	* trans.c (gfc_build_addr_expr): New.
	(gfc_build_indirect_ref, gfc_build_array_ref): New.
	* trans.h: Declare them.
	* trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
	trans-stmt.c, trans.c (*): Use them.

	* f95-lang.c (gfc_post_options): Remove dead prototype.
	* trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
	* trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
	allocation size.

2003-12-01  Feng Wang  <fengwang@nudt.edu.cn>

	* io.c (gfc_match_format): Check for missing format label.

2003-11-30 Huang Chun <chunhuang73@hotmail.com>

	PR fortran/13155
	* trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
	from interfaces in modules.

2003-11-30  Paul Brook  <paul@nowt.org>

	* trans-array.c (gfc_trans_g77_array): Make non-static.
	(gfc_trans_assumed_size): Remove.
	(gfc_trans_dummy_array_bias): Explicitly free temporary.
	* trans-array.h (gfc_trans_g77_array): Add prototype.
	(gfc_trans_assumed_size): Remove.
	* trans-decls.c (gfor_fndecl_push_context): Remove.
	(gfor_fndecl_pop_context): Remove.
	(gfc_build_function)decls): Don't create them.
	(gfc_trans_deferred_vars): Update to match. Remove dead	code.
	* trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.

2003-11-30  Kejia Zhao  <kejia_zh@nudt.edu.cn>

	* trans-array.c (gfc_conv_array_parameter): Simplify
	array argument passing for array name actual argument.
	* trans-expr.c (gfc_conv_function_call): Ditto
	* trans-types.c (gfc_is_nodesc_array):Ditto.

2003-11-30  Paul Brook  <paul@nowt.org>

	* f95-lang.c (gfc_post_options): Move ...
	* options.c (gfc_post_options): .. to here.  Handle inlining options.
	* gfortran.h (gfc_post_options): Add prototype.

2003-11-28  Richard Henderson  <rth@redhat.com>

	* trans.c (gfc_create_var_np): Use create_tmp_var_raw.

2003-11-28 Huang Chun <chunhuang73@hotmail.com>

	* trans.h (has_alternate_specifier): New global variable.
	* match.c (gfc_match_call): Handle actual arguments associated with
	alternate return indicators.
	* trans-expr.c (gfc_conv_function_call): Ditto
	* trans-stmt.c (gfc_trans_call): Ditto
	(gfc_trans_return): Handle return statement with value.
	* trans-decl.c (gfc_generate_function_code): Handle functions with
	asterisk dummy.
	(gfc_get_fake_result_decl): Ditto
	* trans-types.c (gfc_get_function_type): Ditto
	* resolve.c (resolve_actual_arglist): Check alternate return indicators.
	(resolve_formal_arglist): Check asterisk dummy.

2003-11-27  Paul Brook  <paul@nowt.org>

	* trans-array.c (gfc_tran_allocate_array_storage): Use new memory
	allocation interface.
	(gfc_conv_ array_parameter): Ditto.
	(gfc_trans_auto_array_allocation): Ditto. Also free the memory.
	* trans-array.c: Update prototype.
	* trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
	(gfc_trans_auto_character_variable): Use new memory alloc interface.
	* trans-expr.c (gfc_conv_string_tmp): Ditto.
	(gfc_conv_function_call): Use gfc_conv_string_tmp.
	* trans-stmt.c (gfc_do_allocate):  Use new memory alloc interface.
	* trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
	* trans.h (gfc_ss_info): Remove unused pdata field.
	* trans.c (gfc_create_var_np): Change T to V.

2003-11-26  Richard Henderson  <rth@redhat.com>

	* mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
	* trans-intrinsic.c (gfc_intrinsic_map): ... here.  Add SCALE,
	FRACTION, NEAREST, SET_EXPONENT.
	(gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
	Fix GTY marking.  Remove unnecessary const's.
	(LIBM_FUNCTION): Rename from I_LIB.
	(LIBF_FUNCTION): New.
	(gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
	conventions.  Assume the expr signature is correct.  Mark const.
	(gfc_conv_intrinsic_exponent): Use library functions.
	(gfc_conv_intrinsic_set_exponent): Remove.
	(gfc_conv_intrinsic_scale): Remove.
	(gfc_conv_intrinsic_nearest): Remove.
	(gfc_conv_intrinsic_fraction): Remove.
	(gfc_conv_intrinsic_function): Update.
	* trans-decl.c (gfor_fndecl_math_exponent4): New.
	(gfor_fndecl_math_exponent8): New.
	(gfc_build_intrinsic_function_decls): Set them.
	* trans.h: Declare them.

2003-11-25  Canqun Yang  <canqun@nudt.edu.cn>

	* trans-common.c (gfc_layout_global_equiv): Locate the error for
	underflow COMMON block.
	(gfc_trans_one_common): Fix bug for size of COMMON block containing
	EQUIVALENCE object. Also fix typo in an error message.

2003-11-25  Diego Novillo  <dnovillo@redhat.com>

	* Make-lang.in: Add check-gfortran to lang_checks.
	(check-f95): Alias for check-gfortran.

2003-11-25  Jason Merrill  <jason@redhat.com>

	* Make-lang.in (f95.tags): Create TAGS.sub files in each
	directory and TAGS files that include them for each front end.

2003-11-24  Paul Brook  <paul@nowt.org>

	PR fortran/13154
	* trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.

2003-11-24  Paul Brook  <paul@nowt.org>

	* expr.c (simplify_const_ref): Return SUCCESS for things we don't
	handle.
	* resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.

2003-11-24  Paul Brook  <paul@nowt.org>

	PR fortran/13105
	* array.c (gfc_array_ref_shape): Handle elemental dimensions.
	* trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.

2003-11-20  Richard Henderson  <rth@redhat.com>

	* trans-array.c (gfc_trans_allocate_array_storage): Use convert.
	(gfc_conv_array_base): Likewise.
	* trans-decl.c (gfc_trans_auto_character_variable): Likewise.
	* trans-expr.c (gfc_conv_string_tmp): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
	* trans-stmt.c (gfc_trans_character_select): Likewise.

2003-11-13  Paul Brook  <paul@nowt.org>

	* trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.

2003-11-13  Canqun Yang  <canqun@nudt.edu.cn>

	* resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
	(resolve_equivalence): New function.
	(resolve_equivalence_derived): New function.

2003-11-12  Richard Henderson  <rth@redhat.com>

	* trans.c (gfc_trans_code): Use annotate_with_locus instead of
	annotate_all_with_locus.

2003-11-11  Canqun Yang  <canqun@nudt.edu.cn>

	* options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
	* trans-decl.c (gfc_finish_var_decl): Modified.

2003-11-08  Paul Brook  <paul@nowt.org>

	PR fortran/12704
	* trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
	arrays.

2003-11-06  Paul Brook  <paul@nowt.org>

	* trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.

2003-11-02  Canqun Yang  <canqun@nudt.edu.cn>

	* match.c (gfc_match_stopcode): Assign '0' to stop_code.

2003-10-27  Anthony Green  <green@redhat.com>

	* Make-lang.in (f95.stageprofile): Use tabs, not spaces.
	(f95.stagefeedback): Ditto.

2003-10-27  Andrew Pinski  <pinskia@physics.uc.edu>

	PR fortran/12682
	* Make-lang.in (f95.stageprofile): Add.
	(f95.stagefeedback): Add.

2003-10-23  Richard Henderson  <rth@redhat.com>

	* f96-lang.c (gfc_gimplify_expr): Remove.
	(LANG_HOOKS_GIMPLIFY_EXPR): Remove.
	(LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.

2003-10-23  Richard Henderson  <rth@redhat.com>

	* f95-lang.c (gfc_gimplify_expr): Return gimplify_status.

2003-10-20  Paul Brook  <paul@nowt.org>

	* trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
	* trans-stmt.c (gfc_trans_do_while): Ditto.

2003-10-17  Paul Brook  <paul@nowt.org>

	* simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.

2003-10-17  Paul Brook  <paul@nowt.org>

	* trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.

2003-10-17  Feng Wang  <wf_cs@yahoo.com>

	* iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
	(gfc_resolve_minloc): Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
	Return the value after subtracting the lower bound.

2003-10-16  Richard Henderson  <rth@redhat.com>

	* f95-lang.c (expand_function_body): Don't check flag_disable_gimple.

2003-10-16  Steven Bosscher  <steven@gcc.gnu.org>

	* lang.c: Remove -M option for now, it's in the way for C.

2003-10-14  Jason Merrill  <jason@redhat.com>

	* Make-lang.in (f95.tags): New rule.

2003-10-13  Richard Henderson  <rth@redhat.com>

	* trans.c (gfc_trans_code): Use annotate_all_with_locus.

2003-10-13  Paul Brook  <paul@nowt.org>

	* trans-decl.c (generate_local_decl): Don't create junk variables.

2003-10-13  Paul Brook  <paul@nowt.org>

	* resolve.c (resolve_formal_arglist): Use function result decl in
	preference to function decl.

2003-10-12  Richard Henderson  <rth@redhat.com>

	* f95-lang.c (gfc_define_builtin): New const_p argument.  Set
	TREE_READONLY.  Update all callers.

2003-10-12  Feng Wang  <wf_cs@yahoo.com>

	* iresolve.c (gfc_resolve_cshift): Change to match implementation.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
	(gfc_is_intrinsic_libcall): Add CSHIFT.

2003-10-12  Richard Henderson  <rth@redhat.com>

	* trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
	(gfc_trans_array_constructor_value): Likewise.
	(gfc_conv_array_initializer): Likewise.
	* trans-stmt.c (gfc_trans_character_select): Likewise.

2003-11-12  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.

2003-10-11  Huang Chun  <jiwang@mail.edu.cn>

	* check.c (gfc_check_repeat): Check arguments are scalar.
	(gfc_check_trim): New function.
	* intrinsic.h (gfc_check_trim): Add prototype.
	* intrinsic.c (add_functions): Use it.
	* trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
	Decalare.
	* trans-decl.c: Ditto.
	(gfc_build_intrinsic_fucntion_decls): Set them.
	* trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
	(gfc_conv_intrinsic_trim): New function.
	(gfc_conv_intrinsic_repeat): New function.
	(gfc_conv_intrinsic_function): Use them.

2003-10-11  Huang Chun  <jiwang@mail.edu.cn>

	* trans-types.c (gfc_sym_type): Handle result variables.

2003-10-11  Huang Chun  <jiwang@mail.edu.cn>

	* trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
	gfc_get_character_type.

2003-10-11  Feng Wang  <wf_cs@yahoo.com>

	* trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.

2003-10-11  Paul Brook  <paul@nowt.org>

	* iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
	(gfc_resolve_dprod): New function.
	(gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
	* intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
	(gfc_resolve_dprod): Declare.
	* intrinsic.c (add_functions): Use them.
	* trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.

2003-10-06  Richard Henderson  <rth@redhat.com>

	* f95-lang.c (gfc_init_builtin_functions): Add clzll.
	* trans-intrinsic.c (call_builtin_clz): Use it.

2003-10-05  Paul Brook  <paul@nowt.org>

	* f95-lang.c (expand_function_body): Call (push|pop)_function_context.
	* trans-decl.c (gfc_generate_function_code): Set
	cfun->function_end_locus.

2003-09-24  Jason Merrill  <jason@redhat.com>

	* f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
	TREE_LOCUS.

2003-09-21  Lifang Zeng  <zlf605@hotmail.com>
	Paul Brook  <paul@nowt.org>

	* Make-lang.in (F95_OBJS): Add fortran/data.o.
	* array.c (gfc_inser_constructor): New function.
	(gfc_get_constructor): New function.
	(gfc_free_constructor): Initialize offset and repeat.
	(iterator_stack): Remove.
	(expand_info): Add offset, component and repeat fields.
	(expand_constructor): Set them.
	(expand): Set new fields.
	(gfc_copy_constructor): Ditto. Avoid recursion.
	* gfortran.h: Add prototypes for new functions.
	(gfc_constructor): Add offset, component and repeat.
	(iteratio_stack): Move to here.
	* resolve.c (check_data_variable): Convert data values into variable
	initializers.
	(traverse_data_list): Build implicit loop chain.
	(gfc_resolve): Ditto.
	* trans-array.c (gfc_conv_array_intializer): Handle repeat count.
	* trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
	* trans-expr.c (gfc_conv_structure): Handle array initializers.
	(gfc_conv_expr): Update to match.
	* trans.h (gfc_conv_structure): Declare.
	* data.c: New file.

2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* trans.h: Add declarations for gfor_fndecl_si_kind and
	gfor_fndecl_sr_kind.
	* trans-decl.c (g95_build_intrinsic_function_decls): Build them.
	* trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
	(g95_conv_intrinsic_sr_kind): New function.
	(g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
	SELECTED_REAL_KIND.

2003-09-17  Lars Segerlund  <Lars.Segerlund@comsys.se>

	* iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
	instead of _4 and _8 as postfix for libgfortran calls.

2003-09-16  Paul Brook  <paul@nowt.org>

	* array.c (compare_bounds): New function.
	(gfc_compare_array_spec): Use it.

2003-09-14  Paul Brook  <paul@nowt.org>

	* primary.c (gfc_match_rvalue): Make sure sym->result is set.
	* trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.

2003-09-14  Paul Brook  <paul@nowt.org>

	* check.c (dim_rank_check): Allow assumed bounds if requested.
	(gfc_check_lbound): Call it.
	(gfc_check_ubound): Ditto.
	(gfc_check_size): Change to match.
	* simplify.c (gfc_simplify_bound): New function.
	(gfc_simplify_lbound): New function.
	(gfc_simplify_ubound): New function.
	* intrinsic.h: Declare them.
	* intrinsic.c (add_functions): Use them.

2003-09-14  Paul Brook  <paul@nowt.org>

	* io.c (format_lex): Initialize negative_flag.
	(check_format): Intialize repeat.
	* trans-io.c (gfc_new_nml_name_expr): Declare static.
	(gfc_new_var_expr): Ditto.

2003-09-14  Paul Brook  <paul@nowt.org>

	* trans-array.c (gfc_conv_array_initializer): Handle derived types.
	* trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.

2003-09-12  Paul Brook  <paul@nowt.org>

	* trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.

2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
	for a correct expression.

2003-09-10  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* trans-intrinsic.c (real_compnt_info): New struct.
	(prepare_arg_info): New function.
	(gfc_conv_intrinsic_set_exponent): New function.
	(gfc_conv_intrinsic_scale): New function.
	(gfc_conv_intrinsic_nearest): New function.
	(gfc_conv_intrinsic_fraction): New function.
	(gfc_conv_intrinsic_exponent): New function.
	(gfc_conv_intrinsic_spacing): New function.
	(gfc_conv_intrinsic_rrspacing): New function.
	(gfc_conv_intrinsic_function): Use them.

2003-08-24 XiaoQiang Zhang  (zhangapache@yahoo.com>

	* trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
	build_int_2 changed from (high, low) to (low, high).
	* trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
	ioparm_namelist_read_mode, iocall_set_nml_val_int,
	iocall_set_nml_val_float, iocall_set_nml_val_char,
	iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
	(gfc_build_io_library_fndecls): Add variable initialization.
	(gfc_new_nml_name_expr, get_new_var_expr): New function.
	(build_dt): Add namelist support.
	* io.c (value): New variable.
	(check_format): Support FMT_H now.

2003-09-07  Paul Brook  <paul@nowt.org>

	* io.c (gfc_resolve_dt): Error if format label is not defined.

2003-09-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
	about case_switch's break. The other is about building the condition
	statement tree, which judges the argument in the range of the
	corresponding integer type.
	* trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
	for the large values.

2003-09-05  Paul Brook  <paul@nowt.org>

	* f95-lang.c (expand_function_body): Gimplify the function.

2003-09-04  Jeff Law  <law@redhat.com>

	* f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
	index zero!

2003-09-04  Paul Brook  <paul@nowt.org>

	* f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
	(gfc_expand_stmt): New function.
	(LANG_HOOKS_RTL_EXPAND_STMT): Define.
	(expand_function_body): Use tree_rest_of_compilation.
	* trans-decl.c (gfc_generate_function_code): Don't free cfun.

2003-09-03  Jeff Law  <law@redhat.com>

	* f95-lang.c (gfc_init_builtin_functions): C arrays start at
	index zero!

2003-08-30  Paul Brook  <paul@nowt.org>

	* f95-lang.c (builtin_function): Remove #if 0 code.
	(gfc_define_builtin): New function.
	(gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
	* mathbuiltins.def: New file.
	* trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
	(gfc_intrinsic_map): Use mathbuiltins.def.
	(gfc_intrinsic_builtin_t): Remove.
	(gfc_build_intrinsic_lib_fndecls): Update.
	* trans-types.c (gfc_init_types): Remove redundant initilaization of
	signed_size_type_node.

2003-08-29  Paul Brook  <paul@nowt.org>

	* arith.c (gfc_real_kinds): Use correct minimum exponents.

2003-08-22  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
	(gfc_conv_intrinsic_function): Add MODULO.

2003-08-22  Jason Merrill  <jason@redhat.com>

	* trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.

2003-08-22  Andreas Jaeger  <aj@suse.de>

	* Make-lang.in (f95.install-common): Add DESTDIR support.
	* (f95.install-info): Likewise.
	(f95.uninstall): Likewise.

2003-08-19  Diego Novillo  <dnovillo@redhat.com>

	* trans-types.c (gfc_init_types): Initialize
	signed_size_type_node with size_type_node.

2003-08-18  Paul Brook  <paul@nowt.org>

	* dependency.c (gfc_dependency): New enum.
	(check_another_array_ref): Remove.
	(gfc_get_array_from_component): Remove.
	(get_x): Remove.
	(get_range): Remove.
	(get_no_of_elements): Use mpz_t, not mpf_t.
	(transform_sections): New function.
	(gfc_check_range_range): Rename ...
	(gfc_check_section_vs_section): ... to this.  Use new function.
	(gfc_is_inside_range): Rewrite to match.
	(gfc_check_element_vs_section): Ditto.
	(gfc_check_element_vs_element): Ditto.
	(get_deps): Ditto.
	(gfc_dep_resolver): Ditto.  Remove unused parameter.
	* Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
	gfc_check_element_vs_element, gfc_is_inside_range,
	gfc_get_array_from_component): Remove prototypes for static functions.
	(gfc_dep_resolver): Update prototype.
	* trans-array.c (gfc_conv_resolve_dependencies): Change to match.

2003-08-15  Paul Brook  <paul@nowt.org>

	* trans-decl.c (gfc_build_qualified_array): Don't add symbols for
	return values to parent scope.
	(gfc_build_dummy_array_decl): Ditto.

2003-08-14  Paul Brook  <paul@nowt.org>

	* trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
	size of	the type, not the pointer.
	* resolve.c (resolve_symbol): Give more accurate error message.

2003-08-10  Paul Brook  <paul@nowt.org>

	* trans-decl.c (gfc_build_function_decl): Only mangle global symbols.

2003-08-10  Paul Brook  <paul@nowt.org>

	* trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
	type components.

2003-08-10  Chun Huang  <compiler@sohu.com>

	* resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
	(resolve_symbol): Ditto.
	* trans-expr.c (gfc_conv_statement_function): New function.
	(gfc_conv_function_expr): Use it.

2003-08-10  Paul Brook  <paul@nowt.org>

	* trans-array.c (gfc_conv_ss_startstride): Handle functions.
	(walk_function_expr): Set section rank.
	* trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.

2003-08-10  Paul Brook  <paul@nowt.org>

	* intrinsic.c (add_sym): Prefix names with correct string.
	(add_sym_0s): New function.
	(add_subroutines): Register abort.

2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>

	* gfortran.h: Introduce options to control the mangling.
	* lang.opt: Likewise.
	* options.c (gfc_init_options): Handle the options.
	* trans-common.c (gfc_sym_mangled_common_id): New function.
	(gfc_build_common_decl): Call it.
	* trans-decl.c (gfc_sym_mangled_function_id): New function.
	(gfc_get_extern_function_decl, gfc_build_function_decl): Call it.

2003-08-09  Paul Brook  <paul@nowt.org>

	* module.c (mio_symbol): Always ouput a namespace for formal args.
	(load_needed): Namespace now belong to their proper symbol.
	(gfc_dump_module): Change G95=>GFORTRAN.

2003-08-05  Paul Brook  <paul@nowt.org>

	* options.c: Force -fg77-calls.

2003-08-02  Paul Brook  <paul@nowt.org>

	* Makelang.in: Rename G95_* to GFORTRAN_*.
	* All sources: Rename G95_* to GFC_*.

2003-08-01  Paul Brook  <paul@nowt.org>

	* fortran/Make-lang.in: Use GMPLIBS.
	* fortran/config-lang.in: Set need_gmp.
	* trans-expr.c (gfc_conv_variable): Remove incorrect assertion.

2003-07-27  Andreas Jaeger  <aj@suse.de>

	* trans-decl.c (gfc_generate_constructors): Convert prototype to
	ISO C90.
	* trans-const.c (gfc_init_constants): Likewise.
	* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.

	* gfortranspec.c: Convert to ISO C90.
	(lang_specific_driver): Correct copyright, remove ALT_LIBM usage.

2003-07-26  Paul Brook  <paul@nowt.org>

	* lang.opt: Add -fdump-parse-tree.
	* options.c (gfc_handle_option): Ditto.
	* resolve.c (resolve_forall_iterators): Convert to proper type.
	* trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.

2003-07-26  Paul Brook  <paul@nowt.org>

	* Makefile.in: Add build dependencies on files common with rest of gcc.

2003-07-26  Lifang Zeng  <zlf605@hotmail.com>

	* trans.h: Declare g95_trans_pointer_assignment.
	* trans-expr.c (g95_trans_pointer_assignment): New function.
	(g95_trans_pointer_assign): Use it.
	* trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
	(g95_trans_pointer_assign_need_temp): New function.

2003-07-26  Paul Brook  <paul@nowt.org>

	* gfortran.texi: Replace references to g95.

2003-07-26  Paul Brook  <paul@nowt.org>

	Rename g95_* to gfc_*.

2003-07-25  Paul Brook  <paul@nowt.org>

	* gfortran.h: Rename from g95.h.
	* trans-types.c (boolean_type_node, booelan_true_node,
	boolean_false_node): Remove.
	* trans-types.h: Ditto.

2003-07-25  Chun Huang  <compiler@sohu.com>

	* parse.c (accept_statement): Implement BLOCK DATA statement.
	* trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
	variables.

2003-07-24  Lifang Zeng  <zlf605@hotmail.com>

	* trans-stmt.c (temporary_list): Define.
	(g95_trans_assign_need_temp): New function.
	(g95_trans_forall_1): Modified for WHERE.
	(g95_trans_where_assign): Modified.
	(g95_trans_where_2): Modified.
	(g95_evaluate_where_mask): Modified.
	(g95_trans_where): Modified.
	(g95_get_temp_expr): Removed.
	(g95_add_to_where_stmt_list): Removed.
	(compute_overall_iter_number): Modified for WHERE.
	* trans.h: Remove where_stmt_list.

2003-07-24  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* lang.opt: Correct description of options -J and -M.

2003-07-23  Steven Bosscher   <steven@gcc.gnu.org>

	* lang.opt: Move help text to here.
	* lang-options.h: Remove.

2003-07-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
	* iresolve.c (g95_resolve_transpose): Proper variable in switch.
	* simplify.c (g95_simplify_nearest): Fix typo and use a correct test
	on kind.

2003-07-22  Steven Bosscher  <steven@gcc.gnu.org>
	Paul Brook  <paul@nowt.org>

	* check.c (check_rest): Use global pedantic flag.
	* io.c (data_desc): Ditto.
	* error.c (g95_warning, g95_warning_now): Use global flag.
	* f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
	(expand_function_body): Update to new prototypes.
	(g95_init): Use new option names.
	* g95.h (g95_option_t): Standardize names.
	(g95_init_options, g95_handle_option): Update prototypes.
	* interface.c: Use new option names.
	* match.c: Ditto.
	* module.c: Ditto.
	* parse.c: Ditto.
	* primary.c: Ditto.
	* resolve.c: Ditto.
	* scanner.c: Ditto.
	* simplify.c: Ditto.
	* symbol.c: Ditto.
	* trans-array.c: Ditto.
	* trans-expr.c: Ditto.
	* trans-types.c: Ditto.
	* trans-decl.c: Ditto.
	(g95_build_library_function_decl): Remove obsolete VPARAMS.
	* trans.h: Ditto.
	* options.c (g95_display_help): Remove.
	(g95_init_options): Convert to new scheme.
	(set_Wall): Ditto
	(g95module_option): Ditto, rename from g95_parse_arg.
	(g95_handle_module_path_options): New function.
	* trans-equivalence.c: Fix error message.
	* lang.opt: Corrections.

2003-07-21  Steven Bosscher  <steven@gcc.gnu.org>

	* lang.opt: New file.

2003-07-21  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* decl.c (match_attr_spec): Set colon_seen.

2003-07-14  Paul Brook  <paul@nowt.org>

	* trans-array.c: Update comment.
	(g95_trans_array_constructor_subarray): Cleanup loopinfo data.
	* trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
	minmaxloc,minmaxval): Ditto.
	* trans-io.c (g95_trans_transfer): Ditto.
	* trans-stmt.c: Remove unneeded prototypes.
	(generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
	(generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
	(compute_inner_temp_size): Remove bits of dead code. Add comments.
	Don't share loopinfo.
	(compute_overall_iter_number): Declare as static.
	(allocate_temp_for_forall_nest): Ditto.
	(g95_trans_forall_1): Don't pass shared loopinfo.
	* trans.c (g95_start_block): Expand comment.

2003-07-12  Paul Brook  <paul@nowt.org>

	* arith.c (g95_index_integer_kind): Remove unused initializer.
	* trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
	index by size of element.
	(generate_loop_for_rhs_to_temp): Ditto.
	(allocate_temp_for_forall_nest): Use element size, not index size.

2003-07-11  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* arith.c (g95_index_integer_kind): Add a TODO.
	* simplify.c (g95_simplify_nearest): Add a TODO.

2003-07-09  Chun Huang  <compiler@sohu.com>

	* trans.h: Add declarations for gfor_fndecl_string_scan and
	gfor_fndecl_string_verify.
	* trans-decl.c (g95_build_intrinsic_function_decls): Build them.
	* trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
	(g95_conv_intrinsic_verify): New function.
	(g95_conv_intrinsic_function): Add SCAN and VERIFY.
	* simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
	of parameter 'BACK=.TRUE.'

2003-07-05  Lifang Zeng  <zlf605@hotmail.com>

	* trans-stmt.c (iter_info, forall_info): Define.
	(g95_trans_forall_block): Remove.
	(g95_trans_forall_loop): Use forall info blocks.
	(g95_trans_nested_forall_loop): New function.
	(g95_do_allocate): Handle things other than logical masks.
	(generate_loop_for_temp_to_lhs): New function.
	(generate_loop_for_rsh_to_temp): New function.
	(compute_inner_temp_size): New function.
	(compute_overall_iter_number): New function.
	(allocate_temp_for_forall_nest): New function.
	(g95_trans_forall): Move body ...
	(g95_trans_forall_1): ... to here.  Handle loops with temporaries.

2003-07-02  Paul Brook  <paul@nowt.org>

	* trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
       	in correct scope.  Change callers to match.
	* trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
	* iresolve.c (g95_resolve_reshape): Only use constant shapes.

2003-07-02  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_conv_loop_setup): Remove dead var.  Use
	expression shape for all expressions.
	* trans-decl.c (g95_symbol_init): Allow adding at very end of list.

2003-07-03  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
	g95_parse_arg), intrinsic.c (g95_convert_type): support of
	-Wconversion.
	* intrinsic.c, g95.h: Add g95_convert_type_warn,
	* resolve.c (g95_resolve_index): Call it.

2003-07-02  Paul Brook  <paul@nowt.org>

	* iresolve.c (g95_resolve_reshape): Set expression shape.
	(g95_resolve_shape): Ditto.
	* simplify.c (g95_simplify_shape): Move common code outside condition.
	* trans-array.c (g95_conv_array_initializer): Teach it how to count.

2003-07-01  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
	conformance checks.

2003-06-29  Paul Brook  <paul@nowt.org>

	* array.c (g95_simplify_iterator_var): Don't bother with return value.
	* expr.c (find_array_element, find_component_ref): New functions.
	(remove_subobject_ref): New function.
	(simplify_const_ref): Use them.  Rename from simplify_component_ref.
	(simplify_ref_chain): New function.
	(g95_simplify_expr): Use it.  Simplify parameter variable subobjects.
	(g95_specification_expr): Simplify the expression.
	* resolve.c (resolve_operator): Check simplifications return code.
	(g95_resolve_expr): Ditto.

2003-06-26  Paul Brook  <paul@nowt.org>

	* expr.c (simplify_component_ref): New function.
	(g95_simplify_expr): Use it.
	* resolve.c (resolve_structure_cons): Handle references.

2003-06-25  Paul Brook  <paul@nowt.org>

	* trans-io.c (build_dt): Handle internal units.

2003-06-25  Canqun Yang  <canqun@yahoo.com.cn>

	* trans-common.c (g95_build_common_decl): Array index range starts at 0.
	(g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
	Use g95_array_index_type instead of integer_type_node.
	(g95_build_common_decl, g95_set_common_master_type): Use
	g95_character1_type_node instead of char_type_node.
	* trans-equivalence.c (g95_layout_local_equiv): As above.

2003-06-24  Steven G. Kargl  <kargls@attbi.com>

	* g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
	remove last remains of -fquiet.

2003-06-22  Paul Brook  <paul@nowt.org>

	* resolve.c (resolve_operator): Don't fail if we can't simplify.
	(g95_resolve_expr): Ditto.
	(resolce_code): Mark as static.
	* trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
	gimplifer doesn't (yet).

2003-06-20  Paul Brook  <paul@nowt.org>

	* g95.h: Add ST_PAUSE and EXEC_PAUSE.
	* match.c (g95_match_if): Add ST_PAUSE.
	(g95_match_stopcode): New function.
	(g95_match_pause, g95_match_stop): Use it.
	* parse.c (g95_ascii_statement): Handle ST_PAUSE.
	(decode_stmt, next_statement, parse_executable): Ditto.
	* resolve.c (resolve_code): Ditto.
	* st.c (g95_free_statement): Ditto.
	* trans-stmt.c (g95_trans_pause): New function.
	* trans-stmt.h: Declare it.
	* trans.c (g95_trans_code): Use it.
	* trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
	Declare.
	(g95_build_builtin_function_decls): Initialize them.
	* trans.h: Ditto.
	* dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.

2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* io.c (g95_match_open , g95_match_close, g95_match_inquire,
	match_filepos): Fix error handling.

2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
	Add assertions on arguments.
	* resolve.c (expression_shape): Remove useless &.
	* simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
	g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
	g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
	g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
	g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
	g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
	(g95_simplify_not, g95_simplify_scale): Add assertions.

2003-06-15  Paul Brook  <paul@nowt.org>

	Clean up stuff to work with the ssa optimizers.
	* convert.c (convert): Handle BOOLEAN_TYPEs.
	* f95-lang.c (g95_truthvalue_conversion): Implement.
	* trans-array.c (g95_trans_array_constructor_value): Group multiple
	scalar values.
	* trans.h (g95_truthvalue_conversion): Declare.
	* trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
	* trans-stmt.c (g95_trans_character_select): Don't create array
	assignments.  Mark labels as indirect jump targets.
	* trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
	(g95_get_dtype_cst): Handle LOGICAL types.

2003-06-14  Paul Brook  <paul@nowt.org>

	* f95-lang.c (g95_gimplify_expr): New function.
	* trans-array.c (g95_trans_array_constructor_value): Don't create
	array assignments.
	(g95_conv_expr_descriptor): Rename simple->gimple.
	* trans-expr.c (conv_expr_op): Use proper logical operators.
	* trans-intrinsic.c (build_fixbound_expr): New function.
	(build_fix_expr): Ditto.
	(g95_conv_intinsic_aint): Use them. Use builtin functions.
	(g95_conv_intrinsic_function): Add FLOOR and CEILING.

2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* array.c (g95_compare_array_spec): Remove unreachable code.
	* expr.c (g95_copy_expr): Likewise.
	* intrinsic.c (g95_convert_type): Likewise.
	* misc.c (g95_code2string): Likewise.
	* simplify.c (g95_simplify_ishft, g95_simplify_real,
	g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
	* trans-stmt.c (g95_trans_select): Likewise.
	* primary.c (extend_ref): Add an assertion.
	* simplify.c (g95_convert_constant): Add const.
	* intrinsic.h: Remove g95_check_x_ni.
	* f95-lang.c (g95_finish): Call g95_release_include_path.

2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* resolve.c (resolve_contained_functions): Fix typo introduced on
	2003-01-13.

2003-06-09  Paul Brook  <paul@nowt.org>

	* g95.h: Include system.h not hwint.h.
	* many: use safe-ctype.h not ctype.h.  Change isalpha -> ISALPHA, etc.
	* misc.c (g95_getmem): Use xmalloc/memset instead of calloc.

2003-06-09  Paul Brook  <paul@nowt.org>

	* g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
	* Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
	* trans-decl.c (g95_add_decl_to_functions): Make non-static.
	(g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
	(g95_generate_function_code): Translate COMMON and EQUIVALENCE
	objects.
	* trans.h (g95_trans_equivalence, g95_trans_common,
	g95_add_decl_to_function): Declare.
	* trans-common.c, trans-equivalence.c: New files.

2003-06-08  Steven Bosscher  <steven@gcc.gnu.org>

	* intrinsic.c (g95_intrinsic_extension): Remove.
	(add_functions): Substitute g95_check_x for g95_check_x_ni
	everywhere.
	(g95_init_expr_extensions): New function.
	(g95_intrinsic_func_interface): Use it.
	* intrinsic.h: Remove extern decl for g95_intrinsic_extension.
	* check.c (g95_check_digit, g95_check_huge, g95_check_kind,
	g95_check_precision, g95_check_present, g95_check_radix,
	g95_check_range, g95_check_selected_real_kind): Do not set
	g95_intrinsic_extension.
	(g95_check_x_ni): Remove now duplicate of g95_check_x.

	* expr.c (check_inquiry): Add FIXME, fixup some code style.

2003-06-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* g95.h (ref_type): Name this type explicitly.
	* module.c (MIO_NAME): Add specialisations of mio_name.
	(mio_symbol_attribute, mio_typespec, mio_array_ref,
	mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
	(ab_attribute): Name this type explicitly.
	(mio_symbol_attribute, mio_expr): Add cast to call to find_enum.

2003-06-05  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* trans-intrinsic.c (g95_conv_allocated): New function.
	(g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.

2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>

	* f95-lang.c: Don't include g95-support.h
	(g95_mark_addressable): Add prototype.
	(g95_init_decl_processing): Remove C front end hack.
	* f95-tree.c: Remove file.
	* support.c: Remove file.
	* g95-support.h: Remove file.
	* trans-types.c (g95_init_types): Set up boolean
	type related tree nodes.
	* Make-lang.in: Remove rules for dead files and
	dependencies on them.

2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>

	* Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
	C front end dependency.  Also, convert.c does not depend on
	g95-support.h anymore.
	* convert.c: Don't include c-common.h and g95-support.h
	* f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
	(g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
	stmts_are_full_exprs_p, current_stmt_tree,
	current_scope_stmt_stack): Remove.
	* g95-support.h (unsigned_conversion_warning): Kill proto.
	(boolean_type_node, boolean_true_node, boolean_false_node):
	Don't define here.  Instead, make then true tree nodes in
	trans-types.
	* support.c (c_global_trees): Die, C front end, die!!!
	(g95_init_c_decl_hacks): Don't touch intmax_type_node,
 	uintmax_type_node, string_type_node and const_string_type_node.
	(decl_constant_value, overflow_warning): Make static functions.
	They are in death row too, though.
	(default_conversion, c_expand_asm_operands): Remove.
	* trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
	trans.c: Don't include c-common.h.
	* trans-types.c (boolean_type_node, boolean_true_node,
	boolean_false_node): Make them real tree nodes.
	* trans-types.h (intmax_type_node, string_type_node,
	const_string_type_node): Hack to work around C dependencies
	in builtin-types.def.

2003-06-04  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* decl.c (decl_types): Add some iterators-like sentinels.
	* decl.c (match_attr_spec): Use them.
	Use "decl_types" instead of "int".
	Add cast in call to g95_match_strings.
	* dump-parse-tree.c (g95_show_namespace):  Use "g95_intrinsic_op"
	instead of "int".
	* g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
	(g95_interface_info): Use "g95_intrinsic_op".
	* dump-parse-tree.c (g95_show_namespace): Use them.
	* interface.c (g95_check_interfaces): Use them.
	* module.c (read_module, write_module): Use them.
	* symbol.c (g95_get_namespace, g95_free_namespace): Use them.
	Use "g95_intrinsic_op".
	* interface.c (check_operator_interface): Use "g95_intrinsic_op".
	Add a default case in switch statement.
	* intrinsic.h (g95_generic_isym_id): Moved to...
	* g95.h (g95_generic_isym_id): here.
	(g95_intrinsic_sym): Use "g95_generic_isym_id".
	* intrinsic.c (make_generic): Use "g95_generice_isym_id".
	* trans-intrinsic.c (g95_intrinsic_map_t,
	 g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
	* match.c (g95_match_intrinsic_op): Add cast in call to
	g95_match_strings.

2003-06-03  Steven Bosscher  <steven@gcc.gnu.org>

	* support.c (skip_evaluation, warn_conversion, lvalue_p,
	lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
	constant_fits_type_p, convert_and_check,
	unsigned_conversion_warning): Remove these ugly remnants
	we inherited from the C front end.
	(function_types_compatible): Remove '#if 0'-edcode.
	(build_modify_expr): Likewise.
	(convert_for_assignment): Don't use the deceased functions.
	The parameter fundecl is now unused.
	(decl_constant_value): Always just return decl.  In fact
	this function is not used at present, but it might be in
	the future, when we start using the tree inliner.
	(overflow_warning, default_conversion, c_expand_asm_operands):
	Abort when these are called, they are part of the C type
	checking implementation and therefore poison to Fortran.

2003-06-04  Steven Bosscher  <steven@gcc.gnu.org>

	* Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
	c-pretty-print.o and c-dump.o.  Add a comment on why we
	depend on c-semantics.c.
	* f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
	Don't use the C front end tree dumper hook to dump the
	language specific tree representation -- we don't have
	one.  So instead, inherit the default langhook.

2003-06-02  Paul Brook  <paul@nowt.org>

	* trans-expr.c (g95_conv_variable): Remove incorrent assertion.

2003-06-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* check.c (g95_check_associated): Use proper types.  Remove
	extraneous argument in call to g95_error().

2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* resolve.c (resolve_operator): Make logical operands convert to the
	type with higher kind.

2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* check.c (g95_check_associated): Make sure both pointer and target has
	the same type and rank. Null pointer or array section with vector
	subscript as target are not allowed.
	* trans.h: Declare gfor_fndecl_associated.
	* trans-decl.c: (g95_build_builtin_function_decls): Initialize
	gfor_fndecl_associated.
	* trans-intrinsic.c (g95_conv_associated): New function.
	(g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.

2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>

	* trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
	according to POINTER itself rather than TARGET.
	(g95_conv_expr_descriptor): Make lbound start at 1.
	* trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.

2003-06-01  Paul Brook  <paul@nowt.org>

	* expr.c (g95_type_convert_binary): Make it match the standard.
	* g95.texi: Remove dead link.

2003-06-01  Steven Bosscher  <steven@gcc.gnu.org>

	* g95.texi: Cleanup somewhat in preparation for inclusion
	in GCC CVS.

2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
	    Canqun Yang  <canqun@yahoo.com.cn>

	* resolve.c (compare_bound_int, resolve_where_shape): Proper return
	type.
	(g95_find_forall_index): Return proper value.
	(g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
	compare the return value from g95_find_forall_index.

2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
	* g95.h, io.c (g95_st_label): Remove "length".
	(g95_symtree): Remove "link".
	(g95_case): Remove "code".
	* arith.c, arith.h (g95_compare_string, g95_convert_integer,
	g95_convert_real): Make an argument pointer to const.
	* decl.c (colon_seen): Add a TODO.
	* interface.c (g95_compare_types): Fix typo.
	* interface.c (compare_interfaces): Preserve value of "p".
	* intrinsic.c (sort_actual): Remove "i".
	* match.c (g95_match_assign): Proper type in call to g95_match().
	* parse.c (next_free): Avoid duplicate call due to macro.
	* parse.c (check_statement_label): wrong type in call to g95_error.
	* primary.c (match_real_constant): Add a TODO.
	* resolve.c (resolve_select):  Remove useless conditional.
	* simplify.c (g95_simplify_repeat): Proper assignment to
	"value.character.string".
	* simplify.c (g95_simplify_reshape): Wrong variable in call to
	g95_error.

2003-05-20  Canqun Yang  <canqun@yahoo.com.cn>

	* trans-stmt.c: Remove unnecessary include file defaults.h.

2003-05-19  Lifang Zeng  <zlf605@hotmail.com>

	* trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
	stride.
	(g95_trans_forall): Allow arbitrary number of FORALL indexes and
	actual variables used as FORALL indexes.

2003-05-15  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_trans_static_array_pointer): Use
	null_pointer_node.
	(g95_trans_deferred_array): Initialize static array pointers.
	* trans-expr.c (g95_conv_function_call): Use formal arglist to
	correctly pass POINTER and absent CHARACTER arguments.

2003-05-14  Lifang Zeng  <zlf605@hotmail.com>

	* resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
	(g95_resolve_forall_body): Resolve FORALL body.
	(g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
	(g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
	(g95_find_forall_index): Check whether the FORALL index appears in
	the expression or not.
	(resolve_code): Modified.

2003-05-14  Paul Brook  <paul@nowt.org>

	* iresolve.c (g95_resolve_spread): Convert ncopies to index_type.

2003-05-13  Paul Brook  <paul@nowt.org>

	* trans-types.c (g95_max_array_element_size): Now a tree node.
	(g95_init_types): Work out max size properly.
	(g95_get_dtype_cst): Modify to match.

2003-05-11  Paul Brook  <paul@nowt.org>

	* trans-io.c (add_case): Create a label decl for case labels.

2003-05-11  Paul Brook  <paul@nowt.org>

	* arith.c (g95_integer_index_kind): New variable.
	* f95-lang.c (g95_init): Move frontend initialization here ...
	(g95_post_options): ... from here.
	* g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
	* intrinsic.c (add_functions): Use index kinds.
	* iresolve.c: Convert to index_kind where needed.
	* resolve.c (g95_resolve_index): Make public, use index_kind.
	(resolve_array_ref): Adjust to match.
	* trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
	* trans-stmt.c: Ditto.
	* trans-types.c: Ditto.
	* trans-types.h (g95_array_index_kind): Remove declaration.
	* trans-expr.c (g95_conv_expr_present): Use null_pointer_node.

2003-05-07  Paul Brook  <paul@nowt.org>

	* trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
	* trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
	of bound indices.

2003-05-07  Paul Brook  <paul@nowt.org>

	* trans-array.c (trans_static_array_pointer,
	g95_trans_array_constructor_value, g95_conv_array_initializer,
	g95_conv_structure): CONSTRUCTOR nodes only have one operand.
	(g95_add_loop_ss_code): Convert subscripts to the correct type.
	* trans-stmt.c (g95_trans_character_select): Ditto.
	* trans-types.c (g95_init_types): Ditto.

2003-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	* f95-lang.c (expand_function_body): Use input_line, not lineno.
	* trans-decl.c (g95_generate_function_code,
	g95_generate_constructors): Likewise.
	* trans.c (g95_trans_runtime_check, g95_add_block_to_block,
	g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
	Likewise.

2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
	* trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
	with components point to the DERIVED type itself, and two DERIVED
	type with components point to each other.
	* trans-expr.c (g95_conv_componet_ref): Modified

2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
	* trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
	null_pointer_node.
	(g95_trans_pointer_assign): Implement Nullify.

2003-05-01  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_walk_function_expr): Cope with NULL esym.
	* trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.

2003-05-01  Paul Brook  <paul@nowr.org>

	* trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
	trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
	IS_EMPTY_STMT.

2003-05-01  Canqun Yang  <canqun@yahoo.com.cn>

	* trans-stmt.c (g95_trans_integer_select): Add a parameter to build
	CASE_LABEL_EXPR.

2003-04-28  Paul Brook  <paul@nowt.org>

	* iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
	as their kind suggests.
	(g95_resolve_reshape): Ditto.

2003-04-28  Chun Huang  <compiler@sohu.com>

	* trans-expr.c (g95_conv_substring_expr): New function.
	(g95_conv_expr): Use it.

2003-04-28  Paul Brook  <paul@nowt.org>

	* iresolve.c (g95_resolve_transpose): Make it match the
	implementation.
	* trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.

2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>

	* trans-types.c (g95_add_field_to_struct): New function to
	add a field to a UNION_TYPE or RECORD_TYPE.
	* trans-types.h (g95_add_field_to_struct): Prototype.
	(g95_get_derived_type): Use g95_add_field_to_struct to add
	components.
	* trans-io.c (g95_add_field): Remove.
	(ADD_FIELD): Use new g95_add_field_to_struct function.
	(ADD_STRING): Likewise.
	* trans-stmt.c (g95_trans_select): Likewise.
	(g95_add_field): Remove duplicated function.

2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>

	Port implementation for CHARACTER SELECT from Andy's tree.
	* trans-stmt.c (g95_trans_character_select): Implement character
	select. (g95_add_field): New function.
	* trans-decl.c: Declare 'gfor_gndecl_select_string'.
	(g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
	* g95.h (struct g95_case): Add field 'int n'.
	* trans.h: Declare 'gfor_fndecl_select_string'.

2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>

	* bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
	(g95_insert_bbd): Die on duplicates.
	* g95.h (g95_insert_bbt_with_overlap): Delete prototype.

2003-04-14  Steven Bosscher  <steven@gcc.gnu.org>

	* g95.texi: Require GMP 4.0 -- like we actually
	do.  Explain the testsuite and what-goes-where.
	Don't use undefined texinfo symbol.  Break very
	long line.  Remove finished item from the list
	of open projects.

2003-04-11  Canqun Yang  <canqun@yahoo.com.cn>

	* trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
	LOGICAL type.

2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>

	* trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
	(g95_trans_forall_body): New function.

2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>

	* resolve.c (resove_where): New function.
	(resolve_where_shape): New function.
	(resolve_code): Add call to 'resolve_where'
	* trans-stmt.c (g95_trans_where): Modified.
	(g95_trans_where_2): New function.
	(g95_trans_where_assign): New function.
	(g95_evaluate_where_mask): New function.
	(g95_add_to_stmt_list): New function.
	(g95_get_temp_expr): New function.
	* trans.h (where_stmt_list): New structure.

2003-04-10  Paul Brook  <paul@nowt.org>

	* g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
	(DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.

2003-04-10  Steven Bosscher  <steven@gcc.gnu.org>

	Update after mainline -> tree-ssa-branch merge.
	* f95-lang.c (g95_mark_addressable): Update put_var_into_stack
	call.
	(g95_init): Update for new lang_hooks definition.
	(g95_post_options): New langhook.
	(LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
	* scanner.c (g95_new_file): Comment update.

2003-04-09  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* g95.h, lang-options.h: Add -Wimplicit-interface.
	* options.c (g95_init_options, g95_parse_arg): Set it.
	* interface.c (check_intents): Warn about call with implicit
	interface.
	* resolve.c (resolve_unknown_f, resolve_unknown_s): Call
	g95_procedure_use.

2003-04-05  Paul Brook  <paul@nowt.org>

	* iresolve.c (g95_resolve_spread): Don't resole based on type.
	* trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.

2003-03-29  Paul Brook  <paul@nowt.org>

	* iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
	(g95_resolve_unpack): Ditto.
	* trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
	(g95_conv_intrinsic_function): Use it.  Remove PACK and UNPACK.
	(g95_is_intrinsic_libcall): Add PACK and UNPACK.

2003-03-25  Paul Brook  <paul@nowt.org>

	* arith.c (g95_unary_user, g95_user): Remove dead functions.
	* arith.h: Ditto.
	* array.c (g95_free_array_ref): Ditto.
	* g95.h: Ditto.
	* symbol.c (g95_use_derived_tree): Ditto.
	* intrinsic.c (add_functions): Use simplification for SCALE.
	* primary.c (g95_match_rvalue): Test sym, not symtree.

2003-03-25  Paul Brook  <paul@nowt.org>

	* trans-decl.c (build_function_decl): Add parameter before it gets
	turned into a constant.
	* iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
	* trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
	* trans-decl.c (g95_create_module_variable): Don't pushdecl constants.

2003-03-22  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_conv_array_initializer): Allow scalar
	expressions.
	* trans-decl.c (g95_finish_var_decl): Result variables are not
	module variables.
	* trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
	(g95_conv_intrinsic_function): Use it.
	* trans-types.h (g95_type_spec): Remove dead declaration.

2003-03-21  Paul Brook  <paul@nowt.org>

	* trans-decl.c (g95_build_function_decl): Mark string parameters.

2003-03-20  Paul Brook  <paul@nowt.org>

	* trans-decl.c (g95_build_function_decl): Put character length
	parameters at the end of the function declaration.
	* trans-expr.c (g95_conv_function_call): Ditto.
	* trans-types.c (g95_get_function_type): Ditto.

2003-03-20  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* resolve.c (resolve_formal_arglist): Don't impose intent for
	procedure arguments of pure functions.
	(resolve_select): Remove redundant assignment.

2003-03-19  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* arith.c (validate_logical), g95.h, options.c (g95_init_options):
	Remove option l1.
	* g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
	* iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
	const.
	* lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
	Order list.
	* symbol.c (g95_add_type): Fix typo in comment.


2003-03-16  Paul Brook  <paul@nowt.org>

	* dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
	* expr.c (g95_build_call): Remove.
	* f95-lang.c (puchdecl_top_level): New function.
	* g95.h (g95_code): Store resolved symbol, not just the name.
	* intrinsic.c (g95_intrinsic_namespace): New global namespace.
	(g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
	(g95_get_intrinsic_sub_symbol): New function.
	* iresolve.c (g95_resolve_cpu_time): Use it.
	(g95_resolve_random_number): Ditto.
	* resolve.c: Set code->resolved_sym instead of code->sub_name.
	* trans-decl.c (g95_get_extern_function_decl): Give external decls
	the correct DECL_CONTEXT.  Add global symbold to the global scope.
	* trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
	fixed.

2003-03-16  Paul Brook  <paul@nowt.org>

	* g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
	* options.c (g95_parse_arg): Ditto.
	* module.c (mio_symbol_attribute): Handle the always_explicit bit.
	* resolve.c (resolve_formal_arglist): The always_explicit sould be set
	for the procedure, not the parameter.
	* trans-array.c (g95_trans_g77_array): New function.
	(g95_trans_assumed_size): Use it.
	(g95_trans_dummy_array_bias): Ditto.
	(g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
	(g95_conv_expr_descriptor): ... to here.  Update callers.
	* trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
	(g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
	* trans-expr.c (g95_conv_function_call): Handle g77 arrays.
	* trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
	* trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
	(g95_sym_type): Ditto.

2003-03-15  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_walk_elemental_function_args): Don't amputate the
	first chain.
	* trans-expr.c (g95_conv_function_call): Use the resolved symbol.

2003-03-14  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_array_is_packed): Remove.
	(g95_conv_array_base): Correctly handle all descriptorless cases.
	(g95_conv_array_stride): Use descriptorless strides.
	(g95_trans_dummy_array_bias): Don't always repack the array.
	(g95_build_dummy_array_decl): Automatic dummy arrays are only partial
	packed.
	* trans-types.c (g95_get_nodesc_array_type): Differentiate between
	dummy and non-dummy arrays...
	(g95_sym_type, g95_get_derived_type): ... like these.
	(g95_get_array_type_bounds): Allow discontiguous arrays.

2003-03-12  Paul Brook  <paul@nowt.org>

	* array.c (g95_resolve_array_spec): Fix comment.
	* g95.h (symbol_attributes): New flag always_explicit.
	* resolve.c (resolve_formal_arglist): Set it always_explicit.
	* iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
	* trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
	(g95_trans_array_bounds): Allow assumed shape arrays.
	(g95_trans_repack_array): Remove.
	(g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
	* trans-decl.c (g95_build_qualified_array): Only ignore absent
	bounds for assumed size arrays.
	(g95_build_dummy_array_decl): Use descriptorless arrays.
	* trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
	(g95_trans_pointer_assign): Fix typo.
	* trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
	code.
	(g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
	* trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
	Also modify callers.
	* trans-types.h (g95_get_nodesc_array_type): Modify prototype.

2003-03-08  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
	(g95_conv_array_ubound): Provide dummy value for assumed size arrays.
	* resolve.c (compare_spec_to_ref): Allow full array sections.

2003-03-08  Paul Brook  <paul@nowt.org>

	* expr.c (g95_simplify_expr): Also simplify array index and
	substring expressions.
	* resolve.c (compare_spec_to_ref): Check for assumed size bounds.
	* trans-array.c (g95_trans_array_bounds): New function.
	(g95_trans_auto_array_allocation): Use it.
	(g95_trans_assumed_size): Rewrite.
	* trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
	(gfor_fndecl_repack): Remove.
	(g95_build_qualified_array): Handle absent upper bounds.
	(g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
	(g95_get_symbol_decl): Update.
	(g95_build_intrinsic_function_decls): Initialize new decls.
	* trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
	(gfor_fndecl_repack): Remove.
	* trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
	* trans-types.c: (g95_build_array_type): Merge duplicated code..
	(g95_get_nodesc_array_type): Handle absent bounds.
	* trans-types.h (g95_get_nodesc_array_type): Declare.

2003-03-04  Paul Brook  <paul@nowt.org>

	* f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
	builtin-types.def.

2003-03-02  Paul Brook  <paul@nowt.org>

	* options.c (g95_init_options): Drfault to 1.
	(g95_pasrse_arg): Add -frepack-arrays, use strcmp.
	* trans-array.c (g95_conv_array_data, g95_conv_array_base,
	g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
	Handle non-constant size automatic arrays.
	(g95_conv_section_upper_bound, g95_conv_section_startstride): Use
	generic bound functions.
	(g95_trans_auto_array_allocation): Don't create a descriptor.
	(g95_trans_assumed_size): New function (broken).
	(g95_trans_dummy_array_bias): Remove unused var.
	* trans-array.h (g95_trans_assumed_size): Declare.
	* trans-decl.c (create_index_var): New fuction.
	(g95_build_qualified_array): New function.
	(g95_get_symbol_decl): Use it.
	(g95_trans_deferred_vars): Handle assumed shape seperately.
	* trans-types.c (get_element_type): Handle heap allocated arrays.
	(g95_is_nodesc_array): Include non-const size arrays.
	(g95_get_nodesc_array_type): Ditto.

2003-02-23  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_array_init_size): Should use stride, not size of
	last dimension.

2003-02-18  Paul Brook  <paul@nowt.org>

	* trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
	after intrinsic function check.

2003-02-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* io.c (match_io): Fix missing return value and remove useless
	assignment.
	* match.c (g95_match): Remove useless assignment.
	* module.c (parse_string):  Remove useless post increment.
	* simplify.c (g95_simplify_verify): Remove useless assignment.

2003-02-15  Paul Brook  <paul@nowt.org>

	* expr.c (restricted_intrinsic): Handle bad values gracefully.
	* g95.h (symbol_attribute): Add referenced member.
	(g95_symbol): Add dummy_order member.
	(g95_set_sym_referenced): Declare.
	* match.c (g95_match_assignment, g95_match_call): Use it
	* primary.c (match_actual_arg, g95_match_rvalue,
	g95_match_variable): Ditto.
	* symbol.c (next_dummy_order): New variable.
	(g95_set_sym_referenced): New function.
	(check_done): New function.
	(g95_add_*): Use it.
	* trans-decl.c: Make formatting conform to GCC standards.
	(g95_defer_symbol_init): Add dummy variables in the right order.
	(g95_get_symbol_decl): Only accept referenced variables.
	(g95_create_module_variable): Module variables are always required.
	(generatr_local_decls): New function.
	(generate_local_vars): New function.
	(g95_generate_function_code): Use it.

2003-02-13  Paul Brook  <paul@nowt.org>

	* trans-decl.c (g95_conv_struct_cons): Remove.
	(g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
	* trans-expr.c (g95_conv_structure): New function.
	(g95_conv_expr): Use it.

2003-02-09  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_array_init_size): Don't evaluate the linit
	expressions multiple times.
	(g95_trans_auto_arry_allocation): Use pointer not tmp.

2003-02-08  Paul Brook  <paul@nowt.org>

	* module.c (mio_symtree_ref): Declare as static.
	(mio_expr): Remove dead code.
	(read_module): Set the symtree link for fixups.
	* trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
	(build_round_expr): ... to this.
	(g95_conv_intrinsic_aint): New function.
	(g95_conv_intrinsic_function): Use it.

2003-02-08  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_trans_array_constructor_value): Use the acutal
	offset after modificaton, not the increment expression.
	* dependency.c: Kill excess whitespace.

2003-02-07  Sanjiv Gupta  <sanjivg@noida.hcltech.com>

	* dependency.h: Remove some function declarations.
	* dependency.c (get_no_of_elements): Change this function not to
	return int.
	* other: Add comments for all modified functions.

2003-02-06  Paul Brook  <paul@nowt.org>

	* g95spec.c (lang_specific_functions): Fix initializer warning.
	* dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
	for structure type names.
	* trans-decl.c (g95_cons_structure_cons): New function.
	(g95_get_symbol_decl): Use it.
	* trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
	referencing code.

2003-02-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* resolve.c (compare_cases): Add const to casts.

2003-01-30  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* g95.h (g95_check_f): Change a1 to f1m.
	* intrinsic.c (add_sym_1m, check_specific,
	g95_intrinsic_func_interface): Use it.

	* module.c (init_pi_tree): Remove useless cast.
	(fp2): Fix argument type.

	* parse.c (parse_select_block): Add comment.

2003-02-05  Toon Moene  <toon@moene.indiv.nluug.nl>

	* lang-options.h: Fix warning involving C90 concatenated
	strings.

2003-02-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
	    Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* io.c (format_asterisk): Complete initializer to kill warning.
	* arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
	DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
	(g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
	new defines to complete initializers.  Kills all warnings.

	* Make-lang.in: Comment cleanup.

2003-02-05  Paul Brook  <paul@nowt.org>

	* array.c (g95_free_constructor): Handle NULL expressions.
	* resolve.c (resolve_structure_cons): Ditto.
	* decl.c (g95_match_null): New Function.
	(variable_decl): Use it.
	* module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
	* primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
	* trans-types.c (g95_set_decl_attributes): Remove empty function.

2003-02-05  Paul Brook  <paul@nowt.org>

	* trans.h (build1_v): New macro.
	(build_v): Remove pointless and incorrect prototype.
	* various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
	* f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.

2003-02-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* Make-lang.in (F95_OBJS): Remove one more dead file.

2003-02-01  Paul Brook  <paul@nowt.org>

	* lang-specs.h: Don't pass -ffixed-form to the linker.
	* trans-decl.c (g95_generate_function_code): Clear saved decl chain.

2003-02-01  Paul Brook  <paul@nowt.org>

	* Make-lang.in (F95_OBJS): Remove dead files.
	* trans-array.c (g95_array_init_size): Do the right thing when
	ubound=NULL.
	* trans-decl.c (g95_generate_function_code): Initialize deffered
	symbol list before translating contained subroutines.
	* trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
	scalar invariant values	here...
	(g95_conv_variable, g95_conv_function_call): ... instead of here ...
	* trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.

2003-01-29  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_add_loop_code): Put pre code in the right block.
	(g95_walk_elemental_function_args): Reverse chains before adding.
	(g95_reverse_ss): Move about a bit.
	* trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
	function arguments.

2003-01-28  Paul Brook  <paul@nowt.org>

	* intrinsic.c (resolve_intrinsic): Use correct union member.
	* trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
	parameters.
	* trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
	use associated variables.
	* trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
	* trans-expr.c (g95_conv_expr_present): ... to here.
	* trans.h: Declare it.
	* trans-types.c (g95_sym_type): Assume subroutine if not specified.

2003-01-28  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>

	* array.c (expand_iterator): Suppress useless assignment.
	* decl.c (match_char_spec): Ditto.
	* io.c (match_io_iterator): Ditto.
	* primary.c (match_real_constant): Ditto.
	* interface.c (fold_unary, g95_free_interface, g95_extend_expr):
	Ditto.  Also, use g95_intrinsic_op not int for intrinsic operators.
	* matchexp.c (match_add_operand, match_level_5): Likewise.
	* module.c (parse_atom, find_enum): Likewise.
	* resolve.c: move #include <string.h>
	(resolve_select): Fix serious typo.

2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.n>

	* Make-lang.in: Don't build with broken tree-ssa-pre.

2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* resolve.c (resolve_index): Add a TODO.
	* symbol.c: Remove useless "#include <ctype.h>".

2003-01-27  Paul Brook  <paul@nowt.org>

	* check.c (check_rest): Allow different type kinds as an extension.
	* g95.h (g95_resolve_f): Add f1m.
	* intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
	* intrinsic.h: Chenge prototypes for MIN and MAX.
	* iresolve.c (g95_resolve_minmax): New function.
	(g95_resolve_min, g95_resolve_max): Use it.
	* trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
	arguments once.
	(g95_conv_intrinsic_present): Fix logic.

2003-01-27  Steven Bossche  <s.bosscher@student.tudelft.nl>

	* g95.h (g95_case): Don't be a tree, be a double linked list.
	* match.c (match_case_selector): Remove redundant semantics check.
	Clean up a few goto's to make it a tiny little bit faster.
	* resolve.c (case_tree): Die.
	(compare_cases): Accept and compare unbounded cases too.
	(check_case_overlap): Don't build a tree.  Instead, merge-sort the
	whole list of g95_cases passed from resolve_select.
	(sane_logical_select): Die.
	(check_case_expr): Return FAILURE if a CASE label is of the wrong
	type kind.
	(resolve_select): Fixup case expression for computed GOTOs, put it
	in expr, not expr2, for easier handing in the parse tree dumper and
	the code generator.  Rewrite the rest of the function: Kill
	unreachable case labels and unreachable case blocks.
	* dump-parse-tree.c (g95_show_code_node): Always dump expr for
	an EXEC_SELECT, not case2 anymore.
	* trans-const.c (g95_conv_constant_to_tree): New function.
	(g95_conv_constant): Use it.
	* trans-const.h: Declare prototype for the new function.
	* trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
	g95_trans_character_select): New static functions.
	(g95_trans_select): Rewrite.

2003-01-26  Paul Brook  <paul@nowt.org>

	* intrinsic.c (add_fnctions): Properly add dreal.
	* trans-intrinsic.c (g95_conv_intrinsic_present): New function.
	(g95_conv_intrinsic_function): Use it.
	* trans-io.c (build_dt): Abort on internal files (unimplemented).

2003-01-26  Paul Brook  <paul@nowt.org>

	Widespread changes to the handling of symbols in expressions.  These
	are now linked via g95_symtree nodes.
	* parse.c (g95_fixup_sibling symbols): New function.
	(parse_contained): Use it.
	* g95.h (symbol_attribute): Add contained.  Indicates a symbol is a
	contained procedure that has bee correctly fixed up.
	(g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.

2003-01-24  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_walk_expr): Function result attributes are in
	sym->result.
	* trans-expr.c (g95_conv_function_call,
	g95_trans_arrayfunc_assign): Ditto.
	* trans-decl.c (g95_get_symbol_for_expr): Set sym->result.

2003-01-23  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* expr.c (check_restricted): Fix error message.
	* symbol.c (free_st_labels): Plug memleak.

2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
	reduce_binary_aa, reduce_binary, eval_intrinsic,
	eval_intrinsic_f2): Use typesafe prototypes for eval functions.
	* g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
	for typesafe intrinsics helper functions.
	(g95_intrinsic_sym): Use them.
	* intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
	add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
	add_sym_5, add_conv, resolve_intrinsic, do_simplify,
	check_specific, g95_intrinsic_func_interface,
	g95_intrinsic_sub_interface): Adjust all calls to intrinsics
	helper functions.
	* trans-decl.c (g95_get_extern_function_decl): Likewise.
	* Make-lang.in: Don't disable warnings for strict prototypes
	any longer, everything is typesafe now.

2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* bbt.c (duplicate_node): Make static.
	* module.c (module_name): Make static.
	* scanner.c (include_dirs): Make static.

2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	Hard coded _gfor_'s should not show up anymore.
	* g95.h (PREFIX): New macro.
	* iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
	hard-coded "_gfor".
	(g95_resolve_random_number): Likewise.
	* trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
	* trans-io.c: Remove 'prefix' macro.  Replace all uses with
	the new PREFIX macro from g95.h.

2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	The troubles of forking... Andy implemented this just now too.
	Let's stick to that and keep the trees close.
	* g95.h (g95_st_label): 'format' member is now a g95_expr.
	* io.c: Revert previous changes.
	(g95_match_format): Match the format string as a character
	literal expression.
	* match.h (g95_statement_label): Declare external.
	* parse.c: Revert previous changes.
	* symbol.c (g95_free_st_label): Free a g95_expr instead
	if a 'char *'.
	* trans-io.c: Revert previous changes.
	(build_dt): Use set_string to set the format string.

2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* io.c (format_string): Make non-static.
	(g95_match_format): Remember the format string.
	(terminate_io): Add I/O termination for empty I/O lists.
	* match.h: Declare external format_string.
	* parse.c (check_statement_label): Attack the format string
	to a format label for FORMAT statements.
	* trans-io.c (g95_add_field): Define prefix macro.  Replace
	all uses of PREFIX define with a use of this macro.
	(build_dt): Implement formatted I/O for format labels.

2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* lang-options.h: Kill "-std=F".
	* options.c: Remove unimplemented "-std=F".  Modify
	web address.
	* misc.c (g95_terminal_width): New function.
	* error.c (g95_error_init_1): Use g95_terminal_width.
	* g95.h: Add prototype for g95_terminal_width, remove
	fmode flag.

2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* Make-lang.in: Fix typo.

2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* g95.h (struct g95_case): Remove unused cruft, new member
	'where' to keep track of the locus of the default case.
	* match.c (g95_match_case): Add locus to the current case.
	(match_case_selector): Likewise.
	* parse.c (parse_select_block): Move semantics check for
	multiple DEFAULT cases out of here to...
	* resolve.c (check_case_overlap): ...here.  Return sooner
	when possible.
	(check_case_expr): Take two g95_cases now, use to sure the
	expression kinds are the same.
	(resolve_select): Cleanup.

2003-01-18  Paul Brook  <paul@nowt.org>

	* trans-io.c: Fix typos in ported IO work (set_fla[tg]).
	* trans-decl.c (g95_set_symbol_decl): Handle non-array result
	variables.
	(g95_get_extern_function_decl): Put decls in the correct context.

2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* trans-io.c: Port changes from Andy to set ERR flag.

2003-01-17  Paul Brook  <paul@nowt.org>

	* trans-array.c: Add various comments.
	(g95_ss_terminator): Declare as const.
	(g95_walk_expr): Remove first parameter and update all callers.
	(g95_walk_op_expr): Initialize scalar SS properly.
	* trans-array.h (g95_walk_expr): Update prototype.
	* trans-expr.c: Update for new g95_walk_expr.
	* trans-intrinsic.c: Ditto.
	* trans-io.c: Ditto.
	* trans.h: Various comments for SS chains.

2003-01-17  Paul Brook  <paul@nowt.org>

	* intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
	and RRSPACING.
	* intrinsic.c (add_functions): Use them.
	* trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
	* trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.

2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	Fallout of a small merge conflict:
	* intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).

2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* initrinsic.c: New add_sym_* functions for strong typing.
	(add_conv): Make prototype strict.
	* dump-parse-tree.c, dependency.c: Include config.h
	* resolve.c, trans-io.c: Fix typos.

2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* dump-parse-tree.c (g95_show_code_node): Show the
	condition for a computed GOTO that was transformed
	to a SELECT CASE construct.
	* resolve.c (check_case_overlap): Revert previous switch
	to treaps, it was too slow and didn't catch all trouble.
	(resolve_symbol): Be more flexible about module procedures.
	* symbol.c (check_conflict): Point to relevant section in
	the standard for dubious conflict.  Allow procedure
	dummy arguments to be optional again.
	* trans-io (add_field): Rename to g95_add_field.  Change
	all callers.
	* trans-stmt (trans_select): Handle unbounded cases for
	integer SELECT CASE constructs.  Fix/add more comment.

2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* g95.h: Uses GCC's function attribute macros.
	* error.c, module.c, parse.c, g95.h: More function attributes.

2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
	Forgot a file...
	* trans-decl.c (get_label_decl): Use TREE_LINENO instead
	of DECL_SOURCE_LINE, and TREE_FILENAME instead of
	DECL_SOURCE_FILE.

2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* f95-lang.c (pushdecl): Use TREE_LINENO instead of
	DECL_SOURCE_LINE.
	* trans.c (g95_trans_code): Use annotate_all_with_file_line
	instead of nowdead wrap_all_with_wfl.

2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* parse.c (g95_parse_file): In verbose mode, dump the parse tree
	before generating code, so we can still see it even if the code
	generation phase dies.

2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* decl.c (build_sym): Split out initialization expression parts...
	(add_init_expr_to_sym): ...to here.
	(variable_decl): Add the symbol following an attribute list to the
	symbol tree before parsing the optional initialization expression
	if the symbol is not of a derived type.
	* primary.c (g95_match_rvalue): Don't assume a symbol always has
	a value if it is a PARAMETER.

2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* misc.c: Don't #include <mcheck.h>
	* module.c: Ditto.  Kill uses of mtrace, muntrace.  If there
	ever was a glibc bug, then either this was never reported to
	glibc people, or it has been fixed for so long that there's
	no information you can find about it, anywhere.

2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	Fix warnings:
	* module.c (attr_bits, bt_types, array_spec_types):
	Switch 'const' and 'static'.
	* iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.

	GNU'ify source code:
	* trans-io.c: Numerous fixes, one fixed warning and a few
	TODO markers so that we don't forget about them.

2003-01-13  Paul Brook  <paul@nowt.org>

	* intrinsic.c (add_functions): Add G95_ISYM_SCALE.
	* intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
	Add G95_ISYM_SCALE.
	* trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
	* match.c (g95_match_stop): Fix dumb == -> != error.

2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* dump-parse-tree.c (show_indent): Add line breaks.  This
	whole dumping process needs cleanups.
	* f95-lang.c (g95_mark_addressable): Fix prototype to match
	the langhook.  Fix 'return's accordingly.
	* g95-support.h: Adjust prototype.
	* g95.h: Add 'no_backend' member to 'g95_option_t' struct.
	* lang-options.h: Add '-fsyntax-only'.
	* options.c (g95_init_options): Init 'no_backend'.
	(g95_parse_arg): Deal with '-fsyntax-only'.
	* parse.c (g95_parse_file): Do not generate code if 'no_backend'
	is set.

2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
	Patch from Arnaud
	* resolve.c (resolve_symbol): Assumed shape arrays must be dummy
	arguments.  Also make sure that if a symbol is marked INTRINSIC,
	an intrinsic with the symbol's name actually exists.
	(check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
	Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
	ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.

2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* resolve.c (resolve_contained_functions): Fix condition, don't
	throw internal_error if a child namespace has no name.  Apparently
	this can be the case?

2003-01-11  Paul Brook  <paul@nowt.org>

	Port changes from Andy's tree:
	* g95.h (g95_code): Add stop_code.
	* match.c (g95_match_stop): Detter syntax checking.
	* resolve.c (resolve_generic_f0): Return match type.
	(resolve_generic_f): Remove dead/duplicated code.
	(resolve_specific_f): Ditto.
	* dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
	* trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
	* trans-stmt.c (g95_trans_stop): Handle new STOP format.

2003-01-11  Paul Brook  <paul@nowt.org>

	* trans-array.c: Various documentation/comment changes.
	* trans-stmt.c: Ditto.


2003-01-10  Paul Brook  <paul@nowt.org>

	* options.c/h: Add -fdump-parse-tree as alias of -v.

2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* dump-parse-tree.c (g95_show_namespace): Fixed another
	typo.  Sorry, it's Friday...

2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	Spotted by Tobi:
	* trans-array.c, trans-array.h, trans.c, trans-const.c,
	trans-const.h, trans-decl.c, trans-expr.c, trans.h
	trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
	trans-types.c: Fix bogus copyright years, add 2003.
	* trans-types.h: Give copyright header.

2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* dump-parse-tree.c (g95_show_namespace): Fixed typo.
	* expr.c, options.c, scanner.c: Add some more 'const' markers.
	* intrinsic.c: Some constant strings moved to read-only memory.
	* io.c (format_asterisk): Move to...
	* g95.h: ...here.

2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* dump-parse-tree.c (g95_show_namespace): Dump implicit
	types for ranges instead of per-letter.  Indent the
	'CONTAINS' just like everything else.
	* resolve.c (resolve_contained_functions): Clarify comment.
	Explain non-obvious conditional expression.  Improve
	diagnostics if tyoe cannot be resolved.
	Port semi-fix from Andy's tree:
	(was_declared): Move up before first use.
	(generic_sym, specific_sym): New functions.  Code moved
	out if procedure_kind.
	(procedure_kind): Simplify using new functions.
	(resolve_generic_f): Make sure the functions we find in
	a parent namespace is generic.
	(resolve_specific_f): Ditto for specific functions.

2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* trans-stmt.c, trans.c: Fix some code style issues. Add
	some more comment (but still not enough!).

2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* symbol.c (flavors, procedures, intents, acces_types,
	access_types, ifsrc_types): Make const.
	* misc.c (g95_string2code): Make 'm' param 'const'.
	* module.c (find_enum, write_atom, mio_name): Make
	'm' param 'const'.
	(attr_bits, bt_types, array_spec_types, array_ref_types,
	ref_types, expr_types): Make const.
	* g95.h: Adjust external decls.

2003-01-09  Paul Brook  <paul@nowt.org>

	* Testsuite: Add a load of new cases.

2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* Make-file.in: Add dependency on back end header files;
	a parallel build should work now.
	* f95-lang-c (lang_identifier): Remove bogus comment.
	(g95_be_parse_file): Fix prototype.
	(g95_init): Make static.
	(g95_finish): Make static.
	* error.c (g95_syntax_error): Kill. Make define in...
	* g95.h (g95_syntax_error): Define.
	(g95.options): Make 'source' member 'const'.
	* interface.c (g95_match_interface): Explain
	hard-to-read condition.
	(g95_match_end_interface): Ditto.
	* trans_const.c (g95_build_string_const): Make 's' parameter
	'const'.
	* trans_const.h: Adjust protoype accordingly.
	* trans-decl.c: Include tree-dump.h
	(g95_generate_function_code): Build fixes for recent changes
	in the tree-ssa branch.

2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* format.c: Kill, move code from here...
	* io.c: ...to here.
	* Make-lang.in: Adjust.
	* MANIFEST: Ditto.
	* match.h: Ditto.
	* BUGS: Mention where to submit bugs.  Move old content...
	* TODO: ...to here.  New file.

2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
	Fix most warnings, and suppress the ones we can't fix for now.
	* Make-lang.in: Suppress warnings about bad proto's in g95.h,
	these warnings just clutter the screen and there's not much
	we can do about them for now anyway.
	* check.c, iresolve.c: Mark unused function parameters.
	* dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
	they should be resolved before they get here.
	* error.c: Remove unused FILE *status_out.
	* f95-lang.c (g95_init): Remove bogus cast.
	* Many files: Make things 'const' where required.
	* g95.h: Fix prototypes for all modified functions above.
	(g95_options): Remove 'object' member.

2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* Make-file.in: Cleanup bogus targets.  Add more comment.
	* lang-options.h: New option '-w'.
	* g95.h: add no_options field to struct g95_options.
	* options.c (g95_init_options): Default no_warnings to off.
	(g95_parse_arg): Recognise the '-w' switch and its alias,
	'-fno-warnings'.
	* error.c (g95_warning, g95_warning_now): Don't emit warning if
	no_warning option is set.
	* iresolve.c (g95_resolve_shape): Fix warning.

2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* primary.c (g95_next_string_char): Rename next_string_char, and
	make static.  Adjust callers accordingly.
	* resolve.c (resolve_generic_f0): Return try, not match.  Adjust
	callers accordingly.
	* g95.h: Split out all g95_match* functions to...
	* match.h: ...here. New file.
	* array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
	matchexp.c, module.c, parse.c, primary.c: Inlcude match.h

2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
	g95_merge_new_implicit): New functions.
	(g95_match_implicit_none, g95_match_implicit): Move from here...
	* match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
	Modify to use the new functions in symbol.c.
	* g95.h: Add and move prototypes.

2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* bbt.c (insert): Use a typedef'ed compare_fn prototype for the
	node compare function.
	(g95_insert_bbt): Likewise.
	(g95_insert_bbt_with_overlap): Likewise.
	(g95_delete_bbt): Likewise.
	(delete_treap): Likewise. Also fix a potential bug when calling it.
	* module.c (compare_pointers): Change proto to compare_fn.
	(compare_integers): Likewise.
	(compare_true_names): Likewise.
	(find_true_name): Adjust call to compare_true_names to match proto.
	(require_atom, write_atom, mio_name): Fix 'const' warnings.
	(init_pi_tree): Make compare a compare_fn instead of (int *).
	* resolve.c (compare_cases): Change proto to compare_fn.
	* symbol.c (g95_compare_symtree): Change proto to compare_fn, make
	it static, and rename to compare_symtree.
	(delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
	function.
	* g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
	of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.

2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
	* Make-lang.in: Fix spaces/tabs issues from previous patch.
	* patch.options: Blow away Paul's checkin mistake :-)
	* io.c (terminate_io): Fix memory leak (Arnaud).

2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>

	* Make-lang.in: Teach about building DVI, info manual.
	* g95.texi: New file.

2003-01-02  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_reverse_ss): Make static and don't use.
	(g95_conv_ss_descriptor): Don't use g95_loopinfo
	(g95_conv_array_parameters): Modify for pointer assignments.
	(g95_walk_subexpr): New function.
	(g95_walk_expr*): Use it.
	* trans-array.h (g95_reverse_ss): Remove prototype.
	* trans-expr.c (g95_trans_pointer_assign): Implement.
	(Many): Set se.want_pointer before calling g95_conv_array_parameter.
	* trans-intrinsic.c: Sync with scalarizer changes.
	* trans-io.c: Ditto.

2002-12-29  Paul Brook  <paul@nowt.org>

	* trans-array.c: Document calling convention for arrays.

2002-12-19  Paul Brook  <paul@nowt.org>

	* trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
	assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
	optional parameters for some intrinsics.
	(g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
	* trans-expr.c (g95_conv_function_call): Pass NULL for absent
	optional parameters.
	* trans.h (g95_se): Add ignore_optional flag.

2002-12-15  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
	* trans-decl.c (g95_generate_function_code): Use TDI_original.

2002-12-14  Paul Brook  <paul@nowt.org>

	* trans-stmt.c (g95_trans_call): Use resolved symbol name.

2002-12-12  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_trans_array_constructor_subarray): Fully
	initialize the scalarizer.
	(various): Update to new format of g95_expr->value.constructor.

2002-12-08  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_put_offset_into_var): New function.
	(g95_trans_array_constructor_subarray): New function.
	(g95_trans_array_constructor_value): Use it.
	(g95_array_cons_size): Don't abort() on array components.

2002-12-08  Paul Brook  <paul@nowt.org>

	* Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
	* support.c: Update #includes.
	(statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
	* trans-array.c: Update #includes.
	* trans.c: Ditto.
	* trans-const.c: Ditto.
	* trans-io.c: Ditto.
	* trans-types.c: Ditto.
	(g95_init_types): Set size_type_node.
	* trans-decl.c: Update #includes.
	(gfor_fndecl_adjust{l,r}): Declare and initialize.
	* trans-stmt.c: Update #includes.
	(g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
	(g95_trans_select): Fix check for unbounded ranges.
	* trans-expr.c: Update #includes.
	(g95_conv_string_tmp): New function.
	(g95_conv_concat_op): Use it.
	* trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
	* Trans-intrisic.c: Update #includes.
	(g95_conv_intrinsic_strcmp): New function.
	(g95_conv_intrinsic_adjust): Ditto.
	(g95_conv_intrinsic_function: Use them.

2002-11-30  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_walk_function_expr): Handle non-array return by
	reference.
	* trans-dec.c (g95_build_function_decl): Handle character return
	parammeters.
	(g95_get_fake_result_decl): Ditto.
	(g95_trans_deferred_vars): Ditto.
	* trans-expr.c (g95_conv_function_call): Ditto.
	(g95_trans_arrayfunc_assign) Limit to array valued functions.
	* trans-intrinsic.c (g95_conv_intrinsic_char): New function.
	(g95_conv_intrinsic_function): Use it.
	* trans-types.c (g95_sym_type): Handle functions returning strings.
	(g95_return_by_reference): Ditto.
	(g95_get_function_type): Ditto.

2002-11-18  Paul Brook  <paul@nowt.org>

	* trans-stmt.c (g95_trans_if): Fix IF statements when the condition
	requires a temporary.
	(g95_trans_select): Handle computed gotos.
	* trans-types.c (g95_build_array_type): Warn about non-functional
	assumed shape arrays.
	* trans-expr.c (g95_trans_scalar_assign): Correctly handle post
	blocks.
	* trans-intrinsic.c (g95_conv_intrinsic_round): New function.
	(g95_conv_intrinsic_int): New function.
	(g95_conv_intrinsic_mod): New function.
	(g95_conv_intrinsic_ichar): New function.
	(g95_conv_intrinsic_function): Use them.
	(g95_conv_intrinsic_dim): Use g95_evaluate_now.

2002-11-17  Toon Moene  <toon@moene.indiv.nluug.nl>

	* trans-types.c (g95_build_array_type): Assumed
	sized arrays can have rank > 1.
	* trans.c (g95_trans_code): Remove erroneous
	warning about CONTINUE.
	* trans-expr.c (g95_conv_variable): Remove
	erroneous assert.

2002-11-15  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_conv_array_parameter): Check for NULL stride.

2002-10-31  Paul Brook  <paul@nowt.org>

	* f95-tree.c: Remove tree copying stuff that's now in gimple.c
	* trans-expr.c (g95_conv_component_ref): Handle character string
	components.
	(g95_conv_string_parameter): Ditto.
	* trans-types.c (g95_get_derived_type): Add length decl to caracter
	string components.

2002-10-10  Paul Brook  <paul@nowt.org>

	* trans-decl.c (gfor_fndecl_size?): Declare and initialize.
	* trans-expr.c (g95_conv_function_call): Remove unreliable return value
	check.
	* trans-intrinsic.c (g95_conv_intrinsic_size): New function.
	(g95_conv_intrinsic_function): Handle size and shape intrinsics.
	(g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
	* trans-types.c (pvoid_type_node): Declare and initialize.
	* trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
	(g95_array_allocate): Fix when base==data.
	(g95_conv_array_parameter): Correctly handle reduced rank sections.
	* trans-io.c (g95_trans_write): Correctly handle string modifiers.

2002-10-09  Paul Brook  <paul@nowt.org>

	* (g95_conv_expr_reference): Handle character strings correctly.

2002-10-07  Paul Brook  <paul@nowt.org>

	(g95_expand_decl): Rename from f95_expand_decl_stmt and use as
	langhook.
	* trans-array.c (g95_build_array_initializer): Remove.
	(g95_conv_array_initializer): New Function.
	(g95_trans_auto_arry_allocation): Cleanup.
	(g95_trans_init_character_array): Remove.
	* g95spec.c: Link in libgforbegin.
	* trans.c (g95_generate_code): Rename main function to MAIN__.
	(g95_create_var): New function.
	(g95_create_var_np): New function.
	(g95_evaluate_now): New function.
	(g95_start_block): New function.
	(g95_finish_block): New function.
	(g95_add_expr_to_block): New function.
	(g95_add_block_to_block): New function.
	* trans-expr.c (g95_conv_componen_ref): New function.
	* Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
	(F95_OBJS): Add dependency.o.
	* f95-lang.c (g95_is_simple_stmt): Remove.
	* f95-tree.c (mark_not_simple): New function.
	(unshare_all_trees): New function.
	(create_tmp_var, create_tmp_alias_var): Remove.
	* support.c (declare_tmp_vars, tree_last_decl): Remove.
	* trans*: Convert to new IR using GENERIC trees.  Don't bother about
	SIMPLE/GIMPLE rules, this is now done by Lang-independant code.

2002-10-01  Paul Brook  <paul@nowt.org>

	* trans-array.c: Add support for descriptorless arrays.
	(g95_conv_array_data): New function.
	(g95_conv_array_base): New function.
	* trans-array.h: Declare these here.
	* trans-decl.c(g95_create_mopdule_variable): Perform variable
	initialization and creation here.
	(g95_create_module_vars): Instead of here.
	* trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
	* trans-intrinsic.c: Ditto.
	* trans-types.c (g95_is_nodesc_array): New function.
	(g95_get_nodesc_array_type): New function.
	(g95_sym_type, g95_get_derived_type): Use them.
	* trans-const.c (g95_conv_mpf_to_tree): Remove workaround.

2002-09-28  Paul Brook  <paul@nowt.org>

	* trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
	* trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
	parameters.

2002-09-24  Paul Brook  <paul@nowt.org>

	* f95-lang.c (listify): Remove declaration.
	(expand_function_body): Use optimize >=1 instead of flag_tree_saa.
	(listify)
	* f95-tree.c (get_name): New function.
	* trans.c (module_namespace): Remove.
	* trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
	* trans-types.c: Ditto.

2002-09-19  Paul Brook  <paul@nowt.org>

	* trans-array.c (g95_get_array_cons_size): New Function.
	(g95_con_ss_startstride): Handle Array constructors.
	(g95_conv_loop_setup): Ditto.
	(g95_conv_array_parameter): Ditto.
	* tras-decl.c (g95_finish_var_decl): Make initializes variables
	static.

2002-09-19  Paul Brook  <paul@nowt.org>

	* trans.c (g95_simple_fold_tmp): Detect variables inside
	NON_LVALUE_EXPR.
	* trans-stmt.c (g95_trans_arithmetic_if): Implement this.

2002-09-18  Steven Bosscher <s.bosscher@student.tudelft.nl>

	* Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o

2002-09-14  Paul Brook  <paul@nowt.org>

	* trans.c (g95_create_module_variable): Move to trans-decl.c.
	* trans-const.c (g95_conv_string_init): New Function.
	* trans-const.h: Declare it.
	* trans-decl.c (g95_get_symbol_decl): Handle initializers for static
	variables. Don't bail on intrinsic symbols.
	(get_extern_function_decl): Handle specific intrinsic functions.
	* trans-types.c (g95_sym_type): Dummy functions don't return
	reference types.
	* trans-array.c (g95_build_array_initializer): New Function.
	(g95_trans_auto_array_allocation): Build initializer for static decls.
	Don't use mpz_addmul, it's GMP4 only.

2002-09-12  Paul Brook  <paul@nowt.org>

	* trans-decl.c (g95_generate_code): Fix thinko with return variable.
	(g95_get_extern_function_decl, g95_build_function_decl): Mangle
	assembler names for module procedures.

2002-09-11  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>

	* trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
	dependency/

2002-09-10  Paul Brook  <paul@nowt.org>

	* trans-array.c: Change format of G95_SS_TEMP strictures.
	(g95_check_fncall_dependancy): New function.
	(trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
	offsets.
	* trans-decl.c (g95_get_symbol_decl): move assertion after handling of
	result variables.
	(g95_build_function_decl): Don't assume result arrays are packed.
	(g95_trans-deferred-vars): Handle array result variables.
	(g95_generate_fuction_code): Clear saved_function_decls.
	* trans-expr.c (g95_conv_fnction_call): Handle direct array return by
	reference.
	(g95_trans_arrayfunc_assign): New function.
	(g95_trans_assignment): Use it.
	* trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
	(g95_se): Add direct_byref.
	* trans-types.c: Use sym->result rather than sym where appropriate.
	* trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
	Update other functions to use this.
	(g95_is_intrinsic_libcall): New function.
	(g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
	(g95_walk_intrinsic_function): Ditto.

2002-09-08  Paul Brook  <paul@nowt.org>

	* trans-types.c: Change rank field to dtype field in array descriptor.
	* trans-array.c: Implement filling of dtype array descriptor field.
	* trans-intrinsic.c: Fix broken LEN intrinsic.

2002-09-07  Paul Brook  <paul@nowt.org>

	* trans-intrinsic.c: Remove outdated todo intrinsic list.
	(g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
	(g95_walk_intrinsic_function): Add MINLOC and MAXLOC.

2002-09-06  Paul Brook  <paul@nowt.org>

	* Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
	(gt-f95-trans-types.h): Add dependancy information.
	* config-lang.in (gtfiles): Add trans-types.c
	* f95-lang.c (g95_be_parse_file): Pass error and warning counts
	back to top-level code.
	* trans-array.c, trans-types.c: Change format of array descriptor.
	(g95_conv_descriptor_dimension): New function.
	* trans-types.h (g95_conv_descriptor_rank): define.
	* trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
	intrinsics.

2002-09-02  Steven Bosscher <s.bosscher@student.tudelft.nl>

	* trans-array.c, trans-types.c:	Add rank information to descriptor.

2002-09-06  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>

	* trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.

2002-09-04  Paul Brook  <paul@nowt.org>

	* f95-lang.c (g95_create_decls): New function.
	(g95_init):  Move initialization of external decls to above, and call
	from g95_be_parse_file.
	* trans.c (g95_finish_stmt): Don't amputate the decl chain.
	* trans-types.c (g95_init_types): Always name integer and char types.
	(g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.

2002-09-02  Steven Bosscher <s.bosscher@student.tudelft.nl>

	* Make-lang.in: Add options.c to F95_PARSER_OBJS

2002-09-02  Paul Brook  <paul@nowt.org>

	* g95_generate_code: Clear the attr for __fortran_main.
	* trans-types.c (g95_finish_type): New function.
	* g95_init_io_state_type: Use g95_finish_type.
	* g95_conv_intrinsic_anyall: Fix thinko in result initialization.

2002-09-01  Paul Brook  <paul@nowt.org>

	* README.backend: Warn about the dangers of extra config.h files.
	Remove obsolete libgfor stuff.
	* config-lang.in: Add target-libgfor dependancy.
	* g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.

2002-09-01  Toon Moene  <toon@moene.indiv.nluug.nl>

	* g95_conv_mpz_to_tree: Free storage pointed to by q,
	not by buff.

2002-08-30  Paul Brook  <paul@nowt.org>

	* trans-intrinsic.c (g95_conv_intrinsic_function,
	g95_walk_intrinsic_function): Added ANY and ALL.
	(g95_conv_intrinsic_anyall): New function.
	* iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
	mangled name
