2008-12-31  Daniel Franke  <franke.daniel@gmail.com>

	* check.c (dim_rank_check): Fixed checking of dimension argument
	if array is of type EXPR_ARRAY.

2008-12-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/38602
	* trans-decl.c (init_intent_out_dt): Allow for optional args.

2008-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/38398
	* io.c: Add error checks for g0 formatting and provide adjustment of
	error loci for improved error messages.

2008-12-21  Arjen Markus  <arjen.markus@wldelft.nl>
	    Daniel Kraft  <d@domob.eu>

	PR fortran/37605
	* gfortran.texi: Fixed some typos and some minor style improvements.
	* intrinsic.texi: Some clarifications and typo-fixes.
	* invoke.texi: Better documenation of the behaviour of the
	-fdefault-*-8 options and some other fixes.

2008-12-18  Daniel Kraft  <d@domob.eu>

	PR fortran/31822
	* gfortran.h (gfc_check_same_strlen): Made public.
	* trans.h (gfc_trans_same_strlen_check): Made public.
	* check.c (gfc_check_same_strlen): Made public and adapted error
	message output to be useful not only for intrinsics.
	(gfc_check_merge): Adapt to gfc_check_same_strlen change.
	* expr.c (gfc_check_pointer_assign): Use gfc_check_same_strlen for
	string length compile-time check.
	* trans-expr.c (gfc_trans_pointer_assignment): Add runtime-check for
	equal string lengths using gfc_trans_same_strlen_check.
	* trans-intrinsic.c (gfc_trans_same_strlen_check): Renamed and made
	public from conv_same_strlen_check.
	(gfc_conv_intrinsic_merge): Adapted accordingly.

2008-12-17  Daniel Kraft  <d@domob.eu>

	PR fortran/38137
	* trans-intrinsic.c (conv_same_strlen_check): New method.
	(gfc_conv_intrinsic_merge): Call it here to actually do the check.

2008-12-15  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/38487
	* dependency.c (gfc_is_data_pointer): New function.
	(gfc_check_argument_var_dependency): Disable the warning
	in the pointer case.
	(gfc_check_dependency): Use gfc_is_data_pointer.

2008-12-15  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/38113
	* error.c (show_locus): Start counting columns at 0.
	* primary.c (match_actual_arg): Eat spaces
	before copying the current locus.
	(match_variable): Copy the locus before matching.

2008-12-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35937
	* trans-expr.c (gfc_finish_interface_mapping): Fold convert the
	character length to gfc_charlen_type_node.

2008-12-12  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/36355
	* check.c (gfc_check_matmul): Fixed error message for invalid
	types to correctly identify the offending argument, added check
	for mismatching types.

2008-12-11  Richard Guenther  <rguenther@suse.de>

	* Make-lang.in (install-finclude-dir): Use correct mode argument
	for mkinstalldirs.

2008-12-09  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/36376
	PR fortran/37468
	* lang-specs.h: Pass on -i* options to f951 to (probably) report
	them as unknown. Duplicate gcc.c (cpp_options), but omit
	-fpch-preprocess on -save-temps.

2008-12-09  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/36457
	* lang.opt: Added option idirafter.
	* cpp.h (gfc_cpp_add_include_path_after): New prototype.
	* cpp.c (gfc_cpp_handle_option): Recognize and handle OPT_dirafter.
	(gfc_cpp_add_include_path_after): New, adds user-defined search path
	after any other paths.
	* invoke.texi (idirafter): New.
	(no-range-check): Fixed entry in option-index.

2008-12-09  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/37469
	* expr.c (find_array_element): Simplify array bounds.
	Assert that both bounds are constant expressions.

2008-12-09  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/35983
	* trans-expr.c (gfc_trans_subcomponent_assign):
	Add se's pre and post blocks to current block.
	(gfc_trans_structure_assign): Remove specific handling
	of C_NULL_PTR and C_NULL_FUNPTR.

2008-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/38425
	* io.c (check_io_constraints): Check constraints on REC=, POS=, and
	internal unit with POS=. Fix punctuation on a few error messages.

2008-12-06  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/38415
	* expr.c (gfc_check_pointer_assign): Added a check for abstract
	interfaces in procedure pointer assignments, removed check involving
	gfc_compare_interfaces until PR38290 is fixed completely.

2008-12-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/38291
	* io.c (match_dt_element): Use dt->pos in matcher.
	(gfc_free_dt): Free dt->pos after use.
	(gfc_resolve_dt): Use dt->pos in resolution of stream position tag.

2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR bootstrap/38262
	* Make-lang.in (f951): Add BACKENDLIBS, remove GMPLIBS.

2008-12-02  Jakub Jelinek  <jakub@redhat.com>
	    Diego Novillo  <dnovillo@google.com>

	* Make-lang.in (install-finclude-dir): Use mkinstalldirs
	and don't remove the finclude directory beforehand.

2008-12-02  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36704
	PR fortran/38290
	* decl.c (match_result): Result may be a standard variable or a
	procedure pointer.
	* expr.c (gfc_check_pointer_assign): Additional checks for procedure
	pointer assignments.
	* primary.c (gfc_match_rvalue): Bugfix for procedure pointer
	assignments.
	* resolve.c (resolve_function): Check for attr.subroutine.
	* symbol.c (check_conflict): Addtional checks for RESULT statements.
	* trans-types.c (gfc_sym_type,gfc_get_function_type): Support procedure
	pointers as function result.

2008-12-01  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/38252
	* parse.c (parse_spec): Skip statement order check in case
	of a CONTAINS statement.

2008-11-30  Daniel Kraft  <d@domob.eu>

	PR fortran/37779
	* gfortran.h (struct gfc_entry_list): Fixed typo in comment.
	* resolve.c (is_illegal_recursion): New method.
	(resolve_procedure_expression): Use new is_illegal_recursion instead of
	direct check and handle function symbols correctly.
	(resolve_actual_arglist): Removed useless recursion check.
	(resolve_function): Use is_illegal_recursion instead of direct check.
	(resolve_call): Ditto.

2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>

	* trans-array.c (gfc_conv_array_parameter): Guard union access.

2008-11-29  Janus Weil  <janus@gcc.gnu.org>
	    Mikael Morin <mikael@gcc.gnu.org>

	PR fortran/38289
	PR fortran/38290
	* decl.c (match_procedure_decl): Handle whitespaces.
	* resolve.c (resolve_specific_s0): Bugfix in check for intrinsic
	interface.

2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>

	* module.c (gfc_dump_module): Report error on unlink only if
	errno != ENOENT.

2008-11-25  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/36463
	* expr.c (replace_symbol): Don't replace the symtree
	if the expresion is an intrinsic function. Don't create
	non-existent symtrees.  Use symbol's name instead of symtree's,
	different in case of module procedure dummy arguments.

2008-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>

	PR fortran/38248
	* module.c (gfc_dump_module): Check rename/unlink syscalls errors.

2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR fortran/37319
	* parse.c (match_deferred_characteristics): Make sure 'name' is
	initialized before reading it.

2008-11-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/37803
	* arith.c (gfc_check_real_range): Add mpfr_check_range.
	* simplify.c (gfc_simplify_nearest): Add mpfr_check_range.

2008-11-24  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/38184
	* simplify.c (is_constant_array_expr): Return true instead of false
	if the array constructor is empty.

2008-11-24  Daniel Kraft  <d@domob.eu>

	PR fortran/37779
	* resolve.c (resolve_procedure_expression): New method.
	(resolve_variable): Call it.
	(resolve_actual_arglist): Call gfc_resolve_expr for procedure arguments.

2008-11-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34820
	* trans-expr.c (gfc_conv_function_call): Remove all code to
	deallocate intent out derived types with allocatable
	components.
	(gfc_trans_assignment_1): An assignment from a scalar to an
	array of derived types with allocatable components, requires
	a deep copy to each array element and deallocation of the
	converted rhs expression afterwards.
	* trans-array.c : Minor whitespace.
	* trans-decl.c (init_intent_out_dt): Add code to deallocate
	allocatable components of derived types with intent out.
	(generate_local_decl): If these types are unused, set them
	referenced anyway but allow the uninitialized warning.

	PR fortran/34143
	* trans-expr.c (gfc_trans_subcomponent_assign): If a conversion
	expression has a null data pointer argument, nullify the
	allocatable component.

	PR fortran/32795
	* trans-expr.c (gfc_trans_subcomponent_assign): Only nullify
	the data pointer if the source is not a variable.

2008-11-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37735
	* trans-array.c (structure_alloc_comps): Do not duplicate the
	descriptor if this is a descriptorless array!

2008-11-12  Tobias Burnus  <burnus@net-b.de>

	PR fortran/38160
	* trans-types.c (gfc_validate_c_kind): Remove function.
	* decl.c (gfc_match_kind_spec): Add C kind parameter check.
	(verify_bind_c_derived_type): Remove gfc_validate_c_kind call.
	(verify_c_interop_param): Update call.
	* gfortran.h (verify_bind_c_derived_type): Update prototype.
	(gfc_validate_c_kind): Remove.
	* symbol.c (verify_bind_c_derived_type): Update verify_c_interop call.
	* resolve.c (gfc_iso_c_func_interface): Ditto.

2008-11-22  Jakub Jelinek  <jakub@redhat.com>

	PR libfortran/37839
	* trans-io.c (gfc_build_io_library_fndecls): Decrease pad size back
	to 16 pointers plus 32 integers.  Don't use max integer kind
	alignment, only gfc_intio_kind's alignment.
	(gfc_trans_inquire): Only set flags2 if mask2 is non-zero.
	* ioparm.def: Fix order, bitmasks and types of inquire round, sign
	and pending fields.  Move u in dt before id.
	* io.c (gfc_free_inquire): Free decimal and size exprs.
	(match_inquire_element): Match size instead of matching blank twice.
	(gfc_resolve_inquire): Resolve size.

2008-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/29215
	* trans-array.c (trans_array_constructor_value,
	gfc_build_constant_array_constructor): Fill in TREE_PURPOSE.

	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use
	gfc_index_one_node.
	(gfc_conv_intrinsic_size): Use gfc_index_{zero,one}_node.

	PR fortran/38181
	* trans-intrinsic.c (gfc_conv_intrinsic_size): Inline 2 argument
	size if the second argument is not optional and one argument size
	for rank 1 arrays.

2008-11-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/38171
	* module.c (load_equiv): Regression fix; check that equivalence
	members come from the same module only.

2008-11-16  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/35681
	* dependency.c (gfc_check_argument_var_dependency): Add
	elemental check flag. Issue a warning if we find a dependency
	but don't generate a temporary. Add the case of an elemental
	function call as actual argument to an elemental procedure.
	Add the case of an operator expression as actual argument
	to an elemental procedure.
	(gfc_check_argument_dependency): Add elemental check flag.
	Update calls to gfc_check_argument_var_dependency.
	(gfc_check_fncall_dependency): Add elemental check flag.
	Update call to gfc_check_argument_dependency.
	* trans-stmt.c (gfc_trans_call): Make call to
	gfc_conv_elemental_dependencies unconditional, but with a flag
	whether we should check dependencies between variables.
	(gfc_conv_elemental_dependencies): Add elemental check flag.
	Update call to gfc_check_fncall_dependency.
	* trans-expr.c (gfc_trans_arrayfunc_assign): Update call to
	gfc_check_fncall_dependency.
	* resolve.c (find_noncopying_intrinsics): Update call to
	gfc_check_fncall_dependency.
	* dependency.h (enum gfc_dep_check): New enum.
	(gfc_check_fncall_dependency): Update prototype.

2008-11-16  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/37992
	* gfortran.h (gfc_namespace): Added member old_cl_list, 
	backup of cl_list.
	(gfc_free_charlen): Added prototype.
	* symbol.c (gfc_free_charlen): New function.
	(gfc_free_namespace): Use gfc_free_charlen.
	* parse.c (next_statement): Backup gfc_current_ns->cl_list.
	(reject_statement): Restore gfc_current_ns->cl_list.
	Free cl_list's elements before dropping them.

2008-11-16  Tobias Burnus  <burnus@net-b.de>

	PR fortran/38095
	* trans-expr.c (gfc_map_intrinsic_function): Fix pointer access.

2008-11-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/38119
	* trans-array.c (gfc_trans_create_temp_array): Set the
	loop->from to zero and the renormalisation of loop->to for all
	dimensions.

2008-11-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37926
	* trans-expr.c (gfc_free_interface_mapping): Null sym->formal
	(gfc_add_interface_mapping): Copy the pointer to the formal
	arglist, rather than using copy_formal_args - fixes regression.

2008-11-15  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37926
	* trans-expr.c (gfc_add_interface_mapping): Transfer the formal
	arglist and the always_explicit attribute if the dummy arg is a
	procedure.

2008-11-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/37988
	* io.c (enum format_token): For readability replace FMT_POS with FMT_T,
	FMT_TL, and FMT_TR.  (format_lex): Use new enumerators. (check_format):
	Add check for missing positive integer.

2008-10-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/38033
	* trans-array.c (gfc_trans_create_temp_array): Stabilize the
	'to' expression.
	(gfc_conv_loop_setup): Use the end expression for the loop 'to'
	if it is available.

2008-11-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/35366
	PR fortran/33759
	* trans-const.c (gfc_conv_constant_to_tree): Warn when
	converting an integer outside of LOGICAL's range to
	LOGICAL.
	* trans-intrinsic.c (gfc_conv_intrinsic_function,
	gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer):
	Use INTEGER_TYPE instead of BOOLEAN_TYPE for TRANSFER as
	argument of another TRANSFER.

2008-11-12  Tobias Burnus  <burnus@net-b.de>

	PR fortran/38065
	* resolve.c (resolve_fntype): Fix private derived type checking.

2008-11-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37836
	* intrinsic.c (add_functions): Reference gfc_simplify._minval
	and gfc_simplify_maxval.
	* intrinsic.h : Add prototypes for gfc_simplify._minval and
	gfc_simplify_maxval.
	* simplify.c (min_max_choose): New function extracted from
	simplify_min_max.
	(simplify_min_max): Call it.
	(simplify_minval_maxval, gfc_simplify_minval,
	gfc_simplify_maxval): New functions.

2008-11-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37597
	* parse.c (gfc_fixup_sibling_symbols ): Fixup contained, even
	when symbol not found.

2008-11-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37821
	* cpp.c (gfc_cpp_add_include_path): Use BRACKET.
	* scanner.c (add_path_to_list): Argument to add at head.
	(gfc_add_include_path): Add new argument.
	(gfc_add_intrinsic_modules_path) Update call.
	(load_file): Print filename/line in the error message.
	* gfortran.h (gfc_add_include_path): Update prototype.
	* options.c (gfc_post_options,gfc_handle_module_path_options,
	gfc_handle_option): Update call.
	* lang-spec.h (F951_OPTIONS): Don't insert include path twice.

	* arith.c (arith_error): Add -fno-range-error to the message.

2008-11-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37445
	* resolve.c (resolve_actual_arglist ): Correct comparison of
	FL_VARIABLE with e->expr_type.
	(resolve_call): Check that host association is correct.
	(resolve_actual_arglist ): Remove return is old_sym is use
	associated.  Only reparse expression if old and new symbols
	have different types.

	PR fortran/PR35769
	* resolve.c (gfc_resolve_assign_in_forall): Change error to a
	warning.

2008-11-01  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36426
	* expr.c (replace_symbol): Replace all symbols which lie in the
	formal namespace of the interface and copy their attributes.
	* resolve.c (resolve_symbol): Add charlen to namespace.

2008-11-01  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/19925
	* trans-array.c (gfc_trans_array_constructor_value): Fix comment.
	(gfc_conv_array_initializer): Convert internal_error() to gfc_error_now.
	* array.c: Remove GFC_MAX_AC_EXPAND macro.
	(gfc_expand_constructor): Use gfc_option.flag_max_array_constructor.
	* gfortran.h (gfc_option): Add flag_max_array_constructor member.
	* lang.opt: Add -fmax-array-constructor option.
	* expr.c (gfc_match_init_expr): Fix error message to mention new option.
	* invoke.texi: Document new option.
	* options.c (gfc_init_options): Set default value for new option.
	(gfc_handle_option): Deal with commandline.

2008-11-01  Daniel Kraft  <d@domob.eu>

	PR fortran/35681
	* gfortran.h (struct gfc_code): New field `resolved_isym'.
	* trans.h (gfc_build_memcpy_call): Made public.
	* trans-array.h (gfc_trans_create_temp_array): New argument `initial'.
	* intrinsic.c (gfc_intrinsic_sub_interface): Set resolved_isym.
	* iresolve.c (create_formal_for_intents): New helper method.
	(gfc_resolve_mvbits): Put dummy formal arglist on resolved_sym.
	* resolve.c (resolve_call): Initialize resolved_isym to NULL.
	* trans-array.c (gfc_trans_allocate_array_storage): New argument
	`initial' to allow initializing the allocated storage to some initial
	value copied from another array.
	(gfc_trans_create_temp_array): Allow initialization of the temporary
	with a copy of some other array by using the new extension.
	(gfc_trans_array_constructor): Pass NULL_TREE for initial argument.
	(gfc_conv_loop_setup): Ditto.
	* trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Ditto.
	* trans-expr.c (gfc_conv_function_call): Ditto.
	(gfc_build_memcpy_call): Made public.
	* trans-stmt.c (gfc_conv_elemental_dependencies): Initialize created
	temporary for INTENT(INOUT) arguments to the value of the mirrored
	array and clean up the temporary as very last intructions in the created
	block.
	* trans.c (gfc_trans_code): For EXEC_CALL, see if we have a MVBITS call
	and enable elemental dependency checking if we have.

2008-11-01  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36322
	PR fortran/36463
	* gfortran.h: New function gfc_expr_replace_symbols.
	* decl.c (match_procedure_decl): Increase reference count for interface.
	* expr.c: New functions replace_symbol and gfc_expr_replace_symbols.
	* resolve.c (resolve_symbol): Correctly copy array spec and char len
	of PROCEDURE declarations from their interface.
	* symbol.c (gfc_get_default_type): Enhanced error message.
	(copy_formal_args): Call copy_formal_args recursively for arguments.
	* trans-expr.c (gfc_conv_function_call): Bugfix.

2008-11-01  Dennis Wassel  <dennis.wassel@gmail.com>

	PR fortran/37159
	* fortran/check.c (gfc_check_random_seed): Check PUT size
	at compile time.

2008-10-31  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/35840
	* expr.c (gfc_reduce_init_expr): New function, containing checking code
	from gfc_match_init_expr, so that checking can be deferred. 
	(gfc_match_init_expr): Use gfc_reduce_init_expr.
	* io.c (check_io_constraints): Use gfc_reduce_init_expr instead of 
	checking that the expression is a constant. 
	* match.h (gfc_reduce_init_expr): Prototype added. 

2008-10-31  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/35820
	* resolve.c (gfc_count_forall_iterators): New function.
	(gfc_resolve_forall): Use gfc_count_forall_iterators to evaluate 
	the needed memory amount to allocate. Don't forget to free allocated 
	memory.  Add an assertion to check for memory leaks. 

2008-10-30  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/37930
	* fortran/arith.c (gfc_mpfr_to_mpz):  Test for NaN and Inf values.
	Remove stale comment and kludge code for MPFR 2.0.1 and older.
	(gfc_real2int): Error on conversion of NaN or Inf.
	(gfc_complex2int): Ditto.
	* fortran/arith.h: Update mpfr_to_mpz prototype.
	* fortran/simplify.c (gfc_simplify_ceiling, gfc_simplify_floor,
	gfc_simplify_ifix, gfc_simplify_idint, simplify_nint): Update function
	calls to include locus.

2008-10-30  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/37903
        * trans-array.c (gfc_trans_create_temp_array): If n is less
	than the temporary dimension, assert that loop->from is
	zero (reverts to earlier versions). If there is at least one
	null loop->to[n], it is a callee allocated array so set the
	size to NULL and break.
	(gfc_trans_constant_array_constructor): Set the offset to zero.
	(gfc_trans_array_constructor): Remove loop shifting around the
	temporary creation.
	(gfc_conv_loop_setup): Prefer zero-based descriptors if
	possible.  Calculate the translation from loop variables to
	array indices if an array constructor.

2008-10-30  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/37749
        * trans-array.c (gfc_trans_create_temp_array): If size is NULL
	use the array bounds for loop->to.

2008-10-28  Tobias Burnus  <burnus@net-b.de>

	* intrinsic.texi: Update OpenMP section for OMPv3.

2008-10-24  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (check-f95-subtargets, check-fortran-subtargets): New
	aliases for check-gfortran-subtargets.
	(lang_checks_parallelized): Add check-gfortran.
	(check_gfortran_parallelize): New variable.

2008-10-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37723
	* dependency.c (gfc_dep_resolver ): If we find equal array
	element references, go on to the next reference.

2008-10-16  Daniel Kraft  <d@domob.eu>

	* resolve.c (resolve_elemental_actual): Handle calls to intrinsic
	subroutines correctly.

2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* simplify.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.

2008-10-12  Daniel Kraft  <d@domob.eu>

	PR fortran/37688
	* expr.c (gfc_expr_check_typed): Extend permission of untyped
	expressions to both top-level variable and basic arithmetic expressions.

2008-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37787
	* dependency.c (gfc_are_equivalenced_arrays): Look in symbol
	namespace rather than current namespace, if it is available.

2008-10-12  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/37792
	* fortran/resolve.c (resolve_fl_variable): Simplify the
	initializer if there is one.

2008-10-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37794
	* module.c (check_for_ambiguous): Remove redundant code.

2008-10-09  Daniel Kraft  <d@domob.eu>

	PR fortran/35723
	* gfortran.h (gfc_suppress_error): Removed from header.
	(gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
	* array.c (gfc_array_size): Use new gfc_push/pop_suppress_errors
	instead of directly changing gfc_suppress_error.
	* intrinsic.c (gfc_intrinsic_func_interface): Ditto.
	(gfc_intrinsic_sub_interface): Ditto.
	* error.c (suppress_errors): Made static from `gfc_suppress_error'.
	(gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
	(gfc_notify_std), (gfc_error): Use new static name of global.
	* expr.c (check_arglist), (check_references): New methods.
	(check_restricted): Check arglists and references of EXPR_FUNCTIONs
	and EXPR_VARAIBALEs, respectively.  Allow PARAMETER symbols.

2008-10-07  Jakub Jelinek  <jakub@redhat.com>

	* f95-lang.c (poplevel): Don't clear BLOCK_VARS if functionbody.
	* trans-decl.c (gfc_build_qualified_array): Build accurate debug type
	even if nest.
	(build_entry_thunks, gfc_generate_function_code,
	gfc_generate_constructors): Ensure DECL_SAVED_TREE is a BIND_EXPR
	with DECL_INITIAL as its BLOCK.

2008-10-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35680
	* gfortran.h : Add 'error' bit field to gfc_expr structure.
	* expr.c (check_inquiry): When checking a restricted expression
	check that arguments are either variables or restricted.
	(check_restricted): Do not emit error if the expression has
	'error' set.  Clean up detection of host-associated variable.

2008-10-05  Daniel Kraft  <d@domob.eu>

	PR fortran/37638
	* gfortran.h (struct gfc_typebound_proc): New flag `error'.
	* resolve.c (update_arglist_pass): Added assertion.
	(update_compcall_arglist): Fail early for erraneous procedures to avoid
	confusion later.
	(resolve_typebound_generic_call): Ignore erraneous specific targets
	and added assertions.
	(resolve_typebound_procedure): Set new `error' flag.

2008-10-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37706
	* module.c (load_equiv): Check the module before negating the
	unused flag.

2008-10-02  Steven Bosscher  <steven@gcc.gnu.org>

	PR fortran/37635
	* intrinsic.c (add_functions): Add LEADZ and TRAILZ as generics.
	* intrinsic.h (gfc_simplify_leadz, gfc_simplify_trailz): New protos.
	* gfortran.h <enum gfc_isym_id>: (GFC_ISYM_LEADZ, GFC_ISYM_TRAILZ): New.
	* f95-lang (gfc_init_builtin_functions): Add BUILT_IN_CLZ,
	BUILT_IN_CLZL, BUILT_IN_CLZLL, BUILT_IN_CTZ, BUILT_IN_CTZL, and
	BUILT_IN_CTZLL.
	* trans-intrinsic.c (gfc_conv_intrinsic_leadz,
	gfc_conv_intrinsic_trails): New code-generation functions for LEADZ
	and TRAILZ intrinsics.
	(gfc_conv_intrinsic_function): Use them
	* intrinsic.texi: Add documentation for LEADZ and TRAILZ.
	* simplify.c (gfc_simplify_leadz, gfc_simplify_trailz): New functions.

2008-09-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36592
	* symbol.c (check_conflict): If a symbol in a COMMON block is a
	procedure, it must be a procedure pointer.
	(gfc_add_in_common): Symbols in COMMON blocks may be variables or
	procedure pointers.
	* trans-types.c (gfc_sym_type): Make procedure pointers in COMMON
	blocks work.

2008-09-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org

	PR fortran/37498
	* trans-io.c (build_dt): Revert previous patch..
	* ioparm.def: Delete IOPARM_dt_f2003.

2008-09-25  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37504
	* expr.c (gfc_check_pointer_assign): Allow assignment of
	protected pointers.
	* match.c (gfc_match_assignment,gfc_match_pointer_assignment):
	Remove unreachable code.

2008-09-24  Tobias Burnus  <burnus@net-b.de>

	* options.c (set_default_std_flags,gfc_init_options):
	Add comment: keep in sync with libgfortran.

2008-09-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37626
	* trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate
	result variables.

2008-09-23  Daniel Kraft  <d@domob.eu>

	PR fortran/37588
	* gfortran.h (gfc_compare_actual_formal): Removed, made private.
	(gfc_arglist_matches_symbol): New method.
	* interface.c (compare_actual_formal): Made static.
	(gfc_procedure_use): Use new name of compare_actual_formal.
	(gfc_arglist_matches_symbol): New method.
	(gfc_search_interface): Moved code partially to new
	gfc_arglist_matches_symbol.
	* resolve.c (resolve_typebound_generic_call): Resolve actual arglist
	before checking against formal and use new gfc_arglist_matches_symbol
	for checking.
	(resolve_compcall): Set type-spec of generated expression.

2008-09-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37580
	* expr.c (gfc_check_pointer_assign): Add checks for pointer
	remapping.

2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org

	PR fortran/37498
	* trans-io.c (gfc_build_io_library_fndecls): Bump pad size.
	(build_dt): Set mask bit for IOPARM_dt_f2003.
	* ioparm.def: Add IOPARM_dt_f2003.

2008-09-22  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/37486
	* gfortran.h (gfc_option_t): New members flag_align_commons and
	warn_align_commons. 
	* lang.opt: New options falign-commons and Walign-commons.
	* invoke.texi: Documentation for new options.
	* options.c (gfc_init_options): Initialize new options.
	(gfc_handle_options): Handle new options.
	* trans-common.c (translate_common): Implement new options.
	(gfc_trans_common): Set correct locus.

2008-09-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37583
	* decl.c (scalarize_intrinsic_call): Both subroutines and
	functions can give a true for get_proc_mame's last argument so
	remove the &&gfc_current_ns->proc_name->attr.function.
	resolve.c (resolve_actual_arglist): Add check for recursion by
	reference to procedure as actual argument.

2008-09-21  Daniel Kraft  <d@domob.eu>

	PR fortran/35846
	* trans.h (gfc_conv_string_length): New argument `expr'.
	* trans-expr.c (flatten_array_ctors_without_strlen): New method.
	(gfc_conv_string_length): New argument `expr' that is used in a new
	special case handling if cl->length is NULL.
	(gfc_conv_subref_array_arg): Pass expr to gfc_conv_string_length.
	* trans-array.c (gfc_conv_expr_descriptor): Ditto.
	(gfc_trans_auto_array_allocation): Pass NULL as new expr.
	(gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
	(gfc_trans_deferred_array): Ditto.
	(gfc_trans_array_constructor): Save and restore old values of globals
	used for bounds checking.
	* trans-decl.c (gfc_trans_dummy_character): Ditto.
	(gfc_trans_auto_character_variable): Ditto.

2008-09-21  Daniel Kraft  <d@domob.eu>

	* decl.c (match_procedure_in_type): Changed misleading error message
	for not yet implemented PROCEDURE(interface) syntax.

2008-09-18  Paul Thomas  <pault@gcc.gnu.org>

       PR fortran/35945
       * resolve.c (resolve_fl_variable_derived):  Remove derived type
       comparison for use associated derived types.  Host association
       of a derived type will not arise if there is a local derived type
       whose use name is the same.

       PR fortran/36700
       * match.c (gfc_match_call):  Use the existing symbol even if
       it is a function.

2008-09-18  Daniel Kraft  <d@domob.eu>

	PR fortran/37507
	* trans.h (gfc_trans_runtime_error): New method.
	(gfc_trans_runtime_error_vararg): New method.
	(gfc_allocate_array_with_status): New argument `expr' for locus/varname.
	(gfc_deallocate_array_with_status): Ditto.
	* trans-array.h (gfc_array_deallocate): Ditto.
	* trans.c (gfc_trans_runtime_error): New method.
	(gfc_trans_runtime_error_vararg): New method, moved parts of the code
	from gfc_trans_runtime_check here.
	(gfc_trans_runtime_error_check): Moved code partly to new method.
	(gfc_call_malloc): Fix tab-indentation.
	(gfc_allocate_array_with_status): New argument `expr' and call
	gfc_trans_runtime_error for error reporting to include locus.
	(gfc_deallocate_with_status): Ditto.
	* trans-stmt.c (gfc_trans_deallocate): Pass expr as new argument.
	* trans-array.c (gfc_array_allocate): Ditto.
	(gfc_array_deallocate): New argument `expr', passed on.
	(gfc_trans_dealloc_allocated): Pass NULL for expr.
	* trans-openmp.c (gfc_omp_clause_default): Ditto.

2008-09-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37274
	PR fortran/36374
	* module.c (check_for_ambiguous): New function to test loaded
	symbol for ambiguity with fixup symbol.
	(read_module): Call check_for_ambiguous.
	(write_symtree): Do not write the symtree for symbols coming
	from an interface body.

	PR fortran/36374
	* resolve.c (count_specific_procs ): New function to count the
	number of specific procedures with the same name as the generic
	and emit appropriate errors for and actual argument reference.
	(resolve_assumed_size_actual): Add new argument no_formal_args.
	Correct logic around passing generic procedures as arguments.
	Call count_specific_procs from two locations.
	(resolve_function): Evaluate and pass no_formal_args.
	(resolve call): The same and clean up a bit by using csym more
	widely.

	PR fortran/36454
	* symbol.c (gfc_add_access): Access can be updated if use
	associated and not private.

2008-09-17  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/37536
	* trans-stmt.c (gfc_trans_do): Optimize integer type non-simple
	do loop initialization.

2008-09-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Tobias Burnus  <burnus@net.b.de>

	PR fortran/35840
	* io.c (match_vtag): Add tag name to error message.
	(match_out_tag): Cleanup whitespace.
	(gfc_resolve_dt): Resolve id and async tags. 

2008-09-13  Daniel Kraft  <d@domob.eu>

	PR fortran/35770
	* primary.c (gfc_match_varspec): Added missing type-spec clearing
	after wrong implicit character typing.

2008-09-12  Richard Guenther  <rguenther@suse.de>

	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
	build_fold_addr_expr to properly mark the argument
	addressable.

2008-09-11  Daniel Kraft  <d@domob.eu>

	PR fortran/36214
	* simplify.c (simplify_cmplx): Added linebreak to long line.
	* target-memory.c (gfc_convert_boz): Fix indentation.
	(gfc_interpret_float): Set mpfr precision to right value before
	calling mpfr_init.

2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>

	* expr.c (find_array_element): Reformat comment.

2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>

	* expr.c (find_array_element): Reformat.

2008-09-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37420
	* trans-decl.c (get_proc_pointer_decl): Fix -Wunused-variable.

2008-09-09  Daniel Kraft  <d@domob.eu>

	PR fortran/37429
	* resolve.c (expression_rank): Added assertion to guard against
	EXPR_COMPCALL expressions.
	(resolve_compcall): Set expression's rank from the target procedure's.

2008-09-09  Daniel Kraft  <d@domob.eu>

	PR fortran/37411
	* trans-array.c (gfc_conv_array_parameter): Added assertion that the
	symbol has an array spec.

2008-09-08  Daniel Kraft  <d@domob.eu>

	PR fortran/37199
	* trans-expr.c (gfc_add_interface_mapping): Set new_sym->as.
	(gfc_map_intrinsic_function): Added checks against NULL bounds in
	array specs.

2008-09-08  Tobias Burnus  <burnus@net.b.de>

	PR fortran/37400
	* symbol.c (gfc_set_default_type): Copy char len.

2008-09-06  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/36153
	* fortran/resolve.c (resolve_function): Shortcircuit for SIZE and
	UBOUND if 2nd argument is KIND.

2008-09-06  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/33229
	* resolve.c (resolve_function): An intrinsic subroutine should not be
	called as a function.

2008-09-05  Daniel Kraft  <d@domob.eu>

	PR fortran/35837
	* resolve.c (resolve_types): Restore gfc_current_ns on exit.
	* symbol.c (gfc_save_all): Removed blank line.

2008-09-05  Daniel Kraft  <d@domob.eu>

	PR fortran/36746
	* primary.c (gfc_match_rvalue): Removed logic to handle implicit
	typing to a derived-type if a component reference is found.
	(gfc_match_varspec): Moved it here.

2008-09-04  Richard Guenther  <rguenther@suse.de>

	* trans-array.c (gfc_conv_array_parameter): Use correct types
	in building COND_EXPRs.
	* trans-expr.c (gfc_conv_missing_dummy): Likewise.
	* trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise.

2008-09-04  Daniel Kraft  <d@domob.eu>

	* PR fortran/37099
	* expr.c (simplify_const_ref): Update expression's character length
	when pulling out a substring reference.

2008-09-04  Ian Lance Taylor  <iant@google.com>

	* symbol.c (generate_isocbinding_symbol): Compare
	gfc_notification_std with ERROR rather than FAILURE.
	* resolve.c (check_assumed_size_reference): Compare array type
	with AR_FULL rather than DIMEN_ELEMENT.
	(resolve_actual_arglist): Compare with EXPR_VARIABLE rather than
	FL_VARIABLE.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/37228
	* io.c (check_format): Allow specifying precision with g0 format.

2008-09-02  Daniel Kraft  <d@domob.eu>

	* gfortran.h (struct gfc_namespace): New member `implicit_loc'.
	(gfc_add_abstract): New method.
	* decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
	(gfc_match_derived_decl): Copy abstract attribute in derived symbol.
	* dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
	only to allow for ABSTRACT types.
	* parse.c (parse_interface): Use new gfc_add_abstract.
	* primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
	type is constructed.
	* resolve.c (resolve_typespec_used): New method.
	(resolve_fl_derived): Check type in respect to ABSTRACT attribute and
	check that no component is of an ABSTRACT type.
	(resolve_symbol): Check that no symbol is of an ABSTRACT type.
	(resolve_types): Check IMPLICIT declarations for ABSTRACT types.
	* symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
	(gfc_add_abstract): New method.

2008-09-01  Daniel Kraft  <d@domob.eu>

	PR fortran/37193
	* module.c (read_module): Initialize use_only flag on used symbols.

2008-09-01  Daniel Kraft  <d@domob.eu>

	* gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
	and section to document the internals of type-bound procedures.
	(gfc_expr): Document EXPR_COMPCALL.
	* gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
	* dump-parse-tree.c (show_compcall): New method.
	(show_expr): Call it for EXPR_COMPCALL.
	(show_typebound), (show_f2k_derived): New methods.
	(show_symbol): Call show_f2k_derived.
	(show_code_node): Handle EXEC_COMPCALL.
	* primary.c (gfc_match_varspec): Don't initialize removed `derived' in
	primary->value.compcall.

2008-08-31  Richard Guenther  <rguenther@suse.de>

	* trans-expr.c (gfc_trans_string_copy): Use the correct types
	to compute slen and dlen.

2008-08-31  Daniel Kraft  <d@domob.eu>

	* gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
	(struct gfc_tbp_generic): New type.
	(struct gfc_typebound_proc): Removed `target' and added union with
	`specific' and `generic' members; new members `overridden',
	`subroutine', `function' and `is_generic'.
	(struct gfc_expr): New members `derived' and `name' in compcall union
	member and changed type of `tbp' to gfc_typebound_proc.
	(gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
	* match.h (gfc_typebound_default_access): New global.
	(gfc_match_generic): New method.
	* decl.c (gfc_match_generic): New method.
	(match_binding_attributes): New argument `generic' and handle it.
	(match_procedure_in_type): Mark matched binding as non-generic.
	* interface.c (gfc_compare_interfaces): Made public.
	(gfc_compare_actual_formal): Ditto.
	(check_interface_1), (compare_parameter): Use new public names.
	(gfc_procedure_use), (gfc_search_interface): Ditto.
	* match.c (match_typebound_call): Set base-symbol referenced.
	* module.c (binding_generic): New global array.
	(current_f2k_derived): New global.
	(mio_typebound_proc): Handle IO of GENERIC bindings.
	(mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
	* parse.c (decode_statement): Handle GENERIC statement.
	(gfc_ascii_statement): Ditto.
	(typebound_default_access), (set_typebound_default_access): Removed.
	(gfc_typebound_default_access): New global.
	(parse_derived_contains): New default-access implementation and handle
	GENERIC statements encountered.
	* primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
	structure and removed check for SUBROUTINE/FUNCTION from here.
	* resolve.c (extract_compcall_passed_object): New method.
	(update_compcall_arglist): Use it.
	(resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
	(resolve_typebound_generic_call): New method.
	(resolve_typebound_call): Check target is a SUBROUTINE and handle calls
	to GENERIC bindings.
	(resolve_compcall): Ditto (check for target being FUNCTION).
	(check_typebound_override): Handle GENERIC bindings.
	(check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
	(resolve_typebound_procedure): Handle GENERIC bindings and set new
	attributes subroutine, function and overridden in gfc_typebound_proc.
	(resolve_fl_derived): Ensure extended type is resolved before the
	extending one is.
	* st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
	* symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.

2008-08-29  Jan Hubicka  <jh@suse.cz>
	
	* parse.c (parse_interface): Silence uninitialized var warning.

2008-08-29  Jakub Jelinek  <jakub@redhat.com>

	* trans.h (struct lang_type): Add span.
	(GFC_TYPE_ARRAY_SPAN): Define.
	* trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
	copy TREE_STATIC from decl to span instead of setting it
	unconditionally, set DECL_ARTIFICIAL, fix type of initializer
	and set GFC_TYPE_ARRAY_SPAN on decl's type.
	* trans-types.c (gfc_get_array_descr_info): If
	GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.

	* trans-decl.c (check_constant_initializer,
	gfc_emit_parameter_debug_info): New functions.
	(gfc_generate_module_vars, gfc_generate_function_code): Emit
	PARAMETERs and unreferenced variables with initializers into
	debug info.

	* gfortran.h (gfc_use_list): Add where field.
	* module.c (use_locus): New static variable.
	(gfc_match_use): Set it.
	(gfc_use_module): Copy it to gfc_use_list's where field.
	* trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
	(gfc_trans_use_stmts): Set backend locus before calling the debug
	hook.  Allow non-VAR_DECLs to be created even for non-external
	module.  Don't emit anything so far for renames from different
	modules.

	PR fortran/24790
	* trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
	PARM_DECLs with pointer or reference type.

	* trans-decl.c (gfc_build_qualified_array): Build non-flat
	array type for debug info purposes.

	PR fortran/29635
	PR fortran/23057
	* f95-lang.c (gfc_init_ts): New function.
	(LANG_HOOKS_INIT_TS): Define.
	* gfortran.h (gfc_use_rename): New type, moved from module.c.
	(gfc_get_use_rename): New macro, moved from module.c.
	(gfc_use_list): New type.
	(gfc_get_use_list): New macro.
	(gfc_namespace): Add use_stmts field.
	(gfc_free_use_stmts): New prototype.
	* Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
	* module.c (gfc_use_rename, gfc_get_use_rename): Moved to
	gfortran.h.
	(gfc_use_module): Chain the USE statement info to
	ns->use_stmts.
	(gfc_free_use_stmts): New function.
	* symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
	* trans.h (struct module_htab_entry): New type.
	(gfc_find_module, gfc_module_add_decl): New functions.
	* trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
	the module, adjust DECL_CONTEXTs of module procedures and
	call gfc_module_add_decl for them.
	* trans-common.c (build_common_decl): Set DECL_IGNORED_P
	on the common variable.
	(create_common): Set DECL_IGNORED_P for use associated vars.
	* trans-decl.c: Include debug.h.
	(gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
	modules.
	(build_function_decl): Allow current_function_decl's context
	to be a NAMESPACE_DECL.
	(module_htab, cur_module): New variables.
	(module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
	module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
	functions.
	(gfc_create_module_variable): Adjust DECL_CONTEXTs of module
	variables and types and call gfc_module_add_decl for them.
	(gfc_generate_module_vars): Temporarily set cur_module.
	(gfc_trans_use_stmts): New function.
	(gfc_generate_function_code): Call it.
	(gfc_generate_block_data): Set DECL_IGNORED_P on decl.
	* trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
	and TYPE_CONTEXT of module derived types.

2008-08-28  Daniel Kraft  <d@domob.eu>

	* gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
	(gfc_get_typebound_proc): New macro.
	(struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL.
	(enum gfc_exec_op): New value `EXEC_COMPCALL'.
	(gfc_find_typebound_proc): New argument.
	(gfc_copy_ref), (gfc_match_varspec): Made public.
	* decl.c (match_procedure_in_type): Use gfc_get_typebound_proc.
	* expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL.
	(gfc_copy_ref): Made public and use new name.
	(simplify_const_ref): Use new name of gfc_copy_ref.
	(simplify_parameter_variable): Ditto.
	(gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL.
	* match.c (match_typebound_call): New method.
	(gfc_match_call): Allow for CALL's to typebound procedures.
	* module.c (binding_passing), (binding_overriding): New variables.
	(expr_types): Add EXPR_COMPCALL.
	(mio_expr): gcc_unreachable for EXPR_COMPCALL.
	(mio_typebound_proc), (mio_typebound_symtree): New methods.
	(mio_f2k_derived): Handle type-bound procedures.
	* primary.c (gfc_match_varspec): Made public and parse trailing
	references to type-bound procedures; new argument `sub_flag'.
	(gfc_match_rvalue): New name and argument of gfc_match_varspec.
	(match_variable): Ditto.
	* resolve.c (update_arglist_pass): New method.
	(update_compcall_arglist), (resolve_typebound_static): New methods.
	(resolve_typebound_call), (resolve_compcall): New methods.
	(gfc_resolve_expr): Handle EXPR_COMPCALL.
	(resolve_code): Handle EXEC_COMPCALL.
	(resolve_fl_derived): New argument to gfc_find_typebound_proc.
	(resolve_typebound_procedure): Ditto and removed not-implemented error.
	* st.c (gfc_free_statement): Handle EXEC_COMPCALL.
	* symbol.c (gfc_find_typebound_proc): New argument `noaccess' and
	implement access-checking.
	* trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable
	on EXPR_COMPCALL.
	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break.
	* trans-openmp.c (gfc_trans_omp_array_reduction): Add missing
	intialization of ref->type.

2008-08-28  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/37253
	* module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of
	saving attr.procedure and attr.proc_ptr to the module file.

2008-08-25  Daniel Kraft  <d@domob.eu>

	* gfortran.h (gfc_find_component): Add new arguments.
	* parse.c (parse_derived_contains): Check if the derived-type containing
	the CONTAINS section is SEQUENCE/BIND(C).
	* resolve.c (resolve_typebound_procedure): Check for name collision with
	components.
	(resolve_fl_derived): Check for name collision with inherited
	type-bound procedures.
	* symbol.c (gfc_find_component): New arguments `noaccess' and `silent'.
	(gfc_add_component): Adapt for new arguments.
	* primary.c (match_varspec), (gfc_match_structure_constructor): Ditto.

2008-08-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37201
	* decl.c (verify_bind_c_sym): Reject array/string returning
	functions.

2008-08-24  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37201
	* trans-expr.c (gfc_conv_function_call): Add string_length
	for character-returning bind(C) functions.

2008-08-24  Daniel Kraft  <d@domob.eu>

	* gfortran.h (gfc_typebound_proc):  New struct.
	(gfc_symtree):  New member typebound.
	(gfc_find_typebound_proc):  Prototype for new method.
	(gfc_get_derived_super_type):  Prototype for new method.
	* parse.h (gfc_compile_state):  New state COMP_DERIVED_CONTAINS.
	* decl.c (gfc_match_procedure):  Handle PROCEDURE inside derived-type
	CONTAINS section.
	(gfc_match_end):  Handle new context COMP_DERIVED_CONTAINS.
	(gfc_match_private):  Ditto.
	(match_binding_attributes), (match_procedure_in_type):  New methods.
	(gfc_match_final_decl):  Rewrote to make use of new
	COMP_DERIVED_CONTAINS parser state.
	* parse.c (typebound_default_access):  New global helper variable.
	(set_typebound_default_access):  New callback method.
	(parse_derived_contains):  New method.
	(parse_derived):  Extracted handling of CONTAINS to new parser state
	and parse_derived_contains.
	* resolve.c (resolve_bindings_derived), (resolve_bindings_result):  New.
	(check_typebound_override), (resolve_typebound_procedure):  New methods.
	(resolve_typebound_procedures):  New method.
	(resolve_fl_derived):  Call new resolving method for typebound procs.
	* symbol.c (gfc_new_symtree):  Initialize new member typebound to NULL.
	(gfc_find_typebound_proc):  New method.
	(gfc_get_derived_super_type):  New method.

2008-08-23  Janus Weil  <janus@gcc.gnu.org>

	* gfortran.h (gfc_component): Add field "symbol_attribute attr", remove
	fields "pointer", "allocatable", "dimension", "access".
	Remove functions "gfc_set_component_attr" and "gfc_get_component_attr".
	* interface.c (gfc_compare_derived_types): Ditto.
	* trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto.
	* trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign,
	gfc_conv_structure): Ditto.
	* symbol.c (gfc_find_component,free_components,gfc_set_component_attr,
	gfc_get_component_attr,verify_bind_c_derived_type,
	generate_isocbinding_symbol): Ditto.
	* decl.c (build_struct): Ditto.
	* dump-parse-tree.c (show_components): Ditto.
	* trans-stmt.c (gfc_trans_deallocate): Ditto.
	* expr.c (gfc_check_assign,gfc_check_pointer_assign,
	gfc_default_initializer): Ditto.
	* module.c (mio_component): Ditto.
	* trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto.
	* resolve.c (has_default_initializer,resolve_structure_cons,
	gfc_iso_c_func_interface,find_array_spec,resolve_ref,
	resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived,
	resolve_equivalence_derived): Ditto.
	* trans-io.c (transfer_expr): Ditto.
	* parse.c (parse_derived): Ditto.
	* dependency.c (gfc_check_dependency): Ditto.
	* primary.c (gfc_variable_attr): Ditto.

2008-08-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37076
	* arith.c (gfc_arith_concat): Fix concat of kind=4 strings.

2008-08-23  Tobias Burnus  <burnus@net-b.de>

	PR fortran/37025
	* target-memory.c (gfc_interpret_character): Support
	kind=4 characters.

2008-08-22  Daniel Kraft  <d@domob.eu>

	PR fortran/30239
	* symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result
	type is re-declared but neither -pedantic nor -std=f* is given and so
	this is no error.
	* invoke.texi (-Wsurprising): Document this new behaviour.

2008-08-22  Daniel Kraft  <d@domob.eu>

	* gfortran.h (in_prefix): Removed from this header.
	* match.h (gfc_matching_prefix): Moved and renamed from `in_prefix'.
	* decl.c (in_prefix): Removed from here.
	(gfc_match_prefix): Use new name of `gfc_matching_prefix'.
	* symbol.c (gfc_check_symbol_typed): Ditto.
	* expr.c (check_typed_ns): New helper variable.
	(expr_check_typed_help): New helper method.
	(gfc_expr_check_typed): Rewrote to use gfc_traverse_expr to do the
	work, fixing a minor problem.
	* match.c (gfc_matching_prefix): New variable.

2008-08-22  Daniel Kraft  <d@domob.eu>

	PR fortran/32095
	PR fortran/34228
	* gfortran.h (in_prefix): New global.
	(gfc_check_symbol_typed), (gfc_check_expr_typed): New methods.
	* array.c (match_array_element_spec): Check that bounds-expressions
	don't have symbols not-yet-typed in them.
	* decl.c (var_element): Check that variable used is already typed.
	(char_len_param_value): Check that expression does not contain
	not-yet-typed symbols.
	(in_prefix): New global.
	(gfc_match_prefix): Record using `in_prefix' if we're at the moment
	parsing a prefix or not.
	* expr.c (gfc_expr_check_typed): New method.
	* parse.c (verify_st_order): New argument to disable error output.
	(check_function_result_typed): New helper method.
	(parse_spec): Check that the function-result declaration, if given in
	a prefix, contains no not-yet-typed symbols when the IMPLICIT rules are
	parsed.
	* symbol.c (gfc_check_symbol_typed): Check that a symbol already has
	a type associated to it, otherwise use the IMPLICIT rules or signal
	an error.

2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* f95-lang.c: Update all calls to pedwarn.

2008-08-18  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/37032
	* gfortran.texi: Document decision on include file handling in
	preprocessed files.

2008-08-16  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36825
	* libgfortran.h: Reduce GFC_MAX_DIMENSIONS to 7.

2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35863
	* io.c (gfc_match_open): Enable UTF-8 in checks.
	* simplify.c (gfc_simplify_selected_char_kind): Enable iso_10646.

2008-08-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36705
	* symbol.c (check_conflict): Move conflict checks for (procedure,save)
	and (procedure,intent) to resolve_fl_procedure.
	* resolve.c (resolve_fl_procedure): Ditto.

2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 36901
	* f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
	'pedwarn0'.

2008-08-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/37011
	* symbol.c (gfc_add_extension): New function.
	* decl.c (gfc_get_type_attr_spec): Call it.
	(gfc_match_derived_decl): Set symbol extension attribute from
	attr.extension.
	* gfortran.h : Add prototype for gfc_add_extension.

2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 28875
	* options.c (set_Wall): Replace set_Wunused by warn_unused.

2008-08-08  Daniel Kraft  <d@domob.eu>

	* gfortran.h (gfc_finalizer):  Replaced member `procedure' by two
	new members `proc_sym' and `proc_tree' to store the symtree after
	resolution.
	(gfc_find_sym_in_symtree):  Made public.
	* decl.c (gfc_match_final_decl):  Adapted for new member name.
	* interface.c (gfc_find_sym_in_symtree):  Made public.
	(gfc_extend_expr), (gfc_extend_assign):  Changed call accordingly.
	* module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
	New methods for module-file IO of f2k_derived.
	(mio_symbol):  Do IO of f2k_derived namespace.
	* resolve.c (gfc_resolve_finalizers):  Adapted for new member name and
	finding the symtree for the symbol here.
	* symbol.c (gfc_free_finalizer):  Adapted for new members.

2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gfc-internals.texi: Update to GFDL 1.2.  Do not list GPL as
	Invariant Section.
	* gfortran.texi: Likewise.
	* intrinsic.texi: Do not list GPL as Invariant Section.
	* invoke.texi: Likewise.  Update copyright years.

2008-07-29  Paul Thomas  <pault@gcc.gnu.org>

	* trans-expr.c (conv_parent_component_references): New function
	to build missing parent references.
	(gfc_conv_variable): Call it
	* symbol.c (gfc_add_component): Check that component name in a
	derived type extension does not appear in parent.
	(gfc_find_component): For a derived type extension, check if
	the component appears in the parent derived type by calling
	self. Separate errors for private components and private types.
	* decl.c (match_data_constant): Add extra arg to call to
	gfc_match_structure_constructor.
	(check_extended_derived_type): New function to check that a
	parent derived type exists and that it is OK for exension.
	(gfc_get_type_attr_spec): Add extra argument 'name' and return
	it if extends is specified.
	(gfc_match_derived_decl): Match derived type extension and
	build a first component of the parent derived type if OK. Add
	the f2k namespace if not present.
	* gfortran.h : Add the extension attribute.
	* module.c : Handle attribute 'extension'.
	* match.h : Modify prototypes for gfc_get_type_attr_spec and
	gfc_match_structure_constructor.
	* primary.c (build_actual_constructor): New function extracted
	from gfc_match_structure_constructor and modified to call self
	iteratively to build derived type extensions, when f2k named
	components are used.
	(gfc_match_structure_constructor): Do not throw error for too
	many components if a parent type is being handled. Use
	gfc_find_component to generate errors for non-existent or
	private components.  Iteratively call self for derived type
	extensions so that parent constructor is built.  If extension
	and components left over, throw error.
	(gfc_match_rvalue): Add extra arg to call to
	gfc_match_structure_constructor.

	* trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
	are the same symbol, aliassing does not matter.

2008-07-29  Jan Hubicka  <jh@suse.cz>

	* options.c (gfc_post_options): Do not set flag_no_inline.

2008-07-29  Daniel Kraft  <d@domob.eu>

	PR fortran/36403
	* trans-intrinsic.c (conv_generic_with_optional_char_arg):  New method
	to append a string-length even if the string argument is missing, e.g.
	for EOSHIFT.
	(gfc_conv_intrinsic_function):  Call the new method for EOSHIFT, PACK
	and RESHAPE.

2008-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gfortran.h (try): Remove macro.  Replace try with gfc_try
	throughout.
	* array.c: Likewise.
	* check.c: Likewise.
	* cpp.c: Likewise.
	* cpp.h: Likewise.
	* data.c: Likewise.
	* data.h: Likewise.
	* decl.c: Likewise.
	* error.c: Likewise.
	* expr.c: Likewise.
	* interface.c: Likewise.
	* intrinsic.c: Likewise.
	* intrinsic.h: Likewise.
	* io.c: Likewise.
	* match.h: Likewise.
	* parse.c: Likewise.
	* parse.h: Likewise.
	* resolve.c: Likewise.
	* scanner.c: Likewise.
	* simplify.c: Likewise.
	* symbol.c: Likewise.
	* trans-openmp.c: Likewise.
	* trans-types.c: Likewise.

2008-07-28  Tobias Burnus  <burnus@net-b.de>

	* Make-lang.in: Remove -Wno-* from fortran-warn.

2008-07-28  Richard Guenther  <rguenther@suse.de>

	Merge from gimple-tuples-branch.

	2008-07-18  Aldy Hernandez  <aldyh@redhat.com>

	* trans-expr.c: Include gimple.h instead of tree-gimple.h.
	* trans-array.c: Same.
	* trans-openmp.c: Same.
	* trans-stmt.c: Same.
	* f95-lang.c: Same.
	* trans-io.c: Same.
	* trans-decl.c: Same.
	* trans-intrinsic.c: Same.
	* trans.c: Same.  Include tree-iterator.h.
	* Make-lang.in (trans.o): Depend on tree-iterator.h

	2008-07-14  Aldy Hernandez  <aldyh@redhat.com>

	* trans-array.h (gfc_conv_descriptor_data_set_internal):
	Rename to gfc_conv_descriptor_data_set.
	(gfc_conv_descriptor_data_set_tuples): Remove.
	* trans-array.c (gfc_conv_descriptor_data_get): Rename
	from gfc_conv_descriptor_data_set_internal.
	Remove last argument to gfc_add_modify.
	(gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to
	gfc_add_modify.
	(gfc_trans_create_temp_array): Same.
	(gfc_conv_array_transpose): Same.
	(gfc_grow_array): Same.
	(gfc_put_offset_into_var): Same.
	(gfc_trans_array_ctor_element): Same.
	(gfc_trans_array_constructor_subarray): Same.
	(gfc_trans_array_constructor_value): Same.
	(gfc_trans_scalarized_loop_end): Same.
	(gfc_array_init_size): Same.
	(gfc_array_allocate): Same.
	(gfc_trans_array_bounds): Same.
	(gfc_trans_auto_array_allocation): Same.
	(gfc_trans_g77_array): Same.
	(gfc_trans_dummy_array_bias): Same.
	(gfc_conv_expr_descriptor): Same.
	(structure_alloc_comps): Same.
	* trans-expr.c: Same.
	* trans-openmp.c (gfc_omp_clause_default_ctor): Same.
	Rename gfc_conv_descriptor_data_set_tuples to
	gfc_conv_descriptor_data_set.
	(gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to
	build2_v.
	(gfc_omp_clause_assign_op): Same.
	(gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to
	gfc_add_modify.
	(gfc_trans_omp_atomic): Same.
	(gfc_trans_omp_do): Same.  Change GIMPLE_MODIFY_STMT to MODIFY_EXPR.
	Rename gfc_add_modify_stmt to gfc_add_modify.
	* trans-stmt.c: Rename gfc_add_modify_expr to
	gfc_add_modify.
	* trans.c: Rename gfc_add_modify_expr to
	gfc_add_modify.
	(gfc_add_modify): Remove last argument.
	Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR.
	* trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt.
	Add prototype for gfc_add_modify.
	* f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN.
	* trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify.
	* trans-io.c: Same.
	* trans-intrinsic.c: Same.

	2008-02-25  Aldy Hernandez  <aldyh@redhat.com>

	* Make-lang.in (fortran-warn): Add -Wno-format.

	2008-02-19  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html

	* fortran/Make-lang.in (fortran-warn): Remove.

	2007-11-22  Aldy Hernandez  <aldyh@redhat.com>

	* trans-expr.c (gfc_trans_string_copy): Use "void *" when building a
	memset.

	2007-11-10  Aldy Hernandez  <aldyh@redhat.com>

	* Make-lang.in (fortran-warn): Set to -Wno-format.
	* trans.c (gfc_trans_code): Update comment to say GENERIC.
	Call tree_annotate_all_with_locus instead of annotate_all_with_locus.

2008-07-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36132
	PR fortran/29952
	PR fortran/36909
	* trans.c (gfc_trans_runtime_check): Allow run-time warning besides
	run-time error.
	* trans.h (gfc_trans_runtime_check): Update declaration.
	* trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
	gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
	Updated gfc_trans_runtime_check calls.
	(gfc_conv_array_parameter): Implement flag_check_array_temporaries,
	fix packing/unpacking for nonpresent optional actuals to optional
	formals.
	* trans-array.h (gfc_conv_array_parameter): Update declaration.
	* trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
	gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
	(gfc_conv_function_call): Update gfc_conv_array_parameter calls.
	* trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
	calls.
	* trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
	(gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
	gfc_conv_array_parameter.
	* trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
	* trans-decl.c (gfc_build_builtin_function_decls): Add
	gfor_fndecl_runtime_warning_at.
	* lang.opt: New option fcheck-array-temporaries.
	* gfortran.h (gfc_options): New flag_check_array_temporaries.
	* options.c (gfc_init_options, gfc_handle_option): Handle flag.
	* invoke.texi: New option fcheck-array-temporaries.

2008-07-24  Jan Hubicka  <jh@suse.cz>

	* fortran/options.c (gfc_post_options): Remove flag_unline_trees code.

2008-07-24  Daniel Kraft  <d@domob.eu>

	PR fortran/33141
	* lang.opt (Wnonstd-intrinsics):  Removed option.
	(Wintrinsics-std), (Wintrinsic-shadow):  New options.
	* invoke.texi (Option Summary):  Removed -Wnonstd-intrinsics
	from the list and added -Wintrinsics-std and -Wintrinsic-shadow.
	(Error and Warning Options):  Documented the new options and removed
	the documentation for -Wnonstd-intrinsics.
	* gfortran.h (gfc_option_t):  New members warn_intrinsic_shadow and
	warn_intrinsics_std, removed warn_nonstd_intrinsics.
	(gfc_is_intrinsic):  Renamed from gfc_intrinsic_name.
	(gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard):  New.
	* decl.c (match_procedure_decl):  Replaced gfc_intrinsic_name by
	the new name gfc_is_intrinsic.
	(warn_intrinsic_shadow):  New helper method.
	(gfc_match_function_decl), (gfc_match_subroutine):  Call the new method
	warn_intrinsic_shadow to check the just-parsed procedure.
	* expr.c (check_init_expr):  Call new gfc_is_intrinsic to check whether
	the function called is really an intrinsic in the selected standard.
	* intrinsic.c (gfc_is_intrinsic):  Renamed from gfc_intrinsic_name and
	extended to take into account the selected standard settings when trying
	to find out whether a symbol is an intrinsic or not.
	(gfc_check_intrinsic_standard):  Made public and extended.
	(gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface):  Removed
	the calls to check_intrinsic_standard, this check now happens inside
	gfc_is_intrinsic.
	(gfc_warn_intrinsic_shadow):  New method defined.
	* options.c (gfc_init_options):  Initialize new warning flags to false
	and removed intialization of Wnonstd-intrinsics flag.
	(gfc_post_options):  Removed logic for Wnonstd-intrinsics flag.
	(set_Wall):  Set new warning flags and removed Wnonstd-intrinsics flag.
	(gfc_handle_option):  Handle the new flags and removed handling of the
	old Wnonstd-intrinsics flag.
	* primary.c (gfc_match_rvalue):  Replaced call to gfc_intrinsic_name by
	the new name gfc_is_intrinsic.
	* resolve.c (resolve_actual_arglist):  Ditto.
	(resolve_generic_f), (resolve_unknown_f):  Ditto.
	(is_external_proc):  Ditto.
	(resolve_generic_s), (resolve_unknown_s):  Ditto.
	(resolve_symbol):  Ditto and ensure for symbols declared INTRINSIC that
	they are really available in the selected standard setting.

2008-07-24  Daniel Kraft  <d@domob.eu>

	* match.c (gfc_match):  Add assertion to catch wrong calls trying to
	match upper-case characters.

2008-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/29952
	* gfortran.h:  Add "warn_array_temp" to gfc_option_t.
	* lang.opt:  Add -Warray-temporaries.
	* invoke.texi:  Document -Warray-temporaries
	* trans-array.h (gfc_trans_create_temp_array):  Add argument of
	type *locus.
	(gfc_conv_loop_setup):  Likewise.
	* trans-array.c (gfc_trans_create_temp_array):  If
	-Warray-temporaries is given and locus is present, warn about
	creation of array temporaries.
	(gfc_trans_array_constructor_subarray):  Add locus to call
	of gfc_conv_loop_setup.
	(gfc_trans_array_constructor):  Add where argument.  Pass where
	argument to call of gfc_trans_create_temp_array.
	(gfc_add_loop_ss_code):  Add where argument.  Pass where argument
	to recursive call of gfc_add_loop_ss_code and to call of
	gfc_trans_array_constructor.
	(gfc_conv_loop_setup):  Add where argument.  Pass where argument
	to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array.
	(gfc_conv_expr_descriptor):  Pass location to call of
	gfc_conv_loop_setup.
	(gfc_conv_array_parameter):  If -Warray-temporaries is given,
	warn about creation of temporary arrays.
	* trans-expr.c (gfc_conv_subref_array_arg):  Add where argument
	to call to gfc_conv_loop_setup.
	(gfc_conv_function_call):  Add where argument to call to
	gfc_trans_creat_temp_array.
	(gfc_trans_subarray_assign):  Likewise.
	(gfc_trans_assignment_1):  Add where argument to call to
	gfc_conv_loop_setup.
	* trans-stmt.c (gfc_conv_elemental_dependencies):  Add where
	argument to call to gfc_trans_create_temp_array.
	(gfc_trans_call):  Add where argument to call to gfc_conv_loop_setup.
	(generate_loop_for_temp_to_lhs):  Likewise.
	(generate_loop_for_rhs_to_temp):  Likewise.
	(compute_inner_temp_size):  Likewise.
	(gfc_trans-pointer_assign_need_temp):  Likewise.
	(gfc_evaluate_where_mask):  Likewise.
	(gfc_trans_where_assign):  Likewise.
	(gfc_trans_where_3):  Likewise.
	* trans-io.c (transfer_srray_component):  Add where argument
	to function. Add where argument to call to gfc_conv_loop_setup.
	(transfer_expr):  Add where argument to call to
	transfer_array_component.
	(gfc_trans_transfer):  Add where expression to call to
	gfc_conv_loop_setup.
	* trans-intrinsic.c (gfc_conv_intrinsic_anyall):  Add
	where argument to call to gfc_conv_loop_setup.
	(gfc_conv_intrinsic_count):  Likewise.
	(gfc_conv_intrinsic_arith):  Likewise.
	(gfc_conv_intrinsic_dot_product):  Likewise.
	(gfc_conv_intrinsic_minmaxloc):  Likewise.
	(gfc_conv_intrinsic_minmaxval):  Likewise.
	(gfc_conv_intrinsic_array_transfer):  Warn about
	creation of temporary array.
	Add where argument to call to gfc_trans_create_temp_array.
	* options.c (gfc_init_options):  Initialize gfc_option.warn_array_temp.
	(gfc_handle_option):  Set gfc_option.warn_array_temp.

2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 35058
	* f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.

2008-07-22  Daniel Kraft  <d@domob.eu>

	PR fortran/29835
	* io.c (error_element), (format_locus):  New static globals.
	(unexpected_element):  Spelled out this message fully.
	(next_char):  Keep track of locus when not MODE_STRING.
	(next_char_not_space):  Remember last parsed element in error_element.
	(format_lex):  Fix two indentation errors.
	(check_format):  Use format_locus and possibly error_element for a
	slightly better error message on invalid format.
	(check_format_string):  Set format_locus to start of the string
	expression used as format.

2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* expr.c (gfc_check_pointer_assign): Fix typo in string.
	* io.c (check_format): Fix typo in string.  Fix comment typos.
	* parse.c (gfc_global_used): Likewise.
	* resolve.c (resolve_allocate_expr): Likewise.
	* symbol.c (gfc_set_default_type): Likewise.
	* arith.c: Fix typos in comments.
	* array.c: Likewise.
	* data.c: Likewise.
	* decl.c: Likewise.
	* dependency.c: Likewise.
	* f95-lang.c: Likewise.
	* gfortran.h: Likewise.
	* matchexp.c: Likewise.
	* module.c: Likewise.
	* primary.c: Likewise.
	* scanner.c: Likewise.
	* trans-array.c: Likewise.
	* trans-common.c: Likewise.
	* trans-decl.c: Likewise.
	* trans-expr.c: Likewise.
	* trans-intrinsic.c: Likewise.
	* trans-types.c: Likewise.
	* trans.c: Likewise.
	* trans.h: Likewise.

2008-07-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36795
	* matchexp.c (gfc_get_parentheses): Remove obsolete workaround,
	which caused the generation of wrong code.

2008-07-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36342
	* scanner.c (load_file): Add argument to destinguish between
	true filename and displayed filename.
	(include_line,gfc_new_file): Adapt accordingly.

2008-07-19  Tobias Burnus  <burnus@net-b.de>

	* check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank
	checks for cshift's shift and eoshift's shift and boundary args.
	(gfc_check_unpack): Add rank and shape tests for unpack.

2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gfortran.h (new): Remove macro.
	* array.c (gfc_append_constructor, match_array_list,
	gfc_match_array_constructor): Likewise.
	* bbt.c (insert, gfc_insert_bbt): Likewise.
	* decl.c (var_element, top_var_list, top_val_list, gfc_match_data,
	get_proc_name): Likewise.
	* expr.c (gfc_copy_actual_arglist): Likewise.
	* interface.c (compare_actual_formal, check_new_interface,
	gfc_add_interface): Likewise.
	* intrinsic.c gfc_convert_type_warn, gfc_convert_chartype):
	Likewise.
	* io.c (match_io_iterator, match_io_list): Likewise.
	* match.c (match_forall_header): Likewise.
	* matchexp.c (build_node): Likewise.
	* module.c (gfc_match_use): Likewise.
	* scanner.c (load_file): Likewise.
	* st.c (gfc_append_code): Likewise.
	* symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
	gfc_commit_symbols): Likewise.
	* trans-common.c (build_field): Likewise.
	* trans-decl.c (gfc_finish_var_decl): Likewise.
	* trans-expr.c (gfc_free_interface_mapping,
	gfc_get_interface_mapping_charlen, gfc_add_interface_mapping,
	gfc_finish_interface_mapping,
	gfc_apply_interface_mapping_to_expr): Likewise.
	* trans.h (gfc_interface_sym_mapping): Likewise.

2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gfortran.h (operator): Remove macro.
	(gfc_namespace, gfc_expr): Avoid C++ keywords.
	* arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3):
	Likewise.
	* decl.c (access_attr_decl): Likewise.
	* dependency.c (gfc_dep_compare_expr): Likewise.
	* dump-parse-tree.c (show_expr, show_uop, show_namespace):
	Likewise.
	* expr.c (gfc_copy_expr, gfc_type_convert_binary,
	simplify_intrinsic_op, check_intrinsic_op): Likewise.
	* interface.c (fold_unary, gfc_match_generic_spec,
	gfc_match_interface, gfc_match_end_interface,
	check_operator_interface, check_uop_interfaces,
	gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign,
	gfc_add_interface, gfc_current_interface_head,
	gfc_set_current_interface_head): Likewise.
	* iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
	Likewise.
	* matchexp.c (gfc_get_parentheses, build_node): Likewise.
	* module.c (gfc_use_rename, gfc_match_use, find_use_name_n,
	number_use_names, mio_expr, load_operator_interfaces, read_module,
	write_operator, write_module): Likewise.
	* openmp.c (resolve_omp_atomic): Likewise.
	* resolve.c (resolve_operator, gfc_resolve_character_operator,
	gfc_resolve_uops): Likewise.
	* symbol.c (free_uop_tree, gfc_free_namespace): Likewise.
	* trans-expr.c (gfc_conv_expr_op): Likewise.
	* trans-openmp.c (gfc_trans_omp_atomic): Likewise.

2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gfortran.h (protected): Remove macro.
	* dump-parse-tree.c (show_attr): Avoid C++ keywords.
	* expr.c (gfc_check_pointer_assign): Likewise.
	* interface.c (compare_parameter_protected): Likewise.
	* intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1,
	add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3,
	add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s,
	add_sym_5s): Likewise.
	* match.c (gfc_match_assignment, gfc_match_pointer_assignment):
	Likewise.
	* module.c (mio_symbol_attribute): Likewise.
	* primary.c (match_variable): Likewise.
	* resolve.c (resolve_equivalence): Likewise.
	* symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr):
	Likewise.
	* trans-types.c (gfc_get_array_type_bounds): Likewise.

2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* arith.c (eval_type_intrinsic0): Avoid C++ keywords.
	* gfortran.h (try, protected, operator, new): Likewise.

2008-07-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36825
	PR fortran/36824
	* array.c (gfc_match_array_spec): Fix array-rank check.
	* resolve.c (resolve_fl_derived): Fix constentness check
	for the array dimensions.

2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Make-lang.in (gfortranspec.o): Fix dependencies.

2008-07-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/36725
	* io.c: Add error check for g0 edit descriptor followed by '.'.

2008-07-12  Daniel Kraft  <d@domob.eu>

	* resolve.c (resolve_fl_derived):  Allow pointer components to empty
	derived types fixing a missing part of PR fortran/33221.

2008-07-10  Daniel Kraft  <d@domob.eu>

	* gfc-internals.texi (section gfc_expr):  Created documentation about
	the gfc_expr internal data structure.

2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36670
	* iresolve.c (gfc_resolve_product):  Set shape of return
	value from array.
	(gfc_resolve_sum):  Likewise.

2008-07-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/36726
	* f95-lang.c (poplevel): Don't ever add subblocks to
	global_binding_level.

2008-07-02  Janus Weil  <janus@gcc.gnu.org>
	    Tobias Burnus  <burnus@net-b.de>
	    Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/32580
	* gfortran.h (struct gfc_symbol): New member "proc_pointer".
	* check.c (gfc_check_associated,gfc_check_null): Implement
	procedure pointers.
	* decl.c (match_procedure_decl): Ditto.
	* expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
	* interface.c (compare_actual_formal): Ditto.
	* match.h: Ditto.
	* match.c (gfc_match_pointer_assignment): Ditto.
	* parse.c (parse_interface): Ditto.
	* primary.c (gfc_match_rvalue,match_variable): Ditto.
	* resolve.c (resolve_fl_procedure): Ditto.
	* symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
	gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
	* trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
	create_function_arglist): Ditto.
	* trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
	gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.

2008-07-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36590
	PR fortran/36681
	* iresolve.c (resolve_mask_arg):  Don't convert mask to
	kind=1 logical if it is of that type already.

2008-06-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36341
	* iresolve.c (gfc_resolve_matmul): Copy shapes
	from arguments.

2008-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* invoke.texi: Add documentation for runtime behavior of
	-fno-range-check.

2008-06-28  Daniel Kraft  <d@domob.eu>

	* gfc-internals.texi (section gfc_code):  Extended documentation about
	gfc_code in the internal datastructures chapter including details about
	how IF, DO and SELECT blocks look like and an example for how the
	block-chaining works.

2008-06-25  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/36526
	* interface.c (check_intents):  Correct error where the actual
	arg was checked for a pointer argument, rather than the formal.

2008-06-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34371
	* expr.c (gfc_check_assign):  Change message and locus for
	error when conform == 0.

2008-06-23  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/36597
	* cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.

2008-06-20  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/34908
	PR fortran/36276
	* scanner.c (preprocessor_line): do not call gfc_free for
	current_file->filename if it differs from filename.

2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* arith.c (hollerith2representation): Fix for -Wc++-compat.
	* array.c (gfc_get_constructor): Likewise.
	* decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
	create_enum_history, gfc_match_final_decl): Likewise.
	* error.c (error_char): Likewise.
	* expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
	* gfortran.h (gfc_get_charlen, gfc_get_array_spec,
	gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
	gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
	gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
	gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
	gfc_get_alloc, gfc_get_wide_string): Likewise.
	* interface.c (count_types_test): Likewise.
	* intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
	Likewise.
	* io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
	gfc_match_inquire, gfc_match_wait): Likewise.
	* match.c (gfc_match, match_forall_iterator): Likewise.
	* module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
	add_true_name, parse_string, write_atom, quote_string,
	mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
	* options.c (gfc_post_options): Likewise.
	* primary.c (match_integer_constant, match_hollerith_constant,
	match_boz_constant, match_real_constant,
	gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
	* scanner.c (gfc_widechar_to_char, add_path_to_list,
	add_file_change, load_line, get_file, preprocessor_line,
	load_file, unescape_filename, gfc_read_orig_filename): Likewise.
	* simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
	gfc_simplify_ishftc): Likewise.
	* symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
	gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
	Likewise.
	* target-memory.c (gfc_target_interpret_expr): Likewise.
	* trans-const.c (gfc_build_wide_string_const): Likewise.
	* trans-expr.c (gfc_add_interface_mapping): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_conversion,
	gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
	gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
	gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
	gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
	gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
	gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
	* trans.c (gfc_get_backend_locus): Likewise.
	* trans.h (gfc_get_ss): Likewise.

2008-06-18  Daniel Kraft  <d@domob.eu>

	PR fortran/36517, fortran/36492
	* array.c (gfc_resolve_character_array_constructor):  Call
	gfc_set_constant_character_len with changed length-chec argument.
	* decl.c (gfc_set_constant_character_len):  Changed array argument to
	be a generic length-checking argument that can be used for correct
	checking with typespec and in special cases where the should-be length
	is different from the target length.
	(build_struct):  Call gfc_set_constant_character_len with changed length
	checking argument and introduced additional checks for exceptional
	conditions on invalid code.
	(add_init_expr_to_sym), (do_parm):  Call gfc_set_constant_character_len
	with changed argument.
	* match.h (gfc_set_constant_character_len):  Changed third argument to
	int for the should-be length rather than bool.

2008-06-17  Daniel Kraft  <d@domob.eu>

	PR fortran/36112
	* array.c (gfc_resolve_character_array_constructor):  Check that all
	elements with constant character length have the same one rather than
	fixing it if no typespec is given, emit an error if they don't.  Changed
	return type to "try" and return FAILURE for the case above.
	(gfc_resolve_array_constructor):  Removed unneeded call to
	gfc_resolve_character_array_constructor in this function.
	* gfortran.h (gfc_resolve_character_array_constructor):  Returns try.
	* trans-array.c (get_array_ctor_strlen):  Return length of first element
	rather than last element.
	* resolve.c (gfc_resolve_expr):  Handle FAILURE return from
	gfc_resolve_character_array_constructor.

2008-06-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34396
	* resolve.c (add_dt_to_dt_list):  New function.
	(resolve_fl_derived): Call new function for pointer components
	and when derived type resolved.

2008-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/36515
	* trans-decl.c (gfc_generate_function_code): Add range_check to options
	array.

2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gfc-internals.texi: Expand TABs, drop indentation outside examples.
	* gfortran.texi: Likewise.
	* intrinsic.texi: Likewise.
	* invoke.texi: Likewise.

2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35863
	* trans-io.c (gfc_build_io_library_fndecls): Build declaration for
	transfer_character_wide which includes passing in the character kind to
	support wide character IO. (transfer_expr): If the kind == 4, create the
	argument and build the call.
	* gfortran.texi: Fix typo.

2008-06-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36476
	* decl.c (do_parm): Handle init expression for len=*.

2008-06-12  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36462
	* trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
	Fix passing of the BACK= argument.

2008-06-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* cpp.c: Add copyright notice.
	* cpp.h: Add copyright notice.

2008-06-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36459
	* decl.c (match_procedure_decl): Correctly recognize if the interface
	is an intrinsic procedure.

2008-06-08  Tobias Burnus  <burnus@net-b.de>

	PR fortran/35830
	* resolve.c (resolve_symbol): Copy more attributes for
	PROCEDUREs with interfaces.

2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/36420
	PR fortran/36422
	* io.c (check_format): Add new error message for zero width.
	Use new	error message for FMT_A and with READ, FMT_G.  Allow
	FMT_G with WRITE except when -std=F95 and -std=F2003.

2008-06-07  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36437
	* intrinsic.c (add_functions): Implement c_sizeof.
	* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
	create unneeded variable in the scalar case.
	* intrinsic.texi: Add C_SIZEOF documentation.

2008-06-06  Tobias Burnus  <burnus@net-b.de>

	* intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.

2008-06-06  Jakub Jelinek  <jakub@redhat.com>

	* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
	* parse.c (next_free): Allow tab after !$omp.
	(decode_omp_directive): Handle !$omp task, !$omp taskwait
	and !$omp end task.
	(case_executable): Add ST_OMP_TASKWAIT.
	(case_exec_markers): Add ST_OMP_TASK.
	(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
	ST_OMP_TASKWAIT.
	(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
	* gfortran.h (gfc_find_sym_in_expr): New prototype.
	(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
	(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
	OMP_DEFAULT_FIRSTPRIVATE to default_sharing.  Add collapse and
	untied fields.
	(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
	* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
	LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
	* trans.h (gfc_omp_clause_default_ctor): Add another argument.
	(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
	gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
	* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
	BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
	BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
	(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
	than boolean_type_node.
	* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
	EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
	untied and collapse clauses.
	(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
	* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
	EXEC_OMP_TASKWAIT.
	* st.c (gfc_free_statement): Likewise.
	* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
	(find_sym_in_expr): Rename to...
	(gfc_find_sym_in_expr): ... this.  No longer static.
	(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
	* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
	prototypes.
	* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
	firstprivate, lastprivate, reduction, copyprivate and copyin
	clauses.
	(omp_current_do_code): Made static.
	(omp_current_do_collapse): New variable.
	(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
	clear omp_current_do_code and omp_current_do_collapse on return.
	(gfc_resolve_do_iterator): Handle collapsed do loops.
	(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
	(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
	(gfc_match_omp_clauses): Handle default (firstprivate),
	schedule (auto), untied and collapse (n) clauses.
	(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
	(OMP_TASK_CLAUSES): Define.
	(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
	* trans-openmp.c (gfc_omp_private_outer_ref): New function.
	(gfc_omp_clause_default_ctor): Add outer argument.  For allocatable
	arrays allocate them with the bounds of the outer var if outer
	var is allocated.
	(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
	gfc_omp_clause_dtor): New functions.
	(gfc_trans_omp_array_reduction): If decl is allocatable array,
	allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
	and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
	(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
	for assumed-size arrays.
	(gfc_trans_omp_do): Add par_clauses argument.  If dovar is
	present in lastprivate clause and do loop isn't simple,
	set OMP_CLAUSE_LASTPRIVATE_STMT.  If dovar is present in
	parallel's lastprivate clause, change it to shared and add
	lastprivate clause to OMP_FOR_CLAUSES.  Handle collapsed do loops.
	(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
	(gfc_trans_omp_parallel_do): Likewise.  Move collapse clause to
	OMP_FOR from OMP_PARALLEL.
	(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
	OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
	(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
	(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
	EXEC_OMP_TASKWAIT.

2008-06-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36322
	PR fortran/36275
	* resolve.c (resolve_symbol): Correctly copy the interface for a
	PROCEDURE declaration.

2008-06-02  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36361
	* symbol.c (gfc_add_allocatable,gfc_add_dimension,
	gfc_add_explicit_interface): Added checks.
	* decl.c (attr_decl1): Added missing "var_locus".
	* parse.c (parse_interface): Checking for errors.

2008-06-02  Daniel Kraft  <d@domob.eu>

	* gfortran.h:  New statement-type ST_FINAL for FINAL declarations.
	(struct gfc_symbol):  New member f2k_derived.
	(struct gfc_namespace):  New member finalizers, for use in the above
	mentioned f2k_derived namespace.
	(struct gfc_finalizer):  New type defined for finalizers linked list.
	* match.h (gfc_match_final_decl):  New function header.
	* decl.c (gfc_match_derived_decl):  Create f2k_derived namespace on
	constructed symbol node.
	(gfc_match_final_decl):  New function to match a FINAL declaration line.
	* parse.c (decode_statement):  match-call for keyword FINAL.
	(parse_derived):  Parse CONTAINS section and accept FINAL statements.
	* resolve.c (gfc_resolve_finalizers):  New function to resolve (that is
	in this case, check) a list of finalizer procedures.
	(resolve_fl_derived):  Call gfc_resolve_finalizers here.
	* symbol.c (gfc_get_namespace):  Initialize new finalizers to NULL.
	(gfc_free_namespace):  Free finalizers list.
	(gfc_new_symbol):  Initialize new f2k_derived to NULL.
	(gfc_free_symbol):  Free f2k_derived namespace.
	(gfc_free_finalizer):  New function to free a single gfc_finalizer node.
	(gfc_free_finalizer_list):  New function to free a linked list of
	gfc_finalizer nodes.

2008-06-02  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/36375
	PR fortran/36377
	* cpp.c (gfc_cpp_init): Do not initialize builtins if
	processing already preprocessed input.
	(gfc_cpp_preprocess): Finalize output with newline.

2008-05-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* intrinsic.texi: Revert wrong commit.

2008-05-31  Steven G. Kargl  <kargls@comcast.net>

	* arith.c (gfc_arith_init_1): Remove now unused r and c variables.
	Cleanup numerical inquiry function initialization.
	(gfc_arith_done_1): Replace multiple mpfr_clear() invocations with
	a single mpfr_clears().
	(gfc_check_real_range): Re-arrange logic to eliminate multiple
	unnecessary branching and assignments.
	(gfc_arith_times): Use mpfr_clears() in preference to multiple
	mpfr_clear().
	(gfc_arith_divide): Ditto.
	(complex_reciprocal): Eliminate now unused variables a, re, im.
	Cleanup the mpfr abuse.  Use mpfr_clears() in preference to
	multiple mpfr_clear().
	(complex_pow): Fix comment whitespace.  Use mpfr_clears() in
	preference to multiple mpfr_clear().
	* simplify.c (gfc_simplify_and): Remove blank line.
	(gfc_simplify_atan2): Move error checking earlier to eliminate
	a now unnecessay gfc_free_expr().
	(gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind().
	(gfc_simplify_bessel_j1): Ditto.
	(gfc_simplify_bessel_jn): Ditto.
 	(gfc_simplify_bessel_y0): Ditto.
	(gfc_simplify_bessel_y1): Ditto.
	(gfc_simplify_bessel_yn): Ditto. 
	(only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and
	combine nested if statement rational expressions.
	(gfc_simplify_cos): Use mpfr_clears() in preference to multiple
	mpfr_clear().
	(gfc_simplify_exp): Ditto.
	(gfc_simplify_fraction): Move gfc_set_model_kind() to after the
	special case of 0.  Use mpfr_clears() in preference to multiple
	mpfr_clear().
	(gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind().
 	(gfc_simplify_lgamma): Ditto.
	(gfc_simplify_log10): Ditto.
	(gfc_simplify_log): Move gfc_set_model_kind () inside switch
	statement. Use mpfr_clears() in preference to multiple mpfr_clear().
	(gfc_simplify_mod):  Eliminate now unused variables quot, iquot,
	and term.  Simplify the mpfr magic.
	(gfc_simplify_modulo): Ditto.
	(gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind().
	(gfc_simplify_scale): Use mpfr_clears() in preference to multiple
	mpfr_clear().
	(gfc_simplify_sin): Ditto
	(gfc_simplify_sqrt): Ditto
	(gfc_simplify_set_exponent):  Move gfc_set_model_kind() to after the
	special case of 0.  Use mpfr_clears() in preference to multiple
	mpfr_clear().

2008-05-29  Daniel Franke  <franke.daniel@gmail.com>

	PR target/36348
	* Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS.

2008-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* scanner.c (load_line): Add first_char argument. Don't call ungetc.
	(gfc_read_orig_filename): Adjust call to load_line. Don't call
	ungetc.
	(load_file): Adjust call to load_line.

2008-05-28  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/36325
	PR fortran/35830
	* interface.c (gfc_procedure_use): Enable argument checking for
	external procedures with explicit interface.
	* symbol.c (check_conflict): Fix conflict checking for externals.
	(copy_formal_args): Fix handling of arrays.
	* resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling
	of intrinsics.
	* parse.c (parse_interface): Non-abstract INTERFACE statement implies
	EXTERNAL attribute.

2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36319
	* intrinsic.c (gfc_convert_chartype): Don't mark conversion
	function as pure.
	* trans-array.c (gfc_trans_array_ctor_element): Divide element
	size by the size of one character to obtain length.
	* iresolve.c (gfc_resolve_cshift): Call the _char4 variant when
	appropriate.
	(gfc_resolve_eoshift): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification.
	(gfc_conv_intrinsic_fdate): Minor beautification.
	(gfc_conv_intrinsic_ttynam): Minor beautification.
	(gfc_conv_intrinsic_minmax_char): Allow all character kinds.
	(size_of_string_in_bytes): New function.
	(gfc_conv_intrinsic_size): Call size_of_string_in_bytes for
	character expressions.
	(gfc_conv_intrinsic_sizeof): Likewise.
	(gfc_conv_intrinsic_array_transfer): Likewise.
	(gfc_conv_intrinsic_trim): Allow all character kinds. Minor
	beautification.
	(gfc_conv_intrinsic_repeat): Fix comment typo.
	* simplify.c (gfc_convert_char_constant): Take care of conversion
	of array constructors.

2008-05-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36316
	* trans-array.c (gfc_set_loop_bounds_from_array_spec):
	Add missing fold_convert.

2008-05-26  Daniel Franke  <franke.daniel@gmail.com>

	* fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
	added FIXME instead.

2008-05-26  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/18428
	* lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory,
	imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc,
	o, undef, v): New options.
	* options.c (gfc_init_options): Also initialize preprocessor
	options.
	(gfc_post_options): Also handle post-initialization of preprocessor
	options.
	(gfc_handle_option): Check if option is a preprocessor option.
	If yes, let gfc_cpp_handle_option() handle the option.
	* lang-specs.h: Reorganized to handle new options.
	* scanner.c (gfc_new_file): Read temporary file instead of
	input source if preprocessing is enabled.
	* f95-lang.c (gfc_init): Initialize preprocessor.
	(gfc_finish): Clean up preprocessor.
	* cpp.c: New.
	* cpp.h: New.
	* Make-lang.in: Added new objects and dependencies.
	* gfortran.texi: Updated section "Preprocessing and
	conditional compilation".
	* invoke.texi: Added new section "Preprocessing Options",
	listed and documented the preprocessing options handled
	by gfortran.

2008-05-25  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32600
	* trans-expr.c (gfc_conv_function_call): Remove library
	call for c_f_pointer with scalar Fortran pointers and for
	c_f_procpointer.

2008-05-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36257
	* iresolve.c (check_charlen_present): Don't force the rank to 1.

2008-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36265
	* trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
	the temporary variable.

2008-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
	result variable to avoid warnings.

2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* intrinsic.c (char_conversions, ncharconv): New static variables.
	(find_char_conv): New function.
	(add_functions): Add simplification functions for ADJUSTL and
	ADJUSTR. Don't check the kind of their argument. Add checking for
	LGE, LLE, LGT and LLT.
	(add_subroutines): Fix argument type for SLEEP. Fix argument name
	for SYSTEM.
	(add_char_conversions): New function.
	(gfc_intrinsic_init_1): Call add_char_conversions.
	(gfc_intrinsic_done_1): Free char_conversions.
	(check_arglist): Use kind == 0 as a signal that we don't want
	the kind value to be checked.
	(do_simplify): Also simplify character functions.
	(gfc_convert_chartype): New function
	* trans-array.c (gfc_trans_array_ctor_element): Don't force the
	use of default character type.
	(gfc_trans_array_constructor_value): Likewise.
	(get_array_ctor_var_strlen): Use integer kind to build an integer
	instead of a character kind!
	(gfc_build_constant_array_constructor): Don't force the use of
	default character type.
	(gfc_conv_loop_setup): Likewise.
	* trans-expr.c (gfc_conv_string_tmp): Don't force the use of
	default character type. Allocate enough memory for wide strings.
	(gfc_conv_concat_op): Make sure operand kind are the same.
	(string_to_single_character): Remove gfc_ prefix. Reindent.
	Don't force the use of default character type.
	(gfc_conv_scalar_char_value): Likewise.
	(gfc_build_compare_string): Call string_to_single_character.
	(fill_with_spaces): New function
	(gfc_trans_string_copy): Add kind arguments. Use them to deal
	with wide character kinds.
	(gfc_conv_statement_function): Whitespace fix. Call
	gfc_trans_string_copy with new kind arguments.
	(gfc_conv_substring_expr): Call gfc_build_wide_string_const
	instead of using gfc_widechar_to_char.
	(gfc_conv_string_parameter): Don't force the use of default
	character type.
	(gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
	* intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
	gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
	* decl.c (gfc_set_constant_character_len): Don't assert the
	existence of a single character kind.
	* trans-array.h (gfc_trans_string_copy): New prototype.
	* gfortran.h (gfc_check_character_range, gfc_convert_chartype):
	New prototypes.
	* error.c (print_wide_char_into_buffer): New function lifting
	code from gfc_print_wide_char. Fix order to output '\x??' instead
	of 'x\??'.
	(gfc_print_wide_char): Call print_wide_char_into_buffer.
	(show_locus): Call print_wide_char_into_buffer with buffer local
	to this function.
	* trans-const.c (gfc_build_wide_string_const): New function.
	(gfc_conv_string_init): Deal with wide characters strings
	constructors.
	(gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
	* trans-stmt.c (gfc_trans_label_assign): Likewise.
	(gfc_trans_character_select): Deal with wide strings.
	* expr.c (gfc_check_assign): Allow conversion between character
	kinds on assignment.
	* trans-const.h (gfc_build_wide_string_const): New prototype.
	* trans-types.c (gfc_get_character_type_len_for_eltype,
	gfc_get_character_type_len): Create too variants of the old
	gfc_get_character_type_len, one getting kind argument and the
	other one directly taking a type tree.
	* trans.h (gfor_fndecl_select_string_char4,
	gfor_fndecl_convert_char1_to_char4,
	gfor_fndecl_convert_char4_to_char1): New prototypes.
	* trans-types.h (gfc_get_character_type_len_for_eltype): New
	prototype.
	* resolve.c (resolve_operator): Exit early when kind mismatches
	are detected, because that makes us issue an error message later.
	(validate_case_label_expr): Fix wording of error message.
	* iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
	functions.
	(gfc_resolve_pack): Call _char4 variants of library function
	when dealing with wide characters.
	(gfc_resolve_reshape): Likewise.
	(gfc_resolve_spread): Likewise.
	(gfc_resolve_transpose): Likewise.
	(gfc_resolve_unpack): Likewise.
	* target-memory.c (size_character): Take character kind bit size
	correctly into account (not that it changes anything for now, but
	it's more generic).
	(gfc_encode_character): Added gfc_ prefix. Encoding each
	character of a string by calling native_encode_expr for the
	corresponding unsigned integer.
	(gfc_target_encode_expr): Add gfc_ prefix to encode_character.
	* trans-decl.c (gfc_build_intrinsic_function_decls): Build
	gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
	and gfor_fndecl_convert_char4_to_char1.
	* target-memory.h (gfc_encode_character): New prototype.
	* arith.c (gfc_check_character_range): New function.
	(eval_intrinsic): Allow non-default character kinds.
	* check.c (gfc_check_access_func): Only allow default
	character kind arguments.
	(gfc_check_chdir): Likewise.
	(gfc_check_chdir_sub): Likewise.
	(gfc_check_chmod): Likewise.
	(gfc_check_chmod_sub): Likewise.
	(gfc_check_lge_lgt_lle_llt): New function.
	(gfc_check_link): Likewise.
	(gfc_check_link_sub): Likewise.
	(gfc_check_symlnk): Likewise.
	(gfc_check_symlnk_sub): Likewise.
	(gfc_check_rename): Likewise.
	(gfc_check_rename_sub): Likewise.
	(gfc_check_fgetputc_sub): Likewise.
	(gfc_check_fgetput_sub): Likewise.
	(gfc_check_stat): Likewise.
	(gfc_check_stat_sub): Likewise.
	(gfc_check_date_and_time): Likewise.
	(gfc_check_ctime_sub): Likewise.
	(gfc_check_fdate_sub): Likewise.
	(gfc_check_gerror): Likewise.
	(gfc_check_getcwd_sub): Likewise.
	(gfc_check_getarg): Likewise.
	(gfc_check_getlog): Likewise.
	(gfc_check_hostnm): Likewise.
	(gfc_check_hostnm_sub): Likewise.
	(gfc_check_ttynam_sub): Likewise.
	(gfc_check_perror): Likewise.
	(gfc_check_unlink): Likewise.
	(gfc_check_unlink_sub): Likewise.
	(gfc_check_system_sub): Likewise.
	* primary.c (got_delim): Perform correct character range checking
	for all kinds.
	* trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
	calls to library functions convert_char4_to_char1 and
	convert_char1_to_char4 for character conversions.
	(gfc_conv_intrinsic_char): Allow all character kings.
	(gfc_conv_intrinsic_strcmp): Fix whitespace.
	(gfc_conv_intrinsic_repeat): Take care of all character kinds.
	* intrinsic.texi: For all GNU intrinsics accepting character
	arguments, mention that they're restricted to the default kind.
	* simplify.c (simplify_achar_char): New function.
	(gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
	gfc_simplify_ichar): Don't error out for wide characters.
	(gfc_convert_char_constant): New function.

2008-05-18  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/36251
	* symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE,
	and BIND(C).
	* resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference.

2008-05-17  Tobias Burnus  <burnus@net-b.de>

	* intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT
	and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV,
	GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL.
	Move LOG_GAMMA after LOG10.

2008-05-17  Tobias Burnus  <burnus@net-b.de>

	* intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT).
	* intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for
	ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED,
	CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND.

2008-05-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35756
	PR fortran/35759
	* trans-stmt.c (gfc_trans_where): Tighten up the dependency
	check for calling gfc_trans_where_3.

	PR fortran/35743
	* trans-stmt.c (gfc_trans_where_2): Set the mask size to zero
	if it is calculated to be negative.

	PR fortran/35745
	* trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set
	ss->where for scalar right hand sides.
	* trans-array.c (gfc_add_loop_ss_code): If ss->where is set do
	not evaluate scalars outside the loop.  Clean up whitespace.
	* trans.h : Add a bitfield 'where' to gfc_ss.

2008-05-16  Tobias Burnus  <burnus@net-b.de>

	* libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15.
	* array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7.

2008-04-16  Daniel Kraft  <d@domob.eu>

	PR fortran/27997
	* gfortran.h:  Added field "length_from_typespec" to gfc_charlength.
	* aray.c (gfc_match_array_constructor):  Added code to parse typespec.
	(check_element_type, check_constructor_type, gfc_check_constructor_type):
	Extended to support explicit typespec on constructor.
	(gfc_resolve_character_array_constructor):  Pad strings correctly for
	explicit, constant character length.
	* trans-array.c:  New static global variable "typespec_chararray_ctor"
	(gfc_trans_array_constructor):  New code to support explicit but dynamic
	character lengths.

2008-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34325
	* decl.c (match_attr_spec): Check for matching pairs of parenthesis.
	* expr.c (gfc_specification_expr): Supplement the error message with the
	type that was found.
	* resolve.c (gfc_resolve_index): Likewise.
	* match.c (gfc_match_parens): Clarify error message with "at or before".
	(gfc_match_do): Check for matching pairs of parenthesis.

2008-05-16  Tobias Burnus  <burnus@net-b.de

	* intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95;
	add missing KIND argument to ACHAR and NINT; and state that
	the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR,
	ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY.

2008-05-16  Daniel Kraft  <d@domob.eu>

	* primary.c:  New private structure "gfc_structure_ctor_component".
	(gfc_free_structure_ctor_component):  New helper function.
	(gfc_match_structure_constructor):  Extended largely to support named
	arguments and default initialization for structure constructors.

2008-05-15  Steven G. Kargl  <kargls@comcast.net>

	* simplify.c (gfc_simplify_dble, gfc_simplify_float,
	simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug
	possible memory leaks.
	(gfc_simplify_reshape): Plug possible memory leaks and dereferencing
	of NULL pointers.

2008-05-15  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/36239
	* simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand
	rolled integer conversion with gfc_int2int, gfc_real2int, and
	gfc_complex2int.
	(gfc_simplify_intconv): Renamed to simplify_intconv.
	
2008-05-15  Steven G. Kargl,   <kargl@comcast.net>
	* gfortran.dg/and_or_xor.f90: New test

	* fortran/simplify.c (gfc_simplify_and, gfc_simplify_or,
	gfc_simplify_xor): Don't range check logical results.

2008-05-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* trans-expr.c (gfc_conv_concat_op): Take care of nondefault
	character kinds.
	(gfc_build_compare_string): Add kind argument and use it.
	(gfc_conv_statement_function): Fix indentation.
	* gfortran.h (gfc_character_info): New structure.
	(gfc_character_kinds): New array.
	* trans-types.c (gfc_character_kinds, gfc_character_types,
	gfc_pcharacter_types): New array.
	(gfc_init_kinds): Fill character kinds array.
	(validate_character): Take care of nondefault character kinds.
	(gfc_build_uint_type): New function.
	(gfc_init_types): Take care of nondefault character kinds.
	(gfc_get_char_type, gfc_get_pchar_type): New functions.
	(gfc_get_character_type_len): Use gfc_get_char_type.
	* trans.h (gfc_build_compare_string): Adjust prototype.
	(gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4,
	gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
	gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
	gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
	gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New
	prototypes.
	* trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New
	prototypes.
	* trans-decl.c (gfor_fndecl_compare_string_char4,
	gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
	gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
	gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
	gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4,
	gfor_fndecl_concat_string_char4): New function decls.
	(gfc_build_intrinsic_function_decls): Define new *_char4 function
	decls.
	* trans-intrinsic.c (gfc_conv_intrinsic_minmax_char,
	gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar,
	gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim,
	gfc_conv_intrinsic_function): Deal with nondefault character kinds.

2008-05-15  Sa Liu  <saliu@de.ibm.com>

	* iso-c-binding.def: Add standard parameter to macro NAMED_INTCST.
	All existing NAMED_INTCST definitions has standard GFC_STD_F2003,
	c_int128_t, c_int_least128_t and c_int_fast128_t are added as
	GNU extensions.
	* iso-fortran-evn.def: Add standard parameter GFC_STD_F2003
	to macro NAMED_INTCST.
	* symbol.c (std_for_isocbinding_symbol): New helper function to 
	return the standard that supports this isocbinding symbol.
	(generate_isocbinding_symbol): Do not generate GNU extension symbols
	if std=f2003. Add new parameter to NAMED_INTCST.
	* module.c (use_iso_fortran_env_module): Add new parameter to
	NAMED_INTCST and new field standard to struct intmod_sym.
	* gfortran.h: Add new parameter to NAMED_INTCST.
	* trans-types.c (init_c_interop_kinds): Add new parameter to 
	NAMED_INTCST.
	* intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T
	and C_INT_FAST128_T.

2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36059
	* trans-decl.c (gfc_build_dummy_array_decl): Don't repack
	arrays that have the TARGET attribute.

2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36186
	* simplify.c (only_convert_cmplx_boz): New function.
	(gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx):
	Call only_convert_cmplx_boz.

2008-05-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/36233
	* interface.c (compare_actual_formal): Do not check sizes if the
	actual is BT_PROCEDURE.

2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/35682
	* trans-array.c (gfc_conv_ss_startstride): Any negative size is
	the same as zero size.
	(gfc_conv_loop_setup): Fix size calculation.

2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/35685
	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly
	handle zero-size sections.

2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36215
	* scanner.c (preprocessor_line): Allocate enough memory for a
	wide string.

2008-05-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36176
	* target-memory.c (gfc_target_expr_size): Correctly treat
	substrings.
	(gfc_target_encode_expr): Likewise.
	(gfc_interpret_complex): Whitespace change.

2008-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/35719
	* trans.c (gfc_call_malloc): If size equals zero, allocate one
	byte; don't return a null pointer.

2008-05-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36197
	* module.c (quote_string): Fix sprintf format.

2008-05-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/36162
	* module.c (quote_string, unquote_string,
	mio_allocated_wide_string): New functions.
	(mio_expr): Call mio_allocated_wide_string where needed.

2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>

	 * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
	 Rename DECL_IS_PURE to DECL_PURE_P.

2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* arith.c: (gfc_arith_concat, gfc_compare_string,
	gfc_compare_with_Cstring, hollerith2representation,
	gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex,
	gfc_hollerith2character, gfc_hollerith2logical): Use wide
	characters for character constants.
	* data.c (create_character_intializer): Likewise.
	* decl.c (gfc_set_constant_character_len): Likewise.
	* dump-parse-tree.c (show_char_const): Correctly dump wide
	character strings.
	error.c (print_wide_char): Rename into gfc_print_wide_char.
	(show_locus): Adapt to new prototype of gfc_print_wide_char.
	expr.c (free_expr0): Representation is now disjunct from
	character string value, so we always free it.
	(gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt
	to wide character strings.
	* gfortran.h (gfc_expr): Make value.character.string a wide string.
	(gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset,
	gfc_widechar_to_char, gfc_char_to_widechar): New prototypes.
	(gfc_get_wide_string): New macro.
	(gfc_print_wide_char): New prototype.
	* io.c (format_string): Make a wide string.
	(next_char, gfc_match_format, compare_to_allowed_values, 
	gfc_match_open): Deal with wide strings.
	* module.c (mio_expr): Convert between wide strings and ASCII ones.
	* primary.c (match_hollerith_constant, match_charkind_name): 
	Handle wide strings.
	* resolve.c (build_default_init_expr): Likewise.
	* scanner.c (gfc_wide_toupper, gfc_wide_memset,
	gfc_char_to_widechar): New functions.
	(wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp):
	Changes in prototypes.
	(gfc_define_undef_line, load_line, preprocessor_line,
	include_line, load_file, gfc_read_orig_filename): Handle wide
	strings.
	* simplify.c (gfc_simplify_achar, gfc_simplify_adjustl,
	gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar,
	gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line,
	gfc_simplify_repeat): Handle wide strings.
	(wide_strspn, wide_strcspn): New helper functions.
	(gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify):
	Handle wide strings.
	* symbol.c (generate_isocbinding_symbol): Likewise.
	* target-memory.c (size_character, gfc_target_expr_size,
	encode_character, gfc_target_encode_expr, gfc_interpret_character,
	gfc_target_interpret_expr): Handle wide strings.
	* trans-const.c (gfc_conv_string_init): Lower wide strings to
	narrow ones.
	(gfc_conv_constant_to_tree): Likewise.
	* trans-expr.c (gfc_conv_substring_expr): Handle wide strings.
	* trans-io.c (gfc_new_nml_name_expr): Likewise.
	* trans-stmt.c (gfc_trans_label_assign): Likewise.

2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
	gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
	gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments
	with ATTRIBUTE_UNUSED.

2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED.
	* simplify.c (gfc_simplify_lgamma): Likewise.

2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and
	gfc_peek_ascii_char.
	* decl.c (gfc_match_kind_spec, gfc_match_type_spec,
	gfc_match_implicit_none, match_implicit_range, gfc_match_implicit,
	match_string_p, match_attr_spec, gfc_match_suffix,
	match_procedure_decl, gfc_match_entry, gfc_match_subroutine):
	Likewise.
	* gfortran.h (gfc_char_t): New type.
	(gfc_linebuf): Make line member a gfc_char_t.
	(locus): Make nextc member a gfc_char_t.
	(gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte,
	gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char,
	gfc_peek_ascii_char, gfc_check_digit): New prototypes.
	* error.c (print_wide_char): New function.
	(show_locus): Use print_wide_char and gfc_wide_strlen.
	* io.c (next_char): Use gfc_char_t type.
	(match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char.
	* match.c (gfc_match_parens, gfc_match_eos,
	gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C,
	gfc_match_intrinsic_op, gfc_match_char,  gfc_match_return,
	gfc_match_common): Likewise.
	* match.h (gfc_match_special_char): Change prototype.
	* parse.c (decode_specification_statement, decode_statement,
	decode_omp_directive, next_free, next_fixed): Use
	gfc_peek_ascii_char and gfc_next_ascii_char.
	* primary.c (gfc_check_digit): Change name.
	(match_digits, match_hollerith_constant, match_boz_constant,
	match_real_constant, next_string_char, match_charkind_name,
	match_string_constant, match_logical_constant_string,
	match_complex_constant, match_actual_arg, match_varspec,
	gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and
	gfc_next_ascii_char.
	* scanner.c (gfc_wide_fits_in_byte, wide_is_ascii,
	gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit,
	gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy,
	wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp,
	gfc_next_ascii_char, gfc_peek_ascii_char):
	New functions.
	(next_char, gfc_define_undef_line, skip_free_comments,
	gfc_next_char_literal, gfc_next_char, gfc_peek_char,
	gfc_error_recovery, load_line, preprocessor_line, include_line,
	load_file, gfc_read_orig_filename): Use gfc_char_t for source
	characters and the {gfc_,}wide_* functions to manipulate wide
	strings.

2008-05-06  Tobias Burnus  <burnus@net-b.de>

	PR fortran/36117
	* intrinsic.c (add_functions): Call gfc_simplify_bessel_*.
	* intrinsic.h: Add prototypes for gfc_simplify_bessel_*.
	* simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
	gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
	gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New.

2008-05-03  Janus Weil  <jaydub66@gmail.com>

	* misc.c (gfc_clear_ts): Set interface to NULL.

2008-05-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33268
	* gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to
	gfc_expr value union. Add io_kind enum to here from io.c.
	* io.c (gfc_free_dt): Free extra_comma.
	(gfc_resolve_dt): If an extra comma was encountered and io_unit is type
	BT_CHARACTER, resolve to format_expr and set default unit.  Error if
	io_kind is M_WRITE. (match_io):  Match the extra comma and set new
	pointer, extra_comma.

2008-05-01  Bud Davis  <bdavis9659@sbcglobal.net>

	PR35940/Fortran
	* simplify.c (gfc_simplify_index): Check for direction argument 
	being a constant.

2008-05-01  Janus Weil  <jaydub66@gmail.com>

	* gfortran.h (struct gfc_symbol): Moving "interface" member to
	gfc_typespec (plus fixing a small docu error).
	* interface.c (gfc_procedure_use): Ditto.
	* decl.c (match_procedure_decl): Ditto.
	* resolve.c (resolve_specific_f0,
	resolve_specific_f0, resolve_symbol): Ditto.

2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.
	* intrinsic.h (gfc_check_selected_char_kind,
	gfc_simplify_selected_char_kind): New prototypes.
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND.
	* trans.h (gfor_fndecl_sc_kind): New function decl.
	* trans-decl.c (gfor_fndecl_sc_kind): Build new decl.
	* arith.c (gfc_compare_with_Cstring): New function.
	* arith.h (gfc_compare_with_Cstring): New prototype.
	* check.c (gfc_check_selected_char_kind): New function.
	* primary.c (match_string_constant, match_kind_param): Mark
	symbols used as literal constant kind param as referenced.
	* trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function.
	(gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind.
	* intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic.
	* simplify.c (gfc_simplify_selected_char_kind): New function.

2008-04-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35997
	* module.c (find_symbol): Do not return a result for a symbol
	that has been renamed in another module.

2008-04-26  George Helffrich <george@gcc.gnu.org>

	PR fortran/35892
	PR fortran/35154
	* trans-common.c (create_common):  Add decl to function
	chain (if inside one) to preserve identifier scope in debug output.

2008-04-25  Jan Hubicka  <jh@suse.cz>

	* trans-decl.c (trans_function_start): Update.

2008-04-25  Tobias Burnus  <burnus@net-b.de>
	    Daniel Franke <franke.daniel@gmail.com>

	PR fortran/35156
	* gfortranspec.c (lang_specific_driver): Deprecate
	-M option; fix ICE when "-M" is last argument and
	make "-M<dir>" work.
	* options.c (gfc_handle_module_path_options): 
	Use -J instead of -M in error messages.
	* invoke.texi: Mark -M as depecated.

2008-04-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/35994
	* trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust
	loop counter offset.

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
	* trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
	(gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
	(gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
	(gfc_conv_array_initializer): Don't set TREE_INVARIANT.
	* trans-common.c (get_init_field): Don't set TREE_INVARIANT.
	(create_common): Don't set TREE_INVARIANT.
	* trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
	* trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.

2008-04-21  Steve Ellcey  <sje@cup.hp.com>

	* f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.

2008-04-21  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/35019
	* gfortranspec.c (lookup_option): Properly handle separated arguments
	in -J option, print missing argument message when necessary.

2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35882
	* scanner.c (skip_fixed_comments): Update continue_line when comment is
	detected. (gfc_next_char_literal): Likewise.

2008-04-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35944
	PR fortran/35946
	PR fortran/35947
	* trans_array.c (gfc_trans_array_constructor): Temporarily
	realign loop, if loop->from is not zero, before creating
	the temporary array and provide an offset.

	PR fortran/35959
	* trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name
	and allow for NULL body.  Change all references from
	init_default_dt to gfc_init_default_dt.
	* trans.h : Add prototype for gfc_init_default_dt.
	* trans-array.c (gfc_trans_deferred_vars): After nullification
	call gfc_init_default_dt for derived types with allocatable
	components.

2008-04-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35892
	* trans-common.c (create_common): Revert patch causing regression.

2008-04-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35724
	* iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for
	optional argument attribute.
	
2008-04-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35932
	* trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND
	is not used, the argument must be converted.

2008-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/35662
	* f95-lang.c (gfc_init_builtin_functions): Make sure
	BUILT_IN_SINCOS{,F,L} types aren't varargs.

2008-04-15  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35864
	* expr.c (scalarize_intrinsic_call): Reorder identification of
	array argument so that if one is not found a segfault does not
	occur.  Return FAILURE if all scalar arguments.

2008-04-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/35882
	* options.c (gfc_init_options): Set the default maximum continuation
	lines to 255 for both free and fixed form source for warnings.
	(gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
	the -std=f95 free form max continuations to 39 for warnings.
	* scanner.c (gfc_next_char_literal): Adjust the current_line number only
	if it is less than the current locus.

2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/25829 28655
	* io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
	round, sign, and id. (match_open_element): Match new tags.
	(gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
	for DEFAULT only. Update error messages. (match_dt_element): Fix match
	tag for asynchronous. Update error messages. (gfc_free_inquire): Free
	new expressions. (match_inquire_element): Match new tags.
	(gfc_match_inquire): Add constraint for ID and PENDING.
	(gfc_resolve_inquire): Resolve new tags.
	* trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
	mask for ID parameter.
	* ioparm.def: Fix order of parameters for pending, round, and sign.
	NOTE: These must line up with the definitions in libgfortran/io/io.h. or
	things don't work.

2008-04-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35780
	* expr.c (scalarize_intrinsic_call): Identify which argument is
	an array and use that as the template.
	(check_init_expr): Remove tests that first argument is an array
	in the call to scalarize_intrinsic_call.

2008-04-06  Tobias Schlüter  <tobi@gcc.gnu.org>

	PR fortran/35832
	* io.c (io_tag): Add field 'value'.  Split 'spec' field in
	existing io_tags.
	(match_etag, match_vtag, match_ltag): Split parsing in two steps
	to give better error messages.

2008-04-06  Tobias Burnus  <burnus@net-b.de>

	* io.c (check_io_constraints): Add constrains. ID= requires
	asynchronous= and asynchronous= must be init expression.

2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".

2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* dump-parse-tree.c: Use fprintf, fputs and fputc instead of
	gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
	functions and make them static. Add new gfc_dump_parse_tree
	function.
	* gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
	(gfc_status, gfc_status_char): Delete prototypes.
	* error.c (gfc_status, gfc_status_char): Remove functions.
	* scanner.c (gfc_new_file): Use printf instead of gfc_status.
	* options.c (gfc_init_options): Rename verbose into dump_parse_tree.
	(gfc_handle_module_path_options): Use gfc_fatal_error instead of
	gfc_status and exit.
	(gfc_handle_option): Rename verbose into dump_parse_tree.
	* parse.c (gfc_parse_file): Use gfc_dump_parse_tree.

2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/25829 28655
	* dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
	* gfortran.h (gfc_statement): Add ST_WAIT enumerator.
	(gfc_open): Add pointers for decimal, encoding, round, sign,
	asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
	encoding, pending, round, sign, size, id.
	(gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
	asynchronous, blank, decimal, delim, pad, round, sign.
	(gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
	wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
	* trans-stmt.h (gfc_trans_wait): New function prototype.
	* trans.c (gfc_trans_code): Add case for EXEC_WAIT.
	* io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
	ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
	(gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
	tags. (gfc_resolve_open): Remove comment around check for allowed
	values and ASYNCHRONOUS, update it.  Likewise for DECIMAL, ENCODING,
	ROUND, and SIGN. (match_dt_element): Add matching for new tags.
	(gfc_free_wait): New function. (gfc_resolve_wait): New function.
	(match_wait_element): New function. (gfc_match_wait): New function.
	* resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
	(resolve_code): Add case for EXEC_WAIT. 
	* st.c (gfc_free_statement): Add case for EXEC_WAIT.
	* trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
	Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
	(gfc_build_io_library_fndecls): Add function declaration for st_wait.
	(gfc_trans_open): Add mask bits for new I/O tags.
	(gfc_trans_inquire): Add mask bits for new I/O tags.
	(gfc_trans_wait): New translation function.
	(build_dt): Add mask bits for new I/O tags.
	* match.c (gfc_match_if) Add matcher for "wait".
	* match.h (gfc_match_wait): Prototype for new function.
	* ioparm.def: Add new I/O parameter definitions.
	* parse.c (decode_statement): Add match for "wait" statement.
	(next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.

2008-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/35786
	* openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
	isn't a variable.

2008-04-03  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (fortran_OBJS): New variable.

2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* f95-lang.c (insert_block): Kill.

2008-04-01  George Helffrich <george@gcc.gnu.org>

	PR fortran/35154, fortran/23057
	* trans-common.c (create_common):  Add decl to function
	chain to preserve identifier scope in debug output.

2008-04-01  Joseph Myers  <joseph@codesourcery.com>

	* gfortran.texi: Include gpl_v3.texi instead of gpl.texi
	* Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of
	gpl.texi.

2008-03-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35740
	* resolve.c (resolve_function, resolve_call): If the procedure
	is elemental do not look for noncopying intrinsics.

2008-03-29  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35698
	* trans-array.c (gfc_array_init_size): Set 'size' zero if
	negative in one dimension.

	PR fortran/35702
	* trans-expr.c (gfc_trans_string_copy): Only assign a char
	directly if the lhs and rhs types are the same.

2008-03-28  Daniel Franke  <franke.daniel@gmail.com>
	    Paul Richard Thomas <paul.richard.thomas@gmail.com>

	PR fortran/34714
	* primary.c (match_variable): Improved matching of function 
	result variables.
	* resolve.c (resolve_allocate_deallocate): Removed checks if
	the actual argument for STAT is a variable.

2008-03-28  Tobias Burnus  <burnus@net-b.de>

	* symbol.c (gfc_get_default_type): Fix error message; option
	-fallow_leading_underscore should be -fallow-leading-underscore

2008-03-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35724
	* iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for
	optional argument attribute.

2008-03-27  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in: Revert automatic dependency patch.

2008-03-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in: Remove .o targets.
	(fortran_OBJS): New variable.
	(fortran/gfortranspec.o): Move to fortran/.  Reduce to variable
	setting.
	(GFORTRAN_D_OBJS): Update.
	(GFORTRAN_TRANS_DEPS): Remove.

2008-03-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34813
	* resolve.c (resolve_structure_cons): It is an error to assign
	NULL to anything other than a pointer or allocatable component.

	PR fortran/33295
	* resolve.c (resolve_symbol): If the symbol is a derived type,
	resolve the derived type.  If the symbol is a derived type
	function, ensure that the derived type is visible in the same
	namespace as the function.

2008-03-23  Tobias Schlüter  <tobi@gcc.gnu.org>

	* trans.h: Use fold_build in build1_v, build2_v and build3_v
	macros.
	* trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
	Don't use build2_v macro.

2008-03-19  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/35152
	* interface.c (gfc_procedure_use): Check for keyworded arguments in
	procedures without explicit interfaces.

2008-03-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35470
	* resolve.c (check_assumed_size_reference):  Only visit the
	first reference and look directly at the highest dimension.

2008-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35184
	* trans-array.c (gfc_conv_array_index_offset): Remove unnecessary
	assert.

2008-03-15  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/35584
	* resolve.c (resolve_branch): Less strict and pessimistic warning
	message.

2008-03-11  Paolo Bonzini  <bonzini@gnu.org>

	* f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
	(gfc_be_parse_file): Call clear_binding_stack from here.
	(gfc_clear_binding_stack): Rename to clear_binding_stack.
		
2008-03-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/35474
	* module.c (mio_symtree_ref): After providing a symbol for a
	missing equivalence member, resolve and NULL the fixups.

2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* invoke.texi (Error and Warning Options): Document
	-Wline-truncation.

2008-03-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/34956
	* trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid
	checking bounds of absent optional arguments.

2008-03-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/33197
	* intrinsic.c (add_functions): Add simplification routines for
	ERF, DERF, ERFC and DERFC.
	* decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU
	extensions into Fortran 2008 features.
	* intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New
	prototypes.
	* simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions.

2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/33197
	* intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
	ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
	ERFC_SCALED, LOG_GAMMA and HYPOT.
	* intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
	gfc_resolve_hypot): New prototypes.
	* mathbuiltins.def: Add HYPOT builtin. Make complex versions of
	ACOSH, ASINH and ATANH available.
	* gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
	* lang.opt: Add -std=f2008 option.
	* libgfortran.h: Define GFC_STD_F2008.
	* lang-specs.h: Add .f08 and .F08 file suffixes.
	* iresolve.c (gfc_resolve_hypot): New function.
	* parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
	* check.c (gfc_check_hypot): New function.
	* trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
	* options.c (set_default_std_flags): Allow Fortran 2008 by default.
	(form_from_filename): Add .f08 suffix.
	(gfc_handle_option): Handle -std=f2008 option.
	* simplify.c (gfc_simplify_hypot): New function.
	* gfortran.texi: Document Fortran 2008 status and file extensions.
	* intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
	as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
	ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
	* invoke.texi: Document the new -std=f2008 option.

2008-03-02  Jakub Jelinek  <jakub@redhat.com>

	* gfortranspec.c (lang_specific_driver): Update copyright notice
	dates.

2008-02-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35059
	* expr.c (find_array_element): Modify traversing the constructor to
	avoid trying to access NULL memory pointed to by next for the
	last element. (find_array_section): Exit while loop if cons->next is
	NULL.
	* trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec.
	(gfc_conv_function_call): Same.
	* decl.c (gfc_match_implicit): Same.
	* trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same.

2008-02-28  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/31463
	PR fortran/33950
	PR fortran/34296
	* lang.opt: Added -Wreturn-type.
	* options.c (gfc_handle_option): Recognize -Wreturn-type.
	* trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions
	where the result value is not set.
	(gfc_generate_function_code): Likewise.
	(generate_local_decl): Emit warnings for funtions whose RESULT
	variable is not set.

2008-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/34868
	* trans-expr.c (gfc_conv_variable): Don't build indirect
	references when explicit interface is mandated.
	* resolve.c (resolve_formal_arglist): Set attr.always_explicit
	on the result symbol as well as the procedure symbol.

2008-02-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/33387
	* trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
	gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
	gfor_fndecl_math_exponent16.
	* f95-lang.c (build_builtin_fntypes): Add new function types.
	(gfc_init_builtin_functions): Add new builtins for nextafter,
	frexp, ldexp, fabs, scalbn and inf.
	* iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
	(gfc_resolve_scale): Don't convert type of second argument.
	(gfc_resolve_set_exponent): Likewise.
	(gfc_resolve_size): Don't add hidden arguments.
	* trans-decl.c: Remove gfor_fndecl_math_exponent4,
	gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
	gfor_fndecl_math_exponent16.
	* trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
	for scalbn, fraction, nearest, rrspacing, set_exponent and
	spacing.
	(gfc_conv_intrinsic_exponent): Directly call frexp.
	(gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
	gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
	gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
	functions.
	(gfc_conv_intrinsic_function): Use the new functions above.

2008-02-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/35033
	* interface.c (check_operator_interface): Show better line for error
	messages; fix constrains for user-defined assignment operators.
	(gfc_extend_assign): Fix constrains for user-defined assignment
	operators.

2008-02-26  Tom Tromey  <tromey@redhat.com>

	* trans-io.c (set_error_locus): Remove old location code.
	* trans-decl.c (gfc_set_decl_location): Remove old location code.
	* f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
	* scanner.c (gfc_gobble_whitespace): Remove old location code.
	(get_file): Likewise.
	(preprocessor_line): Likewise.
	(load_file): Likewise.
	(gfc_new_file): Likewise.
	* trans.c (gfc_trans_runtime_check): Remove old location code.
	(gfc_get_backend_locus): Likewise.
	(gfc_set_backend_locus): Likewise.
	* data.c (gfc_assign_data_value): Remove old location code.
	* error.c (show_locus): Remove old location code.
	* gfortran.h (gfc_linebuf): Remove old location code.
	(gfc_linebuf_linenum): Remove old-location variant.

2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/34729
	* trans-const.c (gfc_build_string_const): Don't call gettext.
	(gfc_build_localized_string_const): New function.
	* trans-const.h (gfc_build_localized_string_const): New prototype.
	* trans.c (gfc_trans_runtime_check): Use
	gfc_build_localized_string_const instead of gfc_build_string_const.
	(gfc_call_malloc): Likewise.
	(gfc_allocate_with_status): Likewise.
	(gfc_allocate_array_with_status): Likewise.
	(gfc_deallocate_with_status): Likewise.
	(gfc_call_realloc): Likewise.
	* trans-io.c (gfc_trans_io_runtime_check): Likewise.

2008-02-24  Tobias Schlüter  <tobi@gcc.gnu.org>

	* arith.c: Update copyright years.
	* arith.h: Likewise.
	* array.c: Likewise.
	* bbt.c: Likewise.
	* check.c: Likewise.
	* data.c: Likewise.
	* data.h: Likewise.
	* decl.c: Likewise.
	* dependency.c: Likewise.
	* dependency.h: Likewise.
	* dump-parse-tree.c: Likewise.
	* error.c: Likewise.
	* expr.c: Likewise.
	* gfc-internals.texi: Likewise.
	* gfortran.h: Likewise.
	* gfortran.texi: Likewise.
	* gfortranspec.c: Likewise.
	* interface.c: Likewise.
	* intrinsic.c: Likewise.
	* intrinsic.h: Likewise.
	* intrinsic.texi: Likewise.
	* invoke.texi: Likewise.
	* io.c: Likewise.
	* iresolve.c: Likewise.
	* iso-c-binding.def: Likewise.
	* iso-fortran-env.def: Likewise.
	* lang-specs.h: Likewise.
	* lang.opt: Likewise.
	* libgfortran.h: Likewise.
	* match.c: Likewise.
	* match.h: Likewise.
	* matchexp.c: Likewise.
	* misc.c: Likewise.
	* module.c: Likewise.
	* openmp.c: Likewise.
	* options.c: Likewise.
	* parse.c: Likewise.
	* parse.h: Likewise.
	* primary.c: Likewise.
	* resolve.c: Likewise.
	* scanner.c: Likewise.
	* simplify.c: Likewise.
	* st.c: Likewise.
	* symbol.c: Likewise.
	* target-memory.c: Likewise.
	* target-memory.h: Likewise.
	* trans-array.h: Likewise.
	* trans-const.h: Likewise.
	* trans-stmt.h: Likewise.
	* trans-types.c: Likewise.
	* trans-types.h: Likewise.
	* types.def: Likewise.

2008-02-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35223
	* simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits),
	(gfc_simplify_ibset): Remove call to range_check.
	(simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float)
	(gfc_simplify_real): Add call gfc_clear_ts to initialize the
	temporary gfc_typspec variable.

2008-02-24  Tobias Schlüter  <tobi@gcc.gnu.org>

	* trans-array.c (gfc_conv_descriptor_data_get,
	gfc_conv_descriptor_data_set_internal,
	gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset,
	gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension,
	gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
	gfc_conv_descriptor_ubound, gfc_trans_create_temp_array,
	gfc_conv_array_transpose, gfc_grow_array,
	gfc_trans_array_constructor_subarray,
	gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end,
	gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate,
	gfc_conv_array_initializer, gfc_trans_array_bounds,
	gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
	gfc_get_dataptr_offset, gfc_conv_array_parameter,
	gfc_trans_dealloc_allocated, get_full_array_size,
	gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN
	instead of buildN.
	* trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
	gfc_conv_component_ref, gfc_conv_cst_int_power,
	gfc_conv_function_call, gfc_trans_structur_assign): Likewise.
	* trans-common.c (create_common): Likewise.
	* trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do):
	Likewise.
	* trans-const.c (gfc_conv_constant_to_tree): Likewise.
	* trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do,
	gfc_trans_integer_select, gfc_trans_character_select,
	gfc_trans_forall_loop, compute_overall_iter_number,
	gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate,
	gfc_trans_deallocate): Likewise.
	* trans.c (gfc_build_addr_expr, gfc_trans_runtime_check,
	gfc_allocate_with_status, gfc_allocate_array_with_status,
	gfc_deallocate_with_status): Likewise.
	* f95-lang.c (gfc_truthvalue_conversion): Likewise.
	* trans-io.c (set_parameter_const, set_parameter_value,
	set_parameter_ref, set_string, set_internal_unit, io_result,
	set_error_locus, nml_get_addr_expr, transfer_expr): Likewise.
	* trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
	gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
	gfc_generate_function_code): Likewise.
	* convert.c (convert): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_conversion,
	build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
	gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
	gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs,
	gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
	gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod,
	gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
	gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
	gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count,
	gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product,
	gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
	gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not,
	gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
	gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size,
	gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
	gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim,
	gfc_conv_intrinsic_repeat): Likewise.

2008-02-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/25477
	* trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
	* f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
	* trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
	gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
	* trans-decl.c: Likewise.

2008-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35059
	* expr.c (find_array_element): Modify traversing the constructor to
	avoid trying to access NULL memory pointed to by next for the
	last element. (find_array_section): Exit while loop if cons->next is
	NULL.

2008-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34907
	* iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize
	structure.
	(gfc_resolve_aint): Likewise.
	(gfc_resolve_anint): Likewise.
	(gfc_resolve_besn): Likewise.
	(gfc_resolve_cshift): Likewise.
	(gfc_resolve_ctime): Likewise.
	(gfc_resolve_eoshift): Likewise.
	(gfc_resolve_index_func): Likewise.
	(gfc_resolve_isatty): Likewise.
	(gfc_resolve_malloc): Likewise.
	(gfc_resolve_rrspacing): Likewise.
	(gfc_resolve_scale): Likewise.
	(gfc_resolve_set_exponent): Likewise.
	(gfc_resolve_spacing): Likewise.
	(gfc_resolve_spacing): Likewise.
	(gfc_resolve_fgetc): Likewise.
	(gfc_resolve_fputc): Likewise.
	(gfc_resolve_ftell): Likewise.
	(gfc_resolve_ttynam): Likewise.
	(gfc_resolve_alarm_sub): Likewise.
	(gfc_resolve_mvbits): Likewise.
	(gfc_resolve_getarg): Likewise.
	(gfc_resolve_signal_sub): Likewise.
	(gfc_resolve_exit): Likewise.
	(gfc_resolve_flush): Likewise.
	(gfc_resolve_free): Likewise.
	(gfc_resolve_ctime_sub): Likewise.
	(gfc_resolve_fgetc_sub): Likewise.
	(gfc_resolve_fputc_sub): Likewise.
	(gfc_resolve_fseek_sub): Likewise.
	(gfc_resolve_ftell_sub): Likewise.
	(gfc_resolve_ttynam_sub): Likewise.

2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gfc-internals.texi: Fix typos and markup nits.
	* gfortran.texi: Likewise.
	* intrinsic.texi: Likewise.

2008-02-21  Richard Guenther  <rguenther@suse.de>

	* trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES
	as unary PAREN_EXPR for real and complex typed expressions.
	(gfc_conv_unary_op): Fold the built tree.

2008-02-20  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34997
	* match.c (gfc_match_name): Improve error message for '$'.

2008-02-19  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/35030
	* expr.c (gfc_check_pointer_assign): Add type and kind information
	to type-mismatch message.
	(gfc_check_assign): Unify error messages.

2008-02-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/34952
	* gfortran.texi: Create new section for unimplemented extensions.
	Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements".
	Remove "smaller projects" list. Fix a few typos.

2008-02-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* intrinsic.texi: Rename INDEX node to avoid clashing with
	index.html on case-insensitive systems.

2008-02-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/35150
	* trans-expr.c (gfc_conv_function_call): Force evaluation of
	se->expr.

2008-02-10  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/35019
	* lang.opt: Allow '-J<dir>' next to '-J <dir>', 
	likewise '-I <dir>' and '-I<dir>'.

2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR other/35107
	* Make-lang.in (f951): Add $(GMPLIBS).

2008-02-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/35037
	* trans-common.c (build_field): Mark fields as volatile when needed.

2008-02-05  Tobias Burnus  <burnus@net-b.de>

	PR fortran/35093
	* data.c (gfc_assign_data_value): Only free "size" if
	it has not already been freed.

2008-02-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34945
	* array.c (match_array_element_spec): Remove check for negative
	array size.
	(gfc_resolve_array_spec): Add check for negative size.

2008-02-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/32315
	* data.c (gfc_assign_data_value): Add bounds check for array
	references.

2008-02-04  Daniel Franke  <franke.daniel@gmail.com>

	* resolve.c (resolve_where): Fix typo.
	(gfc_resolve_where_code_in_forall): Likewise.

2008-02-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/32760
	* resolve.c (resolve_allocate_deallocate): New function.
	(resolve_code): Call it for allocate and deallocate.
	* match.c (gfc_match_allocate, gfc_match_deallocate) : Remove
	the checking of the STAT tag and put in above new function.
	* primary,c (match_variable): Do not fix flavor of host
	associated symbols yet if the type is not known.

2008-01-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34910
	* expr.c (gfc_check_assign): It is an error to assign
	to a sibling procedure.

2008-01-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34975
	* symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
	delete_symtree to gfc_delete_symtree.
	* gfortran.h : Add prototype for gfc_delete_symtree.
	* module.c (load_generic_interfaces): Transfer symbol to a
	unique symtree and delete old symtree, instead of renaming.
	(read_module): The rsym and the found symbol are the same, so
	the found symtree can be deleted.

	PR fortran/34429
	* decl.c (match_char_spec): Remove the constraint on deferred
	matching of functions and free the length expression.
	delete_symtree to gfc_delete_symtree.
	(gfc_match_type_spec): Whitespace.
	(gfc_match_function_decl): Defer characteristic association for
	all types except BT_UNKNOWN.
	* parse.c (decode_specification_statement): Only derived type
	function matching is delayed to the end of specification.

2008-01-28  Tobias Burnus  <burnus@net-b.de>

	PR libfortran/34980
	* simplify.c (gfc_simplify_shape): Simplify rank zero arrays.

2008-01-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34990
	* array.c (gfc_check_constructor_type): Revert clearing the expression.

2008-01-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34848
	* trans-expr.c (gfc_conv_function_call): Don't call
	gfc_add_interface_mapping if the expression is NULL.

2008-01-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/31610
	* trans-array.c (gfc_trans_create_temp_array): Remove call to
	gcc_assert (integer_zerop (loop->from[n])).

2008-01-25  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/34661
	* resolve.c (resolve_where): Added check if user-defined assignment 
	operator is an elemental subroutine.
	(gfc_resolve_where_code_in_forall): Likewise.

2008-01-24  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/33375
	PR fortran/34858
	* gfortran.h: Revert changes from 2008-01-17.
	* match.c: Likewise.
	* symbol.c: Likewise.
	(gfc_undo_symbols): Undo namespace changes related to common blocks.

2008-01-24  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/34202
	* data.c (formalize_structure_cons): Skip formalization on
	empty structures.

2008-01-24  Daniel Franke  <franke.daniel@gmail.com>

	* gfortran.texi (OpenMP): Extended existing documentation.
	(contributors): Added major contributors of 2008 that were
	not listed yet.
	(proposed extensions): Removed implemented items.

2008-01-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34872
	* parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS  is
	seen, check for a statement label and, if present, delete it
	and set the locus to the start of the statement.

2008-01-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34875
	* trans-io.c (gfc_trans_transfer): If the array reference in a
	read has a vector subscript, use gfc_conv_subref_array_arg to
	copy back the temporary.

2008-01-22  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34848
	* interface.c (compare_actual_formal): Fix adding type
	to missing_arg_type for absent optional arguments.

2008-01-22  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34907
	* parse.c (parse_spec): Change = into ==.

2008-01-22  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/34915
	* expr.c (check_elemental): Fix check for valid data types.

2008-01-22  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34899
	* scanner.c (load_line): Support <tab><digit> continuation lines.
	* invoke.texi (-Wtabs): Document this.

2008-01-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34896
	* module.c (read_module): Set use_rename attribute.

2008-01-21  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34901
	* interface.c (compare_parameter): Improved error message
	for arguments of same type and mismatched kinds.

2008-01-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34861
	* resolve.c (resolve_entries): Do not do an array bounds check
	if the result symbols are the same.

	PR fortran/34854
	* module.c (read_module) : Hide the symtree of the previous
	version of the symbol if this symbol is renamed.

2008-01-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34784
	* array.c (gfc_check_constructor_type): Clear the expression ts
	so that the checking starts from the deepest level of array
	constructor.
	* primary.c (match_varspec): If an unknown type is changed to
	default character and the attempt to match a substring fails,
	change it back to unknown.

	PR fortran/34785
	* trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
	NULL for an array constructor, use the cl.length expression to
	build it.
	(gfc_conv_array_parameter): Change call to gfc_evaluate_now to
	a tree assignment.

2008-01-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/34817
	PR fortran/34838
	* iresolve.c (gfc_resolve_all):  Remove conversion of mask
	argument to kind=1 by removing call to resolve_mask_arg().
	(gfc_resolve_any):  Likewise.

2008-01-19  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34760
	* primary.c (match_variable): Handle FL_UNKNOWN without
	uneducated guessing.
	(match_variable): Improve error message.

2008-01-18  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32616
	* interface.c (get_expr_storage_size): Return storage size
	for array element designators.
	(compare_actual_formal): Reject unequal string sizes for
	assumed-shape dummy arguments. And fix error message for
	array-sections with vector subscripts.

2008-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34556
	* simplify.c (is_constant_array_expr): New static function that returns
	true if the given expression is an array and is constant.
	(gfc_simplify_reshape): Use new function.

2008-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR fortran/33375
	* symbol.c (free_common_tree): Renamed to ...
	(gfc_free_common_tree): This.  Remove static.
	(gfc_free_namespace): Updated.

	* gfortran.h (gfc_free_common_tree): New.

	* match.c (gfc_match_common): Call gfc_free_common_tree () with
	gfc_current_ns->common_root and set gfc_current_ns->common_root
	to NULL on syntax error.

2008-01-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR fortran/34686
	* trans-expr.c (gfc_conv_function_call): Use proper
	type for returned character pointers.

2008-01-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34429
	PR fortran/34431
	PR fortran/34471
	* decl.c : Remove gfc_function_kind_locus and
	gfc_function_type_locus. Add gfc_matching_function.
	(match_char_length): If matching a function and the length
	does not match, return MATCH_YES and try again later.
	(gfc_match_kind_spec): The same.
	(match_char_kind): The same.
	(gfc_match_type_spec): The same for numeric and derived types.
	(match_prefix): Rename as gfc_match_prefix.
	(gfc_match_function_decl): Except for function valued character
	lengths, defer applying kind, type and charlen info until the
	end of specification block.
	gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
	parse.c (decode_specification_statement): New function.
	(decode_statement): Call it when a function has kind = -1. Set
	and reset gfc_matching function, as function statement is being
	matched.
	(match_deferred_characteristics): Simplify with a single call
	to gfc_match_prefix. Do appropriate error handling. In any
	case, make sure that kind = -1 is reset or corrected.
	(parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
	Throw an error if kind = -1 after last specification statement.
	parse.h : Prototype for gfc_match_prefix.

2008-01-16  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34796
	* interface.c (compare_parameter): Allow AS_DEFERRED array
	elements and reject attr.pointer array elemenents.
	(get_expr_storage_size): Return storage size of elements of
	assumed-shape and pointer arrays.

2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins
	for flag_tree_parallelize_loops.

2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/34671
	* iresolve.c (gfc_resolve_all):  Call resolve_mask_arg.
	(gfc_resolve_any):  Likewise.
	(gfc_resolve_count):  Likewise.  Don't append kind of
	argument to function name.

2008-01-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34665
	* resolve.c (resolve_actual_arglist): For expressions,
	also check for assume-sized arrays.
	* interface.c (compare_parameter): Move F2003 character checks
	here, print error messages here, reject elements of
	assumed-shape array as argument to dummy arrays.
	(compare_actual_formal): Update for the changes above.

2008-01-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34763
	* decl.c (contained_procedure): Only check directly preceeding state.

2008-01-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34759
	* check.c (gfc_check_shape): Accept array ranges of
	assumed-size arrays.

2008-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34432
	* match.c (gfc_match_name): Don't error if leading character is a '(',
	just return MATCH_NO.

2008-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34722
	* trans-io.c (create_dummy_iostat): Commit the symbol.

2008-01-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34537
	* simplify.c (gfc_simplify_transfer): Return NULL if the size
	of the element is unavailable and only assign character length
	to the result, if 'mold' is constant.

2008-01-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34396
	* trans-array.c (gfc_trans_array_ctor_element):  Use gfc_trans_string_copy
	to assign strings and perform bounds checks on the string length.
	(get_array_ctor_strlen): Remove bounds checking.
	(gfc_trans_array_constructor): Initialize string length checking.
	* trans-array.h : Add prototype for gfc_trans_string_copy.

2008-01-08  Richard Guenther  <rguenther@suse.de>

	PR fortran/34706
	PR tree-optimization/34683
	* trans-types.c (gfc_get_array_type_bounds): Use an array type
	with known size for accesses if that is known.

2008-01-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34476
	* expr.c (find_array_element): Check that the array bounds are
	constant before using them.  Use lower, as well as upper bound.
	(check_restricted): Allow implied index variable.

2008-01-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34681
	* trans_array.c (gfc_trans_deferred_array): Do not null the
	data pointer on entering scope, nor deallocate it on leaving
	scope, if the symbol has the 'save' attribute.

	PR fortran/34704
	* trans_decl.c (gfc_finish_var_decl): Derived types with
	allocatable components and an initializer must be TREE_STATIC.

2008-01-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34672
	* module.c (write_generic): Rewrite completely.
	(write_module): Change call to write_generic.

2008-01-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34659
	* scanner.c (load_line): Do not count ' ' as printable when checking for
	continuations.

2008-01-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/34545
	* module.c (load_needed): If the namespace has no proc_name
	give it the module symbol.

2008-01-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34387
	* trans-expr.c (gfc_conv_missing_dummy): Use a temporary to type convert
	the dummy variable expression, test for NULL, and pass the variable
	address to the called function.

2008-01-06  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34658
	* match.c (gfc_match_common): Remove blank common in
	DATA BLOCK warning.
	* resolve.c (resolve_common_vars): New function.
	(resolve_common_blocks): Move checks to resolve_common_vars
	and invoke that function.
	(resolve_types): Call resolve_common_vars for blank commons.

2008-01-06  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34655
	* resolve.c (resolve_equivalence_derived): Reject derived types with
	default initialization if equivalenced with COMMON variable.

2008-01-06  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34654
	* io.c (check_io_constraints): Disallow unformatted I/O for
	internal units.

2008-01-06  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34660
	* resolve.c (resolve_formal_arglist): Reject dummy procedure in
	ELEMENTAL functions.

2008-01-06  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34662
	* interface.c (compare_actual_formal): Reject parameter
	actual to intent(out) dummy.

2008-01-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/34557
	* primary.c (match_varspec): Gobble whitespace before
	checking for '('.


Copyright (C) 2008 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
